/* ============================================================
   NTM /interviews/cover-stories — editorial listing redesign

   Six sections, each a top-level <section class="ntm-cs-..."> with
   its own surface, type scale, and palette:
     1. .ntm-cs-hero       — beige left + teal-gradient right
     2. .ntm-cs-archive    — white "The Covers." 3-up grid
     3. .ntm-cs-editor     — beige Editor's Choice (image + text)
     4. .ntm-cs-quote      — dark quote slider with teal glow
     5. .ntm-cs-openings   — white "Opening Lines." rows
     6. .ntm-cs-yourturn   — sand-beige CTA

   Tokens consumed from theme.css (NTM Cover Stories block):
     --ntm-bg-beige-light, --ntm-bg-beige-sand, --ntm-paper,
     --ntm-accent-teal, --ntm-accent-teal-light,
     --ntm-ink-body, --ntm-text-muted,
     --ntm-rule-light, --ntm-rule-dark, --ntm-text-inverse-muted,
     --ntm-hero-gradient
   ============================================================ */

.ntm-cs-hero,
.ntm-cs-archive,
.ntm-cs-editor,
.ntm-cs-quote,
.ntm-cs-openings,
.ntm-cs-yourturn {
    --ntm-font-serif: 'Fraunces', 'Playfair Display', Georgia, serif;
    --ntm-font-sans: 'Helvetica Neue', 'Inter', system-ui, -apple-system, sans-serif;

    --cs-container-max: 1392px;
    --cs-section-pad-x: clamp(20px, 5vw, 80px);
    --cs-fs-display: clamp(2.5rem, 5.6vw, 4.125rem);  /* 66px target */
    --cs-fs-h2-card: clamp(1.25rem, 2vw, 1.75rem);    /* 28px target */
    --cs-fs-eyebrow: 0.875rem;                         /* 14px → 18px clamp below */
    --cs-text-color: var(--ntm-ink-body, #121212);
    --cs-teal: var(--ntm-accent-teal, #2A8B94);
    --cs-teal-light: var(--ntm-accent-teal-light, #35ACB4);
    --cs-muted: var(--ntm-text-muted, #757776);

    color: var(--cs-text-color);
    font-family: var(--ntm-font-sans);
}

.ntm-cs-hero *,
.ntm-cs-archive *,
.ntm-cs-editor *,
.ntm-cs-quote *,
.ntm-cs-openings *,
.ntm-cs-yourturn * {
    box-sizing: border-box;
}

/* ============================================================
   SECTION 1 — HERO

   Layer order (back→front, established via `isolation: isolate`
   on the section so nothing in later sections can interfere):

     z=0  __panel        teal gradient, flush to the masthead, right ~58%
     z=1  __subject-card dark name card, bottom-right of the panel
     z=2  __portrait     transparent-PNG portrait, dead-centered, bottom
     z=3  __inner        title, deck, featured card — on top of portrait
   ============================================================ */
.ntm-cs-hero {
    position: relative;
    background: var(--ntm-bg-beige-light, #F8F6F1);
    overflow: hidden;
    isolation: isolate;
    min-height: clamp(640px, 70vw, 1000px);
}

.ntm-cs-hero__inner {
    position: relative;
    z-index: 3;
    max-width: var(--cs-container-max);
    margin: 0 auto;
    padding: clamp(48px, 6vw, 100px) var(--cs-section-pad-x);
}

.ntm-cs-hero__left {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 3vw, 50px);
    max-width: 560px;
}

.ntm-cs-hero__eyebrow {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--cs-teal);
}

.ntm-cs-hero__title {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(2.25rem, 4.8vw, 4.5rem); /* 72px target */
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--cs-text-color);
}

.ntm-cs-hero__title-accent {
    font-style: italic;
    color: var(--cs-teal);
}

.ntm-cs-hero__deck {
    margin: 0;
    max-width: 360px;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.0625rem, 1.5vw, 1.4375rem); /* 23px target */
    line-height: 1.2;
    color: var(--cs-text-color);
}

.ntm-cs-hero__featured {
    margin-top: clamp(8px, 1vw, 16px);
    padding: clamp(18px, 2vw, 26px);
    background: #FFFFFF;
    border: 1px solid var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1.4vw, 18px);
    max-width: 440px;
}

