/* ==========================================================================
   EVO Admissions — site styles
   Layers on top of the EVO Admissions design system (_ds/…/styles.css).
   Page-level display/body font is Archivo + Montserrat (from Google Fonts),
   overriding the design system's --font-display (TT Travels Next is a trial
   font and not loaded here) — same choice the source design made.
   ========================================================================== */

:root{
  --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --ink-bg: #0A0C11;
}

html{scroll-behavior:smooth}
body{font-family:var(--font-body)}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}

/* The nav is a fixed pill (top:24px, 70px tall) floating over the page, so
   any anchor jump (#services, skip-link, etc.) needs this much clearance or
   the target's heading lands hidden underneath it. */
section, header, main, #match-quiz{scroll-margin-top:112px}

.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--brand);color:#fff;padding:12px 20px;border-radius:0 0 8px 0;font:var(--type-label)}
.skip-link:focus{left:0}

/* ── Placeholder tiles (stand in for imagery not yet supplied) ─────────── */
.ph{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;isolation:isolate}
.ph::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 16px)}
.ph__label{position:relative;z-index:1;display:block;max-width:26ch;padding:0 20px;font-family:var(--font-display);font-weight:600;font-size:11px;line-height:1.5;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.ph__label small{display:block;margin-top:4px;font-weight:400;font-size:10px;letter-spacing:.02em;text-transform:none;color:rgba(255,255,255,.24)}
.ph--dark{background:radial-gradient(120% 140% at 30% 20%, #171a22 0%, #0A0C11 70%)}
.ph--card{position:absolute;inset:0;background:linear-gradient(155deg, var(--ink-100), var(--ink-50))}
.ph--card .ph__label{color:var(--ink-500)}
.ph--card .ph__label small{color:var(--ink-400)}
.ph--card::before{background-image:repeating-linear-gradient(135deg, rgba(29,29,27,.035) 0 2px, transparent 2px 16px)}
.ph--avatar{width:52px;height:52px;flex:none;border-radius:999px;background:linear-gradient(155deg, var(--ink-200), var(--ink-100))}
.ph--avatar-sm{width:44px;height:44px}
.ph--avatar::before{background-image:none}

/* ── Real assets (progressive enhancement) ──────────────────────────────
   [data-asset-slot] elements start out as .ph placeholders. js/main.js
   probes each data-asset-src; the moment the file actually exists on disk
   (drop it into assets/… and reload — no code changes needed) a real <img>
   is appended on top and the placeholder chrome is switched off. Until
   then this block of CSS never fires, so nothing here is visible yet. */
.ph.has-asset .ph__label{display:none}
.ph.has-asset::before{display:none}
.hero__pattern.has-asset{background-image:none}
.asset-img{display:block}
.asset-img--hero-bg,.asset-img--about-bg,.asset-img--cta-bg{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:cover}
.asset-img--hero-bg{object-position:60% 68%;filter:saturate(1.05) brightness(.92)}
.asset-img--about-bg{object-position:64% 38%}
.asset-img--cta-bg{object-position:30% 70%;opacity:.5;filter:saturate(1.05) brightness(.7)}
.asset-img--pattern{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:top right}
.asset-img--figure{position:absolute;z-index:2;right:-3%;bottom:-7%;height:min(88vh,1050px);width:auto;max-width:none;object-fit:contain;object-position:bottom right;filter:drop-shadow(0 30px 60px rgba(0,0,0,.55)) contrast(1.03) brightness(1.04)}
.asset-img--logo{display:block;height:34px;width:auto}
.asset-img--logo-footer{display:block;height:30px;width:auto}
.nav__brand-slot{display:inline-flex;align-items:center;gap:10px}

/* ── Nav ─────────────────────────────────────────────────────────────── */
.nav{position:fixed;top:24px;left:50%;transform:translateX(-50%);z-index:80;width:min(82vw,1240px);box-sizing:border-box;height:70px;display:flex;align-items:center;gap:clamp(14px,1.8vw,34px);padding:0 12px 0 26px;border-radius:999px;background:rgba(10,12,17,.62);backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 44px -18px rgba(0,0,0,.7);opacity:0;animation:evoNavIn 620ms var(--ease-out, cubic-bezier(.2,.7,.3,1)) 60ms both}
.nav__brand{display:flex;align-items:center;gap:10px;flex:0 0 auto;border:none;text-decoration:none}
.nav__mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;background:var(--brand);color:#fff;font-family:var(--font-display);font-weight:800;font-size:13px;letter-spacing:-.02em}
.nav__wordmark{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.16em;color:#fff;white-space:nowrap}
.nav__links{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px);flex:1 1 0;min-width:0;overflow:hidden;justify-content:center;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%)}
.nav__links a{flex:0 0 auto;white-space:nowrap;border:none;font-family:var(--font-display);font-weight:600;font-size:clamp(15px,1.05vw,17px);letter-spacing:-.005em;color:rgba(255,255,255,.86);transition:color 150ms cubic-bezier(.2,.7,.3,1)}
.nav__links a:hover{color:#fff}
.nav__cta{flex:0 0 auto}
.nav__burger{display:none;flex:0 0 auto;width:40px;height:40px;border:0;border-radius:999px;background:rgba(255,255,255,.1);cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.nav__burger span{display:block;width:16px;height:2px;background:#fff;border-radius:2px}

.mobile-menu{position:fixed;inset:0;z-index:90;background:var(--ink-bg);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:28px;padding:0 clamp(24px,8vw,64px)}
.mobile-menu a{border:none;font-family:var(--font-display);font-weight:700;font-size:clamp(28px,7vw,40px);color:#fff;letter-spacing:-.01em}
.mobile-menu .evo-btn{margin-top:12px}

@keyframes evoNavIn{from{opacity:0;transform:translate(-50%,-14px)}to{opacity:1;transform:translate(-50%,0)}}

/* ── Hero ────────────────────────────────────────────────────────────── */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;min-height:100svh;background:var(--ink-bg);font-family:var(--font-body);color:rgba(255,255,255,.72)}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none}
/* Front-loaded into a narrower left band so it clears the subjects (who sit
   ~55-70% across the frame) well before that point — the old stops kept
   .78→.34 opacity all the way out to 68%, which sat right on top of them. */
.hero__scrim--x{background:linear-gradient(96deg,rgba(10,12,17,.97) 0%,rgba(10,12,17,.88) 16%,rgba(10,12,17,.5) 30%,rgba(10,12,17,.16) 42%,rgba(10,12,17,.03) 55%,rgba(10,12,17,0) 100%)}
.hero__scrim--y-top{background:linear-gradient(180deg,rgba(10,12,17,.55) 0%,rgba(10,12,17,.08) 22%,rgba(10,12,17,0) 36%)}
.hero__scrim--y-bottom{background:linear-gradient(0deg,rgba(10,12,17,.88) 0%,rgba(10,12,17,.28) 22%,rgba(10,12,17,0) 46%)}
.hero__glow{position:absolute;z-index:1;pointer-events:none;border-radius:50%;filter:blur(20px);background:radial-gradient(circle at center, rgba(255,255,255,.15) 0%, rgba(255,255,255,.05) 40%, rgba(255,255,255,0) 68%)}
.hero__glow--1{left:-6vw;top:-18vh;width:44vw;height:44vw}
.hero__glow--2{right:6vw;bottom:-22vh;width:40vw;height:40vw}
.hero__glow--3{left:30vw;top:-24vh;width:34vw;height:34vw}
.hero__glow--4{right:-6vw;top:14vh;width:38vw;height:38vw}
.hero__glow--5{left:14vw;bottom:-18vh;width:32vw;height:32vw}
.hero__glow--brand{background:radial-gradient(circle at center, rgba(215,2,23,.3) 0%, rgba(215,2,23,.1) 40%, rgba(215,2,23,0) 68%)}
.hero__glow--6{left:-16vw;bottom:-28vh;width:56vw;height:56vw}
.hero__pattern{position:absolute;top:-4vw;right:-3vw;width:min(22vw,340px);aspect-ratio:1;z-index:2;pointer-events:none;opacity:.14;background-image:repeating-linear-gradient(60deg, var(--red-500) 0 3px, transparent 3px 22px),repeating-linear-gradient(-60deg, var(--red-500) 0 3px, transparent 3px 22px);-webkit-mask-image:radial-gradient(circle at top right, #000 0%, transparent 72%);mask-image:radial-gradient(circle at top right, #000 0%, transparent 72%)}

.hero__inner{position:relative;z-index:10;box-sizing:border-box;max-width:1760px;margin:0 auto;padding:clamp(108px,12vh,148px) clamp(24px,4.5vw,80px) clamp(36px,5vh,64px);min-height:100vh;min-height:100svh;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));align-items:center;gap:clamp(24px,2.4vw,48px)}
.hero__copy{position:relative;z-index:5;display:flex;flex-direction:column;align-items:flex-start;max-width:880px}
.hero__title{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(44px,min(6.1vw,10.6vh),116px);line-height:.98;letter-spacing:-.032em;color:#fff}
.hero__line-wrap{display:block;overflow:hidden;padding-bottom:.04em}
.hero__line{display:block;opacity:0;animation:evoLineUp 760ms cubic-bezier(.2,.7,.3,1) 180ms both}
.hero__lede{margin:clamp(26px,3vh,38px) 0 0;max-width:620px;font-weight:400;font-size:clamp(17px,1.32vw,22px);line-height:1.55;color:rgba(255,255,255,.7);opacity:0;animation:evoUp 640ms cubic-bezier(.2,.7,.3,1) 620ms both}
.hero__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:clamp(32px,3.8vh,46px);opacity:0;animation:evoUp 640ms cubic-bezier(.2,.7,.3,1) 760ms both}
.hero__stats{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(18px,2.2vw,38px);margin:clamp(44px,5vh,64px) 0 0;padding-top:clamp(22px,2.4vh,30px);border-top:1px solid rgba(255,255,255,.16);width:100%;max-width:min(760px,100%);opacity:0;animation:evoUp 640ms cubic-bezier(.2,.7,.3,1) 900ms both}
.hero__stats > div{display:flex;flex-direction:column;gap:4px;flex:0 0 auto;position:relative}
.hero__stats > div:not(:first-child){padding-left:clamp(18px,2.2vw,38px)}
.hero__stats > div:not(:first-child)::before{content:"";position:absolute;left:0;top:0;width:1px;height:44px;background:rgba(255,255,255,.18)}
.hero__stats dt{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(24px,2.1vw,34px);line-height:1;letter-spacing:-.02em;white-space:nowrap;color:#fff}
.hero__stats dd{margin:0;font-weight:400;font-size:clamp(13px,1.05vw,16px);line-height:1.3;white-space:nowrap;color:rgba(255,255,255,.6)}
@media (max-width:640px){
  /* The single-line layout above (flex-wrap:nowrap + white-space:nowrap on
     every label) runs wider than a phone screen once all three stats are
     present — wrap into a 2-column grid instead so nothing gets clipped. */
  .hero__stats{display:grid;grid-template-columns:1fr 1fr;row-gap:22px;column-gap:clamp(18px,6vw,38px)}
  .hero__stats > div:not(:first-child){padding-left:clamp(18px,6vw,38px)}
  .hero__stats > div:nth-child(2n+1):not(:first-child)::before{display:none}
  .hero__stats dt,.hero__stats dd{white-space:normal}
}

.hero__figure{position:relative;z-index:1;min-height:min(70vh,660px);align-self:stretch}
.hero__figure-glow{position:absolute;right:0;bottom:-3%;width:82%;padding-bottom:82%;z-index:0;pointer-events:none;filter:blur(10px);background:radial-gradient(circle at center, rgba(255,255,255,.16) 0%, rgba(215,2,23,.14) 38%, rgba(10,12,17,0) 70%)}
.hero__figure-ph{position:absolute;z-index:2;right:2%;bottom:2%;left:14%;top:8%;border-radius:28px;opacity:0;animation:evoRise 900ms cubic-bezier(.2,.7,.3,1) 260ms both}
.hero__figure-ph .ph__label{color:rgba(255,255,255,.42)}
.hero__figure-ph .ph__label small{color:rgba(255,255,255,.26)}

@keyframes evoLineUp{from{opacity:0;transform:translateY(112%)}to{opacity:1;transform:translateY(0)}}
@keyframes evoUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes evoRise{from{opacity:0;transform:translateY(26px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (prefers-reduced-motion: reduce){
  .hero__line,.hero__lede,.hero__ctas,.hero__stats,.hero__figure-ph{animation:none !important;opacity:1 !important;transform:none !important}
  .nav{animation:none!important;opacity:1!important;transform:translateX(-50%)!important}
}

/* ── Section shell ───────────────────────────────────────────────────── */
.section{position:relative;overflow:hidden;background:#fff;padding:clamp(88px,10vh,128px) clamp(24px,4vw,64px)}
.section--alt{background:var(--ink-50)}
.section--brand{background:linear-gradient(135deg,var(--red-700),var(--red-600))}
.section--dark{background:var(--ink-bg)}
.section--dark-photo{background:var(--ink-bg)}
.section--tight{padding:clamp(64px,8vh,96px) clamp(24px,4vw,64px)}
/* position:sticky breaks under ANY ancestor with overflow other than
   visible — including this section's own overflow:hidden (used elsewhere
   to clip the glow blobs below). A section hosting a sticky pin-scroll
   effect needs overflow:visible instead; its own glows move into
   .section__glow-clip, a small absolutely-positioned wrapper that does
   the clipping locally so the rest of the section stays unclipped. */
.section--sticky-host{overflow:visible}
.section__glow-clip{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.section__inner{position:relative;z-index:1;max-width:1440px;margin:0 auto;transition:opacity 700ms cubic-bezier(.2,.7,.3,1),transform 700ms cubic-bezier(.2,.7,.3,1)}
.section__inner--narrow{max-width:820px}
.section--globe{padding:0}
.section__inner--globe{max-width:none;width:100%}
.globe-embed{display:block;width:100%;height:92vh;min-height:400px;border:0;background:var(--ink-bg)}
[data-reveal] .section__inner{opacity:0;transform:translateY(28px)}
[data-reveal].is-revealed .section__inner{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion: reduce){
  [data-reveal] .section__inner{opacity:1;transform:none}
}
.section__glow{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(20px);background:radial-gradient(circle at center, rgba(215,2,23,.1) 0%, rgba(215,2,23,.03) 42%, rgba(215,2,23,0) 70%)}
.section__glow--light{background:radial-gradient(circle at center, rgba(255,255,255,.15) 0%, rgba(255,255,255,.05) 42%, rgba(255,255,255,0) 70%)}
.section__glow--bold{mix-blend-mode:screen;background:radial-gradient(circle at center, rgba(255,32,52,.28) 0%, rgba(215,2,23,.12) 40%, rgba(215,2,23,0) 72%)}
.section__glow--a{left:-9vw;top:-15vh;width:36vw;height:36vw}
.section__glow--b{right:-9vw;bottom:-15vh;width:34vw;height:34vw}
.section__glow--c{left:50%;top:50%;width:30vw;height:30vw;transform:translate(-50%,-50%)}
.section__photo{position:absolute;inset:0;z-index:0}
.section__photo-scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,#0A0C11 0%,#0A0C11 34%,rgba(10,12,17,.5) 46%,rgba(10,12,17,0) 58%)}
.section__photo-scrim--cta{background:linear-gradient(180deg,rgba(10,12,17,.75) 0%,rgba(10,12,17,.92) 60%,rgba(10,12,17,.98) 100%)}

.eyebrow{display:block;margin:0 0 14px;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-500)}
.eyebrow--inverse{color:rgba(255,255,255,.85)}
.section__head{max-width:640px;margin:0 0 56px}
.section h2{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(32px,3.6vw,56px);line-height:1.05;letter-spacing:-.02em;color:var(--ink-900)}
.h--inverse{color:#fff}
.section h2.h--inverse{color:#fff}
.section__sub{margin:18px 0 0;font-weight:400;font-size:clamp(16px,1.1vw,19px);line-height:1.6;color:var(--ink-600)}
.section__sub--inverse{color:rgba(255,255,255,.82)}

/* ── Destinations bento grid ─────────────────────────────────────────── */
.dest-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,minmax(150px,auto));gap:20px}
.dest-card{position:relative;display:block;border-radius:24px;overflow:hidden;background:var(--ink-100);text-decoration:none;border:none;transition:transform 320ms cubic-bezier(.2,.7,.3,1),box-shadow 320ms cubic-bezier(.2,.7,.3,1)}
.dest-card:hover{transform:translateY(-6px);box-shadow:0 28px 54px -22px rgba(29,29,27,.32)}
.dest-card:hover .dest-card__img{transform:scale(1.06)}
.dest-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 700ms cubic-bezier(.2,.7,.3,1)}
.dest-card--germany{grid-area:1/1/3/3}
.dest-card--uk{grid-area:1/3/2/5;border-radius:20px}
.dest-card--italy{grid-area:2/3/3/4;border-radius:20px}
.dest-card--netherlands{grid-area:2/4/3/5;border-radius:20px}
.dest-card--france{grid-area:3/1/5/2}
.dest-card--usa{grid-area:3/2/5/4}
.dest-card--canada{grid-area:3/4/4/5;border-radius:20px}
.dest-card--poland{grid-area:4/4/5/5;border-radius:20px}
.dest-card__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(29,29,27,0) 38%,rgba(29,29,27,.8) 100%);pointer-events:none}
.dest-card__scrim--tight{background:linear-gradient(180deg,rgba(29,29,27,0) 40%,rgba(29,29,27,.72) 100%)}
.dest-card__copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:28px;display:flex;flex-direction:column;gap:8px}
.dest-card__copy--tight{padding:16px}
.dest-card__title{font-family:var(--font-display);font-weight:800;font-size:clamp(22px,2vw,32px);letter-spacing:-.01em;color:#fff}
.dest-card__title--sm{font-size:clamp(19px,1.6vw,24px)}
.dest-card__title--xs{font-size:18px}
.dest-card__desc{font-size:14px;line-height:1.4;color:rgba(255,255,255,.8);max-width:340px}
.dest-card__link{margin-top:6px;font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.03em;color:#fff}
@media (max-width:900px){
  .dest-grid{grid-template-columns:repeat(2,1fr)}
  .dest-card--germany,.dest-card--uk,.dest-card--france,.dest-card--usa{grid-column:span 2}
  .dest-card--italy,.dest-card--netherlands,.dest-card--canada,.dest-card--poland{grid-column:span 1}
  .dest-card{grid-row:auto !important;grid-column-start:auto !important;aspect-ratio:16/11}
  .dest-card--germany,.dest-card--uk,.dest-card--france,.dest-card--usa{aspect-ratio:16/9}
}

/* ── Journey: a playing background inside the normal page flow ─────────
   All scenes share a grid cell so the longest real copy sets the minimum
   content height. Reserve the existing 112px anchor clearance so controls
   fit below the fixed nav; long copy and text zoom can still grow the section. */
.storyscroll{position:relative;background:var(--ink-bg)}
.storyscroll__stage{position:relative;min-height:calc(100vh - 112px);min-height:calc(100svh - 112px);box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:28px;padding:clamp(140px,20vh,200px) clamp(24px,4.5vw,80px) clamp(32px,6vh,64px)}
.storyscroll__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--ink-bg)}
.storyscroll__scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(6,7,10,.94) 0%,rgba(6,7,10,.65) 36%,rgba(6,7,10,0) 70%),linear-gradient(180deg,rgba(6,7,10,.55) 0%,rgba(6,7,10,0) 22%)}

.storyscroll__progress{position:absolute;z-index:2;top:clamp(96px,12vh,140px);right:clamp(24px,4.5vw,80px);display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.storyscroll__progress-count{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.06em;color:rgba(255,255,255,.72);font-variant-numeric:tabular-nums}
.storyscroll__progress-current{color:#fff}
.storyscroll__progress-track{width:64px;height:2px;border-radius:2px;background:rgba(255,255,255,.22);overflow:hidden}
.storyscroll__progress-fill{display:block;width:100%;height:100%;background:var(--red-500);transform:scaleX(0);transform-origin:left}

.storyscroll__scenes{position:relative;z-index:1;width:100%;display:grid}
.storyscroll__scene{grid-area:1/1;align-self:end;max-width:640px;display:flex;flex-direction:column;gap:10px;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity 300ms ease-out,transform 300ms ease-out,visibility 300ms;pointer-events:none}
.storyscroll__scene.is-active{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.storyscroll__eyebrow{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.storyscroll__title{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3.6vw,52px);line-height:1.08;letter-spacing:-.02em;color:#fff}
.storyscroll__desc{margin:0;font-size:clamp(15px,1.15vw,18px);line-height:1.55;color:rgba(255,255,255,.82)}

.storyscroll__controls{position:relative;z-index:2;display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px}
.storyscroll__steps{display:flex;gap:8px}
.storyscroll__step,.storyscroll__toggle{min-height:44px;border:1px solid rgba(255,255,255,.42);border-radius:8px;background:rgba(6,7,10,.5);color:#fff;font:600 14px var(--font-body);cursor:pointer;transition:background 150ms,border-color 150ms}
.storyscroll__step{width:44px;padding:0;font-variant-numeric:tabular-nums}
.storyscroll__step[aria-current="step"]{background:var(--red-500);border-color:var(--red-500)}
.storyscroll__toggle{padding:10px 16px}
.storyscroll__step:hover,.storyscroll__toggle:hover{border-color:#fff;background:rgba(255,255,255,.16)}
.storyscroll__step[aria-current="step"]:hover{background:var(--red-500)}
.storyscroll__step:focus-visible,.storyscroll__toggle:focus-visible{outline:2px solid #fff;outline-offset:4px}
.storyscroll__toggle:disabled{opacity:.55;cursor:default}
.storyscroll__status{flex-basis:100%;margin:0;color:rgba(255,255,255,.82);font-size:14px;line-height:1.5}

@media (max-width:640px){
  .storyscroll__stage{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .storyscroll__scene{max-width:none}
  .storyscroll__progress{top:clamp(84px,11vh,110px)}
}
@media (prefers-reduced-motion: reduce){
  .storyscroll__scene{transition:opacity 150ms linear,visibility 150ms;transform:none}
}

/* ── Universities rail ───────────────────────────────────────────────── */
.uni-rail-wrap{position:relative}
.uni-rail-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:999px;border:1px solid var(--ink-100);background:var(--surface-card);box-shadow:0 10px 30px -12px rgba(29,29,27,.28);cursor:pointer;font-size:17px;line-height:1;color:var(--ink-700);display:flex;align-items:center;justify-content:center;transition:background 200ms,transform 150ms,opacity 200ms}
.uni-rail-arrow:hover{background:rgba(29,29,27,.05)}
.uni-rail-arrow:active{transform:translateY(-50%) scale(.92)}
.uni-rail-arrow--prev{left:-8px}
.uni-rail-arrow--next{right:-8px}
@media (max-width:900px){
  .uni-rail-arrow{width:40px;height:40px;font-size:15px}
  .uni-rail-arrow--prev{left:4px}
  .uni-rail-arrow--next{right:4px}
}
.uni-rail{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;padding:4px 4px 16px;margin:0 -4px 32px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.uni-rail::-webkit-scrollbar{display:none}
.uni-card{flex:0 0 auto;width:340px;display:flex;flex-direction:column;text-decoration:none;border:none;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 1px 2px rgba(29,29,27,.05);transition:transform 300ms cubic-bezier(.2,.7,.3,1),box-shadow 300ms cubic-bezier(.2,.7,.3,1)}
.uni-card:hover{transform:translateY(-6px);box-shadow:0 26px 52px -20px rgba(29,29,27,.24)}
.uni-card__img{position:relative;width:100%;height:210px;flex:0 0 auto;object-fit:cover;display:block}
.uni-card__body{display:flex;flex-direction:column;gap:10px;padding:26px}
.uni-card__meta{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--red-500)}
.uni-card__name{font-family:var(--font-display);font-weight:700;font-size:23px;line-height:1.2;letter-spacing:-.01em;color:var(--ink-900)}
.uni-card__field{font-size:14px;line-height:1.4;color:var(--ink-600)}

/* ── Services — vertical scroll drives horizontal motion ─────────────────
   Same mechanism as the #journey scroll-story: a tall wrapper with a
   position:sticky stage inside it. JS measures how far the track has to
   travel (its width minus the viewport) and stretches the wrapper to
   exactly that much scroll distance, then maps scroll position inside it
   to a [0,1] progress that translateX's the track. Scroll down, the row
   moves sideways; once the last card clears, the stage un-sticks and the
   page continues normally — so it costs only as much page height as the
   card row actually needs to travel, not a fixed guess.
   prefers-reduced-motion gets a plain horizontally-scrollable row instead
   (no pin, no hijacked scroll) — see js/main.js for the JS half. */
.service-scroll{position:relative}
.service-scroll__stage{position:sticky;top:112px;overflow:hidden;padding:8px 0 40px}
.service-scroll__track{display:flex;gap:28px;width:max-content;padding:4px clamp(24px,4.5vw,80px) 4px clamp(24px,4.5vw,80px)}
.service-card{flex:0 0 auto;width:440px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--ink-200);border-radius:24px;overflow:hidden;box-shadow:0 1px 2px rgba(29,29,27,.05);transition:transform 260ms cubic-bezier(.2,.7,.3,1),box-shadow 260ms cubic-bezier(.2,.7,.3,1),border-color 260ms cubic-bezier(.2,.7,.3,1)}
.service-card:hover{transform:translateY(-6px);box-shadow:0 26px 52px -20px rgba(29,29,27,.24);border-color:var(--red-200)}
/* Suppress hover while the track is actively translating — otherwise
   whatever card is sliding under a stationary cursor flickers its lift
   on and off as it passes underneath, mid-scroll. */
.service-scroll.is-scrolling .service-card:hover{transform:none;box-shadow:0 1px 2px rgba(29,29,27,.05);border-color:var(--ink-200)}
.service-scroll.is-scrolling .service-card:hover .service-card__icon{background:var(--red-50);color:var(--red-500)}
.service-card__photo{position:relative;width:100%;height:270px;flex:0 0 auto}
.service-card__photo .asset-img--service-photo{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}
.asset-img--advisor{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;border-radius:999px}
.service-card__body{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px 28px 32px}
.service-card__n{position:absolute;top:28px;right:28px;font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ink-300)}
.service-card__icon{width:60px;height:60px;flex:none;border-radius:16px;background:var(--red-50);color:var(--red-500);display:flex;align-items:center;justify-content:center;transition:background 220ms cubic-bezier(.2,.7,.3,1),color 220ms cubic-bezier(.2,.7,.3,1)}
.service-card__icon svg{width:30px;height:30px}
.service-card:hover .service-card__icon{background:var(--red-500);color:#fff}
.service-card__title{margin:0;font-family:var(--font-display);font-weight:800;font-size:25px;letter-spacing:-.01em;color:var(--ink-900)}
.service-card__desc{margin:0;font-size:16px;line-height:1.6;color:var(--ink-600)}
@media (max-width:640px){
  .service-card{width:340px}
  .service-card__photo{height:210px}
  .service-card__body{padding:24px 24px 28px}
}
@media (prefers-reduced-motion: reduce){
  .service-scroll{height:auto !important}
  .service-scroll__stage{position:static;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .service-scroll__track{transform:none !important}
  .service-card{transition:none}
  .service-card:hover{transform:none}
}

/* ── About / reasons ─────────────────────────────────────────────────── */
.reason-list{max-width:580px;position:relative;z-index:1}
.reason{display:flex;align-items:center;gap:18px;padding:22px 6px;border-top:1px solid rgba(255,255,255,.18);border-radius:14px;transition:background 220ms cubic-bezier(.2,.7,.3,1)}
.reason:hover{background:rgba(255,255,255,.05)}
.reason__icon{width:48px;height:48px;flex:none;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;display:flex;align-items:center;justify-content:center;transition:background 220ms cubic-bezier(.2,.7,.3,1),border-color 220ms cubic-bezier(.2,.7,.3,1)}
.reason__icon svg{width:24px;height:24px}
.reason:hover .reason__icon{background:var(--red-500);border-color:var(--red-500)}
.reason__body{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0}
.reason__word{font-family:var(--font-display);font-weight:800;font-size:clamp(17px,1.4vw,21px);letter-spacing:-.01em;text-transform:uppercase;color:#fff}
.reason__desc{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.72)}
.reason__n{font-family:var(--font-display);font-weight:800;font-size:14px;color:rgba(255,255,255,.28);flex:none}
.reason-list__rule{border-top:1px solid rgba(255,255,255,.18)}
@media (prefers-reduced-motion: reduce){
  .reason{transition:none}
}

/* ── Stats ───────────────────────────────────────────────────────────── */
.stats__eyebrow{margin-bottom:36px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:32px}
.stats-grid > div{display:flex;flex-direction:column;gap:8px}
.stats-grid__value{font-family:var(--font-display);font-weight:800;font-size:clamp(40px,4.2vw,64px);letter-spacing:-.02em;color:#fff}
.stats-grid__label{font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:rgba(255,255,255,.78)}

/* ── Video testimonials ──────────────────────────────────────────────── */
/* Auto-scrolling carousel — same duplicate-and-wrap technique as the
   university rail up top (see js/main.js), direction reversed so the row
   drifts left-to-right instead of right-to-left. Pauses on hover/touch/
   focus like the uni rail; each video plays muted+looping the moment the
   cursor is over its card and resets to its poster on mouseleave, so
   pausing the carousel and previewing a clip happen together for free. */
.video-rail-wrap{position:relative}
.video-grid{display:flex;flex-wrap:nowrap;gap:24px;overflow-x:auto;overflow-y:hidden;padding:4px 4px 16px;margin:0 -4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.video-grid::-webkit-scrollbar{display:none}
.video-testimony{margin:0;flex:0 0 auto}
.video-testimony__frame{display:block;width:360px;aspect-ratio:3/4;border-radius:22px;overflow:hidden;background:#000;object-fit:cover;box-shadow:0 20px 40px -26px rgba(29,29,27,.3);cursor:pointer;transition:transform 260ms cubic-bezier(.2,.7,.3,1),box-shadow 260ms cubic-bezier(.2,.7,.3,1)}
.video-testimony__frame:hover{transform:translateY(-6px);box-shadow:0 30px 56px -22px rgba(29,29,27,.4)}
@media (max-width:640px){
  .video-testimony__frame{width:240px}
}
@media (prefers-reduced-motion: reduce){
  .video-testimony__frame{transition:none}
  .video-testimony__frame:hover{transform:none}
}

/* ── Advisor cards ────────────────────────────────────────────────────── */
.advisor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:28px}
.advisor-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:36px 26px;background:#fff;border:1px solid var(--ink-200);border-radius:20px}
.advisor-card__photo{margin-bottom:14px}
.ph--avatar-lg{position:relative;width:104px;height:104px;flex:none;border-radius:999px;background:linear-gradient(155deg, var(--ink-200), var(--ink-100))}
.ph--avatar-lg::before{background-image:none}
.ph--avatar-lg .ph__label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;max-width:none;padding:6px;font-size:8px;line-height:1.3}
.ph--avatar-lg .ph__label small{display:none}
.advisor-card__focus{margin:0;font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--ink-900)}
.advisor-card__desc{margin:0 0 6px;font-size:13.5px;line-height:1.55;color:var(--ink-600)}
.advisor-grid__note{margin:22px 0 0;text-align:center;font-size:12.5px;color:var(--ink-500)}
.advisor-grid__note code{font-size:12px;background:var(--ink-100);padding:2px 6px;border-radius:6px}

/* ── Deadline strip ───────────────────────────────────────────────────── */
.deadline-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:16px}
.deadline-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:22px 20px;display:flex;flex-direction:column;gap:6px}
.deadline-card__country{font-family:var(--font-display);font-weight:700;font-size:14px;color:#fff}
.deadline-card__days{font-family:var(--font-display);font-weight:800;font-size:32px;letter-spacing:-.02em;color:#fff}
.deadline-card__days span{font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-left:4px}
.deadline-card__note{font-size:12px;line-height:1.5;color:rgba(255,255,255,.6)}

/* ── Find your match quiz ────────────────────────────────────────────── */
/* Red brand section, white floating card for the quiz itself — outlined
   light pills matching the reference style, red brand accents on select. */
.match-quiz{position:relative;z-index:1;max-width:640px;margin:0 auto;background:#fff;border-radius:28px;padding:44px 40px;box-shadow:0 30px 70px -30px rgba(10,4,4,.45)}
.match-quiz__counter{margin:0 0 22px;text-align:center;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-500)}
.match-quiz__counter.is-hidden{display:none}

.match-quiz__panel{display:none;flex-direction:column;align-items:center;text-align:center;gap:28px}
.match-quiz__panel.is-active{display:flex;animation:matchPanelIn 420ms cubic-bezier(.2,.7,.3,1) both}
@keyframes matchPanelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.match-quiz__question{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(21px,2.2vw,28px);letter-spacing:-.015em;color:var(--ink-900)}
.match-quiz__options{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%}
.match-quiz__option{padding:14px 26px;border-radius:999px;border:1.5px solid var(--ink-300);background:#fff;color:var(--ink-800);font-family:var(--font-display);font-weight:600;font-size:15px;cursor:pointer;transition:background 200ms cubic-bezier(.2,.7,.3,1),border-color 200ms cubic-bezier(.2,.7,.3,1),color 200ms cubic-bezier(.2,.7,.3,1),transform 150ms cubic-bezier(.2,.7,.3,1)}
.match-quiz__option:hover{border-color:var(--red-400);background:var(--red-50)}
.match-quiz__option:active{transform:scale(.96)}
.match-quiz__option.is-selected{background:var(--red-500);border-color:var(--red-500);color:#fff}

.match-quiz__back{margin-top:4px;background:transparent;border:none;color:var(--ink-500);font-size:14px;cursor:pointer;transition:color 150ms}
.match-quiz__back:hover{color:var(--ink-900)}

.match-quiz__panel--result{align-items:stretch;text-align:left}
.match-quiz__result{display:flex;gap:28px;align-items:center;background:var(--ink-50);border:1px solid var(--ink-200);border-radius:20px;padding:24px;flex-wrap:wrap}
.match-quiz__result-img{width:180px;height:180px;flex:0 0 auto;border-radius:16px;object-fit:cover;background:var(--ink-100)}
.match-quiz__result-body{display:flex;flex-direction:column;gap:6px;min-width:240px;flex:1 1 auto}
.match-quiz__result-eyebrow{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-500)}
.match-quiz__result-name{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(22px,2.2vw,28px);letter-spacing:-.01em;color:var(--ink-900)}
.match-quiz__result-meta{font-size:14px;color:var(--ink-600)}
.match-quiz__result-score{display:flex;align-items:baseline;gap:8px;margin:10px 0 4px}
.match-quiz__result-percent{font-family:var(--font-display);font-weight:800;font-size:40px;letter-spacing:-.02em;color:var(--ink-900)}
.match-quiz__result-label{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-500)}
.match-quiz__result-note{margin:0;font-size:13px;line-height:1.5;color:var(--ink-500);max-width:420px}
.match-quiz__result-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}

@media (max-width:640px){
  .match-quiz{padding:32px 22px;border-radius:22px}
  .match-quiz__result{flex-direction:column;text-align:center;align-items:center}
  .match-quiz__result-body{align-items:center}
  .match-quiz__option{padding:13px 20px;font-size:14px}
}
@media (prefers-reduced-motion: reduce){
  .match-quiz__panel.is-active{animation:none}
}

/* ── Get started ─────────────────────────────────────────────────────── */
.section__inner--split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:56px;align-items:center}
.get-started__title{margin:0 0 32px;font-family:var(--font-display);font-weight:800;font-size:clamp(28px,3vw,42px);line-height:1.15;letter-spacing:-.02em;color:var(--ink-900)}
.get-started__cards{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.get-started__card{padding:20px 22px;border-radius:16px;background:#fff;border:1px solid var(--ink-200)}
.get-started__card--red{background:var(--red-50);border-color:var(--red-200)}
.get-started__card-title{display:block;margin:0 0 6px;font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink-900)}
.get-started__card-desc{font-size:14px;line-height:1.5;color:var(--ink-600)}
.get-started__proof{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-700)}
.get-started__check{width:22px;height:22px;border-radius:999px;background:var(--red-500);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;flex:0 0 auto}
.get-started__form{background:#fff;border:1px solid var(--ink-200);border-radius:24px;padding:36px;box-shadow:0 30px 60px -30px rgba(29,29,27,.18);display:flex;flex-direction:column;gap:16px}
.get-started__form-lede{margin:0 0 6px;font-size:15px;line-height:1.5;color:var(--ink-600)}
.get-started__form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.get-started__form>*,.get-started__form-row>*{min-width:0}
.get-started__form .evo-select{min-width:0;max-width:100%;text-overflow:ellipsis}
.get-started__form-note{margin:0;min-height:1.5em;font-size:14px;line-height:1.5;color:var(--ink-700)}
.get-started__form-note[data-state="error"]{color:var(--red-700)}
.get-started__form-note[data-state="accepted"]{color:var(--ink-900);font-weight:600}
.get-started__form-note:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:4px}
.get-started__field-help{display:block;margin-top:6px;font-size:12px;line-height:1.5;color:var(--ink-600)}
.get-started__consent{display:flex;align-items:flex-start;gap:10px;min-height:44px;cursor:pointer;font-size:13px;line-height:1.6;color:var(--ink-700)}
.get-started__consent input{width:20px;height:20px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--brand)}
.get-started__honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.get-started__form button:disabled{cursor:not-allowed;opacity:.6}
.get-started__badges{display:flex;flex-wrap:wrap;gap:14px;margin-top:2px}
.get-started__badges span{font-size:12px;color:var(--ink-500)}

/* ── FAQ ─────────────────────────────────────────────────────────────── */
.faq-item{border-top:1px solid rgba(255,255,255,.3)}
.faq-item__q{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;box-sizing:border-box;padding:22px 0;background:transparent;border:none;cursor:pointer;text-align:left;font:inherit;transition:opacity 150ms cubic-bezier(.2,.7,.3,1)}
.faq-item__q:hover{opacity:.72}
.faq-item__q span:first-child{font-family:var(--font-display);font-weight:700;font-size:clamp(16px,1.3vw,19px);letter-spacing:-.005em;color:#fff}
.faq-item__icon{flex:0 0 auto;font-family:var(--font-display);font-weight:600;font-size:20px;color:rgba(255,255,255,.85)}
.faq-item__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 320ms cubic-bezier(.2,.7,.3,1)}
.faq-item.is-open .faq-item__panel{grid-template-rows:1fr}
.faq-item__panel-inner{overflow:hidden}
.faq-item__panel-inner p{margin:0 0 24px;max-width:640px;font-size:15px;line-height:1.6;color:rgba(255,255,255,.82)}
.faq-list__rule{border-top:1px solid rgba(255,255,255,.3)}

/* ── Final CTA ───────────────────────────────────────────────────────── */
.section--cta{text-align:center;padding:clamp(100px,14vh,160px) clamp(24px,4vw,64px)}
.section__inner--cta{max-width:760px;display:flex;flex-direction:column;align-items:center;gap:22px}
.cta__sub{margin:0;font-size:clamp(16px,1.2vw,19px);line-height:1.6;color:rgba(255,255,255,.72);max-width:480px}
.cta__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:12px}

/* ── Footer ──────────────────────────────────────────────────────────── */
.footer{background:var(--ink-900);color:rgba(255,255,255,.6);padding:clamp(56px,7vh,80px) clamp(24px,4vw,64px) 32px}
.footer__top{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:48px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px;grid-column:span 2}
.nav__brand--footer{gap:10px}
.footer__tag{margin:0;max-width:280px;font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:-.01em;color:#fff}
.footer__col{display:flex;flex-direction:column;gap:12px}
.footer__heading{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.footer__col a{font-size:14px;color:rgba(255,255,255,.68);border:none;transition:color 150ms cubic-bezier(.2,.7,.3,1)}
.footer__note{font-size:14px;line-height:1.5;color:rgba(255,255,255,.68)}
.footer__col a:hover{color:#fff}
.footer__bottom{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px}
.footer__bottom span{font-size:13px;color:rgba(255,255,255,.4)}
.footer__legal{display:flex;gap:20px}
.footer__legal a{font-size:13px;color:rgba(255,255,255,.4);border:none;transition:color 150ms cubic-bezier(.2,.7,.3,1)}
.footer__legal a:hover{color:rgba(255,255,255,.8)}

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width:860px){
  .nav__links{display:none}
  .nav__cta{display:none}
  .nav__burger{display:inline-flex}
  .nav{justify-content:space-between}
  .footer__brand{grid-column:span 1}
}
.mobile-menu[hidden]{display:none}

/* EVO catalogue, enquiries and knowledge assistant. */
[hidden]{display:none!important}
.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}
.destination-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
.destination-tile{position:relative;isolation:isolate;grid-column:span 2;display:flex;flex-direction:column;justify-content:flex-end;min-height:350px;padding:30px;border:0;border-radius:24px;background:#111820;color:#fff;text-decoration:none;overflow:hidden;transition:transform .25s,box-shadow .25s}
.destination-tile:nth-child(-n+2){grid-column:span 3;min-height:420px}
.destination-tile::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,12,20,.18),rgba(5,12,20,.02) 28%,rgba(5,12,20,.7) 62%,rgba(5,12,20,.96));pointer-events:none}
.destination-tile__image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.3,1)}
.destination-tile__place{position:absolute;top:22px;left:24px;padding:6px 10px;border-radius:6px;background:rgba(5,12,20,.65);max-width:calc(100% - 48px);font-size:12px;line-height:1.5;color:#fff;letter-spacing:.03em}
.destination-tile__content{display:flex;flex-direction:column;align-items:flex-start}
.destination-tile__name{font:700 clamp(26px,2.5vw,38px)/1.1 var(--font-display);letter-spacing:-.025em;color:#fff;text-wrap:balance}
.destination-tile__copy{font-size:14px;line-height:1.6;color:#f0f1f3;margin:12px 0 22px;max-width:36ch}
.destination-tile__link{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;font-weight:600;color:#fff;min-height:24px}
.destination-tile__link span{font-size:24px;line-height:1;transition:transform .2s}
.destination-tile:hover,.destination-tile:focus-visible{color:#fff;border:0}
@media(hover:hover){.destination-tile:hover{transform:translateY(-4px);box-shadow:0 22px 40px -25px #151515}.destination-tile:hover .destination-tile__image{transform:scale(1.045)}.destination-tile:hover .destination-tile__link span{transform:translate(3px,-3px)}}
.catalog-toolbar{display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px;color:var(--ink-600);font-size:14px}
.catalog-field{display:flex;flex:1 1 220px;flex-direction:column;gap:8px;min-width:0}
.catalog-field--search{flex:2 1 320px}
.catalog-toolbar .evo-select,.catalog-toolbar .evo-input{width:100%;min-height:48px;background:#fff;color:var(--ink-900)}
.catalog-toolbar .evo-input::placeholder{color:var(--ink-600)}
.catalog-toolbar label{font-weight:600;color:var(--ink-900)}
.catalog-status{margin:0 0 24px;font-size:14px;color:var(--ink-600)}
.catalog-reset,.catalog-more{min-height:48px;padding:12px 20px;border:1px solid var(--ink-200);border-radius:12px;background:#fff;color:var(--ink-900);font:600 14px/1.4 var(--font-body);cursor:pointer}
.catalog-reset:hover,.catalog-more:hover{border-color:var(--brand);color:var(--brand)}
.catalog-more{display:block;margin:28px auto 0}
.catalog-reset[hidden],.catalog-more[hidden]{display:none}
.catalog-toolbar :focus-visible,.catalog-more:focus-visible{outline:2px solid var(--brand);outline-offset:4px}
.university-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.catalog-card,.shortlist-card{display:flex;flex-direction:column;min-width:0;background:white;border:1px solid var(--ink-200);border-radius:22px;padding:26px;color:var(--ink-900)}
.catalog-card__media{position:relative;margin:-26px -26px 24px;aspect-ratio:16/10;overflow:hidden;border-radius:21px 21px 0 0;background:#111820}
.catalog-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.catalog-card__media figcaption{position:absolute;bottom:0;left:0;right:0;padding:32px 18px 14px;background:linear-gradient(transparent,rgba(5,12,20,.88));font-size:12px;line-height:1.4;color:#fff}
.catalog-card__credit{display:block;margin-top:5px;font-size:12px}
.catalog-card__credit a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.shortlist-card .catalog-card__media{aspect-ratio:16/8}
.catalog-card__location{font-size:12px;color:var(--ink-600);margin:0 0 8px}
.catalog-card h3,.shortlist-card h3{font:700 22px/1.25 var(--font-display);letter-spacing:-.02em;margin:0 0 16px;overflow-wrap:anywhere}
.catalog-card__description{font-size:14px;line-height:1.7;color:var(--ink-600);margin:0 0 22px}
.catalog-card__link{display:inline-flex;align-items:center;min-height:44px;margin-top:auto;color:var(--brand);font-weight:600;font-size:14px;text-underline-offset:4px}
.evo-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.evo-numbers>div{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--ink-300);padding-top:24px}
.evo-numbers .stats-grid__value{font:800 clamp(46px,6vw,80px)/1 var(--font-display);letter-spacing:-.05em;color:var(--brand)}
.evo-numbers span{font-size:16px;color:var(--ink-600)}
#match .section__inner{max-width:1200px}
#match .match-quiz{max-width:100%;width:100%;text-align:left}
.shortlist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:26px 0}
.shortlist-card{padding:22px;background:#faf9f7}
.shortlist-card .catalog-card__media{margin:-22px -22px 20px}
.shortlist-reasons{margin:0 0 20px;padding-left:18px;color:var(--ink-600);font-size:13px;line-height:1.7}
.shortlist-reasons li+li{margin-top:10px}
.shortlist-note{font-size:14px;line-height:1.7;color:var(--ink-600);max-width:740px}
.shortlist-actions{display:flex;gap:16px;flex-wrap:wrap}
#match-result-title{font:700 28px/1.2 var(--font-display)}
#match-question:focus,#match-result-title:focus{outline:none}
.match-quiz__option[aria-pressed=true]{background:var(--brand);color:white;border-color:var(--brand)}
.match-quiz__option:disabled{opacity:.5;cursor:wait}
.partnership-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.partnership-layout h2{font:700 clamp(34px,4vw,52px)/1.1 var(--font-display);letter-spacing:-.03em;margin:18px 0}
.partnership-layout p{line-height:1.8;color:var(--ink-600)}
.partnership-layout a{color:var(--brand);overflow-wrap:anywhere;text-underline-offset:4px}
.partner-form{display:grid;gap:20px}
.partner-form textarea{resize:vertical;min-height:120px}
.form-hint{font-size:12px;margin:0}
.contact-dock{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;gap:10px;padding:7px;border:1px solid #ddd;border-radius:50px;background:white;box-shadow:0 10px 40px #0002}
.contact-dock button{min-height:48px;border:0;border-radius:40px;padding:0 23px;font:600 14px var(--font-body);cursor:pointer}
.contact-dock__apply{background:var(--brand);color:white}
.contact-dock__chat{background:var(--ink-900);color:white}
.contact-dock__chat span{margin-left:6px}
.has-contact-dialog{overflow:hidden}
.contact-dialog{padding:30px;border:1px solid var(--ink-200);border-radius:26px;background:#faf9f7;color:var(--ink-900);width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:0 24px 90px #0004;overflow:auto;overscroll-behavior:contain}
.contact-dialog::backdrop{background:rgba(10,12,17,.6);backdrop-filter:blur(5px)}
.contact-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.contact-dialog__head h2{font:700 28px/1.15 var(--font-display);letter-spacing:-.025em;margin:8px 0 0}
.dialog-close{flex-shrink:0;width:44px;height:44px;border:1px solid var(--ink-200);border-radius:50%;background:white;font:400 28px/1 sans-serif;color:var(--ink-900);cursor:pointer}
.contact-dialog .get-started__form{border:0;border-radius:0;padding:0;box-shadow:none;background:transparent}
.enquiry-context{padding:14px;border-radius:12px;background:#f5e8e8;font-size:13px;line-height:1.7}
.enquiry-open{margin-top:20px}
.chat-dialog{width:min(460px,calc(100% - 24px));margin:auto 24px 24px auto;padding:24px}
.chat-dialog .contact-dialog__head{margin-bottom:12px}
.chat-intro{font-size:12px;line-height:1.7;color:var(--ink-600);margin:0 0 18px}
.chat-messages{max-height:42dvh;min-height:60px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;overscroll-behavior:contain}
.chat-bubble{max-width:95%;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid var(--ink-200);align-self:flex-start}
.chat-bubble--user{background:#f7e7e8;align-self:flex-end;border-color:#ead4d7}
.chat-bubble__label{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-600);font-weight:600}
.chat-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.75;margin:7px 0 0}
.chat-prompts{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.chat-prompts button{min-height:40px;padding:8px 12px;border:1px solid var(--ink-200);border-radius:18px;background:white;color:var(--ink-900);font:500 12px var(--font-body);cursor:pointer}
.chat-status{font-size:12px;line-height:1.6;color:var(--ink-600);min-height:20px;margin:12px 0}
#chat-form{display:flex;gap:8px;align-items:flex-end}
#chat-message{min-width:0;resize:none;font-size:16px;line-height:1.5}
#chat-form button{flex-shrink:0;min-height:52px}
.chat-footer{display:flex;justify-content:space-between;gap:10px;margin-top:10px}
.chat-footer button{min-height:40px;background:none;border:0;color:var(--brand);font:600 12px var(--font-body);cursor:pointer;text-decoration:underline;text-underline-offset:4px}
button:focus-visible,a:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.footer{padding-bottom:110px}
@media(max-width:900px){.university-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.shortlist-grid{grid-template-columns:1fr}.partnership-layout{gap:32px}.destination-tile{padding:24px}.destination-tile__name{font-size:25px}}
@media(max-width:600px){.destination-cards{grid-template-columns:1fr}.destination-tile,.destination-tile:nth-child(-n+2){grid-column:auto;min-height:370px}.university-catalog{grid-template-columns:1fr}.catalog-toolbar .evo-select{width:100%}.evo-numbers{grid-template-columns:1fr;gap:28px}.partnership-layout{grid-template-columns:1fr}.contact-dock{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));gap:6px}.contact-dock button{min-height:46px;padding:0 18px;font-size:13px}.contact-dialog{padding:22px;max-height:calc(100dvh - 24px);border-radius:22px}.contact-dialog__head h2{font-size:24px}.chat-dialog{margin:auto 12px 12px}.get-started__form-row{grid-template-columns:1fr}.shortlist-actions{flex-direction:column}.chat-messages{max-height:35dvh}.match-quiz{padding:26px 18px}.partnership-layout h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){.destination-tile,.destination-tile__image,.destination-tile__link span{transition:none}.destination-tile:hover,.destination-tile:hover .destination-tile__image,.destination-tile:hover .destination-tile__link span{transform:none}}

/* Site-wide navigation, focus and narrow-screen fixes. */
.mobile-menu{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;color:#fff;padding:100px clamp(24px,8vw,64px) 40px;justify-content:flex-start;gap:20px;overflow-y:auto;overscroll-behavior:contain}
.mobile-menu__close{position:absolute;top:24px;right:24px;width:48px;height:48px;border:1px solid #ffffff50;border-radius:50%;background:#ffffff12;color:#fff;font:32px/1 var(--font-body);cursor:pointer}
.mobile-menu a{min-height:44px;display:inline-flex;align-items:center}
.has-mobile-menu{overflow:hidden}
.has-mobile-menu .contact-dock{visibility:hidden}
#match-question,#match-result-title{scroll-margin-top:124px}
.catalog-card:focus-within{border-color:var(--brand)}
.nav__burger{width:44px;height:44px}
@media(min-width:601px) and (max-width:900px){.destination-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-tile,.destination-tile:nth-child(-n+2){grid-column:auto;min-height:380px}.destination-tile:last-child{grid-column:1/-1}}
@media(max-width:600px){.destination-tile{padding:24px}.destination-tile__name{font-size:32px}.destination-tile__place{left:24px}.contact-dock{max-width:calc(100vw - 24px)}.contact-dock button{padding:0 16px}.catalog-card h3,.shortlist-card h3{font-size:22px}#match-question,#match-result-title{scroll-margin-top:112px}}

/* Both language versions are static pages. Montserrat includes Cyrillic. */
html[lang="ru"]{--font-display:'Montserrat','Helvetica Neue',Arial,sans-serif}
html[lang="ru"] .hero__title{font-size:clamp(30px,min(4.7vw,9vh),86px);line-height:1.06;letter-spacing:-.035em}
html[lang="ru"] .hero__line{overflow-wrap:normal}
html[lang="ru"] .reason__word{font-size:clamp(16px,1.3vw,20px)}
html[lang="ru"] .destination-tile__name{font-size:clamp(26px,2.15vw,34px)}
.language-switch{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;padding:3px;border:1px solid #ffffff45;border-radius:999px;background:#ffffff08}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:38px;padding:0 8px;border:0;border-radius:999px;color:#fff;font:600 12px/1 var(--font-body);letter-spacing:.02em;text-decoration:none;transition:background .15s,color .15s}
.language-switch a:hover,.language-switch a:focus-visible{color:#fff;background:#ffffff24}
.language-switch a[aria-current="page"]{background:#fff;color:var(--ink-900)}
.language-switch a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.language-switch--light{border-color:var(--ink-300);background:#fff}
.language-switch--light a{color:var(--ink-900)}
.language-switch--light a:hover,.language-switch--light a:focus-visible{color:var(--ink-900);background:var(--ink-100)}
.language-switch--light a[aria-current="page"]{background:var(--ink-900);color:#fff}
.language-switch--light a:focus-visible{outline-color:var(--brand)}
.mobile-menu .language-switch{margin-bottom:8px}
.mobile-menu .language-switch a{font-size:13px;min-width:55px;min-height:44px}
@media(min-width:1241px){
  .nav{width:min(94vw,1340px);gap:20px}
  .nav__links{gap:clamp(16px,1.6vw,26px);mask-image:none;-webkit-mask-image:none}
  html[lang="ru"] .nav__links{gap:clamp(14px,1.3vw,22px)}
  html[lang="ru"] .nav__links a{font-size:14px}
  html[lang="ru"] .nav__cta{padding-inline:20px}
}
@media(max-width:1240px){
  .nav{width:calc(100% - 32px);padding-left:20px;gap:12px;justify-content:space-between}
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:inline-flex}
  .nav>.language-switch{margin-left:auto}
}
@media(max-width:480px){
  .nav{height:66px;top:16px;padding-left:16px;padding-right:8px;gap:8px}
  .nav .asset-img--logo{height:26px}
  .language-switch a{min-width:38px;padding-inline:6px}
  html[lang="ru"] .hero__title{font-size:clamp(25px,6.9vw,34px)}
  html[lang="ru"] .hero__ctas{width:100%}
  html[lang="ru"] .hero__ctas .evo-btn{padding-inline:20px;white-space:normal;text-align:center}
  html[lang="ru"] .contact-dock button{font-size:12px;padding-inline:16px}
  html[lang="ru"] .partners .evo-btn{white-space:normal}
}

@media(max-width:600px){.evo-input,.evo-select,.evo-textarea{font-size:16px}}
