/*
 * MoCo Brand v3 — page sections
 * Loaded on every page. Styles the semantic classes authored in the block
 * editor, so page content needs no edits to carry the brand.
 *
 * Signal discipline: one signal colour per surface.
 *   Home  → yellow (PITCH, the default CTA)
 *   About → blue   (see about-page.css)
 * For Brands and For Agencies are told apart by surface (navy vs cream),
 * never by mixing two signals on one page.
 */

/* ==========================================================================
   Full-bleed helper
   --------------------------------------------------------------------------
   Sections are authored inside .container. This lets a section span the
   viewport while its inner wrapper re-constrains the measure.
   ========================================================================== */

.moco-general-statement,
.for-brands-section,
.for-agencies-section {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    position: relative;
}

.for-brands-content,
.for-agencies-content {
    width: 100%;
    max-width: 1240px;
    margin-inline: auto;
    padding: var(--section-pad);
}

/* ==========================================================================
   Opening statement
   ========================================================================== */

.moco-general-statement {
    background: var(--navy);
    padding: clamp(48px, 7vw, 88px) 24px clamp(56px, 8vw, 96px);
}

.moco-headline {
    font-family: var(--font-display);
    font-weight: 900;
    font-style: italic;
    text-transform: uppercase;
    font-size: clamp(2.75rem, 5.5vw, 4.5rem);
    line-height: 0.9;
    letter-spacing: -0.035em;
    color: var(--cream);
    max-width: 22ch;
    margin: 0 auto;
}

/* Live stripe under the statement — four neutral bars, one yellow. */
.moco-general-statement::after {
    content: '';
    display: block;
    width: 50px;
    height: 16px;
    margin: 36px auto 0;
    transform: skewX(-30deg);
    background-image:
        linear-gradient(var(--yellow), var(--yellow)),
        repeating-linear-gradient(90deg, var(--navy3) 0 6px, transparent 6px 11px);
    background-size: 6px 100%, auto;
    background-position: 100% 0, 0 0;
    background-repeat: no-repeat, repeat;
}

/* ==========================================================================
   Surfaces — navy is home, cream is the counterpoint
   ========================================================================== */

.for-brands-section {
    background: var(--navy);
    --signal: var(--yellow);
    --on-signal: var(--navy);
}

/* Cream surface: flip the whole token contract, not individual colours. */
.for-agencies-section {
    background: var(--cream);
    --surface:    var(--cream);
    --surface-2:  #F5F4EE;
    --ink:        var(--navy);
    --ink-2:      var(--ink-cream-2);
    --line:       var(--cream2);
    --card:       #F5F4EE;
    --card-line:  var(--cream2);
    /* Yellow is illegible on cream. This surface takes blue (PROSPECT) —
       still one signal per surface, just a different one from the navy half. */
    --signal:     var(--blue);
    --on-signal:  var(--cream);
    --link-hover: var(--blue);
    --slash-base: var(--cream2);
    color: var(--navy);
}

/* Each section opens with a slash bleeding off the right edge. */
.for-brands-section::before,
.for-agencies-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: clamp(120px, 16vw, 220px);
    height: clamp(28px, 3.6vw, 48px);
    transform: translate(14%, -50%) skewX(-30deg);
    background-image: repeating-linear-gradient(
        90deg,
        var(--slash-base) 0 12.5%,
        transparent 12.5% 20%
    );
    pointer-events: none;
}

/* ==========================================================================
   Section typography
   ========================================================================== */

.section-eyebrow {
    display: flex;
    align-items: center;
    gap: 14px;
    color: var(--ink-2);
}

/* Eyebrow carries a small slash cluster, signal bar last. */
.section-eyebrow::after {
    content: '';
    flex: none;
    width: 38px;
    height: 12px;
    transform: skewX(-30deg);
    background-image:
        linear-gradient(var(--signal), var(--signal)),
        repeating-linear-gradient(90deg, var(--line) 0 5px, transparent 5px 8.5px);
    background-size: 5px 100%, auto;
    background-position: 100% 0, 0 0;
    background-repeat: no-repeat, repeat;
}

.section-headline {
    font-family: var(--font-display);
    font-weight: 900;
    font-style: italic;
    text-transform: uppercase;
    font-size: var(--size-headline);
    line-height: 0.95;
    letter-spacing: -0.03em;
    color: var(--ink);
    max-width: 16ch;
    margin: 0 0 28px;
}

.lead-text {
    font-size: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem);
    line-height: 1.45;
    color: var(--ink);
    max-width: var(--measure);
    margin-bottom: 40px;
}

/* ==========================================================================
   Pull quote — display type with a signal bar
   ========================================================================== */

.pull-quote {
    position: relative;
    padding: 4px 0 4px 28px;
    margin: 0 0 48px;
    border-left: 4px solid var(--signal);
    font-family: var(--font-display);
    font-weight: 900;
    font-style: italic;
    text-transform: uppercase;
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
    color: var(--ink);
    max-width: 20ch;
}

/* ==========================================================================
   Value props — cards, no radius, no shadow
   ========================================================================== */

.value-props {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gap);
    margin-bottom: 48px;
    counter-reset: vp;
}

.value-prop {
    position: relative;
    background: var(--card);
    outline: 1px solid var(--card-line);
    outline-offset: -1px;
    padding: 28px;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--ink-2);
    counter-increment: vp;
}

.value-prop h3 {
    font-family: var(--font-display);
    font-weight: 900;
    font-style: normal;
    font-size: 1.25rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--ink);
    margin: 0 0 12px;
    padding-right: 44px;
}

/* One number per card, tabular, in the surface signal. */
.value-prop::after {
    content: '0' counter(vp);
    position: absolute;
    top: 24px;
    right: 24px;
    font-family: var(--font-display);
    font-weight: 900;
    font-size: 1.125rem;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
    color: var(--signal);
    line-height: 1;
}

/* ==========================================================================
   Closing statement + CTA
   ========================================================================== */

.closing-statement {
    font-size: clamp(1.125rem, 1.02rem + 0.45vw, 1.3125rem);
    line-height: 1.45;
    color: var(--ink);
    max-width: var(--measure);
}

.cta-text {
    margin: 32px 0 0 !important;
    max-width: none;
}

/* .cta-text a picks up the skewed button from style.css §5. */

/* ==========================================================================
   Separator between sections
   ========================================================================== */

.content-separator {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-block: 0;
    padding: 32px max(24px, calc(50vw - 596px));
    background: var(--navy);
}

/* ==========================================================================
   Contact page
   ========================================================================== */

.contact-intro {
    font-size: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem);
    line-height: 1.45;
    color: var(--cream);
    max-width: var(--measure);
    margin-bottom: 32px;
}

.contact-cta {
    font-family: var(--font-display);
    font-weight: 900;
    font-style: italic;
    text-transform: uppercase;
    font-size: clamp(1.375rem, 2.4vw, 1.875rem);
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--cream);
    max-width: 22ch;
}
.contact-cta a { color: var(--yellow); }
.contact-cta a:hover { color: var(--cream); }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 900px) {
    .value-props { gap: 16px; }
}

@media (max-width: 768px) {
    .value-props { grid-template-columns: minmax(0, 1fr); }

    .moco-headline { font-size: clamp(2rem, 8vw, 2.75rem); max-width: none; }
    .pull-quote,
    .contact-cta { font-size: clamp(1.375rem, 5.5vw, 1.875rem); max-width: none; }

    .pull-quote { padding-left: 20px; margin-bottom: 36px; }

    .content-separator { padding: 24px; }
}
