/* Home page finish. Layout and motion for desktop live in min-width 1024px.
   The phone layout is left as it is. */

@keyframes home-card-rise {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes home-light-sweep {
    from { transform: translateX(-130%); }
    to { transform: translateX(130%); }
}

@media (min-width: 1024px) {
    /* Shared centred column */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        border-radius: 0;
        box-sizing: border-box;
        padding: 4.75rem 2rem 5rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section:nth-of-type(odd) {
        background: #04161f;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section:nth-of-type(even) {
        background: #082c3a;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .section-head,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-intro-inner,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-locations-inner,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-viper-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .what-we-offer-grid,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .google-reviews-panel,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .mw-inner,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview > .gallery-grid,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview > .view-gallery,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > .email-capture-lead,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > .email-capture-form,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > .email-capture-flash,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > .hero-cta-row,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > .contact-info {
        width: 100%;
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }

    /* Pass 1 — framed hero, no blur side bars, large title in the same column */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > .hero.hero-photo {
        background: #04161f;
        padding: 4.75rem 2rem 2.5rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slider {
        width: 100%;
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        height: clamp(460px, 56vh, 680px);
        border: 3px solid #e8fffb;
        border-radius: 22px;
        background: #041820;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        overflow: hidden;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide-fill {
        display: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide-photo {
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        object-position: center;
        filter: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-intro-title,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .section-head h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-viper-copy h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .google-reviews-head-title h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .mw-header-text h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > h2 {
        max-width: 16ch;
        font-size: clamp(3.5rem, 4.8vw, 5.6rem);
        color: #f7fbfc;
        letter-spacing: -0.05em;
        line-height: 0.92;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .section-head,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-intro-copy,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-locations-inner,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > .contact-info {
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .eyebrow,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-intro-eyebrow,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-locations-eyebrow,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .section-head .eyebrow {
        color: #9ff7f0;
        letter-spacing: 0.18em;
        font-weight: 800;
    }

    /* 72px teal rule under the eyebrow, grows from the left */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .eyebrow::after,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-intro-eyebrow::after {
        content: "";
        display: block;
        width: 72px;
        height: 3px;
        margin-top: 0.75rem;
        background: #2bd4c8;
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .is-inview .eyebrow::after,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .is-inview .home-intro-eyebrow::after,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section.is-inview > .eyebrow::after {
        transform: scaleX(1);
    }

    /* Pass 2 — stat tiles and trip cards, even gaps, same column */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > .stats-strip {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.35rem;
        align-items: stretch;
        justify-content: stretch;
        width: min(1180px, calc(100% - 4rem));
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        padding: 4.75rem 0 5rem;
        background: #082c3a;
        border: 0;
        box-shadow: inset 0 8px 0 #2bd4c8;
        box-sizing: border-box;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item {
        min-width: 0;
        text-align: left;
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        padding: 1.35rem 1.4rem 1.45rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards.home-guiding-cards {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.35rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card.package-card-pro {
        text-align: left;
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        overflow: hidden;
        padding: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card-media {
        position: relative;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card-thumb {
        border: 0;
        border-radius: 0;
        box-shadow: none;
        margin: 0;
        transform: scale(1);
        transition: transform 640ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .package-price-badge {
        z-index: 4;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card-body {
        background: transparent;
        padding: 1.15rem 1.2rem 1.3rem;
    }

    /* Pass 3 — reviews and gallery stay in the column; drift keeps moving inside it */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .google-review-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview .gallery-item {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-item-frame {
        overflow: hidden;
        border-radius: 19px 19px 0 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-image {
        transform: scale(1);
        transition: transform 640ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* Pass 4 — offer list and the lower bands use the same rhythm */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .what-we-offer-grid {
        gap: 1.35rem;
        align-items: stretch;
        padding-bottom: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        padding: 1.5rem 1.4rem 1.6rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card + .offer-card {
        border-left: 3px solid #e8fffb;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-contact-cta {
        width: 100%;
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta {
        display: block;
        max-width: none;
        border: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > .hero-cta-row {
        justify-content: flex-start;
    }

    /* Pass 5 — rise, hover, sweep, buttons */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .reveal-on-scroll {
        animation: none;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section:not(.hero),
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card {
        opacity: 0;
        transform: translateY(18px);
        animation: none;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section:not(.hero).is-inview {
        opacity: 1;
        transform: none;
        transition: opacity 680ms cubic-bezier(0.16, 1, 0.3, 1), transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item.is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card.is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card.is-inview {
        opacity: 1;
        animation-name: home-card-rise;
        animation-duration: 680ms;
        animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
        animation-fill-mode: both;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stats-strip .stat-item:nth-child(2).is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(2).is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .what-we-offer-grid .offer-card:nth-child(2).is-inview {
        animation-delay: 70ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stats-strip .stat-item:nth-child(3).is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(3).is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .what-we-offer-grid .offer-card:nth-child(3).is-inview {
        animation-delay: 140ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(4).is-inview,
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .what-we-offer-grid .offer-card:nth-child(4).is-inview {
        animation-delay: 210ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(5).is-inview {
        animation-delay: 280ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(6).is-inview {
        animation-delay: 350ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(7).is-inview {
        animation-delay: 420ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:nth-child(8).is-inview {
        animation-delay: 490ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-google-reviews.is-inview .google-review-card:not([aria-hidden="true"]),
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview.is-inview .home-drift-track > .gallery-item:not([aria-hidden="true"]) {
        animation-name: home-card-rise;
        animation-duration: 640ms;
        animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
        animation-fill-mode: none;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-google-reviews.is-inview .home-drift-track > .google-review-card:nth-child(2),
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview.is-inview .home-drift-track > .gallery-item:nth-child(2) {
        animation-delay: 70ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-google-reviews.is-inview .home-drift-track > .google-review-card:nth-child(3),
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview.is-inview .home-drift-track > .gallery-item:nth-child(3) {
        animation-delay: 140ms;
    }

    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-google-reviews.is-inview .home-drift-track > .google-review-card:nth-child(4),
    .js body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview.is-inview .home-drift-track > .gallery-item:nth-child(4) {
        animation-delay: 210ms;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card-media::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: 2;
        background: linear-gradient(105deg, transparent 36%, rgba(232, 255, 251, 0.42) 50%, transparent 64%);
        transform: translateX(-130%);
        pointer-events: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn-secondary,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-photo-cta {
        transition: background 640ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 640ms cubic-bezier(0.16, 1, 0.3, 1), transform 640ms cubic-bezier(0.16, 1, 0.3, 1), border-color 640ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-photo-cta:hover {
        background: linear-gradient(180deg, #ffffff 0%, #c9fff8 40%, #2bd4c8 100%);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 14px 30px rgba(43, 212, 200, 0.5);
        color: #042028;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn-secondary:hover {
        background: rgba(43, 212, 200, 0.14);
        border-color: #e8fffb;
        box-shadow: 0 0 22px rgba(43, 212, 200, 0.45);
        color: #e8fffb;
    }
}

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview .gallery-item:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .google-review-card:hover {
        animation: none;
        opacity: 1;
        transform: translateY(-8px);
        border-color: #e8fffb;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.65), 0 28px 54px rgba(0, 0, 0, 0.45), 0 0 36px rgba(43, 212, 200, 0.55);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:hover .package-card-thumb,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-item:hover .gallery-image {
        transform: scale(1.045);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-featured-cards .package-card:hover .package-card-media::after {
        animation: home-light-sweep 720ms cubic-bezier(0.16, 1, 0.3, 1);
    }
}

/* Press does not move the layout. */
body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn:active,
body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn-secondary:active,
body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-photo-cta:active {
    transform: scale(0.98);
}

@media (prefers-reduced-motion: reduce) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > section,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .package-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .google-review-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-item,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .reveal-on-scroll,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-drift-track {
        animation: none;
        transition: none;
        opacity: 1;
        transform: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .package-card-thumb,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-image,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn:active,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .cta-btn-secondary:active,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-photo-cta:active {
        animation: none;
        transform: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .eyebrow::after,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-intro-eyebrow::after {
        transform: scaleX(1);
        transition: none;
    }
}

/* Pass 6 — the slider padding and the photo's own border were cropping the picture. */
@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slider {
        padding: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide.is-active {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide-photo {
        border: 0;
        border-radius: 0;
        box-shadow: none;
        max-height: none;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        filter: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide-fill {
        display: none;
        filter: none;
        opacity: 0;
    }

    /* This catch is taller than the wide frame. Cover would cut off the cap.
       Show the whole photo on the solid frame. The blurred side fill stays hidden. */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide-photo[src*="matt-large-snapper-boat"],
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .hero-slide-photo[srcset*="matt-large-snapper-boat"] {
        object-fit: contain;
        object-position: center center;
    }
}

/* Pass 7 — gallery, email, and contact titles were shrink-wrapped and centred. */
@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .gallery-preview > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .email-capture-section > h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .contact-cta > h2 {
        width: min(16ch, 1180px);
        max-width: min(16ch, 1180px);
        margin-left: max(0px, calc((100% - 1180px) / 2));
        margin-right: auto;
        text-align: left;
    }
}

/* Pass 8 — eyebrows were centred with a side tick. The rule sits under the label. */
@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .section-head .eyebrow,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-locations-eyebrow {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        width: auto;
        max-width: 100%;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .section-head .eyebrow::before,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-locations-eyebrow::before {
        content: none;
        display: none;
    }
}

/* Pass 9 — stray margins and a stats band that stopped short of the edges. */
@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > .packages,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > .gallery-preview,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > .email-capture-section {
        margin-top: 0;
        margin-bottom: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) > .stats-strip {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: max(2rem, calc((100% - 1180px) / 2));
        padding-right: max(2rem, calc((100% - 1180px) / 2));
    }
}

/* Pass 10 — offer tiles, stats, the Viper card, and the shop card had no lift. */
@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-viper-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-shop-card {
        transition: transform 660ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 660ms cubic-bezier(0.16, 1, 0.3, 1), border-color 660ms cubic-bezier(0.16, 1, 0.3, 1);
    }
}

@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-viper-card:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-shop-card:hover {
        animation: none;
        opacity: 1;
        transform: translateY(-8px);
        border-color: #e8fffb;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.65), 0 28px 54px rgba(0, 0, 0, 0.45), 0 0 36px rgba(43, 212, 200, 0.55);
    }
}

@media (prefers-reduced-motion: reduce) {
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-viper-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-shop-card,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .offer-card:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .stat-item:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-viper-card:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .hero.hero-photo) .home-shop-card:hover {
        animation: none;
        transition: none;
        transform: none;
    }
}
