:root{
  --charcoal:#4A5056;
  --panel:#F2F0EB;
  --orange:#FF6A00;
  --ink:#161616;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--panel);
  color:var(--ink);
  font-family:"Inter",Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
}
h1,h2,h3,h4,.brand-text,.stamp,.btn,.sec-no,.step-no,th,.kicker,.nav a,.statusbar,.tag,.foot-col h4,.brand-mark{
  font-family:"Roboto Condensed","Inter",Arial,sans-serif;
}
a{color:var(--ink)}
img{max-width:100%}
.wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- status bar ---------- */
.statusbar{
  background:var(--ink);
  color:var(--panel);
  border-bottom:3px dashed var(--orange);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.statusbar-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 26px;
  padding-top:9px;
  padding-bottom:9px;
}
.stat-item{white-space:nowrap}
.stat-item b{color:var(--orange);font-weight:700}
.statusbar-inner .stamp{margin-left:auto}

/* ---------- stamps ---------- */
.stamp{
  display:inline-block;
  border:2px solid var(--orange);
  color:var(--orange);
  padding:3px 11px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  transform:rotate(-3deg);
  background:transparent;
}
.stamp-sm{padding:2px 8px;font-size:11px}
.stamp-lg{font-size:18px;padding:8px 18px;border-width:3px}

/* ---------- header ---------- */
.site-head{
  background:var(--charcoal);
  border-bottom:4px solid var(--ink);
  position:sticky;
  top:0;
  z-index:40;
}
.head-inner{display:flex;align-items:center;gap:16px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-mark{
  display:grid;place-items:center;
  width:42px;height:42px;
  background:var(--orange);
  color:var(--ink);
  font-weight:700;
  font-size:19px;
  letter-spacing:.06em;
}
.brand-text{
  color:var(--panel);
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.1em;
  font-size:19px;
  line-height:1.05;
}
.brand-text em{
  display:block;
  font-style:normal;
  font-weight:400;
  font-size:11px;
  letter-spacing:.3em;
  color:var(--orange);
}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a{
  color:var(--panel);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:13px;
  padding:10px 12px;
  border:2px solid transparent;
}
.nav a:hover{border-color:var(--orange);color:var(--orange)}
.nav a[aria-current="page"]{color:var(--orange);border-bottom-color:var(--orange)}
.nav .nav-cta{
  background:var(--orange);
  color:var(--ink);
  font-weight:700;
  margin-left:10px;
  border-color:var(--orange);
}
.nav .nav-cta:hover{background:var(--panel);color:var(--ink);border-color:var(--panel)}
.nav-toggle{
  display:none;
  margin-left:auto;
  width:46px;height:40px;
  background:transparent;
  border:2px solid var(--panel);
  cursor:pointer;
  padding:9px 8px;
}
.nav-toggle span{display:block;height:3px;background:var(--panel);margin:3px 0}

/* ---------- hero ---------- */
.hero{background:var(--charcoal);padding:54px 0 64px;border-bottom:4px solid var(--ink)}
.hero-box{
  border:3px dashed var(--panel);
  padding:38px 30px;
  background:transparent;
}
.kicker{
  margin:0 0 14px;
  text-transform:uppercase;
  letter-spacing:.26em;
  font-size:12px;
  color:var(--orange);
  font-weight:700;
}
.hero h1{
  margin:0 0 20px;
  color:var(--panel);
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.01em;
  line-height:.95;
  font-size:clamp(2.3rem,7vw,4.6rem);
}
.hero h1 .hl{color:var(--orange);display:inline-block;border-bottom:8px solid var(--orange)}
.scope{color:var(--panel);max-width:60ch;margin:0 0 26px;font-size:1.05rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px}
.btn{
  display:inline-block;
  background:var(--orange);
  color:var(--ink);
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:700;
  font-size:14px;
  padding:16px 28px;
  border:3px solid var(--orange);
  cursor:pointer;
}
.btn:hover{background:var(--ink);color:var(--orange)}
.btn-ghost{background:transparent;color:var(--panel);border-color:var(--panel)}
.btn-ghost:hover{background:var(--panel);color:var(--ink)}
.btn-line{margin-top:28px;background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--panel)}
.specrow{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  margin:0;
  border-top:2px dashed var(--panel);
}
.specrow > div{padding:16px 16px 4px 0;border-right:2px dashed var(--panel)}
.specrow > div:last-child{border-right:none}
.specrow dt{
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:11px;
  color:var(--orange);
  font-family:"Roboto Condensed",Arial,sans-serif;
  font-weight:700;
}
.specrow dd{margin:4px 0 0;color:var(--panel);font-size:.95rem}

