:root{
  --steel-900:#0A121E;
  --steel-800:#101E30;
  --steel-700:#16283C;
  --steel-500:#33506F;
  --steel-300:#8AA3BD;
  --steam:#45A8FF;
  --steam-deep:#1F7FDB;
  --vapor:#F3F6FA;
  --white:#FFFFFF;
  --ink:#0C1622;
  --line:rgba(12,22,34,.12);
  --line-light:rgba(255,255,255,.14);
  --chrome:linear-gradient(105deg,#DDE7F2 0%,#9FB6CC 28%,#F6FAFF 50%,#7E97AF 72%,#C9D8E8 100%);
  --radius:14px;
  --pad:clamp(20px,4vw,48px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Public Sans",system-ui,sans-serif;
  color:var(--ink);
  background:var(--vapor);
  line-height:1.6;
  font-size:16.5px;
}
img{max-width:100%;display:block}
a{color:inherit}
.skip{position:absolute;left:-9999px;top:0;background:var(--steam);color:var(--steel-900);padding:10px 16px;border-radius:0 0 10px 0;font-weight:700;z-index:100}
.skip:focus{left:0}
.display{font-family:"Archivo",sans-serif;font-stretch:125%;font-weight:900;text-transform:uppercase;letter-spacing:.01em;line-height:.95}
.eyebrow{font-family:"Archivo",sans-serif;font-stretch:110%;font-weight:700;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--steam-deep);display:block;margin-bottom:14px}
.dark .eyebrow{color:var(--steam)}
.wrap{max-width:1180px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
section{padding:clamp(56px,8vw,100px) 0}
.section-head{max-width:640px;margin-bottom:clamp(28px,4vw,48px)}
.section-head h2{font-size:clamp(1.8rem,4vw,2.8rem)}
.section-head p{margin-top:14px;color:#41546A}

/* Reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}
.grid .rv:nth-child(2){transition-delay:.06s}
.grid .rv:nth-child(3){transition-delay:.12s}
.grid .rv:nth-child(5){transition-delay:.06s}
.grid .rv:nth-child(6){transition-delay:.12s}

/* Nav */
header{position:sticky;top:0;z-index:50;background:rgba(10,18,30,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-light)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{height:52px;width:auto}
.nav-links{display:flex;gap:26px;list-style:none}
.nav-links a{text-decoration:none;color:#C6D4E2;font-size:.92rem;font-weight:500}
.nav-links a:hover{color:var(--white)}
.nav-links a.active{color:var(--white);border-bottom:2px solid var(--steam);padding-bottom:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:"Archivo",sans-serif;font-weight:700;font-stretch:105%;font-size:.95rem;text-decoration:none;padding:13px 22px;border-radius:10px;border:1px solid transparent;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;cursor:pointer}
.btn:active{transform:translateY(1px)}
.btn-steam{background:var(--steam);color:var(--steel-900)}
.btn-steam:hover{background:#6ABAFF;box-shadow:0 6px 22px rgba(69,168,255,.35)}
.btn-ghost{border-color:var(--line-light);color:var(--white)}
.btn-ghost:hover{border-color:var(--steam);color:var(--steam)}
.btn-dark{background:var(--steel-900);color:var(--white)}
.btn-dark:hover{background:var(--steel-700)}
.nav .btn{padding:10px 18px;font-size:.88rem;white-space:nowrap}

/* Hero (home) */
.hero{background:radial-gradient(1100px 500px at 85% -10%, rgba(69,168,255,.16), transparent 60%),radial-gradient(700px 420px at -10% 110%, rgba(69,168,255,.10), transparent 60%),var(--steel-900);color:var(--white);padding:clamp(60px,8vw,104px) 0 clamp(52px,6vw,84px);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:center}
.hero h1{font-size:clamp(2.9rem,7.5vw,5.6rem);display:grid;gap:.05em}
.hero h1 .chrome{background:var(--chrome);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 2.6s ease .4s 1 both}
@keyframes sheen{from{background-position:120% 0}to{background-position:0% 0}}
.hero .sub{margin-top:26px;max-width:560px;color:#B9C8D8;font-size:1.06rem}
.hero .cta-row{margin-top:34px;display:flex;flex-wrap:wrap;gap:14px}
.chips{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px;list-style:none}
.chips li{font-size:.82rem;font-weight:600;color:#D5E2EF;border:1px solid var(--line-light);border-radius:999px;padding:7px 14px;display:flex;align-items:center;gap:7px}
.chips li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--steam)}
.hero-art{position:relative;display:flex;justify-content:center}
.hero-art img{width:min(100%,430px);filter:drop-shadow(0 26px 60px rgba(69,168,255,.28));animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* Page hero (inner pages) */
.page-hero{background:radial-gradient(900px 380px at 80% -20%, rgba(69,168,255,.14), transparent 60%),var(--steel-900);color:var(--white);padding:clamp(48px,7vw,84px) 0}
.page-hero h1{font-size:clamp(2.2rem,5.5vw,3.8rem)}
.page-hero p{margin-top:14px;color:#B9C8D8;max-width:620px}

/* Ticker */
.ticker{background:var(--steel-800);border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light);overflow:hidden;white-space:nowrap;padding:13px 0}
.ticker-track{display:inline-block;animation:slide 32s linear infinite}
.ticker span{font-family:"Archivo",sans-serif;font-stretch:120%;font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--steel-300);margin:0 26px}
.ticker span::after{content:"/";margin-left:52px;color:var(--steam)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Cards / grids */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .55s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(12,22,34,.10);border-color:var(--steam)}
.card .icon{width:46px;height:46px;border-radius:12px;background:var(--steel-900);color:var(--steam);display:grid;place-items:center;margin-bottom:18px}
.card h3{font-family:"Archivo",sans-serif;font-stretch:110%;font-weight:800;font-size:1.08rem;text-transform:uppercase;letter-spacing:.02em}
.card p{margin-top:10px;color:#41546A;font-size:.95rem}
.card .more{display:inline-block;margin-top:14px;font-weight:700;font-size:.86rem;color:var(--steam-deep);text-decoration:none}
.card .more:hover{text-decoration:underline}

/* Dark band */
.dark{background:var(--steel-900);color:var(--white)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center}
.split h2{font-size:clamp(2rem,4.5vw,3.2rem)}
.split p{margin-top:16px;color:#B9C8D8}
.note-card{border:1px solid var(--line-light);border-left:4px solid var(--steam);border-radius:12px;padding:24px;background:var(--steel-800)}
.note-card strong{font-family:"Archivo",sans-serif;font-stretch:110%;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem;color:var(--steam);display:block;margin-bottom:8px}
.note-card p{color:#C6D4E2;font-size:.95rem;margin-top:0}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;counter-reset:step}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;position:relative;counter-increment:step}
.step::before{content:"0" counter(step);font-family:"Archivo",sans-serif;font-stretch:125%;font-weight:900;font-size:2rem;color:transparent;-webkit-text-stroke:1.5px var(--steam);display:block;margin-bottom:12px}
.step h3{font-family:"Archivo",sans-serif;font-stretch:110%;font-weight:800;font-size:1.05rem;text-transform:uppercase}
.step p{margin-top:8px;color:#41546A;font-size:.95rem}

/* Gallery */
.group-title{font-family:"Archivo",sans-serif;font-stretch:112%;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;color:var(--steam);margin:34px 0 16px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.shot{aspect-ratio:4/3;border-radius:var(--radius);background:linear-gradient(145deg,var(--steel-700),var(--steel-900));border:1px dashed var(--steel-500);display:grid;place-items:center;text-align:center;color:var(--steel-300);font-size:.85rem;font-weight:600;padding:16px}
.gallery img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);width:100%}

/* Reviews */
.review{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.review .stars{color:var(--steam-deep);letter-spacing:3px;font-size:.95rem;margin-bottom:12px}
.review p{color:#41546A;font-size:.95rem}
.review .who{margin-top:14px;font-weight:700;font-size:.88rem;color:var(--ink)}
.review-cta{margin-top:28px}

/* FAQ */
.faq{max-width:760px}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}
.faq summary{cursor:pointer;list-style:none;padding:20px 24px;font-family:"Archivo",sans-serif;font-stretch:108%;font-weight:700;font-size:1rem;display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;color:var(--steam-deep);font-weight:400;transition:transform .2s ease;flex-shrink:0}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 24px 20px;color:#41546A;font-size:.95rem}

/* Areas */
.areas-list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin-top:6px}
.areas-list li{border:1px solid var(--line);background:var(--white);border-radius:999px;padding:8px 16px;font-size:.9rem;font-weight:600}
.dark .areas-list li{background:var(--steel-800);border-color:var(--line-light);color:#D5E2EF}

/* Work order form */
.order-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:start}
.order-card{background:var(--vapor);color:var(--ink);border-radius:var(--radius);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.order-head{background:var(--chrome);padding:16px 26px;display:flex;justify-content:space-between;align-items:center;font-family:"Archivo",sans-serif;font-stretch:118%;font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--steel-900)}
.order-body{padding:28px 26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#41546A;margin-bottom:6px;font-family:"Archivo",sans-serif;font-stretch:108%}
.field input,.field select,.field textarea{width:100%;padding:13px 14px;border-radius:9px;border:1px solid var(--line);background:var(--white);font:inherit;font-size:.96rem;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--steam);outline-offset:1px;border-color:var(--steam)}
.field textarea{min-height:110px;resize:vertical}
.order-body .btn{width:100%;margin-top:6px}
.order-fine{margin-top:12px;font-size:.8rem;color:#5C7089;text-align:center}

/* CTA band */
.cta-band{background:radial-gradient(800px 300px at 50% -40%, rgba(69,168,255,.18), transparent 70%),var(--steel-900);color:var(--white);text-align:center}
.cta-band h2{font-size:clamp(2rem,5vw,3.4rem)}
.cta-band p{margin-top:14px;color:#B9C8D8}
.cta-band .cta-row{margin-top:28px;display:flex;justify-content:center;flex-wrap:wrap;gap:14px}

/* Footer */
footer{background:var(--steel-900);color:#B9C8D8;border-top:1px solid var(--line-light)}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding:56px 0 40px;font-size:.93rem}
.foot h4{font-family:"Archivo",sans-serif;font-stretch:112%;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:var(--white);margin-bottom:14px}
.foot img{height:64px;width:auto;margin-bottom:16px}
.foot a{color:#B9C8D8;text-decoration:none}
.foot a:hover{color:var(--steam)}
.foot ul{list-style:none;display:grid;gap:8px}
.legal{border-top:1px solid var(--line-light);padding:20px 0;font-size:.8rem;color:#7A8FA5;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* Mobile call bar */
.callbar{position:fixed;bottom:0;left:0;right:0;z-index:60;display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(10,18,30,.96);border-top:1px solid var(--line-light)}
.callbar .btn{flex:1;padding:13px 10px;font-size:.9rem}

:focus-visible{outline:2px solid var(--steam);outline-offset:2px}

@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr}
  .hero-art{display:none}
}
@media (max-width:860px){
  .nav-links{display:none}
  .split,.order-wrap,.foot{grid-template-columns:1fr}
  .callbar{display:flex}
  body{padding-bottom:74px}
  .logo img{height:44px}
}
@media (prefers-reduced-motion: reduce){
  .ticker-track{animation:none}
  .hero h1 .chrome{animation:none;background-position:0 0}
  .hero-art img{animation:none}
  html{scroll-behavior:auto}
  .card:hover,.btn:active{transform:none}
  .rv{opacity:1;transform:none;transition:none}
}
