/* =====================================================================
   RMR Mundial — site stylesheet
   Palette: deep wine, warm brick, amber/gold, warm cream, soft charcoal
   ===================================================================== */

/* ---------------------------------------------------------- tokens */
:root {
  /* Primary red sampled from the approved homepage design: the dominant tone
     across the whole comp clusters tightly on #901D2C. The deep and ink shades
     below are that same hue stepped down, so the family stays consistent. */
  --wine:        #901d2c;
  --wine-deep:   #6b1520;
  --wine-ink:    #430d15;
  --brick:       #a8321f;
  --brick-soft:  #c4553c;
  --gold:        #e0a032;
  --gold-bright: #f2bd57;
  --cream:       #fbf3e7;
  --cream-warm:  #f4e6d2;
  --cream-deep:  #ecd9be;
  --charcoal:    #2c2723;
  --charcoal-soft:#5d534b;
  --earth:       #8a6a4a;
  --earth-soft:  #b99a76;

  --ink:        var(--charcoal);
  --ink-muted:  var(--charcoal-soft);
  --page:       var(--cream);

  --font-display: "Oswald", "Arial Narrow", system-ui, sans-serif;
  --font-accent:  "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body:    "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* Full-bleed: content tracks the viewport at every size rather than stopping
     at a fixed container. The gutter grows with the screen so wide monitors get
     breathing room at the edges instead of text running into the bezel. */
  --shell: 100%;
  --gutter: clamp(1.15rem, 4.5vw, 5rem);
  --radius: 14px;
  --radius-lg: 22px;

  --shadow-sm: 0 2px 10px rgba(52, 6, 15, .08);
  --shadow-md: 0 14px 34px rgba(52, 6, 15, .14);
  --shadow-lg: 0 28px 64px rgba(52, 6, 15, .26);

  --ease: cubic-bezier(.22, .61, .36, 1);
  --header-h: 5.25rem;

  /* Shared "papel picado" texture: a cut-paper lattice of diamonds, garland
     scallops and confetti dots. Inlined as an SVG data URI so it costs no extra
     request, and always laid over a solid colour at low opacity so it reads as
     texture rather than decoration. Used by the CTA bands and the footer. */
  /* Festive Mexican + music line pattern: papel picado garland, guitar,
     musical notes, maraca, Talavera rosette and a sound wave. Drawn in pure
     black on a transparent ground — the surface colour shows through and the
     motif only darkens it. Strength is set once, via --texture-strength. */
  --texture-fiesta: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23000000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 10q20 11 40 0t40 0 40 0 40 0'/%3E%3Cpath d='M12 13l4 7 4-7M52 13l4 7 4-7M92 13l4 7 4-7M132 13l4 7 4-7'/%3E%3Ccircle cx='32' cy='52' r='8'/%3E%3Ccircle cx='32' cy='64' r='11'/%3E%3Cpath d='M32 44V28'/%3E%3Cpath d='M28 28h8v6h-8z'/%3E%3Ccircle cx='32' cy='58' r='2.5'/%3E%3Cellipse cx='104' cy='62' rx='4.5' ry='3.4'/%3E%3Cellipse cx='124' cy='58' rx='4.5' ry='3.4'/%3E%3Cpath d='M108.5 61V40M128.5 57V36'/%3E%3Cpath d='M108.5 40l20-4'/%3E%3Cellipse cx='34' cy='112' rx='7.5' ry='9'/%3E%3Cpath d='M34 121v12M27 112h14'/%3E%3Ccircle cx='116' cy='116' r='4'/%3E%3Cpath d='M116 106v-6M116 132v-6M106 116h-6M132 116h-6M109 109l-4-4M127 127l4 4M127 109l4-4M109 127l-4 4'/%3E%3Cpath d='M0 150q20 8 40 0t40 0 40 0 40 0'/%3E%3C/g%3E%3Cg fill='%23000000'%3E%3Ccircle cx='80' cy='80' r='2'/%3E%3Ccircle cx='0' cy='80' r='2'/%3E%3Ccircle cx='160' cy='80' r='2'/%3E%3Ccircle cx='80' cy='0' r='2'/%3E%3Ccircle cx='80' cy='160' r='2'/%3E%3C/g%3E%3C/svg%3E");

  /* Live-events pattern for the footer: a festoon-bulb garland, ticket stub,
     spotlight beams, marquee arch, stars and confetti. No musical notes or
     instruments — entertainment rather than music, per the brief. */
  --texture-events: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23000000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 16q25 18 50 0t50 0 50 0 50 0'/%3E%3Cpath d='M25 20v6M50 12v6M75 20v6M100 12v6M125 20v6M150 12v6M175 20v6'/%3E%3Crect x='22' y='62' width='52' height='30' rx='4'/%3E%3Cpath d='M48 62v4M48 72v4M48 82v4M48 90v2'/%3E%3Cpath d='M120 58l30 18-30 18'/%3E%3Cpath d='M126 76h18'/%3E%3Cpath d='M20 140q22-26 44 0'/%3E%3Cpath d='M20 140h44M28 140v14M56 140v14M42 132v-8'/%3E%3Cpath d='M112 128l8 16 18 2-13 12 3 18-16-9-16 9 3-18-13-12 18-2Z'/%3E%3Cpath d='M168 118l6 10 6-10M168 156l6-10 6 10'/%3E%3C/g%3E%3Cg fill='%23000000'%3E%3Ccircle cx='25' cy='28' r='3.2'/%3E%3Ccircle cx='50' cy='20' r='3.2'/%3E%3Ccircle cx='75' cy='28' r='3.2'/%3E%3Ccircle cx='100' cy='20' r='3.2'/%3E%3Ccircle cx='125' cy='28' r='3.2'/%3E%3Ccircle cx='150' cy='20' r='3.2'/%3E%3Ccircle cx='175' cy='28' r='3.2'/%3E%3Ccircle cx='96' cy='104' r='2.4'/%3E%3Ccircle cx='184' cy='96' r='2.4'/%3E%3Ccircle cx='12' cy='108' r='2.4'/%3E%3Ccircle cx='86' cy='176' r='2.4'/%3E%3Ccircle cx='150' cy='186' r='2.4'/%3E%3Ccircle cx='36' cy='186' r='2.4'/%3E%3C/g%3E%3C/svg%3E");

  /* The client's 0.1 black. One number, tuned in one place. */
  --texture-strength: .1;
  --texture-scale: clamp(120px, 12vw, 175px);
}

/* Applied via ::before so the texture never tints text or interferes with the
   section's own gradient. */
.has-texture { position: relative; isolation: isolate; }
.has-texture > * { position: relative; z-index: 1; }
.has-texture::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--texture-fiesta);
  background-size: var(--texture-scale) auto;
  background-repeat: repeat;
  opacity: var(--texture-strength);
  pointer-events: none;
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 1rem);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: clamp(1rem, .96rem + .2vw, 1.075rem);
  line-height: 1.65;
  overflow-x: hidden;
}

body.nav-open,
body.modal-open { overflow: hidden; }

img, video { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: .01em;
  margin: 0 0 .6em;
  text-wrap: balance;
}

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a { color: var(--wine); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--brick); }

:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

button { font: inherit; color: inherit; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute;
  left: 1rem; top: -4rem;
  z-index: 200;
  background: var(--gold);
  color: var(--wine-ink);
  padding: .7rem 1.1rem;
  border-radius: 0 0 10px 10px;
  font-weight: 700;
  text-decoration: none;
  transition: top .2s var(--ease);
}
.skip-link:focus { top: 0; }

.shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  margin-inline: auto;
}

/* ------------------------------------------------------- typography */
.eyebrow {
  font-family: var(--font-display);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--brick);
  margin: 0 0 .85rem;
}

.section__title {
  font-size: clamp(1.85rem, 1.25rem + 2.4vw, 3rem);
  color: var(--wine-deep);
  text-transform: uppercase;
}

.section__lead {
  font-size: clamp(1.02rem, .98rem + .28vw, 1.18rem);
  color: var(--ink-muted);
  max-width: 56ch;
}

.accent-line,
.accent-quote p {
  font-family: var(--font-accent);
  font-style: italic;
}

.accent-quote {
  margin: 0 0 1.4rem;
  padding: .2rem 0 .2rem 1.15rem;
  border-left: 3px solid var(--gold);
}
.accent-quote p {
  font-size: clamp(1.2rem, 1.05rem + .7vw, 1.6rem);
  line-height: 1.4;
  color: var(--wine);
  margin: 0;
}
.accent-quote--sm p { font-size: 1.15rem; }

/* ---------------------------------------------------------- buttons */
.btn {
  --btn-bg: var(--wine);
  --btn-fg: var(--cream);
  --btn-bd: var(--wine);
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .85rem 1.6rem;
  min-height: 48px;
  border: 2px solid var(--btn-bd);
  border-radius: 999px;
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-family: var(--font-display);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: transform .25s var(--ease), background-color .25s var(--ease),
              color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); color: var(--btn-fg); }
.btn:active { transform: translateY(0); }

.btn--primary:hover { --btn-bg: var(--brick); --btn-bd: var(--brick); }
.btn--gold { --btn-bg: var(--gold); --btn-fg: var(--wine-ink); --btn-bd: var(--gold); }
.btn--gold:hover { --btn-bg: var(--gold-bright); --btn-bd: var(--gold-bright); }
.btn--ghost { --btn-bg: transparent; --btn-fg: var(--cream); --btn-bd: rgba(251,243,231,.6); }
.btn--ghost:hover { --btn-bg: rgba(251,243,231,.14); --btn-bd: var(--cream); }
.btn--outline-cream { --btn-bg: transparent; --btn-fg: var(--cream); --btn-bd: rgba(251,243,231,.55); }
.btn--outline-cream:hover { --btn-bg: rgba(251,243,231,.12); --btn-bd: var(--cream); }
.btn--sm { padding: .6rem 1.15rem; min-height: 42px; font-size: .8rem; }

.btn__arrow {
  display: inline-block;
  transition: transform .3s var(--ease);
}
.btn:hover .btn__arrow,
.link-cta:hover .btn__arrow { transform: translateX(5px); }

.btn__play {
  width: 0; height: 0;
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent currentColor;
}

.link-cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-family: var(--font-display);
  font-size: .84rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brick);
  text-decoration: none;
  border-bottom: 2px solid rgba(168,50,31,.3);
  padding-bottom: .2rem;
  transition: color .25s var(--ease), border-color .25s var(--ease);
}
.link-cta:hover { color: var(--wine); border-color: var(--gold); }

/* ----------------------------------------------------------- header */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  background: var(--wine-deep);
  border-bottom: 1px solid rgba(224,160,50,.28);
  transition: background-color .4s var(--ease), box-shadow .4s var(--ease),
              border-color .4s var(--ease);
}
.site-header--overlay {
  background: transparent;
  border-bottom-color: transparent;
}
.site-header.is-stuck {
  background: var(--wine-deep);
  border-bottom-color: rgba(224,160,50,.28);
  box-shadow: 0 10px 30px rgba(52,6,15,.32);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  min-height: var(--header-h);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  text-decoration: none;
  color: var(--cream);
}
/* The logo artwork already carries the RMR MUNDIAL wordmark, so no text twin. */
.brand__mark {
  width: auto;
  height: 62px;
  object-fit: contain;
  flex: none;
}
.brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.brand__tag {
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(251,243,231,.7);
  max-width: 12ch;
}

