/* Block Paving Contractors — design system
   Tokens first; components below use tokens only. */
@font-face{font-family:"Bitter";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/bitter-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/fonts/source-sans-3-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"Bitter Fallback";src:local("Georgia");size-adjust:104%;ascent-override:92%}
@font-face{font-family:"Sans Fallback";src:local("Arial");size-adjust:93%;ascent-override:104%}

:root{
  --ink:#221f1b; --ink-2:#3b3630; --ink-3:#5f574d;
  --brick:#a8461e; --brick-dark:#8a3815; --brick-tint:#f6e3d8; --brick-on-dark:#f0b48f;
  --sand:#e7d3a8; --sand-2:#f3e8d2; --sand-3:#faf4e7;
  --paper:#fbf8f3; --white:#fff;
  --stone:#ddd3c4; --stone-2:#c9bead;
  --charcoal:#4b4741; --moss:#4a6a2f;
  --focus:#1f5fbf;
  --font-head:"Bitter","Bitter Fallback",Georgia,serif;
  --font-body:"Source Sans 3","Sans Fallback",Arial,sans-serif;
  --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:32px; --s6:48px; --s7:64px; --s8:96px;
  --r1:4px; --r2:8px; --r3:14px;
  --shadow:0 1px 2px rgba(34,31,27,.08),0 8px 24px rgba(34,31,27,.08);
  --wrap:1200px;
  --course:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='10'%3E%3Crect width='40' height='10' fill='%23e7d3a8'/%3E%3Crect x='1' y='1' width='18' height='8' rx='1' fill='%233b3630'/%3E%3Crect x='21' y='1' width='18' height='8' rx='1' fill='%234b4741'/%3E%3C/svg%3E");
  --herring:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23221f1b' stroke-opacity='.07' stroke-width='1'%3E%3Cpath d='M0 6h12v6H0zM12 0v12h6V0zM12 12h12v6H12zM0 12v12h6V12zM18 0h6v6M6 18h6v6'/%3E%3C/g%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;font-variant-numeric:lining-nums}
img,video,svg{max-width:100%;height:auto;display:block}
a{color:var(--brick-dark);text-underline-offset:2px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:800;line-height:1.15;letter-spacing:-.01em;margin:0 0 var(--s3);color:var(--ink)}
h1{font-size:clamp(2rem,4.2vw,3.1rem)}
h2{font-size:clamp(1.55rem,2.8vw,2.2rem)}
h3{font-size:1.25rem}
h4{font-size:1.05rem}
p{margin:0 0 var(--s3)}
ul,ol{margin:0 0 var(--s3);padding-left:1.25em}
li{margin-bottom:6px}
table{border-collapse:collapse;width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}
@media(min-width:720px){.wrap{padding:0 24px}}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--ink);color:#fff;padding:10px 14px;border-radius:var(--r1)}
.skip:focus{left:8px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--ink-3)}
.small{font-size:.92rem}
.center{text-align:center}
.lead{font-size:1.18rem;color:var(--ink-2)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:var(--r2);border:2px solid transparent;font:700 1.02rem/1.2 var(--font-body);text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-primary{background:var(--brick);color:#fff}
.btn-primary:hover{background:var(--brick-dark);color:#fff}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-secondary:hover{background:var(--ink);color:#fff}
.btn-ghost{background:transparent;color:inherit;border-color:currentColor}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--sand);color:var(--ink)}
.btn-block{width:100%}
.btn svg{width:20px;height:20px;flex:none}

/* soldier course divider */
.course{height:10px;background:var(--course) repeat-x;background-size:40px 10px}
.course-thin{height:6px;background-size:24px 6px}

/* eyebrow with herringbone mark */
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:700 .82rem/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brick-dark);margin-bottom:12px}
.eyebrow::before{content:"";width:22px;height:14px;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 14'%3E%3Cg fill='%23a8461e'%3E%3Crect x='0' y='0' width='8' height='4' rx='.6'/%3E%3Crect x='0' y='5' width='4' height='8' rx='.6'/%3E%3Crect x='5' y='5' width='8' height='4' rx='.6'/%3E%3Crect x='9' y='0' width='4' height='4' rx='.6'/%3E%3Crect x='14' y='0' width='8' height='4' rx='.6'/%3E%3Crect x='14' y='5' width='4' height='8' rx='.6'/%3E%3Crect x='5' y='10' width='8' height='3' rx='.6' fill-opacity='.55'/%3E%3C/g%3E%3C/svg%3E") no-repeat center/contain}
.on-dark .eyebrow{color:var(--brick-on-dark)}
.on-dark .eyebrow::before{filter:brightness(1.7) saturate(.8)}

/* header */
.top{position:sticky;top:0;z-index:50;background:var(--white);box-shadow:0 1px 0 var(--stone)}
.top-in{display:flex;align-items:center;gap:16px;min-height:72px}
.logo{display:block;flex:none;width:200px}
.logo img{width:200px;height:auto}
@media(min-width:960px){.logo,.logo img{width:236px}}
.nav{display:none;margin-left:auto}
.nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.nav a{display:block;padding:10px 12px;border-radius:var(--r1);color:var(--ink);font-weight:600;text-decoration:none}
.nav a:hover,.nav a[aria-current=page]{background:var(--sand-2)}
.top-cta{display:none;align-items:center;gap:12px}
.tel{font-weight:700;color:var(--ink);text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.tel svg{width:18px;height:18px;color:var(--brick)}
.menu-btn{margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:2px solid var(--ink);border-radius:var(--r2);background:#fff;font:700 .95rem var(--font-body);color:var(--ink);cursor:pointer}
.menu-btn svg{width:20px;height:20px}
@media(min-width:1080px){.nav{display:block}.top-cta{display:flex}.menu-btn{display:none}}
.mnav{display:none;border-top:1px solid var(--stone);background:#fff;padding:8px 0 16px}
.mnav.open{display:block}
.mnav ul{list-style:none;margin:0;padding:0}
.mnav a{display:block;padding:12px 4px;border-bottom:1px solid var(--sand-2);color:var(--ink);font-weight:600;text-decoration:none}
.mnav .btn{margin-top:12px}
.cats{background:var(--ink);overflow-x:auto;scrollbar-width:thin}
.cats ul{display:flex;gap:4px;list-style:none;margin:0 auto;padding:6px 16px;max-width:var(--wrap);white-space:nowrap}
.cats li{margin:0}
.cats a{display:block;padding:7px 12px;border-radius:999px;color:#f3e8d2;font-size:.92rem;font-weight:600;text-decoration:none}
.cats a:hover,.cats a[aria-current=page]{background:var(--ink-2);color:#fff}

/* breadcrumbs */
.crumbs{font-size:.9rem;padding:14px 0 0}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:0}
.crumbs li{margin:0;color:var(--ink-3)}
.crumbs li+li::before{content:"›";margin-right:8px;color:var(--stone-2)}
.crumbs a{color:var(--ink-3)}

/* hero (home: full-bleed photo) */
.hero{position:relative;color:#fff;background:var(--ink);overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,21,18,.92) 0%,rgba(24,21,18,.78) 42%,rgba(24,21,18,.35) 75%,rgba(24,21,18,.2) 100%)}
@media(max-width:899px){.hero-media::after{background:linear-gradient(180deg,rgba(24,21,18,.72) 0%,rgba(24,21,18,.88) 55%,rgba(24,21,18,.95) 100%)}}
.hero-in{position:relative;display:grid;gap:32px;padding-block:40px 48px}
@media(min-width:900px){.hero-in{grid-template-columns:1.15fr .85fr;align-items:center;padding-block:72px 80px}}
.hero h1{color:#fff;max-width:18ch}
.hero .lead{color:#efe6d6;max-width:56ch}
.hero-ticks{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:8px}
.hero-ticks li{display:flex;gap:10px;align-items:flex-start;margin:0}
.hero-ticks svg{width:20px;height:20px;flex:none;margin-top:3px;color:var(--sand)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero .btn-secondary{color:#fff;border-color:#fff}
.hero .btn-secondary:hover{background:#fff;color:var(--ink)}
.vid-toggle{position:absolute;right:16px;bottom:22px;z-index:2;display:none;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.6);background:rgba(24,21,18,.55);color:#fff;font:600 .85rem var(--font-body);cursor:pointer}
.vid-toggle.show{display:inline-flex}

/* page head (inner pages) */
.phead{background:var(--sand-3);background-image:var(--herring);border-bottom:1px solid var(--stone)}
.phead-in{display:grid;gap:28px;padding:20px 0 40px}
@media(min-width:900px){.phead-in{grid-template-columns:1.2fr .8fr;align-items:start;padding:28px 0 56px}}
.phead .lead{max-width:62ch}
.phead-img{border-radius:var(--r3);overflow:hidden;box-shadow:var(--shadow);background:var(--stone)}
.phead-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.facts{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 20px}
.facts li{margin:0;background:#fff;border:1px solid var(--stone);border-radius:999px;padding:6px 12px;font-size:.92rem;font-weight:600}

/* sections */
.sec{padding-block:56px}
@media(min-width:900px){.sec{padding-block:80px}}
.sec-alt{background:var(--sand-3)}
.sec-dark{background:var(--ink);color:#efe6d6}
.sec-dark h2,.sec-dark h3{color:#fff}
.sec-dark a{color:var(--brick-on-dark)}
.sec-head{max-width:70ch;margin-bottom:32px}
.grid{display:grid;gap:20px}
@media(min-width:640px){.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}}
.two{display:grid;gap:32px}.two>*{min-width:0}
@media(min-width:900px){.two{grid-template-columns:1fr 1fr;align-items:start}.two-wide{grid-template-columns:1.35fr .65fr}}
.prose{max-width:72ch}
.prose h2{margin-top:40px}
.prose h3{margin-top:28px}
.prose > :first-child{margin-top:0}

/* trust strip */
.trust{background:#fff;border-bottom:1px solid var(--stone)}
.trust ul{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 20px;list-style:none;margin:0;padding:18px 0}
@media(min-width:900px){.trust ul{grid-template-columns:repeat(5,1fr)}}
.trust li{display:flex;gap:10px;align-items:center;margin:0;font-weight:600;font-size:.95rem;line-height:1.3}
.trust svg{width:28px;height:28px;flex:none;color:var(--brick)}

/* cards */
.card{background:#fff;border:1px solid var(--stone);border-radius:var(--r3);padding:24px;box-shadow:0 1px 0 rgba(34,31,27,.04)}
.card h3{margin-bottom:8px}
.usp svg{width:40px;height:40px;color:var(--brick);margin-bottom:12px}
.tile{display:flex;flex-direction:column;background:#fff;border:1px solid var(--stone);border-radius:var(--r3);overflow:hidden;text-decoration:none;color:var(--ink);transition:box-shadow .15s,transform .15s}
.tile:hover{box-shadow:var(--shadow);transform:translateY(-2px);color:var(--ink)}
.tile img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--stone)}
.tile-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.tile h3{font-size:1.12rem;margin:0}
.tile p{margin:0;color:var(--ink-3);font-size:.97rem}
.tile .more{margin-top:auto;padding-top:6px;font-weight:700;color:var(--brick-dark)}
.tile .price{font-weight:700;color:var(--ink)}
.group-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin:40px 0 16px;border-bottom:2px solid var(--ink);padding-bottom:8px}
.group-head:first-child{margin-top:0}
.group-head h3{margin:0;font-size:1.35rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chips li{margin:0}
.chips a{display:inline-block;padding:7px 13px;border:1px solid var(--stone-2);border-radius:999px;background:#fff;color:var(--ink);font-size:.95rem;text-decoration:none}
.chips a:hover{border-color:var(--ink);background:var(--sand-2)}
.sec-dark .chips a{background:transparent;color:#efe6d6;border-color:#6b6258}
.ticks{list-style:none;padding:0}
.ticks li{position:relative;padding-left:30px}
.ticks li::before{content:"";position:absolute;left:0;top:5px;width:18px;height:18px;border-radius:4px;background:var(--moss) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat}
.crosses li::before{background:var(--charcoal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center/12px no-repeat}

/* steps */
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:20px}
@media(min-width:900px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{counter-increment:s;margin:0;background:#fff;border:1px solid var(--stone);border-radius:var(--r3);padding:22px;position:relative}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font:800 1.6rem/1 var(--font-head);color:var(--brick);margin-bottom:10px}
.steps h3{font-size:1.1rem;margin-bottom:6px}
.steps p{margin:0;color:var(--ink-3)}

/* forms: job card */
.jobcard{background:#fff;color:var(--ink);border-radius:var(--r3);box-shadow:0 18px 48px rgba(0,0,0,.28);overflow:hidden}
.jobcard-head{background:var(--sand-2);padding:16px 20px;border-bottom:1px solid var(--stone)}
.jobcard-head h2{font-size:1.3rem;margin:0}
.jobcard-head p{margin:4px 0 0;font-size:.93rem;color:var(--ink-3)}
.jobcard form{padding:18px 20px 20px}
.field{margin-bottom:14px}
.field label,.field legend{display:block;font-weight:700;font-size:.95rem;margin-bottom:5px}
.field label .opt{font-weight:400;color:var(--ink-3)}
.field input,.field select,.field textarea{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid #8f857a;border-radius:var(--r1);background:#fff;font:inherit;color:var(--ink)}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:3px solid var(--focus);outline-offset:1px}
.field.bad input,.field.bad select,.field.bad textarea{border-color:#b3261e}
.err{display:none;color:#b3261e;font-size:.9rem;font-weight:600;margin-top:4px}
.field.bad .err{display:block}
.warn{color:#7a5a00;font-size:.88rem;margin-top:4px;display:none}
.field.soft .warn{display:block}
.row2{display:grid;gap:0 12px}
@media(min-width:480px){.row2{grid-template-columns:1fr 1fr}}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;line-height:1.4}
.check input{width:20px;height:20px;min-height:0;margin-top:2px;flex:none;accent-color:var(--brick)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-note{font-size:.86rem;color:var(--ink-3);margin:10px 0 0}
.form-status{display:none;margin-top:12px;padding:12px 14px;border-radius:var(--r2);font-weight:600}
.form-status.err-box{display:block;background:#fbe9e7;color:#7d1d14;border:1px solid #e6b3ad}
.form-status.ok-box{display:block;background:#eaf2e3;color:#2e4a1a;border:1px solid #bcd3a6}
button[disabled]{opacity:.7;cursor:progress}

/* price tables */
.ptable{background:#fff;border:1px solid var(--stone);border-radius:var(--r3);overflow:hidden}
.ptable table{font-size:.98rem}
.ptable th,.ptable td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--sand-2);vertical-align:top}
.ptable thead th{background:var(--ink);color:#fff;font-weight:700}
.ptable td.num,.ptable th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ptable tr:last-child td{border-bottom:0}
.table-scroll{overflow-x:auto}
.pricebar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;background:#fff;border:1px solid var(--stone);border-left:6px solid var(--brick);border-radius:var(--r2);padding:16px 20px;margin:0 0 24px}
.pricebar strong{font:800 1.4rem/1.1 var(--font-head)}

/* FAQ */
.faq details{background:#fff;border:1px solid var(--stone);border-radius:var(--r2);margin-bottom:10px}
.faq summary{cursor:pointer;list-style:none;padding:16px 48px 16px 18px;font-weight:700;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:12px;font:800 1.4rem/1 var(--font-head);color:var(--brick)}
.faq details[open] summary::after{content:"–"}
.faq .ans{padding:0 18px 16px}
.faq .ans p:last-child{margin:0}

/* reviews placeholder */
.genuine{display:grid;gap:16px;align-items:center;background:#fff;border:2px dashed var(--stone-2);border-radius:var(--r3);padding:24px}
@media(min-width:800px){.genuine{grid-template-columns:auto 1fr auto}}
.genuine svg{width:48px;height:48px;color:var(--brick)}

/* CTA band */
.cta{position:relative;background:var(--ink);color:#efe6d6;overflow:hidden}
.cta-in{position:relative;display:grid;gap:24px;padding-block:48px}
@media(min-width:900px){.cta-in{grid-template-columns:1.1fr .9fr;align-items:center;padding-block:64px}}
.cta h2{color:#fff}
.cta-media{border-radius:var(--r3);overflow:hidden;aspect-ratio:16/10;background:var(--ink-2)}
.cta-media img,.cta-media video{width:100%;height:100%;object-fit:cover}
.cta .btn-secondary{color:#fff;border-color:#fff}
.cta .btn-secondary:hover{background:#fff;color:var(--ink)}

/* pattern picker */
.picker{display:grid;gap:24px}
@media(min-width:900px){.picker{grid-template-columns:1fr 1fr;align-items:center}}
.picker-view{border-radius:var(--r3);overflow:hidden;background:var(--sand);box-shadow:var(--shadow);aspect-ratio:4/3}
.picker-view svg{width:100%;height:100%}
.seg{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;border:0}
.seg legend{font-weight:700;margin-bottom:8px;padding:0}
.seg button{min-height:44px;padding:8px 14px;border:1.5px solid var(--stone-2);border-radius:var(--r2);background:#fff;color:var(--ink);font:600 .95rem var(--font-body);cursor:pointer}
.seg button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:#fff}
.swatch{display:inline-flex;align-items:center;gap:8px}
.swatch i{width:18px;height:18px;border-radius:4px;display:inline-block;border:1px solid rgba(0,0,0,.2)}
.picker-note{background:#fff;border-left:4px solid var(--brick);padding:12px 16px;border-radius:var(--r1);min-height:70px}

/* build-up */
.buildup{display:grid;gap:24px}
@media(min-width:900px){.buildup{grid-template-columns:1fr 1fr;align-items:center}}
.layers{border-radius:var(--r3);overflow:hidden;border:1px solid var(--stone);background:#fff}
.layer{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;font-weight:600;border-bottom:1px solid rgba(0,0,0,.08)}
.layer span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
.layer.l1{background:repeating-linear-gradient(90deg,#a8461e 0 46px,#e7d3a8 46px 49px);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);min-height:56px}
.layer.l2{background:#e9d7a9;min-height:40px}
.layer.l3{background:#b8ada0 radial-gradient(circle at 20% 40%,#8f857a 1.5px,transparent 2px) 0 0/14px 14px;min-height:96px}
.layer.l3p{background:#9a8f82 radial-gradient(circle at 30% 50%,#6f665c 3px,transparent 3.5px) 0 0/18px 18px;color:#fff;min-height:110px}
.layer.l4{background:repeating-linear-gradient(135deg,#d6d0c6 0 6px,#c9c2b6 6px 12px);min-height:22px;font-size:.85rem}
.layer.l5{background:#7a6a55;color:#fff;min-height:56px}

/* fault finder */
.faults{display:grid;gap:12px}
@media(min-width:700px){.faults{grid-template-columns:repeat(3,1fr)}}
.faults button{min-height:56px;text-align:left;padding:12px 14px;border:1.5px solid var(--stone-2);border-radius:var(--r2);background:#fff;font:600 1rem var(--font-body);color:var(--ink);cursor:pointer}
.faults button[aria-pressed=true]{border-color:var(--brick);box-shadow:inset 0 0 0 2px var(--brick)}
.fault-out{margin-top:20px}

/* quote tool */
.qt{display:grid;gap:24px}
@media(min-width:960px){.qt{grid-template-columns:1.05fr .95fr;align-items:start}}
.qt-panel{background:#fff;border:1px solid var(--stone);border-radius:var(--r3);padding:20px}
@media(min-width:720px){.qt-panel{padding:28px}}
.qt-prog{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 20px}
.qt-prog li{flex:1;margin:0;height:6px;border-radius:3px;background:var(--stone)}
.qt-prog li.done{background:var(--brick)}
.qt-step{display:none;border:0;margin:0;padding:0}
.qt-step.on{display:block}
.qt-step legend{font:800 1.3rem/1.2 var(--font-head);margin-bottom:6px;padding:0}
.opts{display:grid;gap:10px;margin:14px 0 18px}
@media(min-width:520px){.opts{grid-template-columns:1fr 1fr}}
.opt{position:relative}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt label{display:block;height:100%;padding:12px 14px;border:1.5px solid var(--stone-2);border-radius:var(--r2);cursor:pointer;background:#fff}
.opt label b{display:block}
.opt label span{display:block;font-size:.9rem;color:var(--ink-3)}
.opt input:checked+label{border-color:var(--brick);box-shadow:inset 0 0 0 2px var(--brick);background:var(--brick-tint)}
.opt input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}
.qt-nav{display:flex;justify-content:space-between;gap:12px;margin-top:8px}
.qt-side{position:sticky;top:96px}
.qt-preview{background:var(--sand);border-radius:var(--r3);overflow:hidden;aspect-ratio:4/3}
.qt-preview svg{width:100%;height:100%}
.qt-price{background:var(--ink);color:#fff;border-radius:var(--r3);padding:18px 20px;margin-top:14px}
.qt-price .amt{font:800 1.9rem/1.1 var(--font-head)}
.qt-price .busy{opacity:.6}
.qt-break{font-size:.9rem;color:#d9cfbf;margin:8px 0 0;padding-left:1.1em}
.range{display:flex;align-items:center;gap:12px}
.range input[type=range]{flex:1;accent-color:var(--brick);min-height:44px}
.range output{min-width:5.5ch;font-weight:800;font-variant-numeric:tabular-nums}

/* areas */
.area-list{columns:2 180px;column-gap:24px;list-style:none;padding:0}
.area-list li{break-inside:avoid}
.notice{background:var(--sand-2);border-left:5px solid var(--brick);padding:14px 18px;border-radius:var(--r1);margin:0 0 20px}

/* author box */
.author{display:flex;gap:14px;align-items:center;border-top:1px solid var(--stone);border-bottom:1px solid var(--stone);padding:14px 0;margin:24px 0;font-size:.95rem}
.author img{width:48px;height:48px}

/* footer */
.foot{background:var(--ink);color:#d9cfbf;font-size:.95rem}
.foot a{color:#f3e8d2;text-decoration:none}
.foot a:hover{text-decoration:underline;color:#fff}
.foot-in{display:grid;gap:32px;padding-block:48px 32px}
@media(min-width:900px){.foot-in{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.foot h2{font:700 .82rem/1.2 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--brick-on-dark);margin:0 0 12px}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin-bottom:8px}
.foot-logo{width:236px;margin-bottom:16px}
.nap{font-style:normal;line-height:1.55}
.legal{border-top:1px solid #3b3630;padding-block:20px 96px;font-size:.86rem;color:#b9ae9e}
@media(min-width:721px){.legal{padding-bottom:28px}}
.legal p{margin:0 0 8px}
.ps-badge{display:inline-flex;align-items:center;gap:10px;margin:4px 0 16px;padding:8px 12px;border:1px solid #5f574d;border-radius:var(--r2);color:#fff!important;font-weight:600;font-size:.9rem}
.ps-badge svg{width:22px;height:22px;flex:none}
.prose .ps-badge{border-color:var(--stone-2);color:var(--ink)!important;background:#fff;text-decoration:none}

/* sticky mobile bar + floats */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -2px 12px rgba(0,0,0,.15)}
.mbar .btn{min-height:46px;padding:10px}
@media(min-width:721px){.mbar{display:none}}
.wa{position:fixed;left:14px;bottom:78px;z-index:61;width:52px;height:52px;border-radius:50%;background:#1f7a4d;color:#fff;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.wa svg{width:28px;height:28px}
@media(min-width:721px){.wa{bottom:20px;left:20px}}
.chat-btn{position:fixed;right:14px;bottom:78px;z-index:61;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:10px 16px;border-radius:999px;border:0;background:var(--ink);color:#fff;font:700 .95rem var(--font-body);box-shadow:0 6px 18px rgba(0,0,0,.25);cursor:pointer}
.chat-btn svg{width:20px;height:20px}
@media(min-width:721px){.chat-btn{bottom:20px;right:20px}}
.chat-btn[hidden]{display:none}

/* cookie banner */
.cookie{position:fixed;left:12px;right:12px;bottom:12px;z-index:100;max-width:560px;background:#fff;border:1px solid var(--stone);border-radius:var(--r3);box-shadow:0 18px 48px rgba(0,0,0,.25);padding:18px 20px}
@media(min-width:721px){.cookie{left:20px;bottom:20px}}
.cookie h2{font-size:1.15rem;margin-bottom:6px}
.cookie p{font-size:.93rem;margin-bottom:12px}
.cookie-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cookie-btns .btn{min-height:46px;padding:10px}
.cookie[hidden]{display:none}

/* misc */
.media-note{font-size:.85rem;color:var(--ink-3)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.kv dt{font-weight:700}
.kv dd{margin:0}
.toc{background:#fff;border:1px solid var(--stone);border-radius:var(--r2);padding:16px 20px;margin:0 0 24px}
.toc ol{margin:0}
.related{margin-top:40px}
.not404{padding:72px 0}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.top,.cats,.mbar,.wa,.chat-btn,.cookie,.foot,.cta{display:none!important}}

.linkish{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.foot .linkish{color:#f3e8d2;text-decoration:none}
.foot .linkish:hover{text-decoration:underline}
[hidden]{display:none!important}
.foot .chips a{background:transparent;border-color:#5f574d;color:#f3e8d2}
.foot .chips a:hover{background:#3b3630;border-color:#8f857a;color:#fff}
.qt-step legend:focus{outline:none}
.qt-step legend:focus-visible{outline:3px solid var(--focus)}
.pc-table td:nth-child(3){white-space:nowrap;color:var(--muted,#5f574d)}
.legal a,.prose a,.foot .small a{text-decoration:underline;text-underline-offset:2px}
[data-qt-break] li.note{list-style:none;margin-left:-1.1em;color:#e2d8c6;font-size:.9rem}
