/* Mustard Construction — site system
   Brand guide 2026-10-22: Cream / Saddle Brown / Mustard / Apricot / Brick / Paper.
   League Spartan (display, labels) + Public Sans (body). No other faces. */

@font-face{font-family:"League Spartan";src:url("../fonts/league-spartan-500.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"League Spartan";src:url("../fonts/league-spartan-600.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"League Spartan";src:url("../fonts/league-spartan-700.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-400.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-600.ttf") format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/public-sans-700.ttf") format("truetype");font-weight:700;font-display:swap}

:root{
  /* Palette (Webflow variable names in comments) */
  --cream:#FAEED1;   /* Cream, ~45% */
  --brown:#6B4430;   /* Brown / Saddle Brown, ~25% */
  --mustard:#F5CC5E; /* Mustard, ~15% */
  --apricot:#E8925A; /* Apricot (was Burnt Orange), ~5% */
  --brick:#B84C43;   /* Brick (was Rust), ~5% */
  --paper:#FBF7E9;   /* Paper, ~5% */

  --rule:rgba(107,68,48,.32);
  --rule-strong:var(--brown);
  --rule-on-dark:rgba(250,238,209,.3);

  --display:"League Spartan",system-ui,sans-serif;
  --body:"Public Sans",system-ui,sans-serif;

  --gutter:clamp(16px,4vw,56px);
  --max:1360px;
  --rail:clamp(120px,12vw,176px);
  --section-y:clamp(64px,9vw,128px);
  --offer-h:68px;
  --stripe:10px;      /* fixed px so bands and gaps stay exactly equal */
  --stripe-gap:5px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--cream);color:var(--brown);font:400 1.0625rem/1.68 var(--body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
@media (min-width:1024px){body{font-size:1.125rem}}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;margin:0;line-height:1;text-wrap:balance}
p{margin:0 0 1em}p:last-child{margin-bottom:0}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--brick);outline-offset:3px}
.on-dark :focus-visible,.on-brick :focus-visible{outline-color:var(--mustard)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:var(--gutter);top:-100px;z-index:100;background:var(--brown);color:var(--cream);padding:.75em 1.25em;font:600 .8rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.skip-link:focus{top:12px}

/* ---------- Type roles ---------- */
.display{font-size:clamp(3.4rem,9.2vw,8.25rem);line-height:.9;letter-spacing:-.025em}
.h-section{font-size:clamp(2.5rem,5.6vw,5rem);line-height:.95;letter-spacing:-.02em}
.h-sub{font-size:clamp(1.5rem,2.4vw,2.125rem);line-height:1.08;letter-spacing:-.01em}
.label{font:600 .78rem/1.2 var(--display);letter-spacing:.18em;text-transform:uppercase}
.lede{font-size:clamp(1.125rem,1.5vw,1.3rem);line-height:1.55;max-width:34em}
.dot,.done{color:inherit}
.on-dark .dot,.on-brick .dot,.on-dark .done,.on-brick .done{color:var(--mustard)}

/* Editorial link */
.text-link{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--brick)}
.on-dark .text-link{text-decoration-color:var(--mustard)}
.text-link:hover{text-decoration-color:currentColor}

/* ---------- Buttons ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:1.05em 1.6em .9em;border:2px solid transparent;border-radius:0;font:700 .84rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.button-mustard{background:var(--mustard);color:var(--brown)}
.button-mustard:hover{background:var(--cream)}
.button-cream{background:var(--cream);color:var(--brown)}
.button-cream:hover{background:var(--mustard)}
.nowrap{white-space:nowrap}
.button-brown{background:var(--brown);color:var(--cream)}
.button-brown:hover{background:var(--brick)}
.button-brick{background:var(--brick);color:var(--cream)}
.button-brick:hover{background:var(--brown)}
.button-outline{border-color:currentColor;background:transparent}
.button-outline:hover{background:var(--brown);color:var(--cream);border-color:var(--brown)}

/* ---------- Stripes: mustard, apricot, brick; equal bands, small equal gaps ---------- */
.stripes{display:grid;gap:var(--stripe-gap)}
.stripes i{display:block;height:var(--stripe)}
.stripes i:nth-child(1){background:var(--mustard)}
.stripes i:nth-child(2){background:var(--apricot)}
.stripes i:nth-child(3){background:var(--brick)}
.stripes-cap{padding-block:var(--stripe-gap)}

/* ---------- Surfaces ---------- */
.bg-cream{background:var(--cream)}
.bg-paper{background:var(--paper)}
.bg-mustard{background:var(--mustard)}
.bg-brown{background:var(--brown);color:var(--cream)}
.bg-brick{background:var(--brick);color:var(--cream)}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}

/* Indexed rail: number + label beside the section body */
.indexed{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);column-gap:clamp(16px,3vw,48px)}
.rail{display:flex;flex-direction:column;gap:.6rem;padding-top:.35rem}
.rail-number{font:700 1.75rem/1 var(--display);letter-spacing:-.01em}
.rail-label{font:600 .72rem/1.35 var(--display);letter-spacing:.16em;text-transform:uppercase;max-width:15ch}
.rail::after{content:"";width:28px;height:2px;background:currentColor;opacity:.5;margin-top:.4rem}
@media (max-width:767px){
  .indexed{grid-template-columns:1fr}
  .rail{flex-direction:row;align-items:baseline;gap:.75rem;margin-bottom:1.5rem;padding-top:0}
  .rail-number{font-size:1.25rem}
  .rail-label{max-width:none}
  .rail::after{display:none}
}

/* ---------- Offer bar ---------- */
.offer{background:var(--mustard);color:var(--brown)}
.offer .wrap{display:flex;align-items:center;gap:clamp(14px,2.4vw,32px);min-height:var(--offer-h);padding-block:8px}
.offer .offer-logo{flex:none;width:clamp(144px,16vw,156px)}
.offer-link{flex:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;min-width:0}
.offer-copy{font:600 1rem/1.25 var(--display)}
.offer-copy span{display:block;font:400 .9rem/1.3 var(--body)}
.offer-cta{flex:none;font:700 .74rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;border-bottom:2px solid var(--brick);padding-bottom:4px}
.offer-link:hover .offer-cta{border-color:var(--brown)}
.menu-button{flex:none;display:inline-flex;align-items:center;gap:.6em;min-height:44px;padding:.9em 1.1em .8em;background:var(--brown);color:var(--cream);border:0;font:700 .74rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.menu-button:hover{background:var(--brick)}
@media (max-width:640px){
  .offer .wrap{flex-wrap:wrap;justify-content:space-between;row-gap:6px;padding-block:10px 12px}
  .offer-link{order:3;flex-basis:100%;padding-top:8px;border-top:1px solid rgba(107,68,48,.3)}
  .offer-copy{font-size:.95rem}.offer-copy span{display:inline;font-size:.85rem;margin-left:.4em}
  .offer-cta{font-size:.66rem}
}

/* ---------- Masthead ---------- */
.masthead{position:sticky;top:0;z-index:50;background:var(--cream)}
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}
.wordmark{display:block;width:clamp(150px,16vw,210px);aspect-ratio:2000/640;background:var(--brown);-webkit-mask:url("../logo/wordmark-mask.png") center/contain no-repeat;mask:url("../logo/wordmark-mask.png") center/contain no-repeat}
.primary-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px)}
.primary-nav a:not(.button){font:600 .8rem/1 var(--display);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding-block:.6em .45em;border-bottom:2px solid transparent}
.primary-nav a:not(.button):hover,.primary-nav a[aria-current="page"]{border-color:var(--brick)}
.primary-nav .button{min-height:44px;padding:.9em 1.2em .78em;font-size:.74rem}
.masthead .menu-button{display:none}
.masthead .stripes{--stripe:4px;--stripe-gap:3px;position:absolute;inset:100% 0 auto 0;background:var(--cream);padding-bottom:var(--stripe-gap)}
@media (max-width:959px){.primary-nav{display:none}.masthead .menu-button{display:inline-flex}}