.ntm-cs-hero__featured-badge {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    background: var(--cs-teal);
    border: 1px solid var(--cs-teal);
    color: #FFFFFF;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.06em;
    line-height: 1.25;
    text-transform: uppercase;
}

.ntm-cs-hero__featured-title {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.375rem, 2.1vw, 2.125rem); /* 34px target */
    line-height: 1.2;
    letter-spacing: -0.005em;
    color: var(--cs-text-color);
}

.ntm-cs-hero__featured-dek {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: clamp(0.9375rem, 1vw, 1.0625rem); /* 17px target */
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: var(--cs-text-color);
}

.ntm-cs-hero__featured-cta {
    align-self: flex-start;
    margin-top: clamp(8px, 1.4vw, 24px);
    padding: 16px 36px;
    border: 0.5px solid var(--cs-text-color);
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cs-text-color);
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.ntm-cs-hero__featured-cta:hover,
.ntm-cs-hero__featured-cta:focus-visible {
    background: var(--cs-text-color);
    color: #FFFFFF;
}

/* Teal gradient panel — flush to the section top (no gap below the masthead). */
.ntm-cs-hero__panel {
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    /* Panel occupies the right ~58% of the viewport at desktop;
       below 1180px we collapse to a bottom band — see responsive. */
    left: 42%;
    right: 0;
    background: var(--ntm-hero-gradient,
        linear-gradient(123deg, #1BB0BA 0%, #1A5256 55%, #001A1D 100%));
    overflow: hidden;
}

.ntm-cs-hero__panel::after {
    /* Soft secondary highlight echoing the Figma "screen-blend" wash. */
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(60% 50% at 70% 35%, rgba(53, 172, 180, 0.35), transparent 70%);
    mix-blend-mode: screen;
    pointer-events: none;
}

/* Decorative arc — thin glowing curve behind the portrait's head/shoulder.
   Same z-band as the subject card (above the panel, below the portrait) and
   visually positioned in the upper-right of the panel to trace around the
   subject's head. mix-blend-mode: plus-lighter mirrors the Figma layer's
   light-additive look on the teal background. */
.ntm-cs-hero__arc {
    position: absolute;
    z-index: 1;
    top: clamp(220px, 22vw, 360px);
    left: calc(50% + 40px);
    right: auto;
    width: clamp(280px, 32vw, 560px);
    height: auto;
    pointer-events: none;
    opacity: 0.7;
    mix-blend-mode: plus-lighter;
}

/* Portrait — transparent PNG, slightly right of dead-center, anchored bottom.
   Renders ABOVE the subject card so the silhouette overlaps the card edge. */
.ntm-cs-hero__portrait {
    position: absolute;
    z-index: 2;
    bottom: 0;
    left: 50%;
    transform: translateX(calc(-50% + 50px));
    height: 88%;
    width: auto;
    max-width: 60vw;
    object-fit: contain;
    object-position: center bottom;
    pointer-events: none;
}

/* Dark "subject name" card — sits BEHIND the portrait. The card is wide
   so the portrait's silhouette covers the LEFT portion of the card; only
   the right side (name + role) shows through past the silhouette. */
.ntm-cs-hero__subject-card {
    position: absolute;
    z-index: 1;
    right: clamp(20px, 4vw, 80px);
    bottom: clamp(40px, 5vw, 80px);
    min-width: 440px;
    max-width: 560px;
    padding: 22px 28px 22px clamp(140px, 14vw, 220px);
    background: #161616;
    color: #FFFFFF;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Subtle gradient frame — intense on one corner, fades to the card colour
   by halfway across. The ::after solid fill masks the gradient inside the
   card bounds; only the 2px extension on each side stays visible. */
.ntm-cs-hero__subject-card::before {
    content: "";
    position: absolute;
    display: block;
    top: -2px;
    right: -2px;
    bottom: -2px;
    left: -2px;
    background: linear-gradient(223deg, #FFFFFF 0%, #161616 50%);
    z-index: -1;
}

.ntm-cs-hero__subject-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #161616;
    z-index: -1;
}

.ntm-cs-hero__subject-name {
    margin: 0 0 8px;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.5rem, 2.4vw, 2rem); /* 32px target */
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: #FFFFFF;
}

.ntm-cs-hero__subject-role {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: clamp(0.9375rem, 1.1vw, 1.375rem); /* 22px target */
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: var(--ntm-text-inverse-muted, rgba(255, 255, 255, 0.65));
}

/* ============================================================
   SECTION 2 — THE COVERS (archive grid)
   ============================================================ */
.ntm-cs-archive {
    background: #FFFFFF;
    padding: clamp(80px, 9vw, 128px) 0 clamp(56px, 5vw, 70px);
}

.ntm-cs-archive__head {
    max-width: var(--cs-container-max);
    margin: 0 auto clamp(40px, 5vw, 80px);
    padding: 0 var(--cs-section-pad-x);
    display: grid;
    /* Center column shrinks to content so the 1fr side tracks
       expand and the hairlines extend further toward the title. */
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    column-gap: clamp(20px, 2vw, 40px);
    text-align: center;
}

.ntm-cs-archive__head::before,
.ntm-cs-archive__head::after {
    content: '';
    height: 1px;
    background: var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
    /* Anchor to the title's row (row 2: eyebrow row 1, title row 2, deck row 3)
       so the hairlines sit at the same vertical position as "The Covers." */
    grid-row: 2;
    align-self: center;
}

.ntm-cs-archive__head::before { grid-column: 1; }
.ntm-cs-archive__head::after  { grid-column: 3; }

.ntm-cs-archive__eyebrow {
    grid-column: 2;
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem; /* 18px */
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cs-teal);
}

.ntm-cs-archive__title {
    grid-column: 2;
    margin: 16px 0 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: var(--cs-fs-display);
    line-height: 1.18;
    color: var(--cs-text-color);
}

.ntm-cs-archive__title-accent {
    font-style: italic;
    color: var(--cs-teal);
}

.ntm-cs-archive__deck {
    grid-column: 2;
    margin: 16px auto 0;
    max-width: 460px;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.25rem; /* 20px */
    line-height: 1.25;
    letter-spacing: 0.08em;
    color: var(--cs-text-color);
}

.ntm-cs-archive__grid {
    max-width: var(--cs-container-max);
    margin: 0 auto;
    padding: 0 var(--cs-section-pad-x);
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 1.6vw, 20px) clamp(16px, 1.6vw, 20px);
    row-gap: clamp(28px, 3vw, 36px);
}

