/*
 * UTN1 · Stage Light: the Site module's page components (builds on css/base.css: the theme's
 * tokens, components and the engine's legacy token names mapped onto the stage palette).
 * Full width (SPEC §3): every band runs edge to edge minus the gutter; long text keeps a
 * measure inside a wide composition. Grounds: a block's stored tone (white, light, faint,
 * navy: kept for stored pages) is drawn as the stage grounds black, stage, smoke and house
 * (and the stage names themselves for module blocks). Logical properties only; Arabic and
 * Kurdish never tracked or upper-cased (base.css enforces it); motion only under html.motion.
 */

/* ------------------------------------------------------------------ grounds (block tones) */
.section--white,.section--black,.split-row--white,.split-row--black{background:var(--black)}
.section--light,.section--stage,.split-row--light,.split-row--stage{background:var(--stage)}
.section--faint,.section--smoke,.split-row--faint,.split-row--smoke{background:var(--smoke)}
.section--navy,.section--house,.split-row--navy,.split-row--house{background:radial-gradient(80% 70% at 50% 0%,rgba(255,182,92,.16),rgba(255,182,92,0) 60%),linear-gradient(180deg,#15100D,var(--house))}
.split-row,.section{color:var(--text)}

/* ------------------------------------------------------------------ shared */
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4) var(--space-7);margin-block-end:clamp(24px,1rem + 2vw,56px)}
.section-head__text{max-inline-size:68ch}
.section-head__text>:last-child{margin-block-end:0}
/* A head without an action: title start, intro beside it (no empty end half). */
@media (min-width:1100px){
  .section-head:not(:has(.section-head__action)) .section-head__text:has(>:nth-child(2)){max-inline-size:none;inline-size:100%;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--space-8);align-items:end}
  .section-head:not(:has(.section-head__action)) .section-head__text:has(>:nth-child(2))>*{max-inline-size:68ch;margin-block-end:0}
  .section-head:not(:has(.section-head__action)) .section-head__text:has(>:nth-child(2))>.eyebrow{grid-column:1/-1;margin-block-end:var(--space-2)}
}
.section-head__text h2{margin-block-end:var(--space-3)}
.section-head__action{margin:0}
.section-label{font-family:var(--font-body);font-size:1rem;font-weight:800;color:var(--accent-strong);margin-block-end:var(--space-3)}
:lang(en) .section-label{letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}
.callout__title{font-size:1.2rem;font-family:var(--font-body)}
.section--tight-end{padding-block-end:0}

/* ------------------------------------------------------------------ media slots */
.media{position:relative;overflow:hidden;background:var(--light)}
.media__img{display:block;inline-size:100%;block-size:100%;object-fit:cover;object-position:center}
.media__img--top{object-position:center top}
.media__img--bottom{object-position:center bottom}
/* A library photo inside <picture> (AVIF / WebP sources): the slot rules style the <img>. */
.media picture{display:contents}
/* The focal point of a library photo (Site::image 'focal', 3 x 3 thirds; never a style attribute). */
.media__img.fp-tl{object-position:0% 0%}.media__img.fp-tc{object-position:50% 0%}.media__img.fp-tr{object-position:100% 0%}
.media__img.fp-ml{object-position:0% 50%}.media__img.fp-mc{object-position:50% 50%}.media__img.fp-mr{object-position:100% 50%}
.media__img.fp-bl{object-position:0% 100%}.media__img.fp-bc{object-position:50% 100%}.media__img.fp-br{object-position:100% 100%}
/* Brand-pattern placeholder while a slot has no image (pure CSS, decorative). */
.media--placeholder::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.16) 1.5px,transparent 1.7px);background-size:28px 28px}
.media--tone-navy{background:radial-gradient(circle at 78% 22%,rgba(255,182,92,.55),transparent 42%),radial-gradient(circle at 18% 82%,rgba(194,80,46,.4),transparent 45%),radial-gradient(circle at 60% 70%,rgba(255,182,92,.45),transparent 50%),linear-gradient(135deg,var(--dark-900),var(--dark-700))}
.media--tone-light{background:radial-gradient(circle at 80% 20%,rgba(255,182,92,.2),transparent 45%),radial-gradient(circle at 15% 85%,rgba(194,80,46,.22),transparent 45%),linear-gradient(135deg,var(--stage),var(--smoke))}
.media--tone-light::after{background-image:radial-gradient(rgba(255,214,160,.12) 1.5px,transparent 1.7px)}
.media--tone-pink{background:radial-gradient(circle at 25% 25%,rgba(194,80,46,.35),transparent 45%),radial-gradient(circle at 80% 80%,rgba(255,182,92,.55),transparent 50%),linear-gradient(135deg,var(--accent-alt-strong),var(--dark-700))}

