:root {
  --navy: #071a3d;
  --navy-2: #0b2c67;
  --blue: #124fb6;
  --court: #2867d7;
  --yellow: #ffd500;
  --white: #f8fbff;
  --ink: #101a2f;
  --muted: #64708a;
  --line: rgba(7,26,61,.14);
  --max: 1220px;
  --display: "Barlow Condensed", Impact, sans-serif;
  --body: "Inter", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: var(--body); line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
:where(a, button):focus-visible { outline: 3px solid var(--yellow); outline-offset: 4px; }
main section[id] { scroll-margin-top: 94px; }
.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; }
.skip-link { position: fixed; z-index: 1000; top: -100px; left: 16px; padding: 12px 18px; color: white; background: var(--navy); }
.skip-link:focus { top: 16px; }

.site-header { position: sticky; z-index: 100; top: 0; display: flex; align-items: center; justify-content: space-between; height: 82px; padding: 0 max(24px, calc((100vw - var(--max)) / 2)); color: white; background: rgba(7,26,61,.96); border-bottom: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(14px); }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand img { width: 51px; height: 51px; object-fit: contain; }
.brand span { display: grid; line-height: 1; }
.brand strong { font: 800 25px/1 var(--display); letter-spacing: .045em; }
.brand small { margin-top: 3px; color: var(--yellow); font: 700 11px/1 var(--body); letter-spacing: .18em; }
.site-nav { display: flex; align-items: center; gap: 21px; font-size: 14px; font-weight: 600; }
.language-switcher { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; padding: 3px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 4px; }
.language-switcher button { min-width: 34px; height: 31px; padding: 0 7px; color: rgba(255,255,255,.72); background: transparent; border: 0; border-radius: 2px; cursor: pointer; font-size: 11px; font-weight: 800; letter-spacing: .06em; }
.language-switcher button:hover { color: white; background: rgba(255,255,255,.1); }
.language-switcher button[aria-pressed="true"] { color: var(--navy); background: var(--yellow); }
.site-nav > a:not(.nav-cta) { position: relative; color: rgba(255,255,255,.82); }
.site-nav > a:not(.nav-cta)::after { position: absolute; bottom: -10px; left: 0; width: 0; height: 2px; content: ""; background: var(--yellow); transition: width .2s ease; }
.site-nav > a:hover::after, .site-nav > a:focus-visible::after { width: 100%; }
.site-nav > a.nav-current { color: white; }
.site-nav > a.nav-current::after { width: 100%; }
.nav-cta { padding: 11px 18px; color: var(--navy); background: var(--yellow); font-weight: 800; border-radius: 3px; }
.menu-button { display: none; width: 42px; height: 42px; padding: 10px; color: white; background: transparent; border: 1px solid rgba(255,255,255,.25); }
.menu-button > span:not(.sr-only) { display: block; height: 2px; margin: 4px 0; background: currentColor; }
.menu-button[aria-expanded="true"] > span:not(.sr-only):first-child { transform: translateY(6px) rotate(45deg); }
.menu-button[aria-expanded="true"] > span:not(.sr-only):nth-child(2) { opacity: 0; }
.menu-button[aria-expanded="true"] > span:not(.sr-only):nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.menu-button > span:not(.sr-only) { transition: transform .2s ease, opacity .2s ease; }