.ntm-cs-archive__item {
    display: flex;
    list-style: none;
}

.ntm-cs-archive__empty {
    max-width: var(--cs-container-max);
    margin: 0 auto;
    padding: clamp(40px, 5vw, 80px) var(--cs-section-pad-x);
    font-family: var(--ntm-font-sans);
    font-size: 1.0625rem;
    color: var(--cs-muted);
    text-align: center;
}

/* Override site-pagination tokens for this page */
.ntm-cs-archive .site-pagination {
    max-width: var(--cs-container-max);
    margin: clamp(40px, 5vw, 64px) auto 0;
    padding: 0 var(--cs-section-pad-x);
    --pg-active-bg: #161616;
    --pg-active-color: #FFFFFF;
    --pg-link-color: var(--cs-text-color);
    --pg-hover-bg: var(--cs-teal);
    --pg-hover-color: #FFFFFF;
    --pg-disabled-color: rgba(18, 18, 18, 0.35);
}

/* ---- Archive card ---- */
.ntm-cs-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 1.8vw, 30px);
    width: 100%;
}

.ntm-cs-card__link {
    position: absolute;
    inset: 0;
    z-index: 4;
    text-indent: -9999px;
    overflow: hidden;
}

.ntm-cs-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 450 / 551;
    overflow: hidden;
    background: #1d1d1d;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(16px, 1.6vw, 30px);
    gap: clamp(16px, 1.8vw, 24px);
}

.ntm-cs-card__img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
    transition: transform 0.5s ease;
}

.ntm-cs-card:hover .ntm-cs-card__img {
    transform: scale(1.03);
}

.ntm-cs-card__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 48%, #000000 87%, #000000 100%);
    pointer-events: none;
}

.ntm-cs-card__badge {
    position: relative;
    z-index: 2;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    background: var(--cs-teal);
    border: 1px solid var(--cs-teal);
    color: #FFFFFF;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.04em;
    line-height: 1.25;
    text-transform: uppercase;
}

.ntm-cs-card__subject {
    position: relative;
    z-index: 2;
    color: #FFFFFF;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ntm-cs-card__subject-name {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.25rem, 1.7vw, 1.5rem); /* 24px */
    line-height: 1.2;
    color: #FFFFFF;
}