/* Home: masthead slides in after the hero; offer bar holds the menu until then */
.masthead{position:fixed;inset:0 0 auto 0;transform:translateY(calc(-100% - 40px));visibility:hidden;transition:transform .32s cubic-bezier(.2,.7,.2,1),visibility 0s linear .32s}
.header-revealed .masthead{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.2,.7,.2,1)}
@media (prefers-reduced-motion:reduce){.masthead,.header-revealed .masthead{transition:none}}

/* ---------- Menu panel ---------- */
.site-menu{position:fixed;inset:0;z-index:90;display:grid;grid-template-rows:auto 1fr auto;background:var(--brown);color:var(--cream);overflow:auto}
.site-menu[hidden]{display:none}
.site-menu .menu-top{display:flex;justify-content:space-between;align-items:center;min-height:clamp(88px,10vw,112px)}
.site-menu .menu-top .wordmark{width:clamp(190px,22vw,290px)}
.site-menu .wordmark{background:var(--cream)}
.site-menu > .wrap{width:100%}
.menu-close{display:grid;place-items:center;width:48px;height:48px;margin-right:-10px;padding:0;background:none;border:0;color:var(--cream);font:400 2.75rem/1 var(--body);cursor:pointer}
.menu-close:hover{color:var(--mustard)}
.site-menu nav{display:grid;align-content:start;gap:4px;padding-block:clamp(24px,5vh,56px)}
.site-menu nav a{font:700 clamp(1.85rem,4.6vw,3.6rem)/1.08 var(--display);letter-spacing:-.02em;text-decoration:none;padding-block:.1em;text-wrap:balance}
.site-menu nav a:hover{color:var(--mustard)}
.site-menu .menu-foot{display:flex;flex-wrap:wrap;gap:12px 32px;padding-block:24px 40px;border-top:1px solid var(--rule-on-dark)}
.site-menu .menu-foot a{font:700 1.05rem/1.4 var(--display);text-decoration:underline;text-decoration-color:var(--mustard);text-decoration-thickness:2px;text-underline-offset:5px}
.site-menu .menu-foot a:hover{color:var(--mustard)}
body.menu-open{overflow:hidden}

/* ---------- Home hero (brown) ---------- */
.hero{position:relative;overflow:hidden}
.hero .wrap{position:relative;z-index:2}
.hero-copy{padding-block:clamp(40px,5vw,72px)}
.hero-actions{margin-top:clamp(24px,3.5vw,40px)}
.hero-bleed{position:relative;aspect-ratio:1536/760;--art-anchor:1;overflow:visible}
.hero-bleed{container-type:size}
/* The frame "covers" the hero at the art's own aspect ratio, anchored right. Vertically it
   sits 40% of the way down the overflow, so on wide, short heroes the ridge stays below the
   headline and the foreground is what gets cropped. Art and stripes share the frame, so
   they always line up. */
.art-frame{--ar:calc(1536 / 1024);position:absolute;right:0;width:max(100cqw,100cqh * var(--ar));aspect-ratio:var(--ar);
  top:calc((100cqh - max(100cqw / var(--ar),100cqh)) * var(--art-anchor,.4))}
.art-frame img,.art-frame .diagonal{position:absolute;inset:0;width:100%;height:100%}
.art-frame img{z-index:1;
  /* Clip the art (not the stripes) to the visible box so hills never rise into the copy */
  clip-path:inset(calc((max(100cqw / var(--ar),100cqh) - 100cqh) * var(--art-anchor,.4)) 0 0 0)}
.only-narrow{display:none}
@media (max-width:767px){.only-wide{display:none}.only-narrow{display:inline-flex}}
@media (min-width:900px){
  .hero{min-height:clamp(520px,58vw,780px)}
  .hero-bleed{position:absolute;inset:0;aspect-ratio:auto;z-index:0;--art-anchor:.62}
}
.wide-lede{max-width:none}
.section-intro{margin:-.5rem 0 clamp(28px,3.5vw,44px);max-width:none}
.hero h1{color:var(--cream)}
.hero .lede{margin-top:clamp(28px,3.5vw,44px)}
.hero-art{position:relative;align-self:stretch;margin-right:calc(-1 * var(--gutter));min-height:clamp(380px,40vw,600px);overflow:hidden}
.hero-art img{position:absolute;right:0;bottom:0;width:100%;height:100%;object-fit:cover;object-position:right bottom;z-index:1}
@media (min-width:1360px){.hero-art{margin-right:calc((100vw - var(--max)) / -2 - var(--gutter))}}

/* Diagonal stripe accent, sits behind transparent sky of the art */
.diagonal{position:absolute;inset:0;width:100%;height:100%;z-index:0}
@media (max-width:899px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-copy{padding-block:40px 8px}
  .hero-art{margin-inline:calc(-1 * var(--gutter));min-height:0;aspect-ratio:3/2}
}

/* ---------- Rundown band (mustard, full bleed) ---------- */
.rundown{background:var(--brown);color:var(--cream);transition:background-color .45s ease,color .45s ease}
.rundown .address-entry{border-color:var(--cream);transition:border-color .45s ease}
.rundown .address-entry .button{background:var(--brown);color:var(--cream)}
.header-revealed .rundown{background:var(--mustard);color:var(--brown)}
.header-revealed .rundown .address-entry{border-color:var(--brown)}
.rundown .address-entry .button:hover{background:var(--brick);color:var(--cream)}
.rundown :focus-visible,.rundown .address-entry:focus-within{outline-color:var(--mustard)}
.header-revealed .rundown :focus-visible,.header-revealed .rundown .address-entry:focus-within{outline-color:var(--brick)}
@media (prefers-reduced-motion:reduce){.rundown,.rundown .address-entry{transition:none}}
.rundown .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;padding-block:clamp(48px,6vw,88px)}
.rundown h2{font-size:clamp(1.45rem,3.3vw,3.25rem);line-height:.98;letter-spacing:-.02em;white-space:nowrap}
.rundown-copy p{margin-top:1rem;max-width:30em}
.address-entry{position:relative;display:flex;border:2px solid var(--brown);background:var(--cream)}
.address-entry input{flex:1;min-width:0;min-height:64px;padding:0 1.1rem;border:0;background:transparent;color:var(--brown);font:500 1.125rem/1 var(--body)}
.address-entry input::placeholder{color:var(--brown);opacity:.62}
.address-entry input:focus{outline:none}
.address-entry:focus-within{outline:3px solid var(--brick);outline-offset:3px}
.address-entry .button{min-height:64px;min-width:96px}
.form-caption{margin-top:.9rem}
.form-status{margin-top:1rem;padding:1rem 1.1rem;border-left:4px solid var(--brick);background:var(--cream);font-size:.98rem}
.form-status[hidden]{display:none}
@media (max-width:899px){.rundown .wrap{grid-template-columns:1fr}}
/* Light variant for cream heroes: cream with brown text until the visitor scrolls */
.rundown-light{background:var(--cream);color:var(--brown)}
.rundown-light .address-entry{border-color:var(--brown)}
.rundown-light :focus-visible,.rundown-light .address-entry:focus-within{outline-color:var(--brick)}

/* ---------- Service index (ruled disclosures) ---------- */
.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(24px,3vw,40px)}
.service-index{border-top:2px solid var(--rule-strong)}
.service{border-bottom:1px solid var(--rule)}
.service-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}
.service-name{display:block;width:100%;padding:clamp(18px,2vw,26px) 0 clamp(14px,1.6vw,20px);background:none;border:0;text-align:left;font:700 clamp(1.35rem,2.6vw,2.25rem)/1.08 var(--display);letter-spacing:-.015em;cursor:pointer}
.service-name:hover{color:var(--brick)}
.service-actions{display:flex;align-items:center;gap:clamp(12px,2vw,28px)}
.toggle{display:grid;place-items:center;width:44px;height:44px;flex:none;background:transparent;border:2px solid var(--brown);cursor:pointer;font:700 1.35rem/1 var(--display)}
.toggle:hover,.toggle[aria-expanded="true"]{background:var(--mustard)}
.toggle span{transition:transform .2s;padding-top:3px}
.toggle[aria-expanded="true"] span{transform:rotate(45deg)}
.service-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding:4px 0 32px}
.service-panel[hidden]{display:none}
.service-panel .copy{max-width:none}
.service-panel .button{justify-self:end}
@media (max-width:767px){.service-panel .button{justify-self:start}}
@media (prefers-reduced-motion:reduce){.toggle span{transition:none}}

