/* LB Tree & Land — site styles (redesign 2026-10-21).
   Mobile-first. Breakpoints: 38.75em (620px) two-up grids, 56.25em (900px) desktop header + three-up grids.
   Font sizes never go under 1rem (tools/check.py enforces it). Tap targets are 48px (tools/check_pages.mjs). */

/* ---------- tokens ---------- */
:root{
  --color-bark:#1f1a14; --color-bark-2:#2b241c; --color-night:#120e0a;
  --color-cream:#f6efe2; --color-card:#fffdf8; --color-ink:#1b1711; --color-ink-2:#463c30;
  --color-orange:#e8731c; --color-orange-hover:#ff8a33; --color-on-orange:#1a1208;
  --color-rust:#9c430b; --color-moss:#3e5a2f; --color-hi:#ffd84d; --color-black:#000; --color-white:#fff;
  --color-rule:#cdbfa3; --color-nav-current:#3a2a1a; --color-rule-dark:#4a3f32; --color-line-dark:#8d8070;
  --color-field:#7d6f5c; --color-peach:#ffb070; --color-sand:#e0d4bf; --color-linen:#efe5d3;
  --color-error:#a52a1a;

  --font-body:Barlow,"Helvetica Neue",Arial,sans-serif;
  --font-display:Oswald,"Arial Narrow",Impact,sans-serif;

  /* type scale: one size per job */
  --step-0:1rem;                                  /* fine print, captions, labels */
  --step-1:1.1875rem;                             /* body, 19px */
  --step-2:clamp(1.25rem,1.1rem + .5vw,1.4rem);   /* lead paragraphs */
  --step-3:1.4rem;                                /* h3, card titles */
  --step-4:clamp(1.75rem,1.25rem + 1.8vw,2.5rem); /* h2 */
  --step-5:clamp(2.1rem,1.4rem + 2.8vw,3.6rem);   /* h1 */

  /* spacing scale */
  --space-1:.5rem; --space-2:1rem; --space-3:1.5rem; --space-4:2.5rem; --space-5:4rem;
  --section:clamp(3rem,3vw + 1.5rem,5rem);
  --gutter:clamp(1rem,4vw,2.5rem);
  --radius:6px;
  --tap:48px;
  --shadow:0 1px 2px rgba(31,26,20,.08),0 6px 18px rgba(31,26,20,.1);
  --callbar-h:calc(4.25rem + 3px + env(safe-area-inset-bottom,0px));
  --fast:160ms; --ease:cubic-bezier(.2,.7,.3,1);
}

/* ---------- fonts (self-hosted, Latin subset, OFL) ---------- */
@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/barlow-latin-400.woff2) format("woff2")}
@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/barlow-latin-600.woff2) format("woff2")}
@font-face{font-family:Barlow;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/barlow-latin-700.woff2) format("woff2")}
@font-face{font-family:Oswald;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/oswald-latin-700.woff2) format("woff2")}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-bottom:calc(var(--callbar-h) + var(--space-1))}
html.big{font-size:118.75%}
body{font:400 var(--step-1)/1.6 var(--font-body);background:var(--color-cream);color:var(--color-ink);padding-bottom:var(--callbar-h);overflow-x:clip}
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.1;letter-spacing:.01em;text-wrap:balance;overflow-wrap:anywhere}
h1{font-size:var(--step-5);text-transform:uppercase}
h2{font-size:var(--step-4);text-transform:uppercase}
h3{font-size:var(--step-3)}
p,li{max-width:65ch}
a{color:inherit}
img{display:block;width:100%;height:100%;object-fit:cover}
picture{display:contents}
ul[class],ol[class],nav ul,footer ul{list-style:none}
.wrap{width:min(1180px,100% - 2 * var(--gutter));margin:0 auto}
.wrap--narrow{width:min(46rem,100% - 2 * var(--gutter))}
.eyebrow{display:block;font-weight:700;font-size:var(--step-0);letter-spacing:.06em;text-transform:uppercase;color:var(--color-rust);margin-bottom:var(--space-1)}
.dark .eyebrow{color:var(--color-peach)}
section{padding:var(--section) 0}
.dark{background:var(--color-bark);color:var(--color-cream)}
.lead{font-size:var(--step-2);line-height:1.5}
h1+.lead,h2+.lead{margin-top:.75rem}
.muted{color:var(--color-ink-2)}
.dark .muted{color:var(--color-sand)}
.fine{font-size:var(--step-0);color:var(--color-ink-2);margin-top:.8rem}
.nowrap,a[href^="tel:"],a[href^="sms:"]{white-space:nowrap}
.prose>*+*{margin-top:1rem}
.prose h2{margin-top:2.5rem}
.prose h3{margin-top:2rem}
.prose ul,.prose ol{padding-left:1.4rem}
.prose li+li{margin-top:.35rem}