.ntm-cs-card__subject-role {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.125rem; /* 18px */
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: var(--ntm-text-inverse-muted, rgba(255, 255, 255, 0.65));
}

.ntm-cs-card__body {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.ntm-cs-card__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1rem;
    line-height: 1;
    text-transform: uppercase;
}

.ntm-cs-card__meta-category {
    padding-right: 10px;
    border-right: 1px solid var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
    color: var(--cs-teal);
    letter-spacing: 0.04em;
}

.ntm-cs-card__meta-date {
    color: var(--cs-muted);
    letter-spacing: 0.06em;
}

.ntm-cs-card__title {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: var(--cs-fs-h2-card);
    line-height: 1.1;
    color: var(--cs-text-color);
}

.ntm-cs-card__cta {
    position: relative;
    z-index: 5;
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 0;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: underline;
    text-underline-offset: 5px;
    color: var(--cs-text-color);
    transition: color 0.2s ease;
}

.ntm-cs-card:hover .ntm-cs-card__cta {
    color: var(--cs-teal);
}

.ntm-cs-card__cta-icon {
    display: inline-block;
    font-size: 1.25rem;
    line-height: 1;
    color: var(--cs-teal);
    transform: translateY(-1px);
}

/* ============================================================
   SECTION 3 — EDITOR'S CHOICE
   ============================================================ */
.ntm-cs-editor {
    background: var(--ntm-bg-beige-light, #F8F6F1);
    padding: clamp(80px, 9vw, 128px) 0;
}

/* Section header — eyebrow + title on the left, deck on the right,
   hairline divider underneath. Sits ABOVE the photo + content split. */
.ntm-cs-editor__head {
    max-width: var(--cs-container-max);
    margin: 0 auto clamp(40px, 5vw, 64px);
    padding: 0 var(--cs-section-pad-x) clamp(24px, 2.5vw, 36px);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: clamp(20px, 3vw, 60px);
    border-bottom: 1px solid var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
}

.ntm-cs-editor__head-title {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 1.4vw, 20px);
}

.ntm-cs-editor__inner {
    max-width: var(--cs-container-max);
    margin: 0 auto;
    padding: 0 var(--cs-section-pad-x);
    display: grid;
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr);
    gap: clamp(40px, 6vw, 100px);
    align-items: stretch;
}

.ntm-cs-editor__left {
    display: flex;
    align-items: stretch;
}

.ntm-cs-editor__photo {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 630 / 756;
    background-color: #1d1d1d;
    background-size: cover;
    background-position: center 20%;
    background-repeat: no-repeat;
    text-decoration: none;
}

.ntm-cs-editor__photo-badge {
    position: absolute;
    top: 30px;
    right: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    background: var(--cs-teal);
    border: 1px solid var(--cs-teal);
    color: #FFFFFF;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.25;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ntm-cs-editor__right {
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 2vw, 28px);
}

.ntm-cs-editor__eyebrow {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cs-teal-light);
}

.ntm-cs-editor__title {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: var(--cs-fs-display);
    line-height: 1.18;
    color: var(--cs-text-color);
}

.ntm-cs-editor__title-accent {
    font-style: italic;
    color: var(--cs-teal);
}

.ntm-cs-editor__deck {
    margin: 0;
    max-width: 340px;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.4;
    color: var(--cs-text-color);
}

.ntm-cs-editor__reread-eyebrow {
    margin: clamp(16px, 2vw, 32px) 0 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cs-teal-light);
}

.ntm-cs-editor__headline {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.5rem, 2.6vw, 2.625rem); /* 42px target */
    line-height: 1.18;
    color: var(--cs-text-color);
}

.ntm-cs-editor__blockquote {
    margin: 0;
    padding: 4px 0 4px 24px;
    border-left: 2px solid var(--cs-teal);
}

.ntm-cs-editor__blockquote p {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-style: italic;
    font-weight: 300;
    font-size: clamp(1.25rem, 1.8vw, 1.9375rem); /* 31px */
    line-height: 1.1;
    color: var(--cs-text-color);
}

.ntm-cs-editor__byline {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 12px;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.375rem;
    line-height: 1.3;
    letter-spacing: 0.04em;
}