/* ---------- "Done." band ---------- */
.done-band{position:relative}
.done-band .stripes-cap{background:var(--brown)}
.done-band .wrap{padding-block:clamp(48px,7vw,96px)}
.done-band p.statement{font:700 clamp(2.4rem,6.4vw,6rem)/.95 var(--display);letter-spacing:-.025em;margin:0;text-wrap:balance}
.done-band p.statement .muted{color:var(--cream)}

/* ---------- Newspaper columns ---------- */
.columns-2{column-count:2;column-gap:clamp(28px,4vw,64px);column-rule:1px solid var(--rule)}
.columns-2 p{break-inside:avoid-column}
@media (max-width:767px){.columns-2{column-count:1}}
.kicker{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(24px,4vw,64px);align-items:start;padding-top:clamp(28px,3vw,40px);border-top:2px solid var(--rule-strong);margin-top:clamp(36px,4.5vw,56px)}
@media (max-width:899px){.kicker{grid-template-columns:1fr}}

/* Process: four ruled columns, all visible */
.process{margin-top:clamp(48px,6vw,88px)}
.process-title{margin-bottom:1.25rem}
.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--rule-strong)}
.step{padding:clamp(20px,2vw,28px) clamp(16px,2vw,28px) 0 0;display:flex;flex-direction:column;gap:.85rem}
.step + .step{padding-left:clamp(16px,2vw,28px);border-left:1px solid var(--rule)}
.step h3{font-size:clamp(1.75rem,2.8vw,2.5rem);letter-spacing:-.015em}
.step .copy{font-size:.98rem}
.on-dark .step + .step,.on-dark .on-dark .process-grid{border-color:var(--cream)}
@media (max-width:1023px){.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.step:nth-child(3){padding-left:0;border-left:0}.step:nth-child(n+3){margin-top:28px;border-top:1px solid var(--rule)}.on-dark .step:nth-child(n+3){border-top-color:var(--rule-on-dark)}}
@media (max-width:599px){.process-grid{grid-template-columns:1fr}.step + .step{padding-left:0;border-left:0;margin-top:28px;border-top:1px solid var(--rule)}.on-dark .step + .step{border-top-color:var(--rule-on-dark)}}

/* ---------- Testimonials ---------- */
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:2px solid var(--rule-strong)}
.quote{margin:0;padding:clamp(24px,2.4vw,32px) clamp(18px,2.2vw,32px) 0 0;display:flex;flex-direction:column}
.quote + .quote{padding-left:clamp(18px,2.2vw,32px);border-left:1px solid var(--rule)}
.quote::before{content:"\201C";display:block;height:.5em;margin-bottom:.15em;color:var(--brick);font:700 4.5rem/1 var(--display)}
.quote blockquote{margin:0 0 1.5rem;font-size:1.02rem}
.quote figcaption{margin-top:auto;padding-top:1rem;border-top:1px solid var(--rule)}
.quote figcaption strong{display:block;font:700 1.05rem/1.2 var(--display)}
.quote figcaption span{font-size:.9rem;opacity:.85}
@media (max-width:640px){.quotes{grid-template-columns:1fr}.quote + .quote{padding-left:0;border-left:0;margin-top:32px}}
/* Single pull quote (service pages) */
.pull-quote{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 clamp(16px,2vw,32px);border-top:2px solid var(--rule-strong);padding-top:clamp(24px,3vw,40px)}
.pull-quote::before{content:"\201C";color:var(--brick);font:700 clamp(5rem,10vw,9rem)/.8 var(--display)}
.pull-quote blockquote{margin:0;font:600 clamp(1.4rem,2.6vw,2.25rem)/1.22 var(--display);letter-spacing:-.01em;max-width:28em}
.pull-quote figcaption{grid-column:2;margin-top:1.5rem}
.pull-quote figcaption strong{font:700 1.05rem/1.2 var(--display)}
.pull-quote figcaption span{display:block;font-size:.92rem}

/* ---------- Closing (mustard block) ---------- */
.closing{position:relative;overflow:hidden}
.closing .wrap{position:relative;z-index:2;padding-block:var(--section-y) clamp(40px,5vw,72px)}
.closing h2{max-width:15ch}
.closing .closing-body{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem;max-width:36em;margin-top:clamp(24px,3vw,36px)}
.closing-art{position:absolute;right:0;bottom:0;width:min(58vw,880px);aspect-ratio:3/2;z-index:1;pointer-events:none}
.closing-art img{width:100%;height:100%;object-fit:cover;object-position:right bottom}
@media (max-width:1023px){.closing h2{max-width:none}.closing .wrap{padding-bottom:16px}.closing-art{position:relative;width:100%;aspect-ratio:3/1;margin-top:clamp(-100px,calc(-12vw + 28px),-32px)}}

/* ---------- Footer ---------- */
.site-footer{background:var(--brown);color:var(--cream)}
.footer-main{display:grid;grid-template-columns:minmax(330px,1.35fr) minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.1fr);gap:clamp(24px,3vw,48px);padding-block:clamp(48px,6vw,80px)}
.footer-brand{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:clamp(20px,2.5vw,36px);align-content:start}
.footer-brand > :not(.footer-mark){grid-column:2}
.footer-mark{grid-row:1 / span 3;width:72px;aspect-ratio:2000/1932;background:var(--cream);-webkit-mask:url("../logo/monogram-mask.png") center/contain no-repeat;mask:url("../logo/monogram-mask.png") center/contain no-repeat}
.footer-slogan{font:700 clamp(1.9rem,3.4vw,3rem)/.98 var(--display);letter-spacing:-.02em;margin-bottom:1rem}
.footer-area{font-size:.95rem;max-width:30em;opacity:.9}
.footer-contact{margin-top:1.5rem}
.footer-contact a{display:block;white-space:nowrap;font:700 1.05rem/1.4 var(--display);text-decoration:none;margin-bottom:.4rem}
.footer-contact a:hover,.footer-nav a:hover{color:var(--mustard)}
.footer-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.footer-nav a{text-decoration:none;font-size:.95rem}
.site-footer .label{display:block;margin-bottom:1rem;color:var(--mustard)}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;padding-block:22px 32px;border-top:1px solid var(--rule-on-dark);font-size:.82rem;opacity:.85}
@media (max-width:899px){.footer-main{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-brand{grid-column:1 / -1}}
@media (max-width:640px){.footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-nav[aria-label="Company"]{grid-column:1 / -1}}
@media (max-width:479px){.footer-brand{grid-template-columns:1fr}.footer-brand > :not(.footer-mark){grid-column:auto}.footer-mark{grid-row:auto;width:56px;margin-bottom:1.25rem}.footer-nav a{font-size:.9rem}}

/* ---------- Service page ---------- */
.service-hero{overflow:hidden}
.wrap.brief-bar{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-block:clamp(28px,3vw,40px) 0}
.brief-bar a{text-decoration:none;border-bottom:2px solid var(--brick);padding-bottom:3px}
.service-hero h1{font-size:clamp(2.5rem,9vw,6.5rem);line-height:.92;letter-spacing:-.025em;margin-top:clamp(28px,4vw,56px)}
.service-hero .lede{margin-top:clamp(20px,2.6vw,32px)}
.service-hero .hero-actions{margin-top:clamp(16px,3vh,32px)}
.service-hero-copy,.service-hero .brief-bar{position:relative;z-index:2}
/* Full-bleed art below the copy; its transparent sky slides up behind the last lines */
/* Original art (no mirrored strip). Overflow stays visible so the transparent sky and the
   stripes can rise above the box and run off the right edge instead of being cut flat. */
.hero-bleed.service-bleed{position:relative;inset:auto;z-index:0;--art-anchor:1;aspect-ratio:1536/700;overflow:visible;
  margin-top:calc(-1 * clamp(0px,7vw - 40px,90px))}
.action-band{border-top:1px solid var(--rule)}
.action-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding-block:clamp(28px,3vw,40px)}
.action-band p{margin:0;max-width:40em;font:600 clamp(1.1rem,1.6vw,1.35rem)/1.35 var(--display)}