.primary-nav__list {
  display: flex;
  align-items: center;
  gap: clamp(.6rem, 1.6vw, 1.65rem);
  list-style: none;
  margin: 0; padding: 0;
}

.primary-nav__link {
  position: relative;
  display: inline-block;
  padding: .45rem .1rem;
  font-family: var(--font-display);
  font-size: .88rem;
  font-weight: 500;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--cream);
  text-decoration: none;
  transition: color .25s var(--ease);
}
.primary-nav__link::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s var(--ease);
}
.primary-nav__link:hover { color: var(--gold-bright); }
.primary-nav__link:hover::after,
.primary-nav__link.is-active::after { transform: scaleX(1); }
.primary-nav__link.is-active { color: var(--gold); }

.nav-toggle {
  display: none;
  width: 48px; height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(251,243,231,.4);
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
}
.nav-toggle__bars { display: block; width: 22px; }
.nav-toggle__bars i {
  display: block;
  height: 2px;
  background: var(--cream);
  border-radius: 2px;
  transition: transform .3s var(--ease), opacity .2s var(--ease);
}
.nav-toggle__bars i + i { margin-top: 5px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars i:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav-scrim {
  position: fixed;
  inset: 0;
  z-index: 90;
  background: rgba(52,6,15,.6);
  backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity .3s var(--ease);
}
.nav-scrim.is-visible { opacity: 1; }

/* ------------------------------------------------------------- hero */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: min(76svh, 42rem);
  padding: calc(var(--header-h) + clamp(1.75rem, 4vw, 3.25rem)) 0 clamp(2.5rem, 5vw, 4rem);
  background: var(--wine-ink);
  overflow: hidden;
  isolation: isolate;
}
.hero__media { position: absolute; inset: 0; z-index: -2; }
.hero__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  /* This extended version places the group farther left and preserves the
     newly revealed Guanajuato street on the right. */
  object-position: 50% center;
}
.hero__veil {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(80deg, rgba(52,6,15,.92) 0%, rgba(52,6,15,.7) 18%, rgba(52,6,15,.28) 36%, rgba(52,6,15,.1) 52%, rgba(52,6,15,.5) 100%),
    linear-gradient(to top, rgba(52,6,15,.82) 0%, rgba(52,6,15,0) 46%);
}

/* Copy on the left over the dark street; video card on the right. */
.hero__inner {
  display: grid;
  /* Changing the previous 1 / 1.1 split to equal columns gives the copy
     roughly 30px more room at the common desktop widths. */
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1.75rem, 4vw, 3.25rem);
  width: min(100% - (var(--gutter) * 2), var(--shell));
}
.hero__content { grid-column: 1; color: var(--cream); }
/* Stretch to fill the column so the card is sized by the grid, not by content. */
.hero__video   { grid-column: 2; grid-row: 1; justify-self: stretch; align-self: center; }
/* Pulled in from the right edge so more of the hero photograph stays visible
   behind and beside the card. */
.hero__video .video-card {
  width: min(100%, 30rem);
  max-width: 30rem;
  margin-left: auto;
  margin-right: clamp(.75rem, 2.5vw, 2.5rem);
}

/* --- hero video container: entrance, then a slow drift ------------------- */

/* A slightly richer entrance than the generic reveal: rises and settles. */
.hero__video[data-reveal] {
  transform: translateY(28px) scale(.955);
  transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.hero__video[data-reveal].is-revealed { transform: none; }

/* Once it has landed, drift gently so the card feels alive without nagging.
   The delay lets the entrance finish first, and the keyframes start and end at
   translateY(0) so there is no jump when the animation takes over. */
.hero__video.is-revealed {
  animation: heroCardDrift 7.5s var(--ease) 1s infinite;
}
@keyframes heroCardDrift {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-11px); }
}

/* A soft halo that breathes behind the card, tying it to the warm hero light. */
.hero__video .video-card { position: relative; z-index: 1; }
.hero__video .video-card::before {
  content: "";
  position: absolute;
  inset: -14%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(224,160,50,.3), rgba(224,160,50,0) 78%);
  filter: blur(14px);
  animation: heroCardHalo 8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes heroCardHalo {
  0%, 100% { opacity: .45; transform: scale(.94); }
  50%      { opacity: .85; transform: scale(1.04); }
}

/* Pulsing ring on the play button — the one element we want people to click. */
.hero__video .video-card__play {
  animation: heroPlayPulse 3s ease-out infinite;
}
@keyframes heroPlayPulse {
  0%   { box-shadow: 0 0 0 0 rgba(224,160,50,.55); }
  70%  { box-shadow: 0 0 0 20px rgba(224,160,50,0); }
  100% { box-shadow: 0 0 0 0 rgba(224,160,50,0); }
}

/* Hovering or focusing pauses the drift so the card is a steady click target. */
.hero__video:hover,
.hero__video:focus-within { animation-play-state: paused; }

.hero .eyebrow { color: var(--gold); }

.hero__title {
  font-size: clamp(2.5rem, 1.4rem + 5.2vw, 4.6rem);
  text-transform: uppercase;
  color: var(--cream);
  margin-bottom: .5em;
  text-shadow: 0 4px 26px rgba(52,6,15,.6);
}
.hero__title-accent {
  display: block;
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 500;
  text-transform: none;
  color: var(--gold-bright);
  letter-spacing: 0;
}

.hero__lead {
  max-width: 46ch;
  color: rgba(251,243,231,.9);
  font-size: clamp(1.02rem, .97rem + .32vw, 1.16rem);
  margin-bottom: 2rem;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin: 0;
}

.scroll-cue {
  position: absolute;
  left: 50%; bottom: 1.5rem;
  transform: translateX(-50%);
  z-index: 3;
  display: block;
  padding: .5rem;
}
.scroll-cue__line {
  display: block;
  width: 1px; height: 46px;
  background: linear-gradient(to bottom, rgba(251,243,231,0), var(--gold));
  animation: cue 2.6s var(--ease) infinite;
  transform-origin: top;
}
@keyframes cue {
  0%, 100% { transform: scaleY(.45); opacity: .5; }
  50%      { transform: scaleY(1);   opacity: 1; }
}

/* ------------------------------------------------------- video card */
.video-card {
  display: block;
  width: min(24rem, 100%);
  padding: .7rem;
  border: 1px solid rgba(251,243,231,.28);
  border-radius: var(--radius-lg);
  background: rgba(52,6,15,.5);
  backdrop-filter: blur(8px);
  box-shadow: var(--shadow-lg);
  cursor: pointer;
  text-align: left;
  transition: transform .35s var(--ease), border-color .35s var(--ease);
}
.video-card:hover { transform: translateY(-5px); border-color: var(--gold); }
.video-card--wide { width: 100%; }

.video-card__frame {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: calc(var(--radius-lg) - 8px);
  aspect-ratio: 16 / 9;
  background: var(--wine-ink);
}
.video-card__frame img {
  width: 100%; height: 100%;
  /* Square 512x512 stills fill the frame without distortion; the crop is taken
     evenly from top and bottom so the centre of the frame is preserved. */
  object-fit: cover;
  object-position: center;
  transition: transform .6s var(--ease);
}
.video-card:hover .video-card__frame img { transform: scale(1.06); }

.video-card__play,
.media-tile__play {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 66px; height: 66px;
  border-radius: 50%;
  background: rgba(224,160,50,.94);
  box-shadow: 0 0 0 0 rgba(224,160,50,.5);
  transition: transform .3s var(--ease), background-color .3s var(--ease);
}
.video-card__play::after,
.media-tile__play::after {
  content: "";
  position: absolute;
  left: 54%; top: 50%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 11px 0 11px 18px;
  border-color: transparent transparent transparent var(--wine-ink);
}
.video-card:hover .video-card__play,
.media-tile:hover .media-tile__play {
  transform: translate(-50%, -50%) scale(1.09);
  background: var(--gold-bright);
}

.video-card__meta {
  display: block;
  padding: .95rem .5rem .35rem;
  color: var(--cream);
}
.video-card__kicker {
  display: block;
  font-family: var(--font-display);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
}
.video-card__title {
  display: block;
  font-family: var(--font-display);
  font-size: 1.16rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-top: .2rem;
}
.video-card__date {
  display: block;
  font-size: .82rem;
  color: rgba(251,243,231,.68);
}

/* --------------------------------------------------------- sections */
.section { padding: clamp(3.5rem, 6vw, 6rem) 0; position: relative; }
.section--areas { background: var(--cream); }
.section--vision { background: var(--cream-warm); }
.section--vision-alt { background: var(--cream); }
.section--scholarships { background: var(--cream-warm); }
.section--programs { background: var(--cream-warm); }
.section--events { background: var(--cream); }
.section--media { background: var(--cream-warm); }
.section--partners { background: var(--cream); }
.section--gallery,
.section--featured,
.section--eventlist,
.section--story,
.section--contact,
.section--apply-intro { background: var(--cream); }
.section--application { background: var(--cream-warm); }
.section--founders { background: var(--cream-warm); }

.section__head { margin-bottom: clamp(2rem, 4vw, 3rem); }
.section__head--center { text-align: center; }
.section__head--center .section__lead { margin-inline: auto; }
.section__head--row {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 1.25rem;
}

.rule-flourish {
  display: block;
  height: 2px;
  width: min(100% - (var(--gutter) * 2), var(--shell));
  margin: 0 auto;
  background: linear-gradient(90deg, transparent, var(--gold) 18%, var(--brick) 50%, var(--gold) 82%, transparent);
  opacity: .55;
  transform-origin: center;
  animation: flourish 9s ease-in-out infinite;
}
@keyframes flourish {
  0%, 100% { transform: scaleX(.86); opacity: .4; }
  50%      { transform: scaleX(1);   opacity: .7; }
}

