/* Event websites page (/event-websites): hero phones, the filterable design
   gallery, the "included" grid and the price block. Loaded only on that page,
   on top of styles.css and components.css. */

/* Phone frame: an ink bezel around a screenshot of the design */
.ew-phone, .ew-hero-phone {
  display: block; overflow: hidden;
  padding: 7px; background: var(--hv-ink); border-radius: 30px;
}
.ew-phone img, .ew-hero-phone img {
  width: 100%; height: auto; aspect-ratio: 554 / 1200; object-fit: cover;
  border-radius: 23px; background: #e9e4dc;
}

/* Hero: three phones fanned out where the other pages draw browser windows */
.ew-collage .hv-shape-sun { left: 0; bottom: 4%; }
.ew-hero-phone { position: absolute; width: 38%; box-shadow: 0 30px 60px -22px rgba(15, 36, 56, 0.45); }
.ew-hero-phone-a { left: 6%; top: 10%; transform: rotate(-7deg); }
.ew-hero-phone-b { left: 31%; top: 2%; z-index: 1; transform: rotate(1deg); }
.ew-hero-phone-c { right: 2%; top: 14%; transform: rotate(8deg); }
.ew-collage .hv-sticker-stat { left: -2%; top: auto; bottom: 18%; }
.ew-collage .hv-sticker-live { right: 0; top: 0; }
.ew-collage .hv-sticker-price { left: 40%; bottom: 0; }