/* Two-tone focus ring: black band hugs the element, yellow band outside it (WCAG 2.4.7 / 1.4.11). */
:focus-visible{outline:3px solid var(--color-hi);outline-offset:3px;box-shadow:0 0 0 3px var(--color-black)}
[tabindex="-1"]:focus{outline:none;box-shadow:none}

/* ---------- skip link ---------- */
.skip{position:absolute;left:var(--space-2);top:-10rem;z-index:100;display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--space-2);background:var(--color-hi);color:var(--color-black);font-weight:700}
.skip:focus{top:var(--space-2)}

/* ---------- utility bar + Bigger text toggle ---------- */
.util{background:var(--color-night);color:var(--color-sand);font-size:var(--step-0)}
.util .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-2);padding:.25rem 0}
.util a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--color-white);font-weight:700;text-decoration:none}
.util a:hover{text-decoration:underline}
.util-lead{white-space:nowrap}
@media (max-width:29.99em){.util-lead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
.bigtext{font:700 var(--step-0) var(--font-body);min-height:var(--tap);padding:0 .9rem;background:transparent;color:var(--color-white);border:2px solid var(--color-line-dark);border-radius:var(--radius);cursor:pointer;transition:background var(--fast),color var(--fast)}
.bigtext[aria-pressed="true"]{background:var(--color-white);color:var(--color-night);border-color:var(--color-white)}

/* ---------- header, logo, nav, mobile menu ---------- */
.site-header{background:var(--color-bark);color:var(--color-cream);border-bottom:4px solid var(--color-orange)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem 0}
.logo{display:inline-flex;align-items:center;min-height:var(--tap);padding:.25rem 0}
.logo-img{display:block;height:4rem;width:auto}
.ft-logo{display:block;width:8rem;height:auto;margin-bottom:1rem}
.page-logo{display:block;width:8rem;height:auto;margin-bottom:1.25rem}
.menu-btn{display:none}
.js .menu-btn{display:inline-flex;align-items:center;gap:.6rem;min-height:var(--tap);min-width:var(--tap);padding:0 var(--space-2);background:var(--color-bark-2);color:var(--color-white);border:2px solid var(--color-line-dark);border-radius:var(--radius);font:700 var(--step-1) var(--font-body);cursor:pointer;transition:border-color var(--fast)}
.menu-btn .bars,.menu-btn .bars::before,.menu-btn .bars::after{display:block;width:1.25rem;height:3px;background:currentColor}
.menu-btn .bars{position:relative}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0}
.menu-btn .bars::before{top:-7px}
.menu-btn .bars::after{top:7px}
.menu-btn[aria-expanded="true"]{border-color:var(--color-orange)}
.site-nav{width:100%}
.js .site-nav{display:grid;grid-template-rows:0fr;transition:grid-template-rows 220ms var(--ease)}
.js .site-nav>div{overflow:hidden}
.js .site-nav.open{grid-template-rows:1fr}
.js .site-nav:not(.open) a{visibility:hidden}
.site-nav ul{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);padding:.25rem 0 .5rem}
.site-nav a{display:flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 .4rem;background:var(--color-bark-2);border:2px solid var(--color-rule-dark);border-radius:var(--radius);color:var(--color-cream);text-decoration:none;font-weight:600;transition:border-color var(--fast),color var(--fast)}
.site-nav a:hover{color:var(--color-white);border-color:var(--color-line-dark)}
.site-nav a[aria-current="page"]{color:var(--color-white);font-weight:700;border-color:var(--color-orange);background:var(--color-nav-current)}
.site-nav .nav-cta a{background:var(--color-orange);color:var(--color-on-orange);border-color:var(--color-orange);font-weight:700}
.site-nav .nav-cta a:hover{background:var(--color-orange-hover)}
.site-header .hdr-call{display:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:3.25rem;padding:.6rem var(--space-3);background:var(--color-orange);color:var(--color-on-orange);font:700 var(--step-1)/1.2 var(--font-body);text-decoration:none;text-align:center;border:2px solid var(--color-orange);border-radius:var(--radius);cursor:pointer;box-shadow:3px 3px 0 var(--color-bark);transition:background var(--fast),transform var(--fast),box-shadow var(--fast)}
.btn:hover{background:var(--color-orange-hover);transform:translateY(-1px);box-shadow:4px 4px 0 var(--color-bark)}
.btn:active{transform:translateY(1px);box-shadow:2px 2px 0 var(--color-bark)}
.btn--ghost{background:transparent;color:var(--color-white);border-color:var(--color-white);box-shadow:none}
.btn--ghost:hover{background:rgba(255,255,255,.12);box-shadow:none}
.btn--dark{background:var(--color-bark);color:var(--color-white);border-color:var(--color-bark);box-shadow:3px 3px 0 var(--color-orange)}
.btn--dark:hover{background:var(--color-bark-2);box-shadow:4px 4px 0 var(--color-orange)}
.btn--outline{background:transparent;color:var(--color-ink);border-color:var(--color-bark);box-shadow:none}
.btn--outline:hover{background:var(--color-bark);color:var(--color-white);box-shadow:none}
.btns{display:flex;flex-wrap:wrap;gap:.9rem}
.btns .btn{width:100%}
.textlink{font-weight:700;color:var(--color-rust);text-decoration-thickness:2px;text-underline-offset:3px}
.dark .textlink{color:var(--color-peach)}