/* -------------------------------------------------------- page hero */
.page-hero {
  padding: calc(var(--header-h) + clamp(2.75rem, 6vw, 4.5rem)) 0 clamp(1.75rem, 3vw, 2.5rem);
  background:
    radial-gradient(120% 140% at 12% 0%, rgba(224,160,50,.18) 0%, rgba(224,160,50,0) 55%),
    linear-gradient(160deg, var(--cream-warm) 0%, var(--cream) 65%);
}
/* --- full-width photographic page strip ---------------------------------- */
.page-strip {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(120px, 18vw, 150px);
  margin-top: var(--header-h);
  overflow: hidden;
  background: var(--wine-ink);
  isolation: isolate;
}
.page-strip__media { position: absolute; inset: 0; z-index: -2; }
.page-strip__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 42%;
}
.page-strip::after {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(52,6,15,.9) 0%, rgba(52,6,15,.66) 45%, rgba(52,6,15,.42) 100%);
}
.page-strip__inner { width: min(100% - (var(--gutter) * 2), var(--shell)); margin-inline: auto; }
.page-strip__title {
  font-size: clamp(1.6rem, 1.1rem + 2.2vw, 2.6rem);
  text-transform: uppercase;
  color: var(--cream);
  margin: 0;
  text-shadow: 0 3px 18px rgba(52,6,15,.65);
}
.page-strip__lead {
  margin: .35rem 0 0;
  color: rgba(251,243,231,.85);
  font-size: clamp(.95rem, .92rem + .2vw, 1.06rem);
  max-width: 56ch;
}
/* Allowed to run the full width so the sentence stays on a single line. */
.page-strip__lead--wide { max-width: none; }
@media (min-width: 1100px) {
  .page-strip__lead--wide { white-space: nowrap; }
}
/* Pages with a strip no longer need the tall cream hero above the content. */
.page-hero--compact { padding-top: clamp(2rem, 4vw, 3rem); }

.page-hero__inner { max-width: 58rem; }
.page-hero__title {
  font-size: clamp(2.1rem, 1.35rem + 3.4vw, 3.7rem);
  text-transform: uppercase;
  color: var(--wine-deep);
}
.page-hero__accent {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 500;
  text-transform: none;
  color: var(--brick);
}
.page-hero__lead {
  font-size: clamp(1.04rem, 1rem + .35vw, 1.22rem);
  color: var(--ink-muted);
  max-width: 54ch;
  margin-bottom: 0;
}

/* ------------------------------------------------------- area cards */
.area-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: clamp(1.1rem, 2.2vw, 1.75rem);
}

.area-card {
  --card-accent: var(--wine);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: clamp(1.5rem, 2.4vw, 2.1rem);
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.area-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: var(--card-accent);
}
.area-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.area-card--wine  { --card-accent: linear-gradient(90deg, var(--wine), var(--brick)); }
.area-card--brick { --card-accent: linear-gradient(90deg, var(--brick), var(--gold)); }
.area-card--gold  { --card-accent: linear-gradient(90deg, var(--gold), var(--earth)); }

.area-card__glyph {
  font-size: 1.9rem;
  line-height: 1;
  color: var(--gold);
  margin-bottom: .55rem;
}

/* Photo at the head of each mission card. Negative margins pull it out to the
   card's edges so it reads as a banner rather than an inset thumbnail. */
.area-card__photo {
  display: block;
  margin: calc(clamp(1.5rem, 2.4vw, 2.1rem) * -1) calc(clamp(1.5rem, 2.4vw, 2.1rem) * -1) 1.25rem;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--wine-ink);
}
.area-card__photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .6s var(--ease);
}
.area-card:hover .area-card__photo img { transform: scale(1.05); }
.area-card__title {
  font-size: clamp(1.18rem, 1.05rem + .5vw, 1.45rem);
  color: var(--wine-deep);
  text-transform: uppercase;
  letter-spacing: .02em;
}
.area-card p { color: var(--ink-muted); }
.area-card .link-cta { margin-top: auto; align-self: flex-start; padding-top: .9rem; }

/* ----------------------------------------------------------- vision */
.vision {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(1.75rem, 4.5vw, 4rem);
}
.vision--reverse .vision__media { order: 2; }

.vision__media { position: relative; }
.vision__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}
.vision__frame {
  position: absolute;
  inset: 1.1rem -1.1rem -1.1rem 1.1rem;
  border: 2px solid var(--gold);
  border-radius: var(--radius-lg);
  z-index: -1;
  opacity: .65;
}

/* ------------------------------------------------ classes & scholarships */
.scholarship__subjects {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
}
.scholarship__subjects li {
  padding: .38rem .72rem;
  border: 1px solid var(--cream-deep);
  border-radius: 999px;
  background: var(--cream);
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.scholarship__eligibility {
  padding: 1rem 1.1rem;
  border-left: 4px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  background: rgba(255,255,255,.55);
  color: var(--ink-muted);
}
.scholarship__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin: 1.5rem 0 0;
}

/* ------------------------------------------------------ event cards */
/* Posters run at ~55% of their previous width — proportions untouched. */
.event-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 18.5rem));
  gap: clamp(1.1rem, 2.2vw, 1.6rem);
  justify-content: start;
}

.event-card {
  max-width: 18.5rem;
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.event-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }

.event-card__media {
  position: relative;
  display: block;
  /* Half the previous height: 4/5 was 1.25 tall per unit wide, 8/5 is 0.625. */
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: var(--wine-ink);
}
.event-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}
.event-card:hover .event-card__media img { transform: scale(1.06); }

.event-card__date {
  position: absolute;
  left: .9rem; bottom: .9rem;
  display: grid;
  justify-items: center;
  padding: .5rem .75rem;
  border-radius: 10px;
  background: var(--wine);
  color: var(--cream);
  font-family: var(--font-display);
  line-height: 1;
  box-shadow: var(--shadow-sm);
}
.event-card__date strong { font-size: 1.5rem; }
.event-card__date em { font-style: normal; font-size: .72rem; letter-spacing: .16em; margin-top: .18rem; }
.event-card__date i { font-style: normal; font-size: .64rem; letter-spacing: .1em; color: var(--gold); }

.event-card__body { padding: 1.15rem 1.2rem 1.5rem; display: flex; flex-direction: column; gap: .5rem; }
.event-card__title { font-size: 1.2rem; margin: 0; text-transform: uppercase; }
.event-card__title a { color: var(--wine-deep); text-decoration: none; }
.event-card__title a:hover { color: var(--brick); }
.event-card__meta { font-size: .84rem; color: var(--brick); margin: 0; font-weight: 600; }
.event-card__summary {
  font-size: .94rem;
  color: var(--ink-muted);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.event-card__more { margin-top: .35rem; align-self: flex-start; }

/* ------------------------------------------------------- event list */
.event-list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }

.event-row__inner {
  display: grid;
  grid-template-columns: minmax(0, .52fr) minmax(0, 1.48fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: start;
  padding: clamp(1.25rem, 2.4vw, 1.9rem);
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
}
/* 75% of the previous height, and "contain" so the whole poster stays visible
   rather than being cropped by the shorter frame. */
/* Height-capped rather than ratio-driven, so the poster is always shown whole
   (contain) at a predictable height regardless of how wide the column gets on a
   full-bleed layout — roughly 75% of the original. */
.event-row__media img {
  width: 100%;
  height: clamp(14rem, 26vw, 23rem);
  object-fit: contain;
  object-position: center top;
  border-radius: var(--radius);
  background: var(--cream-warm);
}
.event-row__date {
  font-family: var(--font-display);
  font-size: .92rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--brick);
  margin-bottom: .35rem;
}
.event-row__title {
  font-size: clamp(1.45rem, 1.2rem + 1.1vw, 2.1rem);
  color: var(--wine-deep);
  text-transform: uppercase;
  margin-bottom: .3rem;
}
.event-row__location { font-weight: 600; color: var(--earth); margin-bottom: .85rem; }
.event-row__summary { color: var(--ink-muted); }
.event-row__details {
  margin: 0 0 1.2rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .4rem;
}
.event-row__details li {
  position: relative;
  padding-left: 1.35rem;
  font-size: .95rem;
  color: var(--ink);
}
.event-row__details li::before {
  content: "";
  position: absolute;
  left: 0; top: .62em;
  width: .5rem; height: .5rem;
  border-radius: 50%;
  background: var(--gold);
}
.event-row__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0; }

.badge {
  display: inline-block;
  padding: .28rem .7rem;
  border-radius: 999px;
  font-size: .74rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.badge--muted { background: var(--cream-deep); color: var(--earth); }

.notice {
  padding: 1.15rem 1.35rem;
  margin-bottom: 2rem;
  border-left: 4px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  background: var(--cream-warm);
}
.notice__title { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .08em; margin: 0 0 .3rem; }

.empty-state { color: var(--ink-muted); }
.empty-state--card {
  padding: clamp(2rem, 5vw, 3.5rem);
  text-align: center;
  border: 2px dashed var(--cream-deep);
  border-radius: var(--radius-lg);
  background: var(--cream-warm);
}
.empty-state__title {
  font-family: var(--font-display);
  font-size: 1.3rem;
  text-transform: uppercase;
  color: var(--wine-deep);
  margin-bottom: .4rem;
}

/* ------------------------------------------------------ media tiles */
/* Four tiles, all the same size — no oversized lead item. */
.media-strip {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.85rem, 1.8vw, 1.25rem);
}

.media-tile {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--wine-ink);
  cursor: pointer;
  aspect-ratio: 4 / 3;
  box-shadow: var(--shadow-sm);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.media-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.media-tile img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .6s var(--ease), filter .35s var(--ease);
}
.media-tile:hover img { transform: scale(1.06); }
.media-tile::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(52,6,15,.85) 0%, rgba(52,6,15,.15) 45%, rgba(52,6,15,0) 70%);
  pointer-events: none;
}
.media-tile__play { z-index: 2; width: 54px; height: 54px; }
.media-tile__play::after { border-width: 9px 0 9px 15px; }

.media-tile__badge {
  position: absolute;
  top: .7rem; left: .7rem;
  z-index: 2;
  padding: .2rem .6rem;
  border-radius: 999px;
  background: rgba(251,243,231,.92);
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.media-tile__label {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 2;
  padding: .85rem .95rem;
  text-align: left;
  color: var(--cream);
}
.media-tile__title {
  display: block;
  font-family: var(--font-display);
  font-size: .96rem;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.media-tile__date { display: block; font-size: .76rem; color: rgba(251,243,231,.75); }

/* --------------------------------------------------------- featured */
.featured {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr);
  gap: clamp(1.75rem, 4vw, 3.5rem);
  align-items: center;
}
.featured .video-card {
  background: var(--wine-deep);
  border-color: rgba(224,160,50,.35);
}
.featured__meta {
  font-family: var(--font-display);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .85rem;
  color: var(--brick);
}

/* ---------------------------------------------------------- gallery */
.filters { display: flex; gap: .5rem; flex-wrap: wrap; }
.filter {
  padding: .55rem 1.15rem;
  min-height: 42px;
  border: 2px solid var(--cream-deep);
  border-radius: 999px;
  background: transparent;
  font-family: var(--font-display);
  font-size: .82rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--wine-deep);
  cursor: pointer;
  transition: background-color .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
}
.filter:hover { border-color: var(--gold); }
.filter.is-active { background: var(--wine); border-color: var(--wine); color: var(--cream); }

.gallery {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
  gap: clamp(.85rem, 1.8vw, 1.25rem);
}
.gallery__item.is-hidden { display: none; }
.gallery__fallback { width: 100%; border-radius: var(--radius); }

