/* ==========================================================================
   Bradbury Motors — "The Service Book"
   --------------------------------------------------------------------------
   base.css owns the reset, shell, header/nav mechanics, buttons, footer
   skeleton, reveals, preloader shell and the hero headline contract.
   This file supplies the palette, the drawn book, and the page grammar.
   ========================================================================== */

:root{
  /* ---------- the book's inks ---------- */
  --ink:        #101317;
  --ink-2:      #15191d;
  --ink-3:      #1b2026;
  --paper:      #f6f3ec;
  --cream:      #e9e3d6;
  --steel:      #6f757c;
  --red:        #e2001a;
  --red-deep:   #b80015;
  --stamp:      #8c1d1d;

  /* ---------- derived surfaces ---------- */
  --ink-soft:   #33383e;
  --line:       rgba(16,19,23,.16);
  --line-soft:  rgba(16,19,23,.09);
  --line-d:     rgba(246,243,236,.16);
  --surface:    var(--paper);
  --surface-2:  var(--cream);
  --text:       var(--paper);
  --muted:      rgba(246,243,236,.64);
  --ink-text:   var(--ink);
  --ink-mute:   var(--steel);
  --accent:     var(--red);
  --accent-lit: #ff6b78;
  --accent-2:   var(--red);

  /* ---------- type ---------- */
  --font-display: "Biryani", "Arial Narrow", Arial, sans-serif;
  --font-body:    "Anek Latin", system-ui, -apple-system, sans-serif;
  --font-mono:    "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;

  --wrap-max: 1240px;
  --pad:      clamp(1.15rem, 4vw, 2.6rem);
  --radius:   2px;
  --ease:     cubic-bezier(.22,.61,.36,1);
}

html{ scroll-padding-top:96px; }
body{
  background:var(--paper);
  color:var(--ink);
  font-size:16.5px;
  line-height:1.65;
}
::selection{ background:var(--red); color:var(--paper); }
:focus-visible{ outline:2px solid var(--red); outline-offset:3px; }

/* very light paper grain */
body::after{
  content:""; position:fixed; inset:0; z-index:880; pointer-events:none; opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:160px 160px;
}

.skip{
  position:absolute; left:.5rem; top:.5rem; z-index:10000;
  width:1px; height:1px; overflow:hidden; clip-path:inset(50%);
  padding:.75rem 1.1rem; background:var(--ink); color:var(--paper);
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
}
.skip:focus{ width:auto; height:auto; clip-path:none; }

.vh{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip-path:inset(50%); white-space:nowrap;
}

/* ==========================================================================
   PRELOADER
   ========================================================================== */
.pre{ background:var(--ink); color:var(--paper); }
.pre__mark{ width:128px; margin-bottom:1rem; }
.pre__mark svg{ width:100%; height:auto; display:block; }
.pre__stamp{
  opacity:.5;
  transform-box:fill-box; transform-origin:center;
  animation:preStamp 1.7s var(--ease) infinite;
}
@keyframes preStamp{
  0%,100%{ opacity:.32; transform:scale(1.3) rotate(-10deg); }
  45%,65%{ opacity:1; transform:scale(1) rotate(0); }
}
.pre__meta{ color:rgba(246,243,236,.55); font-size:.6rem; letter-spacing:.18em; }
.pre__pct{ color:var(--red); }
.pre__bar{ background:rgba(246,243,236,.16); height:2px; }
.pre__bar i{ background:var(--red); }

/* ==========================================================================
   HEADER + NAV — the book's cover label
   ========================================================================== */
.hdr{
  background:var(--paper);
  background:color-mix(in srgb, var(--paper) 94%, transparent);
  border-bottom:1px solid var(--line);
  color:var(--ink);
}
.hdr::before{
  content:""; position:absolute; inset:0 0 auto; height:3px;
  background:var(--red); z-index:1;
}
.hdr__in{ min-height:80px; gap:1rem; }
.brand img{ width:270px; height:auto; }