.hero { position: relative; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(390px,.95fr); min-height: 690px; overflow: hidden; color: white; background: var(--navy); }
.hero::before { position: absolute; inset: 0 auto 0 0; width: 58%; content: ""; opacity: .2; background: linear-gradient(145deg,transparent 0 49%,rgba(255,213,0,.18) 49.2% 49.8%,transparent 50% 100%); }
.hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 80px max(42px, calc((100vw - var(--max)) / 2)); padding-right: 55px; }
.eyebrow { margin: 0 0 15px; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .2em; }
.hero .eyebrow, .method .eyebrow, .contact .eyebrow { color: var(--yellow); }
.hero h1 { max-width: 730px; margin: 0; font: 800 clamp(58px,7vw,105px)/.86 var(--display); letter-spacing: -.03em; text-transform: uppercase; }
.hero h1 span { color: var(--yellow); }
.hero-lead { max-width: 635px; margin: 30px 0 0; color: rgba(255,255,255,.78); font-size: 18px; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 23px; border: 1px solid transparent; border-radius: 3px; font-size: 14px; font-weight: 800; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--navy); background: var(--yellow); }
.button-ghost { color: white; border-color: rgba(255,255,255,.35); }
.button-ghost:hover { background: rgba(255,255,255,.08); }
.hero-proof { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(12px,2vw,28px); margin-top: 55px; padding-top: 23px; border-top: 1px solid rgba(255,255,255,.18); }
.hero-proof div { display: grid; }
.hero-proof strong { color: var(--yellow); font: 800 29px/1 var(--display); }
.hero-proof span { margin-top: 6px; color: rgba(255,255,255,.63); font-size: 11px; line-height: 1.35; }
.hero-visual { position: relative; min-height: 690px; overflow: hidden; background: var(--court); }
.hero-visual::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,var(--navy) 0,transparent 20%),linear-gradient(0deg,rgba(7,26,61,.5),transparent 50%); }
.hero-visual > img { width: 100%; height: 100%; object-fit: cover; object-position: 51% 41%; filter: saturate(1.08) contrast(1.02); }
.court-lines { position: absolute; z-index: 1; inset: 9% 8%; border: 2px solid rgba(255,255,255,.2); transform: perspective(800px) rotateX(62deg) rotateZ(-11deg); }
.court-lines::before, .court-lines::after { position: absolute; content: ""; background: rgba(255,255,255,.2); }
.court-lines::before { top: 50%; left: 0; width: 100%; height: 2px; }
.court-lines::after { top: 0; left: 50%; width: 2px; height: 100%; }
.hero-badge { position: absolute; z-index: 3; right: 28px; bottom: 28px; display: flex; align-items: center; gap: 11px; padding: 10px 15px; color: white; background: rgba(7,26,61,.94); border: 1px solid rgba(255,255,255,.24); box-shadow: 0 20px 50px rgba(0,0,0,.22); }
.hero-badge > img { width: 50px; height: 50px; object-fit: contain; }
.hero-badge small { padding-left: 11px; border-left: 1px solid rgba(255,213,0,.5); font-size: 9px; font-weight: 800; line-height: 1.25; letter-spacing: .1em; }

.ticker { overflow: hidden; color: var(--navy); background: var(--yellow); }
.ticker div { display: flex; align-items: center; justify-content: space-around; gap: 30px; min-width: 850px; max-width: 1500px; height: 53px; margin: 0 auto; padding: 0 25px; font: 800 18px/1 var(--display); letter-spacing: .08em; }
.ticker i { width: 7px; height: 7px; background: var(--blue); border-radius: 50%; }

