/* ==========================================================================
   Virginia Wild — vawp.org
   Palette (3 members + 2 supports, each with a job):
     --ground     #0C1210  page ground
     --ink        #E8E4D8  body ink
     --accent     #FF5A1F  saturated warm — kickers, rules, filled bands
     --secondary  #14B39A  saturated cool — numerals, elevation device, data
     --panel      #16241F  raised panel / section ground (area colour)
   Type: Big Shoulders Display (display + labels) · Petrona (reading)
   ========================================================================== */

:root {
  --ground: #0C1210;
  --ink: #E8E4D8;
  --accent: #FF5A1F;
  --secondary: #14B39A;
  --panel: #16241F;

  --ink-quiet: rgba(232, 228, 216, .68);
  --ink-faint: rgba(232, 228, 216, .30);
  --hair: rgba(232, 228, 216, .22);

  --display: 'Big Shoulders Display', 'Arial Narrow', sans-serif;
  --text: 'Petrona', Georgia, 'Times New Roman', serif;
  --ui: 'Schibsted Grotesk', system-ui, sans-serif;   /* small uppercase interface labels */

  /* one colour per section, used for that section's icon everywhere it appears */
  --ico-mountains: #7FD4FF;
  --ico-islands:   #F2C14E;
  --ico-birds:     #C9A6FF;
  --ico-bay:       #4FC3E8;
  --ico-cold:      #14B39A;
  --ico-swamp:     #8FBF5A;
  --ico-returns:   #FF8A3D;
  --ico-losses:    #E8607A;
  --ico-archive:   #B9B2A0;

  --shell: 1680px;   /* hard cap on the whole page shell — nothing runs edge-to-edge past this */
  --pad: 20px;
  --wide: 100%;
  --measure: 100%;
  --step: 40px;
  font-size: 17px;
}

/* --- real breakpoints, including two ABOVE the desktop cap --------------- */
@media (min-width: 768px)  { :root { --pad: 28px; --wide: 720px;  --measure: 62ch; --step: 56px; } }
@media (min-width: 1024px) { :root { --pad: 32px; --wide: 960px;  --measure: 66ch; --step: 72px; } }
@media (min-width: 1200px) { :root { font-size: 18px;   --pad: 40px; --wide: 1140px; --measure: 70ch; --step: 88px; } }
@media (min-width: 1600px) { :root { font-size: 19.5px; --pad: 52px; --wide: 1500px; --measure: 76ch; --step: 108px; } }
@media (min-width: 2000px) { :root { font-size: 20px;   --pad: 64px; --wide: 1560px; --measure: 78ch; --step: 120px; } }
@media (min-width: 2400px) { :root { font-size: 20.5px; --pad: 72px; --wide: 1600px; --measure: 80ch; --step: 132px; } }

/* the shell: header, content and footer share one centred maximum */
.masthead, main, .site-foot { max-width: var(--shell); margin-inline: auto; }

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--ground); -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--ground);
  color: var(--ink);
  font-family: var(--text);
  font-size: 1rem;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

p { text-wrap: pretty; }
img { max-width: 100%; display: block; }

a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--secondary); }
a:focus-visible { outline: 2px solid var(--secondary); outline-offset: 3px; }

h1, h2, h3, h4, h5 {
  font-family: var(--display);
  font-weight: 700;
  line-height: .96;
  letter-spacing: .002em;
  margin: 0;
  text-wrap: balance;
}

/* --- containers: three visibly different widths ------------------------- */
.wrap { max-width: var(--wide); margin-inline: auto; padding-inline: var(--pad); }
.prose { max-width: var(--measure); margin-inline: auto; padding-inline: var(--pad); }
.break { max-width: var(--wide); margin-inline: auto; padding-inline: var(--pad); }
.bleed { width: 100%; }

/* --- labels ------------------------------------------------------------- */
.kicker {
  font-family: var(--ui);
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: .5em;
  background: rgba(232,228,216,.07);
  border: 1px solid var(--hair);
  border-left: 3px solid currentColor;
  padding: .42em .7em .42em .6em;
  align-self: flex-start;
  width: fit-content;
  max-width: 100%;
}
.kicker a { color: inherit; }
.kicker--mountains { border-left-color: var(--ico-mountains); }
.kicker--islands   { border-left-color: var(--ico-islands); }
.kicker--birds     { border-left-color: var(--ico-birds); }
.kicker--bay       { border-left-color: var(--ico-bay); }
.kicker--cold      { border-left-color: var(--ico-cold); }
.kicker--swamp     { border-left-color: var(--ico-swamp); }
.kicker--returns   { border-left-color: var(--ico-returns); }
.kicker--losses    { border-left-color: var(--ico-losses); }

.label {
  font-family: var(--ui);
  font-weight: 500;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-quiet);
}

/* --- icon system: 24-grid, 1.7 stroke, currentColor --------------------- */
.ico--mountains { color: var(--ico-mountains); }
.ico--islands   { color: var(--ico-islands); }
.ico--birds     { color: var(--ico-birds); }
.ico--bay       { color: var(--ico-bay); }
.ico--cold      { color: var(--ico-cold); }
.ico--swamp     { color: var(--ico-swamp); }
.ico--returns   { color: var(--ico-returns); }
.ico--losses    { color: var(--ico-losses); }
.ico--archive   { color: var(--ico-archive); }

