/* =========================================================
   Dry Air Systems — refresh-and-uplift
   Editorial trade-journal aesthetic.
   Single bespoke build. No component framework.
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  /* Tinted neutrals — slight cool ink lean, no pure black/white */
  --paper:        oklch(98.6% 0.004 240);  /* page background */
  --paper-2:      oklch(96.4% 0.006 240);  /* secondary surface */
  --paper-rule:   oklch(88%   0.008 240);  /* rule lines */
  --paper-rule-2: oklch(80%   0.008 240);

  --ink:          oklch(22%   0.020 245);  /* primary text + ink panels */
  --ink-deep:     oklch(16%   0.020 248);  /* darker ink (footer/contact) */
  --ink-soft:     oklch(38%   0.014 245);  /* secondary text */
  --ink-muted:    oklch(54%   0.012 245);  /* tertiary text */

  /* Accent: warm brass — signals the Diamond credential, not safety yellow */
  --brass:        oklch(76% 0.130 78);
  --brass-deep:   oklch(60% 0.135 70);
  --brass-tint:   oklch(95% 0.030 80);

  /* Faint diamond-glint signal */
  --glint:        oklch(72% 0.085 235);

  /* Typography */
  --serif: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --mono:  "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Scale (mobile-first) */
  --fs-display: clamp(2.4rem, 1.6rem + 4.4vw, 5.2rem);
  --fs-h2:      clamp(1.7rem, 1.2rem + 2.2vw, 2.8rem);
  --fs-h3:      clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
  --fs-body:    1.0625rem;
  --fs-small:   0.8125rem;
  --fs-micro:   0.6875rem;

  --lh-display: 1.04;
  --lh-tight:   1.18;
  --lh-body:    1.6;

  --maxw: 1240px;
  --gutter: clamp(1.25rem, 3vw, 2.5rem);

  /* Motion */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Reset & base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-feature-settings: "ss01","cv11";
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  padding-bottom: 80px;
}
@media (min-width: 820px){ body{ padding-bottom:0; } }

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; }

.skip{
  position:absolute; left:-9999px; top:0;
  background:var(--ink); color:var(--paper);
  padding:.75rem 1rem; z-index:999;
}
.skip:focus{ left:0; }

/* ---------- Reusable bits ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:0.16em;
  color:var(--ink-muted);
  margin:0 0 1.25rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.eyebrow__dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--brass-deep);
  display:inline-block;
}
.eyebrow--light{ color: oklch(78% 0.010 245); }

.section-title{
  font-family:var(--serif);
  font-weight:500;
  font-size:var(--fs-h2);
  line-height:var(--lh-tight);
  letter-spacing:-0.02em;
  margin:0 0 1rem;
  color:var(--ink);
}
.section-title--light{ color: var(--paper); }

.section-deck{
  font-family:var(--serif);
  font-size:1.125rem;
  font-style:italic;
  color:var(--ink-soft);
  max-width:60ch;
  margin:0;
  line-height:1.45;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  font-family:var(--sans);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.005em;
  padding:.95rem 1.25rem;
  border-radius:2px;
  border:1px solid transparent;
  transition: transform .25s var(--ease), background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  white-space:nowrap;
}
.btn--primary{
  background:var(--ink);
  color:var(--paper);
}
.btn--primary:hover{
  background:var(--ink-deep);
  transform: translateY(-1px);
}
.btn--ghost{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.btn--ghost:hover{
  background:var(--ink);
  color:var(--paper);
}
.btn--block{ width:100%; }
.btn__num{
  font-family:var(--mono);
  font-weight:500;
  font-size:.9rem;
  opacity:.85;
}
.btn__label{ font-weight:600; }

/* =========================================================
   MASTHEAD
   ========================================================= */
