:root{
  --deep:#0C1E2E;
  --panel:#13324A;
  --ink:#E7F0F6;
  --amber:#F3A340;
  --haze:#7FA0B4;
  --panel-hi:#1A4463;
  --dark-ink:#0C1E2E;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  font-family:"DM Sans",system-ui,sans-serif;
  font-optical-sizing:auto;
  background:var(--deep);
  color:var(--ink);
  line-height:1.65;
  font-size:1.02rem;
  min-height:100vh;
  padding-bottom:96px;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--amber);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:#FFC97E}
p,li{color:var(--ink)}
h1,h2,h3{
  font-family:"DM Serif Display",Georgia,serif;
  font-weight:400;
  line-height:1.15;
  color:var(--ink);
  margin:0 0 .6em;
}
h1{font-size:clamp(2.2rem,4.2vw,3.4rem)}
h2{font-size:clamp(1.55rem,2.6vw,2.15rem)}
h3{font-size:clamp(1.2rem,1.8vw,1.45rem)}
ul,ol{padding-left:1.15em}

.lane{
  width:min(1220px,92vw);
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(20px,3vw,44px);
}
.main-col{grid-column:1 / span 3}
.rail{
  grid-column:4 / span 1;
  position:sticky;
  top:96px;
  align-self:start;
  background:var(--panel);
  border-left:3px solid var(--amber);
  padding:26px 22px;
  border-radius:2px;
}
.span-all{grid-column:1 / -1}

.topbar{
  height:72px;
  background:rgba(12,30,46,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  position:sticky;
  top:0;
  z-index:40;
  border-bottom:1px solid rgba(127,160,180,.2);
}
.topbar-inner{
  width:min(1220px,92vw);
  margin-inline:auto;
  height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brandmark{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ink);
  text-decoration:none;
  font-weight:500;
  letter-spacing:.01em;
  font-size:1.02rem;
}
.brandmark:hover{color:#FFC97E;text-decoration:none}
.brandmark svg{display:block;flex:0 0 24px}
.burger{
  width:44px;
  height:44px;
  border:1px solid rgba(127,160,180,.35);
  background:transparent;
  color:var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  cursor:pointer;
  padding:0;
  border-radius:2px;
}
.burger span{
  display:block;
  width:18px;
  height:2px;
  background:var(--ink);
}
.burger:hover{background:var(--panel-hi);border-color:var(--ink)}

.fullmenu{
  position:fixed;
  inset:0;
  background:var(--deep);
  z-index:50;
  display:none;
  padding:96px 0 48px;
  overflow:auto;
}
.fullmenu.open{display:grid;align-content:start}
.fullmenu-list{
  grid-column:1 / span 3;
  display:flex;
  flex-direction:column;
  gap:.35rem;
  list-style:none;
  margin:0;
  padding:0;
}
.fullmenu-list a{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(1.8rem,4vw,3rem);
  line-height:1.25;
  color:var(--ink);
  text-decoration:none;
  display:inline-block;
  transition:color .2s ease, transform .2s ease;
}
.fullmenu-list a:hover{color:var(--amber);transform:translateX(8px)}
.fullmenu-meta{
  grid-column:4 / span 1;
  color:var(--haze);
  font-size:.95rem;
}
.fullmenu-meta h2{
  font-family:"DM Sans",sans-serif;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--haze);
}
.fullmenu-meta a{color:var(--amber)}
.fullmenu-close{
  position:fixed;
  top:14px;
  right:max(16px,4vw);
  width:44px;
  height:44px;
  border:1px solid rgba(127,160,180,.35);
  background:transparent;
  color:var(--ink);
  cursor:pointer;
  font-size:1.6rem;
  line-height:1;
  border-radius:2px;
  z-index:51;
}
.fullmenu-close:hover{background:var(--panel-hi)}

.hero-centre{
  grid-column:1 / -1;
  text-align:center;
  padding-block:clamp(76px,11vw,150px);
}
.hero-centre h1{
  font-size:clamp(2.9rem,6.4vw,5.2rem);
  line-height:1.02;
  max-width:18ch;
  margin:0 auto .4em;
}
.offer-sub{
  max-width:60ch;
  margin:0 auto 1.6rem;
  color:var(--ink);
  font-size:clamp(1.02rem,1.5vw,1.15rem);
  line-height:1.6;
}
.hero-page{padding-top:clamp(48px,7vw,88px);padding-bottom:12px}
.hero-page .offer-sub{margin-left:0;margin-right:0;max-width:58ch}

.cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
  margin-bottom:1.4rem;
}
.hero-page .cta-row,.main-col .cta-row{justify-content:flex-start}

