/* Murfreesboro Foundation Repairs v2.2 (finish QA). Charcoal on limestone, clay for CTAs only. Source: gen/styles.src.css (build copies to styles.v22.css). */
@font-face{font-family:"Fraunces";src:url(/assets/fonts/fraunces-roman-var-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-var-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
/* Metric-matched fallbacks. Inter vs Arial measured from the shipped subset; Fraunces vs Georgia estimated (Georgia not on the build box). */
@font-face{font-family:"Fraunces Fallback";src:local("Georgia");size-adjust:110%;ascent-override:88.9%;descent-override:23.2%;line-gap-override:0%}
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("Liberation Sans");size-adjust:109.4%;ascent-override:88.6%;descent-override:22%;line-gap-override:0%}

:root{
  --paper:#F6F3EE;--paper:oklch(96.5% 0.007 80.7);
  --wash:#ECE8E1;--wash:oklch(93.2% 0.010 81.8);
  --charcoal:#1F1F1F;--charcoal:oklch(23.9% 0 0);
  --body:#2B2B29;--body:oklch(28.8% 0.004 106.6);
  --muted:#5C5A55;--muted:oklch(46.8% 0.008 88.7);
  --ink:#1E2E26;--ink:oklch(28.4% 0.026 162.4);
  --green:#2F4A3A;--green:oklch(38.2% 0.043 157.6);
  --clay:#9C4A2F;--clay:oklch(50.8% 0.117 38.7);
  --clay-deep:#8E3F2B;--clay-deep:oklch(46.8% 0.112 35.3);
  --clay-hover:#7A3624;--clay-hover:oklch(42.1% 0.100 35.9);
  --clay-light:#D9A58F;--clay-light:oklch(76.5% 0.069 44.0);
  --concrete:#C9C6BD;--concrete:oklch(82.6% 0.013 91.5);
  --line:rgb(31 31 31/.14);--line-ink:rgb(246 243 238/.16);
  --font-display:"Fraunces","Fraunces Fallback",Georgia,serif;
  --font-sans:"Inter","Inter Fallback",Arial,system-ui,sans-serif;
  --font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --fs-display:clamp(2.6rem,1.6rem + 4.2vw,5.25rem);
  --fs-h1:clamp(2.25rem,1.5rem + 2.4vw,3.5rem);
  --fs-h2:clamp(1.75rem,1.2rem + 2vw,3rem);
  --fs-h3:clamp(1.25rem,1.05rem + .7vw,1.6rem);
  --fs-lead:clamp(1.125rem,1.02rem + .45vw,1.35rem);
  --fs-body:1.0625rem;--fs-small:.875rem;--fs-micro:.72rem;
  --lh-body:1.6;--lh-tight:1.05;
  /* Text measure: ~68 average characters per line. Inter's "0" (the ch unit) is wide, so a literal 68ch reads as ~82 characters; 36em is the calibrated 68. */
  --measure:36em;
  --s-1:.25rem;--s-2:.5rem;--s-3:1rem;--s-4:1.5rem;--s-5:2rem;--s-6:3rem;--s-7:4.5rem;
  --s-section:clamp(4rem,2rem + 6vw,8rem);
  --gutter:clamp(1.25rem,.5rem + 2vw,2rem);
  --container:1240px;--radius:2px;--header-h:64px;--bar-h:56px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip} /* safety net; clip does not break position:sticky */
html{font-synthesis:none;font-optical-sizing:auto;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}
body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--body);background:var(--paper);-webkit-font-smoothing:antialiased}
img,svg,picture{display:block;max-width:100%;height:auto}
h1,h2,h3,.display{overflow-wrap:break-word;font-family:var(--font-display);font-weight:500;line-height:var(--lh-tight);letter-spacing:-.015em;color:var(--charcoal);font-variation-settings:"SOFT" 0,"WONK" 0;text-wrap:balance;margin:0}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2);line-height:1.1}h3{font-size:var(--fs-h3);line-height:1.2;letter-spacing:-.01em}
p,ul,ol,dl{margin:0}
p,li,dd{text-wrap:pretty}
p{max-width:var(--measure)}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{color:var(--clay)}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
.s-ink :focus-visible{outline-color:var(--clay-light)}
.tel,.price,td,.spec dd,.idx,.cost{font-variant-numeric:tabular-nums lining-nums}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip:focus{position:fixed!important;left:1rem;top:1rem;width:auto;height:auto;clip:auto;z-index:200;background:var(--charcoal);color:#fff;padding:.75rem 1rem}
.container{width:min(100% - 2*var(--gutter),var(--container));margin-inline:auto}
section{padding-block:var(--s-section)}
.s-paper{background:var(--paper)}.s-wash{background:var(--wash)}
.s-ink{background:var(--ink);color:var(--paper)}
.s-ink h2,.s-ink h3{color:var(--paper)}
.mt-3{margin-top:var(--s-4)}
.eyebrow,.section-mark,.mono{display:block;font:500 var(--fs-micro)/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s-3)}
.s-ink .eyebrow,.s-ink .section-mark{color:var(--concrete)}
.lead{font-size:var(--fs-lead);line-height:1.5;color:var(--body);margin-top:var(--s-3)}
.src,.spec-src,.caption{font-size:var(--fs-small);color:var(--muted);margin-top:var(--s-3)}
.src a,.spec-src a{color:var(--charcoal)}
.updated{font-size:var(--fs-small);color:var(--muted);margin-top:var(--s-3)}

