/* Tile Max Flooring — shared styles
   Layout: tile-module grid. Photos and cards sit in "tiles" separated by
   grout-width gaps; trade-sign condensed type on a porcelain ground. */
:root{
  /* Layout: bold geometric blocks, hard edges, thick black grid lines, red as the signal color */
  --porcelain:#efefed;   /* page ground: light concrete */
  --white:#ffffff;
  --ink:#111111;         /* text, black bands */
  --ink-soft:#4a4a4a;
  --ink-muted:#b4b4b4;   /* text on black */
  --grout:#d6d6d3;       /* lines, borders */
  --grout-dark:#2e2e2e;  /* lines on black */
  --glaze:#c8102e;       /* accent: safety red */
  --glaze-deep:#9a0c22;
  --glaze-tint:#fbe5e8;
  --sand:#f0505d;        /* red, brightened for use on black */
  --display:"Archivo","Arial Narrow",Impact,sans-serif;
  --body:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --gap:4px;
  --max:1180px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{margin:0;background:var(--porcelain);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--glaze);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-stretch:75%;line-height:1.02;margin:0;text-wrap:balance;letter-spacing:.005em}
h1{font-size:clamp(2.6rem,6.2vw,4.8rem);font-weight:800;text-transform:uppercase}
h2{font-size:clamp(2.1rem,4.2vw,3.2rem);font-weight:800;text-transform:uppercase}
h3{font-size:1.45rem;font-weight:700;text-transform:uppercase}
p{margin:0}
.eyebrow{font:500 .78rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--glaze)}
.lede{font-size:1.15rem;color:var(--ink-soft);max-width:62ch}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;padding:10px 14px;text-decoration:none}
.skip:focus{left:12px;top:12px}

/* Buttons & links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.5em;font:700 1rem/1 var(--body);text-decoration:none;border-radius:0;border:2px solid transparent;transition:background .15s,color .15s,border-color .15s;cursor:pointer}
.btn-primary{background:var(--glaze);color:#fff}
.btn-primary:hover{background:var(--glaze-deep)}
.btn-ghost{border-color:currentColor}
.btn-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
.textlink{font-weight:700;color:var(--glaze);text-decoration:none}
.textlink:hover{text-decoration:underline}

/* Top strip */
.strip{background:var(--ink);color:#cfcfcf;font:500 .78rem/1.2 var(--mono);letter-spacing:.06em}
.strip .wrap{display:flex;justify-content:space-between;gap:8px 16px;padding-block:10px;flex-wrap:wrap}
.strip a{text-decoration:none;color:#fff}

/* Header & navigation */
header.site{position:sticky;top:0;z-index:20;background:rgba(239,239,237,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--grout)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:12px;position:relative}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:46px}
.logo img{height:46px;width:auto}
.logo-text{font:800 1.5rem/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
nav.main{display:flex;align-items:center;gap:26px}
nav.main > a:not(.btn),.dd summary{font-weight:600;font-size:.98rem;text-decoration:none}
nav.main > a:not(.btn):hover,.dd summary:hover,.dd summary.on,nav.main a[aria-current="page"]:not(.btn){color:var(--glaze)}
nav.main .btn{padding:.75em 1.2em}
.dd{position:relative}
.dd summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}
.dd summary::-webkit-details-marker{display:none}
.dd summary::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.dd[open] summary::after{transform:translateY(1px) rotate(-135deg)}
.dd-panel{position:absolute;top:calc(100% + 16px);left:-14px;min-width:230px;background:var(--white);border:1px solid var(--grout);border-radius:0;box-shadow:0 14px 34px rgba(0,0,0,.18);padding:8px;display:flex;flex-direction:column;z-index:30}
.dd-panel a{padding:10px 12px;border-radius:0;text-decoration:none;font-weight:600}
.dd-panel a:hover{background:var(--porcelain);color:var(--glaze)}
.menu-btn{display:none;background:none;border:2px solid var(--ink);color:var(--ink);border-radius:0;padding:8px 14px;font:700 .9rem var(--body);cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--porcelain);border-bottom:1px solid var(--grout);padding:4px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px));max-height:calc(100vh - 120px);overflow-y:auto}
  nav.main.open{display:flex}
  nav.main > a:not(.btn),.dd summary{padding:14px 0;border-bottom:1px solid var(--grout)}
  .dd summary{justify-content:space-between}
  .dd-panel{position:static;min-width:0;border:0;box-shadow:none;background:transparent;padding:4px 0 8px 14px}
  nav.main .btn{margin-top:16px}
}

/* Home hero */
.hero{padding-block:52px 72px}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.hero .copy{display:flex;flex-direction:column;gap:24px;min-width:0}
.hero h1 em{font-style:normal;color:var(--glaze)}
.note{font:500 .8rem/1.5 var(--mono);color:var(--ink-soft);letter-spacing:.04em}
.tiles{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,1fr);gap:var(--gap);aspect-ratio:1/1.02;width:100%;background:var(--grout);padding:var(--gap);border-radius:0}
.tile{position:relative;overflow:hidden;min-width:0;background:var(--grout)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.t1{grid-column:1/5;grid-row:1/5}
.t2{grid-column:5/7;grid-row:1/4}
.t3{grid-column:5/7;grid-row:4/7}
.t4{grid-column:1/3;grid-row:5/7}
.t5{grid-column:3/5;grid-row:5/7;background:var(--glaze);display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:14px;color:#fff}
.t5 b{font:800 2.4rem/1 var(--display)}
.t5 small{font:500 .7rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;opacity:.85}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:40px}.hero{padding-block:32px 56px}}