.ntm-cs-editor__byline-name {
    padding-right: 12px;
    border-right: 1px solid var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
    color: var(--cs-teal);
}

.ntm-cs-editor__byline-role {
    color: var(--cs-muted);
}

.ntm-cs-editor__cta {
    align-self: flex-start;
    margin-top: clamp(8px, 1vw, 16px);
    padding: 16px 36px;
    border: 0.5px solid var(--cs-text-color);
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--cs-text-color);
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.ntm-cs-editor__cta:hover,
.ntm-cs-editor__cta:focus-visible {
    background: var(--cs-text-color);
    color: #FFFFFF;
}

/* ============================================================
   SECTION 4 — QUOTE SLIDER (dark)
   ============================================================ */
.ntm-cs-quote {
    position: relative;
    background: #161616;
    padding: clamp(80px, 9vw, 128px) 0;
    overflow: hidden;
    color: #FFFFFF;
}

.ntm-cs-quote__glow {
    position: absolute;
    z-index: 0;
    top: 50%;
    left: 50%;
    transform: translate(-25%, -10%);
    width: clamp(360px, 40vw, 700px);
    height: clamp(360px, 40vw, 700px);
    background: radial-gradient(closest-side, rgba(53, 172, 180, 0.45), transparent 72%);
    filter: blur(60px);
    pointer-events: none;
}

.ntm-cs-quote__inner {
    position: relative;
    z-index: 1;
    max-width: var(--cs-container-max);
    margin: 0 auto;
    padding: 0 var(--cs-section-pad-x);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(24px, 3vw, 48px);
    text-align: center;
}

.ntm-cs-quote__glyph {
    display: block;
    width: clamp(56px, 6vw, 90px);
    height: auto;
    user-select: none;
    pointer-events: none;
}

.ntm-cs-quote__eyebrow {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cs-teal-light);
}

.ntm-cs-quote__track {
    position: relative;
    width: 100%;
    max-width: 1280px;
    min-height: clamp(200px, 26vw, 320px);
}

.ntm-cs-quote__slide {
    position: absolute;
    inset: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 2.4vw, 36px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
}

.ntm-cs-quote__slide.is-active {
    opacity: 1;
    pointer-events: auto;
}

.ntm-cs-quote__slide-text {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.625rem, 3.6vw, 4.125rem); /* 66px target */
    line-height: 1.22;
    color: #FFFFFF;
}

.ntm-cs-quote__slide-text em,
.ntm-cs-quote__slide-text i {
    color: var(--cs-teal-light);
    font-style: italic;
}

.ntm-cs-quote__slide-byline {
    margin: 0;
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.375rem;
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: var(--ntm-text-inverse-muted, rgba(255, 255, 255, 0.65));
}

.ntm-cs-quote__slide-byline span + span {
    padding-left: 16px;
    border-left: 1px solid var(--ntm-rule-dark, rgba(255, 255, 255, 0.15));
}

.ntm-cs-quote__dots {
    display: flex;
    align-items: center;
    gap: 13.77px;
}

.ntm-cs-quote__dot {
    width: 13.77px;
    height: 13.77px;
    padding: 0;
    background: rgba(255, 255, 255, 0.15);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.ntm-cs-quote__dot:hover {
    background: rgba(255, 255, 255, 0.35);
}

.ntm-cs-quote__dot--active {
    background: var(--cs-teal);
}

/* ============================================================
   SECTION 5 — OPENING LINES
   ============================================================ */
.ntm-cs-openings {
    background: #FFFFFF;
    padding: clamp(80px, 9vw, 128px) 0;
}

.ntm-cs-openings__head {
    max-width: var(--cs-container-max);
    margin: 0 auto clamp(40px, 5vw, 80px);
    padding: 0 var(--cs-section-pad-x) clamp(24px, 2.4vw, 32px);
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(24px, 4vw, 60px);
    border-bottom: 1px solid var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
}

.ntm-cs-openings__heading {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 520px;
}

.ntm-cs-openings__eyebrow {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cs-teal-light);
}

.ntm-cs-openings__title {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: var(--cs-fs-display);
    line-height: 1.18;
    color: var(--cs-text-color);
}

.ntm-cs-openings__title-accent {
    font-style: italic;
    color: var(--cs-teal);
}