/* ------------------------------------------------------------------ news */
/* News page (partials/news-feed): 1 column, 2 from 640 px, 3 from 1100 px. Page 1 features
   the newest item (two columns wide). The last card fills its row: at 3 columns the server
   sets news-card--fill-2 / --fill-3, at 2 columns the rules below. The photo always keeps
   its 3:2 shape (never stretched to the text's height): a wide card that shares its row
   (3 columns: featured, --fill-2) stacks like the others, photo on top; a wide card alone in
   its row (2 columns: featured and the last odd card; 3 columns: --fill-3) sets the photo at
   the start, inset and centred against the text (mirrors in RTL). */
.news-grid,.news-strip{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-5)}
.news-grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:640px) and (max-width:1099.98px){
  .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news-grid>.news-card--featured,
  .news-grid:not(.news-grid--featured)>.news-card:last-child:nth-child(odd),
  .news-grid--featured>.news-card:last-child:nth-child(even){grid-column:1/-1}
  .news-grid>.news-card--featured .news-card__inner,
  .news-grid:not(.news-grid--featured)>.news-card:last-child:nth-child(odd) .news-card__inner,
  .news-grid--featured>.news-card:last-child:nth-child(even) .news-card__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  .news-grid>.news-card--featured .news-card__visual,
  .news-grid:not(.news-grid--featured)>.news-card:last-child:nth-child(odd) .news-card__visual,
  .news-grid--featured>.news-card:last-child:nth-child(even) .news-card__visual{margin:var(--space-4);margin-inline-end:0;border-radius:var(--radius);overflow:hidden}
}
@media (min-width:1100px){
  .news-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .news-grid>.news-card--featured,.news-grid>.news-card--fill-2{grid-column:span 2}
  .news-grid>.news-card--fill-3{grid-column:1/-1}
  .news-grid>.news-card--fill-3 .news-card__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  .news-grid>.news-card--fill-3 .news-card__visual{margin:var(--space-4);margin-inline-end:0;border-radius:var(--radius);overflow:hidden}
}
@media (min-width:640px){
  .news-grid>.news-card--featured .news-card__body{padding:clamp(24px,1rem + 1.6vw,48px);justify-content:center}
  .news-grid>.news-card--featured .news-card__title{font-size:clamp(1.3rem,1.05rem + .7vw,1.75rem)}
}
.news-card{display:flex;position:relative;scroll-margin-block-start:var(--sticky-offset)}
.news-card__inner{display:flex;flex-direction:column;inline-size:100%;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .2s,transform .2s}
.news-card:target .news-card__inner{border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-50),var(--shadow-lg)}
.news-card__visual{position:relative;aspect-ratio:3/2;background:var(--light)}
.news-card__media{position:absolute;inset:0}
.news-card__media .media__img{position:absolute;inset:0}
/* The brand card: the dark brand pattern with the UTN1 wordmark (decorative, no text). */
.news-card__brand{display:grid;place-items:center}
.news-card__mark{position:relative;z-index:1;inline-size:clamp(56px,24%,104px);block-size:auto;opacity:.9;pointer-events:none}
.news-card__body{flex:1;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5)}
.news-card__date{margin:0;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--muted);font-size:.92rem;font-weight:600}
.news-card__date .icon{flex:none;color:var(--accent-strong)}
.news-card__title{margin:0;font-size:var(--fs-h3);line-height:var(--lh-snug)}
.news-card__summary{margin:0}
.news-card__link{margin:auto 0 0;padding-block-start:var(--space-3)}
/* A card on the News page keeps its source link: a second target above the headline's. */
.news-card__link a{position:relative;z-index:1;display:inline-flex;align-items:center;gap:var(--space-2);min-block-size:var(--target);font-weight:700}
.news-card__link .icon{flex:none}
/* Home band and "More news": 3 cards from 900 px; below, compact rows (photo at the start, 3
   lines of text). On every card the headline link covers the card (its page, /news/<slug>/). */
.news-strip{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
@media (min-width:900px){.news-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}}
@media (max-width:899.98px){
  .news-strip .news-card__inner{display:grid;grid-template-columns:minmax(104px,34%) minmax(0,1fr)}
  .news-strip .news-card__visual{aspect-ratio:auto;min-block-size:100%}
  .news-strip .news-card__body{padding:var(--space-4)}
  .news-strip .news-card__summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;font-size:.95rem}
  .news-strip .news-card__mark{inline-size:44%}
}
.news-card__title-link{color:inherit;text-decoration:none}
.news-card__title-link::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg)}
.news-card__title-link:hover{color:var(--tungsten);text-decoration:underline}
.news-card__inner:hover,.news-card:focus-within .news-card__inner{box-shadow:var(--shadow-lg);transform:translateY(-3px)}
@media (prefers-reduced-motion:reduce){.news-card__inner{transition:none}.news-card__inner:hover,.news-card:focus-within .news-card__inner{transform:none}}
/* An item's page (Views/news-item.php): the event page's body grid (text at reading measure,
   the link card beside it from 960 px), one column when the item has no link. */