.masthead{
  background:var(--paper);
  position:relative;
  z-index:5;
}
.masthead__rule--top{
  height:6px;
  background: linear-gradient(90deg, var(--ink) 0 30%, var(--brass-deep) 30% 36%, var(--ink) 36% 100%);
}
.masthead__inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding: 1.25rem var(--gutter) 1rem;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
}
.wordmark{
  display:flex;
  flex-direction:column;
  line-height:1;
  gap:.3rem;
}
.wordmark__primary{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(1.4rem, 1.1rem + 0.8vw, 1.85rem);
  letter-spacing:-0.015em;
  color:var(--ink);
}
.wordmark__secondary{
  font-family:var(--mono);
  font-size:.625rem;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:var(--ink-muted);
}
.primary-nav{
  display:none;
  gap:1.5rem;
  font-size:.875rem;
  font-weight:500;
}
.primary-nav a{
  position:relative;
  color:var(--ink-soft);
  padding-bottom:2px;
  transition: color .2s var(--ease);
}
.primary-nav a::after{
  content:"";
  position:absolute;
  inset:auto 0 -4px 0;
  height:1px;
  background:var(--brass-deep);
  transform:scaleX(0);
  transform-origin:left;
  transition: transform .3s var(--ease);
}
.primary-nav a:hover{ color:var(--ink); }
.primary-nav a:hover::after{ transform:scaleX(1); }

.masthead__contact{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.15rem;
  line-height:1.1;
}
.masthead__hours{
  font-family:var(--mono);
  font-size:.625rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ink-muted);
}
.masthead__phone{
  font-family:var(--mono);
  font-size:1.05rem;
  font-weight:600;
  color:var(--ink);
  letter-spacing:-.01em;
}
.masthead__phone:hover{ color:var(--brass-deep); }

@media (min-width: 880px){
  .primary-nav{ display:flex; }
}

/* ---------- LICENSE RULE — visual identity element ---------- */
.license-rule{
  max-width:var(--maxw);
  margin:0 auto;
  padding: 0 var(--gutter) 1.25rem;
  display:flex;
  align-items:center;
  gap: clamp(.75rem, 2vw, 1.5rem);
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ink-muted);
  overflow-x:auto;
  white-space:nowrap;
  scrollbar-width:none;
}
.license-rule::-webkit-scrollbar{ display:none; }
.license-rule__label{ flex-shrink:0; }
.license-rule__label--end{ display:none; }
@media (min-width: 720px){
  .license-rule__label--end{ display:inline; }
}
.license-rule__sep{
  flex: 1 1 auto;
  height:1px;
  background:var(--ink);
  min-width:24px;
}
.license-rule__codes{
  display:flex;
  gap: clamp(.85rem, 2vw, 1.75rem);
  flex-shrink:0;
}
.license-rule__codes li{
  display:flex;
  align-items:baseline;
  gap:.35rem;
}
.license-rule__pfx{
  font-weight:600;
  color:var(--ink);
  font-size:.625rem;
  letter-spacing:.2em;
}
.license-rule__num{
  font-weight:500;
  color:var(--ink);
  font-size:.8125rem;
  letter-spacing:.04em;
  font-variant-numeric: tabular-nums;
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  max-width:var(--maxw);
  margin:0 auto;
  padding: clamp(2rem, 5vw, 4rem) var(--gutter) 0;
  position:relative;
}
.hero__grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items:start;
}
@media (min-width: 980px){
  .hero__grid{
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.95fr);
    gap: clamp(2rem, 4vw, 4rem);
    padding-top: 1rem;
  }
}

.hero__title{
  font-family:var(--serif);
  font-weight:500;
  font-size:var(--fs-display);
  line-height:var(--lh-display);
  letter-spacing: -0.025em;
  color:var(--ink);
  margin: 0 0 1.5rem;
  max-width: 18ch;
}
.hero__title em{
  font-style:italic;
  font-weight:500;
  color:var(--brass-deep);
  position:relative;
  white-space:nowrap;
}
.hero__title em::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-0.05em;
  height:2px;
  background:var(--brass-deep);
  opacity:.35;
}
.hero__year{
  font-family:var(--mono);
  font-weight:500;
  font-size:.78em;
  letter-spacing:-.01em;
  color:var(--ink);
  font-style:normal;
}

.hero__deck{
  font-family:var(--serif);
  font-style:italic;
  font-size: clamp(1.1rem, 0.95rem + 0.6vw, 1.3rem);
  line-height:1.5;
  color:var(--ink-soft);
  max-width:48ch;
  margin: 0 0 2rem;
}

.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-bottom: 2.5rem;
}