.ico { width: 1.25em; height: 1.25em; flex: none; stroke: currentColor; fill: none;
       stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ico--lg { width: 2.4em; height: 2.4em; stroke-width: 1.4; }

/* ==========================  MASTHEAD  ================================== */
.masthead { border-bottom: 1px solid var(--hair); }
.masthead__bar {
  display: flex; flex-wrap: wrap; gap: .5em 1.4em;
  align-items: baseline; justify-content: flex-end;
  padding-block: .9rem;
}
.navlink {
  font-family: var(--ui); font-weight: 500; font-size: .74rem;
  letter-spacing: .13em; text-transform: uppercase; color: var(--ink);
  display: inline-flex; align-items: center; gap: .45em;
  padding-block: 2px; border-bottom: 2px solid transparent;
}
.navlink:hover { color: var(--secondary); border-bottom-color: var(--secondary); }
.navlink[aria-current="page"] { color: var(--accent); border-bottom-color: var(--accent); }
.navlink--quiet { color: var(--ink-quiet); }

.masthead__title { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 2.5rem;
  align-items: end; padding-block: .9rem .25rem; }
/* home: the wordmark owns its row outright — the condensed glyph run
   overflows its own box, so nothing else shares that line */
.masthead--home .masthead__title { grid-template-columns: minmax(0, 1fr); }
.masthead--home .masthead__strap { max-width: none; margin: .1rem 0 0; }
/* the cross-section runs the full masthead width and its sea-level line
   doubles as the rule under the wordmark — one object, not two */
.masthead--home .masthead__mark { margin: clamp(18px, 2.2vw, 44px) 0 clamp(14px, 1.8vw, 34px); }

.wordmark { font-family: var(--display); font-weight: 900; text-transform: uppercase;
  line-height: .78; letter-spacing: -.005em; color: var(--ink); display: block; }
.wordmark em { font-style: normal; color: var(--accent); }
.masthead--home .wordmark { font-size: clamp(34px, 5vw, 112px); line-height: .84; }
.masthead--home .wordmark span { display: inline; }
.masthead--home .wordmark span + span { margin-left: .22em; }
@media (max-width: 767px) { .masthead--home .masthead__title { grid-template-columns: 1fr; } }
.masthead--page .masthead__title { padding-block: .8rem 1rem; grid-template-columns: auto minmax(0,1fr); }
.masthead--page .wordmark { font-size: clamp(30px, 3.2vw, 62px); }
.masthead__strap { font-size: .95rem; color: var(--ink-quiet); max-width: 40ch; margin: 0; line-height: 1.45; }
.masthead__mark { color: var(--secondary); }
.profile .pr-fill { fill: rgba(20,179,154,.14); stroke: none; }
.profile .pr-line { stroke: var(--secondary); stroke-width: 2.2; fill: none; }
.profile .pr-base { stroke: rgba(232,228,216,.4); stroke-width: 1.2; }
.profile .pr-div  { stroke: rgba(232,228,216,.18); stroke-width: 1; stroke-dasharray: 3 5; }
.profile .pr-peak { fill: var(--accent); }
.profile { height: clamp(64px, 7vw, 132px); }
/* labels live in HTML, not in the SVG: text inside a scaled viewBox
   renders at viewBox scale and is illegible at every real width */
/* labels are anchored to their division x, not boxed into band-width tracks —
   uppercase letter-spaced ink is always wider than a 13% band */
.profile-wrap { position: relative; padding-top: 1.35rem; }
.profile-peak { position: absolute; top: 0; left: 70.833%; transform: translateX(-50%);
  font-family: var(--ui); font-weight: 700; font-size: .74rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--accent); white-space: nowrap; }
.profile-labels { position: relative; height: 1.5rem; margin-top: .45rem;
  border-top: 1px solid var(--hair); }
.profile-labels .pl { position: absolute; top: .45rem; white-space: nowrap;
  font-family: var(--ui); font-weight: 500; font-size: .74rem; letter-spacing: .07em;
  text-transform: uppercase; color: var(--ink-quiet); padding-left: .45em;
  border-left: 1px solid var(--hair); }
.profile-labels .pl--key { color: var(--ink); border-left-color: var(--accent); }
.profile-labels .pl--end { left: auto; right: 0; }
.masthead__sub { display: flex; flex-wrap: wrap; gap: .5em 1.4em; padding-block: .7rem;
  border-top: 1px solid var(--hair); }

/* ==========================  HERO  ====================================== */
.hero { position: relative; }
.hero__img { position: relative; width: 100%; height: clamp(420px, 58vw, 1180px); overflow: hidden; }
.hero__img img { width: 100%; height: 100%; object-fit: cover; }
.hero__scrim { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(12,18,16,.55), rgba(12,18,16,.12) 38%, rgba(12,18,16,.94)); }
.hero__text { position: absolute; inset: auto 0 0 0; padding-bottom: 1.6rem; }
.hero__title { font-size: clamp(42px, 7vw, 190px); font-weight: 800;
  text-shadow: 0 2px 4px rgba(6,10,8,.5), 0 14px 40px rgba(6,10,8,.75); }
.hero__desc p { text-shadow: 0 1px 3px rgba(6,10,8,.6); }
.hero__desc { display: flex; flex-wrap: wrap; gap: 1rem 3rem; align-items: flex-end; }
.hero__desc p { margin: 0; max-width: 40ch; font-size: 1.02rem; color: rgba(232,228,216,.92); }

/* --- elevation device --------------------------------------------------- */
.profile { display: block; width: 100%; color: var(--secondary); }
.scale { color: var(--ink-faint); }
.scale .ax-num { font-family: var(--ui); font-weight: 500; font-size: 13px;
  letter-spacing: .06em; fill: var(--ink-quiet); }