/* Inner page hero + breadcrumbs */
.crumbs{padding-top:24px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font:500 .74rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--ink-muted)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--glaze)}
.phero{padding-block:28px 64px}
.phero .wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}
.phero.solo .wrap{grid-template-columns:minmax(0,1fr)}
.phero .copy{display:flex;flex-direction:column;gap:22px;min-width:0}
.frame{background:var(--grout);padding:var(--gap);border-radius:0;width:100%}
.frame .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--grout)}
.frame.tall .ph{aspect-ratio:4/5}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.phero .wrap{grid-template-columns:1fr;gap:32px}.phero{padding-block:20px 48px}.frame.tall .ph{aspect-ratio:4/3}}

/* Trust bar */
.trust{background:var(--white);border-block:1px solid var(--grout)}
.trust ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.trust li{padding:22px 18px;display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--grout);min-width:0}
.trust li:first-child{border-left:0;padding-left:0}
.trust b{font:700 1.25rem/1.1 var(--display);text-transform:uppercase}
.trust span{font-size:.88rem;color:var(--ink-soft)}
@media (max-width:760px){.trust ul{grid-template-columns:1fr 1fr}.trust li:nth-child(3){border-left:0;padding-left:0}.trust li:nth-child(n+3){border-top:1px solid var(--grout)}}

/* Sections */
section{padding-block:88px}
.band{background:var(--white);border-block:1px solid var(--grout)}
.dark{background:var(--ink);color:#f1f1f1}
.dark .eyebrow{color:var(--sand)}
.dark .lede{color:var(--ink-muted)}
.sec-head{display:flex;flex-direction:column;gap:14px;margin-bottom:44px}
.sec-head.row{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:20px 24px;flex-wrap:wrap}
.sec-head.row > div{display:flex;flex-direction:column;gap:14px;min-width:0;max-width:720px}
@media (max-width:600px){section{padding-block:64px}.sec-head{margin-bottom:32px}}

/* Tile grids: cells separated by grout lines */
.grid{display:grid;gap:var(--gap);background:var(--grout);padding:var(--gap);border-radius:0;margin:0}
.dark .grid{background:var(--grout-dark)}
.c2{grid-template-columns:repeat(2,1fr)}
.c3{grid-template-columns:repeat(3,1fr)}
.c4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.c4,.c3.six{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.c3:not(.six){grid-template-columns:1fr}}
@media (max-width:600px){.c2,.c4,.c3.six{grid-template-columns:1fr}}
.cell{background:var(--white);padding:26px 24px 28px;display:flex;flex-direction:column;gap:10px;min-width:0}
.dark .cell{background:var(--ink)}
.cell p{color:var(--ink-soft);font-size:.97rem}
.dark .cell h3{color:#fff}
.dark .cell p{color:var(--ink-muted)}
.tag{font:500 .72rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--glaze)}
.dark .tag{color:var(--sand)}
.checks .cell::before{content:"";width:28px;height:28px;border-radius:0;margin-bottom:4px;background:var(--glaze-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5' fill='none' stroke='%23c8102e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.steps{list-style:none;counter-reset:s}
.steps li{counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);font:800 2.8rem/1 var(--display);color:var(--glaze)}

/* Service cards */
.svc{position:relative;background:var(--white);display:flex;flex-direction:column;min-width:0}
.svc .ph{aspect-ratio:4/3;overflow:hidden;background:var(--grout)}
.svc .ph img{width:100%;height:100%;object-fit:cover;}

.svc .body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.svc h3 a{text-decoration:none}
.svc h3 a::after{content:"";position:absolute;inset:0}
.svc:hover h3{color:var(--glaze)}
.svc:focus-within{outline:3px solid var(--glaze);outline-offset:-3px}
.svc h3 a:focus-visible{outline:none}
.svc p{color:var(--ink-soft);font-size:.97rem}
.svc .spec{margin-top:auto;padding-top:12px;font:500 .72rem/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--glaze)}
.svc .more{font-weight:700;font-size:.92rem}

/* Galleries */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.filters button{font:600 .92rem/1 var(--body);background:transparent;color:inherit;border:1.5px solid var(--grout);border-radius:0;padding:10px 16px;cursor:pointer}
.filters button:hover{border-color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap);grid-auto-flow:dense}
.gallery figure{position:relative;margin:0;aspect-ratio:1;overflow:hidden;border-radius:0;background:var(--grout)}
.gallery figure.big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gallery .zoom{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;margin:0;border:0;background:none;cursor:zoom-in}
.gallery .zoom:focus-visible{outline:3px solid var(--glaze);outline-offset:-3px}
.gallery img{width:100%;height:100%;object-fit:cover;}

