/* American Tile Solutions Group: site.css
   Logo (their 4500px transparent file, same art as the Google avatar): red #ed1c24, black, grey #b3b3b3. Lettering = Poppins.
   Brief palette #484830 / #a89078 / #907860: olive grounds, taupe joints and kickers, umber hairlines.
   Idea: the page is a tiled wall. Hairline "joints" between blocks, photos set edge to edge with a grout gap. */
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/poppins-800.woff2) format("woff2")}
@font-face{font-family:"Assistant";font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/assistant-300_800.woff2) format("woff2")}

:root{
  --ink:#111110;      /* logo black, warmed */
  --black:#000;
  --red:#ed1c24;      /* logo red */
  --red-d:#c8141b;    /* buttons: white on this = 5.9:1 */
  --red-dd:#a50f15;
  --red-l:#ff6167;    /* accent text on dark */
  --grey:#b3b3b3;     /* logo "SOLUTIONS" */
  --olive:#484830;    /* brief: darkest, rich grounds */
  --olive-d:#34341f;
  --taupe:#a89078;    /* brief: joints + kickers on dark */
  --umber:#907860;    /* brief: hairlines on paper */
  --umber-d:#5d4c3b;  /* umber deepened for small text on paper */
  --paper:#f7f4ef; --paper-2:#ece7de; --white:#fff;
  --text:#1b1a17; --mute:#54514a; --fog:#ece7de; --fog-2:#c4bcae;
  --line:rgba(72,72,48,.2); --line-d:rgba(236,231,222,.17);
  --fd:"Poppins","Arial Black",system-ui,sans-serif;
  --fb:"Assistant",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gut:max(clamp(18px,5vw,40px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));
  --max:1260px;
  --edge:max(var(--gut),calc((var(--vw,100vw) - var(--max)) / 2));
  --hdr-h:68px;
  --grout:4px;
  --r:2px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 12px);color-scheme:light;-webkit-tap-highlight-color:rgba(237,28,36,.2)}
@media (max-width:1079px){html{scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
a,button,input,select,textarea,label,summary{touch-action:manipulation}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--text);font:400 1.0625rem/1.55 var(--fb);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
img{height:auto}
figure,blockquote{margin:0}
:where(ul,ol)[role="list"]{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
address{font-style:normal}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--red-l);outline-offset:3px;border-radius:2px}
.t-paper :focus-visible,.t-paper2 :focus-visible,.lead-form :focus-visible{outline-color:var(--red-d)}
::selection{background:var(--red);color:#fff}
:where(a,button,span,p,li,div) > svg:where(:not([width])){width:1.15em;height:1.15em;flex:none}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--red-d);color:#fff;padding:10px 16px;font-weight:700;border-radius:var(--r);transition:top .2s}
.skip:focus{top:12px}
.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.tel{white-space:nowrap}

/* ---------- type ---------- */
.dh{font:800 clamp(1.8rem,1.3rem + 2.5vw,3.3rem)/1.07 var(--fd);letter-spacing:-.03em;color:var(--ink);text-wrap:balance}
.dh-s{font-size:clamp(1.5rem,1.2rem + 1.5vw,2.4rem)}
.ac{color:var(--red-d)}
.kick{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font:600 .68rem/1.3 var(--fd);letter-spacing:.2em;text-transform:uppercase;color:var(--umber-d);margin-bottom:14px;width:fit-content}
.mk{width:14px;height:19px;flex:none}
.mk-a{fill:var(--grey)}.mk-b{fill:var(--red)}.mk-c{fill:var(--ink)}
.lede{font-size:1.14rem;line-height:1.5;color:var(--mute);max-width:58ch;margin-top:14px}
.prose{margin-top:16px}
.prose p{color:var(--mute);max-width:62ch}
.prose p + p,.prose .para + p,.prose p + .para,.prose .para + .para{margin-top:12px}
.para p + p{margin-top:9px}
@media (min-width:960px){.para p{display:inline}.para p + p{margin-top:0}.para p::after{content:" "}}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