/* Civic fact sheet: ruled information matrix */
.fact-sheet{margin:0;border-top:2px solid var(--rule-strong)}
.fact-row{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(16px,3vw,48px);padding-block:clamp(22px,2.6vw,36px);border-bottom:1px solid var(--rule)}
.fact-row dt{font:700 .8rem/1.3 var(--display);letter-spacing:.16em;text-transform:uppercase;padding-top:.35rem}
.fact-row dd{margin:0}
.fact-row dd p{max-width:42em}
.fact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,48px)}
.fact-list p{padding-block:.85rem;border-top:1px solid var(--rule);margin:0}
.fact-list p:nth-child(-n+2){border-top:0;padding-top:0}
.fact-list p.wide{grid-column:1 / -1}
.fact-row:last-child{border-bottom:0;padding-bottom:0}
.fact-list strong{display:block;font:700 1.08rem/1.25 var(--display);margin-bottom:.2rem}
@media (max-width:899px){.fact-row{grid-template-columns:1fr}.fact-list{grid-template-columns:1fr}.fact-list p:nth-child(2){border-top:1px solid var(--rule);padding-top:.85rem}}

.guarantee{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px clamp(24px,4vw,64px);padding-top:clamp(24px,3vw,32px);border-top:2px solid var(--mustard)}
.guarantee .h-sub{color:var(--mustard)}
@media (max-width:899px){.guarantee{grid-template-columns:1fr}}

.on-dark .h-section,.on-dark h2,.on-dark h3{color:var(--cream)}

/* Stripe divider between two light sections */
.divider{background:var(--cream)}
@media (max-width:767px){:root{--stripe:6px;--stripe-gap:3px}}

/* Landing: hero + Rundown fill exactly one screen below the offer banner (desktop/tablet) */
@media (min-width:900px) and (min-height:560px){
  .landing{display:flex;flex-direction:column;height:calc(100svh - var(--offer-h))}
  /* Service pages: title on top, art fills whatever height is left above the Snapshot */
  .landing .service-hero{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .landing .service-hero > .wrap{width:100%}
  .landing .service-hero h1{font-size:clamp(2.5rem,min(8vw,9.5vh),6.5rem);margin-top:clamp(16px,3.5vh,48px)}
  .landing .hero-bleed.service-bleed{flex:1 1 auto;min-height:0;aspect-ratio:auto;margin-top:calc(-1 * clamp(48px,17vh,180px));--art-anchor:.38}
  .landing .hero{flex:1 1 auto;min-height:0}
  .landing .hero-copy{padding-block:clamp(28px,6vh,64px) 0}
  .landing .hero h1{font-size:clamp(3rem,min(8.6vw,10.5vh),8.25rem)}
  .landing .hero-actions{margin-top:clamp(16px,3vh,36px)}
  .landing .rundown .wrap{padding-block:clamp(24px,4.5vh,64px)}
  .landing .rundown h2{font-size:clamp(1.6rem,min(3.3vw,5.4vh),3.25rem)}
}

/* Home: Mustard Process in brief — numbered circles joined by a rule */
.process-row{margin-top:clamp(48px,6vw,80px);display:grid;justify-items:center;text-align:center}
.process-row .process-title{margin-bottom:clamp(24px,3vw,36px)}
.psteps{list-style:none;margin:0;padding:0;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;position:relative}
.psteps::before{content:"";position:absolute;top:36px;left:12.5%;right:12.5%;height:2px;background:var(--rule)}
.pstep{position:relative;display:grid;justify-items:center;align-content:start;gap:.5rem}
.pstep-num{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--brown);color:var(--mustard);font:700 1.9rem/1 var(--display);padding-top:4px}
.pstep h3{margin-top:.6rem;font-size:clamp(1.35rem,2vw,1.75rem);letter-spacing:-.01em}
.pstep p{margin:0;font-size:.98rem;max-width:17em}
.process-row .button{margin-top:clamp(32px,4vw,48px)}
@media (max-width:767px){
  .process-row{justify-items:start;text-align:left}
  .psteps{grid-template-columns:1fr;gap:28px}
  .psteps::before{top:36px;bottom:36px;left:35px;right:auto;width:2px;height:auto}
  .pstep{grid-template-columns:72px minmax(0,1fr);justify-items:start;column-gap:20px;row-gap:.2rem;align-items:center}
  .pstep-num{grid-row:1 / span 2}
  .pstep h3{margin-top:0;align-self:end}
  .pstep p{align-self:start}
}
@media (min-width:1200px) and (min-height:560px){
  /* Wider screens scale the art up, so the ridge sits higher: pull it up less */
  .landing .hero-bleed.service-bleed{margin-top:calc(-1 * clamp(40px,10vh,120px))}
}

/* ---------- Inner pages ---------- */
.ruled-list{list-style:none;margin:0 0 1rem;padding:0;border-top:1px solid var(--rule)}
.ruled-list li{padding:.7rem 0;border-bottom:1px solid var(--rule);font:600 1.05rem/1.3 var(--display)}

/* Company: service area as a big newspaper index of towns */
.city-list{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(28px,4vw,64px);column-rule:1px solid var(--rule);border-top:2px solid var(--rule-strong)}
.city-list li{break-inside:avoid;border-bottom:1px solid var(--rule)}
.city-list a{display:flex;justify-content:space-between;align-items:baseline;padding:clamp(14px,1.6vw,20px) 0;text-decoration:none;font:700 clamp(1.4rem,2.6vw,2.25rem)/1.1 var(--display);letter-spacing:-.015em}
.city-list a::after{content:"\2192";font-size:.7em;opacity:.55}
.city-list a:hover{color:var(--brick)}
.area-more{margin-top:clamp(24px,3vw,36px)}
@media (max-width:599px){.city-list{columns:1}}

/* Consultation */
.consult-hero .wrap:not(.brief-bar){padding-block:clamp(20px,3vw,36px) clamp(32px,4vw,56px)}
.consult-hero .brief-bar,.service-hero .brief-bar{position:relative;z-index:2}
.consult-title{font-size:clamp(2.5rem,6vw,5.25rem);line-height:.92;letter-spacing:-.025em}
.consult-facts{margin:clamp(28px,4vw,48px) 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--rule-strong)}
.consult-facts > div{padding:16px 20px 0 0}
.consult-facts > div + div{padding-left:20px;border-left:1px solid var(--rule)}
.consult-facts dt{font:600 .74rem/1.3 var(--display);letter-spacing:.16em;text-transform:uppercase}
.consult-facts dd{margin:.4rem 0 0;font:700 clamp(1.25rem,2.2vw,1.9rem)/1.1 var(--display)}
@media (max-width:767px){.consult-facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}.consult-facts > div:nth-child(3){padding-left:0;border-left:0}}
.consult-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
@media (max-width:899px){.consult-grid{grid-template-columns:1fr}}
.consult-copy .h-sub{color:var(--cream)}
.consult-copy > p{margin-top:1.25rem;max-width:36em}
.consult-note{margin-top:1.5rem;font-size:.95rem;opacity:.9}
.psteps-stack{margin-top:clamp(28px,3vw,40px);grid-template-columns:1fr;gap:22px;text-align:left}
.psteps-stack::before{top:36px;bottom:36px;left:35px;right:auto;width:2px;height:auto;background:var(--rule-on-dark)}
.psteps-stack .pstep{grid-template-columns:72px minmax(0,1fr);justify-items:start;column-gap:20px;row-gap:.2rem;align-items:center}
.psteps-stack .pstep-num{grid-row:1 / span 2;background:var(--cream);color:var(--brown)}
.psteps-stack .pstep.is-now .pstep-num{background:var(--mustard)}
.psteps-stack .pstep h3{margin-top:0;align-self:end;color:var(--cream)}
.psteps-stack .pstep p{align-self:start;max-width:none}
/* Intake form: ruled cream panel on the brown field */
.intake{background:var(--cream);color:var(--brown);padding:clamp(24px,3vw,40px);border-top:8px solid var(--mustard);display:grid;gap:18px}
.intake :focus-visible{outline-color:var(--brick)}
.field{display:grid;gap:6px}
.field label{font:600 .74rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase}
.field label span{text-transform:none;letter-spacing:0;font-weight:400;opacity:.75}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:.7rem .85rem;border:2px solid var(--brown);border-radius:0;background:var(--paper);color:var(--brown);font:400 1rem/1.4 var(--body)}
.field input[type=file]{padding:.6rem;min-height:0}
.field small{font-size:.85rem;opacity:.85}
.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:599px){.field-pair{grid-template-columns:1fr}}
.intake .button{justify-self:start;margin-top:6px}
.intake .form-status{background:var(--paper)}
.faq .service-name{font-size:clamp(1.1rem,1.9vw,1.5rem)}