.btn-solid,.btn-line{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 22px;
  font-family:"DM Sans",sans-serif;
  font-weight:500;
  font-size:.95rem;
  text-decoration:none;
  border-radius:2px;
  cursor:pointer;
}
.btn-solid{
  background:var(--amber);
  color:#0C1E2E;
  border:1px solid var(--amber);
}
.btn-solid:hover{background:#FFB75A;color:#0C1E2E}
.btn-line{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--haze);
}
.btn-line:hover{background:var(--panel-hi);color:#FFFFFF;border-color:var(--ink)}
button.btn-solid,button.btn-line{appearance:none}

.kicker{
  font-family:"DM Sans",sans-serif;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.72rem;
  color:var(--haze);
  margin:0 0 .7rem;
}

.block{padding-block:clamp(36px,6vw,72px)}
.block-head{
  border-left:3px solid var(--amber);
  padding-left:16px;
  margin-bottom:1.25rem;
}
.block-head h2,.block-head h1{margin-bottom:.15em}

.note-strip{
  background:var(--panel);
  border:1px solid rgba(127,160,180,.28);
  padding:14px 18px;
  font-size:.95rem;
  color:var(--ink);
  border-radius:2px;
}
.note-strip.alert{
  border-color:var(--amber);
  border-width:2px;
}

.metric-grid{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2vw,28px);
}
.metric{
  background:var(--panel);
  padding:22px 20px;
  border-radius:2px;
  border-top:3px solid var(--amber);
}
.metric-num{
  font-family:"DM Serif Display",Georgia,serif;
  color:var(--amber);
  font-size:clamp(2.4rem,4vw,3.6rem);
  line-height:1;
  display:block;
  margin-bottom:.45rem;
}
.metric-cap{color:var(--haze);font-size:.95rem;margin:0}

.case-card{
  background:var(--panel);
  padding:clamp(20px,3vw,32px);
  border-radius:2px;
  margin-bottom:28px;
}
.case-head{margin-bottom:1rem}
.case-head h2,.case-head h3{margin:0 0 .35em}

.case-table{
  width:100%;
  border-collapse:collapse;
  font-size:.92rem;
  margin:1rem 0 1.2rem;
}
.case-table th{
  color:var(--haze);
  font-weight:500;
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid rgba(127,160,180,.22);
  font-family:"DM Sans",sans-serif;
}
.case-table td{
  padding:10px 12px;
  border-bottom:1px solid rgba(127,160,180,.22);
  vertical-align:top;
}
.case-table td:first-child{color:var(--haze)}
.case-table tbody tr:nth-child(even){background:rgba(255,255,255,.03)}
.case-table .num{color:var(--amber);font-variant-numeric:tabular-nums}

.prog-row{
  display:grid;
  grid-template-columns:1.2fr 1.1fr .7fr 1.2fr .8fr;
  gap:12px 16px;
  padding:18px 0;
  border-bottom:1px solid rgba(127,160,180,.22);
}
.prog-row:first-of-type{border-top:1px solid rgba(127,160,180,.22)}
.prog-row h3{margin:0 0 .35em;font-size:1.2rem}
.prog-row p{margin:0;font-size:.92rem}
.prog-label{display:block;color:var(--haze);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin-bottom:.3rem}
.prog-body{
  background:var(--panel);
  padding:clamp(22px,3vw,36px);
  border-radius:2px;
  margin-bottom:24px;
}
.prog-body h2{margin-top:0}

.step-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.step{
  background:var(--panel);
  padding:20px 22px;
  border-radius:2px;
  border-left:3px solid var(--amber);
}
.step h3{margin:0 0 .4em}

.faq-item{
  border-bottom:1px solid rgba(127,160,180,.22);
  padding:18px 0;
}
.faq-q{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:1.25rem;
  margin:0 0 .5rem;
  color:var(--ink);
}
.faq-a{margin:0;color:var(--ink)}

.figure{margin:0 0 1.1rem;border-radius:2px}
.figure img{width:100%;height:auto;display:block;border-radius:2px;object-fit:cover}
.figure figcaption{color:var(--haze);font-size:.82rem;margin-top:8px}

.photo-pair{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:1.2rem 0;
}

.fit-list{margin:1rem 0 0;padding:0;list-style:none}
.fit-list li{padding:10px 0;border-bottom:1px solid rgba(127,160,180,.18)}
.fit-list strong{display:block;margin-bottom:.2rem}

.rail h2{
  font-family:"DM Serif Display",Georgia,serif;
  font-size:1.28rem;
  margin:0 0 12px;
}
.rail ol,.rail ul{margin:0;padding-left:1.1em;color:var(--ink);font-size:.92rem}
.rail li{margin-bottom:.55rem}
.rail p{margin:0 0 .7rem;font-size:.92rem;color:var(--ink)}
.rail a{color:var(--amber)}
.rail .price-line{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid rgba(127,160,180,.22);
  color:var(--amber);
  font-weight:500;
  font-size:.92rem;
}