/* --------------------------------------------------------- partners */
.marquee {
  position: relative;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding-inline: clamp(.5rem, 3vw, 2rem);
}
.marquee__viewport {
  flex: 1;
  display: flex;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.marquee__track {
  display: flex;
  flex: none;
  gap: clamp(.75rem, 1.6vw, 1.15rem);
  list-style: none;
  margin: 0; padding: .5rem 0;
  animation: marquee 46s linear infinite;
  animation-play-state: var(--marquee-state, running);
}
.marquee__track--clone { margin-left: clamp(.75rem, 1.6vw, 1.15rem); }
@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}
.marquee:hover,
.marquee:focus-within { --marquee-state: paused; }

.marquee__item {
  flex: none;
  width: clamp(9.5rem, 15vw, 12.5rem);
  height: clamp(6rem, 9vw, 7.75rem);
  display: grid;
  place-items: center;
  /* Keep the card dimensions unchanged while giving each mark more of the
     available area. */
  padding: .15rem .2rem;
  border-radius: var(--radius);
  background: var(--cream-warm);
  border: 1px solid var(--cream-deep);
  transition: transform .3s var(--ease), border-color .3s var(--ease);
}
.marquee__item:hover { transform: translateY(-3px); border-color: var(--gold); }
/* Every logo is locked to the same optical height, with width free to follow the
   artwork's own proportions, so a wide wordmark and a round badge read as equals
   instead of one dwarfing the other. */
.marquee__item img {
  height: clamp(4rem, 6.25vw, 5.7rem);
  width: 100%;
  max-width: 100%;
  object-fit: contain;
  object-position: center;
}

.marquee__nav {
  flex: none;
  width: 46px; height: 46px;
  display: grid;
  place-items: center;
  border: 2px solid var(--cream-deep);
  border-radius: 50%;
  background: #fff;
  color: var(--wine);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  transition: border-color .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease);
}
.marquee__nav:hover { border-color: var(--gold); background: var(--gold); color: var(--wine-ink); }

/* --------------------------------------------------------- CTA band */
.section--cta { padding: 0; background: var(--cream); }
.cta-band {
  width: 100%;
  max-width: none;
  padding: clamp(3rem, 7vw, 5.5rem) var(--gutter);
  text-align: center;
  background:
    radial-gradient(90% 140% at 50% 0%, rgba(224,160,50,.2) 0%, rgba(224,160,50,0) 60%),
    linear-gradient(150deg, var(--wine) 0%, var(--wine-deep) 55%, var(--wine-ink) 100%);
  color: var(--cream);
}
.cta-band__title {
  font-size: clamp(1.7rem, 1.2rem + 2.4vw, 2.9rem);
  text-transform: uppercase;
  color: var(--cream);
  max-width: 22ch;
  margin-inline: auto;
}
.cta-band__copy {
  max-width: 54ch;
  margin: 0 auto 2rem;
  color: rgba(251,243,231,.86);
}
.cta-band__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .85rem;
  margin: 0;
}

/* ------------------------------------------------------ prose grids */
.prose-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr);
  gap: clamp(1.75rem, 4vw, 3.5rem);
  align-items: start;
}
/* Full-bleed layout stretches the column, but running text still needs a sane
   measure — roughly 90 characters — or it becomes hard to track line to line. */
.prose-grid__body > p,
.prose-grid__body > h3 { max-width: 90ch; }

/* About: the opening section runs the full width rather than sitting in a
   narrow column beside the photo. */
.page-about .prose-grid { grid-template-columns: minmax(0, 1.6fr) minmax(0, .7fr); }

.prose-grid__body h3 {
  font-size: clamp(1.2rem, 1.05rem + .55vw, 1.5rem);
  color: var(--brick);
  text-transform: uppercase;
  margin-top: 2rem;
}
.prose-grid__aside { display: grid; gap: 1.25rem; position: sticky; top: calc(var(--header-h) + 1rem); }

.figure-card {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
}
.figure-card img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.figure-card figcaption {
  padding: .8rem 1rem 1rem;
  font-size: .86rem;
  color: var(--ink-muted);
}

.fact-card {
  padding: clamp(1.25rem, 2.4vw, 1.75rem);
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
}
.fact-card--muted { background: var(--cream-warm); }
.fact-card__title {
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--wine-deep);
  margin-bottom: .9rem;
}
.fact-list { margin: 0; display: grid; gap: .7rem; }
.fact-list > div { display: grid; gap: .1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--cream-deep); }
.fact-list > div:last-child { border-bottom: 0; padding-bottom: 0; }

/* Horizontal variant: the facts run across the full column width instead of
   stacking in a narrow sidebar. Collapses to one column on small screens. */
.fact-card--wide { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.fact-card--wide .fact-list {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  gap: clamp(.85rem, 2vw, 1.5rem);
}
.fact-card--wide .fact-list > div {
  padding: 0 0 0 1rem;
  border-bottom: 0;
  border-left: 3px solid var(--gold);
}
.fact-card--wide .fact-list > div:last-child { padding-bottom: 0; }
.fact-list dt {
  font-family: var(--font-display);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brick);
}
.fact-list dd { margin: 0; font-size: .96rem; }

/* --------------------------------------------------------- programs */
.program-card {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, .6fr);
  border: 1px solid var(--cream-deep);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.program-card__body { padding: clamp(1.5rem, 3.5vw, 2.75rem); }
.program-card__kicker {
  margin: 0 0 .65rem;
  color: var(--brick);
  font-family: var(--font-display);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.program-card__title {
  margin-bottom: .7rem;
  color: var(--wine-deep);
  font-size: clamp(1.55rem, 1.2rem + 1.4vw, 2.3rem);
  text-transform: uppercase;
}
.program-card__body > p:not(.program-card__kicker):not(.program-card__actions) {
  max-width: 72ch;
  color: var(--ink-muted);
}
.program-card__actions { margin: 1.5rem 0 0; }
.program-card__facts {
  display: grid;
  align-content: center;
  gap: 0;
  margin: 0;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  background:
    radial-gradient(100% 90% at 100% 0%, rgba(224,160,50,.2), transparent 60%),
    var(--wine-deep);
  color: var(--cream);
}
.program-card__facts > div {
  padding: 1rem 0;
  border-bottom: 1px solid rgba(251,243,231,.18);
}
.program-card__facts > div:last-child { border-bottom: 0; }
.program-card__facts dt {
  color: var(--gold);
  font-family: var(--font-display);
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.program-card__facts dd { margin: .2rem 0 0; color: rgba(251,243,231,.88); }
.programs__note {
  margin: 1rem 0 0;
  color: var(--ink-muted);
  font-size: .92rem;
  font-style: italic;
}

/* --------------------------------------------------------- founders */
.founder-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: clamp(1.15rem, 2.4vw, 1.75rem);
}
.founder-card {
  padding: clamp(1.4rem, 2.6vw, 2.1rem);
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
}
.founder-card--pending { background: var(--cream); border-style: dashed; }
.founder-card__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.founder-card__initials,
.founder-card__photo {
  flex: none;
  width: 76px; height: 76px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(140deg, var(--wine), var(--brick));
  color: var(--cream);
  font-family: var(--font-display);
  font-size: 1.4rem;
  letter-spacing: .06em;
  overflow: hidden;
}
.founder-card__photo {
  object-fit: cover;
  border: 2px solid var(--gold);
  background: var(--cream-warm);
}
.founder-card__name { font-size: 1.4rem; margin: 0; text-transform: uppercase; color: var(--wine-deep); }
.founder-card__role {
  margin: 0;
  font-family: var(--font-display);
  font-size: .76rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--brick);
}
.founder-card__body p { color: var(--ink-muted); }
.founder-card__quotes { font-size: .94rem; }
.founder-card__note {
  padding: .8rem 1rem;
  border-radius: var(--radius);
  background: var(--cream-warm);
  font-size: .92rem;
  color: var(--earth);
}

.founder-card__interests {
  margin: 1.15rem 0 1.35rem;
  padding: 1rem 1.1rem;
  border-left: 4px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  background: var(--cream-warm);
}
.founder-card__interests h4 {
  margin: 0 0 .6rem;
  color: var(--wine-deep);
  font-size: .86rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.founder-card__interests ul {
  display: grid;
  gap: .35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.founder-card__interests li {
  position: relative;
  padding-left: 1.15rem;
  color: var(--ink-muted);
}
.founder-card__interests li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .72em;
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--gold);
}

/* ------------------------------------------------------- apply page */
.apply-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}
.apply-path {
  position: relative;
  padding: clamp(1.35rem, 2.6vw, 2rem);
  border: 1px solid var(--cream-deep);
  border-radius: var(--radius-lg);
  background: #fff;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.apply-path::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, var(--wine), var(--brick), var(--gold));
}
.apply-path__number {
  margin: 0 0 .7rem;
  color: var(--gold);
  font-family: var(--font-display);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .15em;
}
.apply-path__title {
  color: var(--wine-deep);
  font-size: 1.25rem;
  text-transform: uppercase;
}
.apply-path p:last-child { color: var(--ink-muted); }

.apply-layout {
  display: grid;
  grid-template-columns: minmax(16rem, .65fr) minmax(0, 1.35fr);
  gap: clamp(1.4rem, 3.5vw, 3rem);
  align-items: start;
}
.apply-layout__aside {
  position: sticky;
  top: calc(var(--header-h) + 1rem);
  display: grid;
  gap: 1rem;
}
.apply-checklist ul {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.apply-checklist li {
  position: relative;
  padding-left: 1.35rem;
  color: var(--ink-muted);
}
.apply-checklist li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--brick);
  font-weight: 700;
}
.application-form__intro {
  margin: -.3rem 0 .15rem;
  color: var(--ink-muted);
  font-size: .9rem;
}
.application-form__note {
  margin: 0;
  padding: .85rem 1rem;
  border-radius: var(--radius);
  background: var(--cream-warm);
  color: var(--ink-muted);
  font-size: .86rem;
}
.form-section {
  min-width: 0;
  display: grid;
  gap: 1.15rem;
  margin: .2rem 0 0;
  padding: 1.6rem 0 0;
  border: 0;
  border-top: 1px solid var(--cream-deep);
}
.form-section__legend {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: 0 .65rem 0 0;
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.form-section__legend span {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--gold);
  color: var(--wine-ink);
  font-size: .82rem;
}
.field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.15rem;
}

/* ----------------------------------------------------------- forms */
.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr);
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: start;
}
.contact-aside { display: grid; gap: 1.15rem; }
.contact-address { font-style: normal; font-size: 1.05rem; line-height: 1.6; }
.contact-aside__note { margin-top: .75rem; font-size: .9rem; color: var(--ink-muted); }

.contact-form {
  display: grid;
  gap: 1.15rem;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow: var(--shadow-sm);
}
.contact-form__title {
  font-size: 1.45rem;
  text-transform: uppercase;
  color: var(--wine-deep);
  margin: 0;
}
.contact-form__actions { margin: .35rem 0 0; }
.contact-form__note { font-size: .82rem; color: var(--ink-muted); margin: 0; }

.field { display: grid; gap: .4rem; }
.field label {
  font-family: var(--font-display);
  font-size: .82rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--wine-deep);
}
.field__optional { text-transform: none; letter-spacing: 0; color: var(--ink-muted); font-family: var(--font-body); }
.req { color: var(--brick); }

