:root{--blue:#10182e;--blue2:#141d38;--cream:#f5efdf;--cream2:#fdf9ee;--gold:#c9a44a;--gold2:#d4b078;--ivory:#f4edda;--text:#ece4d2;--dim:#cfc6ad;--muted:#a99f85;--ink:#10182e;--ink2:#1c2337;--ink-dim:#4a4636;--ink-muted:#7a7460;--rule:#e4dcc4;--serif:'Cormorant Garamond',Georgia,serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;background:var(--blue)}
body{font-family:'Source Sans 3',system-ui,sans-serif;color:var(--text);font-size:17px;line-height:1.65;overflow-x:hidden}
a{color:#b8935a;text-decoration:none}a:hover{color:var(--gold2);text-decoration:underline}
.cream a:not(.btn){color:#8a6a2a}
img,video{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:700;margin:0;color:var(--ivory);line-height:1.2}
h2{font-size:clamp(28px,4vw,40px);margin-bottom:16px}
h3{font-size:24px;margin:28px 0 8px}
p{margin:0 0 14px}
ul,ol{margin:0 0 14px;padding-left:22px}li{margin-bottom:6px}
section{padding:64px 20px}
.wrap{max-width:1100px;margin:0 auto}.narrow{max-width:820px}.center{text-align:center}
.cream{background:var(--cream);color:var(--ink2)}.cream h2,.cream h3,.cream strong,.cream b{color:var(--ink)}.cream p,.cream li{color:var(--ink-dim)}
.blue2{background:var(--blue2)}
.dim{color:var(--dim)}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:13px;color:var(--gold);margin-bottom:12px;font-weight:600}
.btn{display:inline-block;background:var(--gold);color:var(--blue);font-weight:700;padding:14px 28px;border-radius:5px;font-size:17px}
.btn:hover{text-decoration:none;color:var(--blue);background:var(--gold2)}
.ghost{background:transparent;color:var(--text);border:1px solid rgba(236,228,210,.45)}.ghost:hover{background:rgba(236,228,210,.08);color:var(--text)}
.btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.fine{margin-top:22px;font-size:13.5px;color:var(--muted)}
.more{font-weight:600}
/* Google ad placeholders: hidden. Change display:none to display:flex to show them. */
.ad{display:none;margin:44px auto 0;max-width:820px;min-height:100px;border:1px dashed rgba(236,228,210,.35);border-radius:6px;align-items:center;justify-content:center;font-family:monospace;font-size:13px;color:var(--muted)}
.cream .ad{border-color:rgba(16,24,46,.3);color:var(--ink-muted)}

header{background:var(--blue);border-bottom:1px solid rgba(236,228,210,.14);position:sticky;top:0;z-index:50;transition:box-shadow .3s}
header .wrap{max-width:1240px;padding:20px 20px;display:flex;align-items:center;gap:16px;transition:padding .3s ease}
.brand{display:flex;align-items:center;gap:14px;color:var(--text);flex:none}.brand:hover{text-decoration:none;color:var(--text)}
.brand img{width:54px;height:72px;object-fit:cover;border-radius:4px;transition:width .3s ease,height .3s ease}
.brand b{font-family:var(--serif);font-size:30px;letter-spacing:.02em;display:block;line-height:1.15;transition:font-size .3s ease}
.brand em{display:block;font-size:13.5px;opacity:.75;line-height:1.4;max-height:20px;overflow:hidden;transition:max-height .3s ease,opacity .3s ease}
nav{margin-left:auto;display:flex;gap:22px;align-items:center;font-size:16.5px;transition:font-size .3s ease,gap .3s ease}
nav a{color:var(--text);white-space:nowrap}nav a:hover{color:var(--gold2);text-decoration:none}
nav a[aria-current]{color:var(--gold)}
nav .dl{color:var(--blue);background:var(--gold);padding:11px 20px;border-radius:5px;font-weight:700;transition:padding .3s ease}nav .dl:hover,nav .dl[aria-current]{color:var(--blue);background:var(--gold2)}
/* Scrolled: site.js adds .small once the page has moved down. */
header.small{box-shadow:0 6px 18px rgba(0,0,0,.35)}
header.small .wrap{padding:8px 20px}
header.small .brand img{width:30px;height:40px}
header.small .brand b{font-size:21px}
header.small .brand em{max-height:0;opacity:0}
header.small nav{font-size:15px;gap:18px}
header.small nav .dl{padding:7px 16px}
@media(prefers-reduced-motion:reduce){header *,header{transition:none!important}}
.menu{display:none;margin-left:auto;background:none;border:1px solid rgba(236,228,210,.4);color:var(--text);border-radius:4px;padding:6px 12px;font:inherit;font-size:15px;cursor:pointer}
@media(max-width:1240px){
 .menu{display:block}
 nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--blue);flex-direction:column;align-items:stretch;gap:0;padding:6px 20px 16px;border-bottom:1px solid rgba(236,228,210,.14)}
 nav.open{display:flex}
 nav a{padding:10px 0;border-bottom:1px solid rgba(236,228,210,.08)}
 nav .dl{margin-top:10px;text-align:center}
}