/* Compact hero: tools, FAQ, glossary */
.compact-hero{border-bottom:1px solid var(--rule)}
.compact-hero-body{padding-block:clamp(20px,3vw,36px) clamp(40px,5vw,64px)}
.compact-title{font-size:clamp(2.5rem,6.4vw,5.5rem);line-height:.92;letter-spacing:-.025em}
.compact-hero .lede{margin-top:clamp(18px,2.4vw,28px)}
.tool-form{margin-top:clamp(24px,3vw,40px);max-width:820px}
.tool-form .form-status p{margin:0 0 .6rem}
.status-actions{display:flex;flex-wrap:wrap;gap:8px 24px}

/* Facts with sources */
.fact-value{font:700 clamp(1.15rem,1.8vw,1.45rem)/1.25 var(--display);margin-bottom:.5rem}
.fact-source{margin-top:.6rem;font-size:.9rem}
/* Collapsible fact rows (area pages): bold answer visible, details on demand */
.fact-toggle .service-row{gap:16px}
.fact-toggle .fact-value{margin:0}
.fact-toggle .service-name{padding:0;font:700 clamp(1.15rem,1.8vw,1.45rem)/1.25 var(--display)}
.fact-panel{padding-top:.9rem}
.fact-panel[hidden]{display:none}
.closing-actions{display:flex;flex-wrap:wrap;gap:12px}
.button.is-pending{opacity:.55;cursor:not-allowed}
.fact-source a{font-weight:600;text-decoration-color:var(--brick);text-underline-offset:3px}
.fact-checked{margin-top:1.25rem;opacity:.8}
.small-print{font-size:.95rem}

/* Guides & Tools */
.tool-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:2px solid var(--rule-strong)}
.tool-row{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;padding:clamp(22px,2.6vw,32px) clamp(18px,2.4vw,32px) 0 0}
.tool-row + .tool-row{padding-left:clamp(18px,2.4vw,32px);border-left:1px solid var(--rule)}
.tool-row .button{margin-top:auto}
@media (max-width:767px){.tool-rows{grid-template-columns:1fr}.tool-row + .tool-row{padding-left:0;border-left:0;margin-top:28px;border-top:1px solid var(--rule)}}
.pending{font:600 .74rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase}
.calendar-list{list-style:none;margin:0 0 1.25rem;padding:0;border-top:1px solid var(--rule-on-dark)}
.calendar-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:.85rem 0;border-bottom:1px solid var(--rule-on-dark);font:700 1.1rem/1.3 var(--display)}
.guide-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(28px,4vw,64px);border-top:2px solid var(--rule-strong)}
.guide-row{padding:clamp(18px,2vw,26px) 0;border-bottom:1px solid var(--rule);display:grid;gap:.5rem;align-content:start}
.guide-row h3{font-size:clamp(1.3rem,2vw,1.65rem);letter-spacing:-.01em}
.guide-row p{margin:0}
@media (max-width:767px){.guide-rows{grid-template-columns:1fr}}
.more-links{list-style:none;margin:clamp(28px,3vw,40px) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 32px}
.more-links a{font:700 1.15rem/1.3 var(--display);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--brick)}
.link-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3vw,44px) clamp(28px,4vw,64px)}
.link-group ul{list-style:none;margin:.9rem 0 0;padding:0;border-top:2px solid var(--rule-strong)}
.link-group li{border-bottom:1px solid var(--rule);padding:.65rem 0;font-weight:600}
.link-group a{text-decoration:none}
.link-group a::after{content:" \2197";font-size:.85em;opacity:.6}
.link-group a:hover{color:var(--brick)}
@media (max-width:767px){.link-groups{grid-template-columns:1fr}}

/* Searchable lists: FAQ, glossary */
.filter-bar{margin-top:clamp(24px,3vw,36px);display:grid;gap:16px}
.search-entry{max-width:720px}
.search-entry input{min-height:56px}
.search-entry .button{min-height:56px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:40px;padding:.6em 1em .5em;border:2px solid var(--brown);background:transparent;color:var(--brown);font:600 .72rem/1 var(--display);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.chip:hover{background:var(--paper)}
.chip[aria-pressed="true"]{background:var(--brown);color:var(--cream)}
.filter-count{margin:0;opacity:.85}
.filter-empty{padding:clamp(20px,2.6vw,32px) 0;font-size:1.05rem}
[data-filter-item][hidden]{display:none}
.glossary-list .fact-row{grid-template-columns:minmax(0,17rem) minmax(0,1fr)}
.term-name{display:block;font:700 1.2rem/1.2 var(--display);letter-spacing:-.005em;text-transform:none}
.term-name a{text-decoration:none}
.term-name a:hover{color:var(--brick)}
.term-cat{display:block;margin-top:.5rem;font:600 .68rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase}
.glossary-list dd p{max-width:44em}
.glossary-list dd a,.faq .copy a{font-weight:600;text-decoration-color:var(--brick);text-underline-offset:3px}
.faq-sources{font-size:.9rem;opacity:.9}
@media (max-width:899px){.glossary-list .fact-row{grid-template-columns:1fr}}
.page-faq .filter-count,.page-glossary .filter-count{margin-bottom:1rem}

/* AB 38 Overview: split hero with a sample report */
.tool-hero{border-bottom:1px solid var(--rule)}
.tool-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);align-items:start;padding-block:clamp(20px,3vw,36px) clamp(40px,5vw,72px)}
.tool-sub{margin-top:clamp(14px,2vw,22px);font:600 clamp(1.1rem,1.7vw,1.4rem)/1.3 var(--display);letter-spacing:-.005em}
.tool-hero .tool-form{margin-top:clamp(22px,3vw,36px)}
.sample-report{position:relative;z-index:2;background:var(--paper);color:var(--brown);padding:clamp(22px,2.6vw,32px);border:2px solid var(--brown)}
.sample-label{color:var(--brick)}
.sample-address{margin-top:.75rem;font-size:clamp(1.35rem,2.2vw,1.85rem);line-height:1.1}
.sample-apn{margin:.5rem 0 0;font-size:.9rem;opacity:.85}
.sample-status{display:inline-block;margin-top:1rem;padding:.55em .8em .45em;background:var(--mustard);font:700 .74rem/1 var(--display);letter-spacing:.12em;text-transform:uppercase}
.sample-rows{margin:1.25rem 0 0;border-top:2px solid var(--brown)}
.sample-rows > div,.sample-qc > div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;border-bottom:1px solid var(--rule)}
.sample-rows > div{padding:.85rem 0}
.sample-rows dt{font-size:.98rem}
.sample-rows dd{margin:0;font:700 1.02rem/1.3 var(--display)}
.sample-qc-title{margin:1.4rem 0 .4rem;color:var(--brick)}
.sample-qc > div{padding:.45rem 0;font-size:.88rem}
.sample-qc dd{margin:0;font-weight:600}
.sample-qc > div:last-child{border-bottom:0}
.sample-next{margin:1.25rem 0 0;padding-top:1rem;border-top:2px solid var(--brown);font-size:.98rem}
.sample-report .button{margin-top:1rem}
.sample-notice-title{margin-top:1rem;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.15}
.sample-notice-body{margin-top:.75rem}
/* Hero art sits behind the copy column, sky transparent */
.tool-hero{position:relative;overflow:hidden}
.tool-hero > .wrap{position:relative;z-index:2}
.hero-bleed.tool-bleed{position:absolute;inset:auto 0 0 0;height:min(52%,clamp(300px,40vw,440px));z-index:0;--art-anchor:.4;overflow:visible}
.tool-bleed .diagonal{overflow:visible}
.tool-hero-grid{min-height:clamp(560px,62vw,760px)}
.tool-fineprint .columns-2{margin-top:clamp(20px,2.4vw,32px)}
@media (max-width:899px){.tool-hero-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:479px){.tool-form .address-entry{flex-wrap:wrap}.tool-form .address-entry input{flex-basis:100%}.tool-form .address-entry .button{flex:1}}
@media (max-width:899px){.hero-bleed.tool-bleed{position:relative;inset:auto;aspect-ratio:1536/700;margin-top:-40px}.tool-hero-grid{min-height:0}}