.hero__meta{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 2rem);
  border-top:1px solid var(--paper-rule);
  padding-top: 1.5rem;
  margin: 0;
}
.hero__meta > div{
  display:flex;
  flex-direction:column;
}
.hero__meta dt{
  font-family:var(--mono);
  font-size:.625rem;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--ink-muted);
  margin-bottom:.4rem;
}
.hero__meta dd{
  margin:0;
  line-height:1.1;
}
.hero__meta-num{
  font-family:var(--serif);
  font-weight:600;
  font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem);
  letter-spacing:-.02em;
  color:var(--ink);
}
.hero__meta-unit{
  font-family:var(--mono);
  font-size:.875rem;
  color:var(--ink-muted);
  margin-left:.15rem;
}
.hero__meta-sub{
  font-size:.78rem;
  color:var(--ink-soft);
  margin-top:.35rem !important;
  line-height:1.35;
}

/* ---------- Diamond Card ---------- */
.diamond-card{
  position:relative;
  background: linear-gradient(180deg, var(--brass-tint) 0%, var(--paper-2) 100%);
  border:1px solid var(--paper-rule);
  border-top: 2px solid var(--ink);
  padding: 1.5rem 1.5rem 1.75rem;
  display:flex;
  flex-direction:column;
  gap:1rem;
}
@media (min-width: 980px){
  .diamond-card{ padding: 1.75rem 1.75rem 2rem; }
}
.diamond-card__head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ink-muted);
}
.diamond-card__kicker{ font-weight:500; }
.diamond-card__seq{ color:var(--brass-deep); font-weight:600; }

.diamond-card__mark{
  width:84px;
  height:84px;
  margin: .25rem 0 .25rem;
}
.diamond-card__mark svg{ width:100%; height:100%; }

.diamond-card__title{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.35rem;
  line-height:1.2;
  letter-spacing:-.015em;
  color:var(--ink);
  margin:0;
}
.diamond-card__body{
  font-size:.95rem;
  color:var(--ink-soft);
  margin:0;
  line-height:1.55;
}
.diamond-card__perks{
  display:flex;
  flex-direction:column;
  gap:.55rem;
  border-top:1px solid var(--paper-rule);
  padding-top:1rem;
  margin-top:.25rem;
}
.diamond-card__perks li{
  display:flex;
  gap:.5rem;
  font-size:.875rem;
  color:var(--ink-soft);
  line-height:1.45;
}
.diamond-card__perk-mark{
  font-family:var(--mono);
  color:var(--brass-deep);
  font-weight:600;
  flex-shrink:0;
}
.diamond-card__foot{
  margin:0;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:.45rem;
  padding-top:.5rem;
  border-top:1px dashed var(--paper-rule-2);
}
.diamond-card__foot-mark{
  color:var(--brass-deep);
  font-size:.7rem;
}

/* ---------- Coverage strip (under hero) ---------- */
.coverage-strip{
  margin: clamp(2.5rem, 5vw, 4rem) 0 0;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--paper-rule);
  padding: 1rem 0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem 1.5rem;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ink-muted);
}
.coverage-strip__label{ font-weight:500; }
.coverage-strip__states{
  display:flex;
  gap:1.25rem;
  flex-wrap:wrap;
}
.coverage-strip__states li{
  display:inline-flex;
  align-items:baseline;
  gap:.5rem;
}
.coverage-strip__abbr{
  font-family:var(--serif);
  font-style:italic;
  font-weight:600;
  font-size:1.25rem;
  letter-spacing:-.02em;
  color:var(--ink);
  text-transform:none;
}
.coverage-strip__name{
  color:var(--ink-soft);
  font-size:var(--fs-micro);
}
.coverage-strip__rule{
  display:none;
  flex:1;
  height:1px;
  background:var(--paper-rule);
}
.coverage-strip__shop{
  margin-left:auto;
  color:var(--ink-soft);
}
@media (min-width: 880px){
  .coverage-strip__rule{ display:block; }
}

/* =========================================================
   SCOPE — numbered specification list
   ========================================================= */
