    .hero {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
      gap: 48px;
      align-items: end;
      padding: 72px 0 56px;
    }
    h1 {
      margin: 0;
      font-size: var(--type-h1);
      font-weight: 500;
      letter-spacing: -0.048em;
      line-height: 0.96;
    }
    h1 .quiet {
      display: block;
      color: rgba(255, 255, 255, 0.78);
    }
    .hero-copy h1,
    .hero-copy .lede,
    .hero-copy .fine {
      text-shadow: 0 2px 28px rgba(0, 0, 0, 0.55);
    }
    .lede {
      text-wrap: pretty;
      max-width: 38rem;
      margin: 22px 0 0;
      color: var(--muted);
      font-size: 18px;
      line-height: 1.5;
    }
    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 28px;
    }
    @media (min-width: 981px) {
      .hero .hero-actions {
        width: 100%;
        flex-wrap: nowrap;
      }
      .hero .hero-actions .btn {
        flex: 1 1 0;
        min-width: 0;
        min-height: 68px;
        padding: 0 16px;
        white-space: nowrap;
      }
      .hero .hero-actions .btn-huge { flex: 1.4 1 0; }
    }
    .hero .hero-actions .btn,
    .hero .hero-actions .hero-btn-label { opacity: 1; }
    .fine {
      margin: 14px 0 0;
      color: var(--dim);
      font-size: 13px;
    }
    .hero-photo {
      margin: 0;
    }
    .frame {
      border-radius: var(--radius-card);
      overflow: hidden;
      border: 1px solid var(--blue-line);
      background: #0a0a0a;
      box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
    }
    .hero-photo .frame {
      aspect-ratio: 3 / 4;
      position: relative;
      touch-action: pan-y;
      cursor: zoom-in;
      -webkit-touch-callout: none;
    }
    .hero-photo .frame.is-holding { transform: scale(0.985); }
    @media (prefers-reduced-motion: no-preference) {
      .hero .hero-photo .frame {
        transform-origin: center;
        animation: heroPhotoIn 0.8s ease-out backwards;
      }
      .hero .hero-photo > figcaption {
        animation: heroCapIn 0.5s ease-out 0.25s both;
      }
    }
    @keyframes heroPhotoIn {
      from { opacity: 0; transform: scale(0.94); }
      to { opacity: 1; transform: scale(1); }
    }
    @keyframes heroCapIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }
    .hero-dots, .hero-dots button, .hero-arrow { cursor: pointer; }
    .photo-lightbox {
      position: fixed;
      inset: 0;
      z-index: 80;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 28px 20px 36px;
      background: var(--glass);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
    }
    .photo-lightbox.is-open { display: flex; }
    .photo-lightbox figure {
      margin: 0;
      max-width: min(1080px, 100%);
      text-align: center;
    }
    .photo-lightbox img {
      display: block;
      max-width: 100%;
      max-height: min(78vh, 920px);
      width: auto;
      height: auto;
      margin: 0 auto;
      object-fit: contain;
      border-radius: var(--radius-card);
      border: 1px solid var(--blue-line);
      background: #0a0a0a;
    }
    .photo-lightbox figcaption {
      margin-top: 16px;
      color: #fff;
      font-family: Geist, Inter, "SF Pro Text", sans-serif;
      font-size: 16px;
      letter-spacing: -0.02em;
      line-height: 1.45;
    }
    .photo-lightbox figcaption a { color: var(--blue-2); }
    .photo-lightbox-x {
      position: absolute;
      top: 16px;
      right: 16px;
      min-height: 44px;
      padding: 0 16px;
      border-radius: var(--radius-pill);
      border: 1px solid rgba(255, 255, 255, 0.28);
      background: var(--glass-bar);
      color: #fff;
      cursor: pointer;
    }
    .hero-slides {
      display: flex;
      height: 100%;
      width: 100%;
      transition: transform 0.45s ease;
    }
    .hero-slides.is-dragging { transition: none; }
    .hero-slide { flex: 0 0 100%; height: 100%; }
    .frame img { width: 100%; height: 100%; object-fit: cover; }
    .hero-photo img { object-position: center 42%; }
    .hero-dots {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 2px;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 4px;
      z-index: 2;
    }
    .hero-dots button {
      box-sizing: content-box;
      width: 11px;
      height: 11px;
      padding: 11px;
      border: 0;
      border-radius: var(--radius-pill);
      background-color: rgba(255, 255, 255, 0.55);
      background-clip: content-box;
      cursor: pointer;
      line-height: 0;
      font-size: 0;
    }
    .hero-dots button[aria-current="true"] { width: 26px; background-color: #fff; }
    .hero-arrow {
      position: absolute;
      top: 50%;
      z-index: 2;
      transform: translateY(-50%);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 44px;
      height: 44px;
      padding: 0;
      border-radius: 50%;
      border: 1px solid rgba(255, 255, 255, 0.28);
      background: var(--glass-bar);
      color: #fff;
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }
    .hero-arrow-prev { left: 12px; }
    .hero-arrow-next { right: 12px; }
    .hero-arrow:hover { background: var(--glass); }
    .hero-arrow svg { display: block; }
    .hero-pause {
      position: absolute;
      top: 12px;
      left: 12px;
      z-index: 2;
      min-height: 36px;
      padding: 0 12px;
      border-radius: var(--radius-pill);
      border: 1px solid rgba(255, 255, 255, 0.28);
      background: var(--glass-bar);
      color: #fff;
      cursor: pointer;
    }
    figcaption {
      margin-top: 10px;
      color: var(--dim);
      text-shadow: 0 2px 28px rgba(0, 0, 0, 0.55);
      font-family: "Geist Mono", "Geist Mono Fallback", ui-monospace, SFMono-Regular, Menlo, monospace;
      font-size: 12px;
      letter-spacing: 0.04em;
    }
    figcaption a { color: var(--muted); }

    .stats {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      background: var(--glass);
      border: 1px solid var(--blue-line-soft);
      border-radius: var(--radius-card);
      backdrop-filter: blur(16px);
      padding: 6px 18px;
    }
    .stats strong { color: #fff; }
    /* 2026-09-26 (audit fix 22): the Coverage heading now sits inside the same glass card as
       every other homepage section; the map link is an inner panel of that card. */
    .area-preview-map {
      display: grid;
      grid-template-columns: 1.4fr 0.8fr;
      gap: 28px;
      align-items: center;
      margin-top: 8px;
      padding: 22px;
      text-decoration: none;
      color: inherit;
      border: 1px solid var(--blue-line);
      border-radius: var(--radius-card);
      background:
        radial-gradient(120% 80% at 10% 0%, var(--blue-line-soft), transparent 55%),
        #071018;
    }
    .area-preview-map svg { width: 100%; height: auto; display: block; }
    .area-preview-map strong { display: block; font-size: 1.35rem; font-weight: 500; letter-spacing: -0.03em; margin-bottom: 8px; }
    .area-preview-map span { color: var(--blue-2); }
    @media (max-width: 700px) {
      .area-preview-map { grid-template-columns: 1fr; }
    }
    .stats div { padding: 22px 18px 22px 0; }
    .stats div + div { padding-left: 18px; border-left: 1px solid var(--line); }
    .stats strong {
      display: block;
      font-size: clamp(1.5rem, 2vw, 1.85rem);
      font-weight: 500;
      letter-spacing: -0.04em;
    }
    .stats span { color: var(--dim); font-size: 13px; }
    .stats strong[data-count] { font-variant-numeric: tabular-nums; }

    h2 {
      margin: 0 0 18px;
      font-size: var(--type-h2);
      font-weight: 500;
      letter-spacing: -0.04em;
      line-height: 1.05;
    }
    .split {
      display: grid;
      grid-template-columns: 0.8fr 1.2fr;
      gap: 48px;
    }
    .about-side {
      display: flex;
      flex-direction: column;
    }
    .about-photo {
      margin: 22px 0 0;
      flex: 1;
      display: flex;
      flex-direction: column;
    }
    .about-photo .frame {
      flex: 1;
      min-height: 220px;
    }
    .about-photo img { object-position: center 40%; }
    .prose p { margin: 0 0 16px; max-width: 57ch; color: #cfcfcf; text-wrap: pretty; }
    .prose .about-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 0 0 22px;
      padding: 0;
      list-style: none;
    }
    .prose .about-list li {
      margin: 0;
      padding: 6px 12px;
      border: 1px solid rgba(255, 255, 255, 0.16);
      border-radius: var(--radius-pill);
      background: rgba(255, 255, 255, 0.04);
      color: #cfcfcf;
    }
    .prose .about-list a { text-decoration: none; }
    .prose .about-list a:hover { text-decoration: underline; }
    .prose a, .note a, details a, .review-links a, figcaption a, .split a, .link-list a { color: var(--blue-2); }

    .service-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      border-top: 1px solid var(--line);
    }
    .service-grid .service-card {
      display: flex;
      flex-direction: column;
      gap: 28px;
      min-height: 220px;
      padding: 22px 20px 22px 0;
      text-decoration: none;
      border-bottom: 1px solid var(--line);
    }
    .service-grid .service-card + .service-card { padding-left: 20px; border-left: 1px solid var(--line); }
    .service-grid .service-card:hover { background: var(--blue-wash); }
    .service-card strong a { color: inherit; text-decoration: none; }
    .service-request {
      align-self: flex-start;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-top: 2px;
      padding: 7px 14px;
      border: 1px solid var(--blue);
      border-radius: var(--radius-pill);
      background: transparent;
      color: var(--blue);
      font-size: 14px;
      font-weight: 500;
      line-height: 1.2;
      text-decoration: none;
      white-space: nowrap;
      transform-origin: left center;
      transition: transform 0.2s ease;
    }
    .service-request:hover {
      text-decoration: none;
      transform: scale(1.07);
    }
    .service-request:focus-visible {
      outline: 2px solid var(--blue);
      outline-offset: 3px;
      border-color: var(--blue);
      color: var(--blue);
    }
    @media (min-width: 981px) {
      .service-grid { display: flex; align-items: stretch; }
      .service-grid .service-card {
        flex: 1 1 0;
        min-width: 0;
        transition: flex-grow 0.45s ease, background-color 0.35s ease;
      }
      .service-grid:has(.service-card:hover) .service-card { flex-grow: 0.88; }
      .service-grid:has(.service-card:hover) .service-card:hover { flex-grow: 1.36; }
    }
    /* 2026-09-26 (audit fix 4): the one-line clamp that expanded on hover read as cut-off copy
       on desktop ("Guest arrival, ceremony timing,…"). The cards now show their full sentence. */
    .idx {
      font-family: "Geist Mono", "Geist Mono Fallback", ui-monospace, SFMono-Regular, Menlo, monospace;
      color: var(--blue);
      font-size: 12px;
    }
    .service-grid strong {
      display: block;
      font-size: 20px;
      font-weight: 500;
      letter-spacing: -0.03em;
      margin-bottom: 8px;
    }
    .service-grid p { margin: 0; color: var(--muted); font-size: 14px; }
    .note { margin: 18px 0 0; color: var(--muted); }

    .steps {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      border-top: 1px solid var(--line);
    }
    .steps article { padding: 22px 22px 8px 0; }
    .steps article + article { padding-left: 22px; border-left: 1px solid var(--line); }
    .steps h3 {
      margin: 10px 0 8px;
      font-size: 18px;
      font-weight: 500;
      letter-spacing: -0.03em;
    }
    .steps p { margin: 0; color: var(--muted); font-size: 14px; }
    @media (prefers-reduced-motion: no-preference) {
      html.step-anim .steps:not(.is-in) article {
        opacity: 0;
        transform: translateY(16px);
        transition: opacity 0.8s ease, transform 0.8s ease;
      }
      .steps article:nth-child(1) { transition-delay: 0.86s; }
      .steps article:nth-child(2) { transition-delay: 0.59s; }
      .steps article:nth-child(3) { transition-delay: 0.32s; }
      .steps article:nth-child(4) { transition-delay: 0.05s; }
      .steps.is-in article { opacity: 1; transform: none; }
      .steps.is-in article:nth-child(1) { transition-delay: 0.05s; }
      .steps.is-in article:nth-child(2) { transition-delay: 0.32s; }
      .steps.is-in article:nth-child(3) { transition-delay: 0.59s; }
      .steps.is-in article:nth-child(4) { transition-delay: 0.86s; }
    }

    /* .score and .stars moved to v2-components.css (2026-09-27, G9, pillar-site D1) so /reviews
       can share the same rating badge. The mobile size override below is unchanged. */
    blockquote {
      margin: 0;
      padding: 28px 0;
      border-top: 1px solid var(--line);
      font-size: clamp(1.25rem, 2vw, 1.7rem);
      font-weight: 500;
      letter-spacing: -0.03em;
      line-height: 1.25;
    }
    blockquote cite {
      display: block;
      margin-top: 12px;
      font-style: normal;
      font-size: 14px;
      font-weight: 400;
      color: var(--dim);
      letter-spacing: 0;
    }
    .review-links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 8px; }
    .review-links a { color: var(--blue-2); }

    .cols-3 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
    }
    .cols-3 h3 {
      margin: 0 0 12px;
      font-size: 14px;
      font-weight: 500;
      color: var(--dim);
    }
    .link-list { list-style: none; margin: 0; padding: 0; }
    .link-list a {
      display: inline-block;
      padding: 6px 0;
      color: var(--blue-2);
      text-decoration: none;
      border-bottom: 1px solid transparent;
    }
    .link-list a:hover { border-bottom-color: var(--blue); }

    .cta-band { border: 0; }
    .cta-band .hero-actions { margin-top: 22px; }
    @media (min-width: 981px) {
      .cta-band .hero-actions {
        width: 100%;
        flex-wrap: nowrap;
        align-items: stretch;
      }
      .cta-band .hero-actions .btn {
        flex: 1 1 0;
        min-width: 0;
        min-height: 60px;
        padding: 0 20px;
        border-radius: var(--radius-card);
        font-size: 16px;
        font-weight: 600;
        letter-spacing: -0.02em;
        white-space: nowrap;
        box-shadow: none;
      }
      .cta-band .hero-actions:has(a:hover) a { flex-grow: 0.88; }
      .cta-band .hero-actions:has(a:hover) a:hover { flex-grow: 1.36; }
      .cta-band .hero-actions a.btn:hover {
        background: #d7ecff;
        border-color: #fff;
        color: #041018;
        box-shadow: 0 12px 28px var(--blue-line);
      }
      .cta-band .hero-actions a.btn-ghost:hover {
        background: #8ec4ff;
        border-color: #fff;
        color: #041018;
        box-shadow: 0 12px 28px var(--blue-line);
      }
    }
    @media (min-width: 981px) and (prefers-reduced-motion: no-preference) {
      .cta-band .hero-actions .btn {
        transition: flex-grow 0.45s ease, background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
      }
    }

    @media (max-width: 980px) {
      .hero { align-items: start; padding-top: 36px; gap: 28px; }
      .hero .hero-actions a[href^="tel:"] { display: none; }
      .split { gap: 8px; align-items: start; }
      .about-side { display: contents; }
      .split > .prose { order: 1; }
      .about-photo { order: 2; flex: none; margin: 14px 0 0; }
      .about-photo .frame { min-height: 0; aspect-ratio: 4 / 3; }
      .about-side .eyebrow,
      .about-side h2,
      .about-side > p { margin: 0; }
      .hero-photo { display: none; }
      .hero-copy {
        min-height: calc(100svh - var(--nav) - env(safe-area-inset-bottom));
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding-bottom: 208px;
      }
      .hero, .split, .cols-3 { grid-template-columns: 1fr; }
      .service-grid, .steps, .stats { grid-template-columns: 1fr 1fr; }
      .service-grid .service-card + .service-card, .steps article + article, .stats div + div {
        border-left: 0;
        padding-left: 0;
      }
      .service-grid .service-card:nth-child(odd),
      .steps article:nth-child(odd),
      .stats div:nth-child(odd) { padding-right: 16px; }
      .service-grid .service-card:nth-child(even),
      .steps article:nth-child(even),
      .stats div:nth-child(even) {
        padding-left: 16px;
        border-left: 1px solid var(--line);
      }
      .cta-band .hero-actions {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        width: 100%;
      }
      .cta-band .hero-actions .btn {
        width: 100%;
        flex: 0 0 auto;
        min-height: 60px;
        height: 60px;
        padding: 0 20px;
        border-radius: var(--radius-card);
        white-space: nowrap;
      }
    }
    @media (max-width: 640px) {
      .service-grid, .steps { grid-template-columns: 1fr; }
      .service-grid .service-card + .service-card,
      .steps article + article,
      .service-grid .service-card:nth-child(even),
      .steps article:nth-child(even) {
        border-left: 0;
        padding-left: 0;
      }
      .service-grid .service-card, .steps article { border-top: 1px solid var(--line); }
      h1 { font-size: 2.55rem; }
      .score b { font-size: 64px; }
    }

