:root { color-scheme:dark; --night:#12091f; --violet:#20103b; --magenta:#e91e8c; --cyan:#48b9f8; --paper:rgba(31,16,58,.84); --ink:#fff; --muted:rgba(255,255,255,.74); --line:rgba(255,255,255,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--night); }
body { min-width:320px; margin:0; overflow-x:hidden; color:var(--ink); background:radial-gradient(circle at 9% 4%,rgba(233,30,140,.28),transparent 29rem),radial-gradient(circle at 92% 24%,rgba(72,185,248,.2),transparent 27rem),linear-gradient(145deg,var(--night),var(--violet) 52%,#0c1730); font:16px/1.6 "Montserrat",ui-sans-serif,system-ui,sans-serif; }
body::before,body::after { content:""; position:fixed; z-index:0; border:1px solid rgba(255,255,255,.09); border-radius:50% 50% 50% 12%; pointer-events:none; }
body::before { width:18rem; height:18rem; top:18%; left:-9rem; transform:rotate(-28deg); }
body::after { width:13rem; height:13rem; right:-6rem; bottom:9%; transform:rotate(24deg); }
a { color:#b9e9ff; text-underline-offset:.23em; }
.skip-link { position:absolute; z-index:10; top:-5rem; left:1rem; padding:.7rem 1rem; color:#180d31; background:#fff; border-radius:.7rem; }
.skip-link:focus { top:1rem; }
.site-header,main,footer { position:relative; z-index:1; width:min(100% - 3rem,76rem); margin:auto; }
.site-header { min-height:6.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem .75rem; }
.brand { display:inline-flex; align-items:center; gap:.72rem; color:#fff; font-size:1.08rem; font-weight:800; letter-spacing:.01em; text-decoration:none; }
.brand small { display:block; margin-top:-.1rem; color:rgba(255,255,255,.56); font-size:.62rem; font-weight:700; letter-spacing:.05em; }
.brand-emblem { width:3rem; height:3rem; display:grid; place-items:center; filter:drop-shadow(0 .5rem 1rem rgba(0,0,0,.32)); }
.brand-emblem img { width:100%; height:100%; object-fit:contain; }
.safety-link { color:rgba(255,255,255,.82); font-size:.84rem; font-weight:700; }
.hero { min-height:min(39rem,calc(100vh - 7rem)); display:grid; grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr); align-items:center; gap:clamp(2rem,6vw,6rem); padding:4rem .75rem 5rem; }
.eyebrow { margin:0 0 1rem; color:#b9e9ff; font-size:.74rem; font-weight:800; letter-spacing:.06em; }
h1,h2,h3 { line-height:1.13; letter-spacing:-.035em; }
h1 { max-width:12ch; margin:0 0 1.25rem; font-size:clamp(2.85rem,5.7vw,5.1rem); }
h2 { margin:0 0 1.2rem; font-size:clamp(2rem,3.9vw,3.25rem); }
h3 { margin:0 0 .7rem; font-size:1.12rem; }
.lede { max-width:43rem; margin:0 0 1rem; color:#fff; font-size:clamp(1rem,1.8vw,1.15rem); font-weight:500; }
.disclosure { max-width:48rem; margin:0 0 1.8rem; color:var(--muted); }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:3rem; border:1px solid transparent; border-radius:.85rem; padding:.78rem 1.15rem; font:inherit; font-size:.92rem; font-weight:800; text-decoration:none; cursor:pointer; }
.button-primary { color:#180d31; background:linear-gradient(135deg,#fff,#d9f5ff); box-shadow:0 .8rem 2.2rem rgba(72,185,248,.18); }
.button-primary:hover { transform:translateY(-1px); }
.hero-note,.request-form { border:1px solid transparent; border-radius:1.35rem; background:linear-gradient(150deg,rgba(31,16,58,.94),rgba(14,19,43,.9)) padding-box,linear-gradient(135deg,rgba(233,30,140,.7),rgba(255,255,255,.13) 45%,rgba(72,185,248,.66)) border-box; box-shadow:0 1.5rem 4.5rem rgba(3,1,12,.32); }
.hero-note { padding:1.65rem; }
.hero-note strong { display:block; font-size:1.28rem; line-height:1.28; }
.hero-note p:last-child { margin-bottom:0; color:var(--muted); }
.section { padding:4.5rem .75rem; }
.section-intro { max-width:55rem; }
.section-intro > p:last-child,.programme-copy,.request-intro { color:var(--muted); }
.path-grid,.package-grid { display:grid; gap:1rem; }
.path-grid { grid-template-columns:repeat(4,1fr); }
.package-grid { grid-template-columns:repeat(5,1fr); }
.path-card,.package-card { min-height:14.5rem; display:flex; flex-direction:column; padding:1.3rem; border:1px solid var(--line); border-radius:1rem; background:rgba(255,255,255,.06); backdrop-filter:blur(10px); }
.path-card p,.package-card p { margin:0 0 1rem; color:var(--muted); font-size:.88rem; }
.path-card.featured { border-color:rgba(72,185,248,.55); background:linear-gradient(145deg,rgba(72,185,248,.16),rgba(233,30,140,.08)); }
.text-button { align-self:flex-start; margin-top:auto; padding:0; border:0; color:#fff; background:transparent; font:inherit; font-size:.86rem; font-weight:800; text-align:left; text-decoration:underline; text-decoration-color:var(--magenta); text-underline-offset:.28em; cursor:pointer; }
.starting-price { color:#ffb6dd !important; font-weight:800; }
.programme { display:grid; grid-template-columns:.85fr 1.15fr; gap:4rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.programme-copy { font-size:1.02rem; }
.request { display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem; }
.privacy-callout { padding:1rem; border-left:3px solid var(--cyan); background:rgba(72,185,248,.1); color:#fff; }
.request-form { padding:1.5rem; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
label { display:grid; gap:.42rem; color:rgba(255,255,255,.92); font-size:.85rem; font-weight:700; }
input,select,textarea { width:100%; border:1px solid rgba(255,255,255,.2); border-radius:.65rem; padding:.72rem .78rem; color:#fff; background:rgba(5,4,19,.35); font:inherit; }
select option { color:#180d31; background:#fff; }
input:focus,select:focus,textarea:focus,.text-button:focus,.button:focus { outline:3px solid rgba(72,185,248,.72); outline-offset:2px; }
.optional { color:rgba(255,255,255,.58); font-weight:500; }
.full-field { margin-top:1rem; }
.checkbox { display:flex; align-items:center; gap:.65rem; margin:1rem 0; }
.checkbox input { width:1.1rem; height:1.1rem; accent-color:var(--magenta); }
.submit-button[disabled] { opacity:.65; cursor:wait; }
.form-message { margin-bottom:1rem; padding:.8rem 1rem; border-radius:.7rem; font-size:.9rem; }
.error { color:#ffd1d6; background:rgba(190,24,93,.24); border:1px solid rgba(255,153,170,.35); }
.success { color:#d5fbff; background:rgba(72,185,248,.15); border:1px solid rgba(72,185,248,.34); }
footer { padding:2rem .75rem 3rem; color:var(--muted); font-size:.86rem; }
footer p { max-width:72ch; }
footer a { font-weight:800; }
@media (max-width:1000px) { .package-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:850px) { .hero,.programme,.request { grid-template-columns:1fr; gap:2rem; } .path-grid { grid-template-columns:repeat(2,1fr); } .hero { min-height:auto; padding-top:2.5rem; } }
@media (max-width:560px) { .site-header,main,footer { width:min(100% - 2rem,76rem); } .site-header { align-items:flex-start; flex-direction:column; } .section { padding-block:3.5rem; } .field-grid,.path-grid,.package-grid { grid-template-columns:1fr; } .request-form { padding:1rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button-primary:hover { transform:none; } }