/* Header (U10). Announcement bar removed in v2.5. */
.site-header{position:sticky;top:0;z-index:50;background:rgb(246 243 238/.94);backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.site-header .container{display:flex;align-items:center;gap:var(--s-5);min-height:var(--header-h)}
.logo{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--charcoal);flex:0 1 auto;min-width:0}
.logo .mark{width:30px;height:30px}
.logo .txt{font:600 1.1rem/1.1 var(--font-display);letter-spacing:-.01em}
#primary-nav{display:flex;gap:var(--s-4);margin-left:auto}
#primary-nav a{font:500 .95rem/1 var(--font-sans);color:var(--body);text-decoration:none;padding-block:.5rem;border-bottom:1px solid transparent}
#primary-nav a:hover{color:var(--charcoal);border-bottom-color:var(--charcoal)}
#primary-nav a[aria-current="page"]{color:var(--charcoal);border-bottom-color:var(--clay)}
.header-actions{display:flex;align-items:center;gap:var(--s-4)}
.header-call{font:600 .95rem/1 var(--font-sans);color:var(--charcoal);text-decoration:none;white-space:nowrap}
.header-cta{min-height:42px!important;padding:0 1.1rem!important;font-size:.92rem!important}
#nav-toggle{display:none;min-height:44px;min-width:44px;font:600 .9rem/1 var(--font-sans);background:transparent;color:var(--charcoal);border:1px solid var(--charcoal);border-radius:var(--radius);padding:.6rem .9rem;cursor:pointer}
@media (max-width:1099px){.btn.header-cta{display:none}}
@media (max-width:999px){
  #nav-toggle{display:inline-block}
  #primary-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:var(--s-2) var(--gutter) var(--s-4)}
  #primary-nav.open{display:flex}
  #primary-nav a{padding:.9rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .header-actions{margin-left:auto}
}
@media (max-width:420px){.logo .txt{font-size:.95rem;line-height:1.05}.site-header .container{gap:var(--s-3)}.header-call{font-size:.9rem}}
.logo .mark{flex:none}

/* Breadcrumbs */
.breadcrumbs{font-size:var(--fs-small);color:var(--muted);padding-top:var(--s-5)}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs [aria-current]{color:var(--charcoal)}

