:root{
  --charcoal:#3A3F44;
  --panel:#E6E4DF;
  --safety:#F5C400;
  --ink:#1A1A1A;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--panel);
  color:var(--ink);
  font-family:"Source Sans 3",Arial,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-text-size-adjust:100%;
}
img{max-width:100%;display:block}
a{color:var(--ink)}

.wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}

/* ---------- stencil type ---------- */
.h-stencil{
  font-family:"Oswald","Source Sans 3",sans-serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.02em;
  line-height:1.02;
  font-size:clamp(2rem,6vw,3.4rem);
  margin:.1em 0 .35em;
}
.h-stencil-light{color:var(--panel)}
.kicker{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:.76rem;
  margin:0;
  padding:0 0 .6rem;
  border-bottom:2px dashed var(--charcoal);
  display:inline-block;
}
.kicker-light{color:var(--safety);border-bottom-color:var(--safety)}
.lede{max-width:62ch;font-size:1.06rem}
.lede-light{color:var(--panel)}

/* ---------- tape ---------- */
.tape-stripe{
  height:12px;
  background:repeating-linear-gradient(135deg,var(--safety) 0 18px,var(--ink) 18px 36px);
}

/* ---------- header ---------- */
.site-header{
  background:var(--charcoal);
  color:var(--panel);
  border-bottom:3px solid var(--ink);
  position:sticky;
  top:0;
  z-index:40;
}
.header-grid{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-top:14px;
  padding-bottom:14px;
  flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--panel)}
.brand-mark{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:1.1rem;
  background:var(--safety);
  color:var(--ink);
  padding:.25rem .5rem;
  border:2px solid var(--ink);
  letter-spacing:.05em;
}
.brand-text{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:1.02rem;
  line-height:1.1;
  display:flex;
  flex-direction:column;
}
.brand-text small{
  font-family:"Source Sans 3",sans-serif;
  text-transform:none;
  letter-spacing:0;
  font-size:.72rem;
  opacity:.75;
  margin-top:3px;
}
.nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.nav a{
  color:var(--panel);
  text-decoration:none;
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.8rem;
  padding-bottom:3px;
  border-bottom:2px solid transparent;
}
.nav a:hover,.nav a:focus{border-bottom-color:var(--safety);color:var(--safety)}
.nav .nav-cta{
  background:var(--safety);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:.4rem .7rem;
}
.nav .nav-cta:hover{color:var(--ink);border-bottom-color:var(--ink)}
.nav-toggle{
  display:none;
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.8rem;
  background:var(--safety);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:.45rem .8rem;
  cursor:pointer;
}
.status-bar{
  display:flex;
  gap:12px 28px;
  flex-wrap:wrap;
  align-items:center;
  border-top:2px dashed rgba(230,228,223,.45);
  padding-top:10px;
  padding-bottom:12px;
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.72rem;
}
.status-item{display:flex;align-items:center;gap:10px}
.status-dim{opacity:.7}

/* ---------- stamps ---------- */
.stamp{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  border:3px solid var(--safety);
  color:var(--safety);
  padding:.1rem .45rem;
  display:inline-block;
  transform:rotate(-5deg);
}
.stamp-ok{transform:rotate(4deg)}
.section-hours .stamp,.section-quote .stamp{border-color:var(--ink);color:var(--ink)}

/* ---------- sections ---------- */
.section{padding:58px 0}
.section-prices{background:var(--panel)}
.section-hero{background:var(--charcoal)}
.section-hours{background:var(--panel)}
.section-quote{background:var(--safety);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.section-contact{background:var(--panel);border-top:2px dashed var(--charcoal)}
.section-privacy{background:var(--panel);padding:48px 0 70px}

/* ---------- spec boxes ---------- */
.spec-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:18px;
  margin-top:28px;
}
.spec{
  border:2px dashed var(--charcoal);
  background:transparent;
  padding:18px 18px 16px;
  display:flex;
  flex-direction:column;
}
.spec-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-bottom:2px solid var(--charcoal);
  padding-bottom:10px;
  margin-bottom:12px;
}
.spec-no{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  font-size:1.5rem;
  letter-spacing:.06em;
  background:var(--charcoal);
  color:var(--panel);
  padding:.05rem .5rem;
}
.spec-price{
  font-family:"Oswald",sans-serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:1.1rem;
  background:var(--safety);
  color:var(--ink);
  border:2px solid var(--ink);
  padding:.15rem .55rem;
}
.spec-price-alt{
  background:transparent;
  border:2px dashed var(--ink);
  font-size:.82rem;
  letter-spacing:.14em;
}
.spec h2{
  font-family:"Oswald",sans-serif;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:1.08rem;
  line-height:1.2;
  margin:0 0 12px;
}
.check{list-style:none;margin:0 0 14px;padding:0}
.check li{
  position:relative;
  padding-left:26px;
  margin-bottom:9px;
  font-size:.95rem;
}
.check li::before{
  content:"";
  position:absolute;
  left:0;
  top:.3em;
  width:14px;
  height:14px;
  border:2px solid var(--charcoal);
  background:var(--safety);
}
.spec-foot{
  margin:auto 0 0;
  padding-top:10px;
  border-top:2px dashed var(--charcoal);
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
}