.news-body__text{font-size:var(--fs-lead)}
.news-body__fallback{margin:var(--space-3) 0 0}
@media (min-width:960px){.news-body__grid--single{grid-template-columns:minmax(0,1fr)}}
.news-source__label{color:var(--muted);font-weight:600}
.news-source>:last-child{margin-block-end:0}

/* ------------------------------------------------------------------ item body grid (news-item.php: text + link card) */
.event-body__grid{display:grid;gap:var(--space-7);align-items:start}
@media (min-width:960px){.event-body__grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}.event-body__aside{position:sticky;inset-block-start:var(--sticky-offset)}}
.event-body__main .prose{font-size:var(--fs-lead)}
.event-body__aside{display:grid;gap:var(--space-5)}

/* ------------------------------------------------------------------ cards in asides */
.aside-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow)}
.aside-card>:last-child{margin-block-end:0}
.aside-card__title{font-size:var(--fs-h3);font-family:var(--font-body)}
.aside-card__mail{display:flex;align-items:center;gap:var(--space-2)}
.aside-card__mail a{display:inline-flex;align-items:center;min-block-size:var(--target)}
.aside-card--navy{background:linear-gradient(135deg,var(--dark-900),var(--dark-700));border-color:transparent;color:var(--on-dark)}
.aside-card--navy .aside-card__title{color:var(--text)}
.aside-card--navy :focus-visible{outline-color:var(--text)}
.aside-links{list-style:none;margin:var(--space-5) 0 0;padding:0;display:grid;gap:var(--space-1)}
.aside-links a{display:flex;align-items:center;min-block-size:var(--target);padding-inline:var(--space-4);border-radius:var(--radius-sm);text-decoration:none;font-weight:600}
.aside-links a:hover{background:var(--light)}
.aside-links a[aria-current]{background:var(--light);color:var(--accent-strong)}