/* tones */
.t-ink,.t-olive{color:var(--fog)}
.t-ink{background:var(--ink)}
.t-olive{background:var(--olive)}
.t-paper{background:var(--paper)}
.t-paper2{background:var(--paper-2)}
.t-ink .dh,.t-olive .dh{color:#fff}
.t-ink .ac{color:var(--red-l)}
.t-olive .ac{color:#ecd9bf}
.t-ink .kick,.t-olive .kick{color:var(--taupe)}
.t-olive .kick{color:#d6c4af}
.t-ink .mk-c,.t-olive .mk-c{fill:#fff}
.t-ink .lede,.t-olive .lede,.t-ink .prose p,.t-olive .prose p{color:var(--fog)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 24px;border-radius:var(--r);border:1.5px solid transparent;background:var(--red-d);color:#fff;font:600 .9rem/1.1 var(--fd);letter-spacing:-.005em;text-decoration:none;white-space:nowrap;transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s,box-shadow .25s}
.btn svg{width:18px;height:18px}
.btn:hover{background:var(--red-dd);transform:translateY(-2px);box-shadow:0 12px 24px -14px rgba(0,0,0,.6)}
.btn:active{transform:translateY(0)}
.btn-line{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-line:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn-white{background:#fff;color:var(--ink)}
.btn-white:hover{background:var(--paper-2)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(168,144,120,.7)}
.btn-ghost:hover{background:rgba(168,144,120,.16)}
.t-paper .btn-line,.t-paper2 .btn-line{color:var(--ink);border-color:rgba(17,17,16,.5)}
.t-paper .btn-line:hover,.t-paper2 .btn-line:hover{background:rgba(17,17,16,.05);border-color:var(--ink)}
.link,.link-t{display:inline-flex;align-items:center;gap:8px;font:600 .88rem/1.2 var(--fd);text-decoration:none;color:var(--ink);border-bottom:2px solid var(--red);padding-bottom:4px;width:fit-content;transition:gap .25s var(--ease)}
.link:hover{gap:13px}
.t-ink .link,.t-olive .link{color:#fff}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:100;height:calc(var(--hdr-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);transition:background .35s,transform .4s var(--ease),box-shadow .35s;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,0))}
.hdr.solid,body:not(.pg-home) .hdr{background:rgba(17,17,16,.97);box-shadow:0 1px 0 var(--line-d)}
@supports (backdrop-filter:blur(8px)){.hdr.solid,body:not(.pg-home) .hdr{background:rgba(17,17,16,.9);backdrop-filter:blur(10px)}}
.hdr.tuck{transform:translateY(-102%)}
.hdr.tuck:focus-within{transform:none}
.hdr-in{height:var(--hdr-h);display:flex;align-items:center;gap:18px;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.brand{display:block;flex:none;line-height:0}
.brand-logo{height:50px;width:auto}
.nav{margin-left:auto;display:none}
.nav ul{display:flex;gap:2px}
.nav a{display:block;padding:10px 13px;font:500 .84rem/1 var(--fd);color:var(--fog);text-decoration:none;position:relative;transition:color .2s}
.nav a::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:#fff}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.hdr-call{display:none;align-items:center;gap:9px;margin-left:auto;padding:11px 16px;border-radius:var(--r);background:var(--red-d);color:#fff;font:600 .84rem/1 var(--fd);text-decoration:none;white-space:nowrap;transition:background .25s}
.hdr-call:hover{background:var(--red-dd)}
.hdr-call svg{width:16px;height:16px}
.burger{margin-left:auto;width:48px;height:48px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.4);border-radius:var(--r);background:rgba(0,0,0,.3);color:#fff}
.burger svg{width:22px;height:22px}
@media (min-width:560px){.hdr-call{display:inline-flex}.burger{margin-left:0}}
@media (min-width:1120px){.nav{display:block}.hdr-call{margin-left:8px}.burger{display:none}}

/* drawer */
.drawer{position:fixed;inset:0;z-index:150;background:var(--ink);color:var(--fog);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top,0px) + 8px) var(--gut) calc(env(safe-area-inset-bottom,0px) + 24px);overflow-y:auto;overscroll-behavior:contain}
.drawer[hidden]{display:none}
.drawer-top{display:flex;align-items:center;justify-content:space-between;min-height:var(--hdr-h);border-bottom:1px solid var(--line-d)}
.drawer-x{width:48px;height:48px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.4);border-radius:var(--r);background:none;color:#fff}
.drawer-x svg{width:22px;height:22px}
.drawer nav{display:flex;flex-direction:column;padding:14px 0}
.drawer nav > a{font:700 1.4rem/1.1 var(--fd);letter-spacing:-.02em;color:#fff;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line-d)}
.drawer .sub{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 16px;padding:6px 0 10px;border-bottom:1px solid var(--line-d)}
.drawer .sub a{font-size:1rem;color:var(--fog);text-decoration:none;padding:9px 0}
.drawer-cta{display:grid;gap:10px;margin-top:8px}
.drawer-meta{margin-top:18px;font-size:.92rem;color:var(--fog-2)}
body.menu-open{overflow:hidden}

/* ---------- footer ---------- */
.ftr{background:var(--ink);color:var(--fog-2);padding:0 0 calc(96px + env(safe-area-inset-bottom,0px));position:relative}
.ftr-joint{height:var(--grout);background:var(--red)}
.ftr-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:34px;padding-top:54px;padding-bottom:40px}
.ftr-logo-img{width:210px;height:auto}
.ftr-logo{display:inline-block}
.ftr-brand p{margin-top:18px;max-width:42ch;color:var(--fog-2)}
.tagline{display:block;margin-bottom:4px;font:700 1rem/1.3 var(--fd);letter-spacing:-.015em;color:#fff}
.nap{display:flex;flex-direction:column;gap:6px;margin-top:18px;color:var(--fog)}
.nap b{color:#fff;font-weight:700}
.nap a{color:#fff;font-weight:600;text-decoration:none}
.nap a.mail{overflow-wrap:anywhere;color:var(--fog);font-weight:400}
.nap a:hover{text-decoration:underline}
.ftr h2{font:600 .68rem/1.3 var(--fd);letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin-bottom:12px}
.ftr ul a{display:inline-block;padding:6px 0;color:var(--fog);text-decoration:none}
.ftr ul a:hover{color:#fff;text-decoration:underline}
.ftr-towns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px}
.ftr-towns li:last-child{grid-column:1 / -1}
.ftr-base{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line-d);padding-top:22px;font-size:.88rem;color:var(--fog-2)}
@media (min-width:760px){.ftr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ftr-brand{grid-column:1 / -1}.ftr-base{flex-direction:row;justify-content:space-between;gap:24px}}
@media (min-width:1080px){.ftr-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,.9fr)}.ftr-brand{grid-column:auto}.ftr{padding-bottom:40px}}

/* sticky action bar (phones/tablets) */
.actbar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:1.05fr 1fr 1.35fr;gap:8px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom,0px));background:rgba(17,17,16,.97);border-top:1px solid var(--line-d)}
.actbar .btn{min-height:48px;padding:10px 6px;font-size:.8rem;gap:7px}
@media (min-width:1080px){.actbar{display:none}}

/* ---------- hero ---------- */
.kb-img img{animation:kb 26s ease-in-out infinite alternate;transform-origin:50% 52%;will-change:transform}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.11) translate3d(-1%,-1.2%,0)}}
html.motion-off .kb-img img{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.kb-img img{animation:none}}
.motion-btn{position:absolute;right:max(14px,var(--gut));bottom:14px;z-index:4;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.4);border-radius:var(--r);background:rgba(0,0,0,.45);color:#fff;transition:background .2s}
.motion-btn:hover{background:rgba(0,0,0,.72)}
.motion-btn svg{width:16px;height:16px}
.motion-btn .i-play{display:none}
.motion-btn[aria-pressed="true"] .i-play{display:block}
.motion-btn[aria-pressed="true"] .i-pause{display:none}
@media (prefers-reduced-motion:reduce){.motion-btn{display:none}}
@media (max-width:1079px){.hero .motion-btn{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}

.hero{position:relative;min-height:max(680px,100svh);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2;display:block}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.hero-scrim{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 88% 62% at 50% 50%,rgba(8,8,6,.78),rgba(8,8,6,.44) 74%,rgba(8,8,6,.4)),linear-gradient(180deg,rgba(8,8,6,.56),rgba(8,8,6,.08) 26%,rgba(8,8,6,.08) 62%,rgba(8,8,6,.74))}
.hero-in{width:100%;max-width:900px;margin-inline:auto;padding:calc(var(--hdr-h) + env(safe-area-inset-top,0px) + 14px) var(--gut) 84px;display:flex;flex-direction:column;align-items:center}
.hero-logo{width:min(250px,66vw);height:auto;filter:drop-shadow(0 2px 14px rgba(0,0,0,.5))}
.hero-pill{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:7px 14px;border:1px solid rgba(255,255,255,.42);border-radius:99px;font:500 .74rem/1.2 var(--fd);letter-spacing:.04em;background:rgba(0,0,0,.25)}
.hero-pill svg{width:14px;height:14px;color:var(--red-l)}
.hero-pill i,.hero-trust i{font-style:normal;color:var(--taupe);padding-inline:.1em}
h1 .h1-kick{display:block;font:600 .84rem/1.3 var(--fd);letter-spacing:.015em}
h1 .h1-big{display:block;font:800 clamp(3rem,1.25rem + 7.7vw,6.6rem)/.98 var(--fd);letter-spacing:-.045em;text-wrap:balance}
.hero h1{margin-top:18px}
.hero h1 .h1-big{margin-top:8px;text-shadow:0 2px 26px rgba(0,0,0,.45)}
.hero .ac,.phero .ac{color:#ff4d53}
.hero-sub{margin-top:16px;max-width:30em;font-size:1.2rem;line-height:1.4;font-weight:500}
.hero .btn-row{justify-content:center;margin-top:24px}
.hero-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:22px;font-weight:600;font-size:.98rem}
.hero-trust li{position:relative}
@media (max-width:759px){
  .hero{align-items:flex-start;min-height:max(720px,100svh)}
  .hero .btn-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr)}
  .hero .btn-row .btn{width:100%}
}
@media (min-width:760px){.hero-logo{width:340px}.hero-in{padding-bottom:70px}.hero-pill{font-size:.8rem}}