.field input,
.field select,
.field textarea {
  width: 100%;
  padding: .8rem .95rem;
  min-height: 48px;
  font: inherit;
  color: var(--ink);
  background: var(--cream);
  border: 2px solid var(--cream-deep);
  border-radius: 10px;
  transition: border-color .25s var(--ease), background-color .25s var(--ease);
}
.field textarea { min-height: 9rem; resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--gold); background: #fff; }

.field--error input,
.field--error select,
.field--error textarea { border-color: var(--brick); }
.field__error { margin: 0; font-size: .86rem; font-weight: 600; color: #97281a; }
.field__hint { margin: 0; font-size: .86rem; color: var(--ink-muted); }

.field--check {
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .7rem;
}
.field--check input { width: 22px; height: 22px; min-height: 0; margin-top: .2rem; accent-color: var(--wine); }
.field--check label {
  font-family: var(--font-body);
  font-size: .92rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  font-weight: 400;
}
.field--check .field__error { grid-column: 1 / -1; }

.field--trap {
  position: absolute !important;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}

.alert {
  padding: 1.15rem 1.35rem;
  margin-bottom: 1.5rem;
  border-radius: var(--radius);
  border-left: 4px solid;
}
.alert__title { font-size: 1.15rem; text-transform: uppercase; margin: 0 0 .35rem; }
.alert--success { background: #eef6ec; border-color: #3f7d33; color: #23431d; }
.alert--success .alert__title { color: #23431d; }
.alert--success-only {
  min-height: clamp(17rem, 34vw, 23rem);
  display: grid;
  place-items: center;
  align-content: center;
  gap: .8rem;
  margin: 0;
  padding: clamp(2rem, 5vw, 4rem);
  text-align: center;
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 0%, rgba(224, 160, 50, .22), transparent 48%),
    #fff;
  border: 1px solid var(--cream-deep);
  border-top: 5px solid var(--gold);
  box-shadow: var(--shadow-md);
}
.alert--success-only::before {
  content: "\2713";
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--gold);
  color: var(--wine-ink);
  font-family: var(--font-display);
  font-size: 1.7rem;
  font-weight: 700;
  box-shadow: 0 0 0 7px rgba(224, 160, 50, .18);
}
.alert--success-only .alert__title {
  margin: .55rem 0 0;
  color: var(--wine-deep);
  font-size: clamp(1.55rem, 1.2rem + 1.4vw, 2.3rem);
}
.alert--success-only p {
  max-width: 42rem;
  margin: 0 auto;
  color: var(--ink-muted);
  font-size: 1rem;
  line-height: 1.65;
}
.alert--error { background: #fbecea; border-color: var(--brick); color: #6d1c11; }
.alert--error .alert__title { color: #6d1c11; }
.alert ul { margin: .4rem 0 0; padding-left: 1.15rem; }

/* ---------------------------------------------------------- modals */
.modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: clamp(.75rem, 3vw, 2rem);
}
.modal[hidden] { display: none; }
.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(24, 3, 8, .88);
  backdrop-filter: blur(4px);
  animation: fade .25s var(--ease);
}
.modal__panel {
  position: relative;
  width: min(72rem, 100%);
  max-height: 92svh;
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  background: var(--wine-ink);
  border: 1px solid rgba(224,160,50,.35);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  animation: pop .3s var(--ease);
}
.modal--light .modal__panel { background: var(--cream); border-color: var(--cream-deep); }

.modal__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1.1rem;
  border-bottom: 1px solid rgba(224,160,50,.24);
}
.modal--light .modal__bar { border-bottom-color: var(--cream-deep); }
.modal__title {
  font-size: 1rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--cream);
  margin: 0;
}
.modal--light .modal__title { color: var(--wine-deep); }

.modal__close {
  flex: none;
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(251,243,231,.35);
  border-radius: 50%;
  background: transparent;
  color: var(--cream);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .25s var(--ease), border-color .25s var(--ease);
}
.modal--light .modal__close { color: var(--wine-deep); border-color: var(--cream-deep); }
.modal__close:hover { background: rgba(224,160,50,.25); border-color: var(--gold); }

.modal__stage {
  flex: 1;
  min-height: 0;
  display: grid;
  place-items: center;
  background: #000;
}
.modal--light .modal__stage { background: var(--cream-warm); }
.modal__stage video,
.modal__stage img {
  width: 100%;
  max-height: 78svh;
  object-fit: contain;
}
.modal__caption {
  margin: 0;
  padding: .85rem 1.1rem;
  font-size: .92rem;
  color: var(--ink-muted);
}
.modal__caption:empty { display: none; }

@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pop {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to   { opacity: 1; transform: none; }
}

/* ----------------------------------------------------------- footer */
.site-footer {
  position: relative;
  isolation: isolate;
  background:
    linear-gradient(180deg, var(--wine-ink) 0%, #30070f 100%);
  color: var(--cream);
  border-top: 3px solid var(--gold);
}
/* One sharp, transparent live-events and music-education overlay over the
   original burgundy base. The artwork is solid black and its strength is
   controlled here, so the source remains reusable and the footer stays legible. */
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("../images/footer-live-events-pattern.png");
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .15;
  pointer-events: none;
}
.site-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr) minmax(0, .9fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3.5vw, 3rem);
  padding: clamp(2.75rem, 5vw, 4rem) 0 clamp(2rem, 3.5vw, 2.75rem);
}
.brand--footer { margin-bottom: 1rem; }
.brand--footer .brand__mark { height: 84px; }
.site-footer__mission { color: rgba(251,243,231,.72); font-size: .95rem; max-width: 40ch; }

.site-footer__heading {
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .9rem;
}
.site-footer__nav ul,
.social-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
/* Buttons are excluded: the blanket gold hover colour was repainting the gold
   button's own label gold, making the text vanish into its background. */
.site-footer a:not(.btn) { color: var(--cream); text-decoration: none; }
.site-footer a:not(.btn):hover { color: var(--gold-bright); text-decoration: underline; }
.site-footer .btn--gold { color: var(--wine-ink); }
.site-footer .btn--gold:hover { color: var(--wine-ink); text-decoration: none; }

/* --- social icons -------------------------------------------------------- */
.social-icons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
  list-style: none;
  margin: 0; padding: 0;
}
.social-icons a {
  display: grid;
  place-items: center;
  width: 50px; height: 50px;
  border-radius: 50%;
  border: 0;
  color: var(--cream);
  transition: background-color .25s var(--ease), color .25s var(--ease),
              transform .25s var(--ease);
}
.social-icons a:hover,
.social-icons a:focus-visible {
  background: rgba(224,160,50,.2);
  color: var(--gold-bright);
  transform: translateY(-2px);
  text-decoration: none;
}
/* Large borderless footer glyphs with matching click targets. */
.social-icons svg { width: 50px; height: 50px; fill: currentColor; display: block; }

/* Contact page: increase both the glyph and its accessible click target. */
.social-icons--ink a { width: 60px; height: 60px; border: 0; color: var(--wine); }
.social-icons--ink svg { width: 60px; height: 60px; }
.social-icons--ink a:hover,
.social-icons--ink a:focus-visible {
  background: var(--gold); color: var(--wine-ink);
}

.site-footer address { font-style: normal; color: rgba(251,243,231,.82); margin-bottom: .85rem; }
.site-footer__icon { color: var(--gold); font-size: .6rem; vertical-align: middle; margin-right: .35rem; }
.site-footer__note { font-size: .84rem; color: rgba(251,243,231,.56); margin-bottom: 1rem; }
.social-list--stacked a { display: inline-flex; align-items: center; gap: .4rem; color: var(--wine); }
.social-list--stacked a:hover { color: var(--brick); }

.site-footer__cta .accent-line {
  font-size: 1.4rem;
  color: var(--gold-bright);
  margin-bottom: .5rem;
}
.site-footer__ctacopy { font-size: .92rem; color: rgba(251,243,231,.72); }

.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: 1.15rem 0 1.5rem;
  border-top: 1px solid rgba(224,160,50,.24);
  font-size: .84rem;
  color: rgba(251,243,231,.6);
}
.site-footer__legal p { margin: 0; }