/* ------------------------------------------------------------------ copy pages: rows, cards, intro, gallery */
.split-row{padding-block:var(--section-y)}
.split-row__grid{display:grid;gap:var(--space-5) var(--space-8)}
@media (min-width:960px){
  .split-row__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .split-row:not(.split-row--cards) .split-row__head{position:sticky;inset-block-start:var(--sticky-offset);align-self:start}
  .split-row--cards .split-row__grid{grid-template-columns:minmax(0,1fr)}
  .split-row--cards .split-row__head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--space-8);align-items:end}
  .split-row--cards .split-row__head .split-row__num{grid-column:1/-1}
}
.split-row__num{display:flex;align-items:center;gap:var(--space-3);margin-block-end:var(--space-3);font-weight:800;color:var(--accent-strong);font-variant-numeric:lining-nums tabular-nums}
.split-row__num::after{content:"";inline-size:48px;block-size:3px;border-radius:2px;background:var(--gradient)}
.split-row__title{font-size:var(--fs-h2);margin-block-end:var(--space-3);max-inline-size:22ch}
.split-row__lead{font-size:var(--fs-lead)}
.split-row__body{font-size:clamp(1.05rem,1rem + .2vw,1.18rem)}
/* The body column is used in full; only running text keeps the reading measure. */
.split-row__body.prose{max-inline-size:none}
.split-row__body>:is(p,h3,h4,blockquote,ol){max-inline-size:var(--measure)}
.split-row__body>ul{list-style:none;padding:0;max-inline-size:none;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
/* A section that opens with a list: heading above, the list as cards across the container. */
.split-row--list .split-row__body>ul{margin-block-end:var(--space-5)}
.split-row--list .split-row__body>ul>li{padding:var(--space-6)}
/* Short statements (Mission, Vision): large type; two in a row share one band. */
.split-row--statement .split-row__body,.statement__body{font-size:clamp(1.35rem,1.05rem + 1.2vw,2.1rem);color:var(--dark);line-height:var(--lh-snug);font-weight:600}
:lang(en) :is(.split-row--statement .split-row__body,.statement__body){font-family:var(--font-display);line-height:1.35;font-weight:500}
.statement__body>:last-child{margin-block-end:0}
.statement-pair{display:grid;gap:var(--space-7) var(--space-8);grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.statement{position:relative;padding-block-start:var(--space-5);border-block-start:4px solid transparent;border-image:var(--gradient) 1}
.statement .split-row__title{max-inline-size:none}
.link-row{margin-block:var(--space-5) 0;gap:var(--space-2) var(--space-6)}
.link-row .link-arrow{color:var(--accent-strong)}
.link-row .link-arrow:hover{color:var(--accent-deep)}
.split-row__body>ul>li{margin:0;padding:var(--space-5);background:var(--faint);border:1px solid var(--line-soft);border-block-start:3px solid var(--accent-strong);border-radius:var(--radius)}
.split-row--light .split-row__body>ul>li{background:var(--surface)}
.split-row__body>ul>li strong{display:block;color:var(--dark);margin-block-end:var(--space-1)}
.pillars{list-style:none;margin:var(--space-6) 0 0;padding:0;display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.pillar{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-7) var(--space-6) var(--space-6);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.split-row--white .pillar{background:var(--faint);box-shadow:none}
.pillar::before{content:"";position:absolute;inset-inline:0;inset-block-start:0;block-size:4px;background:var(--gradient)}
.pillar__num{font-family:var(--font-display);font-variant-numeric:lining-nums;font-weight:800;font-size:2.6rem;line-height:var(--lh-tight);color:var(--accent-strong)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .pillar__num{background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
}
.pillar__title{font-size:var(--fs-h3);margin:0}
.pillar__text>:last-child{margin-block-end:0}
.intro-row__grid{display:grid;gap:var(--space-6) var(--space-8);align-items:start}
.intro-row__text{font-size:clamp(1.15rem,1rem + .7vw,1.6rem);max-inline-size:60ch;padding-inline-start:var(--space-6);border-inline-start:4px solid transparent;border-image:var(--gradient) 1}
.intro-row__text>:last-child{margin-block-end:0}
@media (min-width:960px){.intro-row__grid--aside{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}}
.intro-row__grid--aside>.prose{font-size:var(--fs-lead)}
.gallery{background:var(--surface)}
.gallery__grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.gallery__item{aspect-ratio:4/3}
.gallery__item .media__img{position:absolute;inset:0}
@media (min-width:900px){
  .gallery__grid--3{grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr)}
  .gallery__grid--3 .gallery__item{aspect-ratio:auto;min-block-size:clamp(280px,26vw,480px)}
}
.page-body .prose>:first-child{margin-block-start:0}
.prose--legal h2{font-size:1.4rem}
.prose--legal h3{font-size:1.15rem}

/* ------------------------------------------------------------------ legal: three-column document */
.doc__grid{display:grid;gap:var(--space-7);align-items:start}
/* The text keeps its measure; the slack goes to the contents list and the aside equally.
   Below 1100 px: one column (contents list on top, collapsible; the aside after the text). */
@media (min-width:1100px){.doc__grid{grid-template-columns:minmax(220px,1fr) minmax(0,72ch) minmax(240px,1fr);column-gap:clamp(32px,3vw,64px)}}
.doc__toc{background:var(--faint);border:1px solid var(--line-soft);border-radius:var(--radius-lg);padding:var(--space-5)}
.doc__toc-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-block-size:var(--target);cursor:pointer;list-style:none}
.doc__toc-summary::-webkit-details-marker{display:none}
.doc__toc-summary::after{content:"";inline-size:9px;block-size:9px;border-inline-end:2px solid var(--accent-strong);border-block-end:2px solid var(--accent-strong);transform:rotate(45deg);flex:none}
.doc__toc-details[open]>.doc__toc-summary::after{transform:rotate(-135deg)}
[dir="rtl"] .doc__toc-summary::after{transform:rotate(-45deg)}
[dir="rtl"] .doc__toc-details[open]>.doc__toc-summary::after{transform:rotate(135deg)}
.doc__toc-summary .doc__toc-title{margin:0}
.doc__toc-details[open]>.doc__toc-summary{margin-block-end:var(--space-2)}
@media (min-width:1100px){.doc__toc,.doc__aside{position:sticky;inset-block-start:var(--sticky-offset);max-block-size:calc(100vh - var(--sticky-offset) - var(--space-4));overflow-y:auto}}
.doc__toc-title{font-family:var(--font-body);font-size:1rem;color:var(--accent-strong);margin-block-end:var(--space-3)}
:lang(en) .doc__toc-title{letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
.doc__toc-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.doc__toc-list a{display:flex;align-items:center;min-block-size:var(--target);padding-inline:var(--space-3);border-radius:var(--radius-sm);text-decoration:none;color:var(--dark);font-weight:600;font-size:.95rem;line-height:var(--lh-snug)}
.doc__toc-list a:hover{background:var(--light)}
.doc__body{font-size:clamp(1rem,.96rem + .2vw,1.1rem)}
.doc__body.prose{max-inline-size:none}
.doc__section{scroll-margin-block-start:var(--sticky-offset)}
.doc__section>h2{padding-block-start:var(--space-5);border-block-start:1px solid var(--line-soft)}
.doc__aside{display:grid;gap:var(--space-4)}

/* ------------------------------------------------------------------ call-to-action band */
.cta-band{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(70% 120% at 50% 0%,rgba(255,182,92,.16),transparent 60%),radial-gradient(60% 90% at 100% 100%,rgba(194,80,46,.18),transparent 70%),var(--stage);border-block:1px solid var(--line-faint);padding-block:clamp(56px,2rem + 4vw,120px)}
.cta-band__inner{display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-8);align-items:center;justify-content:space-between}
.cta-band__text{max-inline-size:60ch}
/* Wide screens: title | line | actions across the band (no lone line with buttons far away). */
@media (min-width:1100px){
  .cta-band__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-8)}
  .cta-band__text{max-inline-size:none;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--space-8);align-items:center}
  .cta-band__text h2{margin:0}
  .cta-band__text p{max-inline-size:60ch}
}
.cta-band h2{margin-block-end:var(--space-2)}
.cta-band p{margin:0;font-size:var(--fs-lead);color:var(--ink)}
.cta-band__action{margin:0}