/* AB 38 report: collapsible rows */
.report-rows > .report-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px 16px;padding:.8rem 0;border-bottom:1px solid var(--rule)}
.report-row dt{font-size:.95rem;padding-top:.15rem}
.report-row dd{margin:0}
.report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.report-value{padding:0;background:none;border:0;text-align:left;font:700 1.02rem/1.3 var(--display);color:var(--brown);cursor:pointer}
.report-value:hover{color:var(--brick)}
.toggle-sm{width:30px;height:30px;font-size:1rem;flex:none}
.sample-rows .report-detail{grid-column:1 / -1;margin:0;padding:.9rem 1rem;background:var(--cream);font:400 .9rem/1.55 var(--body)}
.report-detail[hidden]{display:none}
.report-detail h5{margin:.9rem 0 .35rem;font:700 .72rem/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--brick)}
.report-detail h5:first-child{margin-top:0}
.report-detail p{margin:0 0 .6rem}
.report-detail .fact-source{font-size:.82rem}
.report-cta{margin-top:1.25rem;padding:18px 20px;background:var(--mustard)}
.report-cta h4{font:700 1.2rem/1.2 var(--display);margin-bottom:.5rem}
.report-cta p{font-size:.95rem}
.report-cta .button{margin-top:.25rem}
.email-overview{margin-top:1.25rem;padding-top:1.1rem;border-top:2px solid var(--brown);display:grid;gap:12px}
.email-overview .field input{min-height:46px}
.consent{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;font-size:.82rem;line-height:1.45}
.consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--brown)}
.consent-help{margin:-4px 0 0;font-size:.8rem;color:var(--brick);font-weight:600}
.email-overview .button{justify-self:start}

/* AB 38: maintenance requirements by zone */
.maintenance[hidden],.cta-band[hidden]{display:none}
.zone-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,4vw,64px);border-top:2px solid var(--rule-strong);margin-top:clamp(24px,3vw,36px)}
.zone-block{padding:clamp(18px,2vw,26px) 0;border-bottom:1px solid var(--rule)}
.zone-title{font-size:clamp(1.25rem,2vw,1.6rem);letter-spacing:-.01em;margin-bottom:.75rem}
.zone-list{margin:0;padding-left:1.1em;display:grid;gap:.5rem;font-size:.98rem}
.zone-list li::marker{color:var(--brick)}
.zone-sources{margin-top:clamp(28px,3vw,40px)}
.zone-sources ul{list-style:none;margin:.75rem 0 0;padding:0;columns:2;column-gap:clamp(28px,4vw,64px)}
.zone-sources li{break-inside:avoid;padding:.45rem 0;border-bottom:1px solid var(--rule);font-size:.92rem}
.zone-sources a{font-weight:600;text-decoration-color:var(--brick);text-underline-offset:3px}
@media (max-width:767px){.zone-grid{grid-template-columns:1fr}.zone-sources ul{columns:1}}

/* AB 38: full-width CTA band */
.cta-band .wrap{padding-block:clamp(48px,6vw,88px)}
.cta-band-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:start}
.cta-band .lede{margin-bottom:1.5rem}
.cta-band-links{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:1.5rem}
.cta-band-links a{text-decoration-color:var(--brown)}
@media (max-width:899px){.cta-band-grid{grid-template-columns:1fr}}