/* -------------------------------------------------------- animation */
[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
[data-reveal].is-revealed { opacity: 1; transform: none; }
[data-reveal][data-reveal-delay="1"] { transition-delay: .08s; }
[data-reveal][data-reveal-delay="2"] { transition-delay: .16s; }
[data-reveal][data-reveal-delay="3"] { transition-delay: .24s; }
[data-reveal][data-reveal-delay="4"] { transition-delay: .34s; }

.js [data-stagger] > * {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .65s var(--ease), transform .65s var(--ease);
  transition-delay: calc(var(--i, 0) * 90ms);
}
.js [data-stagger].is-revealed > * { opacity: 1; transform: none; }

/* Without JavaScript nothing may stay hidden. */
html:not(.js) [data-reveal] { opacity: 1; transform: none; }

/* --------------------------------------------------------- breakpoints */

/* Very wide displays: hold the card grids to a sensible cell size so a 4-up row
   does not stretch into a 6-up row of oversized tiles. */
@media (min-width: 1700px) {
  .area-grid   { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .media-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gallery     { grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
  .cta-band__copy { max-width: 62ch; }
}

@media (max-width: 1100px) {
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  :root { --header-h: 4.75rem; }

  /* Preserve the artwork's proportions in the tall stacked footer. Cropping
     into its left side keeps the large guitar/event-lighting motif visible. */
  .site-footer::before {
    background-size: cover;
    background-position: 8% center;
    opacity: .15;
  }

  .nav-toggle { display: inline-flex; }

  .primary-nav {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 95;
    width: min(21rem, 84vw);
    padding: calc(var(--header-h) + 1.5rem) 1.6rem 2rem;
    background: linear-gradient(170deg, var(--wine) 0%, var(--wine-ink) 100%);
    border-left: 1px solid rgba(224,160,50,.3);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform .38s var(--ease), visibility .38s var(--ease);
    overflow-y: auto;
  }
  .primary-nav.is-open { transform: none; visibility: visible; }

  .primary-nav__list { flex-direction: column; align-items: stretch; gap: .25rem; }
  .primary-nav__link {
    display: block;
    padding: .95rem .25rem;
    font-size: 1.05rem;
    border-bottom: 1px solid rgba(251,243,231,.12);
  }
  .primary-nav__link::after { display: none; }
  .primary-nav__cta-item { margin-top: 1.25rem; }
  .primary-nav__cta-item .btn { width: 100%; justify-content: center; }

  .hero__inner { grid-template-columns: minmax(0, 1fr); }
  .hero__content { grid-column: 1; }
  .hero__video { grid-column: 1; grid-row: 2; justify-self: stretch; }
  /* Stacked layout: full width again, no right inset. */
  .hero__video .video-card { width: 100%; max-width: none; margin-left: 0; margin-right: 0; }
  .hero__media img { object-position: 32% center; }
  .hero__veil {
    background:
      linear-gradient(to bottom, rgba(52,6,15,.62) 0%, rgba(52,6,15,.78) 40%, rgba(52,6,15,.95) 100%);
  }

    .vision,
    .featured,
    .prose-grid,
    .contact-grid,
    .program-card,
    .apply-layout,
    .event-row__inner { grid-template-columns: minmax(0, 1fr); }

    .program-card__facts {
      grid-template-columns: repeat(3, minmax(0, 1fr));
      align-content: stretch;
      padding: 1.25rem;
    }
    .program-card__facts > div {
      padding: .5rem 1rem;
      border-right: 1px solid rgba(251,243,231,.18);
      border-bottom: 0;
    }
    .program-card__facts > div:last-child { border-right: 0; }
    .apply-layout__aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* About on mobile: the photo drops onto its own full-width row beneath the
     text instead of sharing a cramped column, so every block spans the screen. */
  .page-about .section--story .prose-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .page-about .prose-grid__body,
  .page-about .prose-grid__aside,
  .page-about .figure-card {
    width: 100%;
    max-width: none;
  }
  .page-about .prose-grid__aside { display: block; }
  .page-about .figure-card img { width: 100%; aspect-ratio: 16 / 10; }
  .prose-grid__aside { width: 100%; }
  .figure-card img { aspect-ratio: 16 / 10; }
  .vision--reverse .vision__media { order: 0; }
  .vision__frame { display: none; }
  .prose-grid__aside { position: static; }
  .event-row__media img { height: clamp(13rem, 42vw, 20rem); }
}

@media (max-width: 720px) {
  .section__head--row { flex-direction: column; align-items: flex-start; }
  /* At-a-glance: two across on tablet, one on phone (below). */
  .fact-card--wide .fact-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-strip { min-height: 118px; }
    .media-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .apply-path-grid { grid-template-columns: minmax(0, 1fr); }
    .field-grid { grid-template-columns: minmax(0, 1fr); }
    .apply-layout__aside { grid-template-columns: minmax(0, 1fr); }
    .program-card__facts { grid-template-columns: minmax(0, 1fr); }
    .program-card__facts > div {
      padding: .8rem 0;
      border-right: 0;
      border-bottom: 1px solid rgba(251,243,231,.18);
    }
    .site-footer__grid { grid-template-columns: minmax(0, 1fr); }

  /* On phones the desktop max-width cap left the event cards floating short of
     the screen edges. Drop the cap so each card fills the column, gutter to
     gutter, and give the poster a little more height now that it is wider. */
  .event-grid { grid-template-columns: minmax(0, 1fr); }
  .event-card { max-width: none; width: 100%; }
  .event-card__media { aspect-ratio: 16 / 9; }
  .marquee__nav { display: none; }
  .scroll-cue { display: none; }
}

@media (max-width: 480px) {
  .fact-card--wide .fact-list { grid-template-columns: minmax(0, 1fr); }
  .page-strip { min-height: 104px; }
  .brand__tag { display: none; }
  .brand__mark { height: 48px; }
  .hero { min-height: 0; }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .media-strip,
  .gallery { grid-template-columns: minmax(0, 1fr); }
  .cta-band__actions .btn { width: 100%; justify-content: center; }
  .event-row__actions { flex-direction: column; align-items: flex-start; }
}

/* -------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }

  [data-reveal],
  .js [data-stagger] > * { opacity: 1 !important; transform: none !important; }

  .marquee__track { animation: none; }
  .hero__video.is-revealed,
  .hero__video .video-card::before,
  .hero__video .video-card__play { animation: none !important; }
  .hero__video .video-card::before { opacity: .5; transform: none; }
  .marquee__viewport { overflow-x: auto; }
  .scroll-cue__line { animation: none; opacity: .8; }
  .rule-flourish { animation: none; }
  .btn:hover,
  .media-tile:hover,
  .area-card:hover,
  .event-card:hover,
  .video-card:hover { transform: none; }
  .media-tile:hover img,
  .event-card:hover .event-card__media img,
  .video-card:hover .video-card__frame img { transform: none; }
}

/* ------------------------------------------------------------ print */
@media print {
  .site-header, .nav-scrim, .scroll-cue, .modal, .marquee__nav, .filters { display: none !important; }
  body { background: #fff; color: #000; }
}

/* =====================================================================
   Scholarships & Calls for Applications
   Page-specific components are prefixed to avoid affecting existing pages.
   ===================================================================== */

/* ------------------------------------------------ scholarship hero */
.scholarship-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: calc(var(--header-h) + clamp(4rem, 8vw, 7.5rem)) 0 clamp(4.5rem, 8vw, 7rem);
  color: var(--cream);
  background:
    radial-gradient(circle at 86% 18%, rgba(242,189,87,.25), transparent 24rem),
    radial-gradient(circle at 14% 82%, rgba(196,85,60,.32), transparent 31rem),
    linear-gradient(135deg, var(--wine-ink) 0%, var(--wine-deep) 48%, var(--wine) 100%);
}
.scholarship-hero::before {
  opacity: .08;
  background-size: clamp(135px, 11vw, 180px) auto;
}
.scholarship-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(22rem, .78fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 7rem);
}
.scholarship-hero__copy { max-width: 52rem; }
.scholarship-hero__eyebrow { color: var(--gold-bright); }
.scholarship-hero__title {
  max-width: 12ch;
  margin-bottom: clamp(1.15rem, 2.2vw, 1.8rem);
  color: var(--cream);
  font-size: clamp(3rem, 3.2vw + 1.7rem, 6.25rem);
  line-height: .94;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.scholarship-hero__title span {
  display: inline-block;
  color: var(--gold-bright);
  font-family: var(--font-accent);
  font-size: .69em;
  font-style: italic;
  font-weight: 600;
  line-height: 1.03;
  letter-spacing: -.025em;
  text-transform: none;
}
.scholarship-hero__lead {
  max-width: 58ch;
  margin-bottom: 1.8rem;
  color: rgba(251,243,231,.82);
  font-size: clamp(1.08rem, 1rem + .42vw, 1.28rem);
  line-height: 1.65;
}
.scholarship-hero__button { position: relative; z-index: 2; }
.scholarship-hero__ring {
  position: absolute;
  z-index: 1;
  display: block;
  border: 1px solid rgba(242,189,87,.2);
  border-radius: 50%;
  pointer-events: none;
}
.scholarship-hero__ring--one {
  top: 10%;
  right: -10rem;
  width: clamp(22rem, 42vw, 43rem);
  aspect-ratio: 1;
}
.scholarship-hero__ring--two {
  right: 18%;
  bottom: -12rem;
  width: clamp(16rem, 27vw, 28rem);
  aspect-ratio: 1;
  border-color: rgba(251,243,231,.1);
}

.programme-snapshot {
  position: relative;
  overflow: hidden;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border: 1px solid rgba(251,243,231,.45);
  border-radius: clamp(1.25rem, 2.5vw, 2rem);
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(244,230,210,.96));
  color: var(--charcoal);
  box-shadow: 0 34px 90px rgba(36,3,9,.34);
}
.programme-snapshot::after {
  content: "";
  position: absolute;
  inset: auto -4rem -5rem auto;
  width: 13rem;
  aspect-ratio: 1;
  border: 1.6rem solid rgba(224,160,50,.12);
  border-radius: 50%;
  pointer-events: none;
}
.programme-snapshot__topline {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.2rem;
}
.programme-status {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  width: max-content;
  padding: .45rem .75rem;
  border: 1px solid rgba(224,160,50,.45);
  border-radius: 999px;
  background: rgba(224,160,50,.14);
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .11em;
  line-height: 1;
  text-transform: uppercase;
}
.programme-status > span {
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 4px rgba(224,160,50,.16);
}
.programme-snapshot__code,
.featured-scholarship__code {
  margin: 0;
  color: var(--brick);
  font-family: var(--font-display);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.programme-snapshot h2 {
  position: relative;
  z-index: 1;
  max-width: 13ch;
  margin-bottom: 1.7rem;
  color: var(--wine-deep);
  font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.5rem);
  text-transform: uppercase;
}
.programme-snapshot__facts {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 1.6rem;
  padding: 1.15rem 0;
  border-top: 1px solid rgba(107,21,32,.16);
  border-bottom: 1px solid rgba(107,21,32,.16);
}
.programme-snapshot__facts > div {
  min-width: 0;
  padding: 0 .9rem;
  border-right: 1px solid rgba(107,21,32,.13);
}
.programme-snapshot__facts > div:first-child { padding-left: 0; }
.programme-snapshot__facts > div:last-child { padding-right: 0; border-right: 0; }
.programme-snapshot__facts dt {
  margin-bottom: .35rem;
  color: var(--charcoal-soft);
  font-family: var(--font-display);
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.programme-snapshot__facts dd {
  margin: 0;
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: clamp(.98rem, .88rem + .35vw, 1.18rem);
  font-weight: 700;
  line-height: 1.25;
}
.programme-snapshot__facts dd span {
  display: block;
  margin-top: .15rem;
  color: var(--charcoal-soft);
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 400;
  line-height: 1.3;
}
.programme-snapshot__anchor {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--wine);
  font-family: var(--font-display);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
}
.programme-snapshot__anchor:hover { color: var(--brick); }

/* Concept B uses the same compact photographic strip as the other inner pages. */
.scholarship-page-strip .page-strip__media img {
  object-position: center 58%;
}
.scholarship-page-strip .page-strip__inner {
  padding-block: 1rem;
}
.scholarship-page-strip__eyebrow {
  margin-bottom: .25rem;
  color: var(--gold-bright);
  text-shadow: 0 2px 12px rgba(52,6,15,.65);
}
.scholarship-page-strip .page-strip__title {
  max-width: none;
}

/* ---------------------------------------------- in-page navigation */
.scholarship-subnav {
  position: sticky;
  top: var(--header-h);
  z-index: 80;
  border-bottom: 1px solid rgba(107,21,32,.13);
  background: rgba(251,243,231,.96);
  box-shadow: 0 8px 24px rgba(67,13,21,.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.scholarship-subnav__scroller {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.1rem, 3vw, 3.1rem);
  min-height: 3.75rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.scholarship-subnav__scroller::-webkit-scrollbar { display: none; }
.scholarship-subnav a {
  position: relative;
  flex: 0 0 auto;
  padding: 1.2rem 0 1.05rem;
  color: var(--charcoal-soft);
  font-family: var(--font-display);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: color .25s var(--ease);
}
.scholarship-subnav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--gold);
  transform: scaleX(0);
  transition: transform .25s var(--ease);
}
.scholarship-subnav a:hover,
.scholarship-subnav a.is-current { color: var(--wine-deep); }
.scholarship-subnav a:hover::after,
.scholarship-subnav a.is-current::after { transform: scaleX(1); }

/* ------------------------------------------------ page sections */
.scholarship-section {
  position: relative;
  padding: clamp(4rem, 7vw, 7rem) 0;
  scroll-margin-top: calc(var(--header-h) + 5rem);
}
.scholarship-section--current,
.scholarship-section--upcoming { background: var(--cream); }
.scholarship-section--steps,
.scholarship-section--documents { background: var(--cream-warm); }
.scholarship-section--faq {
  border-top: 1px solid rgba(107,21,32,.09);
  background:
    radial-gradient(circle at 4% 15%, rgba(224,160,50,.13), transparent 22rem),
    var(--cream);
}
.scholarship-section__head { margin-bottom: clamp(2.2rem, 4vw, 3.5rem); }
.scholarship-section__head--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, .8fr);
  align-items: end;
  gap: clamp(1.5rem, 5vw, 5rem);
}
.scholarship-section__title {
  max-width: 15ch;
  margin: 0;
  color: var(--wine-deep);
  font-size: clamp(2.25rem, 1.6rem + 2.8vw, 4.35rem);
  letter-spacing: -.02em;
  text-transform: uppercase;
}
.scholarship-section__intro {
  max-width: 57ch;
  margin: 0;
  color: var(--charcoal-soft);
  font-size: clamp(1rem, .95rem + .3vw, 1.16rem);
}

