
:root{--bg:#F4F7FB;--surface:#fff;--surface-2:#E8F0F8;--ink:#14213D;--muted:#55627A;--line:#D9E3EE;--navy:#06294A;--navy-2:#0262A6;--cop:#E3001B;--cop-d:#B80016;--cop-l:#FDE7EA;--ok:#1E7B45;
--fd:"Rubik","Segoe UI",Arial,sans-serif;--fb:"Rubik","Segoe UI",Arial,sans-serif;--r:14px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0B1420;--surface:#121D2B;--surface-2:#1A2838;--ink:#E9EEF4;--muted:#A4B0BF;--line:#26364A;--cop-l:#3A1C22;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0F141B;--surface:#161D27;--surface-2:#1E2733;--ink:#E9EEF4;--muted:#A4B0BF;--line:#2A3544;--cop-l:#3A1C22;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:17px;line-height:1.6}
h1,h2,h3{font-family:var(--fd);line-height:1.2;margin:0;text-wrap:balance}p{margin:0 0 14px}a{color:inherit}
.i{width:22px;height:22px;flex:none}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:100;background:#fff;color:#000;padding:8px 12px;border-radius:8px}
:focus-visible{outline:3px solid var(--cop);outline-offset:2px}
/* top strip + header */
.strip{background:#041D36;color:#C7D6E6;font-size:14px}.strip .wrap{display:flex;gap:20px;justify-content:space-between;align-items:center;padding-block:7px;flex-wrap:wrap}
.strip a{text-decoration:none;display:inline-flex;gap:6px;align-items:center}.strip .i{width:16px;height:16px;color:#8CC8FF}
.strip .l{display:flex;gap:18px;flex-wrap:wrap}
header.site{background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(0,0,0,.18)}
header.site .wrap{display:flex;align-items:center;gap:14px;min-height:72px;max-width:1380px}
.strip .wrap{max-width:1380px}
@media (max-width:1380px){.brand small{display:none}}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand img{width:44px;height:44px;border-radius:50%;background:#fff;padding:5px;object-fit:contain}
.brand b{font-family:var(--fd);font-size:19px;letter-spacing:.01em;line-height:1.05}.brand small{display:block;font-size:11.5px;letter-spacing:.16em;color:#8CC8FF;font-weight:700}
nav.main{margin-left:auto}nav.main>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
nav.main a,nav.main button.top{font:600 15px var(--fb);color:#fff;text-decoration:none;background:none;border:0;padding:10px 11px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}
nav.main a:hover,nav.main button.top:hover,nav.main li.open>button.top{background:rgba(255,255,255,.1)}
nav.main a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--cop)}
nav.main .i{width:16px;height:16px;transition:transform .2s}nav.main li.open>button .i{transform:rotate(180deg)}
li.dd{position:relative}
.panel{position:absolute;top:calc(100% + 8px);left:0;min-width:300px;background:var(--surface);color:var(--ink);border-radius:12px;box-shadow:0 18px 40px rgba(4,29,54,.28);padding:8px;display:none;border:1px solid var(--line)}
li.dd.open .panel{display:block}
@media (min-width:1280px){li.dd.open::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}.panel{max-height:calc(100vh - 110px);overflow:auto;overscroll-behavior:contain}}
.panel a{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:0!important;color:var(--ink)!important;padding:9px 12px!important;white-space:normal!important}
.panel a:hover{background:var(--surface-2)!important}.panel a span{font-size:13px;color:var(--muted);font-weight:400}
.panel .gh{font:700 11.5px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--cop);padding:10px 12px 4px}
.panel .gh:not(:first-child){border-top:1px solid var(--line);margin-top:6px}
.panel .all{border-top:1px solid var(--line);margin-top:6px;font-weight:700}
.hbtns{display:flex;gap:8px;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--cop);background:var(--cop);color:#fff;font:700 15.5px var(--fb);padding:11px 20px;border-radius:10px;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--cop-d);border-color:var(--cop-d)}
.btn.ghost{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}.btn.ghost:hover{background:rgba(255,255,255,.1)}
.btn.line{background:transparent;border-color:var(--line);color:var(--ink)}.btn.line:hover{background:var(--surface-2)}
.btn.navy{background:var(--navy);border-color:var(--navy)}.btn.navy:hover{background:var(--navy-2)}
.btn.sm{padding:8px 14px;font-size:14.5px}
.burger{display:none;margin-left:auto;background:none;border:2px solid rgba(255,255,255,.4);color:#fff;border-radius:9px;padding:7px 10px;font:700 15px var(--fb);align-items:center;gap:6px;cursor:pointer}
/* sections */
.eyebrow{font:700 12.5px var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--cop)}
section{padding:72px 0}.sh{max-width:720px;margin-bottom:30px}.sh h2{font-size:clamp(26px,3.4vw,36px);margin:8px 0 10px}.sh p{color:var(--muted);font-size:18px}
.hero{background:radial-gradient(110% 120% at 100% 0%,#1B3556 0%,#12263F 50%,#041D36 100%);color:#fff;padding:76px 0 84px;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;align-items:center}
.hero h1{font-size:clamp(34px,5.2vw,58px);margin:12px 0 18px;letter-spacing:-.01em}.hero h1 em{font-style:normal;color:#8CC8FF}
.hero p.lead{font-size:19.5px;color:rgba(255,255,255,.85);max-width:600px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.badge{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:30px;padding:7px 14px;font-size:14.5px}
.badge .i{width:18px;height:18px;color:#8CC8FF}
.hcard{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:24px;backdrop-filter:blur(4px)}
.hcard h2{font-size:20px;margin-bottom:14px}
.hlink{display:flex;gap:14px;align-items:center;padding:14px;border-radius:12px;text-decoration:none;background:rgba(255,255,255,.06);margin-bottom:10px;border:1px solid transparent}
.hlink:hover{border-color:rgba(240,165,127,.6);background:rgba(255,255,255,.1)}
.hlink .ic{width:44px;height:44px;border-radius:12px;background:var(--cop);display:flex;align-items:center;justify-content:center;flex:none}
.hlink b{display:block;font-size:16.5px}.hlink span{font-size:14px;color:rgba(255,255,255,.75)}
.hlink .go{margin-left:auto;color:#8CC8FF}
.deco{position:absolute;right:-90px;bottom:-110px;width:420px;height:420px;color:rgba(200,88,43,.12)}
.grid{display:grid;gap:18px}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.ccard{display:flex;flex-direction:column;gap:10px}
.ccard .ic,.fcard .ic{width:50px;height:50px;border-radius:13px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center}
.ccard h3{font-size:19px}.ccard p{color:var(--muted);font-size:15.5px;margin:0;flex:1}
.price{font:800 22px var(--fd);color:var(--cop)}.price.free{color:var(--ok)}
.ccard .row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.band{background:var(--surface)}.band.alt{background:var(--surface-2)}
.fcard{display:flex;flex-direction:column;gap:10px;text-decoration:none;transition:transform .15s,box-shadow .15s}
.fcard:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(6,41,74,.12)}
.fcard h3{font-size:19px}.fcard p{color:var(--muted);font-size:15.5px;margin:0}
.fcard .more{margin-top:auto;font-weight:700;color:var(--cop);display:inline-flex;gap:6px;align-items:center}.fcard .more .i{width:18px;height:18px}
.fcard .ic.cop{background:var(--cop)}
.tag{display:inline-block;font:700 12px var(--fb);letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:20px;background:var(--cop-l);color:var(--cop-d);align-self:flex-start}
:root[data-theme="dark"] .tag{color:#8CC8FF}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tag{color:#8CC8FF}}
.mgroup h3{font-size:21px;margin:0 0 14px;display:flex;gap:10px;align-items:center}
.mlist{display:grid;gap:10px}
.mitem{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;text-decoration:none;background:var(--surface)}
.mitem:hover{border-color:var(--cop)}.mitem b{display:block}.mitem span{font-size:14px;color:var(--muted)}.mitem .code{font:800 14px var(--fd);background:var(--navy);color:#fff;border-radius:9px;padding:8px 10px;min-width:74px;text-align:center}
.mitem .go{margin-left:auto;color:var(--cop)}
.path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;counter-reset:s}
.path div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;position:relative}
.path div::before{counter-increment:s;content:counter(s);display:flex;width:30px;height:30px;border-radius:50%;background:var(--cop);color:#fff;font:700 14px var(--fb);align-items:center;justify-content:center;margin-bottom:8px}
.path b{display:block;font-size:16px}.path span{font-size:14px;color:var(--muted)}
.ticks{list-style:none;padding:0;margin:0;display:grid;gap:9px}.ticks li{display:flex;gap:10px}.ticks .i{color:var(--ok);margin-top:3px;width:20px;height:20px}
.ctaband{background:var(--cop);color:#fff;border-radius:20px;padding:38px;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ctaband h2{font-size:clamp(24px,3vw,32px)}.ctaband p{margin:6px 0 0;color:rgba(255,255,255,.9)}
.ctaband .btn{background:#fff;color:var(--cop-d);border-color:#fff}.ctaband .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.phead{background:radial-gradient(110% 140% at 100% 0%,#1B3556 0%,#12263F 60%,#041D36 100%);color:#fff;padding:56px 0}
.phead h1{font-size:clamp(30px,4.4vw,46px);margin:8px 0 10px}.phead p{color:rgba(255,255,255,.85);font-size:18.5px;max-width:720px;margin:0}
.crumbs{font-size:14px;color:rgba(255,255,255,.7)}.crumbs a{color:#fff}
.prose{max-width:820px}.prose h2{font-size:26px;margin:34px 0 12px}.prose h3{font-size:19px;margin:22px 0 8px}.prose ul,.prose ol{padding-left:22px}.prose li{margin-bottom:6px}
.stage{border-left:4px solid var(--cop);padding:4px 0 4px 18px;margin:16px 0}
.cinfo{display:grid;gap:14px}.cinfo a,.cinfo div{display:flex;gap:12px;align-items:flex-start;text-decoration:none}.cinfo .i{color:var(--cop);margin-top:3px}
form .f{display:grid;gap:6px;margin-bottom:14px}form label{font-weight:600;font-size:15px}
form input,form select,form textarea{font:inherit;width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
form textarea{min-height:130px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:15px}.chk input{width:18px;height:18px;margin-top:4px;flex:none}
.msg{margin-top:12px;font-weight:600}.msg.ok{color:var(--ok)}.msg.err{color:#A3271B}
footer.site{background:#041D36;color:#C7D6E6;padding:56px 0 28px;font-size:15.5px}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:28px}
footer.site h3{color:#fff;font-size:16px;margin-bottom:12px}footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}
footer.site a{text-decoration:none}footer.site a:hover{color:#fff;text-decoration:underline}
footer.site .bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding-top:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
.muted{color:var(--muted)}
@media (max-width:1300px){nav.main a,nav.main button.top{padding:10px 8px;font-size:14.5px}.hbtns .btn.sm{padding:7px 12px}}
@media (max-width:1279px){
 .burger{display:inline-flex}nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow:auto;overscroll-behavior:contain;padding:8px 16px 18px;border-top:1px solid rgba(255,255,255,.12)}
 header.site.menu-open nav.main{display:block}nav.main>ul{flex-direction:column;align-items:stretch}
 nav.main a,nav.main button.top{width:100%;justify-content:space-between;padding:13px 10px;font-size:16px}
 .panel{position:static;display:none;box-shadow:none;border:0;background:rgba(255,255,255,.06);min-width:0;margin:2px 0 6px}.panel a{color:#fff!important}.panel a span{color:rgba(255,255,255,.7)}.panel a:hover{background:rgba(255,255,255,.08)!important}
 .panel .gh{color:#8CC8FF}.panel .gh:not(:first-child),.panel .all{border-color:rgba(255,255,255,.12)}
 .hbtns.desk{display:none}.mhbtns{display:flex;gap:10px;margin-top:12px}.mhbtns .btn{flex:1}
 .hero .wrap{grid-template-columns:1fr}.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.path{grid-template-columns:repeat(2,minmax(0,1fr))}footer.site .cols{grid-template-columns:1fr 1fr}}
@media (min-width:1280px){.mhbtns{display:none}}
@media (max-width:640px){section{padding:54px 0}.g3,.g4,.g2,.two,.path{grid-template-columns:1fr}footer.site .cols{grid-template-columns:1fr}.strip .r{display:none}.brand small{display:none}.ctaband{padding:26px}.hero{padding:52px 0 60px}}

/* Login / Register buttons inside the mobile menu */
nav.main .mhbtns a.btn{justify-content:center;width:auto;padding:11px 14px;font:700 15.5px var(--fb);border:2px solid var(--cop);background:var(--cop);color:#fff;border-radius:10px}
nav.main .mhbtns a.btn.ghost{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}


.price.ask{font-size:15.5px;color:var(--ink);font-weight:700}

/* refresher self-study hub */
.sspack{align-items:stretch}.sscard{display:flex;flex-direction:column;gap:10px}
.sscard .top{display:flex;align-items:center;justify-content:space-between}
.sscard .num{font:800 13px var(--fd);letter-spacing:.08em;color:var(--cop);background:var(--cop-l);border-radius:20px;padding:4px 11px}
.sscard .ic{width:46px;height:46px;border-radius:12px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center}
.sscard h3{font-size:19px}.sscard p{color:var(--muted);font-size:15.5px;margin:0;flex:1}
.sscard .meta{font-size:13.5px;color:var(--muted);font-weight:600}.sscard .btn{width:100%}
.sscard .sub{font-size:14.5px;font-weight:700;color:var(--cop);text-align:center}
.ssteps{counter-reset:s;list-style:none;padding:0;margin:0}
.ssteps li{counter-increment:s;position:relative;padding:0 0 14px 44px}
.ssteps li::before{content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font:700 14px var(--fb);display:flex;align-items:center;justify-content:center}
.ssteps a,.sscard p a{color:var(--cop);font-weight:700}

.ccard .rel{font-size:14.5px;margin:2px 0 0;line-height:1.7}.ccard .rel a{color:var(--cop);font-weight:700;text-decoration:none}.ccard .rel a:hover{text-decoration:underline}
.xlinks{display:flex;gap:10px;flex-wrap:wrap}

.ccard .cdays{list-style:none;padding:12px 14px;margin:4px 0 0;background:var(--surface-2);border-radius:10px;display:grid;gap:6px;font-size:14.5px;line-height:1.45}.ccard .cdays b{color:var(--ink)}.ccard .cdays a,.prereq a{color:var(--cop);font-weight:700}
.ctt{width:100%;border-collapse:collapse;font-size:16px}.ctt th{text-align:left;width:34%;padding:10px 12px;background:var(--surface-2);font-weight:700;border-bottom:1px solid var(--line)}.ctt td{padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600}
.prereq{margin-top:22px;border-left:5px solid var(--cop);scroll-margin-top:110px}.prereq h3{font-size:20px;margin-bottom:14px}.warnline{margin:6px 0 0;padding:12px 14px;border-radius:10px;background:var(--cop-l);font-weight:600}
.ccard{scroll-margin-top:110px}

/* LOGIX */
.strip{background:var(--navy-2);color:#fff}.strip a,.strip span{color:#fff}.strip .i{color:#fff;opacity:.9}.strip .r{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.strip .r a[data-enquire]{font-weight:700;background:var(--cop);padding:3px 10px;border-radius:6px}
header.site{background:#fff;color:#14213D;box-shadow:0 2px 16px rgba(6,41,74,.10);border-bottom:3px solid var(--cop)}
header.site .wrap{min-height:76px}
.brand img{width:auto;height:52px;border-radius:0;padding:0;background:none;object-fit:contain}
nav.main a,nav.main button.top{color:#14213D;font-weight:500}
nav.main a:hover,nav.main button.top:hover,nav.main li.open>button.top{background:#E8F0F8}
nav.main a[aria-current="page"],nav.main button.top[aria-current="page"]{box-shadow:inset 0 -3px 0 #E3001B;color:#0262A6}
nav.main li.cta{margin-left:8px}nav.main li.cta a.btn{color:#fff;padding:9px 18px;font-weight:700}nav.main li.cta a.btn:hover{background:var(--cop-d)}
.burger{color:#14213D;border-color:#D9E3EE;background:#fff}
.panel{min-width:340px}.panel a span{color:var(--muted)}
@media (min-width:1280px){nav.main li.dd:nth-of-type(2) .panel{min-width:460px;columns:1}}
@media (max-width:1279px){nav.main{background:#fff;border-top:1px solid #D9E3EE;box-shadow:0 18px 30px rgba(6,41,74,.12)}
 .panel{background:#E8F0F8}.panel a{color:#14213D!important}.panel a span{color:#55627A}.panel a:hover{background:#fff!important}.panel .gh{color:#E3001B}.panel .gh:not(:first-child),.panel .all{border-color:#D9E3EE}
 nav.main li.cta{margin:10px 0 0}nav.main li.cta a.btn{width:100%;justify-content:center}}
.btn{background:var(--cop);border-color:var(--cop)}.btn.navy{background:var(--navy-2);border-color:var(--navy-2)}.btn.navy:hover{background:var(--navy);border-color:var(--navy)}
.eyebrow{color:var(--cop)}
.phead{background:linear-gradient(120deg,#06294A 0%,#0262A6 100%);color:#fff;padding:54px 0 46px}.phead h1{color:#fff;font-size:clamp(30px,4vw,44px);margin:6px 0 10px}.phead p{color:#E3EEF8;max-width:760px;font-size:18px;margin:0}.phead .crumbs{color:#CFE2F5;font-size:14.5px}.phead .crumbs a{color:#fff}
footer.site{background:#041D36}.fbrand img{height:58px;width:auto;background:#fff;border-radius:10px;padding:6px 10px}
footer.site .cinfo .i{color:#8CC8FF}
/* home */
.lhero{background:radial-gradient(1200px 500px at 85% -10%,rgba(227,0,27,.18),transparent 60%),linear-gradient(125deg,#041D36 0%,#06294A 45%,#0262A6 100%);color:#fff;padding:76px 0 84px;position:relative;overflow:hidden}
.lhero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.lhero h1{font-size:clamp(34px,5vw,56px);font-weight:700;line-height:1.08;margin:12px 0 16px;color:#fff}.lhero h1 em{font-style:normal;color:#FF6B7A}
.lhero p.lead{font-size:19px;color:#DCE8F5;max-width:620px}.lhero .eb{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:6px 12px;border-radius:30px;font-weight:600;font-size:14.5px}
.lhero .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn.light{background:#fff;color:var(--navy);border-color:#fff}.btn.light:hover{background:#E8F0F8}
.hpanel{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:22px;backdrop-filter:blur(6px)}
.hpanel .hdog{display:flex;gap:14px;align-items:center;padding:0!important;margin-bottom:16px;background:rgba(255,255,255,.10);border-radius:14px;overflow:hidden}.hpanel .hdog img{width:110px;height:84px;object-fit:cover;object-position:64% 50%;flex:none}.hpanel .hdog small{display:block}.hpanel .hdog b{color:#fff}.hpanel h2{font-size:18px;color:#fff;margin:0 0 12px}.hpanel a{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;text-decoration:none;color:#fff}.hpanel a:hover{background:rgba(255,255,255,.08)}
.hpanel a .ic{width:42px;height:42px;border-radius:11px;background:#fff;color:var(--navy-2);display:flex;align-items:center;justify-content:center;flex:none}.hpanel a b{display:block;font-weight:600}.hpanel a small{color:#C7D6E6}.hpanel a .go{margin-left:auto;color:#FF8A96}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:-42px;position:relative;z-index:2}
.stat{background:#fff;border-radius:16px;padding:20px;box-shadow:0 14px 34px rgba(6,41,74,.12);border-top:4px solid var(--navy-2)}.stat:nth-child(2n){border-top-color:var(--cop)}.stat b{display:block;font-size:30px;color:var(--navy);font-weight:700}.stat span{color:var(--muted);font-size:15px}
.gcard{display:flex;flex-direction:column;gap:10px;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}
.gcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(6,41,74,.12)}.gcard::after{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,var(--navy-2),var(--cop))}
.gcard .ic{width:52px;height:52px;border-radius:14px;background:var(--surface-2);color:var(--navy-2);display:flex;align-items:center;justify-content:center}.gcard h3{font-size:20px}.gcard p{color:var(--muted);margin:0;font-size:15.5px;flex:1}
.gcard ul{list-style:none;padding:0;margin:0;display:grid;gap:4px;font-size:14.5px}.gcard ul li::before{content:"› ";color:var(--cop);font-weight:700}.gcard .more{font-weight:700;color:var(--cop);display:inline-flex;gap:6px;align-items:center}.gcard .more .i{width:18px;height:18px}
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.why .card{border-left:4px solid var(--navy-2)}.why .card .ic{width:46px;height:46px;border-radius:12px;background:var(--navy-2);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.why h3{font-size:19px;margin-bottom:6px}.why p{color:var(--muted);margin:0}
.steps4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s}.steps4 div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;position:relative}.steps4 div::before{counter-increment:s;content:counter(s);display:flex;width:34px;height:34px;border-radius:50%;background:var(--cop);color:#fff;font-weight:700;align-items:center;justify-content:center;margin-bottom:10px}.steps4 b{display:block}.steps4 span{color:var(--muted);font-size:15px}
.ctaband{background:linear-gradient(120deg,#E3001B,#B80016);color:#fff;border-radius:20px;padding:34px;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}.ctaband h2{color:#fff;font-size:28px}.ctaband p{margin:6px 0 0;color:#FFE3E6}
/* courses page */
.cgroup{scroll-margin-top:120px;margin-bottom:44px}.cgroup>h2{display:flex;gap:12px;align-items:center;font-size:clamp(24px,3vw,30px);margin-bottom:6px}.cgroup>h2 .ic{width:44px;height:44px;border-radius:12px;background:var(--navy-2);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}.cgroup>p{color:var(--muted);margin:0 0 18px}
.course{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px;scroll-margin-top:120px}.course:target{outline:3px solid var(--cop);outline-offset:2px}
.course h3{font-size:18.5px;line-height:1.3}.course p{color:var(--muted);font-size:15.5px;margin:0;flex:1}.course .row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px;flex-wrap:wrap}.course .price{font:700 24px var(--fd);color:var(--navy-2)}.course .btns{display:flex;gap:8px}
.cnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px}.cnav a{padding:8px 14px;border-radius:30px;background:var(--surface);border:1px solid var(--line);text-decoration:none;font-weight:600;font-size:15px}.cnav a:hover{border-color:var(--navy-2);color:var(--navy-2)}
.note{background:var(--surface-2);border-radius:14px;padding:18px 20px}
/* policy pages */
.policy{max-width:860px}.policy h2{font-size:22px;margin:26px 0 10px;color:var(--navy)}.policy h3{font-size:19px;margin:22px 0 8px;color:var(--navy)}.policy h4{font-size:17px;margin:18px 0 6px;color:var(--navy-2)}
.policy ul,.policy ol{padding-left:22px;margin:0 0 14px}.policy li{margin-bottom:5px}.policy table{border-collapse:collapse;width:100%;margin:12px 0 18px;font-size:15px}.policy td,.policy th{border:1px solid var(--line);padding:8px 10px;vertical-align:top}
.plist{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.plist a{display:flex;gap:12px;align-items:center;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;text-decoration:none;font-weight:600}.plist a:hover{border-color:var(--navy-2)}.plist a .ic{color:var(--navy-2)}.plist a .go{margin-left:auto;color:var(--cop)}
/* booking form */
.bform fieldset{border:1px solid var(--line);border-radius:14px;padding:18px 18px 6px;margin:0 0 18px;background:var(--surface)}.bform legend{font:700 17px var(--fd);color:var(--navy);padding:0 6px}
.bform .g2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.bform .g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
.bform .chks label{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);font-size:15.5px;cursor:pointer}.bform .chks label:last-child{border-bottom:0}.bform .chks input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:#E3001B}
.dogs{background:linear-gradient(180deg,#fff,var(--bg))}.dwrap{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}
.dlist{display:grid;gap:10px;margin-top:18px}.dlist a{display:flex;gap:12px;align-items:center;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;text-decoration:none}.dlist a:hover{border-color:var(--navy-2)}.dlist .ic{width:42px;height:42px;border-radius:11px;background:var(--navy-2);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}.dlist b{display:block;font-weight:600;color:var(--ink)}.dlist small{color:var(--cop);font-weight:700;font-size:15px}.dlist .go{margin-left:auto;color:var(--cop)}
.dgal{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:520px}.dgal figure{margin:0;border-radius:16px;overflow:hidden;box-shadow:0 14px 30px rgba(6,41,74,.14);background:#fff}.dgal img{width:100%;height:100%;object-fit:cover;display:block}
.dgal .d1{grid-row:1/3}.dgal .d1 img{object-position:64% 50%}.dgal .d3 img{object-position:50% 0}
.dimg{width:100%;height:220px;object-fit:cover;border-radius:12px;margin-bottom:4px}
@media (max-width:1100px){.dwrap{grid-template-columns:1fr}}@media (max-width:640px){.dgal{height:420px}}
.dogs2{background:radial-gradient(900px 400px at 10% 0%,rgba(227,0,27,.20),transparent 60%),linear-gradient(135deg,#041D36,#06294A 55%,#0262A6);color:#fff;margin-top:56px;padding:64px 0}
.dhead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:28px}.dhead h2{color:#fff;font-size:clamp(28px,3.6vw,40px);margin:8px 0 10px;max-width:640px}.dhead p{color:#DCE8F5;max-width:640px;margin:0;font-size:17.5px}.dacts{display:flex;gap:10px;flex-wrap:wrap}
.dcards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.dcard{background:#fff;color:var(--ink);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 18px 40px rgba(0,0,0,.25);transition:transform .15s}.dcard:hover{transform:translateY(-4px)}
.dcard .ph{position:relative;display:block;height:300px;background:#0B1420}.dcard .ph img{width:100%;height:100%;object-fit:cover;display:block}.dcard .pr{position:absolute;left:14px;bottom:14px;background:#E3001B;color:#fff;font:700 18px var(--fd);padding:6px 12px;border-radius:10px}
.dcard .bd{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}.dcard h3{font-size:19px;color:#14213D}.dcard p{color:#55627A;margin:0;font-size:15.5px;flex:1}.dcard .btns{display:flex;gap:8px;margin-top:6px}
.dfeat{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px 26px;color:#DCE8F5;font-weight:500}.dfeat li{display:flex;gap:8px;align-items:center}.dfeat .i{width:20px;height:20px;color:#8CC8FF}
@media (max-width:1000px){.dcards{grid-template-columns:1fr 1fr}}@media (max-width:640px){.dcards{grid-template-columns:1fr}.dcard .ph{height:260px}.dogs2{padding:48px 0}}
@media (max-width:1100px){.lhero .wrap{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.why{grid-template-columns:1fr 1fr}.steps4{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.strip .l a:nth-child(n+2),.strip .r span{display:none}.strip .wrap{flex-direction:row;flex-wrap:wrap;gap:6px 14px;padding-top:6px;padding-bottom:6px}.strip .l,.strip .r{gap:12px}.stats,.why,.steps4,.plist,.bform .g2,.bform .g3{grid-template-columns:1fr}.lhero{padding:52px 0 72px}.brand img{height:42px}.ctaband{padding:24px}}