.nav__list{ gap:0; }
.nav__link{
  font-family:var(--font-body);
  font-size:.78rem; font-weight:500; letter-spacing:.005em;
  padding:.55rem .6rem; color:var(--ink); border-radius:2px;
  transition:color .2s, background .2s;
}
.nav__link:hover{ color:var(--red); background:rgba(226,0,26,.06); }
.nav__item.is-open > .nav__link{ color:var(--red); }
.nav__chev{ width:8px; height:5px; opacity:.6; }

.nav__util{ order:8; }
.nav__util .nav__link{
  font-family:var(--font-mono); font-size:.69rem; letter-spacing:0; color:var(--steel);
}
.nav__cta{ order:9; margin-left:.45rem; }
.nav__cta .nav__link{
  background:var(--red); color:#fff;
  padding:.6rem 1rem; font-family:var(--font-display); font-weight:700;
  font-size:.82rem; letter-spacing:.01em;
}
.nav__cta .nav__link:hover{ background:var(--ink); color:#fff; }
.nav__cta .nav__link:focus-visible{ outline-color:var(--ink); }

/* ---------- our services panel ---------- */
.nav__item.has-mega .mega{
  width:min(780px, calc(100vw - 2rem));
  padding:1.5rem;
  background:var(--paper); color:var(--ink);
  border:1px solid var(--line); border-top:2px solid var(--red);
  border-radius:2px;
  box-shadow:0 30px 70px -30px rgba(16,19,23,.42);
}
.megap{ display:grid; grid-template-columns:1fr 1fr .95fr; gap:1.5rem; }
.megap__col--note{
  padding-left:1.4rem; border-left:1px solid var(--line);
}
.mega__h{
  font-family:var(--font-mono); font-size:.55rem; font-weight:500;
  letter-spacing:.16em; color:var(--steel);
  border-bottom:1px solid var(--line); padding-bottom:.5rem; margin-bottom:.35rem;
}
.mega a{
  display:flex; align-items:baseline; gap:.55rem;
  padding:.4rem 0; font-size:.84rem; color:var(--ink); line-height:1.4;
}
.mega a:hover{ color:var(--red); transform:translateX(3px); }
.megap__n{ font-family:var(--font-mono); font-size:.56rem; color:var(--red); flex:none; }
.megap__note{ font-size:.8rem; line-height:1.58; color:#4a4f55; margin-bottom:.9rem; }
.megap__all{
  display:inline-flex; align-items:center; gap:.35rem;
  font-family:var(--font-mono); font-size:.61rem; letter-spacing:.04em;
  color:var(--red) !important; border-bottom:1px solid rgba(226,0,26,.35);
  padding-bottom:.15rem;
}
.megap__all:hover{ color:var(--ink) !important; border-color:var(--ink); }

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn{ border-radius:2px; font-family:var(--font-display); font-weight:700; letter-spacing:.005em; }
.btn--solid{ background:var(--red); color:#fff; }
.btn--solid:focus-visible{ outline-color:var(--ink); }
.contact .btn--solid:focus-visible{ outline-color:var(--paper); }
.btn--solid:hover{ background:var(--red-deep); transform:translateY(-2px); }
.btn--ghost{ border:1px solid rgba(16,19,23,.3); color:var(--ink); }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.btn--ghost-light{ border:1px solid rgba(246,243,236,.34); color:var(--paper); }
.btn--ghost-light:hover{ background:var(--paper); color:var(--ink); border-color:var(--paper); }

/* ==========================================================================
   RUNNING HEAD + SECTION HEADS
   ========================================================================== */
.runhead{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:.85rem 0; border-bottom:1px solid var(--line);
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--steel);
}
.runhead--light{ border-color:var(--line-d); color:rgba(246,243,236,.58); }

.sect__head{ margin-top:clamp(1.8rem,3.4vw,2.8rem); margin-bottom:clamp(2rem,4vw,3rem); }
.sect__num{
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--red); margin-bottom:.85rem;
}
.sect__num::before{
  content:""; display:inline-block; width:6px; height:6px;
  background:currentColor; margin-right:.55rem; vertical-align:1px;
}
.sect__h2{
  font-family:var(--font-display); font-weight:700;
  font-size:clamp(2rem,4.8vw,3.7rem); line-height:.98; letter-spacing:-.025em;
}
.sect__lead{ font-size:.98rem; line-height:1.7; color:#4a4f55; max-width:44ch; }

/* ==========================================================================
   HERO — the open service book
   ========================================================================== */
.hero{
  position:relative;
  padding:0 0 clamp(1.6rem,3vw,2.4rem);
  background:var(--paper); color:var(--ink);
  overflow:hidden;
}
.hero__top{ padding-top:clamp(2.2rem,5vw,4.2rem); }
.hero__kicker{
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--steel); margin-bottom:1.4rem;
}
.hero__kicker i{ width:9px; height:9px; background:var(--red); flex:none; }

.hero__h1wrap{ width:100%; min-width:0; }
.hero__h1{
  font-size:var(--h1-size, clamp(2.7rem, 7.6vw, 6.6rem));
  line-height:.94; letter-spacing:-.035em; color:var(--ink);
}
.hero__h1 .line{ padding-block:.1em; overflow:visible; }
.hero__h1 em{ font-style:normal; color:var(--red); }

.hero__meta{
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(1.6rem,4vw,4rem); align-items:end;
  margin-top:clamp(1.6rem,3vw,2.4rem);
}
.hero__sub{ font-size:1.02rem; line-height:1.7; color:var(--ink-soft); max-width:52ch; }
.hero__acts{ display:flex; flex-wrap:wrap; gap:.7rem; justify-content:flex-end; }

.bookwrap{
  margin-top:clamp(2rem,4vw,3.2rem);
  padding-inline:clamp(.4rem,2vw,1.2rem);
}
.book{ display:block; width:100%; height:auto; max-width:1440px; margin-inline:auto; }

.hero__foot{ margin-top:clamp(1rem,2vw,1.4rem); }
.hero__facts{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.hero__facts li{ padding:.9rem 1.1rem; border-left:1px solid var(--line); min-width:0; }
.hero__facts li:first-child{ border-left:0; padding-left:0; }
.hero__facts span{
  display:block; font-family:var(--font-mono); font-size:.53rem;
  letter-spacing:.15em; text-transform:uppercase; color:var(--steel); margin-bottom:.25rem;
}
.hero__facts b{ display:block; font-family:var(--font-display); font-weight:600; font-size:.98rem; letter-spacing:-.01em; }
.hero__note{
  margin-top:.8rem; text-align:right;
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.06em; color:var(--steel);
}

/* the fresh ADAS stamp lands after the preloader */
.bk-fresh{ opacity:0; transform-box:fill-box; transform-origin:center; }
body.loaded .bk-fresh{ animation:bkStamp .55s cubic-bezier(.2,.8,.25,1) .35s both; }
@keyframes bkStamp{
  0%{ opacity:0; transform:scale(1.3) rotate(-7deg); }
  62%{ opacity:1; transform:scale(.97) rotate(1.5deg); }
  100%{ opacity:1; transform:scale(1) rotate(0); }
}

/* ==========================================================================
   PAGES 01–07 — the service entries
   ========================================================================== */
.svc{ background:var(--paper); }

.entries{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.entry{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:1.15rem; padding:clamp(1.3rem,2.6vw,1.9rem);
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  background:transparent; transition:background .25s;
  scroll-margin-top:100px;
}
.entry:hover{ background:rgba(233,227,214,.4); }

.pstamp{
  position:relative; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:.1rem;
  width:76px; height:76px; flex:none;
  border:2px solid var(--stamp); border-radius:2px;
  color:var(--stamp);
  transform:rotate(-2.5deg); opacity:0;
}
.pstamp::after{
  content:""; position:absolute; inset:5px;
  border:1px solid currentColor; opacity:.5; border-radius:1px;
}
.pstamp__t{
  font-family:var(--font-mono); font-size:.46rem; letter-spacing:.2em;
  text-transform:uppercase; opacity:.85;
}
.pstamp__n{
  font-family:var(--font-mono); font-size:1.62rem; font-weight:500;
  line-height:1; letter-spacing:-.05em;
}
.entry.is-in .pstamp{ animation:stampLand .22s cubic-bezier(.2,.8,.25,1) .3s forwards; }
@keyframes stampLand{
  from{ opacity:0; transform:scale(1.15) rotate(-6deg); }
  to{ opacity:1; transform:scale(1) rotate(-2.5deg); }
}
.pstamp--fresh{ border-color:var(--red); color:var(--red); }

.entry__head{
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between;
  gap:.4rem 1rem; margin-bottom:.55rem;
}
.entry__h{
  font-family:var(--font-display); font-size:1.42rem; font-weight:700;
  line-height:1.05; letter-spacing:-.015em;
}
.entry__h span{
  display:block; margin-top:.38rem;
  font-family:var(--font-mono); font-size:.54rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase; color:var(--stamp);
}
.entry__link{
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.07em;
  text-transform:uppercase; white-space:nowrap;
  color:var(--red); border-bottom:1px solid rgba(226,0,26,.35); padding-bottom:.1rem;
}
.entry__link:hover{ color:var(--ink); border-color:var(--ink); }
.entry__p{ font-size:.91rem; line-height:1.68; color:var(--ink-soft); max-width:44ch; }
.entry__note{
  display:flex; align-items:center; gap:.45rem; margin-top:1rem;
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.08em;
  text-transform:uppercase; color:var(--stamp);
}
.entry__note::before{ content:""; width:6px; height:6px; background:currentColor; flex:none; }

/* page 07 — the newest page, set as the fresh stamp */
.entry--adas{
  grid-column:1/-1;
  grid-template-columns:auto minmax(0,1.1fr) minmax(0,.9fr);
  align-items:center; gap:clamp(1.2rem,3vw,2.4rem);
  background:var(--ink); color:var(--paper);
  border-color:rgba(246,243,236,.14);
}
.entry--adas:hover{ background:var(--ink); }
.entry--adas .entry__h{ color:var(--paper); }
.entry--adas .entry__h span{ color:var(--accent-lit); }
.entry--adas .entry__p{ color:rgba(246,243,236,.74); }
.entry--adas .entry__note{ color:var(--accent-lit); }
.entry--adas .entry__link{ color:var(--accent-lit); border-color:rgba(255,107,120,.4); }
.entry--adas .entry__link:hover{ color:var(--paper); border-color:var(--paper); }
.cal{ width:100%; max-width:320px; justify-self:end; display:block; }

.terms{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:1rem;
  align-items:baseline; margin-top:clamp(1.4rem,3vw,2.2rem);
  padding:1rem 1.2rem; background:var(--cream);
  border:1px solid var(--line); border-left:4px solid var(--red);
}
.terms__k{
  font-family:var(--font-mono); font-size:.54rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--stamp); white-space:nowrap;
}
.terms__t{ font-size:.85rem; line-height:1.6; color:var(--ink-soft); }
.terms__t b{ font-weight:600; color:var(--ink); }

/* ==========================================================================
   PAGE 08 — the 58-year spread
   ========================================================================== */
.spread{ background:var(--cream); color:var(--ink); }
.spread__book{
  display:grid; grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);
  background:var(--paper); border:1px solid rgba(16,19,23,.08);
  box-shadow:0 26px 60px -34px rgba(16,19,23,.45);
}
.spread__page{ padding:clamp(1.5rem,3.4vw,2.8rem); min-width:0; }
.spread__gutter{
  background:linear-gradient(90deg, rgba(16,19,23,.15), rgba(16,19,23,.015) 45%, rgba(16,19,23,.15));
}
.spread__k{
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.17em;
  text-transform:uppercase; color:var(--steel);
  border-bottom:1px solid var(--line); padding-bottom:.7rem; margin-bottom:1.4rem;
}
.spread__big{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(5rem,9vw,8rem); line-height:.78; letter-spacing:-.06em;
}
.spread__unit{
  margin-top:.6rem; font-family:var(--font-mono); font-size:.6rem;
  letter-spacing:.22em; text-transform:uppercase; color:var(--stamp);
}
.decades{ margin-top:1.6rem; }
.decades li{
  display:flex; align-items:center; gap:.9rem;
  padding:.5rem 0; border-top:1px solid var(--line-soft);
}
.decades span{ width:64px; flex:none; font-family:var(--font-mono); font-size:.76rem; }
.decades i{ position:relative; flex:1; height:1px; background:var(--line); }
.decades i::after{
  content:""; position:absolute; right:0; top:-2px; width:5px; height:5px;
  background:var(--stamp); border-radius:50%;
}
.decades li:last-child span{ color:var(--red); font-weight:500; }
.spread__note{
  margin-top:1.4rem; max-width:36ch;
  font-family:var(--font-mono); font-size:.55rem; line-height:1.65; color:var(--steel);
}

.holds li{
  display:grid; grid-template-columns:30px minmax(0,1fr); gap:.85rem;
  padding:.8rem 0; border-top:1px solid var(--line-soft);
}
.holds__n{ font-family:var(--font-mono); font-size:.58rem; color:var(--red); padding-top:.25rem; }
.holds h3{ font-family:var(--font-display); font-size:1.06rem; font-weight:700; letter-spacing:-.01em; }
.holds p{ margin-top:.1rem; font-size:.85rem; color:#4a4f55; }

/* ==========================================================================
   PAGE 09 — customer notes
   ========================================================================== */
.quotes{ background:var(--ink); color:var(--paper); }
.quotes .sect__num,
.contact .sect__num{ color:var(--accent-lit); }
.quotes .sect__lead,
.contact .sect__lead{ color:rgba(246,243,236,.6); }
.quotes__grid{
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);
  gap:clamp(1.4rem,3vw,2.6rem); align-items:start;
}
.quote{ position:relative; border-top:2px solid var(--red); padding-top:1.4rem; }
.quote__no{
  font-family:var(--font-mono); font-size:.53rem; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(246,243,236,.58);
}
.quote__mark{
  display:block; font-family:var(--font-display); font-weight:800;
  font-size:3.6rem; line-height:.55; color:var(--red); margin:1.1rem 0 .5rem;
}
.quote blockquote{
  font-size:clamp(1rem,1.4vw,1.14rem); line-height:1.74;
  color:rgba(246,243,236,.86); max-width:46ch;
}
.quote figcaption{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .8rem;
  margin-top:1.3rem; font-family:var(--font-mono); font-size:.58rem;
  letter-spacing:.09em; text-transform:uppercase;
}
.quote figcaption b{ color:var(--paper); font-weight:500; }
.quote figcaption span{ color:rgba(246,243,236,.56); }
.quote--short{ align-self:end; }
.quote--short blockquote{ font-size:1rem; }

/* ==========================================================================
   PAGE 10 — the workshop
   ========================================================================== */
.shop{ background:var(--paper); }
.shop__grid{
  display:grid; grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);
  gap:clamp(2rem,5vw,4.5rem); align-items:start;
  margin-top:clamp(1.8rem,3.4vw,2.8rem);
}
.shop__lead{ margin-top:1.2rem; max-width:52ch; font-size:.99rem; line-height:1.72; color:var(--ink-soft); }
.shop__list{ margin-top:1.8rem; border-top:1px solid var(--line); }
.shop__list li{
  padding:.95rem 0; border-bottom:1px solid var(--line);
  font-size:.89rem; line-height:1.62; color:var(--ink-soft);
}
.shop__list b{
  display:block; margin-bottom:.1rem;
  font-family:var(--font-display); font-size:1rem; font-weight:700; color:var(--ink);
}
.van{ margin-top:1.6rem; padding-left:1rem; border-left:3px solid var(--red); }
.van__k{
  font-family:var(--font-mono); font-size:.54rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--stamp); margin-bottom:.3rem;
}
.van p:last-child{ font-size:.87rem; line-height:1.66; color:var(--ink-soft); max-width:54ch; }