/* Buttons (U3): no shadow, no lift */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:52px;padding:0 1.5rem;border-radius:var(--radius);font:600 1rem/1 var(--font-sans);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.btn-primary{background:var(--clay-deep);color:#fff}
.btn-primary:hover{background:var(--clay-hover);color:#fff}
.btn-secondary{background:transparent;color:var(--charcoal);border-color:var(--charcoal)}
.btn-secondary:hover{background:var(--charcoal);color:var(--paper)}
.s-ink .btn-secondary{color:#fff;border-color:rgb(255 255 255/.5)}
.text-link{color:var(--charcoal);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
.text-link:hover{color:var(--clay)}
.s-ink .text-link{color:var(--paper)}
.s-ink .text-link:hover{color:var(--clay-light)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-5);margin-top:var(--s-5)}
.referral-line{font-size:var(--fs-small);color:var(--muted);margin-top:var(--s-4);max-width:56ch}

/* Photo slots: neutral tone until the real file lands (no drawn scenes) */
.photo-slot{position:relative;width:100%;background:linear-gradient(160deg,#DCD7CE 0%,#CFCBC2 55%,#C3BFB6 100%);overflow:hidden}
.photo-slot-label{position:absolute;left:14px;bottom:12px;font:500 var(--fs-micro)/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#4A4843}
.photo-slot--art{aspect-ratio:var(--ar)}
@media (max-width:767px){.photo-slot--art{aspect-ratio:var(--ar-m)}}

/* Figures and plates */
.plate{margin:0}
.plate picture,.plate img{width:100%;height:auto}
.plate figcaption,.ba figcaption,.diagram figcaption,.sym figcaption{display:flex;justify-content:space-between;gap:var(--s-3);font-size:var(--fs-small);color:var(--muted);padding-top:.75rem;border-top:1px solid var(--line);margin-top:.75rem}
.tag-illus{font:500 var(--fs-micro)/1.4 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.plate:has(.photo-slot) .tag-illus{display:none}
.sym figcaption,.ba figcaption{align-items:baseline}
.plate--crop-crack img{aspect-ratio:16/10;object-fit:cover;object-position:62% 45%}

/* Home hero (U1) */
.hero--photo{position:relative;isolation:isolate;padding:0;min-height:min(80svh,760px);display:grid;align-items:end;background:var(--charcoal);overflow:hidden}
.hero--photo .hero-media,.hero--photo .hero-media img,.hero--photo .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;z-index:-1}
/* v2.6 R25 hero clip: same box, fit and position as the poster img; hidden until it is really playing (7.2). */
.hero--photo .hero-video{opacity:0;transition:opacity .2s linear;pointer-events:none;background:transparent}
.hero--photo .hero-video.on{opacity:1}
.hero-vbtn{position:absolute;right:var(--gutter);bottom:18px;z-index:2;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgb(246 243 238/.5);border-radius:50%;background:rgb(20 20 18/.62);color:#fff;cursor:pointer}
.hero-vbtn[hidden]{display:none}
.hero-vbtn:hover{background:rgb(20 20 18/.8)}
.hero-vbtn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.hero-vbtn::before{content:"";width:12px;height:14px;background:linear-gradient(90deg,currentColor 0 4px,transparent 4px 8px,currentColor 8px)}
.hero-vbtn.is-paused::before{width:0;height:0;margin-left:3px;background:none;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent currentColor}
.hero--photo .photo-slot.hero-media{aspect-ratio:auto;background:radial-gradient(120% 90% at 72% 38%,#46443F 0%,#2B2B29 45%,#1F1F1F 100%)}
.hero--photo .photo-slot-label{left:auto;right:var(--gutter);bottom:18px;color:rgb(246 243 238/.62)}
.hero--photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgb(20 20 18/.68) 0%,rgb(20 20 18/.62) 40%,rgb(20 20 18/0) 74%)}
.hero--photo .hero-copy{position:relative;padding-block:clamp(3rem,8vw,7rem);color:#fff}
.hero--photo h1{font-size:var(--fs-display);max-width:13ch;color:#fff;margin-bottom:var(--s-5);letter-spacing:-.025em}
.hero--photo .eyebrow{color:#fff}
.hero-tag{position:absolute;right:var(--gutter);top:18px;color:rgb(246 243 238/.8)}
.hero--photo:has(.photo-slot) .hero-tag{display:none}
@media (max-width:767px){
  /* v2.3 hero fix: photo shown whole at the top (4:5, no crop), copy anchored under the crack (crack ends ~73% down = ~91vw; copy starts at 98vw),
     bottom-only scrim. Photo bottom (mulch/grass) fades into charcoal behind the copy. */
  .hero--photo{min-height:0;aspect-ratio:auto;align-items:start}
  .hero--photo .hero-media{inset:0 0 auto 0;height:auto;aspect-ratio:4/5}
  .hero--photo .hero-media img{height:100%;aspect-ratio:4/5;object-position:50% 0;-webkit-mask-image:linear-gradient(#000 84%,transparent);mask-image:linear-gradient(#000 84%,transparent)}
  .hero--photo .hero-video{inset:0 0 auto 0;height:auto;aspect-ratio:4/5;object-position:50% 0;-webkit-mask-image:linear-gradient(#000 84%,transparent);mask-image:linear-gradient(#000 84%,transparent)}
  /* bottom-right of the visible photo, above the copy (starts at 98vw) and right of the crack's lower end */
  .hero-vbtn{right:12px;bottom:auto;top:calc(98vw - 72px)}
  .hero--photo::after{inset:calc(98vw - 72px) 0 0 0;background:linear-gradient(180deg,rgb(20 20 18/0) 0,rgb(20 20 18/.74) 72px,rgb(20 20 18/.9) 100%)}
  .hero--photo .hero-copy{padding-block:98vw var(--s-6)}
  .hero-tag{top:12px;padding:3px 6px;background:rgb(20 20 18/.62);color:#fff;border-radius:2px}
}
.hero-answer{padding-block:clamp(2.5rem,1.5rem + 4vw,5rem)}
.hero-answer .container{display:grid;gap:var(--s-5)}
.hero-answer .answer{font:400 clamp(1.25rem,1rem + .9vw,1.6rem)/1.45 var(--font-display);color:var(--charcoal);max-width:44ch;letter-spacing:-.01em}
@media (min-width:1000px){.hero-answer .container{grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:var(--s-7);align-items:end}}
.hero-answer-meta p{margin-top:var(--s-3)}
.hero-answer-meta p:first-child{margin-top:0}

/* Inner and town heroes (U2) */
.page-hero{padding-block:var(--s-6) var(--s-section)}
.page-hero .container{display:grid;gap:var(--s-6);align-items:start}
.page-hero h1{margin-bottom:var(--s-4);text-wrap:balance}
.page-hero .answer{font-size:var(--fs-lead);line-height:1.5;color:var(--body);max-width:56ch}
@media (min-width:1000px){
  .page-hero.has-plate .container{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--s-7);align-items:center}
  .hero-v2 .hero-plate{order:-1}
  .hero-v3 .container{grid-template-columns:1fr!important}
  .hero-v3 .hero-text{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:var(--s-7);align-items:end}
  .hero-v3 .hero-text h1{grid-column:1}.hero-v3 .hero-text>*:not(h1):not(.eyebrow){grid-column:2}
  .hero-v4 .hero-plate{margin-inline-end:calc((100vw - min(100vw - 2*var(--gutter), var(--container))) / -2)}
  .hero-v4 .hero-plate figcaption{padding-inline-end:var(--gutter)}
}
.page-hero:not(.has-plate) .hero-text{max-width:60rem}

/* Trust strip */
.trust{padding-block:0}
.trust ul{list-style:none;padding:var(--s-5) 0;margin:0;display:grid;gap:var(--s-4);border-block:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.trust li{font:500 1rem/1.4 var(--font-sans);color:var(--charcoal)}
.trust li span{display:block;font:500 var(--fs-micro)/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}

/* Explainer + facts */
.explainer{display:grid;gap:var(--s-6)}
@media (min-width:1000px){.explainer{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:var(--s-7);align-items:start}}
.facts-list{list-style:none;padding:0;margin-top:var(--s-5)}
.facts-list li{padding:var(--s-4) 0;border-top:1px solid var(--line)}
.facts-list strong{display:block;font:500 1.6rem/1.15 var(--font-display);color:var(--charcoal);margin-bottom:.35rem;font-variant-numeric:lining-nums}
.facts-list .src{display:block;margin-top:.4rem}

/* Diagram (U11) */
.diagram{margin:0}
.diagram svg{width:100%;height:auto;background:var(--paper);border:1px solid var(--line)}
.diagram text{font:500 12px var(--font-sans);fill:#1F1F1F}
.diagram text.lbl-light{fill:#F6F3EE}

/* Section heads and rows */
.sec-head{max-width:46rem;margin-bottom:var(--s-6)}
@media (min-width:1000px){.sec-head.offset{margin-left:calc(100% / 12 * 5)}}
.rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.rows li{border-bottom:1px solid var(--line)}
.row{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.25rem var(--s-4);padding:var(--s-4) 0;text-decoration:none;color:var(--body);transition:background-color .15s}
.row:hover{color:var(--body);background:rgb(31 31 31/.025)}
.row .idx{font:500 var(--fs-micro)/1.6 var(--font-mono);letter-spacing:.1em;color:var(--muted)}
.row .name{font:500 var(--fs-h3)/1.2 var(--font-display);color:var(--charcoal)}
.row:hover .name{color:var(--clay)}
.row .meaning{grid-column:2;color:var(--muted);font-size:1rem}
.row .cost{grid-column:2;font-size:var(--fs-small);color:var(--charcoal);font-weight:500}
@container (min-width:760px){
  .row{grid-template-columns:4.5rem minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);align-items:baseline}
  .row .meaning,.row .cost{grid-column:auto}.row .cost{text-align:right}
}
.rows{container-type:inline-size}
@media (max-width:599px){
  .row{grid-template-columns:1fr;gap:.3rem}
  .row .meaning,.row .cost{grid-column:1}
  .row .idx{margin-bottom:.15rem}
}

/* Before/after slider (U4) */
.ba{margin:0;container-type:inline-size}
.ba-frame{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--wash)}
.ba-layer{position:absolute;inset:0}
.ba-layer picture,.ba-layer img,.ba-layer .photo-slot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;aspect-ratio:auto!important}
.ba-before{clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.ba-before .photo-slot{background:linear-gradient(160deg,#CFCAC0,#BDB9AF)}
.ba-before .photo-slot-label{left:14px}.ba-after .photo-slot-label{left:auto;right:14px}
.ba-handle{position:absolute;inset-block:0;left:var(--pos,50%);width:1px;background:#fff;pointer-events:none}
.ba-handle{width:2px;translate:-1px 0;box-shadow:0 0 0 1px rgb(31 31 31/.12)}
.ba-handle::after{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;translate:-50% -50%;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F1F1F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E") center/20px no-repeat;border:1px solid rgb(31 31 31/.18);box-shadow:0 1px 4px rgb(31 31 31/.25)}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;touch-action:pan-y;margin:0;z-index:2}
.ba-range:focus-visible~.ba-handle::after{outline:2px solid var(--clay);outline-offset:2px}
.ba-label{position:absolute;top:12px;z-index:1;font:600 .8rem/1 var(--font-sans);font-variant-caps:all-small-caps;letter-spacing:.06em;color:#fff;background:rgb(31 31 31/.68);padding:.4rem .55rem;border-radius:var(--radius)}
.ba-label.l{left:12px}.ba-label.r{right:12px}
.ba-wrap{display:grid;gap:var(--s-6)}
@media (min-width:1000px){.ba-wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--s-7);align-items:center}}

/* Symptom grid (U11) */
.sym h3{margin-bottom:var(--s-4)}
.sym-grid{display:grid;gap:var(--s-4)}
.sym-grid figure{margin:0}
@media (min-width:860px){.sym-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.sym-grid{grid-auto-flow:column;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--s-2)}.sym-grid figure{scroll-snap-align:start}}

/* CTA band (ink, max twice per page with footer) */
.cta-band .container{display:grid;gap:var(--s-5);align-items:end}
@media (min-width:1000px){.cta-band .container{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--s-7)}.cta-band .actions{justify-content:flex-end}}
.cta-line{color:var(--concrete);font-size:var(--fs-lead);margin-top:var(--s-3)}
.cta-band .actions{margin-top:0}

/* Eras, steps */
.era-list{display:grid;gap:0;border-top:1px solid var(--line)}
@media (min-width:860px){.era-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5);border-top:0}}
.era{padding:var(--s-4) 0;border-bottom:1px solid var(--line)}
@media (min-width:860px){.era{border-bottom:0;border-top:1px solid var(--charcoal)}}
.era .when{display:block;font:500 var(--fs-micro)/1.2 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin-bottom:var(--s-3)}
.era h3{margin-bottom:var(--s-2)}
.era p{font-size:1rem;color:var(--muted)}
.sticky-steps{display:grid;gap:var(--s-6)}
@media (min-width:1000px){.sticky-steps{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:var(--s-7)}.sticky-steps .media{position:sticky;top:calc(var(--header-h) + var(--s-5));align-self:start}}
.sticky-steps .media h2{margin-bottom:var(--s-5)}
.steps{list-style:none;padding:0;margin:0}
.steps li{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:var(--s-4);padding:var(--s-5) 0;border-top:1px solid var(--line)}
.steps .n{font:500 var(--fs-micro)/1.8 var(--font-mono);letter-spacing:.1em;color:var(--muted)}
.steps h3{margin-bottom:var(--s-2)}

/* Town list */
.town-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));border-top:1px solid var(--line)}
.town-list li{border-bottom:1px solid var(--line)}
.town-list a{display:grid;gap:.2rem;padding:var(--s-3) var(--s-3) var(--s-3) 0;text-decoration:none}
.town-list strong{font:500 1.15rem/1.2 var(--font-display);color:var(--charcoal)}
.town-list a:hover strong{color:var(--clay)}
.town-list span{font-size:var(--fs-small);color:var(--muted)}
@media (max-width:599px){.town-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s-4)}.town-list strong{font-size:1.05rem}}

/* FAQ (U5): open list on most pages, exclusive accordion on /faq/ */
.faq-layout{display:grid;gap:var(--s-5)}
@media (min-width:1000px){.faq-layout{grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--s-7)}.faq-sticky{position:sticky;top:calc(var(--header-h) + var(--s-5));align-self:start}}
.qa-list{container-type:inline-size;border-bottom:1px solid var(--line)}
.qa{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:var(--gutter);padding-block:var(--s-5);border-top:1px solid var(--line)}
.qa h3{font-size:var(--fs-h3);margin:0}
.qa p{color:var(--body)}
@container (max-width:620px){.qa{grid-template-columns:1fr}.qa p{margin-top:var(--s-3)}}
.faq-acc{border-bottom:1px solid var(--line)}
.faq-acc details{border-top:1px solid var(--line)}
.faq-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) 0;font:500 var(--fs-h3)/1.25 var(--font-display);color:var(--charcoal)}
.faq-acc summary::-webkit-details-marker{display:none}
.faq-acc summary::after{content:"+";font:300 1.6rem/1 var(--font-sans);color:var(--muted);transition:transform .2s var(--ease);flex:none}
.faq-acc details[open] summary::after{transform:rotate(45deg)}
.faq-acc summary:hover{color:var(--clay)}
.faq-acc details p{padding-bottom:var(--s-5)}
.faq-with-detail{display:grid;gap:var(--s-6)}
@media (min-width:1000px){.faq-with-detail{grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--s-7);align-items:start}.faq-with-detail .qa{grid-template-columns:1fr}.faq-with-detail .qa p{margin-top:var(--s-3)}}

/* FAQ topic index in the /faq/ hero */
.faq-index ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--charcoal)}
.faq-index li{border-bottom:1px solid var(--line)}
.faq-index a{display:flex;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) 0;font:500 var(--fs-h3)/1.2 var(--font-display);color:var(--charcoal);text-decoration:none}
.faq-index a:hover{color:var(--clay)}
.faq-index .n{font:500 var(--fs-micro)/1.6 var(--font-mono);letter-spacing:.1em;color:var(--muted)}

/* Prose, content grid, aside */
.content-grid{display:grid;gap:var(--s-6)}
.content-grid>*,.explainer>*,.faq-layout>*,.sticky-steps>*,.ba-wrap>*,.end-form .container>*{min-width:0}
@media (min-width:1000px){.content-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);column-gap:var(--s-7)}.content-grid aside{position:sticky;top:calc(var(--header-h) + var(--s-5));align-self:start}}
.prose{max-width:var(--measure)}
@media (min-width:1000px){.prose p,.prose li,.town-sec .blk>p:not([class]),.town-sec .detail p:not([class]){font-size:1.125rem;line-height:1.65}}
.prose>*+*{margin-top:var(--s-4)}
.prose h2{margin-top:var(--s-6)}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:var(--s-5)}
.prose ul,.prose ol{padding-left:1.2rem}
.prose li+li{margin-top:.5rem}
.prose li::marker{color:var(--clay)}
.prose .ba,.prose .diagram,.prose .sym{margin-block:var(--s-6)}
.prose .diagram{max-width:40rem;margin-inline:0}
.aside-card,.panel,.guide-card{border:1px solid var(--line);border-radius:var(--radius);padding:var(--s-5);background:var(--paper)}
.s-paper .aside-card,.s-paper .panel{background:var(--wash);border-color:transparent}
.aside-card h2{font-size:1.6rem;margin-bottom:var(--s-3)}
.aside-card p{margin-bottom:var(--s-4)}
.aside-card .btn{width:100%;margin-bottom:var(--s-3)}
aside .panel{margin-top:var(--s-4)}
.panel p{font-size:var(--fs-small);color:var(--body)}
.end-form .panel{margin-top:var(--s-5);background:var(--paper)}
.table-wrap{overflow-x:auto;border-top:1px solid var(--charcoal)}
.data-table{width:100%;border-collapse:collapse;font-size:1rem}
.data-table th{text-align:left;font:500 var(--fs-micro)/1.2 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:1px solid var(--line)}
.data-table td{padding:var(--s-3) var(--s-3) var(--s-3) 0;border-bottom:1px solid var(--line)}
.data-table td:last-child{text-align:right;color:var(--charcoal);font-weight:500}