/* ------------------------------------------------------------------ contact */
.channel-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);max-inline-size:480px}
.channel-list--inline{display:flex;flex-wrap:wrap;max-inline-size:none;margin-block-start:var(--space-5)}
.channel-list--inline .channel{padding:var(--space-3) var(--space-4)}
.channel{display:flex;align-items:center;gap:var(--space-4);min-block-size:var(--target);padding:var(--space-4) var(--space-5);background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-lg);text-decoration:none;color:var(--dark);box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}
.channel:hover{border-color:var(--dark-700);box-shadow:var(--shadow-lg);color:var(--dark)}
.channel .icon{color:var(--accent-strong)}
.channel__text{display:grid}
.channel__label{font-size:.9rem;color:var(--muted)}
.channel__value{font-weight:800;font-size:1.1rem}
.contact-grid{display:grid;gap:var(--space-7);align-items:start}
@media (min-width:960px){.contact-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.contact-grid__aside{position:sticky;inset-block-start:var(--sticky-offset)}}
@media (min-width:1100px){.contact-grid{grid-template-columns:minmax(0,1fr)}.contact-grid__aside{position:static}.contact-ways{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-ways:has(.contact-way--current),.contact-ways:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.contact-ways:has(>:only-child){grid-template-columns:minmax(0,1fr)}}
.contact-grid__aside .aside-card{max-inline-size:none}
.contact-grid__aside h2{font-size:1.25rem;font-family:var(--font-body)}
.contact-grid__aside h2:first-child{margin-block-start:0}
/* Email-first ways to write to us (Stage Light 6.10; no form of any kind): one lit stage card
   per subject, 1-3 columns as the space allows, a big ember mailto button each; the current
   ?topic= card first, full width and lit; then the Listen / Follow lists and the note. */
.contact-ways__title{font-size:var(--fs-h3);font-weight:var(--w-lead);margin-block-end:var(--space-3)}
.contact-ways__lead{max-inline-size:62ch;margin-block-end:var(--space-5);color:rgba(243,236,223,.84)}
.contact-ways__lead .contact-copy{margin-inline-start:var(--space-2);vertical-align:middle}
.contact-address{font-weight:var(--w-strong);color:var(--tungsten);overflow-wrap:anywhere}
.contact-ways{list-style:none;margin:0;padding:0;display:grid;gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))}
.contact-way{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-2);padding:clamp(28px,3vw,40px) var(--space-5) var(--space-5);border-radius:var(--radius);background:var(--smoke);box-shadow:var(--shadow-card)}
.contact-way>*{margin:0}
.contact-way__lamp{position:absolute;z-index:-1;inset-block-start:-90px;inset-inline-end:-60px;inline-size:240px;block-size:240px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,182,92,.3),rgba(255,182,92,.08) 55%,rgba(255,182,92,0));pointer-events:none}
.contact-way__title{font-size:var(--fs-h3);font-weight:var(--w-lead);color:var(--text)}
.contact-way__text{color:rgba(243,236,223,.84)}
.contact-way__meta{font-size:var(--fs-small);color:var(--muted);overflow-wrap:anywhere}
.contact-way__meta p{margin:0}
.contact-way__subject{color:var(--text);font-weight:var(--w-strong);user-select:all}
.contact-way__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block-start:auto;padding-block-start:var(--space-3)}
.contact-way__actions .btn{min-block-size:var(--target)}
.contact-way__btn{flex:1 1 auto}
.contact-way--current{grid-column:1/-1;box-shadow:var(--shadow-card),0 0 0 1px var(--line-warm),0 0 60px -20px rgba(255,182,92,.5);scroll-margin-block-start:calc(var(--sticky-offset) + 16px)}
.contact-way--current .contact-way__lamp{background:radial-gradient(closest-side,rgba(255,200,130,.5),rgba(255,182,92,.12) 55%,rgba(255,182,92,0))}
.contact-way--current:focus{outline:none}
.contact-way--current:focus-visible{outline:2px solid var(--tungsten);outline-offset:3px}
.contact-way__flag{align-self:flex-start;font-size:.86rem;font-weight:var(--w-label);color:var(--on-gold);background:var(--tungsten);border-radius:var(--radius-pill);padding:4px 12px}
.contact-way__flag:lang(en){font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase}
.contact-follow{display:flex;flex-wrap:wrap;gap:var(--space-5) clamp(32px,5vw,72px);margin-block-start:clamp(32px,4vw,56px)}
.contact-follow__h{margin:0 0 var(--space-2)}
.contact-follow__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.contact-follow__link{display:inline-flex;align-items:center;justify-content:center;min-block-size:var(--target);min-inline-size:var(--target);padding:8px 16px;border-radius:var(--radius-pill);border:1px solid rgba(255,214,160,.22);background:var(--glass);color:var(--text);text-decoration:none;font-size:var(--fs-small);font-weight:var(--w-strong)}
.contact-follow__link:hover,.contact-follow__link:focus-visible{border-color:var(--line-warm);background:var(--glass-hover)}
.contact-note{margin-block-start:var(--space-5);font-size:var(--fs-small);color:var(--muted)}