.cert{
  position:relative; padding:clamp(1.5rem,3vw,2.2rem) clamp(1.5rem,3vw,2.2rem) 6rem;
  background:var(--cream); border:1px solid rgba(16,19,23,.15);
  box-shadow:0 18px 40px -30px rgba(16,19,23,.4);
}
.cert::after{
  content:""; position:absolute; inset:7px;
  border:1px solid rgba(16,19,23,.14); pointer-events:none;
}
.cert__k{ font-family:var(--font-mono); font-size:.54rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stamp); }
.cert__big{
  margin-top:.5rem; font-family:var(--font-display); font-weight:800;
  font-size:clamp(4.2rem,8vw,6.2rem); line-height:.82; letter-spacing:-.05em; color:var(--red);
}
.cert__mid{ font-family:var(--font-display); font-size:1.28rem; font-weight:600; letter-spacing:-.01em; }
.cert__mid span{
  margin-inline:.25rem; font-family:var(--font-mono); font-size:.56rem;
  letter-spacing:.12em; text-transform:uppercase; color:var(--steel);
}
.cert__note{ margin-top:.5rem; max-width:27ch; font-size:.81rem; line-height:1.56; color:#4a4f55; }
.cert__rule{ height:1px; background:rgba(16,19,23,.18); margin:1.2rem 0; }
.cert__brake{
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.05em;
  text-transform:uppercase; line-height:1.8; color:var(--steel);
}
.cert__brake b{ color:var(--stamp); font-weight:500; }
.cert__seal{
  position:absolute; right:1.1rem; bottom:1.1rem;
  width:92px; height:92px; border:2px solid rgba(140,29,29,.55); border-radius:50%;
  display:grid; place-items:center; text-align:center; transform:rotate(-9deg);
  font-family:var(--font-mono); font-size:.44rem; letter-spacing:.12em; line-height:1.75;
  color:rgba(140,29,29,.75);
}
.cert__seal i{ font-style:normal; font-size:.4rem; letter-spacing:.08em; }
.cert__net{
  position:absolute; left:clamp(1.5rem,3vw,2.2rem); bottom:1.5rem;
  width:min(185px,55%); height:auto; mix-blend-mode:multiply; opacity:.92;
}

/* ==========================================================================
   PAGE 11 — opening hours
   ========================================================================== */
.hours{ background:var(--cream); color:var(--ink); }
.hours__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr);
  gap:clamp(2rem,5vw,5rem); align-items:center;
  margin-top:clamp(1.8rem,3.4vw,2.8rem);
}
.hours__copy .btn{ margin-top:1.6rem; }
.hours__table{ width:100%; border-collapse:collapse; }
.hours__table th{
  padding:.72rem 0; text-align:left;
  font-family:var(--font-display); font-weight:600; font-size:1.02rem;
  border-bottom:1px solid rgba(16,19,23,.14);
}
.hours__table td{
  padding:.72rem 0; text-align:right;
  font-family:var(--font-mono); font-size:.77rem; color:var(--ink-soft);
  border-bottom:1px solid rgba(16,19,23,.14);
}
.hours__table tr:first-child th,
.hours__table tr:first-child td{ border-top:2px solid var(--ink); }
.hours__table .is-closed th{ color:var(--steel); }
.hours__table .is-closed td{
  color:var(--stamp); text-transform:uppercase; font-size:.64rem; letter-spacing:.14em;
}

