@font-face{font-family:'League Spartan';src:url(../fonts/league-spartan-latin.woff2?v=1) format('woff2');font-weight:200 900;font-display:swap}
@font-face{font-family:'Sora';src:url(../fonts/sora-latin.woff2?v=1) format('woff2');font-weight:100 800;font-display:swap}
@font-face{font-family:'Red Hat Display';src:url(../fonts/red-hat-display-latin.woff2?v=1) format('woff2');font-weight:300 900;font-display:swap}
@font-face{font-family:'Onest';src:url(../fonts/onest-latin.woff2?v=1) format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC-20BF,U+2122}
@font-face{font-family:'Onest';src:url(../fonts/onest-cyrillic.woff2?v=1) format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0400-04FF}
@font-face{font-family:'Golos Text';src:url(../fonts/golos-text-latin.woff2?v=1) format('woff2');font-weight:400 900;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC-20BF,U+2122}
@font-face{font-family:'Golos Text';src:url(../fonts/golos-text-cyrillic.woff2?v=1) format('woff2');font-weight:400 900;font-display:swap;unicode-range:U+0400-04FF}
@font-face{font-family:'Manrope';src:url(../fonts/manrope-latin.woff2?v=1) format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC-20BF,U+2122}
@font-face{font-family:'Manrope';src:url(../fonts/manrope-cyrillic.woff2?v=1) format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0400-04FF}