/* ------------------------------------------------------------------ page-builder blocks */
/* Band tones beyond white / light: faint, and navy (white headings and links, --on-dark
   text; cards and list cards inside keep their light surface and dark text). */
:is(.section--navy,.split-row--navy) :is(h2,h3,h4){color:var(--text)}
:is(.section--navy,.split-row--navy) .prose{color:var(--on-dark)}
:is(.section--navy,.split-row--navy) a:not(.btn){color:var(--text)}
:is(.section--navy,.split-row--navy) :focus-visible{outline-color:var(--text)}
:is(.section--navy,.split-row--navy) .split-row__num,:is(.section--navy,.split-row--navy) .section-label{color:var(--accent-50)}
.split-row--navy :is(.split-row--statement .split-row__body,.statement__body),.split-row--navy.split-row--statement .split-row__body{color:var(--text)}
:is(.section--navy,.split-row--navy) :is(.pillar,.split-row__body>ul>li,.aside-card:not(.aside-card--navy),.faq__item){color:var(--ink)}
:is(.section--navy,.split-row--navy) :is(.pillar,.split-row__body>ul>li,.aside-card:not(.aside-card--navy),.faq__item) :is(h2,h3,h4,a:not(.btn)){color:var(--dark)}
/* Spacing, width and alignment modifiers (only printed when they differ from the default). */
.section.bk--sp-compact,.split-row.bk--sp-compact{padding-block:var(--space-6)}
.section.bk--sp-spacious,.split-row.bk--sp-spacious{padding-block:clamp(72px,2rem + 7vw,180px)}
.bk--wide :is(.intro-row__text,.split-row__body>:is(p,h3,h4,blockquote,ol)){max-inline-size:none}
@media (min-width:960px){.split-row.bk--wide:not(.split-row--cards) .split-row__grid{grid-template-columns:minmax(0,1fr)}.split-row.bk--wide .split-row__head{position:static}}
.bk--al-center{text-align:center}
.bk--al-center :is(.intro-row__text,.split-row__title,.split-row__body>*,.bk-quote__figure){margin-inline:auto}
.bk--al-center .intro-row__text{border-inline-start:0;padding-inline-start:0}
.bk--al-center .split-row__num{justify-content:center}
.bk-spacer{block-size:clamp(32px,1rem + 3vw,72px)}
.bk-spacer--s{block-size:clamp(16px,.5rem + 1.5vw,32px)}
.bk-spacer--l{block-size:clamp(64px,2rem + 6vw,144px)}
.bk-divider{padding-block:var(--space-5)}
.bk-divider hr{margin:0}
/* image: one photo (full: edge to edge, no container). */
.bk-image{margin:0}
.bk-image__media{border-radius:var(--radius-lg);aspect-ratio:16/9}
.bk-image__media .media__img{position:absolute;inset:0}
.bk-image--full{padding-block:0}
.bk-image--full>.bk-image__media{border-radius:0;aspect-ratio:21/9}
.bk-image__caption{margin-block-start:var(--space-3);color:var(--muted);font-size:.95rem;max-inline-size:var(--measure)}
.bk-image--full .bk-image__caption{padding-block:var(--space-3) var(--space-5)}
.section--navy .bk-image__caption{color:var(--on-dark-muted)}
/* quote: a large quotation. */
.bk-quote__figure{margin:0;max-inline-size:56rem}
.bk-quote__by{color:var(--muted);font-weight:600}
.section--navy .bk-quote__by{color:var(--on-dark-muted)}
/* faq: questions as native <details> (keyboard accessible, no script). */
.faq__grid{display:grid;gap:var(--space-5) var(--space-8);align-items:start}
@media (min-width:960px){.faq__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.faq__grid>h2{position:sticky;inset-block-start:var(--sticky-offset)}}
.faq__grid>h2{font-size:var(--fs-h2);margin:0}
.faq__list{display:grid;gap:var(--space-3)}
.faq__grid>.faq__list:only-child{grid-column:1/-1}
.faq__item{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow)}
.section--white .faq__item{background:var(--faint);box-shadow:none}
.faq__q{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-block-size:var(--target);padding:var(--space-4) var(--space-5);cursor:pointer;list-style:none;font-weight:700;color:var(--dark);line-height:var(--lh-snug)}
.faq__q::-webkit-details-marker{display:none}
.faq__q::after{content:"";inline-size:9px;block-size:9px;border-inline-end:2px solid var(--accent-strong);border-block-end:2px solid var(--accent-strong);transform:rotate(45deg);flex:none}
.faq__item[open]>.faq__q::after{transform:rotate(-135deg)}
[dir="rtl"] .faq__q::after{transform:rotate(-45deg)}
[dir="rtl"] .faq__item[open]>.faq__q::after{transform:rotate(135deg)}
.faq__q:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--radius)}
.faq__a{padding:0 var(--space-5) var(--space-5)}
.faq__a>:last-child{margin-block-end:0}