/* ==========================================================================
   PAGE 12 — the back cover
   ========================================================================== */
.contact{ background:var(--ink); color:var(--paper); }
.contact__grid{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(2rem,5vw,5rem); align-items:end;
  margin-top:clamp(1.8rem,3.4vw,2.8rem);
}
.contact .sect__h2{ font-size:clamp(2.3rem,5.2vw,4.3rem); }
.contact .sect__lead{ margin-top:1rem; }
.contact__acts{ display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.8rem; }
.contact__list > div{
  display:grid; grid-template-columns:66px minmax(0,1fr); gap:1rem;
  align-items:baseline; padding:1rem 0; border-top:1px solid var(--line-d);
}
.contact__list > div:first-child{ border-top:0; }
.contact__list dt{
  font-family:var(--font-mono); font-size:.53rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(246,243,236,.58);
}
.contact__list dd{ min-width:0; overflow-wrap:anywhere; font-size:.94rem; color:rgba(246,243,236,.84); }
.contact__phone{
  font-family:var(--font-display); font-size:clamp(1.4rem,2.6vw,2rem);
  font-weight:600; letter-spacing:-.01em; color:var(--paper);
}
.contact__phone:hover{ color:var(--accent-lit); }
.contact__email{
  font-family:var(--font-mono); font-size:.79rem;
  border-bottom:1px solid rgba(246,243,236,.25); padding-bottom:.15rem;
}
.contact__email:hover{ color:var(--accent-lit); border-color:var(--accent-lit); }