/* ---------- inner hero ---------- */
.phero{position:relative;min-height:clamp(480px,70svh,660px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#fff;isolation:isolate}
.phero-media{position:absolute;inset:0;z-index:-2}
.phero-media img{width:100%;height:100%;object-fit:cover}
.phero-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,8,6,.86),rgba(8,8,6,.62) 46%,rgba(8,8,6,.16) 82%),linear-gradient(0deg,rgba(8,8,6,.55),rgba(8,8,6,0) 40%),linear-gradient(180deg,rgba(8,8,6,.55),rgba(8,8,6,0) 22%)}
.phero-in{padding-top:calc(var(--hdr-h) + 40px);padding-bottom:clamp(44px,6vw,70px)}
.crumbs{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.92rem;color:var(--fog);margin-bottom:14px;width:fit-content}
.crumbs li + li::before{content:"/";margin-right:8px;color:var(--taupe)}
.crumbs a{color:var(--fog)}
.phero h1 .h1-kick{color:#fff}
.phero h1 .h1-big{margin-top:10px;font-size:clamp(2.4rem,1.2rem + 4.7vw,4.7rem);line-height:1.02;letter-spacing:-.04em;max-width:15ch}
.phero-sub{margin-top:14px;font-size:1.16rem;font-weight:500;max-width:36em}
.credit{margin-top:14px;font-size:.8rem;color:var(--fog-2)}
.credit a{color:inherit}
@media (min-width:760px) and (max-width:1199px){.phero-scrim{background:linear-gradient(90deg,rgba(8,8,6,.88),rgba(8,8,6,.78) 68%,rgba(8,8,6,.4)),linear-gradient(180deg,rgba(8,8,6,.5),rgba(8,8,6,0) 22%)}}
@media (max-width:759px){
  .phero{display:block;min-height:0;background:var(--ink)}
  .phero-media{position:relative;height:clamp(230px,60vw,330px);margin-top:calc(var(--hdr-h) + env(safe-area-inset-top,0px));z-index:0;overflow:hidden}
  .phero-media::after{content:"";position:absolute;inset:auto 0 0;height:36%;background:linear-gradient(180deg,rgba(17,17,16,0),var(--ink))}
  .phero-scrim{display:none}
  .phero-in{padding-top:8px;padding-bottom:44px}
  .phero .btn-row{display:grid;grid-template-columns:minmax(0,1fr)}
  .phero .motion-btn{top:calc(var(--hdr-h) + env(safe-area-inset-top,0px) + 10px);bottom:auto}
}

/* ---------- sections ---------- */
.sec{padding-block:clamp(56px,8vw,112px)}
.sec-head{margin-bottom:clamp(26px,3.5vw,44px);max-width:56rem}
.sec-head.duo{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;max-width:none;align-items:end}
.sec-head.duo .lede{margin-top:0}
@media (min-width:960px){.sec-head.duo{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px}.sec-head.duo > .link{justify-self:end;margin-bottom:6px}}
.rv{opacity:1}
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .rv.vis{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}
.ph{display:block;position:relative;overflow:hidden;background:var(--paper-2)}
.ph img{width:100%;height:100%;object-fit:cover}
.r-43{aspect-ratio:4/3}.r-34{aspect-ratio:3/4}.r-11{aspect-ratio:1}.r-fill{height:100%}
.ph:not(.r-43):not(.r-34):not(.r-11):not(.r-fill) img{position:absolute;inset:0}

/* grout strip under the hero */
.grout{border-bottom:var(--grout) solid var(--red)}
.grout-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-d)}
.grout-row li{background:var(--ink);padding:18px 14px 18px 0;display:flex;flex-direction:column;gap:3px}
.grout-row li:nth-child(even){padding-left:14px}
.grout-row b{font:700 .92rem/1.2 var(--fd);color:#fff;letter-spacing:-.01em}
.grout-row span{font-size:.95rem;line-height:1.3;color:var(--fog-2)}
@media (min-width:860px){.grout-row{grid-template-columns:repeat(4,minmax(0,1fr))}.grout-row li,.grout-row li:nth-child(even){padding:24px 20px}.grout-row li:first-child{padding-left:0}}

/* intro: offset pair of photos */
.intro-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:34px}
.intro-ph{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
.ip-a{grid-column:1 / 10;grid-row:1;aspect-ratio:3/4}
.ip-b{grid-column:7 / 13;grid-row:1;aspect-ratio:3/4;margin-top:34%;border:var(--grout) solid var(--paper);z-index:1}
@media (min-width:960px){.intro-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:center}}