/* ---------- home hero: text panel + photo, no overlay on the picture ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1fr);background:var(--color-bark);color:var(--color-white)}
.hero .ph{aspect-ratio:4/3;overflow:hidden;margin:0}
.hero .ph img{object-position:var(--focus-m,50% 50%)}
.hero-panel{padding:2rem var(--gutter) 2.5rem}
.hero-panel>*{max-width:40rem}
.hero-panel .eyebrow{color:var(--color-peach)}
.hero-panel h1{margin-bottom:.9rem}
.hero-panel p{font-size:var(--step-2);line-height:1.5;color:#f3eadb;margin-bottom:1.5rem}
.hero-panel .btns{margin-bottom:1.75rem}

/* trust strip: short facts the business already stands behind */
.trust{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2) var(--space-3);padding-top:1.25rem;border-top:1px solid rgba(243,234,219,.3)}
.trust li{position:relative;padding-left:1.9rem;font-size:var(--step-0);line-height:1.35;color:var(--color-linen)}
.trust b{display:block;font-family:var(--font-display);font-size:var(--step-1);color:var(--color-peach);white-space:nowrap}
.trust li::before{content:"";position:absolute;left:0;top:.35rem;width:1.1rem;height:1.1rem;background:var(--color-orange);clip-path:polygon(0 50%,35% 100%,100% 10%,88% 0,35% 78%,10% 40%)}

/* page head: compact dark band, title + one line */
.page-head{background:var(--color-bark);color:var(--color-cream);padding:clamp(2rem,4vw,3.5rem) 0 clamp(2rem,4vw,3rem)}
.page-head .eyebrow{color:var(--color-peach)}
.page-head .lead{color:#f3eadb;max-width:50ch}
.crumbs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;font-size:var(--step-0);color:var(--color-sand)}
.crumbs a{display:inline-flex;align-items:center;min-height:var(--tap);min-width:var(--tap);color:var(--color-white)}
.crumbs li+li::before{content:"/";display:inline-flex;align-items:center;min-height:var(--tap);margin-right:.35rem;color:var(--color-line-dark)}