.hero{background:linear-gradient(180deg,var(--blue),var(--blue2));padding:64px 20px 56px}
.hero h1{font-size:clamp(36px,5.5vw,58px);margin-bottom:18px}
.page-hero{background:linear-gradient(180deg,var(--blue),var(--blue2));padding:56px 20px 48px}
.page-hero h1{font-size:clamp(34px,5vw,52px);margin-bottom:14px}
.lead{max-width:680px;margin:0 auto 28px;font-size:19px;color:var(--dim)}
.page-hero .lead{margin-bottom:0}
.ticks{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}
.ticks span{border:1px solid rgba(236,228,210,.3);border-radius:999px;padding:5px 14px;font-size:13px;color:#d8d0b8}
.shot{width:100%;max-width:900px;margin:40px auto 0;border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.shot[hidden]{display:none}img.shot.replay{cursor:pointer}

.split{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.split.wide-img{grid-template-columns:5fr 4fr}
.split + .split{margin-top:64px}
@media(max-width:820px){.split,.split.wide-img{grid-template-columns:1fr;gap:24px}}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px}
.gallery.small{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px}
.gallery.phones{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));max-width:980px;margin:0 auto}
figure{margin:0}
figure img{width:100%;border-radius:8px;box-shadow:0 10px 28px rgba(16,24,46,.22)}
[data-zoom] img{cursor:zoom-in}
figcaption{margin-top:12px;font-size:15px;color:var(--ink-dim)}
.blue2 figcaption,body>main>section:not(.cream) figcaption{color:var(--dim)}
.phones img{border-radius:22px;border:6px solid #05070d}
#lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1400px);max-height:96vh;cursor:zoom-out}
#lightbox::backdrop{background:rgba(8,12,24,.92)}
#lightbox img{border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.8);max-height:92vh;object-fit:contain}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:24px}
.card{background:var(--cream2);border:1px solid var(--rule);border-radius:8px;padding:24px;color:var(--ink2)}
.card i{font-style:normal;font-size:32px;line-height:1;color:var(--ink)}
.card h3{font-size:23px;margin:12px 0 8px;color:var(--ink)}.card p{font-size:15.5px;color:var(--ink-dim)}
a.card{display:block}a.card:hover{text-decoration:none;border-color:var(--gold);transform:translateY(-2px)}
a.card{transition:transform .15s,border-color .15s}
.card .more{color:#8a6a2a;font-size:15px}

.levels{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.levels span{--a:.12;background:rgba(201,164,74,var(--a));border:1px solid rgba(201,164,74,.5);color:#e3cf9a;border-radius:999px;padding:8px 18px;font-size:14.5px}
.levels span:nth-child(2){--a:.18}.levels span:nth-child(3){--a:.26}.levels span:nth-child(4){--a:.36}.levels span:nth-child(5){--a:.5}
.levels span:last-child{background:var(--gold);color:var(--blue);font-weight:700}

table{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:15.5px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
th{font-weight:700;color:var(--ink)}
.cream td{color:var(--ink-dim)}
section:not(.cream) th,section:not(.cream) td{border-color:rgba(236,228,210,.15)}section:not(.cream) th{color:var(--ivory)}section:not(.cream) td{color:var(--dim)}
.tag{display:inline-block;font-family:monospace;font-size:14px;background:rgba(201,164,74,.18);border-radius:4px;padding:1px 7px;color:inherit}

.courses{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.courses .card ol{margin:6px 0 0;font-size:15px}
.courses .card li{margin-bottom:3px}

.faq{display:flex;flex-direction:column;gap:14px}
.faq details{border:1px solid rgba(236,228,210,.18);border-radius:8px;padding:16px 22px}
.faq summary{cursor:pointer;font-weight:700;color:var(--ivory)}
.faq details p{margin:10px 0 0;color:var(--dim);font-size:16px}
.faq h2{margin-top:36px}

.note-box{background:var(--cream2);border:1px solid var(--rule);border-left:4px solid var(--gold);border-radius:6px;padding:18px 22px;margin:22px 0}
.note-box p:last-child{margin:0}
.soon{display:inline-block;background:var(--gold);color:var(--blue);font-weight:700;border-radius:999px;padding:6px 16px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin:0 6px 8px}

form{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px;color:var(--ink)}
input,textarea{border:1px solid #cfc6a6;border-radius:5px;padding:11px 14px;font-size:15.5px;background:var(--cream2);font-family:inherit;color:var(--ink2)}
input:focus,textarea:focus{outline:none;border-color:var(--gold)}
textarea{resize:vertical}
.hp{position:absolute;left:-9999px}
form button{align-self:flex-start;background:var(--ink);color:var(--ivory);border:0;border-radius:5px;padding:13px 26px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit}
.note{font-size:15px;min-height:1.5em}

.glyphs{font-size:30px;letter-spacing:.3em;color:var(--gold);margin-bottom:14px}
.cta{background:linear-gradient(180deg,var(--blue2),var(--blue));padding:72px 20px}
footer{background:var(--cream);color:var(--ink-dim);padding:36px 20px 28px;font-size:14.5px}
footer .cols{display:flex;gap:40px;justify-content:space-between;flex-wrap:wrap;max-width:1100px;margin:0 auto}
footer .cols div{display:flex;flex-direction:column;gap:6px;min-width:150px}
footer b{color:var(--ink);font-size:15px;margin-bottom:4px}
footer a{color:var(--ink-dim)}footer a:hover{color:var(--ink)}
footer .base{max-width:1100px;margin:26px auto 0;padding-top:18px;border-top:1px solid var(--rule);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
footer .base img{width:22px;height:29px;object-fit:cover;border-radius:2px}