/* ------------------------------------------- featured programme */
.featured-scholarship {
  position: relative;
  isolation: isolate;
}
.featured-scholarship::before {
  display: none;
}
.featured-scholarship__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 1.15rem;
}
.featured-scholarship__header h3 {
  max-width: 18ch;
  margin: .35rem 0 0;
  color: var(--wine-deep);
  font-size: clamp(1.7rem, 1.25rem + 1.8vw, 3rem);
  text-transform: uppercase;
}
.programme-status--light { margin-top: .25rem; white-space: nowrap; }
.featured-scholarship__description {
  max-width: 62ch;
  margin: 0;
  color: var(--charcoal-soft);
  font-size: clamp(1.02rem, .98rem + .28vw, 1.17rem);
}
.programme-showcase {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(21rem, .88fr);
  min-height: clamp(25rem, 35vw, 31rem);
  overflow: hidden;
  border: 1px solid rgba(107,21,32,.12);
  border-radius: clamp(1.35rem, 2.5vw, 2.25rem);
  background: #fff;
  box-shadow: var(--shadow-md);
}
.programme-showcase::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 5px;
  background: linear-gradient(90deg, var(--wine), var(--brick), var(--gold));
}
.programme-showcase__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4.5vw, 4.75rem);
  background:
    radial-gradient(circle at 0 100%, rgba(224,160,50,.12), transparent 18rem),
    #fff;
}
.programme-showcase__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(1.1rem, 2vw, 1.6rem);
}
.programme-showcase h3 {
  max-width: 15ch;
  margin: 0 0 1.1rem;
  color: var(--wine-deep);
  font-size: clamp(2rem, 1.35rem + 2.25vw, 3.65rem);
  line-height: 1.02;
  letter-spacing: -.018em;
  text-transform: uppercase;
}
.programme-showcase__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.1rem;
  margin-top: 1.65rem;
}
.programme-showcase__link {
  padding-block: .6rem;
}
.programme-showcase__media {
  position: relative;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--wine-ink);
}
.programme-showcase__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(67,13,21,.14), transparent 42%);
  pointer-events: none;
}
.programme-showcase__media img {
  width: 100%;
  height: 100%;
  min-height: clamp(25rem, 35vw, 31rem);
  object-fit: cover;
  object-position: 42% center;
  transition: transform .8s var(--ease);
}
.programme-showcase:hover .programme-showcase__media img {
  transform: scale(1.025);
}
.programme-showcase__media figcaption {
  position: absolute;
  right: 1.1rem;
  bottom: 1.1rem;
  left: 1.1rem;
  z-index: 1;
  padding: .8rem 1rem;
  border: 1px solid rgba(242,189,87,.38);
  border-radius: .85rem;
  background: rgba(67,13,21,.9);
  color: var(--cream);
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-align: center;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.programme-showcase__media figcaption span {
  margin-inline: .35rem;
  color: var(--gold-bright);
}
.programme-highlights {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: calc(100% - clamp(2rem, 6vw, 5rem));
  max-width: 68rem;
  margin: clamp(-2.4rem, -3vw, -1.8rem) auto 0;
  overflow: hidden;
  border: 1px solid rgba(107,21,32,.12);
  border-radius: 1rem;
  background: var(--cream-deep);
  box-shadow: 0 15px 35px rgba(67,13,21,.15);
}
.programme-highlights > div {
  padding: clamp(1rem, 2.3vw, 1.5rem) clamp(1rem, 2vw, 1.55rem);
  border-right: 1px solid rgba(107,21,32,.14);
  background: linear-gradient(145deg, rgba(255,255,255,.72), rgba(244,230,210,.9));
}
.programme-highlights > div:last-child { border-right: 0; }
.programme-highlights dt {
  margin-bottom: .35rem;
  color: var(--charcoal-soft);
  font-family: var(--font-display);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.programme-highlights dd {
  margin: 0;
  color: var(--wine-deep);
  font-family: var(--font-accent);
  font-size: clamp(1.2rem, 1rem + .75vw, 1.65rem);
  font-style: italic;
  font-weight: 600;
  line-height: 1.2;
}
.featured-scholarship__details {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(20rem, .72fr);
  align-items: start;
  gap: clamp(1.4rem, 3vw, 2.5rem);
  margin-top: clamp(2.6rem, 5vw, 4.5rem);
}
.scholarship-facts-panel {
  padding: clamp(1.35rem, 3vw, 2.35rem);
  border: 1px solid rgba(107,21,32,.12);
  border-radius: clamp(1.2rem, 2vw, 1.65rem);
  background: rgba(255,255,255,.84);
  box-shadow: var(--shadow-sm);
}
.scholarship-facts-panel__eyebrow {
  margin: 0 0 .35rem;
  color: var(--brick);
  font-family: var(--font-display);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.scholarship-facts-panel__title {
  margin: 0 0 1.35rem;
  color: var(--wine-deep);
  font-size: clamp(1.45rem, 1.18rem + .8vw, 2rem);
  text-transform: uppercase;
}
.scholarship-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(107,21,32,.12);
  border-radius: 1.15rem;
  background: rgba(107,21,32,.12);
}
.scholarship-fact {
  position: relative;
  min-height: 11rem;
  padding: 1.45rem;
  background: rgba(251,243,231,.95);
}
.scholarship-fact__icon {
  display: inline-grid;
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: .75rem;
  background: rgba(144,29,44,.09);
  color: var(--wine);
}
.scholarship-fact__icon svg,
.application-download__icon svg,
.document-card__icon svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.75;
}
.scholarship-fact__icon--number {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
}
.scholarship-fact dt {
  margin-bottom: .38rem;
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}
.scholarship-fact dd {
  margin: 0;
  color: var(--charcoal-soft);
  font-size: .93rem;
  line-height: 1.5;
}
.scholarship-fact__link {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-top: .65rem;
  color: var(--brick);
  font-family: var(--font-display);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.application-panel {
  align-self: start;
  scroll-margin-top: calc(var(--header-h) + 5rem);
  padding: clamp(1.35rem, 2.7vw, 2rem);
  border: 1px solid rgba(224,160,50,.3);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(224,160,50,.25), transparent 13rem),
    var(--cream-deep);
}
.application-panel__eyebrow {
  margin: 0 0 .45rem;
  color: var(--brick);
  font-family: var(--font-display);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.application-panel h3 {
  margin-bottom: .75rem;
  color: var(--wine-deep);
  font-size: clamp(1.5rem, 1.15rem + 1vw, 2rem);
  text-transform: uppercase;
}
.application-panel > p:not(.application-panel__eyebrow):not(.application-panel__note) {
  color: var(--charcoal-soft);
  font-size: .94rem;
}
.application-panel__primary {
  width: 100%;
  justify-content: space-between;
  margin: .45rem 0 1rem;
  padding-inline: 1.25rem;
}
.application-downloads { display: grid; gap: .7rem; }
.application-download {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem;
  padding: .95rem;
  border: 1px solid rgba(144,29,44,.24);
  border-radius: .85rem;
  background: rgba(255,255,255,.78);
  color: var(--charcoal);
  text-decoration: none;
  transition: border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);
}
.application-download:hover {
  border-color: var(--gold);
  color: var(--charcoal);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
.application-download__icon {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  border-radius: 50%;
  background: rgba(144,29,44,.09);
  color: var(--wine);
}
.application-download strong {
  display: block;
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: .8rem;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}
.application-download small {
  display: block;
  margin-top: .2rem;
  color: var(--charcoal-soft);
  font-size: .76rem;
  line-height: 1.35;
}
.application-download__arrow { color: var(--brick); }
.application-panel__note {
  margin: 1rem 0 0;
  color: var(--earth);
  font-size: .76rem;
  line-height: 1.4;
}
.placeholder-link[aria-disabled="true"] { cursor: not-allowed; }

/* ------------------------------------------------ application steps */
.application-timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 3rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.application-timeline::before {
  content: "";
  position: absolute;
  top: 1.55rem;
  right: 7%;
  left: 7%;
  height: 2px;
  background: linear-gradient(90deg, var(--gold), var(--brick), var(--wine));
}
.application-step { position: relative; z-index: 1; }
.application-step__number {
  display: grid;
  width: 3.15rem;
  height: 3.15rem;
  margin-bottom: 1.35rem;
  place-items: center;
  border: 5px solid var(--cream-warm);
  border-radius: 50%;
  background: var(--gold);
  color: var(--wine-ink);
  font-family: var(--font-display);
  font-size: .83rem;
  font-weight: 700;
  letter-spacing: .08em;
  box-shadow: 0 0 0 1px rgba(144,29,44,.12);
}
.application-step:nth-child(3) .application-step__number,
.application-step:nth-child(4) .application-step__number {
  background: var(--wine);
  color: var(--cream);
}
.application-step h3 {
  min-height: 2.6em;
  margin-bottom: .65rem;
  color: var(--wine-deep);
  font-size: 1.12rem;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.application-step p {
  margin: 0;
  color: var(--charcoal-soft);
  font-size: .94rem;
  line-height: 1.55;
}

/* ------------------------------------------------ document cards */
.document-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.document-card {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 1rem;
  min-height: 7.35rem;
  padding: 1.25rem;
  border: 1px solid rgba(107,21,32,.12);
  border-radius: 1rem;
  background: rgba(255,255,255,.9);
  color: var(--charcoal);
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.document-card:hover {
  border-color: rgba(224,160,50,.8);
  color: var(--charcoal);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}
.document-card__icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-radius: .9rem;
  background: var(--cream-warm);
  color: var(--wine);
}
.document-card__copy strong {
  display: block;
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: .92rem;
  letter-spacing: .035em;
  line-height: 1.25;
  text-transform: uppercase;
}
.document-card__copy small {
  display: block;
  margin-top: .3rem;
  color: var(--charcoal-soft);
  font-size: .8rem;
  line-height: 1.4;
}
.document-card__format {
  padding: .38rem .55rem;
  border-radius: 999px;
  background: rgba(144,29,44,.08);
  color: var(--wine);
  font-family: var(--font-display);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.document-card__arrow { color: var(--brick); font-size: 1.1rem; }

/* ------------------------------------------------ upcoming cards */
.upcoming-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.15rem, 2.5vw, 2rem);
}
.upcoming-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(17rem, 26vw, 22rem);
  padding: clamp(1.5rem, 3.5vw, 2.8rem);
  border-radius: clamp(1.2rem, 2.3vw, 1.8rem);
  box-shadow: var(--shadow-md);
}
.upcoming-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -6rem;
  bottom: -8rem;
  width: 19rem;
  aspect-ratio: 1;
  border: 2.1rem solid currentColor;
  border-radius: 50%;
  opacity: .06;
}
.upcoming-card--wine {
  background: linear-gradient(145deg, var(--wine-deep), var(--wine));
  color: var(--cream);
}
.upcoming-card--gold {
  border: 1px solid rgba(144,29,44,.12);
  background: linear-gradient(145deg, #f7d995, var(--gold));
  color: var(--wine-ink);
}
.upcoming-card__number {
  position: absolute;
  z-index: -1;
  right: 1.1rem;
  bottom: -2rem;
  font-family: var(--font-display);
  font-size: clamp(8rem, 14vw, 13rem);
  font-weight: 700;
  line-height: 1;
  opacity: .075;
}
.upcoming-card__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
  font-family: var(--font-display);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.upcoming-card__status {
  padding: .42rem .7rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: .64rem;
  letter-spacing: .1em;
  opacity: .82;
}
.upcoming-card h3 {
  position: relative;
  max-width: 17ch;
  margin-bottom: .9rem;
  font-size: clamp(1.65rem, 1.25rem + 1.25vw, 2.45rem);
  text-transform: uppercase;
}
.upcoming-card--wine h3 { color: var(--cream); }
.upcoming-card--gold h3 { color: var(--wine-deep); }
.upcoming-card p {
  position: relative;
  max-width: 58ch;
  margin: 0;
  line-height: 1.58;
}
.upcoming-card--wine p { color: rgba(251,243,231,.78); }
.upcoming-card--gold p { color: rgba(67,13,21,.77); }

/* ------------------------------------------------------------- FAQ */
.scholarship-faq-layout {
  display: grid;
  grid-template-columns: minmax(16rem, .62fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(2rem, 7vw, 7rem);
}
.scholarship-faq-layout__intro {
  position: sticky;
  top: calc(var(--header-h) + 5.25rem);
  margin-bottom: 0;
}
.scholarship-faq-layout__intro .scholarship-section__intro { margin-top: 1.25rem; }
.scholarship-faq { border-top: 1px solid rgba(107,21,32,.2); }
.scholarship-faq__item { border-bottom: 1px solid rgba(107,21,32,.2); }
.scholarship-faq__item h3 { margin: 0; }
.scholarship-faq__button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.5rem;
  width: 100%;
  padding: clamp(1.3rem, 2.6vw, 1.8rem) 0;
  border: 0;
  background: transparent;
  color: var(--wine-deep);
  font-family: var(--font-display);
  font-size: clamp(1rem, .92rem + .35vw, 1.18rem);
  font-weight: 600;
  letter-spacing: .035em;
  line-height: 1.35;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .25s var(--ease);
}
.scholarship-faq__button:hover { color: var(--brick); }
.scholarship-faq__symbol {
  position: relative;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(144,29,44,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.55);
}
.scholarship-faq__symbol::before,
.scholarship-faq__symbol::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: .72rem;
  height: 2px;
  border-radius: 2px;
  background: var(--wine);
  transform: translate(-50%, -50%);
  transition: transform .25s var(--ease);
}
.scholarship-faq__symbol::after { transform: translate(-50%, -50%) rotate(90deg); }
.scholarship-faq__button[aria-expanded="true"] .scholarship-faq__symbol::after {
  transform: translate(-50%, -50%) rotate(0deg);
}
.scholarship-faq__panel {
  padding: 0 3.5rem 1.6rem 0;
  color: var(--charcoal-soft);
}
.scholarship-faq__panel p { max-width: 68ch; margin: 0; }
.scholarship-faq__panel[hidden] { display: none; }