/* ---------- section head, cards, check list, CTA band ---------- */
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-4)}
.sec-head p{color:var(--color-ink-2);margin-top:.5rem}
.dark .sec-head p{color:var(--color-sand)}
.cards{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.card{display:flex;flex-direction:column;background:var(--color-card);color:var(--color-ink);border:1px solid var(--color-rule);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;transition:transform var(--fast),box-shadow var(--fast)}
a.card:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(31,26,20,.1),0 14px 28px rgba(31,26,20,.16)}
.card .ph{aspect-ratio:4/3;overflow:hidden;margin:0}
.card .ph img{transition:transform 400ms var(--ease)}
a.card:hover .ph img{transform:scale(1.04)}
.card .body{display:flex;flex-direction:column;flex:1;padding:1.25rem 1.4rem 1.4rem}
.card h3{margin-bottom:.4rem}
.card p{color:var(--color-ink-2)}
.card .go{margin-top:auto;padding-top:1rem;font-weight:700;color:var(--color-rust)}
.card .go::after{content:" →"}
.checks{margin:1.25rem 0 1.75rem}
.checks li{position:relative;padding:.6rem 0 .6rem 2.2rem;border-bottom:1px solid var(--color-rule);font-weight:600;max-width:none}
.dark .checks li{border-color:var(--color-rule-dark)}
.dark .checks li::before{background:var(--color-orange)}
.checks li::before{content:"";position:absolute;left:0;top:.9rem;width:1.25rem;height:1.25rem;background:var(--color-rust);clip-path:polygon(0 50%,35% 100%,100% 10%,88% 0,35% 78%,10% 40%)}
.cta{padding:clamp(2.5rem,4vw,3.5rem) 0;background:var(--color-orange);color:var(--color-on-orange)}
.cta .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3)}
.cta h2{font-size:var(--step-4)}
.cta p{margin-top:.4rem}

/* ---------- split: photo beside text ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-items:center}
.split .ph{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);margin:0}
.split .ph--tall{aspect-ratio:3/4;max-width:28rem}
.split p+p{margin-top:1rem}
.split h2+p,.split h1+p{margin-top:1rem}
.split .btns{margin-top:1.5rem}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:var(--space-3);counter-reset:step}
.steps li{position:relative;padding:1.25rem 1.4rem 1.25rem 4.5rem;background:var(--color-bark-2);border-radius:var(--radius);counter-increment:step;max-width:none}
.steps li::before{content:counter(step);position:absolute;left:1.25rem;top:1.1rem;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--color-orange);color:var(--color-on-orange);font:700 var(--step-3) var(--font-display)}
.steps h3{margin-bottom:.3rem}
.steps p{color:var(--color-sand)}
.light .steps li{background:var(--color-card);border:1px solid var(--color-rule)}
.light .steps p{color:var(--color-ink-2)}

/* ---------- gallery + projects ---------- */
.gallery{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.gallery figure{margin:0}
.gallery .ph{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--color-bark-2);text-decoration:none}
.gallery .ph img{transition:transform 400ms var(--ease)}
.gallery a.ph:hover img{transform:scale(1.04)}
.gallery figcaption{padding:.6rem .15rem 0;font-size:var(--step-0);color:var(--color-ink-2)}
.dark .gallery figcaption{color:var(--color-linen)}
.project{padding:var(--space-4) 0;border-top:1px solid var(--color-rule)}
.project:first-of-type{border-top:0;padding-top:0}
.project .sec-head{margin-bottom:var(--space-3)}
.project .facts{display:grid;grid-template-columns:1fr;gap:var(--space-2);margin-bottom:var(--space-3)}
.project .facts p{max-width:none}
.project .facts b{display:block;font-family:var(--font-display);font-size:var(--step-1);color:var(--color-rust)}
.work-group{margin-top:var(--space-5)}
.work-group h2,.work-group h3{margin-bottom:var(--space-3)}