/* ==========================================================================
   FOOTER — the colophon
   ========================================================================== */
.foot{ background:var(--ink-2); color:var(--paper); border-top:1px solid var(--line-d); }
.foot__top{
  grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);
  gap:clamp(2rem,5vw,4rem);
  border-bottom:1px solid var(--line-d);
}
.foot__brand img{ width:min(260px,80%); height:auto; margin-bottom:1.2rem; }
.foot__brand p{ max-width:38ch; font-size:.85rem; line-height:1.66; color:rgba(246,243,236,.58); }
.foot__net{
  margin-top:1rem; font-family:var(--font-mono); font-size:.56rem;
  letter-spacing:.11em; text-transform:uppercase; color:var(--accent-lit);
}
.foot__nav{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.foot__nav ul{ gap:.5rem; }
.foot__nav a,
.foot__nav li{ font-size:.79rem; color:rgba(246,243,236,.72); overflow-wrap:anywhere; }
.foot__nav a:hover{ color:var(--accent-lit); }
.foot__h{ color:rgba(246,243,236,.56); }
.foot__bottom{ color:rgba(246,243,236,.54); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (min-width:1024px){
  .nav__foot{ display:none; }
}
@media (min-width:1180px){
  .nav__util{ display:list-item; }
}
@media (max-width:1179px) and (min-width:1024px){
  .brand img{ width:200px; }
  .nav__link{ font-size:.72rem; padding:.5rem .45rem; }
  .nav__cta .nav__link{ font-size:.76rem; padding:.55rem .8rem; }
  .nav__util{ display:none; }
}
@media (max-width:1023px){
  .hdr{ background:var(--paper); }
  .hdr__in{ min-height:68px; }
  .brand img{ width:200px; }

  .nav{ background:var(--ink); color:var(--paper); --line:rgba(246,243,236,.16); }
  .nav__link{
    color:var(--paper); padding:.95rem .1rem;
    font-size:1.02rem; font-weight:600; border-radius:0;
  }
  .nav__link:hover{ color:var(--accent-lit); background:none; }
  .nav__headlabel{ color:rgba(246,243,236,.55); }
  .nav__close{ border-color:rgba(246,243,236,.2); }
  .nav__cta{ order:0; margin:0; }
  .nav__cta .nav__link{
    background:var(--red); color:#fff; border-radius:0;
    padding:1rem .1rem; justify-content:center; font-size:1rem;
  }
  .nav__cta .nav__link:focus-visible{ outline-color:var(--paper); }
  .nav__util{ order:0; }
  .nav__util .nav__link{ color:rgba(246,243,236,.62); font-size:.8rem; }
  .nav__foot{ color:rgba(246,243,236,.55); }
  .nav__item.has-mega .mega{
    position:static; inset:auto; transform:none;
    width:100%; padding:0; margin:0;
    background:none; border:0; border-radius:0; box-shadow:none;
    opacity:1; visibility:visible; pointer-events:auto;
  }
  .megap{ grid-template-columns:1fr; gap:.8rem; }
  .megap__col--note{ padding:1rem 0 0; border-left:0; border-top:1px solid var(--line); }
  .mega__h{ color:rgba(246,243,236,.5); border-color:var(--line); }
  .mega a{ color:rgba(246,243,236,.9); padding:.5rem 0; font-size:.92rem; }
  .mega a:hover{ color:var(--accent-lit); }
  .megap__n{ color:var(--accent-lit); }
  .megap__note{ color:rgba(246,243,236,.6); }
  .megap__all{ color:var(--accent-lit) !important; border-color:rgba(255,107,120,.4); }

  .burger{ border-color:rgba(16,19,23,.24); }
  .burger span{ background:var(--ink); }
  .burger[aria-expanded="true"] span{ background:var(--ink); }

  .foot__top{ grid-template-columns:minmax(0,1fr); }
  .foot__nav{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px){
  .hero__meta{ grid-template-columns:minmax(0,1fr); }
  .hero__acts{ justify-content:flex-start; }
  .entry--adas{ grid-template-columns:auto minmax(0,1fr); }
  .cal{ grid-column:1/-1; justify-self:start; max-width:280px; margin-top:.4rem; }
  .spread__book{ grid-template-columns:minmax(0,1fr); }
  .spread__gutter{ height:16px; background:linear-gradient(180deg, rgba(16,19,23,.15), rgba(16,19,23,.015) 45%, rgba(16,19,23,.15)); }
  .quotes__grid,
  .shop__grid,
  .hours__grid,
  .contact__grid{ grid-template-columns:minmax(0,1fr); }
  .quote--short{ align-self:start; }
  .contact__list{ margin-top:.6rem; }
  .cert{ max-width:560px; }
}
@media (max-width:820px){
  .entries{ grid-template-columns:minmax(0,1fr); }
  .entry--adas{ grid-column:auto; }
}
@media (max-width:700px){
  .runhead{
    flex-direction:column; align-items:flex-start; gap:.3rem;
    font-size:.5rem; letter-spacing:.12em;
  }
  .hero__facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero__facts li{ padding:.8rem .9rem; }
  .hero__facts li:nth-child(odd){ border-left:0; padding-left:0; }
  .hero__facts li:nth-child(3),
  .hero__facts li:nth-child(4){ border-top:1px solid var(--line); }
  .hero__note{ text-align:left; }
  .bookwrap{ padding-inline:0; }
  .terms{ grid-template-columns:minmax(0,1fr); gap:.4rem; }
  .cert__seal{ width:82px; height:82px; }
}
@media (max-width:560px){
  .entry{ grid-template-columns:minmax(0,1fr); gap:.9rem; }
  .pstamp{ width:64px; height:64px; }
  .pstamp__n{ font-size:1.4rem; }
  .entry--adas{ grid-template-columns:minmax(0,1fr); }
  .entry--adas .pstamp{ margin-bottom:.2rem; }
  .entry__head{ flex-direction:column; align-items:flex-start; gap:.5rem; }
  .contact__list > div{ grid-template-columns:56px minmax(0,1fr); gap:.7rem; }
  .contact__email{ font-size:.72rem; }
  .cert__seal{ top:1.05rem; bottom:auto; }
}
@media (max-width:420px){
  .foot__nav{ grid-template-columns:minmax(0,1fr); }
  .cert{ padding-bottom:6.4rem; }
  .cert__net{ width:150px; }
  .cert__seal{ width:76px; height:76px; }
}
@media (max-width:360px){
  .brand img{ width:160px; }
  .contact__email{ font-size:.66rem; }
  .cert__net{ width:120px; }
  .cert__seal{ width:70px; height:70px; font-size:.4rem; }
}

/* ---------- reduced motion: stamps already printed ---------- */
@media (prefers-reduced-motion: reduce){
  .pstamp{ opacity:1; transform:rotate(-2.5deg); animation:none; }
  .bk-fresh{ opacity:1; transform:none; animation:none; }
  .pre__stamp{ opacity:1; transform:none; animation:none; }
}
