:root {
    --v58-section-gap: clamp(28px, 2.35vw, 42px);
    --v58-section-space: clamp(82px, 6.6vw, 112px);
    --v58-panel-radius: clamp(28px, 2.8vw, 42px);
    --v58-accent: #c58b2b;
    --v58-accent-rgb: 197, 139, 43;
}

.landing-v31-body { --v58-accent: #c58b2b; --v58-accent-rgb: 197, 139, 43; }
.school-public-body:not(.parent-public-body) { --v58-accent: #248f82; --v58-accent-rgb: 36, 143, 130; }
.parent-public-body { --v58-accent: #b36e10; --v58-accent-rgb: 179, 110, 16; }
.photographer-overview-body { --v58-accent: #d2a13b; --v58-accent-rgb: 210, 161, 59; }
.solution-showcase-body { --v58-accent: #58bda8; --v58-accent-rgb: 88, 189, 168; }
.pricing-showcase-body { --v58-accent: #c9892f; --v58-accent-rgb: 201, 137, 47; }
.software-showcase-body { --v58-accent: #5ca7bc; --v58-accent-rgb: 92, 167, 188; }
.software-detail-2shoot { --v58-accent: #55c39f; --v58-accent-rgb: 85, 195, 159; }
.software-detail-fornb { --v58-accent: #8a9fdf; --v58-accent-rgb: 138, 159, 223; }
.faq-showcase-body { --v58-accent: #6f9f94; --v58-accent-rgb: 111, 159, 148; }
.contact-streamlined-body { --v58-accent: #4cb7a1; --v58-accent-rgb: 76, 183, 161; }

/* Every major chapter gets a visible pause without leaving an empty screen. */
.landing-v31-body .page-content > section + section,
.school-public-body .page-content > section + section,
.photographer-cinematic .page-content > section + section {
    margin-top: var(--v58-section-gap);
}

.landing-v31-spaces,
.landing-v31-journey,
.landing-v31-tools,
.landing-v31-final,
.school-entry-features,
.school-partner-contact,
.parent-trust-section {
    border: 1px solid rgba(7, 26, 56, .09);
    border-radius: var(--v58-panel-radius);
    box-shadow: 0 24px 68px rgba(7, 26, 56, .07);
}

.landing-v31-spaces,
.landing-v31-tools,
.school-entry-features,
.parent-trust-section {
    padding-block: clamp(86px, 7vw, 116px);
    background: linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(245, 249, 246, .78));
    backdrop-filter: blur(12px) saturate(1.05);
}

.landing-v31-journey {
    padding-block: clamp(80px, 6.5vw, 108px);
    overflow: hidden;
}

.landing-v31-final,
.school-partner-contact {
    padding-block: clamp(76px, 6vw, 104px);
}

.school-entry-hero,
.parent-entry-hero,
.school-v57-scene,
.parent-v57-scene,
.school-editorial-story,
.landing-v57-scene {
    border: 1px solid rgba(7, 26, 56, .09);
    border-radius: var(--v58-panel-radius);
    box-shadow: 0 28px 74px rgba(7, 26, 56, .09);
}

.landing-v31-section-head,
.school-features-intro {
    margin-bottom: clamp(42px, 4.2vw, 68px);
    column-gap: clamp(38px, 6vw, 108px);
}

.landing-v31-section-head > p,
.school-features-intro > p,
.school-entry-lead,
.school-story-copy > p,
.parent-v57-scene-copy > p {
    color: #405c64;
    line-height: 1.72;
}

.landing-v31-space-grid,
.landing-v31-tool-grid,
.school-entry-features {
    gap: clamp(22px, 2.4vw, 36px);
}

.landing-v31-space-card {
    min-height: 430px;
    padding: clamp(32px, 3.1vw, 48px);
}

.landing-v31-tool,
.school-entry-features > article,
.parent-trust-section > article {
    padding: clamp(30px, 2.8vw, 44px);
}

.school-entry-features > article {
    min-height: 300px;
}

.school-partner-contact {
    column-gap: clamp(48px, 6vw, 100px);
    background: linear-gradient(135deg, rgba(252, 253, 250, .96), rgba(237, 248, 244, .88));
}

.school-partner-form-card {
    padding: clamp(34px, 4vw, 58px);
    box-shadow: 0 28px 74px rgba(7, 26, 56, .1);
}

.school-entry-features small,
.parent-trust-section small,
.school-partner-privacy,
.school-partner-form-card small {
    font-size: max(.78rem, 12.5px) !important;
    line-height: 1.55;
}

.public-formula-card header > p,
.public-formula-card small {
    font-size: max(.78rem, 12.5px) !important;
    line-height: 1.5;
}

.landing-v31-body main small,
.school-public-body main small,
.photographer-cinematic main small,
.school-partner-form-card > header > p {
    font-size: max(.78rem, 12.5px) !important;
    line-height: 1.5;
}

.public-formula-inclusions li {
    padding-block: clamp(13px, 1.25vw, 18px);
}

.pricing-core-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(14px, 1.6vw, 24px);
}

.pricing-core-grid article {
    display: grid;
    min-height: 235px;
    padding: clamp(24px, 2.4vw, 34px);
    border: 1px solid rgba(7, 26, 56, .1);
    border-radius: 24px;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 16px 40px rgba(7, 26, 56, .055);
    grid-template-rows: auto 1fr auto;
    gap: 18px;
}

.pricing-core-grid article > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    color: var(--errailium-navy);
    border-radius: 12px;
    background: rgba(var(--v58-accent-rgb), .16);
    font-size: .72rem;
    font-weight: 900;
}

.pricing-core-grid h3 {
    margin: 0 0 .65rem;
    color: var(--errailium-navy);
    font-size: clamp(1.08rem, 1.35vw, 1.42rem);
}

.pricing-core-grid p {
    margin: 0;
    color: var(--errailium-muted);
    line-height: 1.62;
}

.pricing-core-grid b {
    color: #0b6a58;
    font-size: .67rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.public-formula-inclusions li.is-core-only {
    border: 1px solid rgba(15, 128, 106, .14);
    background: rgba(232, 247, 241, .82);
}

.cinema-option-row > b .public-text-link {
    display: block;
    margin-top: .35rem;
    white-space: nowrap;
}

.public-formula-pricing .is-payment-included dd {
    color: #0b6a58;
}

.public-formula-pricing .is-payment-included dd small {
    display: block;
    margin-top: .16rem;
    color: var(--errailium-muted);
}

.public-formula-card.is-premium .public-formula-pricing .is-payment-included dd {
    color: #f4ca68;
}

.public-formula-card.is-premium .public-formula-pricing .is-payment-included dd small {
    color: rgba(255, 255, 255, .62);
}

.pricing-option-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    border-top: 0;
}

.pricing-option-grid .cinema-option-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
    padding: clamp(22px, 2.2vw, 32px);
    border: 1px solid rgba(7, 26, 56, .11);
    border-radius: 24px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 16px 42px rgba(7, 26, 56, .06);
}

.pricing-option-grid .cinema-option-row > span {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 13px;
    background: var(--errailium-gold-soft);
}

.pricing-option-grid .cinema-option-row > strong {
    padding-top: .45rem;
    font-size: 1.16rem;
}

.pricing-option-grid .cinema-option-row > p {
    grid-column: 2 / -1;
    line-height: 1.62;
}

.pricing-option-grid .cinema-option-row > b {
    min-width: 155px;
    padding-top: .45rem;
    font-size: .86rem;
    line-height: 1.4;
}

.pricing-option-grid .cinema-option-row > b small {
    display: block;
    color: var(--errailium-muted);
    font-size: .7rem;
    font-weight: 700;
}

@media (max-width: 980px) {
    .pricing-core-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pricing-option-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .pricing-core-grid {
        grid-template-columns: 1fr;
    }

    .pricing-core-grid article {
        min-height: 0;
    }

    .pricing-option-grid .cinema-option-row {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .pricing-option-grid .cinema-option-row > b,
    .pricing-option-grid .cinema-option-row > p {
        grid-column: 2;
        min-width: 0;
        padding-top: 0;
        text-align: left;
    }
}

.public-text-link,
.school-entry-back {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
}

.gateway-kicker,
.landing-v31-kicker,
.cinema-eyebrow {
    color: var(--v58-accent);
}

/* Photographer presentation pages: distinct chapters rather than one continuous slab. */
.photographer-cinematic .cinema-section {
    padding-block: var(--v58-section-space) !important;
}

.photographer-cinematic .cinema-section.cinema-wrap {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(7, 26, 56, .1);
    border-radius: var(--v58-panel-radius);
    padding-inline: clamp(34px, 4.4vw, 76px);
    background: linear-gradient(145deg, rgba(255, 255, 255, .66), rgba(244, 248, 245, .42));
    box-shadow:
        inset 0 3px 0 rgba(var(--v58-accent-rgb), .78),
        0 28px 80px rgba(7, 26, 56, .07);
    backdrop-filter: blur(10px) saturate(1.03);
}

.photographer-overview-body .cinema-section[aria-labelledby="story-title"] {
    overflow: visible;
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.photographer-cinematic .cinema-section.is-navy,
.photographer-cinematic .cinema-marquee {
    width: min(calc(100% - 28px), 1780px);
    margin-inline: auto;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--v58-panel-radius);
    box-shadow:
        inset 0 3px 0 rgba(var(--v58-accent-rgb), .9),
        0 30px 86px rgba(7, 26, 56, .13);
}

.photographer-cinematic .cinema-statement {
    border: 1px solid rgba(7, 26, 56, .09);
    border-radius: var(--v58-panel-radius);
    background: rgba(255, 255, 255, .58);
    box-shadow: 0 24px 66px rgba(7, 26, 56, .06);
    backdrop-filter: blur(10px);
}

.photographer-cinematic .cinema-section-head {
    margin-bottom: clamp(52px, 5vw, 82px);
    column-gap: clamp(42px, 7vw, 126px);
}

.photographer-cinematic .cinema-section-head > p,
.photographer-cinematic .cinema-section-head > div > p:last-child {
    color: #3f5c64;
    line-height: 1.75;
}

.photographer-cinematic .is-navy .cinema-section-head > p,
.photographer-cinematic .is-navy .cinema-section-head > div > p:last-child,
.photographer-cinematic .is-navy article > p {
    color: rgba(255, 255, 255, .76);
}

.cinema-feature-rail,
.software-moment-grid,
.cinema-bands,
.pricing-grid,
.software-deployment {
    gap: clamp(20px, 2.4vw, 36px);
}

.cinema-feature-rail > article,
.software-moment-grid > article,
.cinema-band,
.software-deployment > li {
    padding: clamp(30px, 3vw, 50px);
}

.cinema-band {
    min-height: 178px;
}

.cinema-proof > div,
.cinema-route > a,
.cinema-route > div {
    padding: clamp(36px, 4.2vw, 68px);
}

.cinema-cta {
    min-height: 330px;
    padding: clamp(46px, 5.5vw, 86px);
}

.cinema-faq-groups,
.xp-faq-groups {
    gap: clamp(64px, 7vw, 112px);
}

.cinema-faq-group details summary,
.xp-faq-group summary {
    padding-block: clamp(24px, 2.2vw, 34px);
}

.cinema-contact {
    column-gap: clamp(54px, 7vw, 122px);
}

.cinema-contact-form {
    padding: clamp(38px, 4.5vw, 68px);
}

.photographer-cinematic .showcase-footer,
.landing-v31-body .showcase-footer,
.school-public-body .showcase-footer {
    margin-top: var(--v58-section-gap);
}

/* Keep the complete desktop navigation legible on medium-large screens. */
@media (min-width: 1181px) and (max-width: 1520px) {
    .public-showcase-body .photographer-public-topbar {
        gap: .75rem;
        padding-inline: 12px;
    }

    .public-showcase-body .photographer-public-topbar .public-topnav {
        justify-content: space-between;
        gap: .45rem;
    }

    .photographer-nav-main,
    .photographer-nav-actions {
        gap: .28rem;
    }

    .public-showcase-body .photographer-public-topbar .photographer-nav-link,
    .public-showcase-body .photographer-public-topbar .photographer-nav-dropdown > summary {
        min-height: 42px;
        padding-inline: .58rem;
        font-size: .78rem;
    }

    .photographer-nav-actions .photographer-contact-link,
    .photographer-nav-actions .photographer-login-link {
        min-width: 0 !important;
        padding-inline: .72rem;
    }

    .photographer-nav-actions .photographer-contact-link {
        font-size: .74rem;
    }

    .photographer-nav-actions .photographer-login-link span {
        font-size: .76rem;
    }
}

@media (max-width: 1100px) {
    :root {
        --v58-section-gap: clamp(22px, 3vw, 30px);
        --v58-section-space: clamp(68px, 8vw, 88px);
        --v58-panel-radius: clamp(24px, 4vw, 34px);
    }

    .landing-v31-spaces,
    .landing-v31-tools,
    .school-entry-features,
    .parent-trust-section,
    .landing-v31-journey,
    .landing-v31-final,
    .school-partner-contact {
        padding-block: clamp(68px, 8vw, 88px);
    }

    .landing-v31-space-card {
        min-height: 0;
    }

    .school-entry-features > article {
        min-height: 260px;
    }

    .photographer-cinematic .cinema-section.cinema-wrap {
        padding-inline: clamp(28px, 5vw, 50px);
    }
}

@media (max-width: 560px) {
    :root {
        --v58-section-gap: 16px;
        --v58-section-space: 58px;
        --v58-panel-radius: 24px;
    }

    .landing-v31-spaces,
    .landing-v31-tools,
    .school-entry-features,
    .parent-trust-section,
    .landing-v31-journey,
    .landing-v31-final,
    .school-partner-contact {
        padding-block: 54px;
    }

    .landing-v31-section-head,
    .school-features-intro,
    .photographer-cinematic .cinema-section-head {
        margin-bottom: 38px;
    }

    .landing-v31-space-card,
    .landing-v31-tool,
    .school-entry-features > article,
    .parent-trust-section > article,
    .cinema-feature-rail > article,
    .software-moment-grid > article,
    .cinema-band,
    .software-deployment > li {
        padding: 26px;
    }

    .school-entry-features > article,
    .cinema-band {
        min-height: 0;
    }

    .photographer-cinematic .cinema-section.cinema-wrap {
        width: calc(100% - 16px);
        padding-inline: 24px;
    }

    .photographer-cinematic .cinema-section.is-navy,
    .photographer-cinematic .cinema-marquee {
        width: calc(100% - 16px);
    }

    .cinema-cta {
        min-height: 0;
        padding: 34px 26px;
    }
}

/* One framing grid for every photographer page. Historical rules mixed full-width,
   1780px and viewport-bound panels, which made each chapter start on a new axis. */
.photographer-cinematic {
    --photographer-frame-max: 1720px;
    --photographer-frame-gutter: clamp(18px, 2.35vw, 46px);
}

.photographer-cinematic .photographer-public-topbar,
.photographer-cinematic .page-content > section.cinema-hero,
.photographer-cinematic .page-content > section.cinema-wrap,
.photographer-cinematic .page-content > section.cinema-section.is-navy,
.photographer-cinematic .page-content > section.cinema-marquee {
    box-sizing: border-box;
    width: min(
        calc(100% - (2 * var(--photographer-frame-gutter))),
        var(--photographer-frame-max)
    );
    max-width: var(--photographer-frame-max);
    margin-inline: auto;
}

.photographer-cinematic .page-content > section.cinema-section.is-navy > .cinema-wrap {
    width: 100%;
    max-width: none;
}

/* Reveal motion may fade a complete chapter, but its outer frame must not shrink
   or slide away from the common page grid while entering the viewport. */
.photographer-cinematic .page-content > section[data-unique-motion] {
    transform: none !important;
}

.photographer-cinematic .showcase-footer-grid,
.photographer-cinematic .showcase-footer-bottom {
    max-width: var(--photographer-frame-max);
}

@media (max-width: 760px) {
    .photographer-cinematic {
        --photographer-frame-gutter: 10px;
    }
}