.scale .ax-num--key { font-weight: 700; fill: var(--ink); }
.scale .ax-band { fill: rgba(232,228,216,.045); }

/* ==========================  BANDS  ===================================== */
.band { padding-block: var(--step); }
.band--panel { background: var(--panel); }
.band--rule { border-top: 1px solid var(--hair); }
.band--accent { background: var(--accent); color: #140803; }
.band--accent a, .band--accent .kicker { color: #140803; }
.band__head { display: flex; flex-wrap: wrap; gap: .6rem 2rem; align-items: baseline;
  border-bottom: 2px solid var(--ink); padding-bottom: .6rem; margin-bottom: 1.6rem; }
.band__head h2 { font-size: clamp(26px, 2.5vw, 66px); }
.band__head .label { margin-left: auto; }

/* --- lead feature ------------------------------------------------------- */
.lead-feature { display: grid; gap: 1.4rem 2.6rem; }
@media (min-width: 1024px) { .lead-feature { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); align-items: start; } }
.lead-feature h2 { font-size: clamp(32px, 3.6vw, 96px); font-weight: 800; }
.lead-feature .standfirst { font-size: 1.16rem; line-height: 1.45; color: rgba(232,228,216,.9); margin: 1rem 0 0; }

/* --- the descent: stations of unequal weight ---------------------------- */
.descent { display: grid; gap: var(--step); }
@media (min-width: 1024px) { .descent { grid-template-columns: clamp(84px, 7vw, 160px) minmax(0, 1fr); gap: 2rem clamp(24px, 3vw, 90px); align-items: start; } }
.descent__scale { display: none; }
@media (min-width: 1024px) { .descent__scale { display: block; position: sticky; top: 20px; } }
.station { border-top: 1px solid var(--hair); padding-top: .9rem; }
.station + .station { margin-top: var(--step); }
.station--first { border-top-width: 2px; border-top-color: var(--ink); }
.station--last { border-top-width: 2px; border-top-color: var(--accent); }
.station__head { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; align-items: baseline; }
.elev { font-family: var(--display); font-weight: 900; line-height: .78; color: var(--secondary);
  font-size: clamp(38px, 4.6vw, 132px); }
.station--first .elev { font-size: clamp(52px, 6.4vw, 178px); }
.station--last .elev { color: var(--accent); font-size: clamp(46px, 5.6vw, 156px); }
.station__head h3 { font-size: clamp(22px, 2.3vw, 62px); text-transform: uppercase; max-width: 24ch; }
.station__body { display: grid; gap: 1.2rem 2.4rem; margin-top: 1.2rem; }
@media (min-width: 900px) { .station__body--wide { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); } }
@media (min-width: 900px) { .station__body--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .station__body--three { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem 3rem; } }
.station p { margin: 0; }

/* --- teaser ------------------------------------------------------------- */
.teaser { display: flex; flex-direction: column; gap: .55rem; height: 100%; }
.teaser__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden;
  background: var(--panel); border: 1px solid var(--hair); }
.teaser__img img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease, filter .5s ease; }
/* the dark ground eats image edges — an inner hairline holds the frame,
   and a foot shadow keeps the photograph from floating */
.teaser__img::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(12,18,16,.55),
              inset 0 -70px 60px -50px rgba(12,18,16,.85); }
.teaser:hover .teaser__img img { transform: scale(1.022); filter: brightness(1.06); }
.teaser__img--tall { aspect-ratio: 3 / 4; }
.gallery-set .teaser__img { aspect-ratio: 4 / 5; }
.gallery-set .teaser { gap: .7rem; }
.gallery-set .teaser h3 { font-size: 1.24rem; }
.gallery-set .teaser p { font-size: .92rem; }
.teaser h3, .teaser h4 { font-size: 1.32rem; text-transform: uppercase; }
.teaser h3 a, .teaser h4 a { color: var(--ink); }
.teaser h3 a:hover, .teaser h4 a:hover { color: var(--accent); }
.teaser p { margin: 0; font-size: .96rem; color: var(--ink-quiet); }
.teaser__meta { margin-top: auto; padding-top: .5rem; }