/* before/after: two photos in one frame, native range input moves the divider */
.ba{position:relative;max-width:52rem;margin:0 auto}
.ba .frame{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--color-bark-2)}
.ba .frame img{position:absolute;inset:0}
.ba .after{clip-path:inset(0 0 0 var(--pos,50%))}
.ba .line{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;margin-left:-1.5px;background:var(--color-white);pointer-events:none}
.ba .line::after{content:"⇔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--color-orange);color:var(--color-on-orange);font-size:var(--step-3);box-shadow:0 2px 6px rgba(0,0,0,.4)}
.ba .tag{position:absolute;top:.75rem;padding:.2rem .6rem;background:rgba(18,14,10,.75);color:var(--color-white);font-weight:700;font-size:var(--step-0);border-radius:3px;pointer-events:none}
.ba .tag--before{left:.75rem}
.ba .tag--after{right:.75rem}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;cursor:ew-resize;border:0;background:none;-webkit-appearance:none;appearance:none}
.ba input[type=range]:focus-visible{opacity:1;outline-offset:-3px}
.ba input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:3rem;height:100vh}
.ba input[type=range]::-moz-range-thumb{width:3rem;height:100vh;border:0;background:transparent}
.ba figcaption{padding:.6rem .15rem 0;font-size:var(--step-0);color:var(--color-ink-2)}
.ba:not(.on) .after{clip-path:none}
.ba:not(.on) .line,.ba:not(.on) input{display:none}
.ba:not(.on) .frame{aspect-ratio:auto;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;background:none}
.ba:not(.on) .frame img{position:static;aspect-ratio:4/3}

/* lightbox (built by site.js) */
.lb{max-width:none;max-height:none;width:100%;height:100%;border:0;padding:0;background:rgba(10,8,6,.96);color:var(--color-white)}
.lb::backdrop{background:rgba(10,8,6,.96)}
.lb .lb-frame{display:grid;grid-template-rows:1fr auto;width:100%;height:100%;padding:3.75rem var(--gutter) max(var(--gutter),env(safe-area-inset-bottom,0px))}
.lb img{width:100%;height:100%;object-fit:contain;animation:lb-in 220ms var(--ease)}
.lb figcaption{padding:.75rem 0 0;text-align:center;font-size:var(--step-0);color:var(--color-linen)}
.lb-btn{position:absolute;display:grid;place-items:center;width:3rem;height:3rem;background:rgba(255,255,255,.12);color:var(--color-white);border:2px solid transparent;border-radius:50%;font:700 1.5rem/1 var(--font-body);cursor:pointer;transition:background var(--fast)}
.lb-btn:hover{background:rgba(255,255,255,.25)}
.lb-close{top:.6rem;right:.6rem}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%)}
.lb-prev{left:.4rem}
.lb-next{right:.4rem}
.lb-count{position:absolute;top:1.3rem;left:1rem;font-size:var(--step-0);color:var(--color-sand)}
@keyframes lb-in{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}

/* ---------- equipment ---------- */
.equip{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.equip li{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;align-items:center;background:var(--color-card);color:var(--color-ink);border:1px solid var(--color-rule);border-radius:var(--radius);padding:.75rem;max-width:none}
.equip .ph{aspect-ratio:1;overflow:hidden;border-radius:var(--radius);margin:0}
.equip h3{font-size:var(--step-1);margin-bottom:.15rem}
.equip p{color:var(--color-ink-2);font-size:var(--step-0)}

/* ---------- reviews, areas ---------- */
.reviews{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.review{margin:0;background:var(--color-card);color:var(--color-ink);border:1px solid var(--color-rule);border-left:6px solid var(--color-orange);border-radius:var(--radius);padding:1.4rem 1.5rem}
.review .who{display:block;margin-top:.8rem;font-weight:700;color:var(--color-moss)}
.areas{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.areas li{background:var(--color-card);border:1px solid var(--color-rule);border-radius:var(--radius);padding:.45rem .9rem;font-weight:600}
.dark .areas li{background:var(--color-bark-2);border-color:var(--color-rule-dark);color:var(--color-cream)}

/* ---------- services overview: groups + native accordions for the smaller jobs ---------- */
.svc-group{padding:var(--space-4) 0;border-top:1px solid var(--color-rule)}
.svc-group:first-of-type{border-top:0;padding-top:0}
.svc-group .sec-head{margin-bottom:var(--space-3)}
.acc{border-top:1px solid var(--color-rule)}
.acc details{border-bottom:1px solid var(--color-rule)}
.acc summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--tap);padding:.8rem .25rem;font:700 var(--step-3) var(--font-display);cursor:pointer;list-style:none;transition:color var(--fast)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--color-bark);color:var(--color-white);font:700 1.25rem/1 var(--font-body);transition:transform 200ms var(--ease)}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc summary:hover{color:var(--color-rust)}
.acc .acc-body{padding:0 .25rem 1.25rem}
.acc .acc-body p+p{margin-top:.6rem}
.faq{max-width:46rem}