/* ---------- page head (subpages) ---------- */
.page-head{background:var(--ink);color:var(--panel);padding:52px 0;border-bottom:4px solid var(--orange)}
.page-head h1{
  margin:0 0 16px;
  text-transform:uppercase;
  font-weight:700;
  font-size:clamp(2rem,5.4vw,3.4rem);
  line-height:1;
}
.page-head .scope{color:var(--panel)}

/* ---------- sections ---------- */
.section{padding:66px 0}
.section-dark{background:var(--ink);color:var(--panel)}
.section-grey{background:var(--charcoal);color:var(--panel)}
.sec-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;border-bottom:4px solid var(--ink);padding-bottom:12px}
.sec-head-dark{border-bottom-color:var(--panel)}
.sec-no{
  background:var(--orange);
  color:var(--ink);
  font-weight:700;
  font-size:18px;
  padding:4px 10px;
  letter-spacing:.1em;
}
.sec-head h2{
  margin:0;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.03em;
  font-size:clamp(1.5rem,3.6vw,2.3rem);
  line-height:1.05;
}
.sec-head .stamp{margin-left:auto}
.lede{max-width:70ch;margin:0 0 30px;font-size:1.02rem}
.note{
  margin-top:26px;
  font-size:.88rem;
  border-left:4px solid var(--orange);
  padding-left:14px;
  max-width:78ch;
}

/* ---------- spec list ---------- */
.speclist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.speclist li{
  border:2px dashed var(--charcoal);
  padding:22px 20px 20px;
  position:relative;
  background:transparent;
}
.speclist li:hover{border-style:solid;border-color:var(--orange)}
.speclist h3{
  margin:10px 0 8px;
  text-transform:uppercase;
  font-size:1.08rem;
  letter-spacing:.06em;
}
.speclist p{margin:0;font-size:.93rem}
.tick{
  display:inline-grid;place-items:center;
  width:30px;height:30px;
  background:var(--orange);
  color:var(--ink);
}
.tag{
  display:inline-block;
  margin-top:14px;
  border:2px solid var(--ink);
  padding:2px 9px;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
}
.speclist-dark{grid-template-columns:repeat(4,1fr)}
.speclist-dark li{border-color:var(--panel)}
.speclist-dark .tag{border-color:var(--panel)}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.step{border-top:8px solid var(--orange);padding-top:16px}
.step-no{
  display:block;
  font-size:3.1rem;
  font-weight:700;
  line-height:1;
  color:var(--orange);
  letter-spacing:.02em;
}
.step h3{
  margin:8px 0 10px;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:1.05rem;
  border-bottom:2px dashed var(--panel);
  padding-bottom:8px;
}
.step p{margin:0;font-size:.93rem}