.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;font:500 .7rem/1.25 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.66));pointer-events:none}
@media (max-width:760px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery figure.big{grid-row:span 1;aspect-ratio:2/1}}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:50;background:rgba(10,14,13,.94);display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px))}
.lb img{max-height:86vh;max-width:100%;object-fit:contain;border-radius:0}
.lb button{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:calc(16px + env(safe-area-inset-right,0px));background:#fff;color:var(--ink);border:0;border-radius:0;font:700 1rem var(--body);padding:10px 14px;cursor:pointer}

/* Chips: service areas, neighborhoods, jump links */
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li,.jump a{padding:8px 14px;background:var(--white);border:1px solid var(--grout);border-radius:0;font-weight:600;font-size:.95rem}
.chips li.link{border-color:var(--glaze)}
.chips a{text-decoration:none;color:var(--glaze)}
.dark .chips li{background:transparent;border-color:var(--grout-dark);color:#f1f1f1}
.jump{display:flex;gap:8px;flex-wrap:wrap}
.jump a{text-decoration:none}
.jump a:hover{border-color:var(--glaze);color:var(--glaze)}
.areas{padding-block:56px}
.areas .wrap{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start}
.areas h2{font-size:2.2rem;margin-top:10px}
@media (max-width:760px){.areas .wrap{grid-template-columns:1fr;gap:20px}}

/* FAQ */
.faq-wrap{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:56px;align-items:start}
.faq-wrap .sec-head{margin-bottom:0;position:sticky;top:110px}
.faq{border-top:1px solid var(--grout)}
.faq details{border-bottom:1px solid var(--grout)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font:700 1.1rem/1.35 var(--body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:30px;height:30px;display:grid;place-items:center;border:1.5px solid var(--grout);border-radius:0;font:600 1.2rem/1 var(--body);color:var(--glaze);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--glaze)}
.faq .a{padding:0 50px 22px 0;color:var(--ink-soft);max-width:70ch}
@media (max-width:860px){.faq-wrap{grid-template-columns:1fr;gap:28px}.faq-wrap .sec-head{position:static}.faq .a{padding-right:0}}

/* Related services */
.related a{background:var(--white);padding:22px 24px;text-decoration:none;display:flex;flex-direction:column;gap:6px;min-width:0}
.related b{font:700 1.35rem/1.1 var(--display);text-transform:uppercase}
.related span{color:var(--ink-soft);font-size:.94rem}
.related .go{margin-top:6px;font-weight:700;font-size:.9rem;color:var(--glaze)}
.related a:hover b{color:var(--glaze)}

/* Reviews (fill in real reviews, then un-hide) */
.review{margin:0;gap:14px}
.stars{color:var(--glaze);letter-spacing:3px;font-size:1.1rem}
.review blockquote{margin:0;font-size:1.05rem;line-height:1.55}
.review cite{font:500 .76rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-style:normal}

/* About */
.story{display:grid;grid-template-columns:1fr 1fr;gap:20px 48px}
.story p{color:var(--ink-soft);font-size:1.08rem}
.dark .story p{color:var(--ink-muted)}
@media (max-width:760px){.story{grid-template-columns:1fr}}
.hood{margin-top:40px;display:flex;flex-direction:column;gap:14px}
.license{padding-block:48px}
.license .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap}
.license .num{font:800 clamp(2.2rem,5vw,3.4rem)/1 var(--display);letter-spacing:.02em}
.license .copy{display:flex;flex-direction:column;gap:10px;max-width:560px}
.license .copy p{color:var(--ink-soft)}

/* Estimate */
.estimate{background:var(--ink);color:#fff;border-top:8px solid var(--glaze)}
.estimate .eyebrow{color:var(--sand)}
.estimate .lede{color:#cfcfcf}
.estimate .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:start}
.estimate .side{display:flex;flex-direction:column;gap:22px;min-width:0}
.estimate h1{font-size:clamp(2.4rem,5vw,3.8rem)}
.estimate.first{margin-top:24px}
.contact-card{display:flex;flex-direction:column;gap:4px;padding:24px;background:var(--ink);color:#fff;border-radius:0}
.contact-card small{font:500 .72rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sand);margin-top:12px}
.contact-card small:first-child{margin-top:0}
.contact-card a{text-decoration:none;overflow-wrap:anywhere}
.contact-card a:hover{text-decoration:underline}
.contact-card .big{font:800 2.2rem/1.05 var(--display);letter-spacing:.01em}
.next{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;counter-reset:n}
.next li{counter-increment:n;display:grid;grid-template-columns:44px 1fr;gap:4px 14px}
.next li::before{content:counter(n);grid-row:span 2;width:44px;height:44px;display:grid;place-items:center;background:var(--glaze);color:#fff;font:800 1.5rem/1 var(--display);border-radius:0}
.next b{font:700 1.2rem/1.2 var(--display);text-transform:uppercase}
.next span{color:#cfcfcf;font-size:.95rem}
form.est{background:var(--white);color:var(--ink);border-radius:0;padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:0}
form.est .full{grid-column:1/-1}
form.est label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem;min-width:0}
form.est input,form.est select,form.est textarea{font:400 1rem var(--body);padding:12px 14px;border:1.5px solid var(--grout);border-radius:0;background:var(--porcelain);color:var(--ink);width:100%}
form.est input:focus,form.est select:focus,form.est textarea:focus{outline:none;border-color:var(--glaze);background:#fff;box-shadow:0 0 0 3px var(--glaze-tint)}
form.est textarea{min-height:120px;resize:vertical}
form.est .btn{width:100%;font-size:1.05rem}
.fine{font-size:.78rem;color:var(--ink-soft)}
.req{color:var(--glaze)}
.form-error{color:#9b2c1f;font-weight:600;font-size:.92rem}
.thanks{grid-column:1/-1;padding:16px;background:var(--glaze-tint);border-left:4px solid var(--glaze);font-weight:600}
@media (max-width:900px){.estimate .wrap{grid-template-columns:1fr;gap:36px}}
@media (max-width:520px){form.est{grid-template-columns:1fr;padding:22px}}

/* Footer */
footer.site{background:var(--ink);color:var(--ink-muted);padding-block:56px 40px;font-size:.92rem}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px}
footer.site b{display:block;color:#fff;font:700 1.15rem/1.2 var(--display);text-transform:uppercase;letter-spacing:.02em;margin-bottom:12px}
footer.site a{color:#fff;text-decoration:none}
footer.site a:hover{color:var(--sand)}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
footer.site .lic{font:500 .74rem/1.5 var(--mono);letter-spacing:.06em;margin-top:12px;color:var(--sand)}
footer.site .legal{margin-top:40px;padding-top:20px;border-top:1px solid var(--grout-dark);font-size:.8rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media (max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}footer.site{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}}
@media (max-width:520px){footer.site .cols{grid-template-columns:1fr}}

/* Mobile call bar */
.callbar{display:none}
@media (max-width:900px){
  .callbar{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--grout);padding:var(--gap) max(var(--gap),env(safe-area-inset-right,0px)) calc(var(--gap) + env(safe-area-inset-bottom,0px)) max(var(--gap),env(safe-area-inset-left,0px))}
  .callbar a{display:flex;align-items:center;justify-content:center;padding:15px;font-weight:700;text-decoration:none;border-radius:0}
  .callbar .c1{background:var(--ink);color:#fff}
  .callbar .c2{background:var(--glaze);color:#fff}
}

/* Small-screen refinements */
@media (max-width:600px){
  .hide-sm{display:none}
  .strip{font-size:.72rem}
  .t5{padding:10px}
  .t5 b{font-size:1.9rem}
  .t5 small{display:none}
}

/* Section heads with nothing below them */
.sec-head.solo{margin-bottom:0}
.review-grid{margin-top:36px}


/* ===== Industrial restyle: red and black, hard geometry ===== */
.strip{border-bottom:4px solid var(--glaze)}
.logo-text{font-stretch:75%}
.eyebrow::before{content:"";display:inline-block;width:.7em;height:.7em;background:var(--glaze);margin-right:.7em;vertical-align:-.02em}
.dark .eyebrow::before,.estimate .eyebrow::before{background:var(--sand)}
.btn{font-weight:800;letter-spacing:.02em;text-transform:uppercase;font-size:.95rem}
.btn-primary{clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}
.btn-primary:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 6px var(--ink)}
.btn-lg{padding:1.2em 2.1em;font-size:1.05rem}
.btn-ghost-light{border-color:#fff;color:#fff}
.btn-ghost-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.grid{background:var(--ink)}
.dark .grid{background:var(--grout-dark)}
.dark{position:relative}
.dark::before{content:"";position:absolute;left:0;top:0;width:min(240px,40vw);height:10px;background:var(--glaze)}
.trust{background:var(--ink);border-block:0}
.trust li{border-left-color:var(--grout-dark)}
.trust b{color:#fff}
.trust b::before{content:"";display:inline-block;width:.55em;height:.55em;background:var(--glaze);margin-right:.5em;vertical-align:.08em}
.trust span{color:var(--ink-muted)}
@media (max-width:760px){.trust li:nth-child(n+3){border-top-color:var(--grout-dark)}}
.frame{background:var(--ink);box-shadow:14px 14px 0 var(--glaze)}
.chips li.link{border-color:var(--glaze);border-width:2px}
.contact-card{background:#000;border-left:8px solid var(--glaze)}
footer.site{border-top:8px solid var(--glaze);background:#000}
.callbar{background:var(--ink)}
.steps li::before{color:var(--glaze)}

/* Home hero banner */
.hero-banner{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:#fff;min-height:clamp(540px,84vh,860px);display:flex;align-items:flex-end;padding-block:clamp(110px,16vh,180px) clamp(56px,9vh,96px)}
.hero-banner .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.hero-banner::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(8,8,8,.93) 0%,rgba(8,8,8,.78) 42%,rgba(8,8,8,.2) 100%)}
.hero-slab{position:absolute;right:0;bottom:0;z-index:-1;width:clamp(110px,22vw,320px);aspect-ratio:1;background:var(--glaze);clip-path:polygon(100% 0,100% 100%,0 100%)}
.hero-banner .wrap{width:100%}
.hero-banner .copy{max-width:780px;display:flex;flex-direction:column;gap:24px;border-left:10px solid var(--glaze);padding-left:clamp(18px,3vw,34px);min-width:0}
.hero-banner h1{font-size:clamp(2.7rem,7.2vw,5.8rem);line-height:.95;color:#fff}
.hero-banner h1 em{font-style:normal;background:var(--glaze);color:#fff;padding:0 .14em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hero-banner .eyebrow{color:#fff}
.hero-banner .lede{color:#e2e2e2;font-size:1.2rem}
.hero-banner .note{color:#c9c9c9}
@media (max-width:760px){
  .hero-banner{min-height:0;padding-block:72px 64px}
  .hero-banner::before{background:linear-gradient(180deg,rgba(8,8,8,.55) 0%,rgba(8,8,8,.88) 55%,rgba(8,8,8,.95) 100%)}
  .hero-banner .ctas .btn{flex:1 1 100%}
}

/* ===== Layout system: spacing scale, structured grid, blueprint lines ===== */
:root{
  --sec-pad:clamp(72px,9vw,120px);
  --head-gap:clamp(36px,4vw,56px);
  --col-gap:clamp(24px,4vw,56px);
  --bp-line:rgba(17,17,17,.05);      /* blueprint minor line on light */
  --bp-major:rgba(17,17,17,.075);    /* blueprint major line on light */
  --bp-line-dk:rgba(255,255,255,.045);
  --bp-major-dk:rgba(255,255,255,.08);
}
section{padding-block:var(--sec-pad)}
.sec-head{margin-bottom:var(--head-gap)}
@media (max-width:600px){section{padding-block:64px}}

/* Blueprint grid texture: 24px minor squares, 120px major squares */
.band,.areas{
  background-color:var(--white);
  background-image:
    linear-gradient(var(--bp-major) 1px,transparent 1px),
    linear-gradient(90deg,var(--bp-major) 1px,transparent 1px),
    linear-gradient(var(--bp-line) 1px,transparent 1px),
    linear-gradient(90deg,var(--bp-line) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;
  background-position:center top;
}
.dark,footer.site{
  background-image:
    linear-gradient(var(--bp-major-dk) 1px,transparent 1px),
    linear-gradient(90deg,var(--bp-major-dk) 1px,transparent 1px),
    linear-gradient(var(--bp-line-dk) 1px,transparent 1px),
    linear-gradient(90deg,var(--bp-line-dk) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;
  background-position:center top;
}
.areas{border-top:1px solid var(--grout);padding-block:clamp(56px,6vw,80px)}

/* Two sections with the same ground sit flush; the dimension line separates them */
section.band + section.band,
section:not(.band):not(.dark):not(.estimate):not(.hero-banner):not(.phero) + section:not(.band):not(.dark):not(.estimate):not(.phero){padding-top:0;border-top:0}

/* Dimension line above every section heading: a rule with end ticks, like a drawing callout */
.sec-head{position:relative;padding-top:26px}
.sec-head::before{
  content:"";position:absolute;left:0;right:0;top:0;height:11px;opacity:.45;pointer-events:none;
  background:
    linear-gradient(currentColor,currentColor) 0 5px/100% 1px no-repeat,
    linear-gradient(currentColor,currentColor) 0 0/1px 11px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 0/1px 11px no-repeat;
}
.dark .sec-head::before{opacity:.35}

/* Section heading grid: label and title on the left, intro on the right, bottoms aligned */
@media (min-width:901px){
  .wrap:not(.faq-wrap) > .sec-head:not(.row){display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--col-gap);row-gap:16px;align-items:end}
  .wrap:not(.faq-wrap) > .sec-head:not(.row) > .eyebrow{grid-column:1;grid-row:1}
  .wrap:not(.faq-wrap) > .sec-head:not(.row) > h2{grid-column:1;grid-row:2}
  .wrap:not(.faq-wrap) > .sec-head:not(.row) > .lede{grid-column:2;grid-row:1 / span 2;align-self:end;max-width:none}
}

/* Typography: heavier, tighter, one scale */
h1,h2,h3{letter-spacing:-.005em}
h2{font-size:clamp(2.3rem,4.8vw,3.7rem);font-weight:900;line-height:.94}
h3{font-size:1.38rem;font-weight:800;line-height:1.05}
.eyebrow{font-weight:600;font-size:.74rem;letter-spacing:.14em}
.lede{color:#363636}
.dark .lede{color:var(--ink-muted)}
.cell p,.svc p,.story p,.faq .a,.related span{color:#3d3d3d}
.dark .cell p,.dark .story p{color:var(--ink-muted)}
.tag{font-weight:600}

/* Cards in a row line up: titles, spec lines and links share baselines */
.svc h3{min-height:2.1em}
.svc .spec{min-height:3.2em}
@media (max-width:600px){.svc h3,.svc .spec{min-height:0}}

/* High-contrast buttons: solid red or solid black outline, 3px borders, 52px tall */
.btn{min-height:52px;padding:0 1.6em;border-width:3px;border-style:solid}
.btn-lg{min-height:60px;padding:0 2.1em}
.btn-primary{background:var(--glaze);border-color:var(--glaze);color:#fff}
.btn-primary:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.dark .btn-primary:hover,.estimate .btn-primary:hover,.hero-banner .btn-primary:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.dark .btn-ghost{border-color:#fff;color:#fff}
.dark .btn-ghost:hover{background:#fff;color:var(--ink)}
nav.main .btn{min-height:46px;padding:0 1.25em}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.dark :focus-visible,.hero-banner :focus-visible,.estimate .side :focus-visible,footer.site :focus-visible,.strip :focus-visible{outline-color:#fff}
.btn-primary:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:none}
.hero-banner .btn-primary:focus-visible{outline-color:#fff}
.textlink{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;color:var(--glaze-deep)}
.dark .textlink{color:#fff;text-decoration-color:var(--sand)}

/* Navigation: clear current-page marker, roomy tap targets */
nav.main > a:not(.btn),.dd summary{padding-block:10px}
@media (min-width:901px){
  nav.main > a[aria-current="page"]:not(.btn),.dd summary.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--glaze)}
  nav.main > a:not(.btn):hover,.dd summary:hover{color:var(--glaze)}
  .dd-panel a[aria-current="page"]{color:var(--glaze);background:var(--glaze-tint)}
}
@media (max-width:900px){
  nav.main a[aria-current="page"]:not(.btn){color:var(--glaze);box-shadow:inset 3px 0 0 var(--glaze);padding-left:12px}
  .dd-panel a{padding-block:12px}
  body.nav-open{overflow:hidden}
}

/* Consistent inner spacing for repeated pieces */
.cell{padding:28px 26px 30px}
.svc .body{padding:24px 24px 26px}
.trust li{padding-block:24px}
.related a{padding:24px 26px}
.hood{margin-top:var(--head-gap)}
.filters{margin-bottom:24px}

/* ===== Services overview + before/after projects ===== */
.more-row{margin-top:28px;display:flex;justify-content:flex-start}
.svc-types-band{padding-block:clamp(48px,6vw,72px)}
.svc-type{gap:14px;padding:32px 28px 34px}
.svc-type p{flex:1}
.svc-type .btn{align-self:flex-start;margin-top:6px}
.svc-icon{width:72px;height:72px;display:grid;place-items:center;background:var(--ink);color:#fff;margin-bottom:6px}
.svc-icon svg{width:44px;height:44px;display:block}
.svc-icon.big{width:120px;height:120px}
.svc-icon.big svg{width:72px;height:72px}
.svc-detail{border-top:1px solid var(--grout);scroll-margin-top:96px}
.svc-detail:nth-of-type(even){background:var(--white)}
.svc-detail-grid{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:var(--col-gap);align-items:start}
.svc-detail-grid h3{margin-bottom:14px}
.included{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;border-top:3px solid var(--ink)}
.included li{padding:12px 0 12px 24px;border-bottom:1px solid var(--grout);position:relative;font-weight:600}
.included li::before{content:"";position:absolute;left:0;top:1.15em;width:10px;height:10px;background:var(--glaze)}
.included a{color:inherit;text-decoration:underline;text-decoration-color:var(--glaze);text-decoration-thickness:2px;text-underline-offset:4px}
.included a:hover{color:var(--glaze-deep)}
.svc-cta{display:flex;flex-direction:column;gap:10px;min-width:240px}
@media (max-width:1000px){.svc-detail-grid{grid-template-columns:minmax(0,1fr)}.svc-icon.big{display:none}.svc-cta{flex-direction:row;flex-wrap:wrap;min-width:0}}
@media (max-width:600px){.included{grid-template-columns:1fr}.svc-cta .btn{flex:1 1 100%}}

.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;align-items:start;border-top:var(--gap) solid var(--ink);border-left:var(--gap) solid var(--ink)}
.projects .project[hidden]{display:none!important}
@media (max-width:900px){.projects{grid-template-columns:minmax(0,1fr)}}
.project{background:var(--white);display:flex;flex-direction:column;min-width:0;scroll-margin-top:110px;border-right:var(--gap) solid var(--ink);border-bottom:var(--gap) solid var(--ink);align-self:stretch}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);background:var(--ink);border-bottom:var(--gap) solid var(--ink)}
.ba figure{position:relative;margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--grout)}
.ba img{width:100%;height:100%;object-fit:cover;}

.ba .zoom{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;margin:0;border:0;background:none;cursor:zoom-in}
.ba .zoom:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.ba figcaption{position:absolute;left:0;top:0;padding:7px 12px;background:var(--ink);color:#fff;font:600 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
.ba figure.after figcaption{background:var(--glaze)}
.project .body{padding:26px 26px 30px;display:flex;flex-direction:column;gap:14px;flex:1}
.project h3{font-size:1.6rem}
.project p{color:#3d3d3d}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{font:600 .68rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--ink);padding:5px 8px}
.tags span:first-child{background:var(--ink);color:#fff}
.tl-head{margin:6px 0 0;font:600 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:3px solid var(--ink)}
.timeline li{position:relative;padding:16px 14px 0 0;display:flex;flex-direction:column;gap:4px;min-width:0}
.timeline li::before{content:"";position:absolute;left:0;top:-8px;width:13px;height:13px;background:var(--ink)}
.timeline li:last-child::before{background:var(--glaze)}
.timeline b{font:600 .74rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--glaze-deep)}
.timeline span{font-size:.92rem;color:#3d3d3d;line-height:1.45}
@media (max-width:520px){.timeline{grid-template-columns:minmax(0,1fr);border-top:0;border-left:3px solid var(--ink)}.timeline li{padding:0 0 14px 18px}.timeline li::before{left:-8px;top:2px}}
.filter-empty{margin-top:20px;font-weight:600}

/* ===== Contact page ===== */
.contact-hero{background:var(--ink);color:#fff;border-bottom:8px solid var(--glaze);padding-block:clamp(56px,7vw,96px)}
.contact-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:var(--col-gap);align-items:start}
.contact-hero .side{display:flex;flex-direction:column;gap:22px;min-width:0}
.contact-hero h1{color:#fff;font-size:clamp(2.8rem,6vw,4.6rem)}
.contact-hero .lede{color:#d6d6d6}
.contact-hero .eyebrow{color:#fff}
.contact-hero .note{color:#bdbdbd}
.contact-hero .next span{color:#cfcfcf}
@media (max-width:900px){.contact-hero .wrap{grid-template-columns:minmax(0,1fr)}.contact-hero .side{position:static}}
form.quote{display:flex;flex-direction:column;gap:26px;padding:clamp(22px,3vw,36px);border-top:8px solid var(--glaze)}
form.quote fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;min-width:0}
form.quote legend{display:flex;align-items:center;gap:12px;padding:0 0 12px;margin-bottom:4px;width:100%;border-bottom:3px solid var(--ink);font:800 1.25rem/1 var(--display);text-transform:uppercase;font-stretch:75%}
form.quote .step{font:600 .72rem/1 var(--mono);letter-spacing:.1em;background:var(--ink);color:#fff;padding:6px 7px}
form.quote .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){form.quote .row2{grid-template-columns:1fr}}
form.quote input,form.quote select,form.quote textarea{border-radius:0;border-width:2px;min-height:48px}
form.quote select{appearance:auto}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--glaze)}
.choice{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.choice-label{font-weight:600;font-size:.92rem;flex-basis:100%}
.choice label{position:relative;display:block}
.choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.choice label span{display:block;padding:11px 20px;border:2px solid var(--ink);font-weight:700;font-size:.95rem;cursor:pointer;min-width:84px;text-align:center}
.choice input:checked + span{background:var(--ink);color:#fff;box-shadow:inset 0 -4px 0 var(--glaze)}
.choice input:focus-visible + span{outline:3px solid var(--glaze);outline-offset:2px}

.phone-band{background:var(--glaze);color:#fff;padding-block:clamp(56px,7vw,88px)}
.phone-band .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--col-gap);align-items:center}
.phone-band h2{color:#fff}
.phone-band .eyebrow{color:#fff}
.phone-band .eyebrow::before{background:#fff}
.phone-copy{display:flex;flex-direction:column;gap:14px;max-width:560px}
.phone-copy p{color:#ffe3e6;font-size:1.1rem}
.phone-actions{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.phone-num{font:900 clamp(2.6rem,7vw,5rem)/.9 var(--display);font-stretch:75%;color:#fff;text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.phone-num:hover{text-decoration:underline;text-decoration-thickness:4px}
.phone-band .btn-primary{background:var(--ink);border-color:var(--ink)}
.phone-band .btn-primary:hover{background:#fff;border-color:#fff;color:var(--ink)}
.phone-band .btn-ghost{border-color:#fff;color:#fff}
.phone-band .btn-ghost:hover{background:#fff;color:var(--glaze)}
.phone-band :focus-visible{outline-color:#fff}
.phone-alt{font:500 .8rem/1.5 var(--mono);color:#ffe3e6}
.phone-alt a{color:#fff}
@media (max-width:860px){.phone-band .wrap{grid-template-columns:minmax(0,1fr)}.phone-num{white-space:normal}}

.rotator{border:var(--gap) solid var(--ink);background:var(--white)}
.rot-track{position:relative}
.slide{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:380px}
.slide[hidden]{display:none!important}
.slide-photo{position:relative;background:var(--grout);overflow:hidden;border-right:var(--gap) solid var(--ink)}
.slide-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide-photo figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:#fff;padding:8px 12px;font:600 .7rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.slide-body{padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;justify-content:center;gap:18px}
.slide-body .stars{font-size:1.6rem;letter-spacing:4px;color:var(--glaze)}
.slide-body .stars .off{color:var(--grout)}
.slide-body blockquote{margin:0;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.5;font-weight:500}
.slide-body blockquote::before{content:"“";display:block;font:900 4rem/.6 var(--display);color:var(--glaze);margin-bottom:6px}
.slide-body cite{font-style:normal;font:600 .8rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.slide-body cite b{color:var(--ink)}
.slide.example .slide-body{background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(200,16,46,.04) 14px 28px)}
.ex-badge{align-self:flex-start;background:var(--glaze);color:#fff;font:600 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 8px}
.slide.no-photo{grid-template-columns:minmax(0,1fr)}
@media (max-width:760px){.slide{grid-template-columns:minmax(0,1fr);min-height:0}.slide-photo{aspect-ratio:4/3;border-right:0;border-bottom:var(--gap) solid var(--ink)}}
.rot-controls{display:flex;align-items:center;gap:10px;padding:14px 16px;border-top:var(--gap) solid var(--ink);flex-wrap:wrap}
.rot-btn{min-width:48px;min-height:44px;background:var(--white);border:3px solid var(--ink);font:800 1.1rem/1 var(--body);cursor:pointer;color:var(--ink)}
.rot-btn:hover{background:var(--ink);color:#fff}
.rot-pause{margin-left:auto;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;padding:0 14px}
.rot-dots{display:flex;gap:6px}
.rot-dots button{width:30px;height:12px;border:2px solid var(--ink);background:var(--white);padding:0;cursor:pointer}
.rot-dots button[aria-current="true"]{background:var(--glaze);border-color:var(--glaze)}
.rot-empty{border:var(--gap) solid var(--ink);background:var(--white);padding:clamp(24px,4vw,44px);display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.rot-empty p{font-size:1.15rem;max-width:56ch}

/* ===== Our Standards ===== */
.ck{width:20px;height:20px;flex:none;margin-top:2px}
.hero-ticks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 22px}
.hero-ticks li{display:flex;gap:9px;align-items:flex-start;font-weight:700}
.creds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:var(--gap) solid var(--ink);border-left:var(--gap) solid var(--ink)}
@media (max-width:900px){.creds{grid-template-columns:minmax(0,1fr)}}
.cred{background:var(--white);border-right:var(--gap) solid var(--ink);border-bottom:var(--gap) solid var(--ink);padding:28px 26px 30px;display:flex;flex-direction:column;gap:12px;min-width:0}
.cred-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}
.cred-stamp{font:600 .7rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--glaze);color:var(--glaze-deep);padding:6px 8px;transform:rotate(-3deg);text-align:center}
.cred h3{font-size:2rem}
.cred-sub{font:600 .76rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.ticks{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;border-top:2px solid var(--ink)}
.ticks li{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--grout);font-weight:500}
.cred-link{margin-top:auto;padding-top:8px}
.svc-icon.sm{width:56px;height:56px;margin-bottom:4px}
.svc-icon.sm svg{width:34px;height:34px}
.dark .svc-icon{background:var(--glaze)}
.dark .svc-icon svg [fill="var(--glaze)"]{fill:#111}
.dark .svc-icon svg [stroke="var(--glaze)"]{stroke:#111}
.practice{gap:12px}
.faq-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px) var(--col-gap)}
@media (max-width:900px){.faq-groups{grid-template-columns:minmax(0,1fr)}}
.faq-group{min-width:0}
.faq-group-head{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.faq-group-head .svc-icon{margin:0}
.faq-group-head h3{font-size:1.7rem}
.faq-group .faq{border-top:3px solid var(--ink)}
.faq-group .faq summary{font-size:1.02rem;padding:17px 0}
.faq-group .faq .a{padding-right:0}

/* Mid-width desktop: keep the menu on one line */
@media (min-width:901px) and (max-width:1180px){
  header.site .wrap{gap:14px}
  nav.main{gap:14px}
  nav.main > a:not(.btn),.dd summary{font-size:.88rem}
  nav.main .btn{padding:0 .9em;font-size:.82rem;min-height:42px}
  .logo-text{font-size:1.25rem}
  .logo img{height:38px}
}
@media (min-width:901px) and (max-width:1000px){.logo-text{font-size:1.05rem}nav.main{gap:11px}nav.main > a:not(.btn),.dd summary{font-size:.84rem}}

/* ===== Performance + mobile menu ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
picture{display:contents}
.hero-pic{display:contents}
.ba figure img,.gallery img{background:var(--grout)}
section,.areas,footer.site{content-visibility:auto;contain-intrinsic-size:auto 800px}
.hero-banner,.contact-hero,.phero{content-visibility:visible}
.nav-call{display:none}
.menu-btn{display:none;align-items:center;gap:10px;min-height:44px}
.bars{position:relative;width:20px;height:2px;background:currentColor;display:inline-block}
.bars::before,.bars::after{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor}
.bars::before{top:-6px}.bars::after{top:6px}
.menu-btn[aria-expanded="true"] .bars{background:transparent}
.menu-btn[aria-expanded="true"] .bars::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{top:0;transform:rotate(-45deg)}
@media (max-width:900px){
  header.site{top:0}
  .menu-btn{display:inline-flex}
  nav.main{position:fixed;left:0;right:0;top:var(--hdr-bottom,72px);bottom:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;z-index:40;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));border-top:4px solid var(--glaze);box-shadow:0 30px 60px rgba(0,0,0,.25)}
  nav.main > a:not(.btn),.dd summary{min-height:52px;display:flex;align-items:center;font-size:1.05rem}
  .dd-panel a{min-height:48px;display:flex;align-items:center}
  nav.main .btn{min-height:54px}
  .nav-call{display:flex;align-items:center;justify-content:center;min-height:54px;margin-top:10px;border:3px solid var(--ink);font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.02em;font-size:.95rem}
  body.nav-open .callbar{display:none}
  .logo img{height:40px}
}
@media (max-width:420px){.strip .wrap{justify-content:center;text-align:center}}
/* iOS: inputs at 16px or more never trigger zoom */
input,select,textarea{font-size:max(16px,1rem)}
@media (max-width:900px){
  /* backdrop-filter would trap the fixed menu inside the header; use a solid header on phones */
  header.site{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--porcelain)}
}
@media (max-width:900px){nav.main > a.nav-call{border:3px solid var(--ink);padding:0 12px}}

/* ===== Gallery show more ===== */
.gallery figure.extra{display:none}
.gallery.open figure.extra{display:block}
.gallery figure.extra[hidden]{display:none}
.show-more{margin-top:18px}
.gallery picture{display:contents}
.gallery img{width:100%;height:100%;object-fit:cover}

/* Three-step before / during / after */
.ba.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:420px){.ba.three figcaption{padding:6px 8px;font-size:.62rem;letter-spacing:.1em}}

/* Hero background video (loads after the photo; photo stays as fallback) */
.hero-banner .hero-vid{opacity:0;transition:opacity .9s ease;pointer-events:none}
.hero-banner .hero-vid.on{opacity:1}
@media (prefers-reduced-motion:reduce){.hero-banner .hero-vid{display:none}}