.scope{
  max-width:var(--maxw);
  margin:0 auto;
  padding: clamp(4rem, 8vw, 7rem) var(--gutter);
}
.scope__head{
  max-width:64ch;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.spec-list{
  border-top:1px solid var(--ink);
}
.spec-list__item{
  display:grid;
  grid-template-columns: 56px 1fr;
  gap: 1rem 1.25rem;
  padding: 1.75rem 0;
  border-bottom:1px solid var(--paper-rule);
  position:relative;
  transition: background-color .3s var(--ease);
}
.spec-list__item:hover{
  background-color: var(--paper-2);
}
@media (min-width: 720px){
  .spec-list__item{
    grid-template-columns: 84px 1fr 1fr;
    gap: 2rem;
    padding: 2.25rem 1rem 2.25rem 0;
  }
}
.spec-list__no{
  font-family:var(--mono);
  font-weight:500;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
  color:var(--brass-deep);
  letter-spacing:-.02em;
  font-variant-numeric: tabular-nums;
  line-height:1;
  padding-top:.1em;
}
.spec-list__head{
  grid-column: 2 / -1;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:baseline;
  gap:.75rem;
  margin-bottom:.5rem;
}
@media (min-width: 720px){
  .spec-list__head{
    grid-column: 2 / 3;
    margin-bottom:0;
  }
}
.spec-list__title{
  font-family:var(--serif);
  font-weight:500;
  font-size:var(--fs-h3);
  line-height:1.25;
  letter-spacing:-.01em;
  color:var(--ink);
  margin:0;
  max-width:24ch;
}
.spec-list__tag{
  font-family:var(--mono);
  font-size:.6875rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--brass-deep);
  padding:.25rem .5rem;
  border:1px solid var(--brass-deep);
  border-radius:1px;
  white-space:nowrap;
}
.spec-list__desc{
  grid-column: 2 / -1;
  margin: 0 0 1rem;
  font-size:1rem;
  line-height:1.6;
  color:var(--ink-soft);
  max-width:50ch;
}
@media (min-width: 720px){
  .spec-list__desc{
    grid-column: 3 / 4;
    margin:0;
  }
}
.spec-list__meta{
  grid-column: 2 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:.4rem .9rem;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--ink-muted);
}
@media (min-width: 720px){
  .spec-list__meta{
    grid-column: 3 / 4;
    margin-top:1rem;
  }
}
.spec-list__meta li{
  position:relative;
}
.spec-list__meta li + li::before{
  content:"";
  position:absolute;
  left:-.5rem;
  top:.5em;
  width:3px; height:3px;
  background:var(--brass-deep);
  border-radius:50%;
}

/* =========================================================
   PROOF QUOTE
   ========================================================= */
.proof{
  background: var(--paper-2);
  border-top:1px solid var(--paper-rule);
  border-bottom:1px solid var(--paper-rule);
  padding: clamp(4rem, 8vw, 7rem) var(--gutter);
}
.proof__figure{
  max-width: 64ch;
  margin: 0 auto;
  text-align:center;
}
.proof__quote{
  margin:0;
  position:relative;
}
.proof__quote p{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size: clamp(1.4rem, 1rem + 1.6vw, 2.1rem);
  line-height:1.35;
  letter-spacing:-.015em;
  color:var(--ink);
  margin:0;
}
.proof__open, .proof__close{
  color:var(--brass-deep);
  font-family:var(--serif);
  font-size:1.1em;
  font-style:normal;
}
.proof__caption{
  margin-top: 2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:.5rem;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--ink-muted);
}
.proof__stars{
  color:var(--brass-deep);
  font-size:1rem;
  letter-spacing:.1em;
  margin-right:.25rem;
}
.proof__sep{ color:var(--paper-rule-2); }
.proof__name{ color:var(--ink); }
.proof__aggregate{
  margin: 2.5rem 0 0;
  padding-top:1.5rem;
  border-top:1px solid var(--paper-rule);
  font-family:var(--mono);
  font-size:var(--fs-small);
  color:var(--ink-soft);
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:.5rem;
  flex-wrap:wrap;
}
.proof__agg-num{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.5rem;
  color:var(--ink);
  letter-spacing:-.02em;
}
.proof__agg-of{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:var(--fs-micro);
  color:var(--ink-muted);
}

/* =========================================================
   COVERAGE — three states
   ========================================================= */
.coverage{
  max-width:var(--maxw);
  margin:0 auto;
  padding: clamp(4rem, 8vw, 7rem) var(--gutter);
}
.coverage__head{
  max-width:64ch;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}
.coverage__grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--paper-rule);
  border:1px solid var(--paper-rule);
}
@media (min-width: 760px){
  .coverage__grid{ grid-template-columns: repeat(3, 1fr); }
}