/* services: tile layout with a grout gap */
.svc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--grout);background:var(--paper-2)}
.svc-c a{display:grid;grid-template-rows:auto auto;height:100%;background:var(--ink);color:#fff;text-decoration:none;position:relative;overflow:hidden}
.svc-c .ph{aspect-ratio:4/3;background:var(--ink)}
.svc-c .ph img{transition:transform .9s var(--ease)}
.svc-c a:hover .ph img{transform:scale(1.04)}
.svc-t{padding:20px 20px 24px;position:relative}
.svc-n{font:800 .8rem/1 var(--fd);color:var(--red-l);letter-spacing:.06em}
.svc-t h3{margin-top:8px;font:700 1.34rem/1.14 var(--fd);letter-spacing:-.025em}
.svc-t p{margin-top:8px;color:var(--fog);line-height:1.4}
.link-t{margin-top:14px;color:#fff;font-size:.84rem}
.svc-c a:hover .link-t{gap:13px}
@media (min-width:760px){
  .svc-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:minmax(0,auto)}
  .svc-c{grid-column:span 6}
  .svc-c.c1{grid-column:span 7;grid-row:span 2}
  .svc-c.c2,.svc-c.c3{grid-column:span 5}
  .svc-c.c1 .ph{aspect-ratio:auto}
  .svc-c.c1 a{grid-template-rows:minmax(0,1fr) auto}
  .svc-c.c1 .ph img{position:absolute;inset:0}
  .svc-c.c1 .ph{min-height:380px}
  .svc-c.c2 .ph,.svc-c.c3 .ph{aspect-ratio:16/9}
  .svc-c.c4 .ph,.svc-c.c5 .ph{aspect-ratio:16/9}
}

/* pattern board */
.pat{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.pat-tabs{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:var(--gut);margin-inline:calc(-1*var(--gut));padding:4px var(--gut) 10px;scrollbar-width:thin}
.pat-tab{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:96px;min-height:92px;padding:10px 6px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--white);color:var(--ink);font:600 .72rem/1.15 var(--fd);text-align:center;transition:background .2s,color .2s,border-color .2s}
.pat-tab:hover{border-color:var(--ink)}
.pat-tab.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pat-tab.on .sw{color:var(--red-l)}
.sw{width:34px;height:34px;flex:none;color:var(--umber)}
.pat-panel[data-off]{display:none}
.no-js .pat-panel[data-off]{display:block;margin-top:24px}
.pat-ph{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--grout);background:var(--taupe);padding:var(--grout)}
.pat-ph .ph{aspect-ratio:auto;height:clamp(280px,84vw,560px)}
.pat-ph .ph:only-child{grid-column:1 / -1}
.pat-t{padding-top:16px}
.pat-t h3{font:700 1.34rem/1.15 var(--fd);letter-spacing:-.025em}
.pat-t p{margin-top:6px;color:var(--mute);max-width:52ch}
.pat-t .link{margin-top:12px}
@media (min-width:960px){
  .pat{grid-template-columns:minmax(0,332px) minmax(0,1fr);gap:40px;align-items:start}
  .pat-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;margin:0;padding:0}
  .pat-tab{width:auto;min-height:104px}
  .pat-ph .ph{height:560px}
}