/* ---------- estimate page ---------- */
.contact-ways{display:grid;grid-template-columns:1fr;gap:var(--space-2);margin:var(--space-3) 0}
.way{display:flex;align-items:center;gap:1rem;min-height:var(--tap);padding:1.1rem 1.25rem;background:var(--color-bark);color:var(--color-white);text-decoration:none;border-radius:var(--radius);border:2px solid var(--color-bark);transition:border-color var(--fast),transform var(--fast)}
.way:hover{border-color:var(--color-orange);transform:translateY(-1px)}
.way .ic{flex:none;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--color-orange)}
.way .ic svg{width:1.5rem;height:1.5rem;fill:var(--color-on-orange)}
.way small{display:block;font-size:var(--step-0);color:var(--color-sand)}
.way b{font-family:var(--font-display);font-size:var(--step-3);letter-spacing:.02em}
.way span{white-space:normal}
.est-form{max-width:44rem;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-rule)}
.field{margin-top:1.25rem}
label,legend{display:block;font-weight:700;margin-bottom:.35rem}
.req{font-weight:400;color:var(--color-ink-2)}
input,select,textarea{display:block;width:100%;min-height:3.25rem;padding:.7rem .9rem;font:400 var(--step-1) var(--font-body);color:var(--color-ink);background:var(--color-white);border:2px solid var(--color-field);border-radius:var(--radius)}
textarea{min-height:9rem;resize:vertical}
fieldset{border:0}
.radios label{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);font-weight:400}
.radios input{width:1.5rem;height:1.5rem;min-height:0;flex:none;accent-color:var(--color-rust)}
.field.bad input,.field.bad select,.field.bad textarea{border-color:var(--color-error)}
.err{display:none;margin-top:.35rem;font-weight:700;color:var(--color-error)}
.field.bad .err,.radios.bad .err{display:block}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.cf-turnstile{margin-top:1.25rem}
form .btn{width:100%;margin-top:1.75rem;min-height:3.75rem;font-size:var(--step-2)}
form .btn[disabled]{opacity:.7;cursor:wait;transform:none}
.form-msg{display:none;margin-top:1.25rem;padding:1rem 1.25rem;border-radius:var(--radius);font-weight:600}
.form-msg.show{display:block}
.form-msg--bad{background:#fbe3dd;color:var(--color-error);border:2px solid var(--color-error)}
.form-msg--ok{background:#e3eedb;color:var(--color-moss);border:2px solid var(--color-moss)}

/* ---------- news post ---------- */
.post{max-width:40rem;margin-top:2rem}
.post figure{max-width:30rem;margin:1rem 0 1.5rem}
.post img{display:block;width:100%;height:auto;border-radius:var(--radius)}
.post figcaption{margin-top:.5rem;color:var(--color-ink-2)}

/* ---------- footer ---------- */
.site-footer{padding:3rem 0 2.5rem;background:var(--color-night);color:var(--color-sand)}
.site-footer .wrap{display:grid;grid-template-columns:1fr;gap:2rem}
.site-footer h2{margin-bottom:.6rem;font-size:var(--step-3);color:var(--color-white)}
.site-footer ul{display:grid;grid-template-columns:repeat(2,max-content);column-gap:2rem}
.site-footer a{display:inline-flex;align-items:center;min-height:var(--tap);min-width:var(--tap);color:var(--color-white)}
.site-footer .by{grid-column:1/-1;max-width:none;padding-top:1.25rem;border-top:1px solid #3a3128;font-size:var(--step-0)}

/* ---------- sticky Call / Text-a-photo bar (phones only) ---------- */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;gap:.6rem;height:var(--callbar-h);padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom,0px));background:var(--color-night);border-top:3px solid var(--color-orange)}
.callbar .btn{min-height:3.25rem;padding:0 .5rem;box-shadow:none}
.callbar .btn:hover{transform:none}