/* ---------- caution ---------- */
.caution{background:var(--ink);border-top:3px solid var(--ink)}
.tape{
  background:var(--safety);
  border-top:3px solid var(--ink);
  border-bottom:3px solid var(--ink);
  overflow:hidden;
  white-space:nowrap;
}
.tape-run{
  display:inline-flex;
  gap:22px;
  align-items:center;
  padding:7px 0;
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.76rem;
  color:var(--ink);
  animation:run 26s linear infinite;
}
@keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.tape-run{animation:none}}
.caution-labels{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding-top:20px;
  padding-bottom:22px;
}
.label-box{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.72rem;
  color:var(--panel);
  border:2px dashed var(--panel);
  padding:.35rem .7rem;
}

/* ---------- hero ---------- */
.hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:34px;
  align-items:start;
}
.btn{
  display:inline-block;
  background:var(--safety);
  color:var(--ink);
  border:3px solid var(--ink);
  font-family:"Oswald",sans-serif;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.88rem;
  padding:.75rem 1.4rem;
  text-decoration:none;
}
.btn:hover{background:var(--ink);color:var(--safety);border-color:var(--safety)}
.meta-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:0;
  margin:28px 0 0;
  border:2px dashed var(--panel);
}
.meta-row div{padding:12px 14px;border-right:2px dashed var(--panel)}
.meta-row div:last-child{border-right:none}
.meta-row dt{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.66rem;
  color:var(--safety);
}
.meta-row dd{
  margin:4px 0 0;
  font-family:"Oswald",sans-serif;
  font-size:1.02rem;
  color:var(--panel);
  letter-spacing:.04em;
}
.hero-figure{margin:0;border:3px solid var(--safety);background:var(--ink);padding:10px}
.hero-figure img{width:100%;height:auto}
.hero-figure figcaption{
  color:var(--panel);
  font-size:.8rem;
  padding:10px 2px 2px;
  border-top:2px dashed var(--safety);
  margin-top:10px;
}

/* ---------- hours ---------- */
.hours-box{
  margin-top:26px;
  border:3px solid var(--charcoal);
  display:grid;
  grid-template-columns:1fr 1fr;
}
.hours-list{list-style:none;margin:0;padding:0}
.hours-list li{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:12px 18px;
  border-bottom:2px dashed var(--charcoal);
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.88rem;
}
.hours-list li:last-child{border-bottom:none}
.hours-list .closed{background:var(--charcoal);color:var(--panel)}
.hours-note{
  padding:20px 18px;
  background:var(--charcoal);
  color:var(--panel);
  border-left:3px solid var(--ink);
}
.hours-note .stamp{border-color:var(--safety);color:var(--safety)}
.hours-note p{margin:14px 0 0;font-size:.96rem}

/* ---------- quote ---------- */
.quote-wrap{max-width:860px}
.section-quote blockquote{margin:0}
.section-quote p{
  font-family:"Oswald",sans-serif;
  font-weight:400;
  font-size:clamp(1.2rem,3.2vw,1.9rem);
  line-height:1.25;
  margin:0 0 18px;
  text-transform:uppercase;
  letter-spacing:.01em;
}
.section-quote footer{
  display:flex;
  align-items:center;
  gap:12px;
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.74rem;
  border-top:2px dashed var(--ink);
  padding-top:14px;
}

/* ---------- contact ---------- */
.contact-box{
  margin:26px 0;
  border:3px solid var(--charcoal);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.contact-col{padding:20px 20px 22px;border-right:2px dashed var(--charcoal)}
.contact-col:last-child{border-right:none}
.contact-col h3{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.74rem;
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:2px solid var(--charcoal);
}
.contact-col address{font-style:normal;line-height:1.7}
.big-link{
  font-family:"Oswald",sans-serif;
  font-size:1.12rem;
  letter-spacing:.03em;
  margin:0 0 8px;
  word-break:break-word;
}
.big-link a{text-decoration:none;border-bottom:3px solid var(--safety)}
.small{font-size:.86rem;margin:0}

/* ---------- privacy ---------- */
.section-privacy h2{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:1rem;
  margin:28px 0 6px;
  padding-bottom:6px;
  border-bottom:2px dashed var(--charcoal);
}
.section-privacy p{margin:0 0 10px}
.nav-static{justify-content:flex-end}

/* ---------- footer ---------- */
.site-footer{background:var(--charcoal);color:var(--panel);border-top:3px solid var(--ink)}
.footer-grid{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  padding:22px 20px;
}
.footer-brand{
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.8rem;
  margin:0;
}
.footer-nav{display:flex;gap:18px;flex-wrap:wrap}
.footer-nav a{
  color:var(--panel);
  font-family:"Oswald",sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.74rem;
  text-decoration:none;
  border-bottom:2px solid transparent;
}
.footer-nav a:hover{color:var(--safety);border-bottom-color:var(--safety)}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hours-box{grid-template-columns:1fr}
  .hours-note{border-left:none;border-top:3px solid var(--ink)}
}
@media (max-width:760px){
  .nav-toggle{display:block}
  .nav{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    border-top:2px dashed rgba(230,228,223,.45);
    padding-top:14px;
    margin-top:4px;
  }
  .nav.open{display:flex}
  .nav-static{display:flex;flex-direction:row;border-top:none;padding-top:0}
  .contact-col{border-right:none;border-bottom:2px dashed var(--charcoal)}
  .contact-col:last-child{border-bottom:none}
  .meta-row div{border-right:none;border-bottom:2px dashed var(--panel)}
  .meta-row div:last-child{border-bottom:none}
}
