/* ==========================================================================
   Motherland: header, hero, press strip, "More than a festival"
   Sizes are measured from the Figma frame (1 design width = 100vw).
   Fonts: League Gothic (headlines), Montserrat (UI and text). Colors sampled from the frame.
   ========================================================================== */

@font-face {
  font-family: "League Gothic";
  font-style: normal; font-weight: 400; font-display: swap;
  src: url("../fonts/league-gothic-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Anybody Black";
  font-style: normal; font-weight: 900; font-display: swap;
  src: url("../fonts/anybody-black.woff2") format("woff2");
}
@font-face {
  font-family: "Poppins";
  font-style: normal; font-weight: 700; font-display: swap;
  src: url("../fonts/poppins-700.woff2") format("woff2");
}
@font-face {
  font-family: "Montserrat";
  font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("../fonts/montserrat-latin.woff2") format("woff2");
}

:root {
  --violet:       #8932de;
  --violet-line:  #b375f0;
  --violet-deep:  #6f22b8;
  --lime:         #b0cc48;
  --lime-hi:      #bad359;
  --lime-lo:      #869d33;
  --coral:        #e2865d;
  --page:         #100e0e;
  --card:         #1c1c1c;
  --dot:          #868686;
  --white:        #ffffff;
  --green:        #37602b;
  --lime-soft:    #b5cb5d;
  --blue:         #6d9ded;
  --slate:        #1c1c1c;
  --red:          #ca3b32;
  --ok:           #5ed04f;
  --font-wide:    "Anybody Black", "Arial Black", Impact, sans-serif;
  --font-bold:    "Poppins", "Montserrat", system-ui, sans-serif;

  --font-ui:      "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-display: "League Gothic", "Arial Narrow", Impact, sans-serif;

  --maxw:   1800px;
  --pad:    clamp(20px, 4.4vw, 80px);
  --gutter: max(var(--pad), calc((100vw - var(--maxw)) / 2 + var(--pad)));
  --header-m: 72px;
  --hero-viewport: calc(100svh - clamp(72px, 6.13vw, 110px) - clamp(46px, 3.3vw, 56px));
  --home-countdown-h: clamp(64px, 9.05vw, 170px);
  --ease:   cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; font-synthesis: none; }
body { font-family: var(--font-ui); color: var(--white); background: var(--page); line-height: 1.5; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, select, textarea { font-family: var(--font-ui); }
ul { list-style: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; border-radius: 6px; }
html.menu-open { overflow: hidden; }

.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding-inline: var(--pad); }
.display { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; letter-spacing: .005em; -webkit-text-stroke: .02em currentColor; }

/* Skip layout and paint work for sections that are well below the fold. */
main > section { content-visibility:auto; contain-intrinsic-size:auto 800px; }
main > .hero, main > .home-countdown, main > .f26-hero, main > .dp-hero, main > .pv-hero, main > .editorial-hero,
main > .contact-hero, main > .waitlist-page, main > .travel-hero, main > .tk-hero { content-visibility:visible; contain-intrinsic-size:none; }
.skip-link { position: absolute; left: 12px; top: -64px; z-index: 300; padding: 10px 16px; border-radius: 10px; background: var(--lime); color: #141414; font-weight: 700; transition: top .15s var(--ease); }
.skip-link:focus { top: 12px; }

/* ── Buttons ────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: clamp(38px, 2.75vw, 46px); padding: 0 clamp(18px, 1.75vw, 28px); border-radius: 999px; border: 1px solid transparent;
  font-family: var(--font-ui); font-size: clamp(13px, .98vw, 15px); font-weight: 600; line-height: 1; white-space: nowrap;
  transition: background .18s, color .18s, border-color .18s, transform .1s;
}
.btn:active { transform: translateY(1px); }
.btn--lg { min-height: clamp(42px, 3vw, 50px); padding: 0 clamp(22px, 1.9vw, 30px); font-size: clamp(14px, 1.06vw, 17px); }
.btn--lime { background: var(--lime); color: #141414; }
.btn--lime:hover { background: #c3dd58; }
.btn--lg.btn--lime { background: linear-gradient(180deg, var(--lime-hi), var(--lime-lo)); }
.btn--lg.btn--lime:hover { background: linear-gradient(180deg, #c9e264, #93ac38); }
.btn--outline { border-color: rgba(255,255,255,.9); color: var(--white); }
.btn--outline:hover { background: var(--white); color: var(--violet); }

/* ── Header ─────────────────────────────────────────────── */
.site-header { position: sticky; top:0; z-index: 1000; background: var(--violet); box-shadow:0 8px 24px rgba(0,0,0,.12); }
.site-header__top { height: clamp(72px, 6.13vw, 110px); display: flex; align-items: center; }
.site-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: inline-flex; align-items: center; min-height: 44px; }
.brand__img { height: clamp(40px, 3.8vw, 68px); width: auto; }
.brand__text { font-family: var(--font-display); font-size: 2rem; text-transform: uppercase; letter-spacing: .02em; }
.header-actions { display: flex; align-items: center; gap: clamp(12px, 1.05vw, 18px); }
.menu-toggle { display: none; }

.site-header__nav { position: relative; border-top: 1px solid var(--violet-line); }
.nav { display: flex; align-items: center; gap: clamp(14px, 1.2vw, 22px); }
.nav__link {
  display: inline-flex; align-items: center; gap: 6px; min-height: clamp(46px, 3.3vw, 56px);
  font-size: clamp(11.5px, .98vw, 15px); font-weight: 500; text-transform: uppercase; color: var(--white);
  transition: color .15s;
}
.nav__link:hover, .nav__trigger[aria-expanded="true"] { color: var(--lime); }
.chev { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform .18s var(--ease); }
.nav__trigger[aria-expanded="true"] .chev { transform: rotate(180deg); }

.panel { position: absolute; left: 0; top: 100%; z-index: 120; background: var(--violet); box-shadow: 0 18px 40px rgba(20, 0, 50, .28); }
.panel:not([hidden]) { animation: panelIn .18s var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.panel__inner { display: flex; align-items: stretch; gap: 22px; padding: 24px 40px 26px var(--gutter); min-width: 380px; }
.panel__col { display: flex; flex-direction: column; gap: 6px; min-width: 150px; }
.panel__rule { width: 1px; background: var(--violet-line); opacity: .7; }
.panel__link { display: block; padding: 9px 14px; border-radius: 8px; font-size: 12px; font-weight: 500; text-transform: uppercase; white-space: nowrap; transition: background .15s, color .15s; }
.panel__link:hover, .panel__link.is-lead { background: rgba(255,255,255,.16); color: var(--lime); }
.panel__col:not(.panel__col--lead) .panel__link { padding-left: 4px; background: none; }
.panel__col:not(.panel__col--lead) .panel__link:hover { color: var(--lime); background: none; }
.panel__media { position: relative; display: block; width: 148px; aspect-ratio: 4 / 3; border-radius: 6px; overflow: hidden; background: var(--violet-deep); align-self: center; }
.panel__media img { width: 100%; height: 100%; object-fit: cover; }
.play { position: absolute; inset: 0; display: grid; place-items: center; }
.play svg { width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: rgba(255,255,255,.92); fill: #141414; }

/* ── Hero ───────────────────────────────────────────────── */
.hero { position: relative; overflow: hidden; background: #1b0f24; height: 500px; height: clamp(520px, 61.6vw, 1100px); }
.hero__slides { position: absolute; inset: 0; }
.hero__slide { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s linear .7s; }
.hero__slide.is-active { opacity: 1; visibility: visible; transition: opacity .7s ease; }
.hero__media, .hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__media img { object-fit: cover; }
.hero__shade { position: absolute; inset: 0; background:
  linear-gradient(to top, rgba(0,0,0,.9) 0%, rgba(0,0,0,.55) 22%, rgba(0,0,0,0) 55%),
  linear-gradient(to bottom, rgba(0,0,0,.22), rgba(0,0,0,0) 20%); }
.hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.9vw; padding-bottom: 8.5vw; }
.hero__title { font-size: clamp(3rem, 8.04vw, 10rem); line-height: .87; max-width: none; text-wrap: balance; text-shadow: 0 2px 30px rgba(0,0,0,.35); }
.page-home .hero__title { font-size: clamp(3.5rem, 9.5vw, 11.5rem); }
.hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(10px, 1.05vw, 16px); }

.hero__controls { position: absolute; left: 0; right: 0; bottom: 3.3vw; z-index: 3; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.hero__controls > * { pointer-events: auto; }
.hero__dots { display: flex; align-items: center; gap: clamp(8px, .8vw, 12px); }
.dot { position: relative; width: clamp(9px, .8vw, 12px); height: clamp(9px, .8vw, 12px); border-radius: 999px; background: var(--dot); transition: width .3s var(--ease), background .2s; }
.dot::after { content: ""; position: absolute; inset: -15px -6px; }
.dot:hover { background: #b3b3b3; }
.dot.is-active { width: clamp(30px, 2.9vw, 46px); background: var(--coral); }
.pause { display: grid; place-items: center; width: 30px; height: 30px; margin-left: 6px; border-radius: 50%; border: 1px solid rgba(255,255,255,.55); color: #fff; }
.pause:hover { background: rgba(255,255,255,.18); }
.pause svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.pause .i-play { display: none; fill: currentColor; stroke: none; }
.pause[aria-pressed="true"] .i-pause { display: none; }
.pause[aria-pressed="true"] .i-play { display: block; }
.hero__arrows { display: flex; gap: clamp(8px, .95vw, 14px); }
.arrow { display: grid; place-items: center; width: clamp(38px, 3.3vw, 56px); height: clamp(38px, 3.3vw, 56px); border-radius: 50%; border: 1px solid rgba(255,255,255,.9); color: #fff; transition: background .18s, color .18s; }
.arrow:hover { background: #fff; color: #141414; }
.arrow svg { width: 42%; height: 42%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* ── Press strip ────────────────────────────────────────── */
.press { background: var(--coral); overflow: hidden; height: clamp(64px, 9.05vw, 170px); }
.press__track { display: flex; width: max-content; height: 100%; animation: marquee 50s linear infinite; }
.press:hover .press__track { animation-play-state: paused; }
.press__list { display: flex; align-items: center; flex: none; }
.press__item { flex: none; width: clamp(150px, 13.4vw, 250px); display: grid; place-items: center; }
.press__item img { height: clamp(22px, 2.7vw, 48px); width: auto; max-width: 78%; object-fit: contain; }
.press__name { font-family: var(--font-ui); font-weight: 700; font-size: clamp(17px, 1.9vw, 32px); letter-spacing: -.02em; color: #fff; white-space: nowrap; }
.press__name--serif { font-family: Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: -.01em; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ── Homepage festival countdown ───────────────────────── */
.home-countdown {
  height: var(--home-countdown-h);
  overflow: hidden;
  background: var(--coral);
  color: #171313;
}
.home-countdown__inner {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) auto minmax(150px, .8fr);
  align-items: center;
  gap: clamp(18px, 3vw, 58px);
  height: 100%;
}
.home-countdown__eyebrow,
.home-countdown__date {
  font-family: var(--font-bold);
  font-size: clamp(10px, .88vw, 15px);
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.15;
  text-transform: uppercase;
}
.home-countdown__date { text-align: right; }
.home-countdown__date-mobile { display: none; }
.home-countdown__clock {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(7px, 1vw, 18px);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.home-countdown__unit { display: grid; justify-items: center; min-width: clamp(42px, 5.7vw, 102px); }
.home-countdown__unit strong {
  font-family: var(--font-display);
  font-size: clamp(34px, 5.2vw, 94px);
  font-weight: 400;
  letter-spacing: .01em;
  line-height: .72;
  -webkit-text-stroke: .015em currentColor;
}
.home-countdown__unit small {
  margin-top: clamp(5px, .65vw, 10px);
  font-size: clamp(7px, .65vw, 11px);
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
}
.home-countdown__clock > i {
  align-self: start;
  margin-top: clamp(-1px, .15vw, 3px);
  font-family: var(--font-display);
  font-size: clamp(28px, 4.1vw, 72px);
  font-style: normal;
  line-height: .72;
}
.home-countdown.is-complete .home-countdown__clock { color: var(--violet-deep); }

@media (min-width: 960px) {
  .home-countdown__eyebrow,
  .home-countdown__date { font-size: clamp(16px, 1.15vw, 22px); }
}

/* On the homepage, the hero and countdown together occupy the available first screen. */
.page-home main > .hero {
  height: calc(var(--hero-viewport) - var(--home-countdown-h));
  min-height: 0;
}

/* ── "More than a festival" ─────────────────────────────── */
.intro { background: var(--page); padding: 12.4vw 0 11.6vw; }
.intro__title { font-size: 7.19vw; line-height: .84; }
.intro__title span { display: block; }
.intro__title .accent { color: var(--violet); }
.intro__lead { margin-top: .9vw; max-width: 53.6vw; font-size: clamp(15px, 1.256vw, 26px); line-height: 1.45; color: rgba(255,255,255,.95); }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.7vw; margin-top: 7vw; }
.card { container-type: inline-size; position: relative; display: block; aspect-ratio: 278 / 197; border-radius: clamp(14px, 1.25vw, 24px); overflow: hidden; background: var(--card); isolation: isolate; }
.card__photo { position: absolute; inset: 0; z-index: 0; }
.card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.card__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(28,28,28,.92) 0%, rgba(28,28,28,.35) 38%, rgba(28,28,28,0) 62%); }
.card:hover .card__photo img, .card:focus-visible .card__photo img { transform: scale(1.05); }
.card__body { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; padding: 5.4cqw; }
.card__title { font-size: 12.26cqw; line-height: .9; margin-bottom: 4.2cqw; }
.card__text { max-width: 74cqw; font-size: max(13px, 3.1cqw); line-height: 1.45; color: rgba(255,255,255,.92); }
.card--1 .card__photo { clip-path: polygon(57.4% 78.04%, 56.32% 77.85%, 50.93% 71.28%, 49.42% 67.18%, 48.3% 61.54%, 44.43% 59.49%, 38.63% 48.3%, 37.91% 48.4%, 37.41% 49.74%, 37.09% 61.54%, 37.59% 64.62%, 40.2% 66.67%, 40.62% 68.21%, 37.58% 72.82%, 36.82% 78.14%, 35.02% 77.34%, 31.41% 72.97%, 29.6% 64.75%, 24.06% 62.05%, 19.79% 51.79%, 14.78% 35.9%, 14.53% 30.26%, 13.34% 27.18%, 12.47% 19.49%, 12.49% 3.08%, 13.36% 0.11%, 96.75% 0%, 98.19% 0.1%, 99.71% 2.56%, 100% 5.13%, 100% 60.0%, 99.28% 64.1%, 100% 67.18%, 100.0% 76.99%, 99.28% 77.57%, 96.7% 75.38%, 91.34% 66.88%, 85.92% 61.42%, 84.87% 56.92%, 80.51% 47.27%, 79.35% 48.21%, 79.2% 56.92%, 78.7% 58.76%, 76.68% 60.0%, 72.92% 57.06%, 71.84% 57.09%, 71.34% 58.46%, 71.46% 63.59%, 70.4% 64.71%, 66.79% 61.43%, 63.99% 60.0%, 63.32% 55.9%, 60.33% 47.69%, 59.21% 46.7%, 58.34% 48.21%, 58.03% 55.9%, 53.58% 58.46%, 53.13% 59.49%, 53.59% 60.51%, 56.32% 61.65%, 59.21% 64.13%, 60.17% 65.64%, 58.78% 69.74%, 58.2% 76.92%, 57.4% 78.04%); }
.card--2 .card__photo { clip-path: polygon(33.94% 74.54%, 31.05% 74.63%, 28.88% 73.46%, 27.22% 67.35%, 25.34% 64.29%, 28.22% 52.04%, 26.61% 47.45%, 27.27% 2.04%, 27.8% 0.13%, 96.39% 0%, 97.83% 0.44%, 99.74% 3.57%, 100% 5.61%, 100% 28.57%, 99.64% 29.7%, 97.83% 30.0%, 97.09% 31.12%, 97.39% 32.65%, 100% 37.24%, 100% 43.37%, 99.64% 45.24%, 96.03% 44.71%, 66.79% 48.37%, 61.37% 54.63%, 57.76% 56.22%, 54.87% 60.88%, 47.29% 68.72%, 44.77% 70.41%, 41.16% 70.93%, 38.99% 73.25%, 33.94% 74.54%); }
.card--3 .card__photo { clip-path: polygon(54.87% 78.67%, 53.21% 78.06%, 51.92% 76.02%, 49.63% 61.22%, 46.21% 52.12%, 44.77% 52.98%, 41.52% 60.77%, 37.91% 64.81%, 33.21% 65.89%, 31.41% 64.29%, 31.51% 56.63%, 29.15% 52.55%, 28.91% 51.02%, 29.6% 49.97%, 33.67% 48.98%, 36.12% 42.86%, 36.45% 38.27%, 35.5% 36.22%, 33.74% 34.69%, 25.27% 30.44%, 24.04% 27.55%, 24.55% 25.24%, 26.35% 23.27%, 28.41% 18.88%, 32.84% 12.24%, 32.84% 8.16%, 30.01% 2.55%, 29.96% 0.37%, 31.77% 0%, 97.47% 0.07%, 100% 7.14%, 100% 34.69%, 99.64% 36.18%, 98.04% 37.76%, 97.66% 40.31%, 98.74% 47.45%, 100% 51.02%, 99.92% 58.67%, 97.11% 59.94%, 88.09% 58.44%, 84.48% 59.18%, 82.86% 62.76%, 80.74% 75.0%, 78.7% 78.15%, 76.53% 77.78%, 68.95% 66.1%, 66.43% 64.58%, 62.82% 66.67%, 57.48% 76.53%, 54.87% 78.67%); }

/* ── Festival 2026 (green) ──────────────────────────────── */
.wide { font-family: var(--font-wide); font-weight: 900; font-size: 1.084em; letter-spacing: 0; -webkit-text-stroke: 0; }
.festival { position: relative; overflow: hidden; background: var(--green) url("../img/bg-festival.jpg") center / cover no-repeat; padding: 7.6vw 0; }
.festival__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 36.3vw; align-items: center; gap: 4vw; }
.festival__title { font-size: 7.15vw; line-height: .846; }
.festival__title span { display: block; }
.festival__title .lime { color: var(--lime-soft); }
.festival__title .wide { display: inline; margin-left: .13em; }
.festival__lead { margin-top: .8vw; max-width: 43.4vw; font-size: clamp(15px, 1.252vw, 26px); line-height: 1.45; }
.facts { display: grid; grid-template-columns: repeat(2, 20.2vw); gap: 1.7vw 0; margin-top: 4.4vw; }
.fact { border-left: 1px solid var(--lime-soft); padding: .2vw 0 .2vw 1.26vw; }
.fact dt { font-size: clamp(11px, .84vw, 15px); font-weight: 400; line-height: 1.3; }
.fact dd { margin-top: .5vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(15px, 1.37vw, 26px); line-height: 1.25; }
.fact dd.is-lime { color: var(--lime-soft); }
.festival__actions { display: flex; flex-wrap: wrap; gap: clamp(10px, 1.05vw, 16px); margin-top: 4.3vw; }

.stack { position: relative; width: 100%; aspect-ratio: 4 / 5; }
.stack__card { position: absolute; inset: 0; margin: 0; overflow: hidden; background: #0e0e0e; border: max(2px, .3vw) solid #0e0e0e; box-shadow: 0 .8vw 2.4vw rgba(0, 0, 0, .25); }
.stack__card img { width: 100%; height: 100%; object-fit: cover; }
.stack__card--1 { z-index: 3; transform: rotate(-1.7deg); }
.stack__card--2 { z-index: 2; background: #7a5237; transform: translate(-.65vw, .5vw) rotate(1.3deg); }
.stack__card--3 { z-index: 1; background: #8c8c8c; transform: translate(.55vw, .15vw) rotate(-2.6deg); }
.play-btn { position: absolute; left: 50%; top: 50%; width: clamp(44px, 4.8vw, 84px); aspect-ratio: 1; transform: translate(-50%, -50%); display: grid; place-items: center; border-radius: 50%; background: rgba(58, 58, 58, .74); color: #fff; transition: background .18s, transform .18s var(--ease); }
button.play-btn:hover { background: rgba(30, 30, 30, .9); transform: translate(-50%, -50%) scale(1.06); }
.play-btn svg { width: 54%; height: 54%; fill: currentColor; margin-left: 6%; }
.festival__globe { position: absolute; z-index: 4; right: 0; bottom: 0; width: 28vw; height: auto; pointer-events: none; }

dialog.video { border: 0; padding: 0; margin: auto; width: min(92vw, 1100px); aspect-ratio: 16 / 9; background: #000; border-radius: 12px; overflow: hidden; }
dialog.video::backdrop { background: rgba(0, 0, 0, .82); }
.video__stage, .video__stage iframe, .video__stage video { width: 100%; height: 100%; border: 0; display: block; }
.video__close { position: absolute; top: 8px; right: 10px; z-index: 2; width: 44px; height: 44px; border-radius: 50%; font-size: 30px; line-height: 1; color: #fff; background: rgba(0, 0, 0, .55); }
.video__close:hover { background: rgba(0, 0, 0, .8); }

/* Database-controlled website announcement popup. */
html.site-popup-open{overflow:hidden}.site-popup{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:clamp(16px,4vw,54px);opacity:0;transition:opacity .22s ease}.site-popup.is-visible{opacity:1}.site-popup__backdrop{position:absolute;inset:0;background:rgba(10,8,10,.82);backdrop-filter:blur(8px)}.site-popup__dialog{position:relative;z-index:1;width:min(92vw,620px);max-height:90dvh}.site-popup__link{display:block;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:clamp(18px,2vw,30px);background:#211523;box-shadow:0 34px 100px rgba(0,0,0,.55);transform:translateY(16px) scale(.98);transition:transform .28s var(--ease)}.site-popup.is-visible .site-popup__link{transform:none}.site-popup__link img{display:block;width:100%;max-height:86dvh;object-fit:contain}.site-popup__close{position:absolute;top:-14px;right:-14px;z-index:2;display:grid;width:46px;height:46px;place-items:center;border:2px solid #fff;border-radius:50%;background:#171317;color:#fff;font-size:30px;line-height:1;box-shadow:0 12px 32px rgba(0,0,0,.4)}.site-popup__close:hover{background:var(--violet)}@media(max-width:560px){.site-popup{padding:18px}.site-popup__dialog{width:100%}.site-popup__close{top:-10px;right:-7px;width:42px;height:42px}.site-popup__link img{max-height:82dvh}}

/* ── Roadshows (dark) ───────────────────────────────────── */
.roads { background: var(--slate) url("../img/bg-roadshows.jpg") center / cover no-repeat; padding: 7.5vw 0 7.1vw; }
.roads__title { font-size: 7.2vw; line-height: .84; }
.roads__title span { display: block; }
.roads__title .accent { font-family: var(--font-wide); font-weight: 900; font-size: .98em; line-height: 1; margin-top: .06em; letter-spacing: 0; -webkit-text-stroke: 0; color: var(--blue); }
.roads__lead { margin-top: 2.7vw; max-width: 53.0vw; font-size: clamp(15px, 1.244vw, 26px); line-height: 1.45; }
.roads__next{display:flex;align-items:center;gap:14px;width:fit-content;margin-top:clamp(28px,3vw,48px);padding:13px 18px;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(16,14,14,.5);backdrop-filter:blur(8px)}
.roads__next-flag{font-size:30px}.roads__next div{display:grid;gap:2px}.roads__next span:not(.roads__next-flag){color:var(--lime-soft);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.roads__next strong{font:800 clamp(16px,1.35vw,23px) var(--font-bold)}.roads__next small{color:rgba(255,255,255,.7);font-size:12px}
.route { display: grid; grid-template-columns: repeat(var(--road-count,5), minmax(0,1fr)); margin-top: 6.8vw; }
.route__stop { display: grid; grid-template-rows: auto auto auto; row-gap: .95vw; min-width: 0; }
.route__date { font-family: var(--font-wide); font-weight: 900; font-size: clamp(14px, 1.58vw, 28px); line-height: 1; text-transform: uppercase; white-space: nowrap; }
.route__line { display: flex; align-items: center; gap: .55vw; height: 1.5vw; min-height: 16px; }
.route__line::after { content: ""; flex: 1; height: 1px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.5) 0 7px, transparent 7px 13px); }
.pin { height: 100%; width: auto; aspect-ratio: 10 / 14; fill: #fff; flex: none; }
.route__city { display: flex; align-items: center; gap: .75vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(13.5px, 1.29vw, 23px); line-height: 1.2; white-space: nowrap; }
.flag { flex: none; width: clamp(18px, 1.7vw, 30px); aspect-ratio: 1; border-radius: 50%; overflow: hidden; display: block; }
.flag svg { width: 100%; height: 100%; }
.flag--emoji{display:grid;place-items:center;background:#fff;font-size:clamp(13px,1.25vw,21px);line-height:1}
.roads__actions { display: flex; flex-wrap: wrap; gap: clamp(10px, 1.05vw, 16px); margin-top: 5.3vw; }

/* ── Culture in motion ──────────────────────────────────── */
.culture { background: var(--page); padding: 11.2vw 0 5.2vw; text-align: center; }
.culture__title { display: block; width: fit-content; margin-inline: auto; font-size: 7.25vw; line-height: .84; background: var(--red); color: #fff; padding: 2.3vw 2.2vw 2.1vw; }
.culture__lead { margin: 2.4vw auto 0; max-width: 55.3vw; font-size: clamp(14px, 1.212vw, 26px); line-height: 1.45; }
.stats { display: flex; justify-content: space-between; align-items: flex-start; margin-top: 4.9vw; }
.stat { display: flex; flex-direction: column; align-items: center; }
.stat__num { font-family: var(--font-wide); font-weight: 900; font-size: 5.9vw; line-height: .8; color: #fff; }
.stat__label { margin-top: .7vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(11px, 1.3vw, 22px); line-height: 1.2; text-transform: uppercase; color: var(--lime-soft); }

/* ── Experience the motion ──────────────────────────────── */
.exp { background: var(--violet); padding: 5.3vw 0 4.3vw; overflow: hidden; }
.exp__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.exp__title { font-size: 7.2vw; line-height: .84; }
.exp__nav { display: flex; gap: clamp(6px, .84vw, 14px); margin-top: 1vw; }
.exp__nav .arrow { width: clamp(36px, 3.4vw, 56px); height: clamp(36px, 3.4vw, 56px); }
.arrow:disabled { opacity: .35; cursor: default; }
.arrow:disabled:hover { background: transparent; color: #fff; }
.exp__track { display: flex; gap: 1.7vw; margin-top: 3.8vw; padding: 0 var(--gutter); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); -webkit-overflow-scrolling: touch; scrollbar-width: none; overscroll-behavior-x: contain; }
.exp__track::-webkit-scrollbar { display: none; }
.exp__track.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.xcard { position: relative; flex: 0 0 29.3vw; aspect-ratio: 278 / 401; scroll-snap-align: start; border-radius: clamp(12px, 1.5vw, 26px); overflow: hidden; background: #6f22b8; isolation: isolate; }
.xcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; user-select: none; }
.deco { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.exp__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: clamp(10px, 1.05vw, 16px); margin-top: 2.8vw; }

/* ── Motherland University ──────────────────────────────── */
.uni { position: relative; overflow: hidden; display: flex; align-items: center; min-height: 43.1vw; background: #17171a url("../img/bg-university.jpg") right center / cover no-repeat; }
.uni::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #161618 0%, rgba(22,22,24,.95) 30%, rgba(22,22,24,.55) 52%, rgba(22,22,24,0) 74%); }
.uni__inner { position: relative; z-index: 1; padding-block: 5.1vw 5vw; }
.badge { display: inline-flex; align-items: center; gap: .6vw; padding: .5vw 1.05vw; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(255,255,255,.06); font-size: clamp(11.5px, .964vw, 17px); font-weight: 500; line-height: 1.2; color: var(--ok); }
.badge__dot { width: max(5px, .55vw); height: max(5px, .55vw); border-radius: 50%; background: var(--ok); flex: none; }
.uni__title { margin-top: 2.4vw; font-size: 7.15vw; line-height: .846; }
.uni__title span { display: block; }
.uni__title .accent { font-family: var(--font-wide); font-weight: 900; font-size: .954em; line-height: .887; letter-spacing: 0; -webkit-text-stroke: 0; color: var(--coral); margin-top: .02em; }
.uni__lead { margin-top: 1.85vw; max-width: 55vw; font-size: clamp(15px, 1.254vw, 26px); line-height: 1.45; }
.uni__btn { margin-top: 6.1vw; }
.uni__btn svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ── Choose your Motherland path ────────────────────────── */
.path { background: var(--page); padding: 12.4vw 0 6vw; }
.path__title { text-align: center; font-size: 7.18vw; line-height: .83; max-width: 40vw; margin-inline: auto; }
.path__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.7vw; margin-top: 5.1vw; }
.pcard { position: relative; display: flex; flex-direction: column; min-height: 18.1vw; padding: 2.35vw 2.2vw 2.1vw; border-radius: clamp(14px, 1.5vw, 26px); background: var(--card); overflow: hidden; }
.pcard__ico { width: 3.3vw; height: 3.3vw; min-width: 30px; min-height: 30px; object-fit: contain; flex: none; }
.pcard__title { margin-top: 1.9vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(17px, 1.68vw, 30px); line-height: 1.2; }
.pcard__text { margin-top: .7vw; font-size: clamp(12.5px, .98vw, 17px); line-height: 1.4; color: #b9b9b9; }
.pcard__link { display: inline-flex; align-items: center; gap: .7vw; align-self: flex-start; margin-top: auto; padding-top: 1.6vw; font-size: clamp(12.5px, 1.07vw, 18px); font-weight: 700; }
.pcard__link:hover { color: var(--lime); }
.chev-r { width: .9em; height: .9em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.pcard--bank { grid-column: span 2; background: #fbfcfd; color: #111; }
.pcard--bank .pcard__text { color: #222; }
.pcard--bank .pcard__link:hover { color: var(--violet); }
.pcard__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; z-index: 0; }
.pcard__body { position: relative; z-index: 1; display: flex; flex-direction: column; flex: 1; }
.pcard__logo { width: auto; height: clamp(64px, 6vw, 108px); max-width: min(68%, 380px); align-self: flex-start; object-fit: contain; }
.pcard__logo--text { display: inline-flex; height:auto; max-width:none; align-items: center; font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 700; font-size: clamp(36px, 3.6vw, 64px); line-height:1; color: #1b3b7a; }
.pcard--bank .pcard__title { margin-top: 1.4vw; }

/* ── Motherland in the news ─────────────────────────────── */
.news { background: var(--page); padding: 6.2vw 0 6.5vw; }
.news__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.news__title { font-size: 7.2vw; line-height: .84; max-width: 46vw; }
.news__foot { display: none; }
.news__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6vw; margin-top: 5.1vw; }
.ncard { display: block; }
.ncard__img { display: block; aspect-ratio: 236 / 147; border-radius: clamp(10px, 1.5vw, 24px); overflow: hidden; background: #2a2a2c; }
.ncard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ncard:hover .ncard__img img { transform: scale(1.04); }
.ncard__title { margin-top: 2.1vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(16px, 1.68vw, 30px); line-height: 1.25; }
.ncard__text { margin-top: 1.5vw; font-size: clamp(13.5px, 1.1vw, 19px); line-height: 1.4; color: #cfcfcf; }
.ncard__more { display: inline-flex; align-items: center; gap: .6vw; margin-top: 2.6vw; font-size: clamp(13.5px, 1.1vw, 19px); font-weight: 600; }
.ncard:hover .ncard__more { color: var(--lime); }

/* ── Questions people asked ─────────────────────────────── */
.faq { background: var(--page); padding: 6.5vw 0 13vw; }
.faq__title { text-align: center; font-size: 7.28vw; line-height: .84; max-width: 40vw; margin-inline: auto; }
.acc { width: 67.4vw; margin: 5.3vw auto 0; }
.acc__item { background: var(--card); border-top: 1px solid var(--page); }
.acc__item:first-child { border-top: 0; }
.acc__btn { display: flex; align-items: center; justify-content: space-between; gap: 2vw; width: 100%; min-height: 6.7vw; padding: 1.2vw 3.1vw 1.2vw 2.2vw; text-align: left; font-size: clamp(14px, 1.56vw, 24px); font-weight: 500; line-height: 1.3; color: #e3e3e3; }
.acc__btn:hover { color: #fff; }
.acc__icon { color: #fff; position: relative; flex: none; width: max(12px, 1.25vw); height: max(12px, 1.25vw); }
.acc__icon::before, .acc__icon::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -.75px; background: currentColor; transition: transform .25s var(--ease); }
.acc__icon::after { transform: rotate(90deg); }
.acc__panel { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .3s var(--ease), visibility 0s linear .3s; }
.acc__inner { overflow: hidden; padding-inline: 2.2vw; }
.acc__inner p { padding-bottom: 2.2vw; max-width: 61.5vw; font-size: clamp(13.5px, 1.04vw, 18px); line-height: 1.79; color: #fff; }
.acc__item.is-open { background: var(--violet); }
.acc__item.is-open .acc__btn { min-height: 0; padding-top: 2.6vw; padding-bottom: .8vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(16px, 1.67vw, 28px); color: var(--lime-soft); }
.acc__item.is-open .acc__icon::after { transform: rotate(0); }
.acc__item.is-open .acc__panel { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .3s var(--ease), visibility 0s; }

/* ── Sign-up (lime) ─────────────────────────────────────── */
.signup { background: #b3cb4a url("../img/bg-signup.jpg") center / cover no-repeat; padding: 8.5vw 0 0; text-align: center; color: #0d0d0d; }
.signup__title { font-size: 7.15vw; line-height: .83; max-width: 56vw; margin-inline: auto; -webkit-text-stroke: .02em #0d0d0d; }
.signup__lead { margin: 2.65vw auto 0; max-width: 44vw; font-size: clamp(13.5px, .98vw, 18px); line-height: 1.4; color: #1a1a1a; }
.signup__card { width: 57.7vw; margin: 2.2vw auto 0; padding: 3.4vw 3.2vw 2.85vw; background: var(--page); color: #fff; border-radius: clamp(14px, 1.9vw, 32px) clamp(14px, 1.9vw, 32px) 0 0; text-align: left; }
.signup__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6vw; }
.field { display: flex; flex-direction: column; gap: .5vw; min-width: 0; }
.field label { font-size: clamp(12px, .947vw, 16px); font-weight: 700; line-height: 1.3; }
.field input { width: 100%; min-height: max(44px, 3.5vw); padding: 0 1.2vw; border: 1px solid #343333; border-radius: max(6px, .6vw); background: var(--card); color: #fff; font: 400 max(14px, .976vw) var(--font-ui); transition: border-color .15s, box-shadow .15s; }
.field input::placeholder { color: #8a8a8a; }
.field input:hover { border-color: #4a4949; }
.field input:focus { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px rgba(176, 204, 72, .25); }
.field input[aria-invalid="true"] { border-color: #ff8a80; }
.field__error { min-height: 0; font-size: max(12px, .85vw); color: #ff9a92; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.signup__btn { display: flex; width: clamp(160px, 20vw, 340px); min-height: clamp(44px, 3.6vw, 60px); margin: 2.7vw auto 0; font-size: max(14px, 1.093vw); background: linear-gradient(180deg, var(--lime-hi), var(--lime-lo)); color: #141414; }
.signup__btn:hover:not(:disabled) { background: linear-gradient(180deg, #c9e264, #93ac38); }
.signup__btn:disabled { opacity: .6; cursor: progress; }
.signup__note { margin: .9vw auto 0; max-width: 19.5vw; text-align: center; font-size: max(12px, .844vw); line-height: 1.35; color: #b4b4b4; }
.signup__msg { margin-top: .8vw; text-align: center; font-size: max(13px, .95vw); font-weight: 600; min-height: 1.2em; }
.signup__msg.is-ok { color: var(--lime-soft); }
.signup__msg.is-bad { color: #ff9a92; }

/* ── Footer ─────────────────────────────────────────────── */
.foot { background: var(--page); color: #fff; padding-top: 4.6vw; }
.foot__grid { display: grid; grid-template-columns: minmax(0, 1fr) 14vw 12.3vw 14.7vw; align-items: start; }
.foot .brand__img { height: clamp(36px, 3.5vw, 60px); }
.foot__tag { margin-top: 1.4vw; max-width: 25vw; font-size: clamp(14px, 1.196vw, 21px); line-height: 1.45; color: #e6e6e6; }
.foot__h { font-family: var(--font-bold); font-weight: 700; font-size: clamp(15px, 1.132vw, 20px); line-height: 1.2; }
.foot__col ul { display: grid; gap: 1vw; margin-top: 1.7vw; }
.foot__col li a { display: inline-block; max-width: 11.5vw; font-size: clamp(13.5px, .957vw, 17px); line-height: 1.35; color: #d9d9d9; transition: color .15s; }
.foot__col li a:hover, .foot__legal a:hover { color: var(--lime); }
.foot__mail { display: inline-block; margin-top: 2.1vw; font-size: clamp(13.5px, .956vw, 17px); font-weight: 500; color: var(--lime-soft); word-break: break-all; }
.foot__mail:hover { text-decoration: underline; text-underline-offset: 3px; }
.foot__col--connect .social { display: flex; gap: 1.1vw; margin-top: 1.6vw; }
.foot .social a { color: #0d0d0d; display: grid; place-items: center; width: max(32px, 2.85vw); aspect-ratio: 1; border-radius: 50%; background: #fff; color: #0d0d0d; transition: background .15s, transform .15s var(--ease); }
.foot .social a:hover { background: var(--lime); transform: translateY(-2px); }
.social svg { width: 58%; height: 58%; }
.tracking-consent{position:fixed;z-index:10000;left:20px;right:20px;bottom:20px;display:flex;max-width:920px;margin:auto;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#171317;color:#fff;box-shadow:0 24px 80px rgba(0,0,0,.42)}.tracking-consent[hidden]{display:none}.tracking-consent strong{font-family:var(--font-bold);font-size:16px}.tracking-consent p{max-width:64ch;margin-top:5px;color:#bbb3b9;font-size:12px;line-height:1.55}.tracking-consent__actions{display:flex;flex:none;gap:9px}.tracking-consent button{min-height:42px;padding:0 17px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:12px;font-weight:800}.tracking-consent button[data-tracking-accept]{border-color:var(--lime-soft);background:var(--lime-soft);color:#171317}
.foot__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-top: 7.3vw; padding: 2.5vw 0 4.1vw; border-top: 1px solid #1c1a1a; }
.foot__bar p { font-size: clamp(12.5px, .917vw, 16px); color: #cfcfcf; }
.foot__legal { display: flex; gap: 1.6vw; }
.foot__legal a { font-size: clamp(12.5px, .917vw, 16px); color: #d9d9d9; display: inline-block; padding-block: 4px; }

/* ── Festival 2026 page ─────────────────────────────────── */
.only-m, .mbr { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.f26-hero { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 51.2vw; background: #1f2a16 url("../img/bg-festival-hero.jpg") center / cover no-repeat; text-align: center; }
.f26-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(16,14,14,.96) 0%, rgba(16,14,14,.72) 24%, rgba(16,14,14,0) 56%), linear-gradient(180deg, rgba(16,14,14,.18), rgba(16,14,14,0) 25%); }
.f26-hero__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; padding-bottom: 2.85vw; }
.f26-hero__title { margin-bottom: 3.2vw; font-size: 7.93vw; line-height: .86; text-shadow: 0 2px 30px rgba(0,0,0,.4); }
.f26-hero__title span { display: block; }
.f26-hero__title .wide { display: block; line-height: .9; }
.f26-hero__note { margin-top: 1.6vw; max-width: 21.5vw; font-size: clamp(12px, .985vw, 17px); line-height: 1.3; color: rgba(255,255,255,.8); }

.f26-status { background: var(--card); padding: 2.55vw 0; }
.f26-status__inner { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5vw 5vw; }
.f26-status__title { font-family: var(--font-bold); font-weight: 700; font-size: clamp(16px, 1.4vw, 26px); line-height: 1.2; white-space: nowrap; }
.chips { display: flex; gap: 1.24vw; }
.chip { display: flex; flex-direction: column; gap: .5vw; min-width: 9.6vw; padding: .95vw 1.15vw; border: 1px solid #292929; border-radius: max(5px, .5vw); }
.chip__label { display: flex; align-items: center; gap: .45vw; font-size: clamp(10.5px, .9vw, 15px); font-weight: 500; letter-spacing: .02em; text-transform: uppercase; color: #d2d2d2; }
.chip__ico { width: 1vw; height: 1vw; min-width: 11px; min-height: 11px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.chip__value { display: flex; align-items: center; gap: .5vw; font-family: var(--font-bold); font-weight: 700; font-size: clamp(13px, 1.107vw, 20px); line-height: 1.2; white-space: nowrap; }
.chip--location { min-width:20vw; max-width:28vw; }
.chip--location .chip__value { white-space:normal; }
.chip__value.is-live { color: var(--lime-soft); }
.live { width: .5vw; height: .5vw; min-width: 6px; min-height: 6px; border-radius: 50%; background: var(--lime-soft); flex: none; }
.f26-status__link { display: inline-flex; align-items: center; gap: .6vw; font-size: clamp(13px, 1.058vw, 19px); font-weight: 700; color: var(--lime-soft); white-space: nowrap; }
.f26-status__link:hover { text-decoration: underline; text-underline-offset: 4px; }
.arr { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

.f26-about { background: var(--page); padding: 12vw 0 11.4vw; }
.f26-about__grid { display: grid; grid-template-columns: minmax(0, 1fr) 34.4vw; grid-template-rows: 1fr auto; column-gap: 4vw; grid-template-areas: "copy collage" "cta collage"; }
.f26-about__copy { grid-area: copy; }
.f26-about__cta { grid-area: cta; align-self: end; margin-top: 3.8vw; }
.collage { grid-area: collage; position: relative; aspect-ratio: 278 / 359; }
.tag { display: inline-block; padding: .45vw 1vw; border: 1px solid #2c2a2a; border-radius: 999px; background: #171515; font-size: clamp(10.5px, .931vw, 15px); font-weight: 700; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; color: var(--coral); }
.f26-about__title { margin-top: 2.6vw; font-size: 7.15vw; line-height: .846; }
.f26-about__title .lime { color: var(--lime-soft); }
.f26-about__p { margin-top: 1.6vw; font-size: clamp(15px, 1.251vw, 26px); line-height: 1.39; }
.f26-about__p--2 { margin-top: 3vw; }
.collage__ph { position: absolute; overflow: hidden; border: 1px solid rgba(255,255,255,.35); border-radius: max(3px, .4vw); background: #2a2a2c; box-shadow: 0 .5vw 1.6vw rgba(0,0,0,.4); }
.collage__ph img { width: 100%; height: 100%; object-fit: cover; }
.collage__ph--1 { left: 9.4%; top: 0; width: 47.5%; height: 26.7%; z-index: 1; }
.collage__ph--2 { left: 33.1%; top: 13.4%; width: 66.9%; height: 69.1%; z-index: 3; }
.collage__ph--3 { left: 0; top: 56.8%; width: 50.7%; height: 43.2%; z-index: 2; }

.f26-matters { display: grid; grid-template-columns: 47.9fr 52.1fr; min-height: 50.7vw; background: var(--coral); }
.f26-matters__photo { background: #0b2a44 url("../img/bg-festival-matters.jpg") center / cover no-repeat; }
.f26-matters__panel { padding: 3.1vw 4.47vw 4vw 2.85vw; color: #fff; }
.f26-matters__title { font-size: 7.19vw; line-height: .846; }
.f26-matters__p { margin-top: 1.2vw; max-width: 44.8vw; font-size: clamp(15px, 1.251vw, 26px); line-height: 1.39; }
.f26-matters__item { margin-top: 2.85vw; max-width: 44.8vw; }
.f26-matters__item:first-of-type { margin-top: 7.3vw; }
.f26-matters__item h3 { font-size: clamp(14px, 1.276vw, 22px); font-weight: 700; line-height: 1.3; text-transform: uppercase; }
.f26-matters__item p { margin-top: .15vw; font-size: clamp(15px, 1.254vw, 26px); line-height: 1.39; }

/* ── Festival ticket sign-up ────────────────────────────── */
.f26-ticket { --u: min(1vw, 17.5px); background: var(--page); padding: 11.6vw 0; overflow-x: clip; }
.ticket { position: relative; display: grid; grid-template-columns: calc(var(--u) * 20) 1fr; width: calc(var(--u) * 82.4); margin-inline: auto; }
.ticket__stub { position: relative; background: #fff; border-radius: calc(var(--u) * 1) 0 0 calc(var(--u) * 1); border-right: max(4px, calc(var(--u) * .5)) dashed var(--page); container-type: size; overflow: hidden; }
.sheet { position: absolute; top: 0; left: 0; width: 100cqh; height: 100cqw; transform-origin: 0 0; transform: translateX(100cqw) rotate(90deg); container-type: size; color: #0d0d0d; }
.sheet > * { position: absolute; }
.sheet__logo { left: 9%; top: 11%; width: 26%; height: auto; filter: brightness(0); }
.sheet__admit { right: 10%; top: 12%; font-family: var(--font-wide); font-weight: 900; font-size: 6.1cqw; line-height: 1; white-space: nowrap; }
.sheet__code { right: 10%; top: 45%; font: 400 2.6cqw/1 ui-monospace, "Courier New", monospace; letter-spacing: .05em; white-space: nowrap; }
.barcode { left: 10%; top: 55%; width: 80%; height: 26%; fill: #0d0d0d; }
.sheet__caption { left: 0; right: 0; bottom: 6%; text-align: center; font: 400 2.5cqw/1 ui-monospace, "Courier New", monospace; letter-spacing: .13em; white-space: nowrap; }
.ticket__main { position: relative; background: var(--lime-solid, #b3cb4a); padding: calc(var(--u) * 3.5) calc(var(--u) * 4) calc(var(--u) * 3.7) calc(var(--u) * 5.1); color: #0d0d0d; }
.ticket__title { font-size: calc(var(--u) * 7.3); line-height: .86; -webkit-text-stroke: .02em #0d0d0d; }
.ticket__title .red { color: var(--red); -webkit-text-stroke: .02em var(--red); }
.ticket__list { display: grid; gap: calc(var(--u) * .95); margin-top: calc(var(--u) * 1.4); }
.ticket__list li { display: flex; align-items: center; gap: calc(var(--u) * .7); font-size: max(13px, calc(var(--u) * 1.111)); line-height: 1.3; }
.tick { width: max(13px, calc(var(--u) * 1.15)); height: max(13px, calc(var(--u) * 1.15)); flex: none; fill: none; stroke: var(--red); stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.ticket__form { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--u) * 1.2); margin-top: calc(var(--u) * 2.85); }
.ticket__form input[type="email"] { flex: 0 1 calc(var(--u) * 34.5); min-width: 0; min-height: max(44px, calc(var(--u) * 3.5)); padding: 0 calc(var(--u) * 1.2); border: 0; border-radius: max(6px, calc(var(--u) * .6)); background: var(--card); color: #fff; font: 400 max(14px, calc(var(--u) * 1.114)) var(--font-ui); }
.ticket__form input[type="email"]::placeholder { color: #a8a8a8; }
.ticket__form input[type="email"]:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.ticket__form input[aria-invalid="true"] { box-shadow: 0 0 0 2px var(--red); }
.ticket__btn { min-height: max(44px, calc(var(--u) * 3.2)); padding: 0 calc(var(--u) * 1.9); border-radius: 999px; background: #fff; color: #0d0d0d; font-size: max(14px, calc(var(--u) * 1.093)); font-weight: 600; transition: background .15s, color .15s; }
.ticket__btn:hover:not(:disabled) { background: #0d0d0d; color: #fff; }
.ticket__btn:disabled { opacity: .6; cursor: progress; }
.ticket__msg:empty { display: none; }
.ticket__msg { flex-basis: 100%; min-height: 1.2em; font-size: max(13px, calc(var(--u) * .95)); font-weight: 600; }
.ticket__msg.is-ok { color: #14532d; }
.ticket__msg.is-bad { color: #7f1d1d; }
.js-err { position: absolute; left: 0; bottom: -1.7em; font-size: max(12.5px, calc(var(--u) * .85)); font-weight: 600; color: #7f1d1d; }
.notch { position: absolute; width: calc(var(--u) * 5); height: calc(var(--u) * 5); border-radius: 50%; background: var(--page); pointer-events: none; }
.notch--jt { left: calc(var(--u) * 20 - var(--u) * 2.5); top: calc(var(--u) * -2.5); }
.notch--jb { left: calc(var(--u) * 20 - var(--u) * 2.5); bottom: calc(var(--u) * -2.5); }
.notch--rt { right: calc(var(--u) * -2.5); top: calc(var(--u) * -2.5); }
.notch--rb { right: calc(var(--u) * -2.5); bottom: calc(var(--u) * -2.5); }
.notch--lt, .notch--lb { width: calc(var(--u) * 4.2); height: calc(var(--u) * 4.2); left: calc(var(--u) * -2.1); }
.notch--lt { top: calc(var(--u) * -2.1); }
.notch--lb { bottom: calc(var(--u) * -2.1); }

/* ── Logo strip: one image (logos.webp) ────────────────── */
.press .press__item--img { width: auto; }
.press__item .press__logos { display: block; width: auto; max-width: none; height: clamp(22px, 2.7vw, 48px); }
.press.press--dark { height: auto; background: transparent; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
.press--dark .press__track { height: auto; }
.press--dark .press__item .press__logos { height: clamp(26px, 3.2vw, 56px); }

/* ── Festival page: planning + ecosystem ────────────────── */
.display--mixed { text-transform: none; letter-spacing: 0; }
.plan { background: var(--page); padding: 12.4vw 0 6vw; }
.plan__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 3vw; }
.plan__title { max-width: 56vw; font-size: 7.2vw; line-height: .846; }
.plan__title .lime { color: var(--lime-soft); }
.plan__lead { margin-top: 1.9vw; max-width: 51.5vw; font-size: clamp(14px, 1.261vw, 26px); line-height: 1.39; }
.plan__btn { flex: none; }
.plan__cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.9vw; margin-top: 4.6vw; }
.plan-card { min-height: 18vw; padding: 1.6vw 1.7vw 1.5vw; border-radius: clamp(12px, 1.7vw, 28px); background: var(--card); }
.plan-card__ico { display: block; width: 3.2vw; height: 3.2vw; min-width: 28px; min-height: 28px; object-fit: contain; }
.plan-card__title { margin-top: 1.4vw; font-size: clamp(22px, 2.606vw, 48px); line-height: 1; }
.plan-card__text { margin-top: 1.6vw; font-size: clamp(13.5px, 1.268vw, 22px); line-height: 1.37; color: #e6e6e6; }

.eco { background: var(--page); padding: 6.4vw 0 6.3vw; }
.eco__title { text-align: center; max-width: 52vw; margin-inline: auto; font-size: 7.2vw; line-height: .846; }
.eco__title .red { color: var(--red); -webkit-text-stroke: .02em var(--red); }
.eco .press--dark { margin-top: 5.4vw; }
.eco__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 2.6vw; margin-top: 6vw; }
.eco-card { display: flex; flex-direction: column; min-height: 22.2vw; padding: 2.2vw; border-radius: clamp(12px, 1.7vw, 28px); background: var(--card); }
.eco-card__title { font-size: clamp(30px, 4.278vw, 78px); line-height: .95; }
.eco-card__text { margin: 1.5vw 0 2.2vw; max-width: 40vw; font-size: clamp(14px, 1.257vw, 22px); line-height: 1.4; color: #d9d9d9; }
.eco-card__btn { margin-top: auto; align-self: flex-start; }
.eco-card__btn--white { background: #fff; color: #0d0d0d; }
.eco-card__btn--white:hover { background: var(--lime); }
.eco-card__btn--outline { border-color: rgba(255,255,255,.6); color: #fff; }
.eco-card__btn--outline:hover { background: #fff; color: #0d0d0d; }

/* ── Mobile menu ────────────────────────────────────────── */
.mobile-menu { position: fixed; inset: var(--header-m) 0 0 0; z-index: 90; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding: 8px var(--pad) 28px; background: var(--violet); overflow-y: auto; }
.mobile-menu:not([hidden]) { animation: panelIn .2s var(--ease); }
.m-link { display: flex; width: 100%; align-items: center; justify-content: space-between; min-height: 56px; border-bottom: 1px solid rgba(255,255,255,.22); font-size: 16px; font-weight: 600; text-transform: uppercase; text-align: left; }
.m-trigger[aria-expanded="true"] { color: var(--lime); }
.m-trigger[aria-expanded="true"] .chev { transform: rotate(180deg); }
.m-trigger .chev { width: 16px; height: 16px; }
.m-sub { padding: 6px 0 10px 14px; border-bottom: 1px solid rgba(255,255,255,.22); }
.m-sub a { display: flex; align-items: center; min-height: 46px; font-size: 14px; font-weight: 500; text-transform: uppercase; color: rgba(255,255,255,.92); }
.m-video-link { display:flex; width:100%; align-items:center; min-height:46px; color:var(--lime); font-size:14px; font-weight:600; text-transform:uppercase; text-align:left; }
.m-sub a:hover { color: var(--lime); }
.mobile-menu__actions { display: grid; gap: 12px; }
.mobile-menu__actions .btn { width: 100%; min-height: 52px; font-size: 15px; }

/* ── Tablet and phone ───────────────────────────────────── */
@media (max-width: 959px) {
  :root { --pad: 20px; }
  .site-header { position: sticky; top: 0; }
  .site-header__top { height: var(--header-m); }
  .site-header__nav, .header-actions__extra { display: none; }
  .brand__img { height: 44px; }
  .header-actions { margin-left: auto; }
  .header-actions .btn { min-height: 38px; padding: 0 20px; font-size: 13px; }
  .menu-toggle { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -8px; }
  .menu-toggle__bars { display: grid; gap: 6px; width: 24px; }
  .menu-toggle__bars i { display: block; height: 2px; border-radius: 2px; background: #fff; transition: transform .22s var(--ease), opacity .15s; }
  .menu-toggle[aria-expanded="true"] i:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] i:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .hero { height: clamp(520px, 66vw, 760px); }
  .hero__content { padding-bottom: 9vw; gap: 2.4vw; }
  .hero__controls { bottom: 3.6vw; }
  .press { height: clamp(64px, 9.05vw, 100px); }
}
@media (max-width: 720px) {
  :root { --home-countdown-h: clamp(72px, 22.5vw, 120px); }
  .tracking-consent{left:10px;right:10px;bottom:10px;display:grid;gap:15px;padding:18px}.tracking-consent__actions{display:grid;grid-template-columns:1fr 1fr}.tracking-consent button{width:100%}
  .hero { height: clamp(560px, 185vw, 820px); }
  .hero__title { font-size: clamp(3rem, 17.87vw, 6.6rem); line-height: .83; }
  .hero__content { padding-bottom: 31vw; gap: 5vw; }
  .hero__actions { gap: 10px; }
  .hero .btn--lg { min-height: 40px; padding: 0 20px; font-size: 13.5px; }
  .hero__controls { bottom: 5vw; }
  .dot { width: 8px; height: 8px; }
  .dot.is-active { width: 28px; }
  .arrow { width: 40px; height: 40px; }
  .press { height: clamp(72px, 22.5vw, 120px); }
  .press__item { width: clamp(104px, 27vw, 160px); }
  .press__item img { height: clamp(20px, 5.8vw, 34px); }
  .intro { padding: 15vw 0 16vw; }
  .intro__title { font-size: 13.3vw; line-height: .87; }
  .intro__lead { max-width: none; margin-top: 4.4vw; font-size: 14px; }
  .cards { grid-template-columns: 1fr; gap: 14px; margin-top: 9vw; }
  .card { aspect-ratio: 237 / 201; }
  .card__title { font-size: 9.7cqw; line-height: .92; margin-bottom: 3.4cqw; }
  .card__text { max-width: 90cqw; font-size: max(13.5px, 3.6cqw); }
  .card__body { padding: 5.6cqw; }

  .home-countdown__inner {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0;
    padding-block: 10px 9px;
  }
  .home-countdown__eyebrow {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
  }
  .home-countdown__date {
    margin-top: 6px;
    font-size: 8px;
    text-align: center;
  }
  .home-countdown__date-mobile { display: inline; }
  .home-countdown__date-mobile i { padding-inline: 3px; font-style: normal; }
  .home-countdown__clock { gap: clamp(5px, 2vw, 10px); }
  .home-countdown__unit { min-width: clamp(46px, 14vw, 62px); }
  .home-countdown__unit strong { font-size: clamp(38px, 11vw, 52px); }
  .home-countdown__unit small { margin-top: 5px; font-size: 7px; }
  .home-countdown__clock > i { margin-top: 1px; font-size: clamp(30px, 8vw, 40px); }
}

/* The diaspora hero must never be taller than the available first screen. */
main > .dp-hero { height:var(--hero-viewport); min-height:0; }
@media (max-width:720px) {
  main > .dp-hero { height:var(--hero-viewport); min-height:0; }
  .dp-hero__inner { min-height:100%; padding-top:clamp(42px,8svh,66px); padding-bottom:clamp(74px,12svh,96px); }
  .dp-hero__title { font-size:clamp(46px,13.5vw,64px); }
  .dp-hero__lead { margin-top:14px; font-size:12px; line-height:1.34; }
  .dp-hero__cta { margin-top:18px; }
  .dp-hero__controls { bottom:24px; }
}
@media (max-width:720px) and (max-height:680px) {
  .dp-hero__title { font-size:clamp(42px,12vw,56px); }
  .dp-hero__lead { max-width:92vw; font-size:11px; }
}

/* Let the browser skip layout and paint work for content that is still far
   below the viewport. The first section remains immediate for hero/LCP work. */
@supports (content-visibility:auto) {
  main > section:not(:first-child) {
    content-visibility:auto;
    contain-intrinsic-size:auto 760px;
  }
}

/* Keep every primary page hero inside the initially visible screen. */
main > .hero,
main > .f26-hero,
main > .dp-hero {
  height: var(--hero-viewport);
  min-height: 0;
}

@media (max-width: 959px) {
  :root { --hero-viewport: calc(100svh - var(--header-m)); }
}

@media (max-width: 720px) {
  .hero__content { padding-bottom: clamp(94px, 20svh, 138px); }
  .f26-hero__inner { padding-bottom: clamp(28px, 6svh, 52px); }
  .dp-hero__inner { padding-top: clamp(48px, 9svh, 80px); padding-bottom: clamp(86px, 15svh, 118px); }
}

@media (max-height: 680px) and (max-width: 720px) {
  .hero__title { font-size: clamp(46px, 14vw, 64px); }
  .f26-hero__title { margin-bottom: 18px; font-size: clamp(52px, 14vw, 68px); }
  .f26-hero__note { margin-top: 14px; }
  .dp-hero__title { font-size: clamp(48px, 13vw, 64px); }
  .dp-hero__lead { margin-top: 14px; line-height: 1.35; }
  .dp-hero__cta { margin-top: 18px; }
}
@media (max-width: 380px) {
  .header-actions .btn { padding: 0 14px; }
}

@media (max-width: 959px) {
  .route { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(210px, 26vw); overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: var(--pad); -webkit-overflow-scrolling: touch; margin: 6.8vw calc(-1 * var(--pad)) 0; padding: 0 var(--pad) 8px; scrollbar-width: none; }
  .route::-webkit-scrollbar { display: none; }
  .route__stop { scroll-snap-align: start; }
  .route__date, .route__city { font-size: max(15px, 1.9vw); }
  .route__line { height: 22px; }
  .flag { width: 22px; }
}
@media (max-width: 720px) {
  .festival { padding: 17vw 0 18vw; }
  .festival__grid { grid-template-columns: 1fr; gap: 12vw; }
  .festival__title { font-size: 13.3vw; line-height: .84; }
  .festival__lead { max-width: none; margin-top: 4.4vw; font-size: 14px; }
  .facts { grid-template-columns: repeat(2, 1fr); gap: 4.6vw 0; margin-top: 8vw; }
  .fact { padding: 1vw 0 1vw 3.4vw; }
  .fact dt { font-size: max(11.5px, 2.7vw); }
  .fact dd { margin-top: 1.4vw; font-size: max(15px, 4.1vw); }
  .festival__actions { margin-top: 8vw; gap: 10px; }
  .festival .btn--lg, .roads .btn--lg { min-height: 40px; padding: 0 20px; font-size: 13.5px; }
  .stack { width: 86vw; margin: 0 auto; }
  .play-btn { width: max(56px, 18vw); }
  .stack__card { border-width: 2px; }
  .stack__card--2 { transform: translate(-1.6vw, 1.3vw) rotate(1.3deg); }
  .stack__card--3 { transform: translate(1.4vw, .4vw) rotate(-2.6deg); }
  .festival__globe { width: 60vw; }
  .roads { padding: 24vw 0 12vw; }
  .roads__title { font-size: 13.3vw; line-height: .87; }
  .roads__title .accent { font-size: .752em; }
  .roads__lead { max-width: none; margin-top: 6vw; font-size: 14px; }
  .route { grid-auto-columns: 63vw; margin-top: 10vw; }
  .route__stop { row-gap: 3vw; }
  .route__date { font-size: max(16px, 4.3vw); }
  .route__line { height: 5vw; gap: 2vw; }
  .route__city { gap: 2.4vw; font-size: max(14px, 3.6vw); }
  .flag { width: max(20px, 5.4vw); }
  .roads__actions { margin-top: 8vw; gap: 10px; }
}
@media (max-width: 720px) {
  .culture { padding: 24vw 0 19vw; }
  .culture__title { width: auto; font-size: 13.4vw; line-height: .86; padding: 5.6vw 2vw 5.2vw; }
  .culture__lead { max-width: none; margin-top: 8vw; font-size: 14px; }
  .stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12vw 4vw; margin-top: 16vw; }
  .stat__num { font-size: 10.97vw; }
  .stat__label { margin-top: 4vw; font-size: max(12.5px, 3.7vw); }
  .exp { padding: 8.5vw 0 8vw; }
  .exp__title { font-size: 12.9vw; line-height: .87; white-space: nowrap; }
  .exp__nav { display: none; }
  .exp__track { gap: 6.2vw; margin-top: 6.6vw; }
  .xcard { flex-basis: 56.2vw; aspect-ratio: 145 / 200; }
  .exp__actions { margin-top: 10.9vw; }
  .exp .btn--desktop { display: none; }
  .exp .btn--lg { min-height: 40px; padding: 0 22px; font-size: 13.5px; }
}
@media (max-width: 720px) {
  .uni { min-height: 177vw; align-items: flex-end; background-position: top center; }
  .uni::before { background: linear-gradient(0deg, #141416 0%, rgba(20,20,22,.96) 34%, rgba(20,20,22,.55) 52%, rgba(20,20,22,0) 72%); }
  .uni__inner { padding-block: 0 15vw; }
  .badge { gap: 2vw; padding: 1.6vw 3.2vw; font-size: max(11.5px, 3vw); }
  .uni__title { margin-top: 5.5vw; font-size: 13.3vw; }
  .uni__title .accent { font-size: .79em; }
  .uni__lead { max-width: none; margin-top: 5vw; font-size: 14px; }
  .uni__btn { margin-top: 9vw; }
  .path { padding: 26vw 0 12vw; }
  .path__title { font-size: 13.4vw; line-height: .87; max-width: 76vw; }
  .path__grid { grid-template-columns: 1fr; gap: 4vw; margin-top: 9vw; }
  .pcard { min-height: 50vw; padding: 6.4vw; border-radius: 4vw; }
  .pcard__ico { width: 8vw; height: 8vw; }
  .pcard__title { margin-top: 6vw; font-size: max(19px, 6.25vw); }
  .pcard__text { margin-top: 2vw; font-size: 13px; }
  .pcard__link { padding-top: 5vw; font-size: 13.5px; gap: 2vw; }
  .pcard--bank { grid-column: auto; min-height: 93vw; }
  .pcard--bank .pcard__title { margin-top: 6vw; font-size: max(22px, 7.1vw); }
  .pcard__logo { height: clamp(62px, 18vw, 90px); max-width: 78%; }
  .pcard__logo--text { height:auto; max-width:none; font-size:clamp(36px,11vw,54px); }
  .news { padding: 12vw 0 14vw; }
  .news__title { font-size: 13.3vw; line-height: .87; max-width: none; }
  .news__more--head { display: none; }
  .news__list { display: flex; gap: 6vw; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad); margin: 7vw calc(-1 * var(--pad)) 0; padding: 0 var(--pad); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .news__list::-webkit-scrollbar { display: none; }
  .news__list > li { flex: 0 0 73.4vw; scroll-snap-align: start; }
  .ncard__img { border-radius: 3.2vw; }
  .ncard__title { margin-top: 4vw; font-size: max(16px, 4.1vw); }
  .ncard__text { margin-top: 2.6vw; }
  .ncard__more { margin-top: 4vw; gap: 1.6vw; }
  .news__foot { display: flex; justify-content: center; margin-top: 10vw; }
  .faq { padding: 8vw 0 25.6vw; }
  .faq__title { font-size: 13.4vw; line-height: .87; max-width: 76vw; }
  .acc { width: 100%; margin-top: 8vw; }
  .acc__btn { min-height: 13.8vw; padding: 3vw 5vw 3vw 4vw; font-size: max(14.5px, 3.83vw); gap: 4vw; }
  .acc__inner { padding-inline: 4vw; }
  .acc__inner p { max-width: none; padding-bottom: 5vw; font-size: 13.5px; }
  .acc__item.is-open .acc__btn { padding-top: 5vw; padding-bottom: 1.6vw; font-size: max(15px, 4vw); }
}
@media (max-width: 959px) {
  .foot__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7vw 4vw; }
  .foot__brand { grid-column: 1 / -1; }
  .foot__tag { max-width: 46vw; }
  .foot__col li a { max-width: 30vw; }
  .foot__col--connect .social { flex-wrap: wrap; gap: 10px; }
  .social a { width: 36px; }
}
@media (max-width: 959px) {
  .f26-hero { min-height: 56vw; }
  .f26-status__inner { flex-direction: column; text-align: center; gap: 4vw; }
  .chips { flex-wrap: wrap; justify-content: center; gap: 2vw; }
  .chip { min-width: 20vw; padding: 1.4vw 2vw; }
  .f26-about__grid { column-gap: 3vw; }
}
@media (max-width: 720px) {
  .signup { padding-top: 25.6vw; }
  .signup__title { font-size: 13.4vw; line-height: .87; max-width: 76vw; }
  .signup__lead { max-width: none; margin-top: 9vw; font-size: 14px; }
  .signup__card { width: 91vw; margin-top: 8.7vw; padding: 6vw 4.6vw 7vw; border-radius: 4vw 4vw 0 0; }
  .signup__fields { grid-template-columns: 1fr; gap: 5vw; }
  .field--email { order: -1; }
  .field { gap: 2vw; }
  .field label { font-size: max(13px, 3.2vw); }
  .field input { min-height: 46px; padding: 0 4vw; font-size: 16px; border-radius: 8px; }
  .field__error { font-size: 13px; }
  .signup__btn { width: max(160px, 40vw); margin-top: 8vw; font-size: 15px; }
  .signup__note { max-width: none; margin-top: 3.4vw; font-size: max(12px, 3.1vw); }
  .foot { padding-top: 12vw; text-align: center; }
  .foot__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9vw 5vw; }
  .foot .brand__img { height: 12.5vw; }
  .foot__tag { margin: 5vw auto 0; max-width: 78vw; font-size: max(14px, 3.6vw); }
  .foot__brand { display: flex; grid-column:1/-1; flex-direction: column; align-items: center; }
  .foot__h { font-size: max(16px, 4.2vw); }
  .foot__col ul { gap: 0; margin-top: 4vw; justify-items: center; }
  .foot__col li a { display: flex; align-items: center; justify-content: center; min-height: 36px; font-size: max(13px, 3.25vw); text-align: center; max-width: 42vw; }
  .foot__col--connect{grid-column:1/-1}.foot__mail { margin-top: 3vw; font-size: max(14px, 3.4vw); }
  .foot__col--connect .social { justify-content: center; gap: 2.4vw; margin-top: 5vw; }
	.foot .social li { flex: 0 0 auto; }
	.foot .social li a { display:grid; width:max(44px,11vw); height:max(44px,11vw); min-width:max(44px,11vw); min-height:max(44px,11vw); max-width:none; padding:0; border-radius:50%; aspect-ratio:auto; }
  .foot__bar { flex-direction: column; justify-content: center; margin-top: 7vw; padding: 5vw 0 7vw; text-align: center; }
  .foot__legal { justify-content: center; gap: 5vw; flex-wrap: wrap; }
  .foot__legal a { padding-block: 10px; }
}
@media (max-width: 720px) {
  .only-d { display: none; }
  .only-m { display: inline; }
  .mbr { display: inline; }
  .f26-hero { min-height: clamp(560px, 186vw, 860px); }
  .f26-hero__inner { padding-bottom: 6.9vw; }
  .f26-hero__title { margin-bottom: 7vw; font-size: 17.78vw; line-height: .84; }
  .f26-hero__title .wide { line-height: .9; }
  .f26-hero .btn--lg { min-height: 40px; padding: 0 6vw; font-size: 13.5px; }
  .f26-hero__note { margin-top: 4vw; max-width: 72vw; font-size: max(12px, 3vw); }
  .f26-status { padding: 7vw 0 8vw; }
  .f26-status__inner { gap: 5vw; }
  .f26-status__title { font-size: max(15px, 4vw); }
  .chip--desktop { display: none; }
  .chips { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2vw; width: 100%; }
  .chip { min-width: 0; gap: 2vw; padding: 3.2vw 2.8vw; border-radius: 2.2vw; text-align: left; }
  .chip--location { grid-column:1 / -1; max-width:none; }
  .chip__label { font-size: max(10.5px, 2.4vw); gap: 1.2vw; }
  .chip__value { font-size: max(13px, 3vw); gap: 1.4vw; }
  .f26-status__link { font-size: max(13.5px, 3.2vw); }
  .f26-about { padding: 26vw 0 24vw; }
  .f26-about__grid { grid-template-columns: 1fr; grid-template-areas: "copy" "collage" "cta"; grid-template-rows: auto; }
  .tag { padding: 1.4vw 3vw; font-size: max(10.5px, 2.4vw); }
  .f26-about__title { margin-top: 6vw; font-size: 18.09vw; line-height: .83; }
  .f26-about__p { margin-top: 4vw; font-size: 14px; }
  .f26-about__p--2 { margin-top: 4.5vw; }
  .collage { margin-top: 9vw; }
  .f26-about__cta { margin-top: 8vw; text-align: center; }
  .f26-about__cta .btn--lg { min-height: 40px; padding: 0 6vw; font-size: 13.5px; }
  .f26-matters { grid-template-columns: 1fr; }
  .f26-matters__photo { min-height: 66vw; }
  .f26-matters__panel { padding: 12vw 5vw 14vw; }
  .f26-matters__title { font-size: 13.3vw; line-height: .87; }
  .f26-matters__p { max-width: none; margin-top: 5vw; font-size: 14px; }
}
@media (max-width: 720px) {
  .f26-matters { position: relative; display: block; min-height: 225vw; }
  .f26-matters__photo { position: absolute; inset: 0; background-position: 32% bottom; }
  .f26-matters__photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--coral) 0%, var(--coral) 30%, rgba(226,134,93,.55) 42%, rgba(226,134,93,0) 60%); }
  .f26-matters__panel { position: relative; z-index: 1; padding: 12vw 4vw 6vw; }
  .f26-matters__title { font-size: 17.5vw; line-height: .84; }
  .f26-matters__p { max-width: none; margin-top: 4vw; font-size: 14px; }
  .f26-matters__item { max-width: none; margin-top: 5vw; }
  .f26-matters__item:first-of-type { margin-top: 6vw; }
  .f26-matters__item h3 { font-size: max(13px, 3.2vw); }
  .f26-matters__item p { font-size: 14px; margin-top: 1vw; }
  .f26-ticket { padding: 21vw 0 22vw; }
  .ticket { display: block; width: 91.7vw; }
  .ticket__stub { height: 51.8vw; border-right: 0; border-bottom: max(3px, .9vw) dashed var(--page); border-radius: 4vw 4vw 0 0; }
  .sheet { width: 100cqw; height: 100cqh; transform-origin: 50% 50%; transform: rotate(180deg); }
  .ticket__main { padding: 8vw 6vw 8vw; }
  .ticket__title { font-size: 17.8vw; line-height: .85; }
  .ticket__list { gap: 3.2vw; margin-top: 8vw; }
  .ticket__list li { font-size: max(13.5px, 3.4vw); gap: 2.6vw; align-items: flex-start; }
  .tick { width: max(14px, 3.6vw); height: max(14px, 3.6vw); margin-top: .1em; }
  .ticket__form { flex-direction: column; align-items: stretch; gap: 3.4vw; margin-top: 8vw; }
  .ticket__form input[type="email"] { flex: none; width: 100%; min-height: 46px; padding: 0 4vw; font-size: 16px; border-radius: 8px; }
  .ticket__btn { align-self: flex-end; min-height: 44px; padding: 0 6vw; font-size: 14px; }
  .js-err { position: static; }
  .notch { width: 9vw; height: 9vw; }
  .notch--jt { left: -4.5vw; top: calc(51.8vw - 4.5vw); }
  .notch--jb { left: auto; right: -4.5vw; top: calc(51.8vw - 4.5vw); bottom: auto; }
  .notch--rt { right: -4.5vw; top: auto; bottom: -4.5vw; }
  .notch--rb { right: auto; left: -4.5vw; bottom: -4.5vw; }
  .notch--lt, .notch--lb { width: 8vw; height: 8vw; top: -4vw; bottom: auto; }
  .notch--lt { left: auto; right: -4vw; }
  .notch--lb { left: -4vw; right: auto; }
}
@media (max-width: 720px) {
  .press__item .press__logos { height: clamp(20px, 5.8vw, 34px); }
  .press--dark .press__item .press__logos { height: clamp(24px, 6.8vw, 40px); }
  .exp .btn--block-m { width: 100%; }
  .plan { padding: 26.5vw 0 12vw; }
  .plan__title { max-width: 82vw; font-size: 17.95vw; line-height: .826; }
  .plan__lead { max-width: none; margin-top: 5vw; font-size: 14px; }
  .plan__btn { display: none; }
  .plan__cards { display: flex; gap: 3.7vw; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pad); margin: 8.7vw calc(-1 * var(--pad)) 0; padding: 0 var(--pad); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .plan__cards::-webkit-scrollbar { display: none; }
  .plan__cards > li { flex: 0 0 69vw; scroll-snap-align: start; }
  .plan-card { min-height: 53vw; padding: 5vw; border-radius: 4vw; }
  .plan-card__ico { width: 9vw; height: 9vw; }
  .plan-card__title { margin-top: 5vw; font-size: max(26px, 7.6vw); }
  .plan-card__text { margin-top: 3.4vw; font-size: 13px; }
  .eco { padding: 14vw 0 17vw; }
  .eco__title { max-width: none; font-size: 17.85vw; line-height: .83; }
  .faq--f26 .faq__title { font-size: 18.3vw; max-width: 80vw; }
  .eco .press--dark { margin-top: 14vw; }
  .eco__cards { grid-template-columns: 1fr; gap: 5.5vw; margin-top: 16vw; }
  .eco-card { min-height: 0; padding: 5vw; border-radius: 4vw; }
  .eco-card__title { font-size: max(34px, 10.1vw); }
  .eco-card__text { max-width: none; margin: 4.5vw 0 7vw; font-size: 13.5px; }
  .eco-card__btn { align-self: stretch; margin-top: auto; min-height: 44px; font-size: 13.5px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .press__track { animation: none; }
}

/* ========================================================================== 
   Diaspora Programs page
   ========================================================================== */
.page-diaspora { background: #0e0e0f; }
.dp-lime { color: #b9d83d; }
.dp-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 2.1vw;
  padding: .38vw .9vw;
  border: 1px solid rgba(185,216,61,.45);
  border-radius: 999px;
  color: #b9d83d;
  font-size: clamp(10px, .72vw, 13px);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .02em;
}

/* Diaspora hero */
.dp-hero {
  position: relative;
  min-height: clamp(600px, 52vw, 900px);
  overflow: hidden;
  background: #191919;
  isolation: isolate;
}
.dp-hero__slides,
.dp-hero__slide { position: absolute; inset: 0; }
.dp-hero__slide {
  opacity: 0;
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.04) 0%, rgba(0,0,0,.10) 32%, rgba(0,0,0,.82) 100%),
    var(--dp-hero-image);
  background-position: center;
  background-size: cover;
  transform: scale(1.02);
  transition: opacity .65s var(--ease), transform 5s ease;
}
.dp-hero__slide.is-active { opacity: 1; transform: scale(1); }
.dp-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 24%;
  background: linear-gradient(180deg, transparent, #0e0e0f 96%);
  pointer-events: none;
}
.dp-hero__inner {
  position: relative;
  z-index: 2;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(60px, 80px, 120px) 0 clamp(40px, 60px, 80px);
}
.dp-hero__copy { width: min(62vw, 980px); text-align: center; }
.dp-hero__title {
  max-width:14ch;
  margin-inline:auto;
  font-size: clamp(58px, 4.8vw, 88px);
  line-height: .9;
  text-shadow: 0 3px 18px rgba(0,0,0,.25);
}
.dp-hero__title span { display:block; }
.dp-hero__lead {
  max-width: min(760px, 62vw);
  margin: clamp(16px,1.2vw,22px) auto 0;
  font-size: clamp(13px, .88vw, 16px);
  line-height: 1.48;
  text-shadow: 0 2px 10px rgba(0,0,0,.45);
}
.dp-hero__cta { margin-top: 1.45vw; }
.dp-hero__controls {
  position: absolute;
  left: var(--pad);
  right: var(--pad);
  bottom: clamp(35px, 3.2vw, 56px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}
.dp-hero__dots,
.dp-hero__arrows { display: flex; align-items: center; gap: clamp(7px, .55vw, 10px); pointer-events: auto; }
.dp-dot {
  width: clamp(7px, .52vw, 9px);
  height: clamp(7px, .52vw, 9px);
  border-radius: 999px;
  background: rgba(255,255,255,.55);
  transition: width .22s var(--ease), background .22s;
}
.dp-dot.is-active { width: clamp(26px, 2.1vw, 38px); background: #ef8262; }
.dp-arrow {
  display: grid;
  place-items: center;
  width: clamp(38px, 3.25vw, 58px);
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 50%;
  background: rgba(0,0,0,.08);
  transition: background .18s, transform .18s;
}
.dp-arrow:hover { background: rgba(255,255,255,.14); transform: translateY(-1px); }
.dp-arrow svg { width: 45%; height: 45%; fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* Trusted guidance */
.dp-support { background: #0e0e0f; padding: clamp(90px, 8.4vw, 150px) 0 clamp(110px, 10vw, 180px); }
.dp-support__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.14fr) minmax(360px, .86fr);
  gap: clamp(50px, 5.5vw, 100px);
  align-items: center;
}
.dp-support__title {
  max-width: 50vw;
  margin-top: 1.8vw;
  font-size: clamp(66px, 5.55vw, 102px);
  line-height: .86;
}
.dp-support__lead {
  max-width: 47vw;
  margin-top: 2vw;
  color: #f0f0f0;
  font-size: clamp(13px, .95vw, 17px);
  line-height: 1.5;
}
.dp-services {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, .85vw, 15px) clamp(20px, 2.4vw, 44px);
  margin-top: 2.7vw;
}
.dp-services li {
  position: relative;
  padding-left: 1.55em;
  font-size: clamp(12px, .82vw, 15px);
  line-height: 1.35;
  color: #efefef;
}
.dp-services li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: .03em;
  display: grid;
  place-items: center;
  width: 1.05em;
  height: 1.05em;
  border: 1.5px solid #b9d83d;
  border-radius: 50%;
  color: #b9d83d;
  font-size: .7em;
  font-weight: 800;
}
.dp-collage {
  position: relative;
  width: 100%;
  min-height: 36vw;
  max-height: 650px;
}
.dp-collage__item {
  position: absolute;
  overflow: hidden;
  border-radius: clamp(9px, .85vw, 15px);
  background: linear-gradient(135deg, #292929, #151515);
}
.dp-collage__item img { width: 100%; height: 100%; object-fit: cover; }
.dp-collage__item--1 { top: 0; left: 9%; width: 49%; height: 31%; z-index: 1; }
.dp-collage__item--2 { top: 20%; right: 0; width: 64%; height: 57%; z-index: 3; }
.dp-collage__item--3 { left: 0; bottom: 0; width: 50%; height: 43%; z-index: 2; }

@media (max-width: 959px) {
  .dp-hero { min-height: clamp(580px, 80vw, 760px); }
  .dp-hero__copy { width: min(78vw, 760px); }
  .dp-hero__lead { max-width: 70vw; }
  .dp-support__grid { grid-template-columns: 1fr 42vw; gap: 4vw; }
  .dp-support__title { max-width: 54vw; }
  .dp-support__lead { max-width: 53vw; }
  .dp-collage { min-height: 44vw; }
}

@media (max-width: 720px) {
  .dp-kicker { min-height: 0; padding: 1.25vw 2.7vw; font-size: max(9px, 2.25vw); }
  .dp-hero { min-height: clamp(600px, 164vw, 760px); }
  .dp-hero__slide { background-position: 56% center; }
  .dp-hero__inner { align-items: center; padding-top: 32vw; padding-bottom: 30vw; }
  .dp-hero__copy { width: 100%; }
  .dp-hero__title { max-width: 88vw; margin-inline: auto; font-size: 15.4vw; line-height: .84; }
  .dp-hero__lead { max-width: 88vw; margin-top: 4.8vw; font-size: 12.5px; line-height: 1.42; }
  .dp-hero__cta { margin-top: 6vw; min-height: 40px; padding: 0 6vw; font-size: 13px; }
  .dp-hero__controls { bottom: 8vw; }
  .dp-dot { width: 7px; height: 7px; }
  .dp-dot.is-active { width: 25px; }
  .dp-arrow { width: 39px; }

  .dp-support { padding: 22vw 0 24vw; }
  .dp-support__grid { grid-template-columns: 1fr; gap: 12vw; }
  .dp-support__title { max-width: 92vw; margin-top: 5vw; font-size: 13.6vw; line-height: .86; }
  .dp-support__lead { max-width: none; margin-top: 5vw; font-size: 13px; line-height: 1.5; }
  .dp-services { gap: 3.4vw 4vw; margin-top: 7vw; }
  .dp-services li { padding-left: 1.55em; font-size: 10.8px; }
  .dp-collage { min-height: 98vw; width: 92vw; margin-inline: auto; }
  .dp-collage__item { border-radius: 2.5vw; }
  .dp-collage__item--1 { left: 0; width: 55%; height: 28%; }
  .dp-collage__item--2 { top: 19%; width: 66%; height: 57%; }
  .dp-collage__item--3 { left: 2%; width: 52%; height: 42%; }
}

/* Diaspora roadshows */
.dp-roadshows {
  position: relative;
  overflow: hidden;
  padding: clamp(92px, 8.2vw, 150px) 0 clamp(100px, 9vw, 165px);
  background:
    linear-gradient(90deg, rgba(19,22,25,.95), rgba(19,22,25,.91)),
    url('/assets/img/diaspora-roadshows-bg.jpg') center / cover no-repeat;
}
.dp-roadshows__head { max-width: 860px; }
.dp-roadshows__title {
  max-width: 760px;
  font-size: clamp(64px, 5.25vw, 96px);
  line-height: .86;
}
.dp-roadshows__title span {
  display: block;
  margin-top: .04em;
  color: #65a2f3;
  font-family: var(--font-wide);
  font-size: .91em;
  font-weight: 900;
  letter-spacing: 0;
  line-height: .92;
  -webkit-text-stroke: 0;
}
.dp-roadshows__lead {
  max-width: 760px;
  margin-top: clamp(22px, 1.9vw, 34px);
  color: rgba(255,255,255,.92);
  font-size: clamp(13px, .92vw, 17px);
  line-height: 1.55;
}
.dp-roadshows__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.45vw, 26px);
  margin-top: clamp(44px, 4.3vw, 78px);
}
.dp-roadshows__group{margin-top:clamp(44px,4.3vw,78px)}
.dp-roadshows__group+.dp-roadshows__group{margin-top:clamp(64px,6vw,105px);padding-top:clamp(40px,4vw,70px);border-top:1px solid rgba(255,255,255,.16)}
.dp-roadshows__group-head p{color:var(--lime-soft);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.dp-roadshows__group-head h3{margin-top:8px;font:800 clamp(25px,2.4vw,40px) var(--font-bold)}
.dp-roadshows__group .dp-roadshows__cards{margin-top:clamp(24px,2.5vw,42px)}
.dp-roadshows__cards--upcoming{grid-template-columns:minmax(0,1fr)}
.dp-roadshows__cards--upcoming .dp-road-card{max-width:780px;min-height:0}
.dp-road-card {
  display: flex;
  min-height: clamp(370px, 29vw, 520px);
  flex-direction: column;
  padding: clamp(22px, 1.7vw, 31px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.035);
  border-radius: clamp(14px, 1vw, 18px);
  background: #3a3c43;
  box-shadow: 0 18px 44px rgba(0,0,0,.14);
}
.dp-road-card__top { padding-bottom: clamp(18px, 1.4vw, 25px); border-bottom: 1px solid rgba(255,255,255,.15); }
.dp-road-card__country { display: flex; align-items: center; gap: clamp(10px, .8vw, 14px); min-width: 0; }
.dp-road-card__flag {
  display: grid;
  flex: none;
  width: clamp(30px, 2.1vw, 38px);
  aspect-ratio: 1;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #fff;
  font-size: clamp(19px, 1.45vw, 26px);
  line-height: 1;
}
.dp-road-card__country h3 {
  font-size: clamp(32px, 2.2vw, 40px);
  line-height: .9;
  white-space: nowrap;
}
.dp-road-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: clamp(15px, 1.1vw, 20px);
}
.dp-road-card__date {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-bold);
  font-size: clamp(12px, .9vw, 16px);
  font-weight: 700;
  white-space: nowrap;
}
.dp-road-card__date svg {
  width: clamp(20px, 1.4vw, 25px);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dp-road-card__status {
  flex: none;
  padding: 6px 11px 5px;
  border-radius: 999px;
  font-size: clamp(8px, .55vw, 10px);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
.dp-road-card__status.is-ongoing { background: #ff3845; color: #fff; }
.dp-road-card__status.is-completed { background: #7b7d80; color: #fff; }
.dp-road-card__cities { display: grid; gap: clamp(16px, 1.2vw, 22px); padding-top: clamp(22px, 1.7vw, 31px); }
.dp-road-city { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(12px, 1vw, 18px); }
.dp-road-city__pin {
  display: grid;
  width: clamp(38px, 2.65vw, 48px);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background: #55575d;
}
.dp-road-city__pin svg { width: 57%; fill: none; stroke: #fff; stroke-width: 1.5; }
.dp-road-city h4 { font-family: var(--font-bold); font-size: clamp(14px, 1.05vw, 19px); line-height: 1.15; }
.dp-road-city p { margin-top: 4px; color: rgba(255,255,255,.78); font-size: clamp(11px, .76vw, 14px); line-height: 1.3; }
.dp-road-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-height: 38px;
  margin-top: auto;
  padding: 0 21px;
  border-radius: 999px;
  font-size: clamp(11px, .78vw, 14px);
  font-weight: 700;
  transition: transform .15s var(--ease), filter .15s;
}
.dp-road-card__btn:hover { transform: translateY(-1px); filter: brightness(1.06); }
.dp-road-card__btn--lime { background: linear-gradient(180deg, #c3df54, #8cab28); color: #151515; }
.dp-road-card__btn--white { background: #fff; color: #1a1a1a; }
.dp-road-card__btn--disabled{cursor:not-allowed;background:#696b70;color:#d6d6d6;box-shadow:none;opacity:.8}
.dp-road-card__btn--disabled:hover{transform:none;filter:none}

/* Diaspora student support */
.dp-students {
  position: relative;
  min-height: clamp(620px, 49vw, 880px);
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(0,0,0,.70), rgba(0,0,0,.56)),
    url('/assets/img/diaspora-students-bg.jpg') center 42% / cover no-repeat;
}
.dp-students::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.09), rgba(0,0,0,.18));
  pointer-events: none;
}
.dp-students__inner {
  position: relative;
  z-index: 1;
  padding-block: clamp(86px, 7.1vw, 128px);
  text-align: center;
}
.dp-students__copy { max-width: 980px; margin-inline: auto; }
.dp-students__title {
  max-width: 860px;
  margin-inline: auto;
  font-size: clamp(66px, 5.55vw, 102px);
  line-height: .85;
}
.dp-students__title span { display: block; color: #f08358; }
.dp-students__lead,
.dp-students__sub {
  max-width: 920px;
  margin-inline: auto;
  color: rgba(255,255,255,.94);
  font-size: clamp(13px, .9vw, 16px);
  line-height: 1.48;
}
.dp-students__lead { margin-top: clamp(22px, 1.75vw, 31px); }
.dp-students__sub { margin-top: 7px; }
.dp-students__programs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 1.4vw, 25px);
  margin-top: clamp(42px, 3.3vw, 58px);
}
.dp-student-card {
  min-height: clamp(140px, 11vw, 195px);
  padding: clamp(24px, 1.9vw, 34px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: clamp(12px, .9vw, 16px);
  background: rgba(23,23,23,.68);
  box-shadow: 0 18px 38px rgba(0,0,0,.14);
  text-align: left;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.dp-student-card h3 { font-size: clamp(34px, 2.6vw, 48px); line-height: .92; }
.dp-student-card p { max-width: 95%; margin-top: clamp(12px, .9vw, 16px); font-size: clamp(12px, .82vw, 15px); line-height: 1.5; }
.dp-students__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-top: clamp(35px, 2.8vw, 50px);
  padding: 0 25px;
  border-radius: 999px;
  background: #fff;
  color: #1c1c1c;
  font-size: clamp(11px, .78vw, 14px);
  font-weight: 700;
  transition: transform .15s var(--ease), background .15s;
}
.dp-students__btn:hover { transform: translateY(-1px); background: #f0f0f0; }

@media (max-width: 959px) {
  .dp-roadshows__cards { gap: 14px; }
  .dp-road-card { padding: 20px; }
  .dp-road-card__country h3 { font-size: clamp(26px, 3vw, 34px); }
  .dp-road-card__status { padding-inline: 8px; }
  .dp-students__copy { max-width: 82vw; }
}

@media (max-width: 720px) {
  .dp-roadshows { padding: 18vw 0 15vw; }
  .dp-roadshows__title { max-width: 84vw; font-size: 13.9vw; line-height: .87; }
  .dp-roadshows__title span { font-size: .9em; }
  .dp-roadshows__lead { max-width: 90vw; margin-top: 5vw; font-size: 12.3px; line-height: 1.48; }
  .dp-roadshows__cards {
    display: flex;
    gap: 3.5vw;
    margin: 9vw calc(-1 * var(--pad)) 0;
    padding: 0 var(--pad) 2vw;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .dp-roadshows__cards::-webkit-scrollbar { display: none; }
  .dp-road-card {
    flex: 0 0 79vw;
    min-height: 91vw;
    padding: 5vw;
    border-radius: 4vw;
    scroll-snap-align: start;
  }
  .dp-road-card__country { gap: 2.7vw; }
  .dp-road-card__flag { width: 8vw; font-size: 5vw; }
  .dp-road-card__country h3 { font-size: 8.7vw; }
  .dp-road-card__meta { margin-top: 4vw; }
  .dp-road-card__date { gap: 2vw; font-size: 3.4vw; }
  .dp-road-card__date svg { width: 5.5vw; }
  .dp-road-card__status { padding: 1.4vw 2.3vw 1.25vw; font-size: 2vw; }
  .dp-road-card__cities { gap: 4vw; padding-top: 5vw; }
  .dp-road-city { gap: 3.2vw; }
  .dp-road-city__pin { width: 10vw; }
  .dp-road-city h4 { font-size: 3.75vw; }
  .dp-road-city p { margin-top: 1vw; font-size: 2.65vw; }
  .dp-road-card__btn { min-height: 9vw; padding-inline: 5vw; font-size: 2.8vw; }

  .dp-students {
    min-height: 174vw;
    background-position: 58% center;
  }
  .dp-students__inner { padding-block: 16vw 13vw; }
  .dp-students__copy { max-width: 90vw; }
  .dp-students__title { max-width: 82vw; font-size: 13.3vw; line-height: .86; }
  .dp-students__lead,
  .dp-students__sub { max-width: 88vw; font-size: 11px; line-height: 1.45; }
  .dp-students__lead { margin-top: 5vw; }
  .dp-students__sub { margin-top: 2.3vw; }
  .dp-students__programs { grid-template-columns: 1fr; gap: 3vw; margin-top: 8vw; }
  .dp-student-card { min-height: 0; padding: 5vw; border-radius: 3.5vw; }
  .dp-student-card h3 { font-size: 7.6vw; }
  .dp-student-card p { max-width: none; margin-top: 3vw; font-size: 10.5px; }
  .dp-students__btn { min-height: 9.5vw; margin-top: 7vw; padding-inline: 6vw; font-size: 2.8vw; }
}

/* Diaspora Family Table */
.dp-family {
  position: relative;
  overflow: hidden;
  padding: clamp(110px, 9.2vw, 168px) 0 clamp(120px, 9.8vw, 178px);
  background:
    radial-gradient(circle at 78% 32%, rgba(255,255,255,.035), transparent 27%),
    radial-gradient(circle at 24% 72%, rgba(255,255,255,.025), transparent 28%),
    #1d1f20;
}
.dp-family::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .18;
  background:
    linear-gradient(30deg, transparent 24%, rgba(255,255,255,.025) 25%, rgba(255,255,255,.025) 26%, transparent 27%, transparent 74%, rgba(255,255,255,.022) 75%, rgba(255,255,255,.022) 76%, transparent 77%),
    linear-gradient(-30deg, transparent 24%, rgba(255,255,255,.022) 25%, rgba(255,255,255,.022) 26%, transparent 27%, transparent 74%, rgba(255,255,255,.018) 75%, rgba(255,255,255,.018) 76%, transparent 77%);
  background-size: 72px 124px;
  pointer-events: none;
}
.dp-family__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(440px, 1.02fr);
  align-items: center;
  gap: clamp(56px, 6.2vw, 112px);
}
.dp-section-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 13px;
  border: 1px solid rgba(184,210,55,.38);
  border-radius: 999px;
  color: #b8d237;
  font-family: var(--font-ui);
  font-size: clamp(9px, .62vw, 11px);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
.dp-family__title {
  max-width: 650px;
  margin-top: clamp(20px, 1.6vw, 29px);
  font-size: clamp(69px, 5.45vw, 100px);
  line-height: .86;
}
.dp-family__title span { display: block; color: #f33d32; }
.dp-family__lead {
  max-width: 650px;
  margin-top: clamp(25px, 2vw, 36px);
  color: rgba(255,255,255,.9);
  font-size: clamp(13px, .9vw, 16px);
  line-height: 1.58;
}
.dp-family__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin-top: clamp(38px, 3.1vw, 56px);
  padding: 0 23px;
  border-radius: 999px;
  background: linear-gradient(180deg, #c8e34d, #8baa1b);
  color: #101010;
  box-shadow: inset 0 1px rgba(255,255,255,.35), 0 10px 24px rgba(0,0,0,.12);
  font-size: clamp(11px, .78vw, 14px);
  font-weight: 700;
  transition: transform .15s var(--ease), filter .15s;
}
.dp-family__btn:hover { transform: translateY(-1px); filter: brightness(1.05); }
.dp-family__collage {
  position: relative;
  min-height: clamp(410px, 34vw, 610px);
}
.dp-family__photo {
  position: absolute;
  overflow: hidden;
  border-radius: clamp(16px, 1.3vw, 23px);
  background: #303030;
  box-shadow: 0 26px 55px rgba(0,0,0,.2);
}
.dp-family__photo img { width: 100%; height: 100%; object-fit: cover; }
.dp-family__photo--1 {
  left: 3%;
  top: 4%;
  width: 57%;
  height: 72%;
  z-index: 2;
  transform: rotate(-2.5deg);
}
.dp-family__photo--2 {
  right: 2%;
  top: 15%;
  width: 58%;
  height: 72%;
  z-index: 1;
  transform: rotate(2.5deg);
}

/* Diaspora movement / support directory */
.dp-movement {
  position: relative;
  overflow: hidden;
  padding: clamp(110px, 8.8vw, 160px) 0 clamp(118px, 9.5vw, 172px);
  background: #0f0e0e;
}
.dp-movement__inner { position: relative; z-index: 1; }
.dp-movement__title {
  max-width: 820px;
  margin-inline: auto;
  text-align: center;
  font-size: clamp(72px, 5.65vw, 104px);
  line-height: .86;
}
.dp-movement__title span { display: block; color: #b6db2e; }
.dp-movement__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.45vw, 26px);
  margin-top: clamp(62px, 5.2vw, 94px);
}
.dp-movement-card {
  display: flex;
  min-height: clamp(245px, 18.2vw, 330px);
  flex-direction: column;
  padding: clamp(27px, 2vw, 36px);
  border: 1px solid rgba(255,255,255,.025);
  border-radius: clamp(14px, 1vw, 18px);
  background: #1d1d1d;
  transition: transform .18s var(--ease), background .18s;
}
.dp-movement-card:hover { transform: translateY(-3px); background: #222; }
.dp-movement-card__icon {
  display: grid;
  width: clamp(42px, 3vw, 54px);
  aspect-ratio: 1;
  place-items: center;
  margin-bottom: clamp(20px, 1.45vw, 26px);
}
.dp-movement-card__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linejoin: round; }
.dp-movement-card__icon--orange { color: #f26b3d; }
.dp-movement-card__icon--lime { color: #9ed019; }
.dp-movement-card__icon--red { color: #ef3226; }
.dp-movement-card__icon--purple { color: #8d35e7; }
.dp-movement-card h3 {
  font-family: var(--font-bold);
  font-size: clamp(20px, 1.45vw, 26px);
  font-weight: 700;
  line-height: 1.14;
}
.dp-movement-card p {
  max-width: 92%;
  margin-top: clamp(13px, .95vw, 17px);
  color: rgba(255,255,255,.7);
  font-size: clamp(11px, .76vw, 14px);
  line-height: 1.48;
}
.dp-movement-card__link,
.dp-firstbank-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding-top: clamp(22px, 1.8vw, 32px);
  color: #fff;
  font-size: clamp(10px, .72vw, 13px);
  font-weight: 700;
}
.dp-firstbank-card {
  position: relative;
  display: flex;
  min-height: clamp(245px, 18.2vw, 330px);
  grid-column: span 2;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(27px, 2vw, 36px);
  border-radius: clamp(14px, 1vw, 18px);
  background: #fff;
  color: #111;
  isolation: isolate;
}
.dp-firstbank-card::before,
.dp-firstbank-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 390px;
  height: 390px;
  border: 26px solid rgba(85,126,157,.15);
  border-radius: 43% 57% 48% 52% / 50% 42% 58% 50%;
  transform: rotate(28deg);
}
.dp-firstbank-card::before { right: -110px; top: -165px; }
.dp-firstbank-card::after { right: 145px; bottom: -300px; transform: rotate(-18deg); }
.dp-firstbank-card__brand { display: flex; align-items: center; gap: 8px; color: #174878; }
.dp-firstbank-card__wordmark { font-family: Georgia, serif; font-size: clamp(22px, 1.7vw, 31px); font-style: italic; font-weight: 700; }
.dp-firstbank-card__mark { display: grid; width: clamp(29px, 2vw, 36px); aspect-ratio: 1; place-items: center; border-radius: 6px; background: #f2d54b; color: #174878; font-size: .9em; }
.dp-firstbank-card__body { margin-top: auto; padding-top: clamp(25px, 2vw, 36px); }
.dp-firstbank-card h3 { font-family: var(--font-bold); font-size: clamp(29px, 2.25vw, 41px); line-height: 1.03; }
.dp-firstbank-card p { max-width: 720px; margin-top: 10px; color: #333; font-size: clamp(10px, .74vw, 13.5px); line-height: 1.45; }
.dp-firstbank-card__link { color: #111; padding-top: 17px; }

@media (max-width: 959px) {
  .dp-family__grid { grid-template-columns: minmax(0, .9fr) minmax(380px, 1.1fr); gap: 35px; }
  .dp-movement__grid { gap: 14px; }
  .dp-movement-card, .dp-firstbank-card { padding: 24px; }
}

@media (max-width: 720px) {
  .dp-family { padding: 20vw 0 19vw; }
  .dp-family__grid { grid-template-columns: 1fr; gap: 10vw; }
  .dp-section-kicker { min-height: 6vw; padding-inline: 3vw; font-size: 2vw; }
  .dp-family__title { max-width: 86vw; margin-top: 5vw; font-size: 13.6vw; line-height: .87; }
  .dp-family__lead { max-width: 88vw; margin-top: 5vw; font-size: 11px; line-height: 1.5; }
  .dp-family__btn { min-height: 9.5vw; margin-top: 8vw; padding-inline: 6vw; font-size: 2.8vw; }
  .dp-family__collage { width: 92vw; min-height: 74vw; margin-inline: auto; }
  .dp-family__photo { border-radius: 3.5vw; }
  .dp-family__photo--1 { left: 0; top: 0; width: 57%; height: 79%; }
  .dp-family__photo--2 { right: 0; top: 12%; width: 58%; height: 79%; }

  .dp-movement { padding: 18vw 0 20vw; }
  .dp-movement__title { max-width: 82vw; font-size: 13vw; line-height: .86; }
  .dp-movement__grid { grid-template-columns: 1fr; gap: 3vw; margin-top: 10vw; }
  .dp-movement-card, .dp-firstbank-card { min-height: 51vw; padding: 5vw; border-radius: 3.5vw; }
  .dp-movement-card__icon { width: 9vw; margin-bottom: 4.5vw; }
  .dp-movement-card h3 { font-size: 5.2vw; }
  .dp-movement-card p { max-width: 92%; margin-top: 3vw; font-size: 2.55vw; }
  .dp-movement-card__link, .dp-firstbank-card__link { padding-top: 5vw; font-size: 2.45vw; }
  .dp-firstbank-card { grid-column: auto; min-height: 72vw; }
  .dp-firstbank-card__wordmark { font-size: 6vw; }
  .dp-firstbank-card__mark { width: 7vw; }
  .dp-firstbank-card h3 { font-size: 7.5vw; }
  .dp-firstbank-card p { max-width: 90%; margin-top: 2.5vw; font-size: 2.45vw; }
}

/* Diaspora Programs: FirstBank partner card image treatment */
.dp-firstbank-card {
  background-color: #fff;
  background-image: url("../img/path-firstbank-bg.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.dp-firstbank-card::before,
.dp-firstbank-card::after { display: none; }
.dp-firstbank-card__logo {
  position: relative;
  z-index: 1;
  display: block;
  width: clamp(105px, 9vw, 165px);
  height: auto;
  object-fit: contain;
  object-position: left center;
}

/* Diaspora Programs: community stories / social proof */
.dp-stories {
  position: relative;
  overflow: hidden;
  background: #0c0b0b;
  color: #fff;
  padding: clamp(96px, 9vw, 165px) 0 clamp(120px, 12vw, 220px);
}
.dp-stories::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: clamp(80px, 8vw, 150px);
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(12,11,11,0), #0c0b0b 84%);
}
.dp-stories__inner { position: relative; z-index: 1; }
.dp-stories__title {
  max-width: 630px;
  margin: 0 auto clamp(56px, 5.6vw, 102px);
  text-align: center;
  font-size: clamp(66px, 6.4vw, 116px);
  line-height: .86;
}
.dp-stories__grid {
  width: min(78vw, 1220px);
  margin-inline: auto;
  columns: 3;
  column-gap: clamp(14px, 1.25vw, 22px);
}
.dp-story-card {
  position: relative;
  display: inline-block;
  width: 100%;
  min-height: 330px;
  margin: 0 0 clamp(14px, 1.25vw, 22px);
  overflow: hidden;
  break-inside: avoid;
  border-radius: clamp(13px, 1vw, 18px);
  background: #1c1b1b;
  vertical-align: top;
}
.dp-story-card--1 { aspect-ratio: .78; }
.dp-story-card--2 { aspect-ratio: 1.08; }
.dp-story-card--3 { aspect-ratio: .78; }
.dp-story-card--4 { aspect-ratio: 1.02; }
.dp-story-card--5 { aspect-ratio: .69; }
.dp-story-card--6 { aspect-ratio: 1.06; }
.dp-story-card__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}
.dp-story-card:hover .dp-story-card__image { transform: scale(1.025); }
.dp-story-card__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.02) 34%, rgba(0,0,0,.24) 59%, rgba(0,0,0,.88) 100%);
}
.dp-story-card__content {
  position: absolute;
  z-index: 2;
  left: clamp(16px, 1.4vw, 24px);
  right: clamp(16px, 1.4vw, 24px);
  bottom: clamp(16px, 1.35vw, 23px);
}
.dp-story-card__meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
}
.dp-story-card__avatar {
  display: grid;
  width: clamp(25px, 1.8vw, 32px);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 50%;
  background: linear-gradient(135deg, #8b36e8, #ef7750);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}
.dp-story-card__name {
  font-size: clamp(12px, .85vw, 15px);
  font-weight: 700;
}
.dp-story-card__social {
  display: grid;
  width: 21px;
  height: 21px;
  margin-left: auto;
  place-items: center;
  color: #fff;
}
.dp-story-card__social svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; }
.dp-story-card__social .fill { fill: currentColor; stroke: none; }
.dp-story-card__content p {
  max-width: 95%;
  color: #fff;
  font-size: clamp(11px, .76vw, 13.5px);
  line-height: 1.42;
}
.dp-story-card__city {
  display: inline-block;
  margin-top: 7px;
  color: rgba(255,255,255,.62);
  font-size: clamp(9px, .62vw, 11px);
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}

@media (max-width: 959px) {
  .dp-stories__grid { width: 86vw; columns: 2; }
}

@media (max-width: 720px) {
  .dp-firstbank-card__logo { width: 31vw; max-width: 142px; }

  .dp-stories { padding: 21vw 0 27vw; }
  .dp-stories__title {
    max-width: 78vw;
    margin-bottom: 14vw;
    font-size: 13.6vw;
    line-height: .86;
  }
  .dp-stories__grid {
    width: 88vw;
    columns: 1;
    column-gap: 0;
  }
  .dp-story-card {
    min-height: 0;
    margin-bottom: 4vw;
    border-radius: 3.5vw;
  }
  .dp-story-card--1,
  .dp-story-card--3,
  .dp-story-card--5 { aspect-ratio: .76; }
  .dp-story-card--2,
  .dp-story-card--4,
  .dp-story-card--6 { aspect-ratio: .92; }
  .dp-story-card__content { left: 4.5vw; right: 4.5vw; bottom: 4.5vw; }
  .dp-story-card__meta { gap: 2.2vw; margin-bottom: 2.7vw; }
  .dp-story-card__avatar { width: 7vw; max-width: 31px; font-size: 2.5vw; }
  .dp-story-card__name { font-size: 3.35vw; }
  .dp-story-card__social { width: 5.5vw; height: 5.5vw; max-width: 24px; max-height: 24px; }
  .dp-story-card__content p { max-width: 92%; font-size: 3vw; line-height: 1.43; }
  .dp-story-card__city { margin-top: 2vw; font-size: 2.25vw; }

  .page-diaspora .faq { padding-top: 12vw; }
}

/* Final viewport guard: later diaspora component rules must not make the hero overflow. */
main > .dp-hero { height:var(--hero-viewport); min-height:0; }
@media (max-width:720px) {
  main > .dp-hero { height:var(--hero-viewport); min-height:0; }
  .dp-hero__inner { min-height:100%; padding-top:clamp(52px,9svh,76px); padding-bottom:clamp(70px,11svh,90px); }
  .dp-hero__title { max-width:10ch; font-size:clamp(44px,12.5vw,60px); }
  .dp-hero__lead { margin-top:14px; font-size:12px; line-height:1.34; }
  .dp-hero__cta { margin-top:18px; }
  .dp-hero__controls { bottom:24px; }
}
@media (max-width:720px) and (max-height:680px) {
  .dp-hero__title { font-size:clamp(42px,12vw,56px); }
  .dp-hero__lead { max-width:92vw; font-size:11px; }
}
