/* =========================================================
   LaserClean NZ — shared site stylesheet (v2, "beam & bare metal")
   Colour logic: blue = the beam, amber = heat & sparks,
   steel and rust tones come from the metal itself,
   brand navy is used as a solid field.
   ========================================================= */

/* ---------- 0. Typeface: Archivo (variable weight + width), self-hosted, SIL OFL ---------- */
@font-face{font-family:'Archivo'; font-style:normal; font-display:swap; font-weight:100 900; font-stretch:62% 125%;
  src:url(../fonts/archivo-latin-ext.woff2) format('woff2-variations'), url(../fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Archivo'; font-style:normal; font-display:swap; font-weight:100 900; font-stretch:62% 125%;
  src:url(../fonts/archivo-latin.woff2) format('woff2-variations'), url(../fonts/archivo-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* ---------- 1. Tokens ---------- */
:root{
  --night:#050B18;        /* page base — deep brand navy, near black */
  --night-2:#0A1426;      /* raised sections */
  --night-3:#0F1C33;      /* panels */
  --navy:#1B4DA8;         /* brand navy — solid colour field */
  --navy-deep:#0D2B5C;
  --beam:#37D0FF;         /* the laser line */
  --beam-soft:#A8EEFF;
  --spark:#FFA53D;        /* heat / sparks (brand amber, lit) */
  --amber:#B5790A;        /* brand amber */
  --white:#F2F6FC;
  --steel:#A9B6C8;        /* secondary text */
  --steel-dim:#6E7D95;
  --rule:rgba(169,182,200,0.16);
  --rule-strong:rgba(169,182,200,0.32);

  --r-btn:4px; --r-img:6px; --r-panel:3px;
  --wrap:1200px;
  --font:'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- 2. Base ---------- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%;}
body{margin:0; background:var(--night); color:var(--white); font-family:var(--font); font-size:17px; line-height:1.6; font-stretch:100%; -webkit-font-smoothing:antialiased;}
h1,h2,h3,h4{font-family:var(--font); margin:0 0 .45em; color:var(--white); text-wrap:balance;}
h1{font-size:clamp(2.7rem,6.4vw,5.6rem); line-height:0.96; font-weight:800; font-stretch:125%; letter-spacing:-0.025em;}
h2{font-size:clamp(1.9rem,3.6vw,3rem); line-height:1.04; font-weight:780; font-stretch:118%; letter-spacing:-0.015em;}
h3{font-size:1.28rem; line-height:1.2; font-weight:700; font-stretch:108%;}
p{margin:0 0 1em; max-width:64ch; color:var(--steel);}
a{color:var(--beam-soft);}
img{max-width:100%; height:auto; display:block;}
ul{margin:0; padding:0;}
strong{color:var(--white);}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 32px;}
@media (max-width:560px){ .wrap{padding:0 18px;} body{font-size:16px;} }
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.skip-link{position:absolute; left:12px; top:-60px; z-index:300; background:var(--beam); color:var(--night); padding:10px 16px; border-radius:var(--r-btn); font-weight:600; text-decoration:none;}
.skip-link:focus{top:12px;}
:focus-visible{outline:2px solid var(--beam); outline-offset:3px;}
.img-note{position:absolute; right:8px; top:8px; z-index:2; font-size:0.68rem; line-height:1; font-stretch:85%; color:rgba(242,246,252,0.85); background:rgba(5,11,24,0.7); padding:5px 7px; border-radius:2px; pointer-events:none;}

/* ---------- 3. Buttons & links ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; font-family:var(--font); font-weight:650; font-stretch:105%; font-size:1rem; line-height:1.2; padding:15px 26px; border-radius:var(--r-btn); text-decoration:none; border:1px solid transparent; cursor:pointer; transition:background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;}
.btn svg{width:18px; height:18px; flex:none;}
.btn-beam{background:var(--beam); color:var(--night); box-shadow:0 0 0 1px rgba(168,238,255,0.6) inset, 0 0 28px rgba(55,208,255,0.35);}
.btn-beam:hover{background:var(--beam-soft); box-shadow:0 0 0 1px #fff inset, 0 0 40px rgba(55,208,255,0.55);}
.btn-line{border-color:var(--rule-strong); color:var(--white); background:rgba(5,11,24,0.35);}
.btn-line:hover{border-color:var(--beam); color:var(--beam-soft);}
.btn-spark{background:var(--spark); color:#241200;}
.btn-spark:hover{background:#FFBE70;}
.btn-white{border-color:rgba(255,255,255,0.55); color:#fff; background:transparent;}
.btn-white:hover{background:rgba(255,255,255,0.1); border-color:#fff;}
.text-link{color:var(--beam-soft); font-weight:600; text-decoration:underline; text-decoration-color:rgba(55,208,255,0.45); text-underline-offset:5px; text-decoration-thickness:1.5px;}
.text-link:hover{text-decoration-color:var(--beam);}
@media (max-width:560px){ .btn{padding:14px 20px;} }

/* ---------- 4. Intro-offer strip ---------- */
.offer-strip{background:#1A1003; border-bottom:1px solid rgba(255,165,61,0.35); color:#F3CF9F; font-size:0.88rem; text-align:center; padding:8px 16px; line-height:1.4;}
.offer-strip strong{color:var(--spark); font-weight:700;}
.offer-strip a{color:#FFD9A8; font-weight:600; margin-left:8px; text-underline-offset:3px;}
.offer-strip[hidden]{display:none;}
.offer-strip .short{display:none;}
@media (max-width:640px){ .offer-strip .long{display:none;} .offer-strip .short{display:inline;} }

/* ---------- 5. Header ---------- */
.site-header{position:sticky; top:0; z-index:40; background:rgba(5,11,24,0.88); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-bottom:1px solid var(--rule);}
.nav{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:12px 32px; max-width:var(--wrap); margin:0 auto;}
.nav-logo{display:block; flex:none;}
.nav-logo img{height:38px; width:auto;}
.nav-links{display:flex; align-items:center; gap:32px;}
.nav-links a{color:var(--steel); text-decoration:none; font-weight:550; font-stretch:105%; font-size:0.98rem; padding:6px 0; border-bottom:2px solid transparent;}
.nav-links a:hover{color:var(--white);}
.nav-links a[aria-current="page"]{color:var(--white); border-bottom-color:var(--beam);}
.nav-cta{display:flex; align-items:center; gap:22px;}
.nav-phone{display:inline-flex; align-items:center; gap:8px; font-weight:650; font-stretch:105%; color:var(--white); text-decoration:none; font-size:0.98rem; white-space:nowrap;}
.nav-phone svg{width:16px; height:16px; color:var(--beam);}
.nav-phone:hover{color:var(--beam-soft);}
.nav-cta .btn{padding:11px 18px; font-size:0.95rem;}
.nav-toggle{display:none; background:none; border:1px solid var(--rule-strong); border-radius:var(--r-btn); color:var(--white); padding:8px 10px; cursor:pointer;}
.nav-toggle svg{width:22px; height:22px; display:block;}
@media (max-width:1000px){
  .nav{flex-wrap:wrap; padding:10px 18px;}
  .nav-logo img{height:34px;}
  .nav-links{display:none; width:100%; order:3; flex-direction:column; align-items:stretch; gap:0; padding:6px 0 10px;}
  .nav-links.open{display:flex;}
  .nav-links a{padding:13px 2px; border-bottom:0; border-top:1px solid var(--rule); font-size:1.05rem;}
  .nav-links a[aria-current="page"]{color:var(--beam-soft);}
  .nav-toggle{display:block;}
}
@media (max-width:820px){ .nav-cta .btn{display:none;} }
@media (max-width:560px){ .nav-phone{display:none;} .nav-logo img{height:30px;} }
@media (max-width:380px){ .nav-logo img{height:26px;} }

/* ---------- 6. Hero: the surface ---------- */
.hero{position:relative; min-height:min(88vh, 860px); display:flex; align-items:flex-end; overflow:hidden; background:var(--night); isolation:isolate;
  --pos:4%;}
.surface{position:absolute; inset:0; z-index:0; touch-action:pan-y; cursor:ew-resize; -webkit-user-select:none; user-select:none;}
.surface picture, .surface img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none;}
.surface .clean{clip-path:inset(0 calc(100% - var(--pos)) 0 0);}
/* shade the surface so the words stay readable */
.surface::after{content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(5,11,24,0.94) 0%, rgba(5,11,24,0.82) 30%, rgba(5,11,24,0.35) 58%, rgba(5,11,24,0.05) 80%),
    linear-gradient(0deg, rgba(5,11,24,0.85) 0%, rgba(5,11,24,0) 42%),
    linear-gradient(180deg, rgba(5,11,24,0.55) 0%, rgba(5,11,24,0) 18%);}
/* the beam */
.beam{position:absolute; z-index:3; top:0; bottom:0; left:var(--pos); width:0; pointer-events:none;}
.beam::before{content:""; position:absolute; top:0; bottom:0; left:-80px; width:160px;
  background:linear-gradient(90deg, transparent 0%, rgba(55,208,255,0.07) 22%, rgba(55,208,255,0.22) 38%, rgba(55,208,255,0.7) 46%, rgba(200,245,255,0.95) 48.9%, #fff 49.4%, #fff 50.6%, rgba(200,245,255,0.95) 51.1%, rgba(55,208,255,0.7) 54%, rgba(55,208,255,0.22) 62%, rgba(55,208,255,0.07) 78%, transparent 100%);}
.beam::after{content:""; position:absolute; top:0; bottom:0; left:1px; width:70px; background:linear-gradient(90deg, rgba(255,165,61,0.38), rgba(255,120,30,0.10) 40%, transparent);
  mix-blend-mode:screen;}
.beam-handle{position:absolute; z-index:5; top:38%; left:var(--pos); transform:translate(-50%,-50%); width:58px; height:58px; border-radius:50%; border:1.5px solid rgba(255,255,255,0.9); background:rgba(5,11,24,0.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); color:#fff; display:grid; place-items:center; cursor:ew-resize; box-shadow:0 0 24px rgba(55,208,255,0.6); touch-action:none; padding:0;}
.beam-handle svg{width:26px; height:26px;}
.beam-handle:focus-visible{outline:2px solid var(--spark); outline-offset:4px;}
.beam-hint{position:absolute; z-index:5; top:calc(38% + 40px); left:var(--pos); transform:translateX(-50%); font-size:0.78rem; font-stretch:85%; font-weight:600; color:#fff; white-space:nowrap; padding:4px 9px; border-radius:2px; background:rgba(5,11,24,0.7); transition:opacity .4s ease; pointer-events:none;}
.hero.touched .beam-hint{opacity:0;}
.beam-handle, .beam-hint{transition:opacity .5s ease;}
.hero.sweeping .beam-handle, .hero.sweeping .beam-hint{opacity:0; pointer-events:none;}
.sparks{position:absolute; inset:0; z-index:4; width:100%; height:100%; pointer-events:none;}

.hero-inner{position:relative; z-index:6; width:100%; padding-top:120px; padding-bottom:56px; pointer-events:none;}
.hero-inner a, .hero-inner button, .hero-copy, .spec-plate{pointer-events:auto;}
.hero-layout{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; align-items:end;}
.hero-copy{max-width:760px;}
.hero h1{font-size:clamp(2.1rem,4.1vw,3.45rem); line-height:1.02; font-stretch:116%; letter-spacing:-0.02em;}
.motto{margin:-0.05em 0 22px; font-size:clamp(1.25rem,2.2vw,1.75rem); line-height:1.1; font-weight:750; font-stretch:122%; letter-spacing:0.005em; color:var(--spark); text-shadow:0 0 22px rgba(255,165,61,0.35); max-width:none;}
.hero-copy .lede{font-size:1.2rem; line-height:1.55; color:#CDD7E6; max-width:46ch; margin-bottom:28px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

/* equipment rating plate */
.spec-plate{position:relative; background:rgba(5,11,24,0.78); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid var(--rule-strong); border-radius:var(--r-panel); padding:18px 20px 14px;}
.rivet{position:absolute; width:5px; height:5px; border-radius:50%; background:var(--steel-dim);}
.rivet:nth-of-type(1){top:7px; left:7px;} .rivet:nth-of-type(2){top:7px; right:7px;}
.rivet:nth-of-type(3){bottom:7px; left:7px;} .rivet:nth-of-type(4){bottom:7px; right:7px;}
.spec-plate h2{font-size:0.98rem; font-stretch:112%; font-weight:750; letter-spacing:0; margin:0 0 8px 6px; color:var(--white);}
.spec-plate dl{margin:0;}
.spec-plate dl div{display:flex; justify-content:space-between; gap:16px; padding:7px 0; border-top:1px solid var(--rule);}
.spec-plate dt{font-stretch:80%; font-size:0.86rem; color:var(--steel);}
.spec-plate dd{margin:0; font-stretch:90%; font-weight:650; font-size:0.9rem; color:var(--white); text-align:right; font-variant-numeric:tabular-nums;}
.spec-plate dd.none{color:var(--beam-soft);}

@media (max-width:980px){
  .hero-layout{grid-template-columns:1fr; gap:28px;}
  .spec-plate{max-width:420px;}
  .hero-inner{padding-top:270px;}
  .beam-handle{top:140px;}
  .beam-hint{top:176px;}
  .beam::before, .beam::after, .sparks{-webkit-mask-image:linear-gradient(180deg,#000 0,#000 30%,transparent 48%); mask-image:linear-gradient(180deg,#000 0,#000 30%,transparent 48%);}
}
@media (max-width:700px){
  .hero{min-height:620px;}
  .hero-inner{padding-top:250px; padding-bottom:36px;}
  .surface::after{background:
    linear-gradient(0deg, rgba(5,11,24,0.97) 0%, rgba(5,11,24,0.9) 44%, rgba(5,11,24,0.2) 72%, rgba(5,11,24,0.35) 100%);}
  .beam-handle{top:120px; width:52px; height:52px;}
  .beam::before, .beam::after, .sparks{-webkit-mask-image:linear-gradient(180deg,#000 0,#000 26%,transparent 40%); mask-image:linear-gradient(180deg,#000 0,#000 26%,transparent 40%);}
  .beam-hint{top:154px;}
  .hero-copy .lede{font-size:1.06rem;}
  .hero-actions .btn{flex:1 1 100%;}
  .spec-plate{display:none;}
}

/* ---------- 7. Why it's different (readout row) ---------- */
.values{padding:56px 0 64px; border-bottom:1px solid var(--rule);}
.value-row{display:grid; grid-template-columns:repeat(4,1fr);}
.value{padding:4px 28px; border-left:1px solid var(--rule);}
.value:first-child{border-left:0; padding-left:0;}
.value svg{width:30px; height:30px; color:var(--beam); margin-bottom:14px;}
.value h3{font-size:1.1rem; margin-bottom:6px;}
.value p{font-size:0.94rem; margin:0;}
@media (max-width:960px){
  .value-row{grid-template-columns:repeat(2,1fr); row-gap:34px;}
  .value:nth-child(3){border-left:0; padding-left:0;}
}
@media (max-width:540px){
  .value-row{grid-template-columns:1fr; row-gap:0;}
  .value, .value:nth-child(3){border-left:0; padding:22px 0; border-top:1px solid var(--rule);}
  .value:first-child{border-top:0; padding-top:0;}
}

/* ---------- 8. Sections ---------- */
.section{padding:96px 0;}
.section-raised{background:var(--night-2);}
.section-head{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,0.85fr); gap:24px 56px; align-items:end; margin-bottom:48px;}
.section-head h2{margin:0;}
.section-head p{margin:0; font-size:1.06rem;}
@media (max-width:860px){ .section{padding:72px 0;} .section-head{grid-template-columns:1fr; margin-bottom:36px;} }

/* ---------- 9. Sector tiles ---------- */
.sector-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:56px 40px;}
.sector{display:flex; flex-direction:column;}
.sector-media{position:relative; display:block; aspect-ratio:16/10; border-radius:var(--r-img); overflow:hidden; background:var(--night-3); outline:1px solid var(--rule); outline-offset:-1px;}
.sector-media img{width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.sector-media:hover img{transform:scale(1.035);}
.sector-media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(5,11,24,0.82)); pointer-events:none;}
.sector-name{position:absolute; z-index:2; left:22px; bottom:16px; right:22px; margin:0; font-size:clamp(1.4rem,2.4vw,1.9rem); line-height:1.05; font-weight:800; font-stretch:122%; letter-spacing:-0.015em; color:#fff;}
.sector-name::before{content:""; display:block; width:36px; height:3px; margin-bottom:12px; background:var(--beam); box-shadow:0 0 12px rgba(55,208,255,0.9);}
.sector[data-accent="spark"] .sector-name::before{background:var(--spark); box-shadow:0 0 12px rgba(255,165,61,0.9);}
.sector-body{padding:18px 2px 0;}
.sector-hook{font-size:1.06rem; line-height:1.5; color:#CDD7E6; margin:0 0 12px; max-width:44ch;}
.after-timeline{margin:40px 0 0;}
.sector-lead{font-size:1.2rem; line-height:1.25; font-weight:700; font-stretch:108%; color:var(--white); margin:0 0 8px;}
.sector-body > p{font-size:0.98rem; margin-bottom:16px;}
.sector-list{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 24px; margin-bottom:18px; font-size:0.93rem; color:var(--white);}
.sector-list li{padding:8px 0; border-top:1px solid var(--rule);}
.sector-note{font-size:0.86rem; color:var(--steel-dim); margin:-4px 0 16px;}
@media (max-width:860px){ .sector-grid{grid-template-columns:1fr; gap:48px;} }
@media (max-width:420px){ .sector-list{grid-template-columns:1fr;} }

.also{margin:72px 0 0; padding-top:36px; border-top:1px solid var(--rule);}
.also-title{font-size:clamp(1.4rem,2.2vw,1.8rem); font-weight:780; font-stretch:118%; letter-spacing:-0.01em; margin:0 0 24px;}
.also-grid{list-style:none; display:grid; grid-template-columns:repeat(5,1fr);}
.also-grid li{border-left:1px solid var(--rule);}
.also-grid li:first-child{border-left:0;}
.also-grid a{display:flex; flex-direction:column; gap:6px; height:100%; padding:6px 22px 8px; color:inherit; text-decoration:none;}
.also-grid li:first-child a{padding-left:0;}
.also-grid svg{width:34px; height:34px; color:var(--beam); margin-bottom:10px; transition:filter .2s ease;}
.also-grid strong{font-size:1rem; line-height:1.25; font-weight:700; font-stretch:106%; color:var(--white); transition:color .15s ease;}
.also-grid span{font-size:0.9rem; line-height:1.45; color:var(--steel);}
.also-grid a:hover strong{color:var(--beam-soft);}
.also-grid a:hover svg{filter:drop-shadow(0 0 8px rgba(55,208,255,0.8));}
.nowrap{white-space:nowrap;}
.also-more{margin:32px 0 0; font-size:1.02rem; color:var(--steel);}
@media (max-width:1000px){
  .also-grid{grid-template-columns:repeat(3,1fr); row-gap:28px;}
  .also-grid li:nth-child(4){border-left:0;} .also-grid li:nth-child(4) a{padding-left:0;}
}
@media (max-width:640px){
  .also-grid{grid-template-columns:1fr 1fr; row-gap:0;}
  .also-grid li, .also-grid li:nth-child(4){border-left:0; border-top:1px solid var(--rule);}
  .also-grid li:nth-child(-n+2){border-top:0;}
  .also-grid a, .also-grid li:first-child a, .also-grid li:nth-child(4) a{padding:18px 14px 18px 0;}
}
@media (max-width:380px){ .also-grid{grid-template-columns:1fr;} .also-grid li:nth-child(2){border-top:1px solid var(--rule);} }

/* ---------- 10. How it works: beam timeline ---------- */
.timeline{list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:32px; position:relative; padding:50px 0 0; margin:0; counter-reset:step;}
.timeline::before{content:""; position:absolute; left:0; right:0; top:15px; height:2px; background:linear-gradient(90deg, var(--beam), rgba(55,208,255,0.55) 70%, rgba(55,208,255,0.08)); box-shadow:0 0 12px rgba(55,208,255,0.6);}
.timeline li{position:relative; counter-increment:step;}
.timeline li::before{content:""; position:absolute; top:-50px; left:0; width:32px; height:32px; border-radius:50%; background:var(--night-2); border:2px solid var(--beam); box-shadow:0 0 14px rgba(55,208,255,0.7); box-sizing:border-box;}
.timeline li::after{content:counter(step); position:absolute; top:-50px; left:0; width:32px; height:32px; display:grid; place-items:center; font-size:0.88rem; font-weight:800; color:var(--beam-soft);}
.timeline h3{font-size:1.12rem; margin-bottom:6px;}
.timeline p{font-size:0.95rem; margin:0;}
@media (max-width:900px){
  .timeline{grid-template-columns:1fr; gap:34px; padding:0 0 0 52px;}
  .timeline::before{left:15px; right:auto; top:0; bottom:0; width:2px; height:auto; background:linear-gradient(180deg, var(--beam), rgba(55,208,255,0.1));}
  .timeline li::before, .timeline li::after{top:-4px; left:-52px;}
}

/* ---------- 11. Local statement ---------- */
.statement{padding:96px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); background:var(--night);}
.statement p{margin:0; max-width:32ch; font-size:clamp(1.6rem,3.2vw,2.6rem); line-height:1.18; font-weight:600; font-stretch:112%; letter-spacing:-0.012em; color:var(--white);}
.statement p span{color:var(--steel-dim);}
@media (max-width:860px){ .statement{padding:72px 0;} }

/* ---------- 12. Facebook ---------- */
.fb-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
.fb-grid .btn{margin-top:8px;}
.fb-frame{position:relative; width:100%; max-width:500px; height:600px; justify-self:end; border-radius:var(--r-img); overflow:hidden; background:var(--night-3); border:1px solid var(--rule);}
.fb-frame iframe{position:absolute; inset:0; z-index:1; width:100%; height:100%; border:0; background:transparent;}
.fb-frame.fb-failed iframe{display:none;}
.fb-fallback{position:absolute; inset:0; z-index:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:14px; padding:32px;}
.fb-fallback svg{width:44px; height:44px; color:var(--beam);}
.fb-fallback h3{margin:0;}
.fb-fallback p{margin:0; font-size:0.94rem;}
@media (max-width:860px){ .fb-grid{grid-template-columns:1fr; gap:32px;} .fb-frame{justify-self:start; height:540px;} }

/* ---------- 13. Call to action (brand navy field) ---------- */
.cta{position:relative; background:var(--navy); padding:88px 0; overflow:hidden;}
.cta::before{content:""; position:absolute; left:0; right:0; top:0; height:2px; background:linear-gradient(90deg, transparent, var(--beam-soft) 30%, #fff 50%, var(--beam-soft) 70%, transparent); box-shadow:0 0 18px rgba(168,238,255,0.9);}
.cta::after{content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 4px);}
.cta .wrap{position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.2fr) auto; gap:28px 48px; align-items:end;}
.cta h2{margin:0 0 10px; color:#fff;}
.cta p{margin:0; color:#D6E2F7; font-size:1.08rem;}
.cta-actions{display:flex; gap:14px; flex-wrap:wrap;}
@media (max-width:860px){ .cta{padding:64px 0;} .cta .wrap{grid-template-columns:1fr;} }
@media (max-width:560px){ .cta-actions .btn{flex:1 1 100%;} }

/* ---------- 14. Footer ---------- */
.site-footer{background:#02060E; color:var(--steel); padding:60px 0 28px; font-size:0.92rem;}
.foot-grid{display:grid; grid-template-columns:1.5fr 1fr 1.2fr; gap:36px; margin-bottom:40px;}
.site-footer .foot-logo{height:96px; width:auto; margin-bottom:14px;}
.foot-motto{margin:0 0 14px; color:var(--spark); font-weight:750; font-stretch:120%; font-size:1.12rem;}
.site-footer h4{color:var(--white); font-size:0.98rem; font-weight:700; font-stretch:110%; margin-bottom:14px;}
.site-footer a{color:var(--steel); text-decoration:none; display:flex; align-items:center; gap:9px; margin-bottom:10px;}
.site-footer a svg{width:16px; height:16px; color:var(--beam); flex:none;}
.site-footer a:hover{color:var(--white);}
.foot-blurb{font-size:0.92rem; max-width:34ch;}
.foot-bottom{border-top:1px solid var(--rule); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; font-size:0.82rem; color:var(--steel-dim);}
.foot-bottom .legal{display:flex; flex-wrap:wrap; gap:4px 18px;}
.site-footer .foot-bottom a.foot-terms{display:inline; margin:0; color:var(--steel-dim);}
.site-footer .foot-bottom a.foot-terms:hover{color:var(--white);}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr 1fr;} .foot-grid > :first-child{grid-column:1 / -1;} }
@media (max-width:420px){ .foot-grid{grid-template-columns:1fr;} }

/* ---------- 15. Phone call bar ---------- */
.callbar{display:none;}
@media (max-width:760px){
  .callbar{display:grid; grid-template-columns:1fr 1fr; gap:10px; position:fixed; z-index:60; left:0; right:0; bottom:0; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(5,11,24,0.95); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-top:1px solid var(--rule-strong); transform:translateY(110%); visibility:hidden; transition:transform .3s ease, visibility 0s linear .3s;}
  .show-callbar .callbar{transform:none; visibility:visible; transition:transform .3s ease, visibility 0s;}
  .callbar .btn{padding:13px 10px;}
  body{padding-bottom:78px;}
}

/* ---------- 16. Intro-offer popup ---------- */
.intro-overlay{position:fixed; inset:0; background:rgba(2,6,14,0.84); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); z-index:200; display:flex; align-items:center; justify-content:center; padding:20px;}
.intro-overlay[hidden]{display:none;}
.intro-modal{position:relative; max-width:540px; width:100%; max-height:calc(100vh - 40px); overflow:auto; background:var(--night-2); border:1px solid rgba(255,165,61,0.45); border-top:3px solid var(--spark); border-radius:var(--r-panel); padding:34px 32px 30px; box-shadow:0 0 70px rgba(255,165,61,0.18), 0 30px 70px rgba(0,0,0,0.6);}
.intro-close{position:absolute; top:10px; right:12px; background:none; border:none; color:var(--steel); font-size:1.4rem; cursor:pointer; line-height:1; padding:8px;}
.intro-close:hover{color:var(--white);}
.intro-tag{display:inline-block; color:var(--spark); font-weight:700; font-stretch:110%; font-size:0.95rem; margin-bottom:10px;}
.intro-modal h2{font-size:1.55rem; margin-bottom:14px; line-height:1.15;}
.intro-rate{font-weight:800; font-stretch:120%; color:var(--spark); font-size:2.6rem; line-height:1;}
.intro-rate span{font-size:1.05rem; color:var(--steel); font-weight:500; font-stretch:100%;}
.intro-rate s{color:var(--steel-dim); font-size:1rem; font-weight:500; font-stretch:100%; margin-left:6px;}
.intro-modal table{width:100%; border-collapse:collapse; margin:20px 0 18px; font-size:0.94rem;}
.intro-modal td{padding:8px 0; border-top:1px solid var(--rule); color:var(--steel);}
.intro-modal td:last-child{text-align:right; color:var(--white); font-variant-numeric:tabular-nums;}
.intro-modal td s{color:var(--steel-dim); margin-left:4px;}
.intro-fine{font-size:0.84rem;}
.intro-modal .btn{margin-top:6px; width:100%;}
@media (max-width:480px){ .intro-modal{padding:30px 20px 24px;} .intro-rate{font-size:2.1rem;} }

/* =========================================================
   Inner pages
   ========================================================= */

/* ---------- 18. Page header (static slice of the surface) ---------- */
.page-hero{position:relative; overflow:hidden; isolation:isolate; padding:132px 0 56px; background:var(--night); --pos:84%;}
.ph-surface{position:absolute; inset:0; z-index:0; pointer-events:none;}
.ph-surface picture, .ph-surface img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ph-surface .clean{clip-path:inset(0 calc(100% - var(--pos)) 0 0);}
.ph-surface::after{content:""; position:absolute; inset:0; z-index:2;
  background:linear-gradient(90deg, rgba(5,11,24,0.95) 0%, rgba(5,11,24,0.86) 40%, rgba(5,11,24,0.45) 72%, rgba(5,11,24,0.2) 100%), linear-gradient(0deg, rgba(5,11,24,0.9) 0%, rgba(5,11,24,0) 50%);}
.ph-surface .beam{z-index:3;}
.page-hero-inner{position:relative; z-index:4;}
.page-hero h1{font-size:clamp(2.2rem,4.6vw,3.9rem); line-height:1.02; max-width:16ch; margin-bottom:.35em;}
.page-hero .motto{margin:0 0 18px;}
.page-hero .lede{font-size:1.18rem; color:#CDD7E6; max-width:48ch; margin-bottom:0;}
.jump{display:flex; flex-wrap:wrap; gap:10px; margin-top:32px;}
.jump a{display:inline-flex; align-items:center; padding:10px 16px; border:1px solid var(--rule-strong); border-radius:var(--r-btn); background:rgba(5,11,24,0.55); color:var(--white); text-decoration:none; font-weight:600; font-stretch:105%; font-size:0.94rem; transition:border-color .15s ease, color .15s ease;}
.jump a:hover{border-color:var(--beam); color:var(--beam-soft);}
@media (max-width:700px){
  .page-hero{padding:96px 0 40px; --pos:96%;}
  .ph-surface::after{background:linear-gradient(0deg, rgba(5,11,24,0.97) 0%, rgba(5,11,24,0.88) 55%, rgba(5,11,24,0.55) 100%);}
  .jump a{font-size:0.88rem; padding:9px 12px;}
}

/* ---------- 19. Services: what we remove ---------- */
.worktypes-wrap{padding:80px 0 72px; border-bottom:1px solid var(--rule);}
.worktypes{list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0 40px;}
.worktypes li{padding:22px 0 24px; border-top:1px solid var(--rule); position:relative;}
.worktypes li::before{content:""; position:absolute; top:-1px; left:0; width:32px; height:2px; background:var(--beam); box-shadow:0 0 10px rgba(55,208,255,0.8);}
.worktypes h3{font-size:1.1rem; margin-bottom:6px;}
.worktypes p{font-size:0.95rem; margin:0;}
@media (max-width:900px){ .worktypes{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .worktypes{grid-template-columns:1fr;} }

/* ---------- 20. Services: sector detail rows ---------- */
.detail-band{padding:88px 0; border-bottom:1px solid var(--rule);}
.detail-band:nth-of-type(even){background:var(--night-2);}
.detail{display:grid; grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr); gap:56px; align-items:start;}
.detail-flip .detail-media{order:2;}
.detail-media{position:sticky; top:104px; margin:0; border-radius:var(--r-img); overflow:hidden; aspect-ratio:4/3; outline:1px solid var(--rule); outline-offset:-1px; background:var(--night-3);}
.detail-media img{width:100%; height:100%; object-fit:cover;}
.detail-name{font-size:clamp(1.9rem,3.4vw,2.8rem); margin-bottom:12px;}
.detail-name::before{content:""; display:block; width:40px; height:3px; margin-bottom:18px; background:var(--beam); box-shadow:0 0 12px rgba(55,208,255,0.9);}
.detail[data-accent="spark"] .detail-name::before{background:var(--spark); box-shadow:0 0 12px rgba(255,165,61,0.9);}
.detail-lead{font-size:1.3rem; line-height:1.3; font-weight:650; font-stretch:106%; color:var(--white); margin-bottom:14px;}
.detail-list{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; margin:22px 0 26px; font-size:0.97rem; color:var(--white);}
.detail-list li{padding:10px 0; border-top:1px solid var(--rule);}
.note{border:1px solid var(--rule-strong); border-left:3px solid var(--beam); border-radius:var(--r-panel); padding:16px 18px; margin:0 0 28px; background:rgba(5,11,24,0.35);}
.detail[data-accent="spark"] .note{border-left-color:var(--spark);}
.note + .note{margin-top:-14px;}
.note h3{font-size:1rem; margin-bottom:4px;}
.note p{font-size:0.94rem; margin:0;}
@media (max-width:900px){
  .detail-band{padding:64px 0;}
  .detail{grid-template-columns:1fr; gap:28px;}
  .detail-flip .detail-media{order:0;}
  .detail-media{position:relative; top:auto;}
}
@media (max-width:460px){ .detail-list{grid-template-columns:1fr;} }

/* ---------- 21. Services: other work + limits ---------- */
.more-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0 48px;}
.more{padding:24px 0 28px; border-top:1px solid var(--rule);}
.more h3{margin-bottom:8px;}
.more p{margin:0; font-size:0.98rem;}
@media (max-width:760px){ .more-grid{grid-template-columns:1fr;} }
.limits-layout{display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:32px 64px; align-items:start;}
.limits{list-style:none;}
.limits li{position:relative; padding:18px 0 18px 34px; border-top:1px solid var(--rule);}
.limits li::before{content:""; position:absolute; left:2px; top:24px; width:14px; height:14px; border:2px solid var(--spark); border-radius:50%;}
.limits li::after{content:""; position:absolute; left:2px; top:31px; width:18px; height:2px; background:var(--spark); transform:rotate(-45deg); transform-origin:center; left:0;}
.limits h3{font-size:1.05rem; margin-bottom:4px;}
.limits p{margin:0; font-size:0.95rem;}
@media (max-width:860px){ .limits-layout{grid-template-columns:1fr;} }

/* ---------- 22. Why laser ---------- */
.how-wrap{padding:88px 0;}
.how{display:grid; grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr); gap:56px; align-items:center;}
.how-copy p{font-size:1.04rem;}
.how-figure{margin:0; border-radius:var(--r-img); overflow:hidden; outline:1px solid var(--rule); outline-offset:-1px; background:var(--night-3);}
@media (max-width:900px){ .how{grid-template-columns:1fr; gap:32px;} .how-wrap{padding:64px 0;} }

.compare-wrap{overflow-x:auto;}
.compare{width:100%; border-collapse:collapse; font-size:0.95rem; min-width:760px;}
.compare th, .compare td{padding:16px 18px; text-align:left; vertical-align:top; border-top:1px solid var(--rule);}
.compare thead th{border-top:0; font-size:1.02rem; font-weight:750; font-stretch:110%; color:var(--white); padding-bottom:14px;}
.compare tbody th{font-weight:650; color:var(--white); width:16%; font-stretch:104%;}
.compare td{color:var(--steel);}
.compare .is-laser{background:rgba(55,208,255,0.07); color:var(--white); border-left:1px solid rgba(55,208,255,0.35); border-right:1px solid rgba(55,208,255,0.35);}
.compare thead .is-laser{color:var(--beam-soft); border-top:2px solid var(--beam); box-shadow:0 -6px 18px -8px rgba(55,208,255,0.8);}
.compare tbody tr:last-child .is-laser{border-bottom:1px solid rgba(55,208,255,0.35);}
.compare tr.best td, .compare tr.best th{font-weight:600;}
@media (max-width:760px){
  .compare{min-width:0;}
  .compare thead{display:none;}
  .compare, .compare tbody, .compare tr, .compare th, .compare td{display:block; width:100%;}
  .compare tr{padding:18px 0 8px; border-top:1px solid var(--rule-strong);}
  .compare tbody th{border:0; padding:0 0 10px; font-size:1.08rem; width:auto;}
  .compare td{border:0; padding:6px 0 6px 12px; border-left:2px solid var(--rule);}
  .compare td::before{content:attr(data-label); display:block; font-size:0.8rem; font-weight:650; font-stretch:90%; color:var(--steel-dim);}
  .compare .is-laser{border-left:2px solid var(--beam); border-right:0; background:rgba(55,208,255,0.07);}
  .compare tbody tr:last-child .is-laser{border-bottom:0;}
  .compare td.is-laser::before{color:var(--beam-soft);}
}

.materials{list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0 40px;}
.materials li{padding:22px 0 26px; border-top:1px solid var(--rule); position:relative;}
.materials li::before{content:""; position:absolute; top:-1px; left:0; width:32px; height:2px; background:var(--spark); box-shadow:0 0 10px rgba(255,165,61,0.8);}
.materials h3{font-size:1.1rem; margin-bottom:6px;}
.materials p{font-size:0.96rem; margin:0;}
@media (max-width:900px){ .materials{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .materials{grid-template-columns:1fr;} }

/* ---------- 23. Pricing ---------- */
.offer-band{background:linear-gradient(90deg, #1E1205, #2A1A06 60%, #1E1205); border-bottom:1px solid rgba(255,165,61,0.35); padding:40px 0;}
.offer-band-inner{display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:16px 48px; align-items:center;}
.offer-tag{margin:0 0 6px; color:var(--spark); font-weight:700; font-stretch:110%;}
.offer-band h2{margin:0; font-size:clamp(1.5rem,2.6vw,2.1rem);}
.offer-band p{margin:0; color:#E9D6BB;}
@media (max-width:860px){ .offer-band-inner{grid-template-columns:1fr;} }

.zones{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.zone{position:relative; background:var(--night-2); border:1px solid var(--rule-strong); border-radius:var(--r-panel); padding:24px 24px 18px;}
.zone h3{font-size:1.3rem; font-stretch:115%; margin:0 0 2px 4px;}
.zone-drive{margin:0 0 16px 4px; font-size:0.92rem; color:var(--steel); font-stretch:90%;}
.zone dl{margin:0;}
.zone dl div{display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:12px 0; border-top:1px solid var(--rule);}
.zone dt{font-size:0.9rem; color:var(--steel); font-stretch:90%;}
.zone dd{margin:0; text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:2px;}
.std{font-size:1.45rem; font-weight:800; font-stretch:115%; color:var(--white); line-height:1.1; font-variant-numeric:tabular-nums;}
.intro-price{font-size:0.86rem; font-weight:650; color:var(--spark); font-variant-numeric:tabular-nums;}
.rate-notes{list-style:none; margin:28px 0 0; display:flex; flex-wrap:wrap; gap:8px 32px; font-size:0.94rem; color:var(--steel);}
.rate-notes li{position:relative; padding-left:16px; max-width:62ch;}
.rate-notes li::before{content:""; position:absolute; left:0; top:0.62em; width:6px; height:6px; border-radius:50%; background:var(--beam);}
@media (max-width:900px){ .zones{grid-template-columns:1fr; max-width:520px;} }

.affects{list-style:none; display:grid; grid-template-columns:repeat(4,1fr);}
.affects li{padding:4px 28px; border-left:1px solid var(--rule);}
.affects li:first-child{border-left:0; padding-left:0;}
.affects h3{font-size:1.08rem; margin-bottom:6px;}
.affects p{font-size:0.95rem; margin:0;}
@media (max-width:960px){ .affects{grid-template-columns:repeat(2,1fr); row-gap:30px;} .affects li:nth-child(3){border-left:0; padding-left:0;} }
@media (max-width:540px){ .affects{grid-template-columns:1fr; row-gap:0;} .affects li, .affects li:nth-child(3){border-left:0; padding:20px 0; border-top:1px solid var(--rule);} .affects li:first-child{border-top:0; padding-top:0;} }

.dropoff{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 56px; align-items:center;}
.dropoff h2{margin-bottom:12px;}
.dropoff p{margin:0;}
.dropoff-rates{margin:0; border:1px solid var(--rule-strong); border-left:3px solid var(--beam); border-radius:var(--r-panel); padding:6px 22px; background:var(--night-2);}
.dropoff-rates div{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:14px 0; border-top:1px solid var(--rule);}
.dropoff-rates div:first-child{border-top:0;}
.dropoff-rates dt{color:var(--steel); font-size:0.95rem;}
.dropoff-rates dd{margin:0; text-align:right; font-weight:750; font-stretch:110%; font-size:1.12rem; color:var(--white); display:flex; flex-direction:column; align-items:flex-end; gap:2px;}
@media (max-width:860px){ .dropoff{grid-template-columns:1fr;} }

.estimates{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr); gap:28px 64px; align-items:start;}
.estimates-lead{font-size:1.08rem; line-height:1.65; color:#CDD7E6;}
.estimate-points{list-style:none; margin:6px 0 0;}
.estimate-points li{position:relative; padding:12px 0 12px 28px; border-top:1px solid var(--rule); font-size:0.97rem; color:var(--white);}
.estimate-points li::before{content:""; position:absolute; left:2px; top:19px; width:12px; height:7px; border-left:2px solid var(--beam); border-bottom:2px solid var(--beam); transform:rotate(-45deg);}
@media (max-width:860px){ .estimates{grid-template-columns:1fr;} }

.offer-ended [data-offer]{display:none !important;}

/* ---------- 24. Contact ---------- */
.contact-grid{display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:56px; align-items:start;}
.contact-direct h2, .form-panel h2{font-size:clamp(1.4rem,2.2vw,1.8rem); margin-bottom:20px;}
.contact-list{list-style:none;}
.contact-list li{display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-top:1px solid var(--rule);}
.contact-list li:first-child{border-top:0; padding-top:4px;}
.contact-list svg{width:22px; height:22px; color:var(--beam); flex:none; margin-top:3px;}
.cl-label{display:block; font-size:0.86rem; color:var(--steel); font-stretch:92%;}
.cl-value{display:block; color:var(--white); font-weight:650; font-size:1.06rem; text-decoration:none; overflow-wrap:anywhere;}
a.cl-value:hover{color:var(--beam-soft);}
span.cl-value{font-weight:500; font-size:1rem;}
.contact-aside{margin-top:20px; font-size:0.95rem;}
.form-panel{position:relative; background:var(--night-2); border:1px solid var(--rule-strong); border-radius:var(--r-panel); padding:30px 30px 24px;}
.field{margin-bottom:16px;}
.field label{display:block; font-weight:600; font-size:0.9rem; margin-bottom:6px; color:var(--white);}
.field input, .field textarea, .field select{width:100%; padding:12px 13px; border:1px solid var(--rule-strong); border-radius:var(--r-btn); font-family:var(--font); font-size:1rem; background:var(--night); color:var(--white); transition:border-color .15s, box-shadow .15s;}
.field input:focus, .field textarea:focus, .field select:focus{outline:none; border-color:var(--beam); box-shadow:0 0 0 3px rgba(55,208,255,0.18);}
.field input::placeholder, .field textarea::placeholder{color:var(--steel-dim);}
.field textarea{resize:vertical; min-height:120px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.photo-tip{display:flex; gap:12px; align-items:flex-start; border:1px solid rgba(255,165,61,0.35); border-left:3px solid var(--spark); border-radius:var(--r-panel); padding:12px 14px; margin:4px 0 18px; background:rgba(255,165,61,0.05);}
.photo-tip svg{width:22px; height:22px; color:var(--spark); flex:none; margin-top:2px;}
.photo-tip p{margin:0; font-size:0.92rem;}
.photo-tip strong{color:var(--spark);}
.form-panel .btn{width:100%;}
.form-fine{font-size:0.84rem; margin:12px 0 0; color:var(--steel-dim);}
.form-msg{border-radius:var(--r-panel); padding:12px 14px; margin:0 0 18px; font-size:0.94rem;}
.form-msg[hidden]{display:none;}
.form-ok{background:rgba(55,208,255,0.08); border:1px solid rgba(55,208,255,0.45); color:var(--beam-soft);}
.form-err{background:rgba(255,120,90,0.08); border:1px solid rgba(255,140,110,0.5); color:#FFC2B3;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr; gap:40px;} }
@media (max-width:480px){ .field-row{grid-template-columns:1fr; gap:0;} .form-panel{padding:26px 18px 20px;} }

.prep{display:grid; grid-template-columns:repeat(4,1fr); gap:0 32px;}
.prep > div{padding-top:22px; border-top:1px solid var(--rule); position:relative;}
.prep > div::before{content:""; position:absolute; top:-1px; left:0; width:32px; height:2px; background:var(--beam); box-shadow:0 0 10px rgba(55,208,255,0.8);}
.prep h3{font-size:1.06rem; margin-bottom:10px;}
.prep ul{list-style:none;}
.prep li{font-size:0.93rem; color:var(--steel); padding:6px 0 6px 14px; position:relative;}
.prep li::before{content:""; position:absolute; left:0; top:0.95em; width:5px; height:5px; border-radius:50%; background:var(--steel-dim);}
.safety-note{display:flex; gap:14px; align-items:flex-start; margin-top:40px; padding:16px 18px; border:1px solid rgba(255,165,61,0.5); border-left:3px solid var(--spark); border-radius:var(--r-panel); background:rgba(255,165,61,0.07);}
.safety-note svg{width:24px; height:24px; color:var(--spark); flex:none;}
.safety-note p{margin:0; color:#F3DDBE; max-width:none;}
.safety-note strong{color:var(--spark);}
@media (max-width:1000px){ .prep{grid-template-columns:repeat(2,1fr); row-gap:30px;} }
@media (max-width:560px){ .prep{grid-template-columns:1fr;} }

/* ---------- 25. Terms of Trade ---------- */
.terms-layout{display:grid; grid-template-columns:240px minmax(0,1fr); gap:56px; align-items:start;}
.terms-toc{position:sticky; top:100px;}
.terms-toc h2{font-size:1rem; font-stretch:110%; margin-bottom:12px;}
.terms-toc ol{list-style:none; counter-reset:toc; font-size:0.9rem; margin:0; padding:0;}
.terms-toc li{counter-increment:toc; border-top:1px solid var(--rule);}
.terms-toc a{display:flex; gap:10px; padding:7px 0; color:var(--steel); text-decoration:none;}
.terms-toc a::before{content:counter(toc); min-width:18px; color:var(--steel-dim); font-variant-numeric:tabular-nums;}
.terms-toc a:hover{color:var(--white);}
.terms-body{max-width:72ch;}
.terms-sec{padding:0 0 34px; margin-bottom:34px; border-bottom:1px solid var(--rule);}
.terms-sec:last-child{border-bottom:0; margin-bottom:0;}
.terms-sec h2{display:flex; gap:14px; align-items:baseline; font-size:clamp(1.3rem,2vw,1.6rem); margin-bottom:14px;}
.tnum{color:var(--beam); font-variant-numeric:tabular-nums;}
.terms-sec p, .terms-sec li{color:#C3CEDF; font-size:0.98rem;}
.terms-sec ul{list-style:none; margin:0 0 1em;}
.terms-sec li{position:relative; padding:5px 0 5px 18px;}
.terms-sec li::before{content:""; position:absolute; left:0; top:0.95em; width:6px; height:6px; border-radius:50%; background:var(--beam);}
.terms-sec .note{margin:18px 0 0;}
.terms-sec .note h3{color:var(--spark);}
.terms-sec .note{border-left-color:var(--spark);}
@media (max-width:900px){ .terms-layout{grid-template-columns:1fr; gap:32px;} .terms-toc{position:static;} .terms-toc ol{columns:2; column-gap:24px;} .terms-toc li{break-inside:avoid;} }
@media (max-width:480px){ .terms-toc ol{columns:1;} }

/* ---------- 17. Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none !important; animation:none !important;}
  .sparks{display:none;}
}

/* Standard rates shown beside intro prices (plain text, not struck through) */
.intro-rate .std-rate{color:var(--steel-dim); font-size:1rem; font-weight:500; font-stretch:100%; margin-left:6px;}
.intro-modal td .std-rate{color:var(--steel-dim); margin-left:4px; white-space:nowrap;}
/* Enquiry form: other ways to send */
.form-msg p{margin:0 0 8px;} .form-msg p:last-child{margin-bottom:0;}
.form-alt{display:flex; flex-wrap:wrap; gap:8px;}
.form-alt .btn{min-height:44px;}