/* ------------------------------------------------------------------ brand tile, channels block */
/* A logo on a light tile (never cropped), as the channels block shows it. */
.brand-tile{display:grid;place-items:center;background:#FFFFFF;border:1px solid var(--line-warm);border-radius:var(--radius-lg);padding:clamp(16px,1rem + 1.5vw,36px);aspect-ratio:4/3;min-inline-size:0}
.brand-tile__img{display:block;inline-size:100%;block-size:100%;max-block-size:220px;object-fit:contain}
/* channels block: logo tile, heading and lead, the website button and the social channels. */
.channels__grid{display:grid;gap:var(--space-6) var(--space-8);align-items:center}
.channels--logo .channels__grid{grid-template-columns:minmax(0,1fr)}
@media (min-width:860px){.channels--logo .channels__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.channels__logo{max-inline-size:420px;inline-size:100%}
.channels__text>h2{margin-block-end:var(--space-3)}
.channels__lead{font-size:var(--fs-lead);max-inline-size:62ch}
.channels__lead>:last-child{margin-block-end:0}
.channels__list{list-style:none;margin:var(--space-6) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.channels__item--website{flex-basis:100%}
.channels__link{min-block-size:var(--target)}
.channels__link .icon{flex:none}
.section--navy .channels__link.btn--secondary{background:transparent;color:var(--text);border-color:var(--line-warm)}
.section--navy .channels__link.btn--secondary:hover{background:rgba(255,196,120,.12)}
@media (max-width:859px){.channels__logo{max-inline-size:220px;aspect-ratio:3/2}}

/* ------------------------------------------------------------------ narrow screens */
@media (max-width:480px){
  .hero__actions .btn,.cta-band__action .btn{inline-size:100%}
  .section-head__action{inline-size:100%}
  .section-head__action .btn{inline-size:100%}
  .channels__item--website .btn{inline-size:100%}
}


/* ------------------------------------------------------------------ Stage Light: page head (partials/page-head.php) */
/* The page head is a .stage.stage--page (base.css): photo on the inline-end, scrims, three
   light leaks, the copy on solid black. Without a photo (legal pages, the News list) it is a
   plain black head; an aside (notes, facts) sits beside the copy. */
.stage--plain { min-height: 0; padding-block-end: clamp(32px, 5vw, 72px); }
.stage--plain .stage__copy { grid-column: 1 / span 8; }
.stage__aside { grid-column: 9 / -1; align-self: end; position: relative; z-index: 1; }
.stage__aside .hero-notes { margin-inline-start: auto; }
.display-title__main { font-size: clamp(2rem, .9rem + 3.6vw, 4.8rem); font-weight: var(--w-display-ar); line-height: var(--lh-head-ar); color: var(--text); text-shadow: 0 0 60px rgba(255, 182, 92, .18); text-wrap: balance; }
:lang(en) .display-title__main { font-size: clamp(2.6rem, 1rem + 5vw, 6.6rem); font-weight: var(--w-display); line-height: .98; letter-spacing: -.03em; }
:lang(en) .stage--plain .display-title__main { font-size: clamp(2.4rem, 1rem + 4vw, 5.4rem); }
.stage__actions { margin-block-start: clamp(20px, 3vh, 32px); }
.stage__back { margin-block-end: var(--space-4); }
.stage__back a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--target); color: rgba(243, 236, 223, .86); text-decoration: none; }
.stage__back a:hover, .stage__back a:focus-visible { color: var(--tungsten); }
/* A three-photo collage in the photo area (a film strip of stills) */
.stage__collage { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; inline-size: 100%; block-size: 100%; }
.stage__collage > :first-child { grid-row: 1 / 3; }
.stage__collage .media { border-radius: 0; }
.stage__photo .media, .stage__collage .media { position: relative; inline-size: 100%; block-size: 100%; }
.stage__photo .media__img { position: absolute; inset: 0; }
/* Photo position classes (the image's stored position; SPEC §10: no object-position style) */
.stage__photo .media__img--top { object-position: 50% 18%; }
.stage__photo .media__img--bottom { object-position: 50% 78%; }
.hero-notes { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.hero-notes li { display: flex; align-items: center; gap: var(--space-3); min-block-size: var(--target); padding: var(--space-3) var(--space-5); background: var(--glass); border: 1px solid var(--line-warm); border-radius: var(--radius-pill); color: var(--text); font-weight: var(--w-strong); }
.hero-notes a { display: inline-flex; align-items: center; min-block-size: var(--target); }
.hero-notes--inline { display: flex; flex-wrap: wrap; margin-block-start: var(--space-5); }
@media (max-width: 1099px) { .stage__aside { grid-column: 1 / -1; padding-block-start: var(--space-5); } .stage--plain .stage__copy { grid-column: 1 / -1; } }
@media (max-width: 900px) {
  .stage__photo .media, .stage__collage { block-size: var(--ph); }
  .stage--plain { padding-block-start: calc(var(--header-h) + 32px); }
}

/* ------------------------------------------------------------------ Stage Light: hero (blocks/hero.php) */
/* The generic stage hero (the home until the Releases module's release_hero, campaign pages):
   the full stage with five light leaks; on the home the gold wordmark marquee above the band. */
.stage--hero .stage__copy { grid-column: 1 / span 5; }
.stage--hero .hero__lead { margin-block-start: var(--space-3); }
.hero__actions { margin-block-start: clamp(20px, 3vh, 36px); }
.stage--hero .stats { grid-column: 1 / -1; margin-block-start: clamp(28px, 5vh, 56px); }
@media (max-width: 1240px) { .stage--hero .stage__copy { grid-column: 1 / span 6; } }

/* ------------------------------------------------------------------ Stage Light: numbers (partials/stats.php, stats block) */
.numbers { padding-block: var(--section-pad); }
.numbers__asof { color: var(--muted); font-size: .9rem; }
.numbers__row { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); margin: 0; padding: 0; }
.stats__list { margin: 0; padding: 0; }
@media (max-width: 900px) { .numbers__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stat:nth-child(odd) { border-inline-start: 0; padding-inline-start: 0; } }

/* ------------------------------------------------------------------ Stage Light: press still (quote block) */
.bk-still { padding-inline: var(--gutter); padding-block: var(--section-pad); }
.bk-still .still { min-height: clamp(300px, 28vw, 440px); background: var(--stage); }
.bk-still .still__sub blockquote { margin: 0; }
.bk-still--plain .still::before { opacity: .5; }

/* ------------------------------------------------------------------ Stage Light: empty stage (callout block) */
.bk-callout { padding-block: var(--section-pad); }
.bk-callout .empty-stage__text .prose { color: rgba(243, 236, 223, .86); }
@media (max-width: 900px) {
  .empty-stage { display: block; padding: 260px 24px 32px; }
  .empty-stage__text { padding-block: 0; }
}

/* ------------------------------------------------------------------ Stage Light: scene (text_image block) */
.bk-scene .scene__text .prose { color: rgba(243, 236, 223, .9); }
.bk-scene .scene__text .cluster { margin-block-start: var(--space-5); }
.bk-scene .scene__img.media__img--top { object-position: 50% 20%; }
.bk-scene .scene__img.media__img--bottom { object-position: 50% 80%; }
.scene--media-start .scene__shade { transform: scaleX(-1); }
.scene--media-start .scene__text { grid-column: 7 / -1; }
@media (max-width: 900px) { .scene--media-start .scene__text { grid-column: 1 / -1; } }

/* Numbers inside a facts band: the band gives the padding. */
.facts-band .numbers { padding-block: 0; }
.stat { display: flex; flex-direction: column-reverse; justify-content: flex-end; }