/* ---------- motion: short, once, off when the visitor asks ---------- */
@media (prefers-reduced-motion:no-preference){
  .hero-panel>*{animation:rise 420ms var(--ease) both}
  .hero-panel>:nth-child(2){animation-delay:60ms}
  .hero-panel>:nth-child(3){animation-delay:120ms}
  .hero-panel>:nth-child(4){animation-delay:180ms}
  .hero-panel>:nth-child(5){animation-delay:240ms}
  .js .reveal{opacity:0;transform:translateY(.9rem);transition:opacity 380ms var(--ease),transform 380ms var(--ease)}
  .js .reveal.in{opacity:1;transform:none}
}
@keyframes rise{from{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}
@media print{.callbar,.bigtext,.menu-btn{display:none}.reveal{opacity:1!important;transform:none!important}}

/* ---------- wider screens ---------- */
@media (min-width:38.75em){
  .cards,.gallery,.reviews,.equip,.steps,.contact-ways,.project .facts{grid-template-columns:1fr 1fr}
  .btns .btn{width:auto}
  .site-footer .wrap{grid-template-columns:1fr 1fr}
  form .btn{width:auto}
}
@media (min-width:48em){
  .cards,.gallery,.steps{grid-template-columns:repeat(3,1fr)}
  .steps--4{grid-template-columns:1fr 1fr}
}
@media (min-width:56.25em){
  html{scroll-padding-top:7rem;scroll-padding-bottom:0}
  body{padding-bottom:0}
  .callbar{display:none}
  .site-header{position:sticky;top:0;z-index:50}
  .site-header .wrap{flex-wrap:nowrap;min-height:5rem;padding:0;gap:var(--space-2)}
  .js .menu-btn{display:none}
  .site-nav,.js .site-nav{display:block;width:auto}
  .js .site-nav>div{overflow:visible}
  .js .site-nav:not(.open) a{visibility:visible}
  .site-nav ul{display:flex;gap:.25rem;padding:0}
  .site-nav a{padding:0 .85rem;background:none;border:0;border-bottom:3px solid transparent;border-radius:0}
  .site-nav a[aria-current="page"]{background:none}
  .site-nav .nav-cta a{background:none;color:var(--color-cream);font-weight:600}
  .site-nav .nav-cta a:hover{background:none;color:var(--color-white)}
  .site-header .hdr-call{display:inline-flex;white-space:nowrap}
  .logo-img{height:4.75rem}
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(76vh,42rem)}
  .hero .ph{aspect-ratio:auto;height:100%;order:2}
  .hero .ph img{object-position:var(--focus-d,50% 50%)}
  .hero-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,5vh,4rem) var(--space-4) clamp(2rem,5vh,4rem) max(var(--gutter),calc((100vw - 1180px) / 2))}
  .cards,.gallery,.reviews,.steps{grid-template-columns:repeat(3,1fr)}
  .cards--2,.gallery--2,.steps--4{grid-template-columns:repeat(2,1fr)}
  .equip{grid-template-columns:repeat(2,1fr)}
  .split .equip{grid-template-columns:1fr}
  .split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5)}
  .split--text-first .ph{order:2}
  .project .facts{grid-template-columns:repeat(3,1fr)}
  .site-footer .wrap{grid-template-columns:1.3fr 1fr 1fr}
  .lb-btn{width:3.25rem;height:3.25rem}
}
@media (min-width:56.25em) and (max-height:40em){
  .hero{min-height:0}
  .hero-panel{padding-top:1.75rem;padding-bottom:1.75rem}
  .hero-panel h1{font-size:clamp(2rem,3vw,2.75rem)}
}