/* --- signature numbers -------------------------------------------------- */
.sig { display: grid; gap: 1.6rem 2.4rem; }
@media (min-width: 900px) { .sig { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sig__num { font-family: var(--display); font-weight: 900; line-height: .78;
  font-size: clamp(52px, 6vw, 168px); color: var(--accent); }
.sig--cool .sig__num { color: var(--secondary); }
.sig p { margin: .6rem 0 0; font-size: .98rem; }

/* --- quiet line --------------------------------------------------------- */
.quiet { font-size: clamp(21px, 1.9vw, 50px); line-height: 1.26; font-weight: 300;
  max-width: 46ch; margin: 0; }

/* ==========================  FIGURES  =================================== */
/* one drawing system: hairline frame, accent bar on the caption, credit quieter */
figure { margin: 0; }

.fig { margin-block: var(--step); }
.fig img { width: 100%; }
.fig figcaption { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; align-items: baseline;
  margin-top: .7rem; border-top: 1px solid var(--hair); padding-top: .55rem; }
.cap { flex: 1 1 24ch; max-width: 74ch; margin: 0; font-size: .92rem; line-height: 1.42;
  color: var(--ink); }
.credit { flex: 0 1 auto; margin-left: auto; font-family: var(--display); font-weight: 500;
  font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint);
  max-width: 46ch; line-height: 1.5; }

/* treatment 1 — plate on a mat */
.fig--plate img, .article-figure img { border: 1px solid var(--hair); }
.fig--plate, .article-figure { background: var(--panel); padding: clamp(10px, .9vw, 22px); }
.fig--plate figcaption, .article-figure figcaption { border-top-color: rgba(232,228,216,.16); }
.article-figure { margin-block: var(--step); }
.article-figure figcaption { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; align-items: baseline;
  margin-top: .7rem; border-top: 1px solid rgba(232,228,216,.16); padding-top: .55rem; font-size: .92rem; }

/* treatment 2 — breakout, wider than the prose */
.fig--break { max-width: var(--wide); margin-inline: auto; padding-inline: var(--pad); }
.fig--break > figcaption .cap { font-size: .96rem; }

/* treatment 3 — full-bleed band, caption indented to the measure */
.fig--bleed { width: 100%; padding: 0; }
.fig--bleed img { height: clamp(300px, 42vw, 900px); object-fit: cover; }
.fig--bleed figcaption { max-width: var(--wide); margin-inline: auto; padding-inline: var(--pad);
  border-top: none; }
.fig--bleed > figcaption .cap { border-left: 3px solid var(--accent); padding-left: .7rem; }

/* treatment 4 — inset in the column, prose beside it */
.fig--inset { margin-block: .4rem 1rem; }
@media (min-width: 1024px) {
  .fig--inset { float: right; width: 42%; margin: .4rem 0 1.2rem clamp(20px, 2vw, 44px); }
  .fig--inset > figcaption .cap { font-size: .84rem; }
  .fig--inset > figcaption .credit { margin-left: 0; }
}

.gallery { display: grid; gap: clamp(10px, 1vw, 26px); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 900px)  { .gallery { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1600px) { .gallery { grid-template-columns: repeat(4, 1fr); } }
.gallery figure img { aspect-ratio: 3 / 4; object-fit: cover; border: 1px solid var(--hair); }
.gallery figcaption { margin-top: .5rem; font-size: .84rem; color: var(--ink-quiet); line-height: 1.4; }

/* --- map --------------------------------------------------------------- */
.map-figure { margin-block: var(--step); }

.map-figure figcaption { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; align-items: baseline;
  margin-top: .7rem; }
.map-figure .cap { flex: 1 1 24ch; max-width: 70ch; margin: 0; font-size: .94rem; }
.map-figure .credit { margin-left: auto; font-family: var(--display); font-size: .76rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ink-faint); }
.map-layout { display: grid; gap: 1.2rem 2rem; }
.map-canvas svg { width: 100%; height: auto; display: block; background: #0b100e;
  border: 1px solid var(--hair); }
.pin { fill: var(--accent); stroke: #0b100e; stroke-width: 3; }
.pin--on { fill: var(--accent); }
.pin-num { font-family: var(--ui); font-weight: 700; font-size: 17px; fill: #150802; }
.pin-hit:hover .pin { fill: var(--secondary); }
.geo-lab { font-family: var(--ui); font-weight: 500; font-size: 34px; letter-spacing: .18em;
  text-transform: uppercase; fill: rgba(232,228,216,.34); }
.geo-lab--state { font-size: 62px; letter-spacing: .22em; fill: rgba(232,228,216,.5); text-anchor: middle; }
.map-legend { list-style: none; margin: 0; padding: 0; display: grid;
  row-gap: 0; column-gap: clamp(1.2rem, 2vw, 2.6rem);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start; }
@media (min-width: 700px)  { .map-legend { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1400px) { .map-legend { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
.map-legend li { border-top: 1px solid var(--hair); }
.map-legend li:last-child { border-bottom: 1px solid var(--hair); }
.map-legend li.off { opacity: .45; }
.map-legend a { display: grid; grid-template-columns: 1.6em minmax(0, 1fr); gap: .5em;
  align-items: baseline; padding: .5rem 0; color: var(--ink); }
.map-legend a:hover { color: var(--accent); }
.map-legend .lg-num { font-family: var(--ui); font-weight: 700; font-size: .82rem;
  color: var(--accent); }
.map-legend .lg-name { font-family: var(--ui); font-weight: 500; font-size: .88rem;
  letter-spacing: .06em; text-transform: uppercase; line-height: 1.3; }

/* ==========================  ARTICLE  =================================== */
.article-head { padding-block: var(--step) 0; }
.article-head h1 { font-size: clamp(40px, 5.6vw, 150px); font-weight: 800; text-transform: uppercase;
  max-width: 34ch; margin-top: .8rem; line-height: .92; }
.article-head .lead { max-width: 64ch; font-size: 1.3rem; }
@media (min-width: 1200px) {
  .article-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 3rem; }
  .article-head .kicker, .article-head h1 { grid-column: 1; }
}
.article-body { font-size: 1.06rem; line-height: 1.66; }
.article-body::after { content: ""; display: table; clear: both; }
.article-body > p { margin: 0 0 1.15em; }
.article-body h2 { clear: both; font-family: var(--display); font-size: clamp(24px, 2.1vw, 54px);
  text-transform: uppercase; margin: 2.2em 0 .7em; color: var(--ink); }
.article-body h2::before { content: ""; display: block; width: 44px; height: 3px;
  background: var(--accent); margin-bottom: .5em; }
.article-body a { text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: .18em; }

.lead { font-size: 1.24rem; line-height: 1.44; font-weight: 400; color: rgba(232,228,216,.94);
  margin: 1.1rem 0 0; max-width: 58ch; }


.pullquote { margin: var(--step) 0; border-top: 2px solid var(--accent);
  border-bottom: 1px solid var(--hair); padding: 1rem 0; }
.pullquote p { margin: 0; font-family: var(--display); font-weight: 600; text-transform: uppercase;
  font-size: clamp(22px, 2vw, 46px); line-height: 1.06; }

.blockquote { margin: var(--step) 0; padding-left: 1.1rem; border-left: 3px solid var(--secondary); }
.blockquote p { margin: 0; font-size: 1.1rem; font-style: italic; }
.blockquote cite { display: block; margin-top: .5rem; font-family: var(--display);
  font-style: normal; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-quiet); }

.callout { background: var(--panel); border-top: 3px solid var(--secondary);
  padding: clamp(16px, 1.6vw, 36px); margin: var(--step) 0; }
.callout p { margin: 0; font-size: 1.05rem; }

.note { font-size: .94rem; color: var(--ink-quiet); border-left: 1px solid var(--accent);
  padding-left: .8rem; margin: 1.4em 0; }

/* --- notes-for-design material: full-bleed interruptions ---------------- */
.plate { background: var(--panel); border-top: 1px solid var(--hair);
  border-bottom: 1px solid var(--hair); padding-block: clamp(26px, 2.6vw, 70px);
  margin-block: var(--step); }
.plate--accent { background: var(--accent); color: #140803; border-color: rgba(20,8,3,.25); }
.plate--accent .label, .plate--accent .t-when { color: rgba(20,8,3,.72); }
.plate--accent .datatable th, .plate--accent .datatable td { border-color: rgba(20,8,3,.22); }
.plate__head { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; align-items: baseline;
  margin-bottom: 1.2rem; }
.plate__head h2 { font-family: var(--display); font-size: clamp(20px, 1.7vw, 42px);
  text-transform: uppercase; margin: 0; }
.plate__head h2::before { content: none; }

.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.timeline li { display: grid; gap: .2rem 1.6rem; padding-block: .8rem;
  border-top: 1px solid var(--hair); }
@media (min-width: 900px)  { .timeline li { grid-template-columns: minmax(9ch, 22ch) minmax(0, 1fr); } }
@media (min-width: 1600px) { .timeline li { grid-template-columns: minmax(9ch, 26ch) minmax(0, 1fr); } }
.timeline li:last-child { border-bottom: 1px solid var(--hair); }
.t-when { font-family: var(--display); font-weight: 700; font-size: 1.02rem;
  letter-spacing: .05em; text-transform: uppercase; color: var(--secondary); }
.t-what { font-size: .99rem; line-height: 1.5; }

.statrow { display: grid; gap: 1.2rem 2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px)  { .statrow { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .statrow { gap: 1.6rem 3rem; } }
.statblock { border-top: 2px solid var(--accent); padding-top: .6rem; }
.stat-num { display: block; font-family: var(--display); font-weight: 900; line-height: .84;
  font-size: clamp(34px, 3.2vw, 84px); color: var(--ink); }
.stat-label { display: block; margin-top: .4rem; font-size: .9rem; line-height: 1.4;
  color: var(--ink-quiet); }

.datatable, .versus { width: 100%; border-collapse: collapse; font-size: .97rem; }
.datatable caption, .versus caption { text-align: left; font-family: var(--display);
  font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-quiet);
  padding-bottom: .5rem; }
.datatable th, .datatable td, .versus th, .versus td { text-align: left; vertical-align: top;
  padding: .7rem 1.2rem .7rem 0; border-top: 1px solid var(--hair); line-height: 1.45; }
.datatable thead th, .versus thead th { border-top: none; border-bottom: 2px solid var(--ink);
  font-family: var(--display); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.datatable tbody th, .versus tbody th { font-family: var(--display); font-weight: 700;
  font-size: 1rem; letter-spacing: .04em; color: var(--secondary); width: 30%; min-width: 12ch; }
.versus tbody th { color: var(--ink); }
.table-scroll { overflow-x: auto; }

.chart figcaption { margin-top: .6rem; font-size: .88rem; color: var(--ink-quiet); }
.chart svg { width: 100%; height: auto; }
.chart .bar-rect { fill: var(--secondary); }
.chart .bar-label { font-family: var(--display); font-size: 13px; letter-spacing: .06em;
  text-transform: uppercase; fill: var(--ink-quiet); }
.chart .bar-value { font-family: var(--display); font-weight: 700; font-size: 14px; fill: var(--ink); }

/* --- cards ------------------------------------------------------------- */
.profile-grid { display: grid; gap: 1.2rem 2rem; grid-template-columns: 1fr; }
@media (min-width: 800px) { .profile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.profile-card { background: var(--panel); padding: clamp(14px, 1.2vw, 28px); display: flex;
  flex-direction: column; gap: .5rem; border-top: 2px solid var(--secondary); }
.profile-card .p-photo { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.profile-card h3 { font-size: 1.3rem; text-transform: uppercase; }
.profile-card .p-role { font-family: var(--display); font-size: .82rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink-quiet); margin: 0; }
.profile-card p { margin: 0; font-size: .96rem; }
.profile-card .p-links { margin-top: auto; padding-top: .6rem; }
.profile-card.no-photo { border-top-color: var(--accent); }

.org-grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.org-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .9rem;
  align-items: center; background: var(--panel); padding: .8rem 1rem; color: var(--ink); }
.org-card:hover { background: #1b2c25; }
.org-card .org-logo { grid-row: span 2; width: 46px; height: 46px; object-fit: contain; }
.org-card.no-logo { grid-template-columns: minmax(0, 1fr); }
.org-name { font-family: var(--display); font-weight: 700; font-size: 1.05rem; text-transform: uppercase; }
.org-host { font-size: .84rem; color: var(--ink-quiet); }

.entity-ref { white-space: nowrap; }

.further-grid { display: grid; gap: .8rem; grid-template-columns: 1fr; }
@media (min-width: 800px)  { .further-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .further-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.further-grid a { display: block; background: var(--panel); padding: 1rem 1.2rem;
  border-top: 2px solid var(--accent); font-family: var(--display); font-weight: 600;
  font-size: 1.12rem; text-transform: uppercase; line-height: 1.06; color: var(--ink); }
.further-grid a:hover { color: var(--accent); }

.next-up { margin-top: var(--step); }
.next-grid { display: grid; gap: clamp(14px, 1.4vw, 34px); grid-template-columns: 1fr; }
@media (min-width: 800px)  { .next-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .next-grid { grid-template-columns: 1.4fr 1fr 1fr; align-items: start; } }
.next-card { display: flex; flex-direction: column; gap: .6rem; color: var(--ink);
  border-top: 2px solid var(--hair); padding-top: .8rem; }
.next-card:hover { border-top-color: var(--accent); color: var(--ink); }
.next-card__img { display: block; position: relative; aspect-ratio: 16 / 10; overflow: hidden;
  background: #0b100e; border: 1px solid var(--hair); }
.next-card__img img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease, filter .5s ease; }
.next-card:hover .next-card__img img { transform: scale(1.025); filter: brightness(1.07); }
.next-card__title { font-family: var(--display); font-weight: 700; text-transform: uppercase;
  font-size: 1.32rem; line-height: 1.02; }
.next-card:hover .next-card__title { color: var(--accent); }
.next-card__brief { font-size: .94rem; line-height: 1.45; color: var(--ink-quiet); }
@media (min-width: 1600px) {
  .next-card--lead .next-card__img { aspect-ratio: 4 / 3; }
  .next-card--lead .next-card__title { font-size: 1.9rem; }
}

.related-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.related-links li { border-top: 1px solid var(--hair); padding-top: .5rem; }
.related-links a { font-family: var(--display); font-weight: 600; font-size: 1.06rem;
  text-transform: uppercase; line-height: 1.1; }

/* --- category list ----------------------------------------------------- */
.cat-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.cat-list li { border-top: 1px solid var(--hair); }
.cat-list li:last-child { border-bottom: 1px solid var(--hair); }
.cat-list a { display: grid; gap: .2rem 1.6rem; padding: .9rem 0; color: var(--ink); }
@media (min-width: 900px) { .cat-list a { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: baseline; } }
.cat-list a:hover { color: var(--accent); }
.cat-list .c-title { font-family: var(--display); font-weight: 700; font-size: 1.2rem;
  text-transform: uppercase; line-height: 1.06; }
.cat-list .c-brief { font-size: .93rem; color: var(--ink-quiet); line-height: 1.45; }

.roster { display: grid; gap: var(--step) 2.4rem; }
@media (min-width: 1024px) { .roster { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1600px) { .roster { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ==========================  SUPPORTERS  ================================ */
.supporters__head { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; align-items: baseline;
  border-top: 2px solid var(--ink); padding-top: .7rem; margin-bottom: 1.2rem; }
.supporters__head h2 { font-family: var(--display); font-size: clamp(19px, 1.5vw, 36px);
  text-transform: uppercase; }
.supporters__note { margin: 0; font-size: .92rem; color: var(--ink-quiet); max-width: 56ch; }
.sponsor-run { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 1rem; }
.sponsor-run + .sponsor-run { margin-top: 14px; }
.sponsor {
  flex: 0 0 264px;
  min-height: 0;              /* constant width — never grows, never 1fr */
  max-width: 100%;
  display: flex; flex-direction: column; gap: .6rem;
  background: #0A0F0D;          /* dark ground: the wordmarks are light */
  border: 1px solid var(--hair);
  padding: 14px 16px;
  color: var(--ink);
}
.sponsor:hover { border-color: var(--secondary); }
.sponsor img { max-height: 54px; max-width: 100%; width: auto; height: auto;
  object-fit: contain; align-self: flex-start; }
.sponsor .sponsor-logo-box { display: flex; align-items: center; height: 54px; width: 100%; }
.sponsor:has(.sponsor-logo-box) .sponsor-name { position: absolute; left: -9999px; }
.sponsor-name { font-family: var(--display); font-weight: 600; font-size: .92rem;
  letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; }
.sponsor-blurb { font-size: .86rem; line-height: 1.4; color: var(--ink-quiet); }
.sponsor.feat { border-color: rgba(255,90,31,.5); }
@media (max-width: 700px) { .sponsor { flex: 0 0 100%; min-height: 0; } }

/* ==========================  FOOTER  ==================================== */
.site-foot { border-top: 1px solid var(--hair); padding-block: var(--step); margin-top: var(--step); }
.site-foot__inner { display: flex; flex-wrap: wrap; gap: 1.6rem 3rem; justify-content: space-between;
  align-items: flex-end; }
.site-foot .wordmark { font-size: clamp(34px, 3.4vw, 88px); }
.site-foot p { margin: .9rem 0 0; font-size: .95rem; color: var(--ink-quiet); max-width: 46ch; }
.foot-nav { display: grid; grid-template-columns: repeat(2, auto); gap: .45rem 2.4rem; }
@media (min-width: 900px) { .foot-nav { grid-template-columns: repeat(3, auto); } }

/* ==========================  UTIL  ====================================== */
.stack > * + * { margin-top: 1rem; }
.expander { border: 0; padding: 0; margin: 0; }
.expander > summary { cursor: pointer; font-family: var(--display); font-weight: 600;
  font-size: .84rem; letter-spacing: .16em; text-transform: uppercase; color: var(--accent);
  padding-block: .7rem; border-top: 1px solid var(--hair); list-style: none; }
.expander > summary::-webkit-details-marker { display: none; }
.expander > summary::after { content: " +"; }
.expander[open] > summary::after { content: " −"; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 1rem; top: 1rem; background: var(--accent); color: #140803; padding: .6rem 1rem; z-index: 9; }


/* ==========================================================================
   MOBILE PASS
   Three real problems at 360-700px: a 9-item nav that stacked into a wall,
   plates and tables that outran the viewport, and a 1200-unit map viewBox
   scaling to 0.28 (pins rendering at 8px). Each fixed at its cause.
   ========================================================================== */

@media (max-width: 767px) {

  /* --- nav: one scrollable strip, 44px targets, edge fade as the affordance --- */
  .masthead__bar, .masthead__sub {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    gap: 0;
    margin-inline: calc(var(--pad) * -1);
    padding-inline: var(--pad);
    mask-image: linear-gradient(90deg, transparent 0, #000 var(--pad), #000 calc(100% - 28px), transparent 100%);
  }
  .masthead__bar::-webkit-scrollbar, .masthead__sub::-webkit-scrollbar { display: none; }
  .masthead__bar .navlink, .masthead__sub .navlink {
    flex: none;
    scroll-snap-align: start;
    min-height: 44px;
    align-items: center;
    padding: 0 .85em;
    margin: 0;
    border-bottom: none;
    border-left: 1px solid var(--hair);
    font-size: .78rem;
  }
  .masthead__bar .navlink:first-child, .masthead__sub .navlink:first-child { border-left: none; padding-left: 0; }
  .masthead__bar .navlink[aria-current="page"], .masthead__sub .navlink[aria-current="page"] {
    box-shadow: inset 0 -2px 0 var(--accent);
  }
  .foot-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .1rem 1.2rem; }
  .foot-nav .navlink { min-height: 44px; align-items: center; }

  /* --- masthead: the 1200-unit box cannot carry five labels at 335px,
         so a short-viewBox variant with three labels takes over --- */
  .masthead--home .masthead__mark { margin: 14px 0 10px; }
  /* three labels at phone width: the middle two have no room */
  /* two labels at phone width: three anchors cannot clear each other in 335px */
  .profile-labels .pl--end { display: none; }
  .profile-labels .pl { font-size: .68rem; letter-spacing: .06em; }

  /* --- map: the same edge fade the nav strip gets, so the coast is findable --- */
  .map-canvas {
    mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 36px), transparent 100%);
  }

  /* --- map: hold a legible scale and let the canvas pan --- */
  .map-canvas {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-inline: calc(var(--pad) * -1);
    padding-inline: var(--pad);
  }
  .map-canvas::-webkit-scrollbar { display: none; }
  .map-canvas svg { min-width: 640px; }       /* scale ~0.53: pins 16px, numerals 9px */
  .map-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.1rem; }
  .map-legend a { min-height: 44px; align-content: center; }
  .map-figure figcaption { flex-direction: column; gap: .35rem; }
  .map-figure .credit { margin-left: 0; }

  /* --- article: plates and tables stay inside the viewport --- */
  .plate { padding-inline: 0; }
  .table-scroll {
    margin-inline: calc(var(--pad) * -1);
    padding-inline: var(--pad);
    -webkit-overflow-scrolling: touch;
  }
  .datatable, .versus { font-size: .92rem; min-width: 460px; }
  .datatable tbody th, .versus tbody th { width: auto; min-width: 10ch; }
  .timeline li { grid-template-columns: 1fr; gap: .15rem; padding-block: .7rem; }
  .t-when { font-size: .92rem; }
  .statrow { grid-template-columns: 1fr; }
  .stat-num { font-size: clamp(38px, 13vw, 60px); }
  .chart svg { min-width: 520px; }
  .chart { overflow-x: auto; }

  /* --- article: figure treatments that assume desktop width --- */
  .fig--inset { float: none; width: 100%; margin-inline: 0; }
  .fig--bleed img { height: clamp(220px, 56vw, 320px); }
  .fig figcaption, .article-figure figcaption { flex-direction: column; gap: .3rem; }
  .fig .credit, .article-figure .credit, .credit { margin-left: 0; }
  .gallery { grid-template-columns: repeat(2, 1fr); }

  /* --- article head + reading sizes --- */
  .article-head h1 { font-size: clamp(30px, 9vw, 44px); max-width: none; }
  .article-head .lead, .lead { font-size: 1.1rem; }
  .article-body { font-size: 1.02rem; }
  .pullquote p { font-size: clamp(20px, 6.4vw, 30px); }
  .band__head { gap: .3rem 1rem; }
  .band__head .label { margin-left: 0; }

  /* --- homepage descent + hero --- */
  .hero__img { height: clamp(360px, 78vw, 520px); }
  .hero__desc { gap: .6rem; }
  .station__head { gap: .2rem .9rem; }
  .elev, .station--first .elev, .station--last .elev { font-size: clamp(34px, 11vw, 54px); }
  .sig { grid-template-columns: 1fr; }
  .sig__num { font-size: clamp(46px, 15vw, 74px); }
  .next-grid { gap: 1.2rem; }
  .next-card--lead .next-card__img { aspect-ratio: 16 / 10; }

  /* --- sponsors: full-width slots, real tap height --- */
  .sponsor { flex: 0 0 100%; min-height: 0; }
  .sponsor-run { gap: 10px; }
}

@media (max-width: 420px) {
  .map-legend { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: 1fr; }
  .masthead--home .wordmark { font-size: clamp(30px, 11vw, 44px); }
}

/* sp-mark-align: marks sit CENTRED in their box. Placement only — Design's size,
   padding, panel and object-fit are untouched. */
.sponsor img,.sponsor-box img,.sp-logo img{object-position:center!important;margin-left:auto!important;margin-right:auto!important;display:block}
.sponsor .sp-logo,.sponsor-box{display:flex;align-items:center;justify-content:center}

/* sp-tile-uniform: a slot never grows to fill its row — every tile the same width in
   every row, whatever the count. Only flex-grow is touched. */
.sponsor{flex-grow:0!important}
.sponsor.lead-line,.sponsor.feat.lead-line{flex-grow:1!important}
.sponsor:not(.lead-line){flex-basis:var(--sp-tile,232px)!important}
/* ==========================  SUPPORTERS  ================================ */
.supporters__head{flex-wrap:wrap!important}
/* ==========================  SUPPORTERS  ================================ */
.supporters__head > .sponsor{flex:1 1 var(--sp-min,220px)!important;min-width:min(220px,100%)!important}
.sponsor-run{flex-wrap:wrap!important}
.sponsor-run > .sponsor{flex:1 1 var(--sp-min,220px)!important;min-width:min(220px,100%)!important}
.sponsor:not(.lead-line){grid-column:span 1!important;grid-row:span 1!important}

/* sp-mark-panel: Design set no ground on the mark, so light and dark logos cannot
   both read against the page. Give every mark the same dark plate and an inset — and
   GROW the box by that inset so the artwork keeps the size Design chose. */
.sponsor img,.sponsor-box img,.sp-logo img{background:#121013!important;padding:8px 12px!important;box-sizing:border-box!important;height:70px!important;max-height:70px!important;width:100%!important;object-fit:contain!important;border-radius:2px}

/* sp-blurb-stack: a slot holding BOTH a mark and our copy stacks them —
   a fixed-height row clips the mark once the copy is un-hidden. */
.sponsor:has(> img):has(> .sponsor-blurb:not(:empty)){flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;height:auto!important;min-height:0!important;overflow:visible!important;gap:8px}
.sponsor:has(> img):has(> .sponsor-blurb:not(:empty)) > img{align-self:flex-start}

/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-tile-fit: a slot fills its track, keeps a symmetric inset, and cannot be inflated
   by one long line of our copy. */
.sponsor.sponsor{width:100%!important;box-sizing:border-box!important;align-self:stretch!important;align-items:center!important;height:auto!important;min-height:0!important;overflow:hidden}
:has(> .sponsor.sponsor){align-items:stretch!important}
.sponsor.sponsor .sponsor-name{min-width:0!important;overflow-wrap:anywhere}
.sponsor.sponsor > img{flex:0 0 auto!important;align-self:center!important}
.sponsor.sponsor > .sponsor-txt,.sponsor.sponsor > span:not(.sponsor-name){flex:1 1 auto!important;min-width:0!important}
.sponsor.sponsor .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0!important}
/* the mobile un-clamp is retired: the operator asked for "2-3 rows max" on phones, which is
   what the desktop rule above already does — so mobile simply keeps it. */
@media (max-width:640px){.sponsor.sponsor .sponsor-blurb{-webkit-line-clamp:3!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;overflow:hidden!important}}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* MAPKIT_BEGIN — injected real geodata; pins are links */
.map-slot{padding:0;background:none!important;border:0!important;display:flex;align-items:center;justify-content:center;min-height:0!important}
.map-slot>svg.mapkit{width:100%!important;max-width:100%;height:auto;max-height:none;margin:0 auto}
.map-slot{width:100%}
.map-slot{aspect-ratio:auto!important;height:auto!important}
.map-slot::after,.map-slot::before{content:none!important;display:none!important}
.map-figure figcaption{}
.mapkit__pin{cursor:pointer}
.mapkit__pin text{paint-order:stroke;stroke:#151813;stroke-width:3px;stroke-linejoin:round}
.mapkit__pin:hover circle{r:9.1}
.mapkit__pin:hover text{font-weight:700}
/* MAPKIT_END */

/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1521px at 390, 15% of the whole page. Two columns bring it to
   1022px (33% shorter). Checked before writing: no new overflow, smallest mark still
   134px wide, longest blurb 4 lines, tile heights 160-182px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   Only the tier(s) that were one-per-row are touched (.sponsor-run), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .sponsor-run{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:14px!important}
    .sponsor-run > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-run > * *{min-width:0!important;max-width:100%}
    .sponsor-run img,.sponsor-run svg{max-width:100%;height:auto}
}

/* op-odd-tier-lead: .sponsor-run (5 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sponsor-run:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.next-card > span.next-card__img > img,
  a.next-card.next-card--lead > span.next-card__img > img,
  article > figure.fig.fig--bleed > img,
  article > figure.fig.fig--break.fig--plate > img,
  article.teaser > div.teaser__img > img,
  article.teaser > div.teaser__img.teaser__img--tall > img,
  div.article-body.prose > figure.article-figure > img,
  div.article-body.prose > figure.fig.fig--inset.fig--plate > img,
  div.lead-feature > figure.fig.fig--plate > img,
  main > figure.fig.fig--bleed > img,
  section.hero > div.hero__img > img){height:auto}
/* op-img-dims:end */
[data-partner] img{background:transparent!important}