/* Spec strip (U11) */
.spec{container-type:inline-size;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:0;border-top:1px solid var(--charcoal);margin:0}
.spec>div{padding:var(--s-4) var(--s-4) var(--s-4) 0;border-bottom:1px solid var(--line)}
.spec dt{min-height:2.6em;font:500 var(--fs-micro)/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem}
.spec dd{margin:0;font:500 1.25rem/1.25 var(--font-display);color:var(--charcoal)}
.spec>div:last-child{grid-column:span 2}
@container (max-width:339px){.spec>div:last-child{grid-column:auto}}
.town-sec>.container>.detail{max-width:40rem}
@media (min-width:1000px){.town-sec>.container>.detail{margin-left:calc(100% / 12 * 5)}}
.town-sec .diagram,.town-sec .sym,.town-sec .ba{max-width:60rem}

/* Forms */
.end-form .container,.end-form-inline{display:grid;gap:var(--s-6)}
@media (min-width:1000px){.end-form .container,.end-form-inline{grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:var(--s-7);align-items:start}}
.lead-form{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.25rem,1rem + 2vw,2.5rem)}
.lead-form h2{font-size:1.75rem}
.form-kicker{font-size:var(--fs-small);color:var(--muted);margin:.4rem 0 var(--s-4)}
.form-row{display:grid;gap:var(--s-3) var(--s-4);container-type:inline-size}
@media (min-width:600px){.form-row{grid-template-columns:1fr 1fr}}
.lead-form label{display:grid;gap:.35rem;font-size:var(--fs-small);font-weight:500;color:var(--charcoal)}
.lead-form input:not([type=checkbox]),.lead-form select{font:400 1rem/1.3 var(--font-sans);color:var(--charcoal);background:#fff;border:1px solid #7F7C75;border-radius:var(--radius);min-height:48px;padding:.6rem .75rem;width:100%}
.lead-form input:focus-visible,.lead-form select:focus-visible{outline:2px solid var(--clay);outline-offset:1px;border-color:var(--charcoal)}
.lead-form input:user-invalid,.lead-form select:user-invalid{border-color:var(--clay-deep)}
.lead-form .consent{display:flex;gap:.65rem;align-items:flex-start;font-weight:400;font-size:.8rem;line-height:1.5;color:var(--muted);margin:var(--s-4) 0}
.lead-form .consent input{margin-top:.2rem;width:18px;height:18px;accent-color:var(--clay-deep);flex:none}
.lead-form .btn{width:100%}
.form-note{font-size:var(--fs-small);color:var(--muted);margin-top:var(--s-3)}
.form-error{color:var(--clay-deep)!important}

/* About this guide */
.about-guide{padding-block:var(--s-6)}
.guide-card{max-width:52rem;background:transparent}
.h-small{font-size:1.35rem;margin-bottom:var(--s-3)}
.guide-card p{font-size:.98rem}

/* Footer (U7) */
.site-footer{padding-block:var(--s-7) var(--s-6);font-size:.95rem}
.site-footer a{color:var(--paper);text-decoration-color:rgb(246 243 238/.35)}
.site-footer a:hover{color:var(--clay-light)}
.footer-grid{display:grid;gap:var(--s-6)}
@media (min-width:860px){.footer-grid{grid-template-columns:4fr 5fr 3fr}.f-disclosure,.f-bottom{grid-column:1/-1}}
.brand-line{font:500 1.5rem/1.2 var(--font-display);color:var(--paper);margin-bottom:var(--s-3)}
.f-brand p{color:var(--concrete)}
.f-brand address{font-style:normal;margin-top:var(--s-4);color:var(--paper);line-height:1.7}
.f-towns ul,.f-site ul{list-style:none;padding:0;margin:0}
.f-towns ul{columns:2;column-gap:var(--s-5)}
.f-towns li,.f-site li{break-inside:avoid;padding-block:.2rem}
.f-towns a,.f-site a{text-decoration:none}
.site-footer a,.f-towns a{display:inline-block;padding-block:.3rem}
.site-footer .panel{background:transparent;border-color:var(--line-ink)}
.site-footer .panel p{color:var(--concrete)}
.site-footer .panel .mono{color:var(--concrete)}
.f-bottom{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);max-width:none;padding-top:var(--s-4);border-top:1px solid var(--line-ink);font-size:var(--fs-small);color:var(--concrete)}
.f-bottom .centik-credit{margin-left:auto}