.section { max-width: var(--max); margin: 0 auto; padding: 110px 24px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 46px; }
.section-heading h2, .story-copy h2, .method h2, .about h2, .contact h2 { margin: 0; font: 800 clamp(43px,5.5vw,72px)/.95 var(--display); letter-spacing: -.025em; text-transform: uppercase; }
.section-heading > p { max-width: 470px; margin: 0; color: var(--muted); }
.program-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; }
.program-card { position: relative; display: flex; flex-direction: column; min-height: 530px; padding: 35px; overflow: hidden; color: white; background: var(--navy-2); border: 1px solid var(--navy-2); transition: transform .25s ease, box-shadow .25s ease; }
.program-card:hover { transform: translateY(-6px); box-shadow: 0 26px 55px rgba(7,26,61,.12); }
.card-number { position: absolute; top: 19px; right: 22px; color: rgba(255,255,255,.13); font: 800 54px/1 var(--display); }
.card-icon { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 56px; }
.card-icon img { width: 100%; height: 100%; object-fit: contain; }
.card-kicker { margin: 0 0 10px; color: var(--yellow); font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.program-card h3 { margin: 0 0 18px; font: 800 36px/1 var(--display); text-transform: uppercase; }
.program-card > p:not(.card-kicker) { margin: 0; color: rgba(255,255,255,.68); font-size: 15px; }
.program-card ul { display: grid; gap: 9px; margin: 24px 0 30px; padding: 0; list-style: none; font-size: 13px; }
.program-card li::before { margin-right: 9px; color: var(--yellow); content: "●"; font-size: 8px; }
.program-card > a { margin-top: auto; padding-top: 17px; border-top: 1px solid rgba(255,255,255,.15); font-size: 13px; font-weight: 800; }
.program-card > a span { float: right; color: var(--yellow); font-size: 20px; }

.courses { padding: 110px 24px; background: #e8eff8; }
.courses-inner { width: min(var(--max),100%); margin: 0 auto; }
.course-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.course-card { display: flex; flex-direction: column; min-height: 590px; padding: 28px; color: white; background: var(--navy-2); border: 1px solid var(--navy-2); box-shadow: 0 16px 45px rgba(7,26,61,.13); }
.course-card-accent { color: white; background: var(--navy-2); border-color: var(--navy-2); }
.course-top { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 35px; }
.course-top > span { display: grid; width: 37px; height: 37px; place-items: center; flex: 0 0 auto; color: var(--navy); background: var(--yellow); border-radius: 50%; font: 800 15px/1 var(--display); }
.course-top p { margin: 0; color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-align: right; }
.course-card-accent .course-top p { color: var(--yellow); }
.course-card h3 { margin: 0 0 16px; font: 800 34px/1 var(--display); text-transform: uppercase; }
.course-intro { min-height: 108px; margin: 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.55; }
.course-card-accent .course-intro { color: rgba(255,255,255,.7); }
.course-card dl { display: grid; gap: 0; margin: 24px 0; }
.course-card dl div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.14); }
.course-card-accent dl div { border-color: rgba(255,255,255,.14); }
.course-card dt { color: rgba(255,255,255,.52); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.course-card-accent dt { color: rgba(255,255,255,.5); }
.course-card dd { margin: 0; font-size: 12px; font-weight: 700; text-align: right; }
.course-price { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 0 8px; margin-top: auto; padding-top: 18px; border-top: 3px solid var(--yellow); }
.course-price > span { grid-column: 1 / -1; color: rgba(255,255,255,.56); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.course-card-accent .course-price > span { color: rgba(255,255,255,.55); }
.course-price strong { color: var(--yellow); font: 800 33px/1 var(--display); }
.course-card-accent .course-price strong { color: var(--yellow); }
.course-price small { padding-bottom: 2px; color: rgba(255,255,255,.6); font-size: 10px; line-height: 1.25; }
.course-card-accent .course-price small { color: rgba(255,255,255,.58); }
.course-price-text strong { font-size: 29px; }
.course-price-flexible { display: block; }
.course-price-flexible strong { display: block; margin-top: 4px; font-size: 23px; line-height: 1.05; }
.course-price-flexible small { display: block; margin-top: 8px; font-size: 11px; line-height: 1.4; }
.course-cta { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: 20px; padding: 0 15px; color: var(--navy); background: var(--yellow); font-size: 12px; font-weight: 800; }
.course-cta span { font-size: 18px; }
.course-note { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; margin-top: 22px; padding: 23px 27px; color: white; background: var(--navy); }
.course-note img { width: 58px; height: 58px; object-fit: contain; }
.course-note p { margin: 0; color: rgba(255,255,255,.72); font-size: 13px; }
.course-note p strong { display: block; margin-bottom: 3px; color: white; font-size: 15px; }
.course-note > a { padding-bottom: 3px; color: var(--yellow); border-bottom: 1px solid var(--yellow); font-size: 12px; font-weight: 800; white-space: nowrap; }
.price-disclaimer { max-width: 900px; margin: 15px auto 0; color: var(--muted); font-size: 11px; text-align: center; }

.academy-story { display: grid; grid-template-columns: 1fr 1fr; min-height: 700px; background: #eef3fa; }
.story-image { position: relative; display: grid; grid-template-columns: repeat(2,1fr); gap: 4px; min-height: 650px; align-content: center; overflow: hidden; background: var(--navy); }
.story-image figure { margin: 0; overflow: hidden; background: var(--navy); }
.story-image img { width: 100%; height: auto; }
.image-tag { position: absolute; right: 0; bottom: 0; padding: 16px 25px; color: var(--navy); background: var(--yellow); font: 800 19px/1 var(--display); letter-spacing: .09em; }
.story-copy { display: flex; flex-direction: column; justify-content: center; max-width: 610px; padding: 80px 7vw; }
.story-copy > p:not(.eyebrow) { color: var(--muted); }
.large-copy { color: var(--ink) !important; font-size: clamp(18px,2vw,23px); font-weight: 600; line-height: 1.5; }
.story-links { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 20px; }
.story-links a { padding-bottom: 4px; border-bottom: 2px solid var(--yellow); font-size: 13px; font-weight: 800; }

.method { max-width: none; color: white; background: var(--navy); }
.method-intro, .method-steps { width: min(var(--max),calc(100% - 48px)); margin-inline: auto; }
.method-intro { display: grid; grid-template-columns: 1.4fr .6fr; gap: 70px; align-items: end; }
.method-intro h2 span { color: var(--yellow); }
.method-intro > p:last-child { margin: 0; color: rgba(255,255,255,.65); }
.method-steps { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 75px; border-top: 1px solid rgba(255,255,255,.2); }
.method-steps article { padding: 30px 26px 10px 0; border-right: 1px solid rgba(255,255,255,.16); }
.method-steps article + article { padding-left: 26px; }
.method-steps article:last-child { border: 0; }
.method-steps strong { color: var(--yellow); font: 800 19px/1 var(--display); }
.method-steps h3 { margin: 45px 0 10px; font: 800 27px/1 var(--display); text-transform: uppercase; }
.method-steps p { margin: 0; color: rgba(255,255,255,.58); font-size: 14px; }

.location-grid { display: grid; grid-template-columns: repeat(2,1fr); border: 1px solid var(--line); }
.location-grid article { min-height: 270px; padding: 31px; background: white; }
.location-grid article + article { border-left: 1px solid var(--line); }
.location-logo { display: grid; width: 240px; max-width: 100%; aspect-ratio: 4 / 3; margin-bottom: 27px; padding: 22px; place-items: center; overflow: hidden; background: white; border: 1px solid var(--line); }
.location-logo img { width: 100%; height: 100%; object-fit: contain; }
.location-logo-peking { padding: 15px 55px; }
.location-grid span { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.location-grid h3 { margin: 28px 0 12px; font: 800 37px/1 var(--display); text-transform: uppercase; }
.location-grid p { color: var(--muted); font-size: 14px; }
.location-grid a { display: inline-block; margin-top: 15px; color: var(--blue); font-size: 13px; font-weight: 800; }

.about { position: relative; display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; align-items: center; overflow: hidden; }
.about-mark { display: grid; width: 330px; max-width: 100%; aspect-ratio: 1; padding: 22px; place-items: center; background: var(--navy); border-radius: 50%; }
.about-mark img { width: 100%; height: 100%; object-fit: contain; }
.about > div:last-child { max-width: 690px; }
.about > div:last-child > p:not(.eyebrow) { color: var(--muted); }
.quote { margin-top: 25px; padding: 18px 22px; color: var(--navy); background: #eef3fa; border-left: 4px solid var(--yellow); font-weight: 700; }

.partners { max-width: none; text-align: center; background: #eef3fa; }
.partner-row { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; width: min(1120px,calc(100% - 48px)); margin: 34px auto; }
.partner-card { overflow: hidden; margin: 0; background: white; border: 1px solid var(--line); box-shadow: 0 12px 30px rgba(8,31,64,.08); }
.partner-logo-frame { display: grid; aspect-ratio: 4 / 3; padding: 32px; place-items: center; overflow: hidden; background: white; }
.partner-logo-frame img { width: 100%; height: 100%; object-fit: contain; }
.partner-peking .partner-logo-frame { padding: 20px 74px; }
.partner-orange .partner-logo-frame { padding: 36px 28px; background: var(--navy); }
.partner-note { max-width: 650px; margin: 0 auto 15px; color: var(--muted); }
.partners > a { color: var(--blue); font-weight: 800; }

.contact { display: grid; grid-template-columns: 1.05fr .95fr; gap: 70px; padding: 100px max(24px,calc((100vw - var(--max)) / 2)); color: white; background: var(--blue); }
.contact-copy p:last-child { max-width: 560px; color: rgba(255,255,255,.73); }
.contact-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-content: center; }
.contact-actions a { display: grid; min-height: 103px; padding: 21px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); }
.contact-actions a:hover { background: rgba(255,255,255,.16); }
.contact-actions .contact-primary { color: var(--navy); background: var(--yellow); border-color: var(--yellow); }
.contact-actions span { font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.contact-actions strong { align-self: end; font-size: 14px; }

footer { display: grid; grid-template-columns: 1fr 1.4fr 1fr auto; gap: 35px; align-items: center; padding: 40px max(24px,calc((100vw - var(--max)) / 2)); color: rgba(255,255,255,.7); background: #041128; font-size: 12px; }
.footer-brand { color: white; }
footer p { margin: 0; }
footer > div { display: flex; flex-wrap: wrap; gap: 12px 20px; }
footer > div a:hover { color: var(--yellow); }

/* Röster & ögonblick */
.voices-hero { display: grid; grid-template-columns: minmax(0,.88fr) minmax(520px,1.12fr); min-height: 670px; color: white; background: var(--navy); }
.voices-hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 90px max(42px,calc((100vw - var(--max)) / 2)); padding-right: clamp(45px,6vw,95px); }
.voices-hero-copy::before { position: absolute; top: 60px; left: max(24px,calc((100vw - var(--max)) / 2)); width: 72px; height: 6px; content: ""; background: var(--yellow); }
.voices-hero h1 { max-width: 650px; margin: 0; font: 800 clamp(57px,6.7vw,98px)/.88 var(--display); letter-spacing: -.035em; text-transform: uppercase; }
.voices-hero-copy > p:not(.eyebrow) { max-width: 580px; margin: 28px 0 0; color: rgba(255,255,255,.72); font-size: 18px; }
.voices-hero-copy .button { align-self: flex-start; margin-top: 32px; }
.voices-hero-image { position: relative; min-height: 670px; overflow: hidden; }
.voices-hero-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg,var(--navy),transparent 24%),linear-gradient(0deg,rgba(7,26,61,.55),transparent 55%); }
.voices-hero-image > img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.voices-hero-seal { position: absolute; z-index: 2; right: 28px; bottom: 28px; display: flex; align-items: center; gap: 13px; padding: 11px 16px; color: white; background: rgba(7,26,61,.94); border: 1px solid rgba(255,255,255,.25); }
.voices-hero-seal img { width: 54px; height: 54px; object-fit: contain; }
.voices-hero-seal span { padding-left: 13px; border-left: 1px solid rgba(255,213,0,.55); font-size: 9px; font-weight: 800; line-height: 1.25; letter-spacing: .12em; }
.voices-values { display: flex; align-items: center; justify-content: center; gap: clamp(22px,5vw,75px); min-height: 62px; padding: 12px 24px; color: var(--navy); background: var(--yellow); font: 800 19px/1 var(--display); letter-spacing: .1em; }
.voices-values i { width: 7px; height: 7px; flex: 0 0 auto; background: var(--blue); border-radius: 50%; }

.testimonials-heading { align-items: start; }
.testimonial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.testimonial-card { position: relative; display: flex; flex-direction: column; min-height: 340px; margin: 0; padding: 34px; overflow: hidden; background: white; border: 1px solid var(--line); box-shadow: 0 16px 45px rgba(7,26,61,.06); }
.testimonial-card::after { position: absolute; right: -50px; bottom: -65px; width: 150px; height: 150px; content: ""; border: 28px solid rgba(18,79,182,.08); border-radius: 50%; }
.testimonial-featured { grid-column: span 2; color: white; background: var(--navy); border-color: var(--navy); }
.testimonial-wide { grid-column: span 2; }
.testimonial-featured::after, .testimonial-dark::after { border-color: rgba(255,213,0,.13); }
.testimonial-blue { color: white; background: var(--blue); border-color: var(--blue); }
.testimonial-blue::after { border-color: rgba(255,213,0,.2); }
.testimonial-dark { color: white; background: var(--navy-2); border-color: var(--navy-2); }
.testimonial-yellow { background: var(--yellow); border-color: var(--yellow); }
.testimonial-yellow .quote-mark { color: var(--blue); }
.quote-mark { position: relative; z-index: 1; height: 54px; color: var(--yellow); font: 800 76px/.8 Georgia,serif; }
.testimonial-card > p { position: relative; z-index: 1; margin: auto 0 35px; color: var(--ink); font-size: clamp(17px,1.55vw,22px); font-weight: 600; line-height: 1.55; }
.testimonial-featured > p { max-width: 850px; font-size: clamp(22px,2.25vw,31px); line-height: 1.4; }
.testimonial-featured > p, .testimonial-blue > p, .testimonial-dark > p { color: white; }
.testimonial-card cite { position: relative; z-index: 1; display: grid; padding-top: 17px; border-top: 1px solid var(--line); font-style: normal; }
.testimonial-featured cite, .testimonial-blue cite, .testimonial-dark cite { border-color: rgba(255,255,255,.18); }
.testimonial-card cite strong { color: var(--blue); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.testimonial-featured cite strong, .testimonial-blue cite strong, .testimonial-dark cite strong { color: var(--yellow); }
.testimonial-card cite span { margin-top: 4px; color: var(--muted); font-size: 12px; }
.testimonial-featured cite span, .testimonial-blue cite span, .testimonial-dark cite span { color: rgba(255,255,255,.58); }
.match-result { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; margin-top: 14px; padding: 28px 32px; color: white; background: var(--blue); border-left: 8px solid var(--yellow); }
.match-result div { display: grid; }
.match-result div span { color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.match-result div strong { margin-top: 4px; font: 800 42px/1 var(--display); }
.match-result blockquote { margin: 0; font-size: 19px; font-weight: 700; }
.match-result > p { margin: 0; color: rgba(255,255,255,.6); font-size: 11px; text-align: right; }

.academy-gallery { max-width: 1380px; }
.gallery-grid { columns: 3 330px; column-gap: 14px; }
.gallery-card { position: relative; width: 100%; margin: 0 0 14px; overflow: hidden; break-inside: avoid; background: var(--navy); }
.gallery-card img { width: 100%; height: auto; transition: transform .45s ease; }
.gallery-card:hover img { transform: scale(1.025); }
.gallery-card::after { position: absolute; inset: 35% 0 0; content: ""; background: linear-gradient(0deg,rgba(4,17,40,.92),transparent); }
.gallery-card figcaption { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: 28px; color: white; }
.gallery-card figcaption span { display: block; margin-bottom: 7px; color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.gallery-card figcaption strong { display: block; max-width: 600px; font: 700 clamp(18px,2vw,27px)/1.05 var(--display); text-transform: uppercase; }

.brand-belief { display: flex; align-items: center; justify-content: center; gap: clamp(28px,5vw,70px); padding: 85px 24px; color: white; background: var(--navy); }
.brand-belief img { width: clamp(110px,14vw,185px); height: clamp(110px,14vw,185px); object-fit: contain; }
.brand-belief p { margin: 0 0 10px; color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.brand-belief h2 { margin: 0; font: 800 clamp(40px,5vw,69px)/.95 var(--display); letter-spacing: -.02em; text-transform: uppercase; }
.brand-belief h2 span { color: var(--yellow); }

.review-invitation { display: grid; grid-template-columns: 1.2fr .8fr; gap: 70px; align-items: center; }
.review-invitation h2 { margin: 0; font: 800 clamp(45px,5.6vw,74px)/.94 var(--display); letter-spacing: -.025em; text-transform: uppercase; }
.review-invitation > div > p:last-child { max-width: 700px; color: var(--muted); }
.review-card { display: grid; min-height: 235px; padding: 32px; color: white; background: var(--blue); border-bottom: 8px solid var(--yellow); transition: transform .2s ease, box-shadow .2s ease; }
.review-card:hover { transform: translateY(-5px); box-shadow: 0 25px 50px rgba(7,26,61,.16); }
.review-card span { color: var(--yellow); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.review-card strong { align-self: end; font: 800 34px/1 var(--display); text-transform: uppercase; }
.review-card small { margin-top: 8px; color: rgba(255,255,255,.7); }

@media (max-width: 1120px) {
  .course-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .course-card { min-height: 545px; }
  .course-intro { min-height: 85px; }
  .testimonial-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .site-header { padding-inline: 22px; }
  .language-switcher { margin-left: auto; margin-right: 10px; }
  .menu-button { display: block; }
  .site-nav { position: fixed; top: 82px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 15px 22px 25px; background: var(--navy); border-top: 1px solid rgba(255,255,255,.12); }
  .site-nav.open { display: flex; }
  .site-nav a { padding: 15px 4px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .site-nav .nav-cta { margin-top: 12px; text-align: center; border: 0; }
}

@media (max-width: 980px) {
  .site-header { padding-inline: 22px; }
  .language-switcher { margin-left: auto; margin-right: 10px; }
  .menu-button { display: block; }
  .site-nav { position: fixed; top: 82px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 15px 22px 25px; background: var(--navy); border-top: 1px solid rgba(255,255,255,.12); }
  .site-nav.open { display: flex; }
  .site-nav a { padding: 15px 4px; border-bottom: 1px solid rgba(255,255,255,.12); }
  .site-nav .nav-cta { margin-top: 12px; text-align: center; border: 0; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 620px; padding: 85px 30px 60px; }
  .hero-visual { min-height: 540px; }
  .program-grid { grid-template-columns: 1fr; }
  .program-card { min-height: 460px; }
  .academy-story { grid-template-columns: 1fr; }
  .story-image { grid-template-columns: repeat(4,1fr); min-height: 0; padding: 4px; align-items: center; }
  .story-copy { max-width: 800px; }
  .method-intro { grid-template-columns: 1fr; gap: 25px; }
  .method-steps { grid-template-columns: repeat(2,1fr); }
  .method-steps article:nth-child(2) { border-right: 0; }
  .method-steps article:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.16); }
  .partner-row { grid-template-columns: repeat(2,1fr); }
  .contact { grid-template-columns: 1fr; }
  .voices-hero { grid-template-columns: 1fr; }
  .voices-hero-copy { min-height: 570px; padding: 105px 30px 70px; }
  .voices-hero-copy::before { left: 30px; }
  .voices-hero-image { min-height: 520px; }
  .review-invitation { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 650px) {
  .brand span { display: none; }
  .brand img { width: 48px; height: 48px; }
  .hero-copy { min-height: auto; padding-block: 70px; }
  .hero h1 { font-size: clamp(54px,17vw,78px); }
  .hero-lead { font-size: 16px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-proof { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 20px; }
  .hero-proof strong { font-size: 23px; }
  .hero-proof span { font-size: 10px; }
  .hero-visual { min-height: 510px; }
  .hero-visual > img { object-position: 53% 43%; }
  .ticker div { justify-content: flex-start; }
  .section { padding: 80px 20px; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 20px; }
  .program-card { padding: 27px; }
  .courses { padding: 80px 20px; }
  .course-grid { grid-template-columns: 1fr; }
  .course-card { min-height: 0; padding: 25px; }
  .course-intro { min-height: 0; }
  .course-note { grid-template-columns: auto 1fr; }
  .course-note > a { grid-column: 1 / -1; justify-self: start; }
  .story-image { grid-template-columns: repeat(2,1fr); min-height: 0; }
  .story-copy { padding: 70px 24px; }
  .method-intro, .method-steps { width: calc(100% - 40px); }
  .method-steps { grid-template-columns: 1fr; }
  .method-steps article, .method-steps article + article { padding: 27px 0; border-right: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .method-steps h3 { margin-top: 22px; }
  .location-grid { grid-template-columns: 1fr; }
  .location-grid article + article { border-top: 1px solid var(--line); border-left: 0; }
  .about { grid-template-columns: 1fr; gap: 45px; }
  .about-mark { width: 210px; font-size: 150px; }
  .partner-row { grid-template-columns: 1fr; }
  .contact { padding: 80px 20px; }
  .contact-actions { grid-template-columns: 1fr; }
  .voices-hero h1 { font-size: clamp(52px,15vw,76px); }
  .voices-hero-copy { min-height: 520px; padding: 95px 22px 60px; }
  .voices-hero-copy::before { top: 45px; left: 22px; }
  .voices-hero-image { min-height: 410px; }
  .voices-values { justify-content: flex-start; gap: 18px; overflow: hidden; font-size: 15px; white-space: nowrap; }
  .testimonial-grid { grid-template-columns: 1fr; }
  .testimonial-featured, .testimonial-wide { grid-column: auto; }
  .testimonial-card { min-height: 300px; padding: 28px; }
  .testimonial-featured > p { font-size: 21px; }
  .match-result { display: block; padding: 27px 24px; }
  .match-result blockquote { margin-top: 22px; }
  .match-result > p { margin-top: 13px; text-align: left; }
  .gallery-grid { columns: 1; }
  .brand-belief { align-items: flex-start; flex-direction: column; }
  .review-invitation { gap: 35px; }
  .review-card { min-height: 210px; }
  footer { grid-template-columns: 1fr; padding: 45px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