.state-card{
  background:var(--paper);
  padding: 1.75rem;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}
.state-card__head{
  display:grid;
  grid-template-columns: auto 1fr auto;
  gap:.75rem;
  align-items:baseline;
  padding-bottom:1rem;
  border-bottom:1px solid var(--paper-rule);
}
.state-card__abbr{
  font-family:var(--serif);
  font-style:italic;
  font-weight:600;
  font-size: clamp(2.4rem, 1.8rem + 2vw, 3.4rem);
  letter-spacing:-.04em;
  line-height:.9;
  color:var(--ink);
}
.state-card__name{
  font-family:var(--sans);
  font-weight:600;
  font-size:.95rem;
  color:var(--ink);
}
.state-card__pri{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--brass-deep);
}
.state-card--ma .state-card__pri{ color:var(--brass-deep); }
.state-card--nh .state-card__pri,
.state-card--me .state-card__pri{ color:var(--ink-muted); }

.state-card__cities{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:.4rem 1rem;
  font-size:.9rem;
  color:var(--ink-soft);
}
.state-card__cities li{
  padding-left:.85rem;
  position:relative;
}
.state-card__cities li::before{
  content:"";
  position:absolute;
  left:0; top:.65em;
  width:4px; height:1px;
  background: var(--ink-muted);
}

.coverage__note{
  margin: 2rem 0 0;
  font-family:var(--serif);
  font-style:italic;
  font-size:1.05rem;
  color:var(--ink-soft);
  text-align:center;
}
.coverage__note a{
  font-family:var(--mono);
  font-style:normal;
  font-weight:500;
  color:var(--ink);
  border-bottom:1px solid var(--brass-deep);
}

/* =========================================================
   ORIGIN
   ========================================================= */
.origin{
  max-width:var(--maxw);
  margin:0 auto;
  padding: clamp(4rem, 8vw, 7rem) var(--gutter);
  border-top:1px solid var(--paper-rule);
}
.origin__head{
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.origin__lede{
  font-family:var(--serif);
  font-size: clamp(1.4rem, 1.1rem + 1vw, 1.8rem);
  font-weight:400;
  line-height:1.35;
  letter-spacing:-.01em;
  color:var(--ink);
  max-width:36ch;
  margin: 0 0 2.5rem;
}
.origin__lede strong{
  font-family:var(--mono);
  font-weight:500;
  letter-spacing:-.01em;
  font-size:.92em;
}
.origin__cols{
  display:grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-bottom: clamp(3rem, 5vw, 4.5rem);
}
@media (min-width: 820px){
  .origin__cols{ grid-template-columns: repeat(3, 1fr); gap:3rem; }
}
.origin__col h3{
  font-family:var(--serif);
  font-weight:600;
  font-size: 1.15rem;
  line-height:1.3;
  letter-spacing:-.01em;
  color:var(--ink);
  margin: 0 0 .75rem;
  padding-bottom:.75rem;
  border-bottom:1px solid var(--paper-rule-2);
}
.origin__col p{
  margin:0;
  font-size:.95rem;
  line-height:1.65;
  color:var(--ink-soft);
}
.origin__mono{
  font-family:var(--mono);
  font-weight:500;
  font-size:.92em;
  color:var(--ink);
  white-space:nowrap;
}

/* ---------- Ledger ---------- */
.ledger{
  display:grid;
  grid-template-columns: 1fr;
  border-top: 2px solid var(--ink);
  margin:0;
}
.ledger__row{
  display:grid;
  grid-template-columns: minmax(140px, 30%) 1fr;
  gap:1rem;
  align-items:baseline;
  padding: 1rem 0;
  border-bottom:1px solid var(--paper-rule);
}
.ledger__row dt{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--ink-muted);
}
.ledger__row dd{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap: .25rem 1rem;
}
.ledger__num{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.5rem;
  letter-spacing:-.02em;
  color:var(--ink);
  line-height:1;
}
.ledger__mono{
  font-family:var(--mono);
  font-weight:500;
  font-size:1.05rem;
  color:var(--ink);
  letter-spacing:.02em;
}
.ledger__text{
  font-family:var(--serif);
  font-size:1.05rem;
  color:var(--ink);
  font-weight:500;
}
.ledger__sub{
  font-size:.8rem;
  color:var(--ink-muted);
  font-family:var(--sans);
}