/* ---------- stamped grid ---------- */
.grid-stamp{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.grid-stamp span{
  border:2px dashed var(--ink);
  padding:14px 10px;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:13px;
  font-weight:700;
  font-family:"Roboto Condensed",Arial,sans-serif;
}
.grid-stamp span:hover{background:var(--orange);border-style:solid;border-color:var(--orange)}
.grid-stamp-muted span{border-color:var(--charcoal);color:var(--charcoal)}

/* ---------- facts ---------- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.fact{padding:10px 18px;border-left:3px dashed var(--panel)}
.fact:first-child{border-left:none;padding-left:0}
.fact strong{
  display:block;
  font-family:"Roboto Condensed",Arial,sans-serif;
  font-size:2.3rem;
  line-height:1;
  color:var(--orange);
}
.fact span{font-size:.88rem;text-transform:uppercase;letter-spacing:.12em}

/* ---------- contact panel ---------- */
.contact-panel{
  border:5px solid var(--ink);
  display:grid;
  grid-template-columns:1.6fr 1fr;
}
.contact-main{padding:34px 30px}
.contact-main h2{margin:14px 0 12px;text-transform:uppercase;font-size:clamp(1.5rem,3.4vw,2.2rem);line-height:1.05}
.contact-side{background:var(--charcoal);color:var(--panel);padding:34px 26px}
.contact-lines{font-family:"Roboto Condensed",Arial,sans-serif;font-size:1.3rem;letter-spacing:.04em;line-height:1.5}
.contact-lines a{color:var(--orange);text-decoration:none}
.contact-lines a:hover{text-decoration:underline}
.mini-list{list-style:none;margin:16px 0 0;padding:0}
.mini-list li{
  border-bottom:2px dashed currentColor;
  padding:8px 0;
  font-size:.9rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

/* ---------- table ---------- */
.table-wrap{overflow-x:auto;border:3px solid var(--ink)}
.spectable{width:100%;border-collapse:collapse;min-width:560px;background:transparent}
.spectable th{
  background:var(--ink);
  color:var(--panel);
  text-align:left;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:12px;
  padding:12px 14px;
}
.spectable td{padding:12px 14px;border-bottom:2px dashed var(--charcoal);font-size:.95rem}
.spectable tr:last-child td{border-bottom:none}
.spectable td:first-child{
  font-family:"Roboto Condensed",Arial,sans-serif;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--charcoal);
  white-space:nowrap;
}
.spectable td:last-child{
  font-family:"Roboto Condensed",Arial,sans-serif;
  font-weight:700;
  white-space:nowrap;
}
.spectable tr:hover td{background:rgba(255,106,0,.1)}

/* ---------- checksheet ---------- */
.checksheet{border:3px dashed var(--charcoal);padding:26px}
.checksheet ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 26px}
.checksheet li{
  display:flex;align-items:center;gap:10px;
  border-bottom:2px dotted var(--charcoal);
  padding:10px 0;
  font-size:.93rem;
}
.checksheet li span{flex:1}
.checksheet li b{
  font-family:"Roboto Condensed",Arial,sans-serif;
  color:var(--orange);
  letter-spacing:.2em;
  font-size:12px;
  border:2px solid var(--orange);
  padding:1px 7px;
}

/* ---------- hours ---------- */
.hours{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px}
.hours div{
  display:flex;justify-content:space-between;gap:12px;
  border-bottom:2px dashed var(--panel);
  padding:14px 0;
}
.hours span{text-transform:uppercase;letter-spacing:.1em;font-size:.86rem}
.hours b{font-family:"Roboto Condensed",Arial,sans-serif;color:var(--orange);white-space:nowrap}

/* ---------- faq ---------- */
.faq details{border:2px dashed var(--charcoal);padding:16px 18px;margin-bottom:12px}
.faq details[open]{border-style:solid;border-color:var(--ink)}
.faq summary{
  cursor:pointer;
  font-family:"Roboto Condensed",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
  font-size:1.02rem;
}
.faq p{margin:12px 0 0;font-size:.95rem}