:root{
  --bg:#FCFCFB; --tint:#F4F3F6; --ink:#1A1822; --ink-2:#55525F; --ink-3:#7B7885; --line:#E4E2E8;
  --red:#EB4034; --orange:#F4763A; --amber:#FAAA3E; --hot:#D4301F;
  --grad:linear-gradient(90deg,#EB4034,#F4763A 55%,#FAAA3E);
  --grad-word:linear-gradient(90deg,#E23426,#F2692F);
  --grad-btn:linear-gradient(90deg,#C92A18,#E4501F);
  --f-head:'League Spartan','Onest',system-ui,sans-serif; --f-body:'Onest',system-ui,sans-serif;
  --page-max:1560px; --page-gut:clamp(20px,3.4vw,52px); --sec:clamp(56px,8vw,116px);
  --r:20px; --e:cubic-bezier(.22,1,.36,1); --e-menu:cubic-bezier(.76,0,.24,1);
  --logo-m:url(#gm); --logo-w:url(#gw);
}
html[data-hfont="2"]{--f-head:'Sora','Onest',sans-serif}
html[data-hfont="3"]{--f-head:'Red Hat Display','Onest',sans-serif}
html[data-bfont="2"]{--f-body:'Golos Text',system-ui,sans-serif}
html[data-bfont="3"]{--f-body:'Manrope',system-ui,sans-serif}

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
html{-webkit-text-size-adjust:100%;scroll-padding-top:20px}
html.is-locked{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font:400 clamp(16px,1.15vw,18px)/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
main{overflow-x:clip;display:block}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
h1,h2,h3,p{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--hot);outline-offset:3px;border-radius:4px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.wrap{max-width:var(--page-max);margin-inline:auto;padding-inline:var(--page-gut);width:100%}
.sec{padding-block:var(--sec)}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;z-index:10001}
.skip:focus{top:12px}

h1,h2,.h3{font-family:var(--f-head);font-weight:700;letter-spacing:-.022em}
h2{font-size:clamp(36px,5.2vw,78px);line-height:1}
.h3{font-size:clamp(23px,2.1vw,32px);line-height:1.06;letter-spacing:-.015em}
.hl{background:var(--grad-word);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.1em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.lead{font-size:clamp(17px,1.4vw,21px);line-height:1.5;color:var(--ink-2);max-width:60ch}

/* ─ Buttons: the box never moves, the hover happens inside it ─ */
.btn{--btn-bg:var(--ink);--btn-fg:#fff;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;min-height:52px;padding:0 28px;border-radius:999px;background:var(--btn-bg);color:var(--btn-fg);font:600 16px/1 var(--f-body);transition:color .3s ease,scale .16s ease-out}
.btn:active{scale:.98}
.btn>span{position:relative;z-index:1}
.btn::before,.btn::after{content:"";position:absolute;pointer-events:none;z-index:0}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.on-dark .btn{--btn-bg:#fff;--btn-fg:var(--ink)}
.on-dark .btn--ghost{--btn-bg:transparent;--btn-fg:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.btn--sm{min-height:46px;padding:0 22px;font-size:15px}
/* Style 1: a slanted bar at the logo's angle sweeps across and fills */
html[data-btn="1"] .btn::before{inset:-2px -40%;background:var(--grad-btn);transform:translateX(-101%) skewX(-36deg);transition:transform .55s var(--e)}
@media (hover:hover){html[data-btn="1"] .btn:hover::before{transform:translateX(0) skewX(-36deg)}html[data-btn="1"] .btn:hover{color:#fff}}
/* Style 2: square-shouldered, a run of logo bars streaks through and leaves the colour behind */
html[data-btn="2"] .btn{border-radius:12px}
html[data-btn="2"] .btn::before{top:0;bottom:0;left:-120%;width:120%;background:repeating-linear-gradient(-54deg,#E4501F 0 12px,transparent 12px 24px);transition:transform .7s var(--e)}
html[data-btn="2"] .btn::after{inset:0;background:var(--grad-btn);opacity:0;transition:opacity .3s ease}
@media (hover:hover){html[data-btn="2"] .btn:hover::before{transform:translateX(200%)}html[data-btn="2"] .btn:hover::after{opacity:1;transition-delay:.18s}html[data-btn="2"] .btn:hover{color:#fff}}
/* Style 3: outlined, colour blooms from the exact point the cursor enters */
html[data-btn="3"] .btn{--btn-bg:transparent;--btn-fg:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
html[data-btn="3"] .on-dark .btn{--btn-fg:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.8)}
html[data-btn="3"] .btn::before{left:var(--x,50%);top:var(--y,50%);width:640px;height:640px;margin:-320px 0 0 -320px;border-radius:50%;background:var(--grad-btn);transform:scale(0);transition:transform .6s var(--e)}
@media (hover:hover){html[data-btn="3"] .btn:hover::before{transform:scale(1)}html[data-btn="3"] .btn:hover{color:#fff}}

/* ─ Header ─ */
.hd{position:absolute;inset:0 0 auto 0;z-index:9999;height:84px;color:var(--ink)}
.hd__in{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.hd__logo{display:block;flex:none;width:clamp(190px,17vw,250px)}
.hd__logo svg{display:block;width:100%;height:auto;overflow:visible}
.hd__nav{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:fit-content;height:fit-content;display:flex;gap:clamp(18px,2.4vw,38px);font:600 17px/1 var(--f-head);letter-spacing:-.005em}
.hd__nav a{position:relative;padding:8px 0}
.hd__nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;border-radius:3px;background:var(--grad);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--e)}
@media (hover:hover){.hd__nav a:hover::after{transform:scaleX(1);transform-origin:left}}
.hd__act{position:relative;display:flex;align-items:center;gap:12px;z-index:2}
.hd__burger{display:none;width:46px;height:46px;border-radius:50%;background:var(--ink);position:relative;overflow:hidden;flex:none}
.hd__burger i{position:absolute;left:13px;right:13px;height:2px;border-radius:2px;background:#fff;transition:transform .5s var(--e-menu)}
.hd__burger i:nth-child(1){top:18px;transform-origin:center}
.hd__burger i:nth-child(2){top:26px;transform-origin:center}
.is-menu .hd__burger i:nth-child(1){transform:translateY(4px) rotate(45deg)}
.is-menu .hd__burger i:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
/* Header 2: a floating island */
html[data-header="2"] .hd{top:16px}
@media (min-width:1024px){
  html[data-header="2"] .hd__in{background:#fff;border-radius:999px;box-shadow:0 10px 40px rgba(26,24,34,.1);width:calc(100% - 2*var(--page-gut));max-width:calc(var(--page-max) - 2*var(--page-gut));padding-inline:26px 10px;height:72px;margin-top:6px}
  html[data-header="2"] .hd__logo{width:200px}
  html[data-hero="2"][data-header="2"] .hd{--logo-m:url(#gm);--logo-w:url(#gw);color:var(--ink)}
}
/* Header 3: two slanted tabs hanging from the top edge */
@media (min-width:1024px){
  html[data-header="3"] .hd{height:92px}
  html[data-header="3"] .hd__in{align-items:flex-start}
  html[data-header="3"] .hd__logo{position:relative;padding:18px 44px 18px 0;width:auto}
  html[data-header="3"] .hd__logo svg{position:relative;width:220px;z-index:1}
  html[data-header="3"] .hd__logo::before{content:"";position:absolute;inset:0 0 0 -60vw;background:#fff;transform:skewX(-36deg);transform-origin:top right;border-radius:0 0 18px 0;box-shadow:0 14px 30px rgba(26,24,34,.08)}
  html[data-header="3"] .hd__nav{position:absolute;left:0;right:0;top:0;bottom:auto;margin:auto;padding:0 48px;height:60px;align-items:center;color:#fff}
  html[data-header="3"] .hd__nav::before{content:"";position:absolute;inset:0;background:var(--ink);transform:skewX(-36deg);border-radius:0 0 16px 16px;z-index:-1}
  html[data-header="3"] .hd__act{margin-top:12px}
  html[data-hero="2"][data-header="3"] .hd{--logo-m:url(#gm);--logo-w:url(#gw)}
}
html[data-hero="2"] .hd{--logo-m:#fff;--logo-w:#fff;color:#fff}
html[data-hero="2"] .hd .btn{--btn-bg:#fff;--btn-fg:var(--ink)}
html[data-hero="2"] .hd__burger{background:#fff}
html[data-hero="2"] .hd__burger i{background:var(--ink)}

@media (max-width:1023px){
  .hd{height:72px}
  .hd__nav,.hd__act .btn{display:none}
  .hd__burger{display:block}
  .hd__logo{width:186px}
  /* three states on phones: in flow, fixed + hidden, fixed + shown */
  .hd.is-fixed{position:fixed;background:#fff;color:var(--ink);--logo-m:url(#gm);--logo-w:url(#gw);transform:translate3d(0,calc(-100% - 24px),0);opacity:0;pointer-events:none;will-change:transform}
  .hd.is-anim{transition:transform .6s var(--e),opacity .6s var(--e)}
  .hd.is-fixed.is-shown{transform:translate3d(0,0,0);opacity:1;pointer-events:auto}
  .hd.is-fading{transform:translate3d(0,0,0);opacity:0;transition:opacity .45s ease}
  .hd.is-fixed .hd__burger{background:var(--ink)}
  .hd.is-fixed .hd__burger i{background:#fff}
  html[data-header="2"] .hd{top:10px;inset-inline:10px;width:auto;background:#fff;border-radius:999px;height:62px;box-shadow:0 10px 30px rgba(26,24,34,.1);--logo-m:url(#gm);--logo-w:url(#gw);color:var(--ink)}
  html[data-header="2"] .hd .hd__burger{background:var(--ink)}
  html[data-header="2"] .hd .hd__burger i{background:#fff}
  html[data-header="2"] .hd__in{padding-inline:18px 8px}
  html[data-header="3"] .hd__in{padding-right:0}
  html[data-header="3"] .hd__burger{width:84px;height:72px;border-radius:0 0 0 18px;transform:none}
  html[data-header="3"] .hd__burger i{left:30px;right:30px}
  html[data-header="3"] .hd__burger i:nth-child(1){top:31px}
  html[data-header="3"] .hd__burger i:nth-child(2){top:39px}
  .hd.is-menu{position:fixed!important;background:transparent!important;transform:none!important;opacity:1!important;pointer-events:auto!important;box-shadow:none!important;--logo-m:#fff;--logo-w:#fff;color:#fff}
  .hd.is-menu .hd__burger{background:#fff!important}
  .hd.is-menu .hd__burger i{background:var(--ink)!important}
}

/* ─ Slide-down menu ─ */
.menu{position:fixed;inset:0;z-index:9998;background:linear-gradient(150deg,#C92A18,#E4501F 70%,#EE7A2E);color:#fff;transform:translate3d(0,-101%,0);visibility:hidden;transition:transform .7s var(--e-menu),visibility 0s linear .7s;display:flex;flex-direction:column;justify-content:center;padding:96px var(--page-gut) 36px;overflow:hidden}
.menu.is-open{transform:none;visibility:visible;transition:transform .7s var(--e-menu),visibility 0s}
.menu__links{display:flex;flex-direction:column;gap:clamp(4px,1.2svh,12px)}
.menu__links a{display:block;font:700 clamp(38px,11svw,64px)/1.08 var(--f-head);letter-spacing:-.02em}
.menu [data-mi]{opacity:0;transform:translateY(26px);transition:opacity .45s ease,transform .6s var(--e);transition-delay:calc((var(--n) - var(--i))*.035s)}
.menu.is-open [data-mi]{opacity:1;transform:none;transition-delay:calc(.26s + var(--i)*.06s)}
.menu__foot{margin-top:clamp(20px,4svh,40px);display:flex;flex-direction:column;gap:6px;font-weight:500;font-size:17px}
.menu__bars{position:absolute;right:-90px;bottom:-60px;width:340px;opacity:.16;--logo-m:#fff;pointer-events:none}
@media (min-width:1024px){.menu{display:none}}

/* ─ Hero shared ─ */
.hero{position:relative;overflow:clip}
.hero__v{display:none}
html[data-hero="1"] .hero__v--1,html[data-hero="2"] .hero__v--2,html[data-hero="3"] .hero__v--3{display:block}
.hero h1{line-height:.96}
.l{display:block;overflow:hidden;padding-top:.14em;margin-top:-.14em;padding-bottom:.1em;margin-bottom:-.1em}
.l>span{display:block}
@keyframes lineUp{from{transform:translateY(112%)}to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .l>span{animation:lineUp 1.15s var(--e) both;animation-delay:calc(.15s + var(--d,0)*.11s)}
  .fade-in{animation:fadeUp 1s var(--e) both;animation-delay:calc(.45s + var(--d,0)*.1s)}
}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}

html[data-header="2"] .hero__v--1,html[data-header="2"] .hero__v--3{padding-top:clamp(112px,16svh,148px)}
.on-dark .hl{background-image:linear-gradient(90deg,#F4763A,#FAAA3E)}
/* Hero 1: the team in front of the brand's own bars */
.hero__v--1{height:max(100svh,700px);max-height:1100px;position:relative;padding-top:clamp(104px,14svh,132px)}
.h1__copy{position:relative;z-index:4}
.h1__copy h1{font-size:clamp(40px,min(6.3vw,11.6svh),104px)}
.h1__sub{margin-top:clamp(16px,2.6svh,26px);max-width:27em;color:var(--ink-2);font-size:clamp(17px,1.35vw,20px);line-height:1.45}
.h1__copy .cta-row{margin-top:clamp(18px,3svh,30px)}
.h1__stage{position:absolute;inset:0;z-index:1;pointer-events:none}
.h1__mark{position:absolute;right:-3.4vw;bottom:-7%;height:min(98svh,74vw);aspect-ratio:380/408;will-change:transform}
.h1__mark svg{display:block;width:100%;height:100%;overflow:visible}
.h1__mark path{fill:var(--logo-m)}
.bar{transform-box:fill-box}
@keyframes barIn{from{opacity:0;transform:translate(-34%,24%)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){.h1__mark .bar{animation:barIn 1.5s var(--e) both;animation-delay:calc(.05s + var(--b)*.07s)}}
.h1__team{position:absolute;right:calc(var(--page-gut)*.6);bottom:-7%;width:min(66vw,calc(100svh*1.32));will-change:transform;z-index:2}
.h1__team img{width:100%}
@media (prefers-reduced-motion:no-preference){.h1__team img{animation:fadeUp 1.3s var(--e) .35s both}}
.tag{position:absolute;z-index:3;display:flex;align-items:center;gap:0;height:clamp(38px,5.4svh,52px);padding:0 clamp(20px,2vw,30px);border-radius:999px;background:#fff;color:var(--ink);font:700 clamp(17px,1.5vw,22px)/1 var(--f-head);box-shadow:0 14px 34px rgba(26,24,34,.16);will-change:transform;white-space:nowrap}
.tag span{display:block;padding-top:.12em}
.tag--ink{background:var(--ink);color:#fff}
.tagwrap{position:absolute;z-index:3;transform:rotate(-36deg)}
.tagwrap .tag{position:static}
.tw1{left:-3%;top:27%}.tw2{left:-6%;bottom:20%}.tw3{right:-1%;top:-17%}.tw4{right:3%;bottom:20%}

/* Hero 2: full-screen slideshow */
.hero__v--2{height:100svh;min-height:600px;position:relative;color:#fff;background:var(--ink)}
.s2__slide{position:absolute;inset:0;opacity:0;overflow:hidden}
.s2__slide img{width:100%;height:100%;object-fit:cover;will-change:transform}
.s2__slide.is-on{opacity:1}
.s2__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,24,34,.62) 0,rgba(26,24,34,.14) 26%,rgba(26,24,34,.5) 56%,rgba(26,24,34,.9) 100%)}
.s2__copy{position:absolute;left:0;right:0;bottom:clamp(48px,9svh,90px);z-index:2}
.s2__copy h1{font-size:clamp(42px,min(7vw,13svh),118px)}
.s2__copy p{margin-top:16px;max-width:30em;font-size:clamp(17px,1.35vw,20px);line-height:1.45;color:rgba(255,255,255,.9)}
.s2__copy .cta-row{margin-top:24px}
.s2__prog{position:absolute;left:0;right:0;bottom:0;height:6px;z-index:3;background:rgba(255,255,255,.2)}
.s2__prog i{display:block;height:100%;background:var(--grad);transform:scaleX(0);transform-origin:left}

/* Hero 3: a wide panorama with the course plan running across it */
.hero__v--3{padding-top:clamp(100px,13svh,124px);padding-bottom:clamp(16px,3svh,28px);min-height:100svh;display:none;position:relative}
html[data-hero="3"] .hero__v--3{display:flex;flex-direction:column}
.h3__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:40px;align-items:end}
.h3__top h1{font-size:clamp(40px,min(5.6vw,10.6svh),92px)}
.h3__side{max-width:25em;color:var(--ink-2);line-height:1.45}
.h3__side .cta-row{margin-top:16px}
.h3__pano{position:relative;flex:1;margin-top:clamp(18px,3svh,30px);min-height:300px;border-radius:calc(var(--r)*1.4);overflow:hidden;background:var(--tint)}
.h3__pano>img{position:absolute;left:0;top:-14%;width:100%;height:128%;object-fit:cover;object-position:50% 45%;will-change:transform}
.h3__plan{position:absolute;left:clamp(14px,2.2vw,32px);right:clamp(14px,2.2vw,32px);bottom:clamp(14px,2.2vw,32px);display:grid;gap:clamp(6px,1svh,10px)}
.h3__bar{height:clamp(34px,5.4svh,50px);border-radius:999px;background:var(--grad);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(14px,1.6vw,24px);color:#1A1822;font:700 clamp(15px,1.3vw,20px)/1 var(--f-head);width:calc(var(--h)/35*100%);transform-origin:left;white-space:nowrap;box-shadow:0 8px 24px rgba(26,24,34,.22);will-change:transform}
.h3__bar span{padding-top:.12em}
@keyframes grow{from{transform:scaleX(.06);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:no-preference){.h3__bar{animation:grow 1.3s var(--e) both;animation-delay:calc(.5s + var(--d)*.12s)}}

/* ─ Marquee ─ */
.mq{overflow:hidden;background:var(--ink);color:#fff;padding-block:clamp(13px,1.3vw,20px);position:relative;z-index:5}
.mq__t{display:flex;width:max-content;animation:mq 46s linear infinite}
.mq__g{display:flex;align-items:center;flex:none}
.mq__g span{font:600 clamp(19px,1.8vw,27px)/1.1 var(--f-head);white-space:nowrap;padding-top:.08em}
.mq__g i{display:block;width:clamp(26px,2.4vw,36px);height:7px;border-radius:7px;background:var(--grad);transform:rotate(-36deg);margin-inline:clamp(18px,2vw,32px);flex:none}
@keyframes mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.mq__t{animation-duration:160s}}

/* ─ About ─ */
.about__top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center}
.about__top .lead{margin-top:clamp(18px,2vw,28px)}
.about__top p+p{margin-top:14px}
.barstage{position:relative;aspect-ratio:1/.86}
.barwin{position:absolute;left:50%;top:50%;width:112%;height:52%;margin:-13% 0 0 -56%;border-radius:999px;overflow:hidden;transform:rotate(-36deg);background:var(--tint);will-change:transform}
.barwin__in{position:absolute;left:50%;top:50%;width:112%;aspect-ratio:3/2;margin-left:-56%;margin-top:-37.33%;transform:rotate(36deg)}
.barwin__in img{width:100%;height:100%;object-fit:cover;will-change:transform;scale:1.14}
.barx{position:absolute;border-radius:999px;background:var(--grad);transform:rotate(-36deg);will-change:transform}
.bx1{width:46%;height:10%;left:-5%;top:15%}
.bx2{width:40%;height:10%;right:-3%;bottom:10%}
.why{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,36px);margin-top:clamp(40px,5vw,72px);align-items:start}
.why article:nth-child(1){padding-top:clamp(0px,6vw,96px)}
.why article:nth-child(2){padding-top:clamp(0px,4vw,64px)}
.why article:nth-child(3){padding-top:clamp(0px,2vw,32px)}
.why i{display:block;height:10px;border-radius:10px;background:var(--grad);margin-bottom:18px;transform-origin:left}
.why article:nth-child(1) i{width:34%}.why article:nth-child(2) i{width:52%}.why article:nth-child(3) i{width:72%}.why article:nth-child(4) i{width:100%}
.why p{margin-top:8px;color:var(--ink-2);font-size:.97em;line-height:1.5}

.founders{margin-top:clamp(64px,8vw,112px)}
.founders__h{font-family:var(--f-head);font-weight:700;font-size:clamp(28px,3.4vw,50px);line-height:1.02;letter-spacing:-.02em}
.founders__g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4vw,64px);margin-top:clamp(28px,3vw,44px)}
.fd{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,2.6vw,40px);align-items:start}
.badge{position:relative;width:clamp(170px,15vw,220px);padding-top:66px;transform-origin:50% 0;will-change:transform}
.badge::before,.badge::after{content:"";position:absolute;top:-30px;width:15px;height:104px;background:var(--grad);border-radius:3px}
.badge::before{left:50%;margin-left:-22px;transform:rotate(-16deg)}
.badge::after{left:50%;margin-left:7px;transform:rotate(16deg)}
.badge__card{position:relative;z-index:1;background:#fff;border-radius:16px;padding:10px 10px 14px;box-shadow:0 20px 50px rgba(26,24,34,.14),0 0 0 1px rgba(26,24,34,.05)}
.badge__card::before{content:"";display:block;width:34px;height:7px;border-radius:7px;background:var(--line);margin:0 auto 9px}
.badge__ph{aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--ink)}
.badge__ph img{width:100%;height:116%;object-fit:cover;will-change:transform}
.badge__role{display:block;margin-top:10px;text-align:center;font:700 15px/1.15 var(--f-head);padding-top:.1em}
.fd__name{font:700 clamp(22px,1.9vw,29px)/1.08 var(--f-head);letter-spacing:-.015em}
.fd__cyr{display:block;margin-top:4px;color:var(--ink-3);font-size:.92em}
.fd__creds{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.fd__creds b{font-weight:600;font-size:13px;line-height:1;padding:7px 11px;border-radius:99px;background:var(--tint)}
.fd__yrs{margin-top:14px;font:700 clamp(34px,3vw,46px)/1 var(--f-head);letter-spacing:-.02em}
.fd__yrs small{font:500 15px/1.3 var(--f-body);letter-spacing:0;color:var(--ink-2);margin-left:6px}
.fd ul{margin-top:12px;display:grid;gap:6px;color:var(--ink-2);font-size:.95em;line-height:1.42}

/* ─ Courses as a Gantt chart ─ */
.courses{background:var(--tint)}
.courses .lead{margin-top:16px}
.gantt{margin-top:clamp(28px,4vw,52px);position:relative}
.gantt__axis{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);margin-bottom:10px;font-size:13px;font-weight:600;color:var(--ink-3)}
.gantt__ticks{display:flex;justify-content:space-between}
.grow{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);align-items:center;padding-block:clamp(18px,2vw,28px);border-top:1px solid var(--line)}
.grow__desc{margin-top:6px;color:var(--ink-2);font-size:.97em;line-height:1.45;max-width:44ch}
.grow__track{position:relative;height:clamp(52px,5.2vw,76px);background-image:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100%/7));background-size:100% 100%;border-right:1px solid var(--line)}
.grow__bar{position:absolute;left:0;top:0;bottom:0;width:calc(var(--h)/35*100%);border-radius:999px;background:var(--grad);transform-origin:left;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 clamp(16px,2vw,30px);color:var(--ink);white-space:nowrap}
.grow__bar b{font:700 clamp(21px,2.2vw,34px)/1 var(--f-head);letter-spacing:-.02em;padding-top:.1em}
.grow__bar small{font-size:clamp(13px,1vw,15px);font-weight:600}
.grow__meta{grid-column:2;margin-top:-6px;font-size:14.5px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 22px}
.grow__meta strong{color:var(--ink);font-weight:600}
.incl{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);padding-top:clamp(22px,2.6vw,36px);border-top:1px solid var(--line);align-items:center}
.incl ul{display:flex;flex-wrap:wrap;gap:8px}
.incl li{background:#fff;border-radius:99px;padding:9px 16px;font-size:15px;font-weight:500;line-height:1.2}

/* ─ Hours ─ */
.hours__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);align-items:center}
.hours .lead{margin-top:16px}
.hours__facts{margin-top:clamp(20px,2.4vw,32px);display:grid;gap:14px}
.hours__facts dt{font:700 clamp(19px,1.5vw,23px)/1.15 var(--f-head);padding-top:.1em}
.hours__facts dd{margin:2px 0 0;color:var(--ink-2);line-height:1.45}
.tt{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));gap:clamp(4px,.8vw,12px);height:clamp(340px,40vw,540px)}
.tt__times{position:relative;font-size:12.5px;font-weight:600;color:var(--ink-3)}
.tt__times span{position:absolute;left:0;transform:translateY(-50%);top:calc(var(--t)/12*100%)}
.tt__day{position:relative;background:var(--tint);border-radius:14px;display:block}
.tt__d{position:absolute;left:0;right:0;bottom:calc(100% + 6px);text-align:center;font:700 15px/1 var(--f-head)}
.tt{margin-top:26px}
.tt__s{position:absolute;left:clamp(3px,.4vw,6px);right:clamp(3px,.4vw,6px);top:calc(var(--a)/12*100%);bottom:calc((12 - var(--b))/12*100%);border-radius:10px;background:linear-gradient(180deg,#EB4034,#FAAA3E);display:flex;align-items:center;justify-content:center;transform-origin:top;color:var(--ink);font:700 clamp(15px,1.4vw,21px)/1 var(--f-head)}
.tt__s span{padding-top:.1em}
.tt__sum{margin-top:14px;padding-left:56px;display:flex;align-items:baseline;gap:10px}
.tt__sum b{font:700 clamp(36px,3.8vw,58px)/1 var(--f-head);letter-spacing:-.02em}
.tt__sum span{color:var(--ink-2)}

/* ─ Why PMP: one colour block ─ */
.pmp{background:var(--ink);color:#fff;position:relative;overflow:clip;z-index:2}
.pmp .wrap{position:relative;z-index:2}
.pmp__head{max-width:min(720px,52%)}
.pmp .lead{color:rgba(255,255,255,.76);margin-top:18px}
.pmp__win{position:absolute;right:-17%;top:-40%;width:min(64vw,980px);height:50%;border-radius:999px;overflow:hidden;transform:rotate(-36deg);transform-origin:50% 50%;background:#2b2935;z-index:1}
.pmp__win .in{position:absolute;left:50%;top:50%;width:100%;aspect-ratio:3/2;margin-left:-50%;margin-top:-33%;transform:rotate(36deg)}
.pmp__win img{width:100%;height:100%;object-fit:cover;will-change:transform;scale:1.18}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.6vw,40px);margin-top:clamp(28px,3vw,48px);align-items:start}
.stat b{display:block;font:700 clamp(46px,6vw,96px)/.92 var(--f-head);letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat small{font-size:.5em;letter-spacing:-.02em}
.stat p{margin-top:12px;color:rgba(255,255,255,.76);font-size:.97em;line-height:1.4;max-width:18ch}
.stat i{display:block;height:8px;border-radius:8px;background:var(--grad);margin-bottom:16px;transform-origin:left}
.stat:nth-child(1){padding-top:clamp(0px,9vw,144px)}.stat:nth-child(2){padding-top:clamp(0px,6vw,96px)}.stat:nth-child(3){padding-top:clamp(0px,3vw,48px)}

/* ─ Services: pinned horizontal board ─ */
.svc{position:relative;z-index:3;background:var(--bg);height:100svh;overflow:hidden;padding-block:clamp(14px,3svh,36px)}
.svc__track{display:flex;align-items:stretch;gap:clamp(16px,2vw,28px);height:100%;width:max-content;padding-left:max(var(--page-gut),calc((100vw - var(--page-max))/2 + var(--page-gut)));padding-right:var(--page-gut)}
.svc__intro{flex:none;width:clamp(320px,31vw,500px);align-self:center;will-change:transform}
.svc__intro h2{font-size:clamp(36px,min(4.6vw,9.5svh),72px)}
.svc__intro p{margin-top:clamp(10px,2svh,20px);color:var(--ink-2);font-size:clamp(16px,min(1.3vw,3svh),20px);line-height:1.45}
.tk{flex:none;width:min(62vw,calc(100svh*1.32),880px);height:100%;max-height:640px;align-self:center;background:var(--tint);border-radius:calc(var(--r)*1.2);padding:clamp(8px,1.4svh,12px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(14px,2vw,28px);will-change:transform}
.tk__ph{position:relative;overflow:hidden;border-radius:var(--r);background:var(--line);min-height:0}
.tk__ph img{position:absolute;left:-10%;top:0;width:120%;max-width:none;height:100%;object-fit:cover;will-change:transform}
.tk__b{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(6px,1.6svh,18px) clamp(10px,1.4vw,22px) clamp(6px,1.6svh,18px) 0}
.tk__b i{display:block;width:clamp(40px,4vw,62px);height:clamp(7px,1.2svh,10px);border-radius:9px;background:var(--grad);transform:rotate(-36deg);transform-origin:left bottom;margin-bottom:clamp(14px,3.4svh,34px);margin-left:2px}
.tk .h3{font-size:clamp(23px,min(2.5vw,5.4svh),40px)}
.tk__p{margin-top:clamp(5px,1.1svh,12px);color:var(--ink-2);font-size:clamp(14.5px,min(1.1vw,2.7svh),17px);line-height:1.4}
.tk ul{margin-top:clamp(8px,1.6svh,16px);display:grid;gap:clamp(4px,.9svh,9px);font-size:clamp(14.5px,min(1.08vw,2.7svh),16.5px);line-height:1.28;font-weight:500}
.tk li{padding-left:18px;position:relative}
.tk li::before{content:"";position:absolute;left:0;top:.42em;width:11px;height:4px;border-radius:3px;background:var(--grad);transform:rotate(-36deg)}
.tk__foot{margin-top:clamp(8px,1.6svh,16px);font-size:clamp(13.5px,min(1vw,2.5svh),15.5px);line-height:1.3;color:var(--ink-2)}
.tk__foot strong{color:var(--ink);font-weight:700}
.price{margin-top:clamp(8px,1.6svh,16px);display:grid;gap:clamp(3px,.7svh,7px);font-size:clamp(14.5px,min(1.08vw,2.7svh),16.5px);line-height:1.2}
.price div{display:flex;justify-content:space-between;gap:10px}
.price dd{margin:0;font-weight:700}
.price dt{color:var(--ink-2)}
@media (max-width:767px){
  .svc{height:100svh;padding-block:clamp(70px,10svh,84px) 16px}
  .svc__track{display:grid;grid-template-columns:repeat(4,min(82vw,330px));grid-template-rows:auto minmax(0,1fr);gap:0 14px;padding-left:var(--page-gut)}
  .svc__intro{grid-column:1/-1;width:calc(100vw - 2*var(--page-gut));padding-bottom:50px;align-self:start}
  .svc__intro h2{font-size:clamp(32px,9.6vw,44px);width:100%}
  .svc__intro p{font-size:15.5px}
  .tk{grid-row:2;width:auto;height:100%;max-height:none;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(84px,27%) minmax(0,1fr);gap:8px}
  .tk__b{justify-content:flex-start;padding:4px 10px 6px}
  .tk__b i{display:none}
  .tk .h3{font-size:22px}
  .tk__p{font-size:14px;line-height:1.32}
  .tk ul,.price{font-size:14px;margin-top:7px;gap:3px}
  .tk__foot{font-size:13px;margin-top:7px}
}
@media (max-width:767px) and (max-height:720px){
  .svc__intro p{display:none}
  .tk__p{display:none}
  .tk__foot{display:none}
}
@media (min-width:768px) and (max-height:600px){.tk__foot{display:none}}
html.no-pin .svc{height:auto;overflow-x:auto}

/* ─ Location ─ */
.loc__g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:stretch}
.loc__list{margin-top:clamp(22px,3vw,40px);display:grid;gap:20px}
.loc__list dt{font-size:14px;font-weight:600;color:var(--ink-3);margin-bottom:2px}
.loc__list dd{margin:0;font:700 clamp(22px,2.1vw,32px)/1.12 var(--f-head);letter-spacing:-.012em;padding-top:.06em}
.loc__list dd a{background:linear-gradient(90deg,var(--red),var(--orange)) 0 100%/0 3px no-repeat;transition:background-size .45s var(--e)}
@media (hover:hover){.loc__list dd a:hover{background-size:100% 3px}}
.loc .cta-row{margin-top:clamp(22px,3vw,36px)}
.map{position:relative;min-height:clamp(340px,40vw,560px);border-radius:calc(var(--r)*1.4);overflow:hidden;background:var(--tint);box-shadow:0 0 0 8px var(--tint)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
.map.is-active iframe{pointer-events:auto}

/* ─ FAQ ─ */
.faq{background:var(--tint)}
.faq__g{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,64px);align-items:start}
.faq__g .lead{margin-top:14px;font-size:clamp(16px,1.2vw,18px)}
.qa{border-bottom:1px solid var(--line)}
.qa:first-child{border-top:1px solid var(--line)}
.qa h3{margin:0}
.qa button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;text-align:left;padding:clamp(16px,1.6vw,24px) 0;font:600 clamp(19px,1.65vw,25px)/1.16 var(--f-head);letter-spacing:-.01em}
.qa button>span:first-child{padding-top:.1em}
.qa__x{position:relative;flex:none;width:30px;height:30px}
.qa__x::before,.qa__x::after{content:"";position:absolute;left:4px;right:4px;top:13px;height:4px;border-radius:4px;background:var(--grad);transition:transform .5s var(--e)}
.qa__x::after{transform:rotate(90deg)}
.qa.is-open .qa__x::before{transform:rotate(-36deg)}
.qa.is-open .qa__x::after{transform:rotate(-36deg)}
.qa__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--e)}
.qa.is-open .qa__a{grid-template-rows:1fr}
.qa__a>div{overflow:hidden;min-height:0}
.qa__a p{padding-bottom:clamp(16px,1.6vw,24px);color:var(--ink-2);max-width:66ch;opacity:0;transform:translateY(-6px);transition:opacity .35s ease,transform .5s var(--e)}
.qa.is-open .qa__a p{opacity:1;transform:none}

/* ─ Footers ─ */
.ft{display:none;position:relative;overflow:clip}
html[data-footer="1"] .ft--1,html[data-footer="2"] .ft--2,html[data-footer="3"] .ft--3{display:block}
.ft__title{font:700 clamp(21px,1.8vw,27px)/1.05 var(--f-head);background:var(--grad-word);-webkit-background-clip:text;background-clip:text;color:transparent;padding-block:.1em;margin-bottom:12px}
.ft__col ul{display:grid;gap:7px;font-size:15.5px;line-height:1.4}
.ft__col a{background:linear-gradient(90deg,currentColor,currentColor) 0 100%/0 1.5px no-repeat;transition:background-size .4s var(--e)}
@media (hover:hover){.ft__col a:hover{background-size:100% 1.5px}}
.ft__base{font-size:14px;padding-block:18px 22px}
.ft__base a{color:var(--orange);font-weight:600}
.ft__cta h2{font-size:clamp(34px,5vw,76px);max-width:15em}
.ft__cta .cta-row{margin-top:clamp(18px,2.4vw,30px)}
/* Footer 1: ink, with the exact wordmark filling the width */
.ft--1{background:var(--ink);color:#fff}
.ft--1 .ft__top{padding-block:clamp(52px,7vw,104px) clamp(28px,4vw,56px);display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(32px,4vw,64px);align-items:end}
.ft--1 .ft__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ft--1 .ft__word{display:block;width:100%;height:auto;margin-top:clamp(12px,2vw,28px);overflow:visible}
.ft--1 .ft__base{color:rgba(255,255,255,.72)}
/* Footer 2: brand gradient, a white sheet resting on it */
.ft--2{background:linear-gradient(120deg,#D9331F,#EE6A2E 55%,#F9A23C);padding-block:clamp(48px,6vw,88px) 0;color:var(--ink)}
.ft--2 .ft__cta{color:#fff}
.ft--2 .ft__cta .btn{--btn-bg:var(--ink);--btn-fg:#fff}
.ft--2 .ft__cta .btn--ghost{--btn-bg:transparent;--btn-fg:#fff;box-shadow:inset 0 0 0 1.5px #fff}
.ft--2 .ft__sheet{background:#fff;border-radius:calc(var(--r)*1.4);padding:clamp(22px,3vw,44px);margin-top:clamp(32px,4vw,60px);display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,3fr));gap:clamp(20px,3vw,44px)}
.ft--2 .ft__sheet svg{width:min(100%,250px);height:auto;display:block}
.ft--2 .ft__base{color:#fff}
.ft--2 .ft__base a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.ft--2 .ft__bars{position:absolute;right:-5%;top:-16%;width:min(46vw,620px);--logo-m:rgba(255,255,255,.16);pointer-events:none}
/* Footer 3: the contact details are the design */
.ft--3{background:var(--bg)}
.ft--3 .ft__big{display:block;font:700 clamp(46px,12.4vw,216px)/.98 var(--f-head);letter-spacing:-.035em}
.ft--3 .ft__big span{display:inline-block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding:.08em .04em .02em 0}
.ft--3 .ft__mail{display:inline-block;font:700 clamp(23px,4.5vw,76px)/1.05 var(--f-head);letter-spacing:-.025em;margin-top:6px}
.ft--3 .ft__top{padding-block:clamp(48px,6vw,88px) 0}
.ft--3 .ft__line{font:500 clamp(18px,1.6vw,24px)/1.3 var(--f-body);margin-bottom:clamp(10px,1.4vw,20px);color:var(--ink-2)}
.ft--3 .ft__row{display:grid;grid-template-columns:minmax(0,6fr) repeat(3,minmax(0,2fr));gap:24px;margin-top:clamp(32px,4vw,60px);align-items:start}
.ft--3 .ft__base{color:var(--ink-2)}
.ft--3 .ft__base a{color:var(--hot)}

@media (max-width:1023px){
  .about__top,.hours__g,.loc__g,.faq__g{grid-template-columns:minmax(0,1fr)}
  .barstage{max-width:600px;width:100%;margin-inline:auto}
  .why{grid-template-columns:repeat(2,minmax(0,1fr))}
  .why article{padding-top:0!important}
  .founders__g{grid-template-columns:minmax(0,1fr)}
  .pmp__head{max-width:100%}
  .pmp__win{position:relative;right:auto;top:auto;width:120%;height:auto;aspect-ratio:3.2/1;margin:6px -10% 54px;transform:rotate(-14deg)}
  .pmp__win .in{transform:rotate(14deg);width:112%;margin-left:-56%;margin-top:-37%}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat{padding-top:0!important}
  .h3__top{grid-template-columns:minmax(0,1fr);gap:14px}
  .ft--1 .ft__top{grid-template-columns:minmax(0,1fr)}
  .ft--2 .ft__sheet{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft--2 .ft__sheet>a:first-child{grid-column:1/-1}
  .ft--3 .ft__row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft--3 .ft__row .ft__cta{grid-column:1/-1}
}
@media (max-width:767px){
  h1,h2,.h3,.founders__h,.lead,.h1__sub{width:100%;max-width:100%}
  .btn{min-height:50px;padding:0 22px}
  /* hero 1 stacks: copy, then the stage */
  .hero__v--1{height:auto;min-height:100svh;max-height:none;padding-top:92px;flex-direction:column}
  html[data-hero="1"] .hero__v--1{display:flex}
  .h1__copy{order:1}
  .h1__copy h1{font-size:clamp(39px,11.8vw,58px)}
  .h1__stage{order:2;position:relative;flex:1;min-height:64vw;margin-top:10px;inset:auto;overflow:hidden}
  .h1__mark{height:auto;width:92vw;right:-10vw;bottom:-26%}
  .h1__team{width:112vw;right:-6vw;bottom:-4%}
  .tw1,.tw3{display:none}
  .tw2{left:7%;bottom:18%}.tw4{right:9%;bottom:18%}
  .tag{height:34px;font-size:15px;padding:0 15px}
  .hero__v--3{min-height:100svh}
  .h3__bar{font-size:13.5px;height:32px}
  .gantt__axis{display:none}
  .grow{grid-template-columns:minmax(0,1fr);gap:12px}
  .grow__meta{grid-column:1;margin-top:0}
  .grow__track{background-image:none;border:0;height:48px}
  .grow__bar small{font-size:12.5px}
  .grow__bar{padding-inline:14px}
  .incl{grid-template-columns:minmax(0,1fr)}
  .why{grid-template-columns:minmax(0,1fr)}
  .why article i{width:calc(30% + var(--w,0%))!important}
  .fd{grid-template-columns:minmax(0,1fr)}
  .badge{margin-inline:auto;width:200px}
  .tt{grid-template-columns:34px repeat(7,minmax(0,1fr));height:340px;gap:3px}
  .tt__s{font-size:13px;border-radius:7px}
  .tt__d{font-size:13px}
  .tt__sum{padding-left:0}
  .stat b{font-size:clamp(40px,12.6vw,64px)}
  .ft--1 .ft__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft--1 .ft__cols .ft__col:last-child{grid-column:1/-1}
  .ft--2 .ft__sheet{grid-template-columns:minmax(0,1fr)}
  .ft--3 .ft__row{grid-template-columns:minmax(0,1fr)}
  .cta-row .btn{flex:1 1 auto}
}
@media (min-width:768px) and (max-width:1023px){
  .hero__v--1{height:max(100svh,720px)}
  .h1__team{width:84vw;right:4vw}
  .h1__mark{height:auto;width:68vw;bottom:0}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}.hd.is-anim{transition:opacity .2s}}
.ft--2 .ft__cta .hl{background:none;color:var(--ink);-webkit-text-fill-color:var(--ink)}
@media (max-width:767px){.barwin{width:98%;margin-left:-49%}.barwin__in{width:124%;margin-left:-62%;margin-top:-41.33%}}