/* ------------------------------------------------------- closing CTA */
.scholarship-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(3.2rem, 6vw, 5.2rem) 0;
  color: var(--cream);
  background:
    radial-gradient(circle at 86% 0%, rgba(224,160,50,.22), transparent 22rem),
    linear-gradient(120deg, var(--wine-ink), var(--wine));
}
.scholarship-cta::before { opacity: .08; }
.scholarship-cta__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(2rem, 6vw, 6rem);
}
.scholarship-cta__inner > div { max-width: 50rem; }
.scholarship-cta__eyebrow { color: var(--gold-bright); }
.scholarship-cta h2 {
  margin-bottom: .6rem;
  color: var(--cream);
  font-size: clamp(2rem, 1.45rem + 2vw, 3.4rem);
  text-transform: uppercase;
}
.scholarship-cta p:not(.eyebrow) {
  max-width: 62ch;
  margin: 0;
  color: rgba(251,243,231,.78);
}
.scholarship-cta .btn { flex: 0 0 auto; }

/* Keep the longer navigation row comfortable before the mobile menu begins. */
@media (min-width: 961px) and (max-width: 1230px) {
  .site-header__inner { gap: .75rem; }
  .brand__tag { display: none; }
  .primary-nav__list { gap: clamp(.45rem, .9vw, .8rem); }
  .primary-nav__link { font-size: .76rem; letter-spacing: .085em; }
  .primary-nav__cta-item .btn { padding-inline: .9rem; }
}

@media (max-width: 1080px) {
  .scholarship-hero__inner {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, .82fr);
    gap: 2.25rem;
  }
  .featured-scholarship__details { grid-template-columns: minmax(0, 1fr); }
  .application-panel {
    display: grid;
    grid-template-columns: minmax(0, .75fr) minmax(18rem, 1.25fr);
    column-gap: 1.4rem;
  }
  .application-panel__eyebrow,
  .application-panel h3,
  .application-panel > p:not(.application-panel__note),
  .application-panel__primary { grid-column: 1; }
  .application-downloads { grid-column: 2; grid-row: 1 / span 5; }
  .application-panel__note { grid-column: 2; }
}

@media (max-width: 900px) {
  .scholarship-hero__inner { grid-template-columns: minmax(0, 1fr); }
  .programme-snapshot { max-width: 42rem; }
  .programme-showcase { grid-template-columns: minmax(0, 1fr); }
  .programme-showcase__media {
    order: -1;
    min-height: clamp(18rem, 54vw, 27rem);
  }
  .programme-showcase__media img {
    min-height: clamp(18rem, 54vw, 27rem);
    object-position: center 42%;
  }
  .programme-showcase__copy { padding: clamp(1.75rem, 6vw, 3.25rem); }
  .programme-showcase h3 { max-width: 18ch; }
  .scholarship-subnav__scroller { justify-content: flex-start; }
  .scholarship-section__head--split { grid-template-columns: minmax(0, 1fr); }
  .application-timeline {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .application-timeline::before {
    top: 1.6rem;
    bottom: 1.6rem;
    left: 1.55rem;
    width: 2px;
    height: auto;
  }
  .application-step {
    display: grid;
    grid-template-columns: 3.2rem minmax(0, 1fr);
    column-gap: 1.15rem;
    padding-bottom: 2.2rem;
  }
  .application-step:last-child { padding-bottom: 0; }
  .application-step__number {
    grid-row: 1 / span 2;
    margin: 0;
  }
  .application-step h3 {
    grid-column: 2;
    min-height: 0;
    margin-top: .25rem;
  }
  .application-step p { grid-column: 2; }
  .scholarship-faq-layout { grid-template-columns: minmax(0, 1fr); gap: 2.2rem; }
  .scholarship-faq-layout__intro { position: static; }
}

@media (max-width: 720px) {
  .scholarship-hero {
    padding-top: calc(var(--header-h) + 3rem);
    padding-bottom: 4rem;
  }
  .scholarship-hero__title { font-size: clamp(2.75rem, 12vw, 4.6rem); }
  .programme-snapshot__facts { grid-template-columns: minmax(0, 1fr); padding: 0; }
  .programme-snapshot__facts > div,
  .programme-snapshot__facts > div:first-child,
  .programme-snapshot__facts > div:last-child {
    padding: .85rem 0;
    border-right: 0;
    border-bottom: 1px solid rgba(107,21,32,.13);
  }
  .programme-snapshot__facts > div:last-child { border-bottom: 0; }
  .scholarship-section { scroll-margin-top: calc(var(--header-h) + 4.25rem); }
  .featured-scholarship__header { flex-direction: column; }
  .programme-status--light { margin: 0; }
  .scholarship-facts,
  .document-grid,
  .upcoming-grid { grid-template-columns: minmax(0, 1fr); }
  .scholarship-fact { min-height: 0; }
  .application-panel { display: block; }
  .application-panel__note { margin-top: 1rem; }
  .scholarship-cta__inner { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 640px) {
  .programme-showcase__topline {
    align-items: flex-start;
    flex-direction: column;
  }
  .programme-highlights {
    grid-template-columns: minmax(0, 1fr);
    width: calc(100% - 1.5rem);
    margin-top: -1.25rem;
  }
  .programme-highlights > div {
    border-right: 0;
    border-bottom: 1px solid rgba(107,21,32,.14);
  }
  .programme-highlights > div:last-child { border-bottom: 0; }
}

@media (max-width: 520px) {
  .scholarship-hero__title br { display: none; }
  .scholarship-hero__button,
  .scholarship-cta .btn { width: 100%; justify-content: center; }
  .programme-snapshot { padding: 1.3rem; }
  .programme-snapshot__topline { align-items: flex-start; }
  .programme-status { white-space: normal; }
  .programme-showcase__actions {
    align-items: stretch;
    flex-direction: column;
  }
  .programme-showcase__actions .btn {
    width: 100%;
    justify-content: center;
  }
  .programme-showcase__link { align-self: flex-start; }
  .programme-showcase__media figcaption {
    right: .75rem;
    bottom: .75rem;
    left: .75rem;
    font-size: .61rem;
  }
  .scholarship-facts-panel { padding: 1rem; }
  .document-card {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    padding: 1rem;
  }
  .document-card__arrow { display: none; }
  .document-card__icon { width: 2.55rem; height: 2.55rem; }
  .scholarship-faq__panel { padding-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .application-download:hover,
  .document-card:hover,
  .programme-showcase:hover .programme-showcase__media img { transform: none; }
}

@media print {
  .scholarship-subnav,
  .scholarship-hero__button,
  .application-panel,
  .scholarship-cta .btn { display: none !important; }
  .scholarship-hero,
  .scholarship-section,
  .scholarship-cta { background: #fff !important; color: #000 !important; }
  .scholarship-hero { padding-top: 2rem; }
  .scholarship-hero__title,
  .scholarship-hero__title span,
  .scholarship-cta h2,
  .scholarship-cta p:not(.eyebrow) { color: #000 !important; }
}