/* AB 38: results section below the hero */
[data-tool-hero][hidden],.report-section[hidden]{display:none}
.report-section .wrap.report-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start;padding-block:clamp(20px,3vw,36px) clamp(48px,6vw,88px)}
.report-address{font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.02;letter-spacing:-.02em;margin-top:.75rem}
.report-side{position:sticky;top:110px}
.report-side .sample-qc-title{margin-top:0}
.report-side .email-open{margin-top:1rem;width:100%}
.link-button{background:none;border:0;padding:0 0 3px;border-bottom:2px solid var(--brick);font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
@media (max-width:899px){.report-section .wrap.report-grid{grid-template-columns:minmax(0,1fr)}.report-side{position:static}}

/* Floating design-preview picker (removed before launch) */

/* Email dialog */
.email-dialog{width:min(520px,calc(100vw - 32px));padding:clamp(24px,3vw,36px);border:2px solid var(--brown);background:var(--paper);color:var(--brown)}
.email-dialog::backdrop{background:rgba(107,68,48,.55)}
.email-dialog .email-overview{margin:0;padding:0;border:0}
.dialog-x{position:absolute;top:8px;right:10px;color:var(--brown);margin:0}
.dialog-x:hover{color:var(--brick)}

/* CTA band links: one line, standard editorial link style */
.cta-band .wrap.cta-band-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.cta-band-links{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:12px clamp(24px,4vw,56px);margin-top:0;padding-top:clamp(20px,2.4vw,28px);border-top:1px solid rgba(107,68,48,.35)}
.cta-band-links a{white-space:nowrap;text-decoration-color:var(--brick)}

/* Report basis line and the quality-control note use the citation style. */
.report-main .sample-label,.qc-note{font:600 .7rem/1.3 var(--display);letter-spacing:.06em;text-transform:none;color:var(--brick)}
.qc-note{margin:.6rem 0 0}
.result-notice{margin:0 0 .8rem;font:600 .78rem/1.4 var(--display);letter-spacing:.04em;color:var(--brick)}
.report-value .basis{display:block;margin-top:.2rem;font:600 .7rem/1.3 var(--display);letter-spacing:.06em;color:var(--brick)}
.zone-list .cite,.report-detail .cite{display:inline-block;margin-left:.25em;font:600 .7rem/1.3 var(--display);letter-spacing:.06em;color:var(--brick);white-space:nowrap}
.maintenance .verified{margin:-.5rem 0 0;opacity:.8}
.sample-notice-body .cite{display:inline-block;margin-left:.25em;font:600 .7rem/1.3 var(--display);letter-spacing:.06em;color:var(--brick)}
/* ---- CMS rich text. In Webflow: Rich Text element with class "rich"; style its nested tags. */
.rich>:first-child{margin-top:0}
.rich>:last-child{margin-bottom:0}
.rich:not(.fact-list) p{margin:0 0 1em}
.fact-sheet .rich ul{list-style:none;margin:0 0 1rem;padding:0;border-top:1px solid var(--rule)}
.fact-sheet .rich li{padding:.7rem 0;border-bottom:1px solid var(--rule);font:600 1.05rem/1.3 var(--display)}
.fact-list p:last-child:nth-child(odd){grid-column:1 / -1}
.fact-panel.rich p{max-width:42em}
/* ---- Blog (CMS) */
.page-post .compact-title{font-size:clamp(2.2rem,5.2vw,4.4rem);max-width:16ch}
.post-meta{display:flex;flex-wrap:wrap;gap:.25rem 0;margin-top:1rem}
.post-meta span{white-space:nowrap}
.post-meta span:not(:last-child)::after{content:"\00B7";margin:0 .55em}
.post-dates{margin:1.6rem 0 0;display:grid;gap:.9rem}
.post-dates dt{opacity:1}
.post-dates dd{margin:.15rem 0 0}
.post-column{max-width:44rem}
.post-body{font-size:1.08rem;line-height:1.6}
.post-body h2{font:700 clamp(1.5rem,2.4vw,2rem)/1.1 var(--display);letter-spacing:-.01em;margin:2.2em 0 .6em}
.post-body h3{font:700 1.2rem/1.2 var(--display);margin:1.8em 0 .45em}
.post-body ul,.post-body ol{padding-left:1.2em;margin:0 0 1.2em}
.post-body li{margin:.4em 0;padding-left:.2em}
.post-body li::marker{color:var(--brick)}
.post-body blockquote{margin:2em 0;padding:.2em 0 .2em 1.1em;border-left:6px solid var(--mustard);font:700 clamp(1.4rem,2.6vw,2rem)/1.15 var(--display)}
.post-body blockquote p{margin:0}
.post-body a,.post-sources a{color:inherit;text-decoration-color:var(--brick);text-underline-offset:.18em}
.post-sources{margin-top:3rem;padding-top:1rem;border-top:2px solid var(--rule-strong)}
.post-sources h2{margin:0 0 .6rem}
.post-sources ul{list-style:none;margin:0;padding:0;font-size:.95rem}
.post-sources li{padding:.55rem 0;border-bottom:1px solid var(--rule)}
.post-next{margin-top:2.5rem;border:2px solid var(--brown);border-left:10px solid var(--mustard);color:var(--brown);padding:1.4rem clamp(1.2rem,2.4vw,1.8rem);display:grid;gap:.35rem}
.post-next-link{font:700 clamp(1.4rem,2.4vw,1.9rem)/1.1 var(--display);color:inherit;text-decoration:none}
.post-next-link:hover,.post-next-link:focus-visible{text-decoration:underline;text-underline-offset:.15em}
.post-list{border-top:2px solid var(--rule-strong)}
.post-card{padding:1.6rem 0;border-bottom:1px solid var(--rule);display:grid;gap:.55rem}
.post-card .post-meta{margin:0}
.post-card p{margin:0;max-width:44rem}
.post-card-title{font:700 clamp(1.5rem,2.6vw,2.2rem)/1.05 var(--display);letter-spacing:-.01em;margin:0;max-width:24ch}
.post-card-title a{color:inherit;text-decoration:none}
.post-card-title a:hover,.post-card-title a:focus-visible{text-decoration:underline;text-decoration-color:var(--mustard);text-decoration-thickness:4px;text-underline-offset:.12em}
@media (max-width:767px){.post .rail{flex-wrap:wrap}.post-dates{flex-basis:100%;grid-template-columns:1fr 1fr;margin-top:.9rem}.post-dates div:last-child{grid-column:1 / -1}}
.calendar-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 1.5rem}
.closing-art-right .closing-art{width:calc(100% + clamp(32px,6vw,96px))}
.calendar-note{margin:clamp(20px,2.4vw,32px) 0 0}
.post .post-dates{margin-top:0}
.process-compact{margin-top:clamp(40px,5vw,64px)}
.process-compact .process-title{margin:0}
.process-compact .process-row{margin-top:clamp(24px,3vw,36px)}
.on-dark .psteps::before{background:var(--rule-on-dark)}
.on-dark .pstep-num{background:var(--mustard);color:var(--brown)}
.local-services li:nth-child(3){break-after:column}
.fact-toggle dt{display:flex;align-items:center;min-height:var(--toggle-size,44px);padding-top:0}
.fact-toggle .service-row{align-items:center;min-height:var(--toggle-size,44px)}
.fact-toggle dt{align-self:start}
/* ---- Consultation booking (2026-10-26): no offer banner, form first, three steps */
body.no-offer .masthead{position:sticky;top:0;transform:none;visibility:visible;transition:none}
.page-consultation .consult-hero .wrap:not(.brief-bar){padding-block:clamp(12px,2vw,24px) clamp(28px,3.5vw,44px)}
.page-consultation .consult-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px)}
.booking{background:var(--cream);color:var(--brown);position:relative;padding:calc(22px + clamp(22px,2.6vw,36px)) clamp(20px,3vw,40px) clamp(24px,3vw,40px);display:grid;gap:22px;scroll-margin-top:96px}
.booking::before{content:"";position:absolute;inset:0 0 auto 0;height:22px;background:linear-gradient(var(--brown) 0 4px,transparent 4px 6px,var(--mustard) 6px 10px,transparent 10px 12px,var(--apricot) 12px 16px,transparent 16px 18px,var(--brick) 18px 22px)}
.booking :focus-visible{outline:3px solid var(--brick);outline-offset:3px}
.booking-progress{list-style:none;margin:0;padding:0 0 18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-bottom:2px solid var(--brown)}
.booking-progress li{display:flex;align-items:center;gap:10px;font:700 .74rem/1.2 var(--display);letter-spacing:.12em;text-transform:uppercase;opacity:.55}
.booking-progress li span{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;border:2px solid var(--brown);font:700 1rem/1 var(--display);letter-spacing:0;padding-top:2px}
.booking-progress li[aria-current],.booking-progress li.is-done{opacity:1}
.booking-progress li[aria-current] span{background:var(--mustard)}
.booking-progress li.is-done span{background:var(--brown);color:var(--cream)}
.booking-step{display:grid;gap:18px}
.booking-step[hidden]{display:none}
.booking-title{font:700 clamp(1.5rem,2.4vw,2rem)/1.1 var(--display);letter-spacing:-.01em;margin:0}
.booking-title:focus{outline:none}
.booking .field label{font:700 .74rem/1.3 var(--display);letter-spacing:.14em}
.booking .field input,.booking .field select,.booking .field textarea{min-height:54px;background:var(--paper);border:2px solid var(--brown);font-size:1.02rem}
.booking .field textarea{min-height:96px;resize:vertical}
.booking .field input::placeholder,.booking .field textarea::placeholder{color:var(--brown);opacity:.55}
.booking .field select{appearance:none;-webkit-appearance:none;padding-right:2.6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%236B4430' stroke-width='2.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.booking .field input[type=file]{min-height:0;padding:.7rem;font-size:.95rem}
.check{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;font-size:.98rem;line-height:1.45;cursor:pointer}
.check input{appearance:none;-webkit-appearance:none;width:28px;height:28px;margin:0;border:2px solid var(--brown);background:var(--paper);display:grid;place-items:center;cursor:pointer}
.check input:checked{background:var(--mustard)}
.check input:checked::after{content:"";width:8px;height:14px;border:solid var(--brown);border-width:0 3px 3px 0;transform:rotate(45deg) translate(-1px,-2px)}
.booking-error{margin:0;padding:.7rem .9rem;border-left:6px solid var(--brick);background:var(--paper);font-size:.95rem}
.booking .button{width:100%;min-height:58px;justify-content:center;gap:.5em}
.booking-actions{display:grid;gap:12px;justify-items:center}
.text-button{background:none;border:0;padding:.4rem;color:var(--brown);font:700 .8rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;text-decoration:underline;text-decoration-color:var(--brick);text-underline-offset:4px;cursor:pointer}
.preview-note{margin:0;color:var(--brick)}

.calendly-embed{min-width:280px;height:clamp(480px,calc(100vh - 120px),900px);background:var(--paper)}
@supports (height:100dvh){.calendly-embed{height:clamp(480px,calc(100dvh - 120px),900px)}}
.calendly-embed iframe{height:100%!important}
@media (max-width:599px){.calendly-embed{margin-inline:calc(-1 * clamp(20px,3vw,40px))}}
/* Before booking: why us + who it's for. After booking: the Mustard Process. */
.after-booking{display:none}
body[data-booking-step="2"] .after-booking{display:block}
body[data-booking-step="2"] .before-booking{display:none}
/* The scheduler is tall; keep why-us beside it while visitors scroll the form (desktop). */
@media (min-width:900px){.page-consultation .consult-copy{position:sticky;top:112px}}
.calendly-loading{margin:0;padding:1.5rem;color:var(--brown)}
.slot-picker{display:grid;gap:14px}
.slot-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slot-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.slot{display:grid;gap:2px;justify-items:center;padding:.7rem .4rem;border:2px solid var(--brown);background:var(--paper);color:var(--brown);font:700 .95rem/1.15 var(--display);cursor:pointer;text-align:center}
.slot small{font:600 .68rem/1.2 var(--display);letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.slot .slot-tag{color:var(--brick);opacity:1}
.slot[aria-pressed="true"]{background:var(--brown);color:var(--cream)}
.slot[aria-pressed="true"] .slot-tag{color:var(--mustard)}
.slot:hover{border-color:var(--brick)}
.checkout{display:grid;gap:12px;padding-top:18px;border-top:2px solid var(--brown)}
.checkout h3{margin:0}
.receipt{margin:0;display:grid}
.receipt div{display:flex;justify-content:space-between;gap:16px;padding:.55rem 0;border-bottom:1px solid var(--rule)}
.receipt div[hidden]{display:none}
.receipt dt{font-weight:500}
.receipt dd{margin:0;font:700 1.05rem/1.3 var(--display);text-align:right}
.receipt .receipt-total{border-bottom:0;border-top:2px solid var(--brown)}
.receipt .receipt-total dt,.receipt .receipt-total dd{font:700 1.15rem/1.3 var(--display)}
.card-mock{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,.8fr);border:2px solid var(--brown);background:var(--paper)}
.card-mock span{padding:1rem .85rem;opacity:.5;font-size:.95rem}
.card-mock span + span{border-left:1px solid var(--rule)}
.card-mock-note{margin:0;font-size:.85rem;opacity:.75}
.receipt-confirm{border-top:2px solid var(--brown)}
.confirm-list{margin:0;padding-left:1.3em;display:grid;gap:.5rem}
.confirm-list li::marker{color:var(--brick);font-weight:700}
.booking-step h3.label{margin:.4rem 0 0}
.consult-copy{padding-top:clamp(0px,1vw,12px)}
.consult-lead{font:700 clamp(1.8rem,3vw,2.6rem)/1.05 var(--display);letter-spacing:-.015em;color:var(--cream);margin:0}
.consult-copy > p{margin-top:1rem}
.consult-steps-label{margin:clamp(28px,3vw,40px) 0 0;color:var(--mustard)}
.psteps-stack .pstep.is-later .pstep-num{background:transparent;border:2px solid var(--rule-on-dark);color:var(--cream);opacity:.7}
.psteps-stack .pstep.is-later h3,.psteps-stack .pstep.is-later p{opacity:.6}
.psteps-stack .pstep.is-now .pstep-num{background:var(--mustard);color:var(--brown)}
.for-you{margin-top:clamp(28px,3vw,40px);padding-top:clamp(20px,2.4vw,28px);border-top:1px solid var(--rule-on-dark)}
.for-you h2,.for-you h3{color:var(--mustard);margin:0 0 .8rem}
.for-you ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.for-you li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px}
.for-you li::before{content:"";width:9px;height:15px;margin:2px 0 0 5px;border:solid var(--mustard);border-width:0 3px 3px 0;transform:rotate(45deg)}
/* Trust points start with a bold lead-in, so they flow as one paragraph beside the check. */
.trust li{display:block;position:relative;padding-left:32px}
.trust li::before{position:absolute;left:0;top:.15em}
.trust strong{color:var(--cream)}
@media (max-width:899px){.page-consultation .consult-grid{grid-template-columns:1fr}.booking-progress li{flex-direction:column;align-items:flex-start;gap:6px;font-size:.66rem}}
@media (max-width:520px){.slot-days{grid-template-columns:repeat(2,minmax(0,1fr))}.card-mock{grid-template-columns:1fr 1fr}.card-mock span:first-child{grid-column:1 / -1;border-bottom:1px solid var(--rule)}.card-mock span:nth-child(2){border-left:0}}
.on-dark .booking h2,.on-dark .booking h3,.on-dark .booking .label:not(.preview-note){color:var(--brown)}
.consult-hero .brief-bar a{white-space:nowrap}
/* ---- Booking page round 2 */
.masthead-minimal .wrap{justify-content:space-between}
.masthead-phone{font:700 .82rem/1 var(--display);letter-spacing:.14em;color:var(--brown);text-decoration:none;border-bottom:2px solid var(--brick);padding-bottom:4px;white-space:nowrap}
/* Booking page: a smaller title so the card and the scheduler start higher on the first screen. */
.page-consultation .consult-main{padding-top:clamp(28px,3vw,40px)}
.page-consultation .consult-main .consult-title{font-size:clamp(2.25rem,4.6vw,4rem);margin:0}
/* The card starts right under the header and carries the page title, so the scheduler and both
   lists beside it sit on the first screen. */