.ntm-cs-openings__deck {
    margin: 0;
    max-width: 380px;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.0625rem;
    line-height: 1.4;
    color: var(--cs-text-color);
}

.ntm-cs-openings__list {
    list-style: none;
    margin: 0 auto;
    padding: 0 var(--cs-section-pad-x);
    max-width: var(--cs-container-max);
    display: flex;
    flex-direction: column;
}

.ntm-cs-openings__row {
    list-style: none;
    padding: clamp(28px, 3vw, 40px) 0;
    border-top: 1px solid var(--ntm-rule-light, rgba(0, 0, 0, 0.15));
}

.ntm-cs-openings__row:first-child {
    border-top: 0;
}

.ntm-cs-openings__pagination {
    max-width: var(--cs-container-max);
    margin: clamp(32px, 4vw, 56px) auto 0;
    padding: 0 var(--cs-section-pad-x);
    display: flex;
    justify-content: center;
}

.ntm-cs-openings__pagination ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.ntm-cs-openings__pagination li {
    list-style: none;
}

.ntm-cs-openings__pagination a,
.ntm-cs-openings__pagination li > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 0.9375rem;
    line-height: 1;
    color: var(--cs-text-color);
    background: transparent;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.ntm-cs-openings__pagination a:hover,
.ntm-cs-openings__pagination a:focus-visible {
    background: var(--cs-teal);
    border-color: var(--cs-teal);
    color: #FFFFFF;
    outline: none;
}

.ntm-cs-openings__pagination .is-active > span {
    background: #161616;
    border-color: #161616;
    color: #FFFFFF;
}

.ntm-cs-openings__pagination .is-disabled > span {
    color: rgba(18, 18, 18, 0.35);
    cursor: default;
}

.ntm-cs-openings__pagination .is-ellipsis > span {
    border: 0;
    padding: 0 6px;
    min-width: auto;
    color: var(--cs-muted);
}

/* ---- Opening row ---- */
.ntm-cs-opening {
    display: grid;
    grid-template-columns: 200px minmax(0, 220px) minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(20px, 2.6vw, 52px);
    color: var(--cs-text-color);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

.ntm-cs-opening:hover {
    opacity: 0.85;
}

.ntm-cs-opening__portrait {
    position: relative;
    width: 166px;
    aspect-ratio: 166 / 249;
    background: var(--ntm-paper, #FCFBF4);
    overflow: visible;
}

.ntm-cs-opening__portrait-frame {
    position: absolute;
    z-index: 0;
    inset: 0;
    background: linear-gradient(180deg, var(--cs-teal) 0%, #FFFFFF 100%);
    pointer-events: none;
}

.ntm-cs-opening__img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 18%;
}

.ntm-cs-opening__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ntm-cs-opening__date {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: var(--cs-muted);
}

.ntm-cs-opening__name {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: 1.5rem; /* 24px */
    line-height: 1.2;
    color: var(--cs-text-color);
}

.ntm-cs-opening__role {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.125rem;
    line-height: 1.3;
    letter-spacing: 0.04em;
    color: var(--cs-teal);
}

.ntm-cs-opening__quote {
    margin: 0;
    padding: 0 0 0 18px;
    border-left: 2px solid var(--cs-teal-light);
}

.ntm-cs-opening__quote p {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: clamp(1.125rem, 1.8vw, 1.75rem); /* 28px target */
    line-height: 1.2;
    color: var(--cs-text-color);
}

.ntm-cs-opening__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--cs-teal);
    transition: transform 0.2s ease;
}

.ntm-cs-opening:hover .ntm-cs-opening__link {
    transform: translate(2px, -2px);
}

.ntm-cs-opening__link-icon {
    font-size: 1.75rem;
    line-height: 1;
}

/* ============================================================
   SECTION 6 — YOUR TURN (CTA)
   ============================================================ */
.ntm-cs-yourturn {
    position: relative;
    background: var(--ntm-bg-beige-sand, #F5EFE0);
    padding: clamp(96px, 12vw, 150px) 0;
    overflow: hidden;
}

.ntm-cs-yourturn__glow {
    position: absolute;
    z-index: 0;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(700px, 70vw, 1100px);
    height: clamp(700px, 70vw, 1100px);
    background: radial-gradient(
        closest-side,
        #FFFFFF 0%,
        rgba(255, 255, 255, 0.75) 25%,
        rgba(255, 255, 255, 0.3) 55%,
        rgba(255, 255, 255, 0) 78%
    );
    pointer-events: none;
}

.ntm-cs-yourturn__inner {
    position: relative;
    z-index: 1;
    max-width: 780px;
    margin: 0 auto;
    padding: 0 var(--cs-section-pad-x);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(24px, 3vw, 48px);
    text-align: center;
}

.ntm-cs-yourturn__eyebrow {
    margin: 0;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--cs-teal-light);
}

