/* Northbeam cinematic theme (Nov 2026). Loaded after style.css on every page built by page().
   Keeps the old layouts and switches colours, type and surfaces to the navy and gold design. */
:root{--navy:#0a1530;--navy2:#f6cf73;--gold:#f3c25a;--gold2:#f3c25a;--ink:#e6ecf8;--muted:#a9b6d3;--line:rgba(255,255,255,.10);--bg:#0a1530;--alt:#0d1a3a;--card:#13254d;--r:20px}
html{background:#0a1530}
body{background:#0a1530;color:var(--ink);font-family:Inter,system-ui,sans-serif;font-size:17px}
::selection{background:rgba(243,194,90,.35)}
a{color:#f6cf73}
h1,h2,h3{color:#fff;font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,5.2vw,4rem);line-height:1.06}
h2{font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.1}
h3{font-size:1.3rem;line-height:1.2}
h4{color:#fff}
.lead{color:#cfd9f0}
.small,.card-body p,.svc p,.value p,.steps span{color:var(--muted)}
.kicker,.eyebrow{color:var(--gold);letter-spacing:.2em;font-family:Inter,sans-serif;font-size:.74rem}
strong,b{color:inherit}
.wrap{max-width:1180px}
/* buttons */
.btn{font-family:Inter,sans-serif;font-weight:700;border-width:1.5px;transition:transform .2s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-gold,.page-hero .btn-gold{background:linear-gradient(135deg,#ffd877,#f3c25a 45%,#e3a83a);color:#1b1300;border-color:transparent;box-shadow:0 10px 28px -10px rgba(243,194,90,.65)}
.btn-gold:hover{background:linear-gradient(135deg,#ffe08f,#f6ca68 45%,#e8b04a);box-shadow:0 16px 36px -10px rgba(243,194,90,.8)}
.btn-navy{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.28)}
.btn-navy:hover{background:rgba(255,255,255,.16)}
.btn-ghost,.btn-ghost.dark{border-color:rgba(255,255,255,.35);color:#fff;background:rgba(255,255,255,.04)}
.btn-ghost:hover,.btn-ghost.dark:hover{background:rgba(255,255,255,.12)}
.link,.cal-link{color:#f6cf73}
.link-btn{color:#f6cf73}
/* heroes */
.page-hero,.hero,.post-hero,.cal-hero{position:relative;overflow:hidden;background:radial-gradient(900px 420px at 88% -20%,rgba(243,194,90,.22),transparent 60%),radial-gradient(700px 400px at -10% 120%,rgba(70,110,200,.28),transparent 60%),linear-gradient(165deg,#0c1a3c,#0a1530 70%);padding:150px 0 90px;border-bottom:1px solid var(--line)}
.page-hero:before,.hero:before,.post-hero:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(180deg,#000,transparent 85%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);pointer-events:none}
.page-hero .wrap,.hero .wrap,.post-hero .wrap{position:relative}
.page-hero h1,.hero h1,.post-hero h1{color:#fff;max-width:900px}
.page-hero .lead,.hero .lead{color:#cfd9f0}
.page-hero a:not(.btn){color:#f6cf73}
.kids-hero{padding-top:160px}
.cal-hero{padding-top:150px}
/* sections and surfaces */
.section{padding:90px 0}
.section.alt,.strip{background:linear-gradient(180deg,#0d1a3a,#0a1530);border-color:var(--line)}
.stats b{color:#fff;font-family:Fraunces,serif;font-size:2rem}
.stats span{color:var(--muted)}
.card,.card.plain,.svc-mini,.steps li,.value,.cal-card,.contact-side,.faq,.lesson-timeline li,.mods li,.lp-card,.svc{background:linear-gradient(180deg,#13254d,#0f1f43);border:1px solid var(--line);color:var(--ink)}
.card:hover,.cal-card:hover{transform:translateY(-5px);box-shadow:0 26px 50px -24px rgba(0,0,0,.85);border-color:rgba(243,194,90,.45)}
.card .sub{color:#f6cf73}
.thumb{background:#0f1f43}
.price{color:#fff!important}
.meta{color:var(--gold)!important}
.soon{background:rgba(255,255,255,.06);color:var(--muted);border-color:rgba(255,255,255,.2)}
.badge-new{background:var(--gold);color:#1b1300}
.chip{background:rgba(255,255,255,.04);color:#d6def2;border-color:var(--line)}
.chip.on{background:var(--gold);color:#1b1300;border-color:var(--gold)}
.svc-mini{color:#fff}.svc-mini:hover{border-color:rgba(243,194,90,.5)}
.svc-mini svg{color:var(--gold)}
.svc-icon{background:rgba(243,194,90,.12);color:var(--gold);border:1px solid rgba(243,194,90,.35)}
.ticks li{color:#e6ecf8}
.ticks li:before{border-color:var(--gold)}
.steps li:before{background:linear-gradient(135deg,#ffd877,#e3a83a);color:#1b1300}
.steps b{color:#fff}
.value{border-top:3px solid var(--gold)}
.cta-band{background:radial-gradient(800px 300px at 50% 0%,rgba(243,194,90,.18),transparent 70%),linear-gradient(160deg,#13254d,#0c1a3c);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cta-band p{color:#cfd9f0}
.post-cta,.bundle-band{background:radial-gradient(500px 200px at 0% 0%,rgba(243,194,90,.18),transparent 70%),linear-gradient(160deg,#16295a,#0e1c3d);border:1px solid rgba(243,194,90,.35);color:#cfd9f0}
.post-free,.post-free.mid,.free-band,.sample-note,.lp-offer,.look-inside{background:linear-gradient(160deg,rgba(243,194,90,.10),rgba(243,194,90,.03));border:1px solid rgba(243,194,90,.4);color:var(--ink)}
.look-inside figcaption{color:var(--muted)}
.lp-offer a{color:#f6cf73!important}
.mods li{border-left:4px solid var(--gold)}.mods b{color:#fff}.mods span{color:var(--muted)}
.faq summary{color:#fff}.faq p{color:#cfd9f0}
.lesson-timeline li{color:#cfd9f0}
.peek{color:#fff}
.film-note{color:#f6cf73}
.thumb.film-ph{background:radial-gradient(600px 260px at 80% -20%,rgba(243,194,90,.2),transparent 60%),linear-gradient(160deg,#13254d,#0a1530)}
.kids-band,.kids-cal-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cal-card header span,.cal-obs,.cal-also{color:var(--muted)}
.cal-pic{background:#0f1f43}
.cal-pic.soon{background:repeating-linear-gradient(45deg,#13254d,#13254d 10px,#0f1f43 10px,#0f1f43 20px);color:var(--muted)}
/* tables */
.lic-wrap{box-shadow:0 20px 40px -20px rgba(0,0,0,.7);border:1px solid var(--line)}
.lic-table{background:#0f1f43;color:var(--ink)}
.lic-table thead th{background:linear-gradient(135deg,#1b2f60,#13254d);color:#fff;border-bottom:2px solid var(--gold);text-align:center}
.lic-table tbody th{background:#13254d;color:#fff;border-bottom-color:var(--line)}
.lic-table td{border-bottom-color:var(--line)}
.lic-table tbody tr:first-child td{color:#fff}
.legal-table tbody tr td:first-child{color:#fff}
.cs-table td .c b{color:#fff}
@media(max-width:700px){.cs-table tr{border-bottom-color:var(--line)}.cs-table tbody th{background:#1b2f60}}
/* forms */
.form label,.form fieldset.opts legend{color:#fff}
.form label.opt{color:var(--ink)}
.form input,.form select,.form textarea{background:#0f1f43;border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:12px}
.form input::placeholder,.form textarea::placeholder{color:#7f8db0}
.form select option{background:#0f1f43;color:#fff}
.form fieldset.opts{border-color:rgba(255,255,255,.18)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
/* articles */
.article{color:#d6def2;font-size:1.08rem;line-height:1.8}
.article h2,.article h3{color:#fff}
.article a{color:#f6cf73}
.article blockquote{border-left:3px solid var(--gold);margin:1.6em 0;padding:.2em 0 .2em 1.2em;color:#fff;font-family:Fraunces,serif;font-size:1.25rem}
.article>img{border-radius:18px;border:1px solid var(--line)}
.post-hero .byline{color:#b9c5e0}
.soc-list a.soc{color:#fff}.soc-list a.soc svg{color:var(--gold)}
.lp-faq dt{color:#fff}.lp-faq dd{color:#cfd9f0}
.lp-hero{background:radial-gradient(700px 300px at 90% -10%,rgba(243,194,90,.2),transparent 60%),linear-gradient(165deg,#0c1a3c,#0a1530);padding-top:110px}
/* trailer modal */
#trailer{background:#0c1a3c;border:1px solid var(--line)}
/* page-specific inline light backgrounds */
section[style*="#f8fafc"],section[style*="#fff8ea"]{background:#0d1a3a!important;border-color:rgba(243,194,90,.35)!important}
[style*="color:#5b6678"]{color:var(--muted)!important}
[style*="color:#13294b"]{color:#fff!important}
/* reveal on scroll (only when JS has run) */
.js .rv2{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv2.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .rv2{opacity:1;transform:none;transition:none}}

/* cinematic header (shared with Home and Kids) */
.v2h{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.v2h.solid,.v2h.always{background:rgba(10,21,48,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:var(--line)}
.v2h .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:18px}
.v2h .logo img{height:36px;width:auto}
.v2h nav{display:flex;gap:22px;font-size:14.5px;font-weight:600}
.v2h nav a{text-decoration:none;color:#d6def2;white-space:nowrap}.v2h nav a:hover,.v2h nav a[aria-current]{color:var(--gold)}
.v2h .btn{padding:11px 18px;font-size:14.5px}
.navr{display:flex;align-items:center;gap:12px}
.menu-btn2{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;align-items:center;justify-content:center;font-size:18px}
.menu-btn2 span,.menu-btn2 span:before,.menu-btn2 span:after{display:block;width:20px;height:2px;background:#fff;border-radius:2px;position:relative;content:""}
.menu-btn2 span:before{position:absolute;top:-6px}.menu-btn2 span:after{position:absolute;top:6px}
.mnav{position:fixed;inset:0;z-index:70;background:rgba(10,21,48,.97);backdrop-filter:blur(10px);display:none;flex-direction:column;padding:90px 28px 40px;overflow:auto}
.mnav a{color:#fff;text-decoration:none;font:700 26px/1.2 Fraunces,serif;padding:12px 0;border-bottom:1px solid var(--line)}.mnav a[aria-current]{color:var(--gold)}
.mnav .btn{font:700 16px Inter,sans-serif;margin-top:24px;text-align:center;border:0;padding:16px}
.mnav .x{position:absolute;top:18px;right:18px;display:inline-flex}
body.menu-open .mnav{display:flex}body.menu-open{overflow:hidden}
@media(max-width:1200px){.v2h nav{display:none}.menu-btn2{display:inline-flex}}
@media(max-width:420px){.v2h .btn{padding:10px 14px;font-size:13.5px}.v2h .logo img{height:30px}}
/* footer */
footer.v2f{padding:70px 0 40px;color:var(--muted);font-size:15px;border-top:1px solid var(--line);background:#081127}
.v2f .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.v2f .fh{color:#fff;font:700 15px Inter,sans-serif;margin:0 0 14px;letter-spacing:.04em}
.v2f a{display:block;text-decoration:none;color:#c3cde4;padding:4px 0}.v2f a:hover{color:var(--gold)}
.v2f .tag{color:var(--gold);font-weight:600;margin:14px 0 6px}
.v2f .soc{display:flex;align-items:center;gap:10px}.v2f .soc svg{flex:none}
.v2f .legal{margin-top:46px;padding-top:24px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.7}.v2f .legal a{display:inline;color:#c3cde4;text-decoration:underline}
@media(max-width:900px){.v2f .cols{grid-template-columns:1fr 1fr}}@media(max-width:560px){.v2f .cols{grid-template-columns:1fr}}
/* cookie banner and chat */
.nb-cookie{background:#13254d;border:1px solid rgba(243,194,90,.45);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.45);font-family:Inter,sans-serif}
.nb-cookie a{color:var(--gold)}
.beam-btn{background:#13254d;border-color:var(--gold);font-family:Inter,sans-serif;box-shadow:0 10px 28px rgba(0,0,0,.45)}
.beam-btn img{background:#13254d}
/* Anti-Bullying Week offer switches itself off after 20 November */
html.abw-over .abw{display:none!important}html:not(.abw-over) .nabw{display:none!important}
/* fixes after QA */
a.btn-gold,.article a.btn-gold,button.btn-gold{color:#1b1300!important}
.article a.btn-navy,.article a.btn-ghost{color:#fff}
.form button.btn-navy[type=submit]{background:linear-gradient(135deg,#ffd877,#f3c25a 45%,#e3a83a);color:#1b1300;border-color:transparent;box-shadow:0 10px 28px -10px rgba(243,194,90,.65)}
main .lp-hero{padding:110px 0 34px;background:radial-gradient(700px 300px at 90% -10%,rgba(243,194,90,.2),transparent 60%),linear-gradient(165deg,#0c1a3c,#0a1530)}
main .lp-card{background:linear-gradient(180deg,#13254d,#0f1f43);border:1px solid var(--line);color:var(--ink)}
main .lp-card p{color:var(--muted)}
main .lp-faq dt{color:#fff}main .lp-faq dd{color:#cfd9f0}
main .lp-offer{background:linear-gradient(160deg,rgba(243,194,90,.16),rgba(243,194,90,.05));border:1px solid rgba(243,194,90,.55);color:var(--ink)}
main .lp-offer a{color:#f6cf73!important}
main .lp-sec{padding:44px 0}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* moving hero on Courses and Schools */
.page-hero.has-vid{min-height:min(86vh,820px);display:flex;align-items:flex-end;padding-bottom:80px}
.page-hero.has-vid:before{z-index:1}
.phv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s}
.phv.on{opacity:1}
.page-hero.has-vid:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,21,48,.6) 0%,rgba(10,21,48,.35) 35%,rgba(10,21,48,.85) 75%,#0a1530 100%),radial-gradient(80% 70% at 15% 85%,rgba(10,21,48,.8),transparent)}
.page-hero.has-vid .wrap{z-index:2}
@media(max-width:700px){.page-hero.has-vid:after{background:linear-gradient(180deg,rgba(10,21,48,.65),rgba(10,21,48,.6) 40%,rgba(10,21,48,.88) 75%,#0a1530)}}
/* watch with sound pill and player */
.snd{display:inline-flex;align-items:center;gap:14px;margin-top:22px;padding:8px 20px 8px 8px;border-radius:999px;border:1.5px solid rgba(243,194,90,.55);background:rgba(10,21,48,.45);backdrop-filter:blur(8px);color:#fff;font:inherit;cursor:pointer;text-align:left;transition:background .2s,transform .2s}
.snd:hover{background:rgba(243,194,90,.16);transform:translateY(-2px)}
.snd .si{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#ffd877,#f3c25a 45%,#e3a83a);position:relative;flex:none;animation:sndpulse 2.4s infinite}
.snd .si:after{content:"";position:absolute;left:17px;top:13px;border-left:14px solid #1b1300;border-top:9px solid transparent;border-bottom:9px solid transparent}
.snd b{display:block;font-size:15px}.snd small{display:block;color:#cbd6ef;font-size:13px}
@keyframes sndpulse{0%{box-shadow:0 0 0 0 rgba(243,194,90,.55)}70%{box-shadow:0 0 0 16px rgba(243,194,90,0)}100%{box-shadow:0 0 0 0 rgba(243,194,90,0)}}
#filmbox{border:0;padding:0;background:#000;width:min(1100px,96vw);border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6)}
#filmbox::backdrop{background:rgba(5,10,25,.88);backdrop-filter:blur(6px)}
#filmbox video{display:block;width:100%;aspect-ratio:16/9;background:#000}
#filmbox .fx{position:absolute;top:10px;right:10px;z-index:2;width:42px;height:42px;border-radius:50%;border:0;background:rgba(10,21,48,.75);color:#fff;font-size:20px;cursor:pointer}
@media(prefers-reduced-motion:reduce){.snd .si{animation:none}.phv{display:none}}
.phv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* course pages */
.course-hero .split{align-items:center}
.course-cover .cover-play{position:relative;display:block;padding:0;border:0;background:none;cursor:pointer;border-radius:16px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.45);width:100%}
.course-cover img{display:block;width:100%;height:auto}
.course-cover .pbtn{position:absolute;right:16px;bottom:16px;width:58px;height:58px;border-radius:50%;background:rgba(243,194,90,.95);color:#1b1300;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:transform .2s}
.course-cover .cover-play:hover .pbtn,.course-cover .cover-play:focus-visible .pbtn{transform:scale(1.08)}
.ticks.col{display:flex;flex-direction:column;gap:8px;margin:12px 0}
ul.lessons{margin:.7rem 0 .2rem;padding-left:1.1rem;color:#cfd9f0}
ul.lessons li{margin:.35rem 0}
ul.lessons .free{display:inline-block;margin-left:8px;font-size:.75rem;font-weight:700;color:#1b1300;background:#f3c25a;border-radius:999px;padding:1px 9px;vertical-align:middle}
.reassure{font-size:.85rem;color:#c3cde4}
.cta-band .reassure{text-align:center}
.card .reassure{margin-top:12px}
/* schools: course aside */
.ml-aside{position:sticky;top:96px;display:grid;gap:18px}
.ml-gets{background:linear-gradient(180deg,#13254d,#0f1f43);border:1px solid var(--line);border-radius:18px;padding:22px 24px}
.ml-gets ul{list-style:none;margin:6px 0 18px;padding:0;display:grid;gap:12px}
.ml-gets li{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center}
.ml-gets li b{font-family:Fraunces,serif;font-size:30px;line-height:1;color:var(--gold);text-align:center}
.ml-gets li span{color:var(--muted);font-size:.95rem;line-height:1.4}
@media(max-width:900px){.ml-aside{position:static}}

/* House rule: body text justified with British English hyphenation; amounts centred */
main p,main li,.section p,.section li,.card p,.card li,article p,article li,.wrap p,.wrap li{text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:7 3 3}
.cta-band p,.cta-band li,.stats p,.stats div,.lesson-timeline li,.look-inside figcaption,[style*="text-align:center"] p,[style*="text-align:center"] li,[style*="text-align: center"] p,.center p,.hero-c p,.page-hero.center p,.kicker,.btn,.price,.price+.small,p.small:has(+ .btn),.c,td .c,.lic-table td,.reassure,.nb-cookie p{text-align:center}
.card .price{text-align:center;display:block}.card .price+.small{text-align:center}
.card-body>.btn,.card-body>a.btn{align-self:center;margin-left:auto;margin-right:auto}
.ticks li{text-align:left;-webkit-hyphens:manual;hyphens:manual}