.cta-panel{
  background:var(--panel);
  padding:clamp(28px,4vw,48px);
  border-radius:2px;
  grid-column:1 / -1;
}

.hours-table{width:100%;border-collapse:collapse;font-size:.95rem}
.hours-table td{padding:8px 0;border-bottom:1px solid rgba(127,160,180,.22)}
.hours-table td:last-child{color:var(--amber);text-align:right}

.include-list{list-style:none;padding:0;margin:1rem 0}
.include-list li{
  padding:8px 0 8px 18px;
  position:relative;
  border-bottom:1px solid rgba(127,160,180,.16);
}
.include-list li::before{
  content:"";
  position:absolute;
  left:0;top:16px;
  width:8px;height:2px;
  background:var(--amber);
}
.meta-line{margin:.35rem 0;font-size:.95rem}
.meta-line strong{color:var(--haze);font-weight:500;margin-right:.4rem}

.form-field{margin-bottom:16px}
.form-field label{
  display:block;
  font-weight:500;
  margin-bottom:6px;
  font-size:.92rem;
}
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  background:var(--deep);
  color:var(--ink);
  border:1px solid rgba(127,160,180,.4);
  border-radius:2px;
  padding:12px 12px;
  font-family:"DM Sans",sans-serif;
  font-size:1rem;
}
.form-field textarea{min-height:140px;resize:vertical}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:2px solid var(--amber);
  border-color:var(--amber);
}
.check-row{
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.check-row input{width:auto;margin-top:4px;accent-color:var(--amber)}
.form-note{font-size:.85rem;color:var(--haze);margin-top:12px}

.foot{
  background:var(--panel);
  border-top:3px solid var(--amber);
  margin-top:clamp(48px,8vw,96px);
  padding:clamp(28px,4vw,48px) 0 24px;
}
.foot-grid{
  width:min(1220px,92vw);
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(20px,3vw,44px);
}
.foot-map{grid-column:1 / span 2}
.foot-map iframe{width:100%;height:260px;border:0;border-radius:2px;display:block}
.foot h2{
  font-family:"DM Sans",sans-serif;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--haze);
  margin:0 0 12px;
}
.foot p,.foot li{font-size:.92rem;color:var(--ink)}
.foot a{color:var(--amber)}
.foot-links{list-style:none;margin:0;padding:0}
.foot-links li{margin-bottom:.4rem}
.legal-row{
  width:min(1220px,92vw);
  margin:28px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(127,160,180,.22);
  color:var(--haze);
  font-size:.82rem;
  grid-column:1 / -1;
}
.legal-row a{color:var(--haze)}
.legal-row a:hover{color:#FFC97E}
.legal-bits{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:10px}

.cookie-bar{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  background:var(--panel);
  border-top:2px solid var(--amber);
  padding:16px clamp(16px,4vw,40px);
  display:flex;
  gap:18px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
}
.cookie-bar p{margin:0;max-width:70ch;font-size:.92rem}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.gone{display:none}

.lift-in{opacity:1;transform:none;transition:opacity .5s ease, transform .5s ease}
html.js .lift-in{opacity:0;transform:translateY(14px)}
html.js .lift-in.up{opacity:1;transform:none}
html.no-js .lift-in{opacity:1 !important;transform:none !important}
@media (prefers-reduced-motion: reduce){
  .lift-in, html.js .lift-in{opacity:1 !important;transform:none !important;transition:none !important}
  html{scroll-behavior:auto}
}

.span-all iframe{width:100%;border:0;border-radius:2px;display:block}
.fine-print{color:var(--haze);font-size:.82rem}
.legal-copy h2{margin-top:1.6em}
.toc-rail a{display:block;margin-bottom:.55rem;text-decoration:none;border-bottom:1px solid rgba(127,160,180,.18);padding-bottom:.35rem}
.toc-rail a:hover{color:#FFC97E}

.anchor{scroll-margin-top:96px}

@media (max-width:999px){
  .lane{grid-template-columns:repeat(2,1fr)}
  .main-col,.rail,.fullmenu-list,.fullmenu-meta{grid-column:1 / span 2}
  .rail{position:static}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:repeat(2,1fr)}
  .foot-map{grid-column:1 / span 2}
  .prog-row{grid-template-columns:1fr 1fr; }
}
@media (max-width:619px){
  .lane,.metric-grid,.foot-grid{grid-template-columns:1fr}
  .main-col,.rail,.span-all,.fullmenu-list,.fullmenu-meta,.foot-map,.cta-panel{grid-column:1}
  .photo-pair{grid-template-columns:1fr}
  .prog-row{grid-template-columns:1fr}
  .hero-centre h1{max-width:none}
  .cookie-bar{flex-direction:column;align-items:stretch}
}