/* ---------- form ---------- */
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:26px}
.form-box{border:4px solid var(--ink);padding:26px}
.info-box{border:3px dashed var(--charcoal);padding:26px;background:transparent}
.info-box h3{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.95rem;
  margin:22px 0 8px;
  border-bottom:2px solid var(--ink);
  padding-bottom:6px;
}
.info-box .mini-list li{border-bottom-color:var(--charcoal)}
.field{margin-bottom:16px}
.field label{
  display:block;
  font-family:"Roboto Condensed",Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:700;
  margin-bottom:6px;
}
.field input,.field select,.field textarea{
  width:100%;
  padding:12px;
  border:2px solid var(--charcoal);
  background:var(--panel);
  color:var(--ink);
  font-family:"Inter",Arial,sans-serif;
  font-size:.95rem;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--orange);border-color:var(--orange)}
.field input.err,.field textarea.err{border-color:var(--orange);background:rgba(255,106,0,.08)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;margin-bottom:18px}
.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--orange)}
.form-msg{margin:14px 0 0;font-weight:600;font-size:.92rem}
.form-msg.ok{color:var(--ink);border-left:4px solid var(--orange);padding-left:12px}
.form-msg.bad{color:var(--orange)}

/* ---------- legal ---------- */
.legal{max-width:78ch}
.legal h2{
  text-transform:uppercase;
  font-size:1.2rem;
  letter-spacing:.08em;
  margin:34px 0 10px;
  border-bottom:3px solid var(--ink);
  padding-bottom:8px;
}
.legal ul{padding-left:20px}
.legal li{margin-bottom:6px}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:var(--panel);border-top:5px solid var(--orange);padding-top:46px}
.foot-inner{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:26px;padding-bottom:30px}
.foot-col h4{
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:12px;
  color:var(--orange);
  margin:0 0 12px;
}
.foot-col p{margin:0 0 10px;font-size:.9rem}
.foot-brand{
  font-family:"Roboto Condensed",Arial,sans-serif;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.12em;
  font-size:1.1rem;
  margin:12px 0 8px !important;
}
.site-foot a{color:var(--panel)}
.site-foot a:hover{color:var(--orange)}
.foot-links{list-style:none;margin:0;padding:0}
.foot-links li{margin-bottom:8px;font-size:.9rem}
.socials{display:flex;flex-direction:column;gap:10px}
.socials a{
  display:flex;align-items:center;gap:10px;
  text-decoration:none;
  font-size:.88rem;
  border:2px dashed var(--charcoal);
  padding:8px 10px;
}
.socials a:hover{border-color:var(--orange);border-style:solid}
.foot-bottom{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
  border-top:2px dashed var(--charcoal);
  padding-top:16px;padding-bottom:22px;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.js .reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .speclist{grid-template-columns:repeat(2,1fr)}
  .speclist-dark{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .grid-stamp{grid-template-columns:repeat(3,1fr)}
  .facts{grid-template-columns:repeat(2,1fr);gap:18px 0}
  .checksheet ul{grid-template-columns:repeat(2,1fr)}
  .hours{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:1fr}
  .foot-inner{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  .nav-toggle{display:block}
  .nav{
    display:none;
    position:absolute;
    left:0;right:0;top:100%;
    flex-direction:column;
    align-items:stretch;
    background:var(--charcoal);
    border-top:3px dashed var(--orange);
    border-bottom:4px solid var(--ink);
    padding:12px 16px 18px;
    margin:0;
  }
  .nav.open{display:flex}
  .nav a{padding:12px 4px;border-bottom:1px dashed var(--panel)}
  .nav .nav-cta{margin:12px 0 0;text-align:center;border-bottom:2px solid var(--orange)}
  .head-inner{position:relative}
  .specrow{grid-template-columns:repeat(2,1fr)}
  .specrow > div:nth-child(2){border-right:none}
  .hero-box{padding:26px 18px}
  .contact-panel{grid-template-columns:1fr}
  .fact{border-left:none;padding-left:0}
  .sec-head .stamp{margin-left:0}
}
@media (max-width:520px){
  .speclist,.speclist-dark,.steps{grid-template-columns:1fr}
  .grid-stamp{grid-template-columns:repeat(2,1fr)}
  .checksheet ul,.hours{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
  .foot-inner{grid-template-columns:1fr}
  .section{padding:48px 0}
}