/* photo moment */
.moment{position:relative;min-height:clamp(480px,82vw,760px);display:flex;align-items:flex-end;overflow:hidden;color:#fff;isolation:isolate}
.moment-media{position:absolute;inset:0;z-index:-2}
.moment-media img{width:100%;height:100%;object-fit:cover}
.moment-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,8,6,.94),rgba(8,8,6,.84) 44%,rgba(8,8,6,.08) 60%)}
.moment-in{padding-block:clamp(44px,6vw,76px) clamp(72px,7vw,80px)}
.moment-q{font:800 clamp(2rem,1.2rem + 3.8vw,4.2rem)/1.04 var(--fd);letter-spacing:-.035em;max-width:17ch}
.moment-q .ac{color:#ff6167}
.moment-sub{margin-top:12px;font-size:1.14rem;font-weight:500}
.moment .btn{margin-top:22px}
@media (max-width:959px){.moment{min-height:660px}}
@media (min-width:960px){
  .moment{align-items:center;min-height:clamp(560px,50vw,720px)}
  .moment-scrim{background:linear-gradient(270deg,rgba(8,8,6,.94),rgba(8,8,6,.84) 36%,rgba(8,8,6,.06) 54%)}
  .moment-in{padding-left:calc(var(--gut) + 56%)}
  .moment-q{font-size:clamp(2.2rem,1.2rem + 2.3vw,3.3rem);max-width:none}
}

/* reviews */
.revs-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
.rev-link{display:inline-flex;align-items:center;gap:9px;margin-top:16px;color:#fff;font-weight:600}
.rev-link svg{width:20px;height:20px;background:#fff;border-radius:50%;padding:3px}
.quote .stars{color:#ffc85c;letter-spacing:2px;font-size:1.05rem}
.quote blockquote{margin-top:10px}
.quote blockquote p{font-size:1.18rem;line-height:1.45;color:#fff}
.quote-big blockquote p{font:500 clamp(1.14rem,1rem + .75vw,1.56rem)/1.4 var(--fd);letter-spacing:-.015em}
.quote figcaption{margin-top:14px;display:flex;flex-direction:column;gap:1px}
.quote cite{font:700 .98rem/1.2 var(--fd);font-style:normal;color:#fff}
.quote small{font-size:.92rem;color:#d6c4af}
.revs-side{display:grid;gap:26px}
.revs-side .quote{padding-top:24px;border-top:1px solid rgba(236,231,222,.24)}
.revs-ph .ph{aspect-ratio:16/10}
@media (min-width:960px){
  .revs-grid{grid-template-columns:minmax(0,.72fr) minmax(0,1.42fr) minmax(0,.9fr);gap:clamp(30px,4vw,60px);align-items:start}
  .revs-side .quote{padding-top:0;border-top:0}
}

/* full mosaic with taupe grout */
.mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(150px,44vw,300px);grid-auto-flow:dense;gap:var(--grout);background:var(--taupe);padding:var(--grout)}
.mosaic li{overflow:hidden;position:relative;background:var(--paper-2)}
.mosaic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.mosaic li:hover img{transform:scale(1.05)}
.m21{grid-column:span 2}.m12{grid-row:span 2}.m22{grid-column:span 2;grid-row:span 2}
@media (min-width:960px){.mosaic{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(150px,15.6vw,215px)}}

/* how it goes */
.how-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
.how-ph .ph{aspect-ratio:4/3}
.how-steps{counter-reset:h;margin-top:22px}
.how-steps li{counter-increment:h;display:grid;grid-template-columns:42px minmax(0,1fr);gap:0 12px;padding:16px 0;border-top:1px solid var(--line-d)}
.how-steps li::before{content:counter(h);grid-row:span 2;width:32px;height:32px;display:grid;place-items:center;background:var(--taupe);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);font:700 .8rem/1 var(--fd);color:var(--ink)}
.how-steps b{font:700 1.06rem/1.2 var(--fd);color:#fff;letter-spacing:-.015em}
.how-steps span{margin-top:3px;color:var(--fog);line-height:1.4}
@media (min-width:960px){.how-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,84px);align-items:center}.how-ph .ph{aspect-ratio:1}}

/* service area */
.area-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
.towns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.towns a{display:flex;flex-direction:column;gap:2px;padding:14px;background:var(--paper-2);text-decoration:none;transition:background .2s}
.towns a:hover{background:var(--white)}
.towns b{font:600 .94rem/1.2 var(--fd);color:var(--ink);letter-spacing:-.015em}
.towns .dt{font-size:.92rem;color:var(--mute)}
.towns a.base{background:var(--ink)}
.towns a.base b{color:#fff}
.towns a.base .dt{color:var(--fog-2)}
.towns a.all{background:var(--olive)}
.towns a.all b{color:#fff}
.towns a.all .dt{color:#ecd9bf}
.towns a.all:hover{background:var(--olive-d)}
@media (min-width:960px){.area-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,84px);align-items:start}.towns{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:14px 0;font:600 1rem/1.3 var(--fd);letter-spacing:-.015em;color:var(--ink);cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary svg{width:20px;height:20px;color:var(--red-d);transition:transform .25s var(--ease)}
.faq-list details[open] summary svg{transform:rotate(180deg)}
.faq-list details > div{padding:0 0 18px}
.faq-list details p{color:var(--mute);max-width:64ch}
@media (min-width:960px){.faq-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,6vw,84px)}}

/* cta band */
.cta-band{background:var(--red-d);color:#fff}
.cta-in{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-block:clamp(40px,5vw,62px)}
.cta-band .dh{color:#fff}
.cta-band .ac{color:var(--ink)}
.cta-band p{margin-top:8px;font-size:1.12rem;font-weight:500}
.cta-band .btn-row{margin-top:0}
@media (min-width:960px){.cta-in{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px}}

/* estimate section + form */
.quote-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.big-call{display:inline-flex;align-items:center;gap:12px;margin-top:22px;font:800 clamp(1.5rem,1.1rem + 1.6vw,2.3rem)/1.1 var(--fd);letter-spacing:-.03em;color:#fff;text-decoration:none;white-space:nowrap}
.big-call svg{width:.82em;height:.82em;color:var(--red-l)}
.big-call:hover{text-decoration:underline;text-decoration-thickness:2px}
.facts{margin:24px 0 0;display:grid;gap:0}
.facts > div{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:12px 0;border-top:1px solid var(--line-d)}
.facts dt{font:600 .68rem/1.3 var(--fd);letter-spacing:.18em;text-transform:uppercase;color:var(--taupe)}
.facts dd{margin:0;color:var(--fog)}
.facts a{color:var(--fog)}
.facts a.mail{overflow-wrap:anywhere}
@media (min-width:960px){.quote-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:clamp(40px,6vw,84px);align-items:start}.facts > div{grid-template-columns:110px minmax(0,1fr)}}
.lead-form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:clamp(20px,3vw,34px);background:var(--paper);color:var(--text);border-top:var(--grout) solid var(--red)}
.lead-form h3{font:700 1.34rem/1.15 var(--fd);letter-spacing:-.025em;color:var(--ink)}
.lead-form .fine{font-size:.95rem;color:var(--mute)}
.lead-form .fine a{color:var(--ink);font-weight:700}
.lead-form p{color:var(--text)}
.two{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:560px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.fld{display:grid;gap:5px;margin:0;padding:0;border:0;min-width:0}
.fld label,.fld legend{font:600 .84rem/1.3 var(--fd);color:var(--ink);padding:0}
.opt{font-weight:500;color:var(--mute)}
.fld input,.fld select,.fld textarea{width:100%;min-height:50px;padding:12px;border:1.5px solid rgba(72,72,48,.45);border-radius:var(--r);background-color:#fff;color:var(--text);font-size:1rem}
.fld textarea{min-height:104px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--ink);outline:2px solid var(--red-d);outline-offset:1px}
.fld [aria-invalid="true"]{border-color:var(--red-d)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chip{position:relative;display:inline-flex;cursor:pointer}
.chip input{position:absolute;inset:0;width:100%;height:100%;min-height:0;opacity:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:42px;padding:8px 13px;border:1.5px solid rgba(72,72,48,.4);border-radius:var(--r);font-weight:600;font-size:.98rem;background:#fff;color:var(--ink);transition:background .15s,color .15s,border-color .15s}
.chip input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
.chip input:focus-visible + span{outline:3px solid var(--red-d);outline-offset:2px}
.hp-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-form .btn{width:100%;white-space:normal}
.form-status{min-height:0;font-weight:600}
.form-status:empty{display:none}
.form-status.ok{color:#14532d;background:#e7f3ea;padding:12px}
.form-status.err{color:var(--red-dd);background:#fbe9e9;padding:12px}
.form-status a{color:inherit}

/* ---------- signature: where the cuts land ---------- */
.sig{padding-block:clamp(56px,8vw,112px) 0;position:relative}
.sig-head{margin-bottom:28px}
.sig-grid{display:block}
.sig-fig{position:sticky;top:calc(var(--hdr-h) + 6px);z-index:3;background:var(--ink);padding-block:6px 8px;margin-inline:calc(-1*var(--gut));padding-inline:var(--gut);box-shadow:0 calc(-1*var(--hdr-h) - 8px) 0 0 var(--ink)}
.sig-svg{width:auto;max-width:100%;height:clamp(250px,44svh,410px);margin-inline:auto;overflow:visible}
.hdr.tuck:not(:focus-within) ~ main .sig-fig{top:0}
.sig-read{display:flex;gap:10px;align-items:baseline;margin-top:6px;font:600 .9rem/1.25 var(--fd);color:#fff;letter-spacing:-.01em}
.sig-read-n{color:var(--red-l);font-weight:800;flex:none}
.sig-note{display:none;margin-top:4px;font-size:.9rem;color:var(--fog-2)}
.sig-steps{position:relative;z-index:1}
.sig-step{padding:26px 0 24vh;opacity:.42;transition:opacity .35s}
.sig-step:first-child{padding-top:24px}
.sig-step:last-child{padding-bottom:40px}
.sig-step.on{opacity:1}
.sig-n{display:block;font:800 clamp(2.2rem,1.7rem + 2vw,3.4rem)/1 var(--fd);color:transparent;-webkit-text-stroke:1.2px var(--taupe);letter-spacing:-.02em}
.sig-step h3{margin-top:10px;font:700 clamp(1.2rem,1.05rem + .7vw,1.7rem)/1.15 var(--fd);color:#fff;letter-spacing:-.025em}
.sig-step p{margin-top:8px;color:var(--fog);max-width:44ch}
.sig-step small{display:block;margin-top:10px;font-size:.92rem;color:var(--taupe)}
@media (min-width:960px){
  .sig-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:clamp(40px,6vw,88px);align-items:start}
  .sig-fig{top:calc(var(--hdr-h) + 18px);margin:0;padding:0;box-shadow:none;background:transparent}
  .hdr.tuck:not(:focus-within) ~ main .sig-fig{top:18px}
  .sig-svg{height:min(calc(100svh - var(--hdr-h) - 96px),640px)}
  .sig-note{display:block}
  .sig-step{padding:0 0 40vh}
  .sig-step:first-child{padding-top:9vh}
  .sig-step:last-child{padding-bottom:20vh}
}
.no-js .sig-step,.sig-step[aria-current]{opacity:1}
@media (prefers-reduced-motion:reduce){.sig-fig{position:static}.sig-step{opacity:1;padding-bottom:30px}}

/* drawing, states are cumulative s1..s5 */
.sig-svg text{font-family:var(--fd)}
.sig-svg .board{fill:#2a2a22;stroke:var(--taupe);stroke-width:1.5}
.sig-svg .gr line{stroke:var(--taupe);stroke-width:1.5}
.sig-svg .gr{opacity:0;transition:opacity .5s}
.sig-svg.s2 .gr{opacity:1}
.sig-svg .gr-v{transition:transform 1.1s var(--ease)}
.sig-svg.s3 .gr-v{transform:translateX(-35px)}
.sig-svg .finish{opacity:0;transition:opacity .8s}
.sig-svg.s5 .finish{opacity:1}
.sig-svg .vein{fill:none;stroke:#a89078;stroke-opacity:.42;stroke-width:1.1}
.sig-svg.s5 .gr line{stroke:#a89078;stroke-width:1.6}
.sig-svg .sliver{opacity:0;transition:opacity .4s}
.sig-svg.at-2 .sliver{opacity:1}
.sig-svg .even rect{fill:var(--taupe);fill-opacity:.24}
.sig-svg .even{opacity:0;transition:opacity .4s}
.sig-svg.at-3 .even,.sig-svg.at-4 .even{opacity:1}
.sig-svg .niche{transform:translateY(0);opacity:0;transition:transform 1s var(--ease),opacity .4s}
.sig-svg.s2 .niche{opacity:1}
.sig-svg.s4 .niche{transform:translateY(-18px)}
.sig-svg .niche-box{fill:rgba(17,17,16,.55);stroke:#fff;stroke-width:2;stroke-dasharray:7 5}
.sig-svg.s4 .niche-box{stroke-dasharray:none}
.sig-svg .niche-in{fill:rgba(0,0,0,.22)}
.sig-svg.s5 .niche-box{fill:#cfc6b8;stroke:#a89078;stroke-width:1.6}
.sig-svg.s5 .niche-in{fill:#b5ab9c}
.sig-svg .niche-shelf{stroke:#fff;stroke-width:3.5}
.sig-svg.s5 .niche-shelf{stroke:#857563}
.sig-svg .tag rect{fill:var(--red-d)}
.sig-svg .tag text{font-weight:600;font-size:20px;fill:#fff}
.sig-svg .tag-q rect{fill:#fff}
.sig-svg .tag-q text{fill:var(--ink)}
.sig-svg .lead{stroke:var(--red-l);stroke-width:2;fill:none}
.sig-svg .tags-bad{opacity:0;transition:opacity .4s}
.sig-svg.at-2 .tags-bad{opacity:1}
.sig-svg .tags-good{opacity:0;transition:opacity .5s .4s}
.sig-svg.at-3 .tags-good,.sig-svg.at-4 .tags-good{opacity:1}
.sig-svg .tags-niche{opacity:0;transition:opacity .5s .5s}
.sig-svg.at-4 .tags-niche{opacity:1}
.sig-svg .dimg{stroke:#fff;stroke-width:2;fill:none}
.sig-svg .dimt{font-weight:700;font-size:19px;fill:#fff}
.sig-svg .tags-niche .dimt{font-size:19px;paint-order:stroke;stroke:#111110;stroke-width:6px}
.sig-svg .meas{transition:opacity .4s}
.sig-svg .dim{stroke:var(--taupe);stroke-width:1.5;fill:none}
.sig-svg .dimw{font-weight:600;font-size:19px;fill:#fff;paint-order:stroke;stroke:var(--ink);stroke-width:6px}
.sig-svg .plumb{stroke:#fff;stroke-width:1.6;stroke-dasharray:3 6}
.sig-svg .lean{stroke:var(--red-l);stroke-width:2.4}
.sig-svg .plumb,.sig-svg .lean,.sig-svg .tag-q{transition:opacity .4s}
.sig-svg.s2 .plumb,.sig-svg.s2 .lean,.sig-svg.s2 .tag-q{opacity:0}
.sig-svg .floor{opacity:0;transition:opacity .7s}
.sig-svg.s5 .floor{opacity:1}
.sig-svg .floor-f{fill:#cfc6b8;stroke:#a89078;stroke-width:1.4}
.sig-svg .floor-g path{stroke:#a89078;stroke-width:1.4;fill:none}
.sig-svg .drain{fill:#54514a}
.sig-svg .stamp{opacity:0;transition:opacity .4s .5s}
.sig-svg.at-5 .stamp{opacity:1}
.sig-svg .stamp rect{fill:var(--red-d)}
.sig-svg .stamp text{font-weight:800;font-size:30px;letter-spacing:.04em;fill:#fff}
@media (prefers-reduced-motion:reduce){.sig-svg *{transition:none!important}}

/* proof below the drawing */
.sig-proof{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding-block:18px clamp(56px,8vw,112px);position:relative;z-index:4;background:var(--ink)}
.sig-proof-a{aspect-ratio:4/5;overflow:hidden;position:relative}
.sig-proof-a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.sig-proof-t .lede{margin-bottom:16px}
@media (min-width:960px){.sig-proof{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:center}.sig-proof-a{aspect-ratio:1}}

/* ---------- service + town pages ---------- */
.split-a{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.split-ph{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
.sp-a{grid-column:1 / 10;grid-row:1;aspect-ratio:3/4}
.sp-b{grid-column:7 / 13;grid-row:1;aspect-ratio:1;margin-top:58%;border:var(--grout) solid var(--paper);z-index:1}
.split-ph.one{display:block}
.town-fig img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.town-fig figcaption{margin-top:8px;font-size:.95rem;color:var(--mute)}
.town-fig small{display:block;margin-top:2px;font-size:.82rem;color:var(--mute)}
.town-fig a{color:inherit}
@media (min-width:960px){.split-a{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(40px,6vw,88px);align-items:center}}

.incs{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--line-d)}
.incs li{background:var(--ink);padding:20px 0}
.inc-n{font:800 .8rem/1 var(--fd);color:var(--red-l);letter-spacing:.06em}
.incs h3{margin-top:8px;font:700 1.14rem/1.2 var(--fd);color:#fff;letter-spacing:-.02em}
.incs p{margin-top:6px;color:var(--fog);line-height:1.45}
@media (min-width:760px){.incs{grid-template-columns:repeat(2,minmax(0,1fr))}.incs li{padding:24px 26px 26px 0}.incs li:nth-child(even){padding-left:26px}}
@media (min-width:1080px){.incs{grid-template-columns:repeat(3,minmax(0,1fr))}.incs li,.incs li:nth-child(even){padding:26px 26px 30px}.incs li:nth-child(3n+1){padding-left:0}}

.strip-sec{padding-block:var(--grout);background:var(--taupe)}
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,62vw,340px);gap:var(--grout);overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}
.strip li{scroll-snap-align:start}
.strip .ph{height:100%}
@media (min-width:1200px){.strip{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(var(--c,4),minmax(0,1fr));overflow:visible}.strip .ph{aspect-ratio:3/4}}

.guide-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
.guide{display:grid;gap:0}
.guide li{padding:18px 0;border-top:1px solid var(--line)}
.guide li:last-child{border-bottom:1px solid var(--line)}
.guide h3{font:700 1.14rem/1.2 var(--fd);letter-spacing:-.02em;color:var(--ink)}
.guide p{margin-top:6px;color:var(--mute);max-width:62ch}
@media (min-width:960px){.guide-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);gap:clamp(40px,6vw,84px)}}
.guide.three{grid-template-columns:minmax(0,1fr)}
@media (min-width:860px){.guide.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.guide.three li,.guide.three li:last-child{border-bottom:0}}

.related{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
@media (min-width:960px){.related{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:clamp(40px,6vw,84px)}}
.svc-links{display:grid;gap:1px;background:var(--line);border-block:1px solid var(--line);margin-top:20px}
.svc-links a{display:grid;grid-template-columns:78px minmax(0,1fr) 20px;gap:14px;align-items:center;padding:12px 0;background:var(--paper);text-decoration:none;transition:background .2s}
.svc-links a:hover{background:var(--white)}
.svc-links-ph{display:block;width:78px;height:78px;overflow:hidden}
.svc-links-ph img{width:100%;height:100%;object-fit:cover}
.svc-links b{display:block;font:700 1rem/1.2 var(--fd);letter-spacing:-.02em;color:var(--ink)}
.svc-links small{display:block;margin-top:3px;font-size:.98rem;line-height:1.35;color:var(--mute)}
.svc-links svg{color:var(--red-d)}
.t-paper2 .svc-links a{background:var(--paper-2)}
.town-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.town-chips a{display:inline-flex;align-items:center;min-height:42px;padding:8px 13px;border:1.5px solid rgba(72,72,48,.4);border-radius:var(--r);font-weight:600;color:var(--ink);text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.town-chips a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

.locals{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.locals li{padding:22px 0;border-top:1px solid rgba(236,231,222,.26)}
.big-n{display:block;font:800 clamp(2.2rem,1.7rem + 2vw,3.2rem)/1 var(--fd);color:transparent;-webkit-text-stroke:1.2px var(--umber);letter-spacing:-.02em}
.t-olive .big-n{-webkit-text-stroke-color:#d6c4af}
.locals h3{margin-top:10px;font:700 1.14rem/1.2 var(--fd);color:#fff;letter-spacing:-.02em}
.locals p{margin-top:6px;color:var(--fog);line-height:1.45}
@media (min-width:860px){.locals{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}}
.getting{display:flex;gap:10px;margin-top:24px;font-weight:600;color:#fff;max-width:64ch}
.getting svg{margin-top:4px;color:#ffb3a8}
.chips-l{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.chips-l li{padding:5px 11px;border:1px solid var(--line);font-size:.96rem;color:var(--text);background:var(--white)}

/* hub */
.hub{display:grid;gap:clamp(44px,6vw,84px)}
.hub-row{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:center}
.hub-more{margin-top:10px;color:var(--mute)}
.hub-t .link{margin-top:14px}
.hub-t h2{margin-top:6px}
@media (min-width:960px){.hub-row{grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:clamp(40px,6vw,88px)}.hub-row.swap .hub-ph{order:2}}

.ac-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grout);background:var(--taupe);padding:var(--grout)}
.ac-card{display:block;background:var(--ink);color:#fff;text-decoration:none;height:100%}
.ac-card .ph img{transition:transform .8s var(--ease)}
.ac-card:hover .ph img{transform:scale(1.05)}
.ac-t{padding:12px 12px 14px;display:flex;flex-direction:column;gap:2px}
.ac-t b{font:700 .96rem/1.2 var(--fd);letter-spacing:-.02em}
.ac-t span{font-size:.92rem;line-height:1.3;color:var(--fog-2)}
@media (min-width:860px){.ac-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ac-grid li:first-child{grid-column:span 2;grid-row:span 2}.ac-grid li:first-child .ac-card{display:grid;grid-template-rows:minmax(0,1fr) auto}.ac-grid li:first-child .ph{aspect-ratio:auto;min-height:280px}.ac-grid li:first-child .ph img{position:absolute;inset:0}}
.ac-grid li:first-child{grid-column:span 2}
.ac-more{grid-column:span 2;background:var(--olive);color:#fff;display:flex;align-items:center;padding:18px}
.ac-more b{font:700 1.14rem/1.2 var(--fd);letter-spacing:-.02em}
.ac-more p{margin-top:4px;color:var(--fog)}
.ac-more a{color:#fff;font-weight:700}
.also{margin-top:20px;color:var(--mute);max-width:70ch}
.also a{color:var(--ink);font-weight:700}

/* work: a full wall */
.wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grout);background:var(--taupe);padding:var(--grout)}
.wall li{background:var(--ink)}
.wall figure{height:100%;display:flex;flex-direction:column}
.wall img{width:100%;aspect-ratio:3/4;object-fit:cover}
.wall figcaption{padding:10px 10px 12px;font-size:.9rem;line-height:1.3;color:var(--fog);flex:1}
@media (min-width:760px){.wall{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1080px){.wall{grid-template-columns:repeat(4,minmax(0,1fr))}.wall figcaption{font-size:.94rem;padding:12px}}

/* contact */
.map-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
.nap-l{color:var(--text)}
.nap-l b{color:var(--ink)}
.nap-l a{color:var(--ink)}
.nap-l a.mail{color:var(--mute)}
.map-grid .fine{margin-top:14px;color:var(--mute)}
.map iframe{display:block;width:100%;height:clamp(300px,50vw,480px);border:0;background:var(--paper-2)}
@media (min-width:960px){.map-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(40px,6vw,84px);align-items:center}}

.nf{min-height:70svh;padding-top:calc(var(--hdr-h) + 80px)}