.page-consultation .booking h1.booking-title{font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.05}
.calendly-fee{font-weight:700}
.page-consultation .booking{padding-top:calc(22px + clamp(16px,1.8vw,24px));gap:16px}
.page-consultation .booking-step{gap:12px}
.calendly-note{margin:0}
.consult-main{padding-top:clamp(20px,3vw,40px)}
.consult-bar{color:var(--cream)}
.consult-bar a{color:var(--cream);white-space:nowrap}
.consult-main .consult-title{color:var(--cream);margin:clamp(14px,2vw,24px) 0 clamp(28px,4vw,48px)}
.consult-main .consult-title .done{color:var(--mustard)}
.booking-progress{display:flex;align-items:center;gap:0;padding-bottom:18px}
.booking-progress li{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--brown);background:var(--paper);opacity:1;padding:0}
.booking-progress li + li{margin-left:0}
.booking-progress li:not(:last-child)::after{content:"";display:block}
.booking-progress{justify-content:space-between;position:relative}
.booking-progress::before{content:"";position:absolute;left:12px;right:12px;top:11px;height:2px;background:var(--brown);z-index:0}
.booking-progress li{position:relative;z-index:1}
.booking-progress li[data-progress="1"].is-done,.booking-progress li[data-progress="1"][aria-current]{background:var(--mustard)}
.booking-progress li[data-progress="2"].is-done,.booking-progress li[data-progress="2"][aria-current]{background:var(--apricot)}
.booking-progress li[data-progress="3"][aria-current]{background:var(--brick)}
.booking .field input[type=file]::file-selector-button{background:var(--brown);color:var(--cream);border:0;padding:.6rem 1rem;margin-right:.85rem;font:700 .74rem/1 var(--display);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.booking .field input[type=file]::file-selector-button:hover{background:var(--brick)}
.psteps-stack .pstep.is-later .pstep-num{background:var(--brown);border:2px solid rgba(250,238,209,.35);color:rgba(250,238,209,.55);opacity:1}
body[data-booking-step="2"] #faq{display:none}
.booking-progress li .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0;background:none}

/* Live property lookup: autocomplete list floats over the page (no layout shift). */
.ac-list{position:absolute;left:-2px;right:-2px;top:100%;z-index:40;margin:0;padding:0;list-style:none;background:var(--paper);border:2px solid var(--brown);border-top:0;max-height:320px;overflow-y:auto}
.ac-list li{padding:.8rem 1.1rem;font:400 1rem/1.35 var(--body);color:var(--brown);cursor:pointer}
.ac-list li+li{border-top:1px solid rgba(107,68,48,.15)}
.ac-list li[aria-selected=true],.ac-list li:hover{background:var(--mustard)}
.lookup-status{margin-top:.75rem;font:600 .95rem/1.4 var(--body);color:var(--brown)}
.choice-list{list-style:none;margin:1rem 0;padding:0;display:grid;gap:.5rem}
.choice{width:100%;min-height:48px;padding:.7rem 1rem;text-align:left;border:2px solid var(--brown);background:var(--cream);color:var(--brown);font:500 1rem/1.35 var(--body);cursor:pointer}
.choice:hover,.choice:focus-visible{background:var(--mustard)}