/* =========================================================
   CONTACT — dark editorial panel
   ========================================================= */
.contact{
  background: var(--ink-deep);
  color: var(--paper);
  padding: clamp(4rem, 8vw, 7rem) 0;
  position:relative;
}
.contact::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:6px;
  background: linear-gradient(90deg, var(--brass-deep) 0 30%, var(--paper) 30% 36%, var(--brass-deep) 36% 100%);
  opacity:.25;
}
.contact__grid{
  max-width:var(--maxw);
  margin:0 auto;
  padding: 0 var(--gutter);
  display:grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 980px){
  .contact__grid{
    grid-template-columns: 1fr minmax(360px, 1fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items:start;
  }
}
.contact__deck{
  font-family:var(--serif);
  font-style:italic;
  font-size: 1.2rem;
  line-height:1.5;
  color: oklch(82% 0.014 245);
  max-width:48ch;
  margin: 0 0 2.5rem;
}
.contact__channels{
  display:flex;
  flex-direction:column;
  gap:0;
  border-top:1px solid oklch(35% 0.020 245);
}
.contact__channels li{
  display:grid;
  grid-template-columns: 110px 1fr auto;
  gap:1rem;
  padding: 1.25rem 0;
  border-bottom:1px solid oklch(28% 0.020 245);
  align-items:baseline;
}
.contact__label{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color: oklch(64% 0.014 245);
}
.contact__value{
  font-family:var(--serif);
  font-style:normal;
  font-size:1.25rem;
  color: var(--paper);
  font-weight:500;
}
a.contact__value{
  font-family:var(--mono);
  letter-spacing:-.01em;
  font-weight:500;
  font-size:1.35rem;
  transition: color .2s var(--ease);
}
a.contact__value:hover{ color: var(--brass); }
.contact__value--addr{
  font-style:normal;
  font-size:1rem;
  line-height:1.4;
}
.contact__note{
  font-family:var(--mono);
  font-size:.6875rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color: oklch(70% 0.014 245);
}

/* ---------- Quote form ---------- */
.quote-form{
  background: var(--paper);
  color: var(--ink);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.quote-form__head{
  grid-column: 1 / -1;
  padding-bottom:1rem;
  border-bottom: 1px solid var(--paper-rule);
  margin-bottom:.25rem;
}
.quote-form__step{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--brass-deep);
}
.quote-form__title{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.4rem;
  margin: .5rem 0 .3rem;
  letter-spacing:-.015em;
}
.quote-form__deck{
  font-size:.9rem;
  color:var(--ink-soft);
  margin:0;
}
.quote-form__field{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  grid-column: 1 / -1;
}
@media (min-width: 540px){
  .quote-form__field{ grid-column: span 1; }
  .quote-form__field--wide{ grid-column: 1 / -1; }
}
.quote-form__field label{
  font-family:var(--mono);
  font-size:.6875rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--ink-muted);
  display:flex;
  justify-content:space-between;
}
.quote-form__opt{
  font-style:italic;
  letter-spacing:0;
  text-transform:none;
  color:var(--ink-muted);
}
.quote-form__field input,
.quote-form__field select,
.quote-form__field textarea{
  font: inherit;
  font-family:var(--sans);
  font-size: 1rem;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--paper-rule-2);
  border-radius:1px;
  padding: .75rem .85rem;
  transition: border-color .2s var(--ease), background-color .2s var(--ease);
  width:100%;
}
.quote-form__field input:focus,
.quote-form__field select:focus,
.quote-form__field textarea:focus{
  outline:none;
  border-color:var(--ink);
  background: var(--paper-2);
}
.quote-form__field textarea{ resize:vertical; min-height: 90px; }
.quote-form button{
  grid-column: 1 / -1;
  margin-top:.5rem;
}
.quote-form__ok{
  grid-column: 1 / -1;
  font-family:var(--serif);
  font-style:italic;
  color: var(--brass-deep);
  margin: 0;
}
.quote-form__legal{
  grid-column: 1 / -1;
  font-size:.8rem;
  color:var(--ink-muted);
  text-align:center;
  margin:0;
}
.quote-form__legal a{
  font-family:var(--mono);
  color:var(--ink);
  border-bottom:1px solid var(--brass-deep);
}

