:root{--lime:#7ac70c;--navy:#0b1a33;--on-accent:#0b1a33;--bg:#f3f5f8;--card:#ffffff;--text:#14213a;--line:var(--line);--muted:var(--muted);--alt:var(--alt);--r:14px;--rs:9px;--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--hfont:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 var(--font)}
a{color:inherit}
/* Sticky footer: page is a column, main grows to fill the screen */
body.site{min-height:100vh;display:flex;flex-direction:column}
body.site>main{flex:1 0 auto}
body.site>footer{flex-shrink:0}
.w{max-width:1100px;margin:0 auto;padding:0 18px}.narrow{max-width:680px}.mt{margin-top:18px}.muted,.note{color:var(--muted)}.note{font-size:13px}.r{text-align:right}
.ic{width:22px;height:22px;vertical-align:-4px;flex:none}
/* Header */
header.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px #0004}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:62px;gap:12px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:19px;text-decoration:none;letter-spacing:.3px}.logo b{color:var(--lime)}.logo .ic{color:var(--lime)}
nav{display:flex;flex-wrap:wrap;gap:2px}nav a{padding:7px 12px;border-radius:var(--rs);text-decoration:none;font-size:14px;font-weight:600;opacity:.92}nav a:hover,nav a.on{background:var(--lime);color:var(--on-accent);opacity:1}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}.burger i{display:block;width:24px;height:3px;background:#fff;margin:5px 0;border-radius:2px}
@media(max-width:860px){.burger{display:block}nav{display:none;position:absolute;left:0;right:0;top:62px;background:var(--navy);flex-direction:column;padding:8px 18px 16px}body.navopen nav{display:flex}}
.ann{background:var(--lime);color:var(--on-accent);text-align:center;padding:8px 14px;font-weight:700;font-size:14px}
/* Hero */
.hero{background:radial-gradient(900px 400px at 85% 0,#2b5ea055,transparent),linear-gradient(115deg,var(--navy) 55%,#17355f);background-size:cover;background-position:center;color:#fff}
.hg{display:grid;grid-template-columns:1.3fr 1fr;gap:34px;align-items:center;padding-top:64px;padding-bottom:64px}
@media(max-width:860px){.hg{grid-template-columns:1fr;padding-top:36px;padding-bottom:36px}}
.tag{background:var(--lime);color:var(--on-accent);font-weight:800;padding:5px 13px;border-radius:99px;font-size:13px;display:inline-block}
h1,h2,h3{font-family:var(--hfont)}
h1{font-size:clamp(34px,6vw,60px);line-height:1.02;margin:14px 0;font-weight:900;letter-spacing:-1px}h1 em{color:var(--lime);font-style:normal}h1.pt{font-size:34px;margin-top:0;color:var(--text);letter-spacing:-.5px}
h2{font-size:27px;margin:0 0 16px;letter-spacing:-.3px}.lead{font-size:18px;color:#d7e0f0;max-width:520px}
.qc{color:var(--text)}.qc .big small{font-size:14px;color:var(--muted)}
/* Buttons */
.btn{display:inline-block;background:var(--lime);color:var(--on-accent);font:inherit;font-weight:800;padding:11px 22px;border-radius:var(--rs);text-decoration:none;border:2px solid var(--lime);cursor:pointer;margin:4px 6px 4px 0;transition:transform .12s,filter .12s}
.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}.btn.ghost{background:transparent;color:inherit;border-color:currentColor}.btn.light{color:#fff}.btn.sm{padding:6px 14px;font-size:14px}.btn.block{display:block;text-align:center;margin:10px 0 0}
/* Layout blocks */
section{padding:42px 0}section.alt{background:var(--alt)}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:760px){.two,.row{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:0 1px 3px #0b1a3311}.card h3{margin:0 0 6px;font-size:18px}.card p{margin:0 0 8px}
.big{font-size:28px;font-weight:900;margin:0}.feat .ic{width:34px;height:34px;color:var(--lime);background:var(--navy);padding:7px;border-radius:var(--rs);margin-bottom:8px}
.step .num{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lime);color:var(--on-accent);font-weight:900;margin-bottom:6px}
.tier{text-align:center;border-top:5px solid var(--lime)}
.policy{display:flex;gap:14px;align-items:flex-start;border-left:6px solid var(--lime)}.policy .ic{width:34px;height:34px;color:var(--text)}
.strip{background:var(--lime);color:var(--on-accent);font-weight:800}.strip .w{display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:center;padding-top:12px;padding-bottom:12px;font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{border:2px solid var(--lime);border-radius:99px;padding:5px 16px;font-weight:700;background:var(--card)}
.band{background:var(--navy);color:#fff;text-align:center}
.faq{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-bottom:10px}.faq summary{cursor:pointer;font-weight:700}.faq p{margin:8px 0 0;color:var(--muted)}
.stars{color:#f5a623;letter-spacing:2px}.prose{font-size:17px}
.pill{color:#fff;padding:2px 12px;border-radius:99px;font-weight:700;font-size:13px}.pill.y{background:#2e9e4a}.pill.n{background:#d64545}
/* Calendar */
.calnav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal div{text-align:center;padding:10px 0;border-radius:var(--rs);border:1px solid var(--line);font-size:14px;background:var(--card)}
.cal .hd,.cal .e{background:none;border:0;font-weight:700;color:var(--muted);font-size:12px}.cal .d{background:#e4f6e8;border-color:#bfe5c9}.cal .l{background:#fff4d6;border-color:#f1d98c}.cal .x{background:#d64545;color:#fff;border-color:#d64545}.cal .p{opacity:.35}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--line);vertical-align:middle}.sw.d{background:#e4f6e8}.sw.l{background:#fff4d6}.sw.x{background:#d64545}
/* Forms */
.form input,.form select,.form textarea,input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--rs);font:inherit;margin:3px 0 10px;background:var(--card);color:inherit}
textarea{min-height:90px}label{font-size:13px;font-weight:700;color:var(--muted);display:block}label.ck{display:flex;gap:8px;align-items:center;font-size:14px}input[type=checkbox]{width:auto;margin:0}.hp{position:absolute;left:-9999px;width:1px;height:1px}
.bookgrid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;align-items:start}@media(max-width:860px){.bookgrid{grid-template-columns:1fr}}.sum{position:sticky;top:80px}
.sum table{width:100%}.sum td{padding:4px 0}
:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
/* Alerts + portal */
.alert{padding:11px 14px;border-radius:var(--rs);margin:0 0 14px;font-weight:600}.alert.ok{background:#e4f6e8;color:#1d6b32}.alert.err{background:#fde8e8;color:#a52a2a}
.notice{color:#14213a;display:flex;gap:12px;background:#fff4d6;border:1px solid #f1d98c;padding:12px 14px;border-radius:var(--rs);margin:14px 0}.notice.ok{background:#e4f6e8;border-color:#bfe5c9}
.split{display:flex;justify-content:space-between;align-items:center;gap:10px}.ref{background:var(--navy);color:var(--lime);padding:2px 12px;border-radius:var(--rs);letter-spacing:2px}
.steps{padding-left:20px}.steps li{margin:6px 0}
.track{list-style:none;display:flex;padding:0;margin:14px 0;gap:4px}.track li{flex:1;text-align:center;font-size:12px;font-weight:700;padding:8px 2px;background:var(--alt);border-radius:6px;color:var(--muted)}.track li.done{background:#bfe5c9;color:#1d6b32}.track li.now{background:var(--lime);color:var(--on-accent)}
.box{border:1px solid var(--line);border-radius:var(--rs);padding:10px 12px;margin:10px 0;background:#f8fafc;font-size:14px}
table.plain{width:100%;border-collapse:collapse}table.plain td{padding:7px 4px;border-bottom:1px solid #e6ebf2;vertical-align:top}
.badge-s{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;background:var(--alt);color:var(--muted)}.badge-s.green{background:#d9f2e0;color:#1d6b32}.badge-s.amber{background:#fff0c9;color:#8a6100}.badge-s.red{background:#fde0e0;color:#a52a2a}.badge-s.blue{background:#dcebff;color:#1b4f9c}
.map{width:100%;height:320px;border:0;border-radius:var(--r)}
/* Footer */
.foot{background:var(--navy);color:#cfd8e8;font-size:14px;margin-top:20px}.fg{display:grid;grid-template-columns:1.4fr 1fr 1.2fr 1.2fr;gap:24px;padding-top:34px;padding-bottom:20px}@media(max-width:860px){.fg{grid-template-columns:1fr 1fr}}@media(max-width:520px){.fg{grid-template-columns:1fr}}
.foot h4{margin:0 0 8px;color:#fff}.foot a,.foot span{display:block;text-decoration:none;margin:3px 0;opacity:.9}.foot a:hover{color:var(--lime)}.foot .logo{color:#fff}.foot .pill{display:inline-block}
.fb{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid #ffffff22;padding-top:14px;padding-bottom:18px;font-size:13px}.fb a,.fb span{display:inline}
.fx{position:fixed;right:14px;bottom:14px;background:#25d366;color:#fff;font-weight:800;padding:11px 16px;border-radius:99px;text-decoration:none;box-shadow:0 3px 12px #0006;display:flex;gap:6px;align-items:center;z-index:30}
@media(max-width:520px){.fx span{display:none}}

/* Logo image */
.logo-img{height:34px;width:auto;max-width:140px;object-fit:contain;border-radius:6px}
/* Scrolling announcement */
.ann{overflow:hidden;white-space:nowrap;padding:0;font-size:14px}
.marq{display:flex;width:max-content;animation:marq linear infinite}.ann:hover .marq{animation-play-state:paused}
.marq .grp{display:flex}.marq span{padding:8px 3.5rem;font-weight:700}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marq{animation:none;width:auto;justify-content:center}.marq .grp[aria-hidden=true]{display:none}.marq .grp span:not(:first-child){display:none}}
/* Image carousel */
.car{position:relative;margin:0 0 22px;border-radius:var(--r);overflow:hidden;background:var(--navy);box-shadow:0 6px 24px #0b1a3322}
.car-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}.car-track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;margin:0;position:relative;scroll-snap-align:start;aspect-ratio:16/9;max-height:520px}
.slide img{width:100%;height:100%;object-fit:cover;display:block}
.slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;color:#fff;font-weight:700;background:linear-gradient(transparent,#000a)}
@media(min-width:900px){.slide{flex-basis:50%;aspect-ratio:4/3}}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:#0b1a33cc;color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;z-index:2}.car-btn:hover{background:var(--lime);color:var(--on-accent)}.car-btn.prev{left:10px}.car-btn.next{right:10px}
.car-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:7px;z-index:2}.car-dots i{width:9px;height:9px;border-radius:50%;background:#ffffff80;cursor:pointer}.car-dots i.on{background:var(--lime);transform:scale(1.25)}
.car.one .car-btn,.car.one .car-dots{display:none}
/* Ideal-for image cards */
.ideal{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.ic-card{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,var(--navy),#17355f) center/cover no-repeat;display:flex;align-items:flex-end;box-shadow:0 3px 12px #0b1a3322;transition:transform .2s}
.ic-card:hover{transform:translateY(-3px)}.ic-card .cap{width:100%;padding:34px 14px 12px;color:#fff;background:linear-gradient(transparent,#000b);display:flex;flex-direction:column}.ic-card .cap span{font-size:13px;opacity:.9}.ic-card b{font-size:17px}
.ic-card.noimg>.ic{position:absolute;top:16px;left:16px;width:34px;height:34px;color:var(--lime)}
/* Contained call-to-action box (not full width) */
.ctasec{padding-top:10px;padding-bottom:50px}
.ctabox{max-width:760px;margin:0 auto;background:var(--navy);color:#fff;text-align:center;border-radius:calc(var(--r) + 6px);padding:34px 24px;box-shadow:0 8px 28px #0b1a3333}
.ctabox h2{margin:0 0 8px}.ctabox p{margin:0 0 14px}

/* ---- Centred headings and cards ---- */
h1.pt,.pt+p,.pt+.muted{text-align:center}
section h2{text-align:center}
section h2+.muted,section h2+p{text-align:center}
.feat,.step,.qc,.tier{text-align:center}
.feat .ic{display:block;margin:0 auto 10px}
.step .num{display:grid;margin:0 auto 8px}
.card.narrow{margin-left:auto;margin-right:auto;text-align:center}
.card.narrow .ck,.qc .ck{justify-content:center}
.card.narrow .btn,.qc .btn.block{margin-left:auto;margin-right:auto}
.feat h3,.step h3{margin-top:0}

.dcalc .inl{display:flex;gap:8px;flex-wrap:wrap}.dcalc .inl select{flex:2 1 200px}.dcalc .inl input{flex:1 1 90px}.dcalc .dr{margin:2px 0 10px}