/* Mobile call bar + orb slot (U8). Bar space reserved from first paint. */
.mobile-cta{display:none}
@media (max-width:767px){
  body{padding-bottom:calc(var(--bar-h) + env(safe-area-inset-bottom))}
  .mobile-cta{position:fixed;inset:auto 0 0 0;z-index:100;display:grid;grid-template-columns:2fr 1fr;height:calc(var(--bar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--charcoal);transform:translateY(100%);visibility:hidden;transition:transform .2s var(--ease),visibility 0s .2s}
  .mobile-cta.visible{transform:none;visibility:visible;transition:transform .2s var(--ease)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:48px;font:600 1rem/1 var(--font-sans);color:#fff;text-decoration:none}
  .mobile-cta .call{background:var(--clay-deep)}.mobile-cta .quote{background:var(--green)}
  .mobile-cta.single{grid-template-columns:1fr}
  .orb-slot{position:fixed;right:16px;bottom:calc(var(--bar-h) + env(safe-area-inset-bottom) + 12px);width:56px;height:56px;z-index:101;pointer-events:none}
}
/* Desktop: orb on top. Mobile: bottom above call bar. */
@media (min-width:768px){.orb-slot{position:fixed;right:24px;top:136px;bottom:auto;width:56px;height:56px;z-index:101;pointer-events:none}}
/* Pulsating orb — welding-site halo (amber → clay for MFR palette) */
.mfr-orb{position:relative;width:56px;height:56px;padding:0;border:2px solid #C46A3A;border-radius:50%;background:#1F1F1F;box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:pointer;pointer-events:auto;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}
.mfr-orb:focus-visible{outline:3px solid #C46A3A;outline-offset:3px}
.mfr-orb-disc{display:block;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff6e8 0%,#E8A06A 42%,#C46A3A 100%);box-shadow:inset 0 0 6px rgba(255,255,255,.35)}
.mfr-orb::before{content:"";position:absolute;inset:-2px;border-radius:50%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(196,106,58,1) 62%,rgba(196,106,58,.55) 82%,rgba(196,106,58,0) 100%);box-shadow:0 0 16px 6px rgba(196,106,58,.75),0 0 0 2px rgba(160,80,40,.85);animation:mfrOrbHalo 2.8s ease-out infinite}
@keyframes mfrOrbHalo{0%{transform:scale(1);opacity:1}55%{opacity:.7}100%{transform:scale(1.9);opacity:0}}
/* Quick answers label — arrow points at the orb (to the right) */
.mfr-orb-lbl{position:fixed;z-index:10049;display:inline-flex;align-items:center;min-height:40px;max-width:calc(100vw - 100px);padding:8px 14px;border-radius:20px;background:#1F1F1F;color:#fff;border:2px solid #C46A3A;font:600 14px/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:pointer;-webkit-tap-highlight-color:transparent}
.mfr-orb-lbl::after{content:"";position:absolute;right:-7px;top:50%;width:10px;height:10px;margin-top:-6px;background:#1F1F1F;border-top:2px solid #C46A3A;border-right:2px solid #C46A3A;transform:rotate(45deg)}
@media (max-width:767px){
  .mfr-orb-lbl{right:84px;bottom:calc(var(--bar-h) + env(safe-area-inset-bottom) + 20px)}
}
@media (min-width:768px){
  .mfr-orb-lbl{right:92px;top:148px;bottom:auto}
}
@media (prefers-reduced-motion:reduce){
  .mfr-orb-lbl{transition:none}
  .mfr-orb::before{animation:none}
}

/* Motion (U9): media only, opacity only. Text never fades. */
@keyframes fade-in{from{opacity:.001}to{opacity:1}}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .reveal-media{animation:fade-in 1ms linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
  }
  @supports not (animation-timeline:view()){
    html.js .reveal-media{opacity:.001;transition:opacity .28s var(--ease)}
    html.js .reveal-media.in{opacity:1}
  }
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}
  .site-header{view-transition-name:site-header}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 2026+ layer: render skipping below the fold */
.town-list,.faq-section{content-visibility:auto;contain-intrinsic-size:auto 800px}
.town-sec+.town-sec{padding-top:0}
.town-sec.s-wash+.town-sec,.town-sec+.town-sec.s-wash{padding-top:var(--s-section)}
@media print{.site-header,.mobile-cta,.lead-form,.orb-slot,.mfr-orb,.mfr-orb-lbl{display:none}}