.ntm-cs-yourturn__title {
    margin: 0;
    font-family: var(--ntm-font-serif);
    font-weight: 400;
    font-size: var(--cs-fs-display);
    line-height: 1.22;
    color: var(--cs-text-color);
}

.ntm-cs-yourturn__title-accent {
    font-style: italic;
    color: var(--cs-teal);
}

.ntm-cs-yourturn__deck {
    margin: 0;
    max-width: 620px;
    font-family: var(--ntm-font-sans);
    font-weight: 400;
    font-size: 1.25rem; /* 20px */
    line-height: 1.25;
    letter-spacing: 0.08em;
    color: var(--cs-text-color);
}

.ntm-cs-yourturn__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 20px 32px;
    background: var(--cs-teal-light);
    border: 1px solid #FFFFFF;
    font-family: var(--ntm-font-sans);
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 1;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #FFFFFF;
    text-decoration: none;
    transition: background-color 0.2s ease, transform 0.2s ease;
}

.ntm-cs-yourturn__cta:hover,
.ntm-cs-yourturn__cta:focus-visible {
    background: var(--cs-teal);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* < 1180px — hero panel collapses to a bottom band, editor's choice stacks */
@media (max-width: 1180px) {
    .ntm-cs-hero {
        min-height: auto;
    }

    .ntm-cs-hero__inner {
        padding-top: clamp(40px, 6vw, 80px);
        padding-bottom: clamp(380px, 62vw, 560px);
    }

    .ntm-cs-hero__panel {
        top: auto;
        left: 0;
        right: 0;
        height: clamp(360px, 58vw, 540px);
    }

    .ntm-cs-hero__portrait {
        height: clamp(340px, 56vw, 520px);
        max-width: 100vw;
    }

    .ntm-cs-hero__subject-card {
        right: clamp(16px, 4vw, 40px);
        bottom: clamp(16px, 3vw, 32px);
        max-width: 300px;
    }

    .ntm-cs-editor__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: clamp(32px, 4vw, 60px);
    }

    .ntm-cs-editor__deck {
        align-self: flex-start;
        text-align: left;
        max-width: 100%;
    }
}

/* < 1024px — opening lines: stack the portrait and body */
@media (max-width: 1024px) {
    .ntm-cs-opening {
        grid-template-columns: 140px minmax(0, 1fr) auto;
    }

    .ntm-cs-opening__portrait {
        width: 140px;
    }

    .ntm-cs-opening__body {
        grid-column: 2;
    }

    .ntm-cs-opening__quote {
        grid-column: 1 / -2;
        padding-top: 8px;
    }
}

/* < 980px — archive: 2-col, openings head stacks */
@media (max-width: 980px) {
    .ntm-cs-archive__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ntm-cs-openings__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }
}

/* < 767.98px — single-col tweaks */
@media (max-width: 767.98px) {
    .ntm-cs-hero__title {
        font-size: clamp(2.5rem, 12vw, 4rem);
    }

    .ntm-cs-archive__head {
        grid-template-columns: 1fr;
    }

    .ntm-cs-archive__head::before,
    .ntm-cs-archive__head::after {
        display: none;
    }

    .ntm-cs-opening {
        grid-template-columns: 100px minmax(0, 1fr);
        grid-template-rows: auto auto auto;
    }

    .ntm-cs-opening__portrait {
        width: 100px;
        grid-row: 1 / 3;
    }

    .ntm-cs-opening__body {
        grid-column: 2;
        grid-row: 1;
    }

    .ntm-cs-opening__quote {
        grid-column: 1 / -1;
        grid-row: 3;
        padding-top: 16px;
    }

    .ntm-cs-opening__link {
        grid-column: 2;
        grid-row: 2;
        justify-self: flex-end;
    }
}

/* < 620px — archive: 1-col */
@media (max-width: 620px) {
    .ntm-cs-archive__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