/* Filters */
.ew-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 40px; }
.ew-filter {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px;
  border: 2px solid var(--hv-ink); border-radius: 99px; background: #fff; color: var(--hv-ink);
  font: 700 15px/1 var(--hv-text); cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, transform 120ms ease-out;
}
.ew-filter:active { transform: translateY(2px); }
.ew-count {
  min-width: 24px; padding: 4px 7px; border-radius: 99px; background: var(--hv-blue-soft);
  font: 700 12px/1 var(--hv-text); text-align: center; color: var(--hv-ink);
}
.ew-filter[aria-pressed="true"] { background: var(--hv-ink); color: #fff; }
.ew-filter[aria-pressed="true"] .ew-count { background: var(--hv-yellow); }
@media (hover: hover) and (pointer: fine) {
  .ew-filter[aria-pressed="false"]:hover { background: var(--hv-yellow); }
}
.ew-filter:focus-visible { outline: 3px solid var(--hv-blue-deep); outline-offset: 3px; }

/* Gallery */
.ew-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 28px; }
.ew-item[hidden] { display: none; }
.ew-card { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; color: var(--hv-ink); }
.ew-card .ew-phone {
  width: 100%; margin-bottom: 12px;
  box-shadow: 0 6px 0 rgba(15, 36, 56, 0.12), 0 24px 40px -24px rgba(15, 36, 56, 0.45);
  transition: transform 200ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 200ms cubic-bezier(0.23, 1, 0.32, 1);
}
.ew-tag {
  padding: 5px 10px; border-radius: 99px; background: var(--c-tint, var(--hv-blue-soft));
  font: 700 12px/1 var(--hv-text); letter-spacing: 0.02em; color: var(--hv-ink);
}
.ew-item[data-type="wedding"] { --c-tint: var(--hv-blue-soft); }
.ew-item[data-type="birthday"] { --c-tint: #fff6d6; }
.ew-item[data-type="baby"] { --c-tint: #e2f8f0; }
.ew-item[data-type="christening"] { --c-tint: #eef0f4; }
.ew-item[data-type="memorial"] { --c-tint: var(--hv-coral-soft); }
.ew-name { margin-top: 4px; font: 800 22px/1.15 var(--hv-display); letter-spacing: -0.02em; }
.ew-desc { font: 400 15px/1.5 var(--hv-text); color: var(--hv-muted); text-wrap: pretty; }
.ew-open {
  margin-top: 4px; font: 700 15px/1.3 var(--hv-text); color: var(--hv-blue-deep);
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px;
  transition: text-decoration-color 150ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .ew-card:hover .ew-phone { transform: translateY(-4px); box-shadow: 0 10px 0 rgba(15, 36, 56, 0.12), 0 30px 46px -24px rgba(15, 36, 56, 0.5); }
  .ew-card:hover .ew-open { text-decoration-color: currentColor; }
}
.ew-card:focus-visible { outline: none; }
.ew-card:focus-visible .ew-phone { outline: 3px solid var(--hv-blue-deep); outline-offset: 4px; }

/* What's included: three columns of the site's hairline cells */
.ew-included { grid-template-columns: repeat(3, 1fr); }
/* What we need from you: ten short items, five to a row */
.ew-needs { grid-template-columns: repeat(5, 1fr); }
.ew-needs .step-cell { padding: 24px 20px; }

/* Price: heading on the left, the card on the right */
.ew-price { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 400px); gap: 48px; align-items: center; }
.ew-price .section-sub { max-width: 520px; margin-bottom: 0; }

@media (max-width: 1100px) {
  .ew-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ew-needs { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .ew-included { grid-template-columns: 1fr 1fr; }
  .ew-price { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 700px) {
  .ew-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 16px; }
  .ew-phone { padding: 5px; border-radius: 24px; }
  .ew-phone img { border-radius: 19px; }
  .ew-name { font-size: 19px; }
  .ew-desc { font-size: 14px; }
  .ew-filters { gap: 8px; margin-bottom: 28px; }
  .ew-filter { padding: 9px 14px; font-size: 14px; }
  .ew-included, .ew-needs { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .ew-card .ew-phone, .ew-filter { transition: none; }
}

/* Contact form: dropdowns styled like the site's text inputs */
.ew-page .field select {
  width: 100%; height: 44px; margin-bottom: 15px; padding: 0 40px 0 14px;
  -webkit-appearance: none; appearance: none;
  border: 1.5px solid var(--border-input); border-radius: 12px;
  background: var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%230f2438' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 15px center;
  font: 400 16px/1.4 var(--font-sans); color: var(--ink); cursor: pointer;
}
.ew-page .field select:focus { border-color: var(--brand-blue); outline: none; box-shadow: 0 0 0 3px rgba(58, 160, 227, 0.18); }
.ew-page .field input[type="date"], .ew-page .field input[type="time"] { -webkit-appearance: none; appearance: none; min-width: 0; }

/* "In short": the text runs the full width of its box */
.ew-page .svc-strip-text { max-width: none; }

/* Contact form: small headings between the groups of fields */
.ew-form-group {
  margin: 10px 0 12px; padding-top: 18px; border-top: 1.5px solid var(--border-hairline);
  font: 800 15px/1.2 var(--hv-display); color: var(--hv-ink);
}
.ew-form .field input[type="email"] { margin-bottom: 15px; }

/* The form is long: the intro on the left starts at the top and stays in view */
.ew-page .contact-grid { align-items: start; overflow: clip; }
@media (min-width: 768px) {
  .ew-page .contact-grid > div:first-child { position: sticky; top: 110px; }
}

/* Planning guides: two linked cards */
.ew-guides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ew-guides li {
  position: relative; padding: 26px 56px 26px 26px; border-radius: var(--radius-xl);
  background: #fff; border: 1.5px solid rgba(15, 36, 56, 0.08);
  font: 400 15px/1.5 var(--hv-text); color: var(--hv-muted);
  transition: transform 200ms cubic-bezier(0.23, 1, 0.32, 1), box-shadow 200ms cubic-bezier(0.23, 1, 0.32, 1);
}
.ew-guides li::before {
  content: "\2192"; position: absolute; right: 24px; top: 24px;
  font: 700 20px/1 var(--hv-text); color: var(--hv-blue-deep);
}
.ew-guides a { display: block; margin-bottom: 6px; font: 800 20px/1.25 var(--hv-display); letter-spacing: -0.015em; color: var(--hv-ink); }
.ew-guides a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ew-guides a:focus-visible { outline: none; }
.ew-guides li:has(a:focus-visible) { outline: 3px solid var(--hv-blue-deep); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .ew-guides li:hover { transform: translateY(-2px); box-shadow: 0 8px 0 rgba(15, 36, 56, 0.08); }
}
@media (max-width: 700px) { .ew-guides { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ew-guides li { transition: none; } }
