/* ============================================================================
   Landing shell and typography — shared by ClientLanding, BodyguardLanding and
   PscLanding.

   These rules used to be copy-pasted into all three .razor.css files and drifted
   apart: 38px vs 34px section titles, #33373F vs #4E4F59 subtitles, 48px vs 18px
   section gaps, 120px vs 80px rhythm. Switching variant tabs visibly shifted the
   layout, so they live in one place now. Client's values are the baseline — that
   is the page the current design was built against.

   Every selector here only ever appears inside .landing-main-content, which is
   used by these three pages and nowhere else in the app, so nothing leaks.
   Anything genuinely page-specific stays in that page's .razor.css; scoped rules
   carry a [b-xxxx] attribute and therefore outrank this file automatically.
   ============================================================================ */

.landing-main-content {
    box-sizing: border-box;
    min-height: calc(100vh - 380px); /* 100vh minus the 380px footer */
    padding-top: 69px; /* the header is fixed and 69px tall, so it takes no flow space */
    overflow-x: clip; /* lets the audience slider bleed to the screen edge without a page scrollbar */
}

.landing-section {
    box-sizing: border-box;
    width: 100%;
    max-width: 1368px; /* 1320 content column + 2*24 padding */
    margin: 0 auto 120px;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 48px;
    font-family: 'Mulish', 'Geist', system-ui, sans-serif;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: 32px;
}

.section-title-wrapper {
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: flex-start;
    width: 100%;
}

.section-title {
    font-family: 'Mulish', sans-serif;
    font-weight: 700;
    font-size: 38px;
    line-height: 1.1;
    color: #000000;
    margin: 0;
}

.section-subtitle {
    font-family: 'Geist', sans-serif;
    font-weight: 500;
    font-size: 18px;
    line-height: 1.5;
    color: #33373F;
    max-width: 712px;
    margin: 0;
}

/* "Platform Features" is centered and one step smaller in the design */
.landing-section--centered .section-header {
    justify-content: center;
}

.landing-section--centered .section-title-wrapper {
    align-items: center;
}

.landing-section--centered .section-title {
    font-size: 34px;
    text-align: center;
}

/* Section CTA — 303x59, #222631, 12px radius */
.section-action {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}

.landing-cta {
    box-sizing: border-box;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 303px;
    max-width: 100%;
    padding: 20px 24px;
    background: #222631;
    color: #FFFFFF;
    border-radius: 12px;
    font-family: 'Geist', sans-serif;
    font-weight: 500;
    font-size: 16px;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease;
}

.landing-cta:hover {
    background: #2E3341;
    transform: translateY(-2px);
}

.landing-cta:active {
    transform: translateY(0);
}

/* RESPONSIVE — narrowest last, so the smaller breakpoints win where they overlap */
@media (max-width: 1200px) {
    .landing-section {
        margin-bottom: 96px;
        gap: 40px;
    }

    .section-title {
        font-size: 32px;
    }

    .landing-section--centered .section-title {
        font-size: 30px;
    }
}

@media (max-width: 992px) {
    .landing-section {
        margin-bottom: 72px;
        gap: 32px;
    }

    .section-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 16px;
    }

    .section-title-wrapper {
        align-items: center;
    }

    .section-title,
    .landing-section--centered .section-title {
        font-size: 28px;
    }

    .section-subtitle {
        text-align: center;
    }
}

@media (max-width: 768px) {
    /* The hero is pinned and static; the page scroll only moves the sheet over it */
    .landing-main-content {
        padding-top: 0;
    }

    /* Bottom sheet — rests --sheet-peek above the bottom of the pinned hero and is dragged
       up over it. The negative margin is what parks it there; scroll-snap-align gives it
       the "fully open" magnet, and the hero carries the "closed" one.
       It has to wrap every section: the hero stays pinned behind the whole page, so a
       transparent section further down would let it show through. */
    .landing-sheet {
        position: relative;
        z-index: 5;
        margin-top: calc(-1 * var(--sheet-peek, 32svh));
        padding-top: 40px;
        background: #FFFFFF;
        border-radius: 28px 28px 0 0;
        scroll-snap-align: start;
    }

    .dark .landing-sheet {
        background: var(--color-bg-body, #0F172A);
    }
}

/* Dark Theme Adaptation */
.dark .section-title {
    color: #FFFFFF;
}

.dark .section-subtitle {
    color: #9CA3AF;
}
