:root{--red:#ef1b24;--red2:#b60912;--ink:#111316;--char:#1c2025;--muted:#676d74;--line:#dfe2e5;--soft:#f3f4f5;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}.topbar{height:92px;padding:0 max(4vw,24px);display:flex;align-items:center;justify-content:space-between;background:#0d0f12;color:white;position:sticky;top:0;z-index:20;border-bottom:1px solid #2b2e32}.brand{display:flex;align-items:center;gap:12px}.brand img{width:68px;height:68px;object-fit:contain}.brand span{display:flex;flex-direction:column;line-height:1}.brand b{font-size:27px;letter-spacing:.08em}.brand small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;margin-top:6px}.topbar nav{display:flex;gap:30px;align-items:center;font-weight:700;font-size:14px}.topbar nav a:hover{color:#ff4a52}.nav-cta{background:var(--red);padding:12px 18px}.hero{height:min(700px,calc(100vh - 92px));min-height:600px;position:relative;overflow:hidden;background:#17191d}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,12,15,.98) 0%,rgba(10,12,15,.83) 37%,rgba(10,12,15,.1) 72%)}.hero-copy{position:relative;z-index:2;color:white;max-width:670px;padding:110px max(5vw,28px)}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:#ff4951;font-weight:800;font-size:13px;margin:0 0 16px}.eyebrow.dark{color:var(--red2)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,6vw,82px);line-height:.96;letter-spacing:-.045em;margin-bottom:28px}h1 em{font-style:normal;color:var(--red)}.hero-copy>p:not(.eyebrow){font-size:20px;max-width:570px;color:#d8dadd}.hero-actions{display:flex;gap:12px;margin:34px 0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 23px;border:0;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:13px;cursor:pointer}.button.primary{background:var(--red);color:#fff}.button.primary:hover{background:#ff3540}.button.ghost{border:1px solid #7b7f84;color:#fff}.button.light{background:white;color:#111}.button.dark{background:#15181c;color:#fff}.button.full{width:100%}.quick{display:flex;gap:24px;font-size:13px;color:#c6c9cd;text-transform:uppercase;letter-spacing:.06em}.quick span:before{content:'✓';color:var(--red);margin-right:8px}.intro,.section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;align-items:end;max-width:1200px;margin:auto;padding:100px 32px 50px}.intro h2,.section-head h2,.booking h2,.groups h2,.contact h2{font-size:clamp(38px,4vw,58px);line-height:1.02;letter-spacing:-.035em;margin:0}.intro>p,.section-head>p{font-size:18px;color:var(--muted)}.cards{max-width:1200px;margin:auto;padding:0 32px 110px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards article{border:1px solid var(--line);padding:30px;min-height:370px;display:flex;flex-direction:column;position:relative}.num{position:absolute;right:24px;top:24px;color:#a1a5aa;font-weight:800}.icon{width:58px;height:58px;background:#171a1e;color:white;display:grid;place-items:center;font-size:28px;margin:14px 0 34px}.heart{color:var(--red)}.cards h3{font-size:31px;margin-bottom:12px}.cards p{color:var(--muted)}.cards footer{margin-top:auto;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between}.cards footer span{color:var(--red2);font-weight:900}.bundle{background:#121418;color:white;padding:70px max(5vw,30px);display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:center}.bundle h2{font-size:42px;line-height:1.05}.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.prices>div{background:#202328;padding:25px;display:flex;flex-direction:column}.prices .popular{outline:2px solid var(--red)}.prices small{text-transform:uppercase;color:#c3c6ca}.prices strong{font-size:44px}.prices b{font-size:12px;color:#ff4a52}.schedule{padding-bottom:100px}.date-grid{max-width:1200px;margin:auto;padding:0 32px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.date{background:white;border:1px solid var(--line);padding:18px;text-align:left;display:grid;grid-template-columns:65px 1fr auto;align-items:center;gap:15px;cursor:pointer;color:var(--ink)}.date:hover,.date.active{border-color:var(--red);box-shadow:inset 4px 0 var(--red)}.date time{display:flex;flex-direction:column;font-size:12px;color:var(--red2);font-weight:bold}.date time b{font-size:32px;line-height:1}.date span{display:flex;flex-direction:column;font-size:13px}.date span strong{font-size:17px}.date i{font-style:normal;font-size:11px;text-transform:uppercase;color:#777}.booking{background:#191c20;color:white;padding:90px max(5vw,30px);display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.booking-copy>p{color:#bfc2c6}.selected-date{border-left:4px solid var(--red);padding:14px 18px;margin-top:35px;display:flex;flex-direction:column}.selected-date small{color:#aaa}.selected-date strong{font-size:19px}.booking form{background:white;color:var(--ink);padding:35px}fieldset{border:0;padding:0;margin:0 0 30px}legend{font-weight:900;font-size:18px;margin-bottom:14px}.course{border:1px solid var(--line);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px;margin-bottom:8px;cursor:pointer}.course:has(input:checked){border-color:var(--red);background:#fff5f5}.course input{width:20px;height:20px;accent-color:var(--red)}.course span{display:flex;flex-direction:column}.course small{color:#777}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}form label{font-weight:700;font-size:13px}input,select,textarea{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #cfd2d5;font:inherit;background:white}.total{border-top:1px solid var(--line);padding:22px 0;display:flex;justify-content:space-between;align-items:center}.total span{display:flex;flex-direction:column}.total span b{color:var(--red2);font-size:13px}.total>strong{font-size:38px}.fine{font-size:12px!important;color:#777!important;margin:12px 0 0!important}.groups{display:grid;grid-template-columns:1fr 1fr}.group-panel{background:var(--red);color:white;padding:90px max(5vw,30px)}.group-panel .eyebrow{color:white}.group-panel p{font-size:18px;max-width:580px}.group-details{background:#101216;color:white;padding:70px max(5vw,30px)}.group-details article{border-bottom:1px solid #333;padding:20px 0 24px;position:relative}.group-details article>b{color:var(--red);position:absolute;right:0}.group-details h3{font-size:23px;margin-bottom:6px}.group-details p{color:#b8bbc0;margin:0}.contact{max-width:1200px;margin:auto;padding:100px 32px;display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.contact textarea{margin-bottom:18px}.facts{background:var(--soft);padding:70px max(5vw,30px)}.facts h2{max-width:1200px;margin:0 auto 30px;font-size:36px}.facts>div{max-width:1200px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:20px 50px}.facts p{color:#555}body>footer{background:#0d0f12;color:white;padding:50px max(5vw,30px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px}body>footer .brand img{width:62px;height:62px}body>footer>small{grid-column:1/-1;color:#8c9095;border-top:1px solid #2a2c30;padding-top:18px}dialog{border:0;padding:45px;max-width:520px;text-align:center;box-shadow:0 20px 80px #0007}dialog::backdrop{background:#000a}.check{width:60px;height:60px;background:var(--red);color:white;border-radius:50%;display:grid;place-items:center;font-size:30px;margin:auto auto 20px}.close{position:absolute;top:10px;right:14px;background:0;border:0;font-size:26px;cursor:pointer}.close2{margin-top:20px}
@media(max-width:850px){.topbar{height:76px}.brand img{width:54px;height:54px}.topbar nav a:not(.nav-cta){display:none}.hero{min-height:640px;height:auto}.hero-copy{padding-top:90px}.hero-photo{object-position:67% center}.hero-shade{background:linear-gradient(90deg,rgba(9,11,14,.98),rgba(9,11,14,.68))}.quick{flex-direction:column;gap:5px}.intro,.section-head,.bundle,.booking,.groups,.contact{grid-template-columns:1fr;gap:30px}.cards,.date-grid{grid-template-columns:1fr}.cards article{min-height:310px}.prices{grid-template-columns:1fr}.date-grid{padding:0 20px}.intro,.section-head,.cards,.contact{padding-left:20px;padding-right:20px}.booking form{padding:24px}.facts>div{grid-template-columns:1fr}.topbar{padding:0 16px}.brand small{display:none}}@media(max-width:520px){h1{font-size:46px}.hero-actions{flex-direction:column;align-items:stretch}.form-grid{grid-template-columns:1fr}.date{grid-template-columns:58px 1fr}.date i{display:none}body>footer{grid-template-columns:1fr}.booking{padding-left:20px;padding-right:20px}}
.course-catalog article{min-height:420px}.course-catalog h3{line-height:1.08;margin-top:18px}.course-type{align-self:flex-start;padding:7px 10px;background:#ebf7f0;color:#176a3b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.course-type.instructor{background:#fff0f0;color:var(--red2)}.course-catalog details{margin:10px 0 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.course-catalog summary{padding:14px 2px;cursor:pointer;color:var(--red2);font-weight:900}.course-catalog summary:hover,.course-catalog summary:focus{color:var(--red)}.course-catalog details[open] summary{border-bottom:1px solid var(--line)}.course-catalog ol{margin:14px 0 18px;padding-left:28px;color:#4f555b}.course-catalog li{padding:3px 0;font-size:14px}.course-catalog details+footer{border-top:0}
.availability-notes{max-width:1200px;margin:auto;padding:0 32px 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.availability-notes article{border:1px solid var(--line);border-top:4px solid var(--red);padding:22px;display:flex;flex-direction:column;gap:8px}.availability-notes b{font-size:13px;letter-spacing:.12em;color:var(--red2)}.availability-notes span{color:#555}.appointment-form textarea{margin-bottom:10px}.slot-message{min-height:24px;color:#9d0b13!important;font-weight:800;font-size:13px!important}.wide{grid-column:1/-1}.appointment-form button:disabled{opacity:.6}.policy-links{display:flex;gap:16px;flex-wrap:wrap;font-size:13px}.policy-links a{text-decoration:underline;text-underline-offset:3px}@media(max-width:850px){.availability-notes{grid-template-columns:1fr;padding-left:20px;padding-right:20px}.policy-links{grid-column:1/-1}}