/* =========================================================
   COLOPHON / FOOTER
   ========================================================= */
.colophon{
  background:var(--paper);
  border-top: 6px solid var(--ink);
  padding: clamp(3rem, 6vw, 5rem) var(--gutter) 2rem;
}
.colophon__top{
  max-width:var(--maxw);
  margin:0 auto;
  display:grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 820px){
  .colophon__top{
    grid-template-columns: minmax(260px, 1.2fr) 2fr;
    gap: 4rem;
  }
}
.colophon__name{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.6rem;
  letter-spacing:-.015em;
  margin:0;
  color:var(--ink);
}
.colophon__tagline{
  font-family:var(--serif);
  font-style:italic;
  color:var(--ink-soft);
  margin:.5rem 0 0;
  max-width:36ch;
}
.colophon__cols{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media (min-width: 640px){
  .colophon__cols{ grid-template-columns: repeat(4, 1fr); }
}
.colophon__col-h{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ink-muted);
  margin: 0 0 .75rem;
}
.colophon__addr,
.colophon__cov,
.colophon__hours{
  font-family:var(--serif);
  font-style:normal;
  font-size:.95rem;
  color:var(--ink);
  line-height:1.5;
  margin:0;
}
.colophon__phone{
  font-family:var(--mono);
  font-weight:600;
  font-size:1.05rem;
  color:var(--ink);
  display:block;
}
.colophon__phone:hover{ color: var(--brass-deep); }
.colophon__hours{
  font-style:italic;
  color:var(--ink-soft);
  margin-top:.25rem;
}
.colophon__creds{
  display:flex;
  flex-direction:column;
  gap:.35rem;
  font-family:var(--mono);
  font-size:.8125rem;
  color:var(--ink);
  font-variant-numeric: tabular-nums;
}
.colophon__creds li{
  display:flex;
  gap:.5rem;
}
.colophon__creds span{
  color: var(--brass-deep);
  font-weight:600;
  font-size:.6875rem;
  letter-spacing:.2em;
  width: 2.2em;
}

.colophon__rule{
  max-width:var(--maxw);
  margin: 2.5rem auto 1.25rem;
  height:1px;
  background: var(--paper-rule);
}
.colophon__base{
  max-width:var(--maxw);
  margin: 0 auto;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.5rem 1.5rem;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--ink-muted);
}
.colophon__built a{
  color:var(--ink);
  border-bottom: 1px solid var(--brass-deep);
  padding-bottom:1px;
}
.colophon__built a:hover{ color:var(--brass-deep); }

/* =========================================================
   MOBILE STICKY CTA
   ========================================================= */
.mobile-cta{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:50;
  padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom, 0));
  background: oklch(98% 0.004 240 / .85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--paper-rule);
}
.mobile-cta__call{
  display:flex;
  align-items:center;
  gap:.75rem;
  background: var(--ink);
  color: var(--paper);
  padding: .85rem 1rem;
  border-radius: 2px;
  position:relative;
}
.mobile-cta__icon{
  width: 18px; height: 18px;
  flex-shrink:0;
}
.mobile-cta__icon svg{ width:100%; height:100%; }
.mobile-cta__txt{
  display:flex;
  flex-direction:column;
  line-height:1.1;
  flex:1;
}
.mobile-cta__top{
  font-size:.625rem;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-family:var(--mono);
  color: oklch(82% 0.014 245);
}
.mobile-cta__num{
  font-family:var(--mono);
  font-weight:600;
  font-size:1rem;
  letter-spacing:-.005em;
}
.mobile-cta__badge{
  font-family:var(--mono);
  font-size:.6875rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.16em;
  color: var(--ink);
  background: var(--brass);
  padding: .25rem .5rem;
  border-radius:1px;
}

@media (min-width: 820px){
  .mobile-cta{ display:none; }
}

/* =========================================================
   Focus styles
   ========================================================= */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline: 2px solid var(--brass-deep);
  outline-offset: 2px;
}

/* =========================================================
   Reduced motion
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  html{ scroll-behavior:auto; }
}

/* =========================================================
   Print
   ========================================================= */
@media print{
  .mobile-cta, .primary-nav, .quote-form{ display:none; }
  body{ background:#fff; color:#000; }
}
