/* Self-hosted fonts — no external CDN. Files in theme/fonts/, copied to /assets/fonts/ at build. */
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/outfit-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/outfit-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/outfit-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/outfit-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/outfit-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/outfit-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Outfit';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/outfit-800-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Outfit';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/outfit-800-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* Self-hosted fonts — no external CDN. Files in theme/fonts/, copied to /assets/fonts/ at build. */
@font-face{font-family:'Figtree';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/figtree-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/figtree-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Figtree';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/figtree-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/figtree-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Figtree';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/figtree-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/figtree-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Figtree';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/figtree-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Figtree';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/figtree-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ============================================================
   North Star Garage Door — "warm & approachable local"
   Pine green + aspen gold. Rounded forms, soft shadows.
   Signature: a gold four-point north-star mark on section
   headings + a garage-door "panel seam" gold rule on cards.
   ============================================================ */

:root{
  --pine:#1B5E44;          /* brand green */
  --pine-mid:#2A7355;
  --pine-deep:#123D2C;     /* dark bands / footer */
  --pine-ink:#20281F;      /* body text */
  --gold:#E4A233;          /* aspen gold accent / the star */
  --gold-deep:#C6851C;
  --gold-soft:#F6E4BE;
  --paper:#FAF6EC;         /* warm page background */
  --paper-2:#F4EEDE;       /* alternating section tint */
  --surface:#FFFFFF;       /* cards */
  --line:#E7DDC6;          /* warm hairline */
  --muted:#5C6A5C;         /* warm gray-green */
  --wrap:1140px;
  --gap:24px;
  --r:16px;                /* card radius */
  --r-sm:11px;
  --r-lg:26px;             /* hero / large media */
  --shadow:0 2px 4px rgba(24,44,32,.05),0 14px 34px rgba(24,44,32,.09);
  --shadow-sm:0 1px 2px rgba(24,44,32,.05),0 6px 16px rgba(24,44,32,.07);
  --disp:"Outfit",system-ui,sans-serif;
  --r-btn:12px;   /* buttons: gently rounded, not pill */
  --ico-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.1 18.4-30 11.6-46.3l-40-96z'/%3E%3C/svg%3E");
  --wave-paper2:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 44' preserveAspectRatio='none'%3E%3Cpath fill='%23F4EEDE' d='M0,22 C240,4 480,4 720,22 C960,40 1200,40 1440,22 L1440,44 L0,44 Z'/%3E%3C/svg%3E");
  --wave-paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 44' preserveAspectRatio='none'%3E%3Cpath fill='%23FAF6EC' d='M0,22 C240,4 480,4 720,22 C960,40 1200,40 1440,22 L1440,44 L0,44 Z'/%3E%3C/svg%3E");
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}

*{box-sizing:border-box}
html{overflow-x:clip;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--pine-ink);
  font-family:var(--body);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--pine);text-decoration:none}
a:hover{color:var(--gold-deep)}
h1,h2,h3,h4{font-family:var(--disp);line-height:1.08;letter-spacing:-.015em;color:var(--pine-deep);margin:0}
main{display:block}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}

/* ---- buttons: friendly gold pill ---- */
.btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--body);font-weight:700;
  font-size:1rem;line-height:1;color:var(--pine-deep);background:var(--gold);
  padding:.85em 1.4em;border-radius:var(--r-btn);border:0;cursor:pointer;
  box-shadow:0 6px 16px rgba(228,162,51,.35);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn:hover{background:var(--gold-deep);color:#fff;transform:translateY(-2px);box-shadow:0 10px 22px rgba(198,133,28,.4)}
.btn::before{content:"";width:.95em;height:.95em;flex:none;background-color:currentColor;
  -webkit-mask:var(--ico-phone) center/contain no-repeat;mask:var(--ico-phone) center/contain no-repeat}
.btn-lg{font-size:1.12rem;padding:1em 1.7em}

/* ============================================================
   HEADER — warm, solid, logo left + friendly gold call pill
   (plain solid bg: no filter/transform — mobile-nav gotcha)
   ============================================================ */
/* premium glassmorphism: translucent blur lives on ::before (NOT the header itself),
   so the fixed mobile drawer nav is unaffected by the containing-block gotcha */
.site-header{position:sticky;top:0;z-index:40;background:transparent;
  border-bottom:1px solid rgba(231,221,198,.55);box-shadow:0 6px 24px rgba(24,44,32,.07)}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,253,247,.6);
  -webkit-backdrop-filter:blur(16px) saturate(1.6);backdrop-filter:blur(16px) saturate(1.6)}
.hdr-in{max-width:var(--wrap);margin:0 auto;padding-block:20px;padding-inline:var(--gap);display:flex;align-items:center;gap:20px}
.brand{display:inline-flex;align-items:center}
.site-logo{height:52px;width:auto}
.brand-text{font-family:var(--disp);font-weight:800;font-size:1.35rem;color:var(--pine)}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:6px}
.site-nav>.has-dd>.dd-top,.site-nav>a:not(.hdr-call){display:inline-flex;align-items:center;gap:.3em;
  font-weight:600;font-size:.98rem;color:var(--pine-ink);padding:.6em .8em;border-radius:10px;cursor:pointer}
.site-nav>.has-dd>.dd-top:hover,.site-nav>a:not(.hdr-call):hover{background:var(--paper-2);color:var(--pine)}
.has-dd{position:relative}
.has-dd>.dd-top::after{content:"\25BE";font-size:.7em;color:var(--gold-deep);margin-left:.15em}
/* invisible bridge so moving the cursor from "Services" to the panel keeps it open */
.has-dd::after{content:"";position:absolute;top:100%;left:0;right:0;height:14px;display:none}
.has-dd:hover::after{display:block}
.dd{position:absolute;top:calc(100% + 12px);left:0;min-width:320px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:10px;display:none;
  z-index:60;max-height:72vh;overflow:auto}
.has-dd:hover .dd,.has-dd:focus-within .dd{display:block}
.dd-group{padding:4px}
.dd-head{display:block;font-family:var(--disp);font-weight:700;font-size:.72rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--gold-deep);padding:8px 10px 4px}
.dd a{display:block;padding:8px 10px;border-radius:9px;color:var(--pine-ink);font-size:.94rem;font-weight:500}
.dd a:hover{background:var(--paper-2);color:var(--pine)}
.hdr-call{display:inline-flex;align-items:center;gap:.45em;margin-left:8px;font-weight:700;
  color:var(--pine-deep);background:var(--gold);padding:.62em 1.15em;border-radius:var(--r-btn);cursor:pointer;
  box-shadow:0 5px 14px rgba(228,162,51,.32);transition:transform .2s ease,background .2s ease}
.hdr-call::before{content:"";width:.9em;height:.9em;flex:none;background-color:currentColor;
  -webkit-mask:var(--ico-phone) center/contain no-repeat;mask:var(--ico-phone) center/contain no-repeat}
.hdr-call:hover{background:var(--gold-deep);color:#fff;transform:translateY(-1px)}
.nav-toggle{display:none;background:none;border:0;font-size:1.7rem;line-height:1;color:var(--pine);cursor:pointer;padding:.15em .3em}

/* ============================================================
   SECTION FRAME — every .blk. Signature north-star on h2.
   ============================================================ */
.blk{padding:64px var(--gap)}
.blk>*{max-width:var(--wrap);margin-inline:auto}
.blk:nth-of-type(even){background:var(--paper-2)}
.blk h2{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:800;position:relative;margin-bottom:.65em;padding-top:.2em}
/* the north star — a small gold 4-point mark above each section heading */
.blk h2::before{content:"";display:block;width:26px;height:26px;margin-bottom:.5rem;
  background:var(--gold);
  clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);}
.blk h3{font-size:1.24rem;font-weight:700}
.blk .rich>p,.blk .rich>ul{max-width:72ch}
.rich p{margin:0 0 1em}
/* editorial drop cap on the opening paragraph (the rich_text right after the hero) */
.blk-hero + .blk-rich .rich>p:first-child::first-letter{float:left;font-family:var(--disp);font-weight:800;
  font-size:3.9em;line-height:.78;padding:6px 12px 0 0;color:var(--pine);}
.rich a,.about-b a,.split-b a,.feat p a{color:var(--pine);font-weight:600;text-decoration:underline;
  text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-thickness:2px}
.rich a:hover{color:var(--gold-deep)}

/* ---- HERO ---- warm pine panel; stands alone without an image ---- */
.blk-hero{position:relative;overflow:hidden;padding:0;background:
  radial-gradient(120% 130% at 82% 0%,#2A7355 0%,var(--pine) 42%,var(--pine-deep) 100%)}
.blk-hero>*{max-width:none;margin:0}
.blk-hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:44px;z-index:3;
  background:var(--wave-paper2) bottom/100% 100% no-repeat}
.hero-img{position:absolute;inset:0;margin:0;z-index:0}
.hero-img img{width:100%;height:100%;object-fit:cover;opacity:.28}
.page-home .hero-img img{object-position:0 25%}
.hero-img figcaption{display:none}
.hero-img .ph-box{width:100%;height:100%;border-radius:0;background:transparent;border:0;display:flex;
  align-items:center;justify-content:center;opacity:.35}
.hero-img .ph-role,.hero-img .ph-brief{color:#EAF3EC}
.hero-inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;
  padding:88px var(--gap) 84px;color:#F4F1E6}
/* homepage hero gets extra breathing room (desktop; mobile keeps its own padding) */
@media (min-width:761px){.page-home .hero-inner{padding-top:132px;padding-bottom:150px}}
/* SERVICE pages: simplified, centered hero — just h1 + description + button, no eyebrow, no wave */
.page-service .hero-eyebrow{display:none}
.page-service .hero-inner{text-align:center}
.page-service .hero-inner h1,.page-service .hero-sub{margin-left:auto;margin-right:auto}
.page-service .blk-hero::after{display:none}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.55em;font-weight:700;font-size:.82rem;
  letter-spacing:.11em;text-transform:uppercase;color:var(--gold-soft);
  background:rgba(255,255,255,.09);border:1px solid rgba(246,228,190,.35);
  padding:.5em 1em;border-radius:999px;margin:0 0 1.1rem}
.live-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 0 0 rgba(228,162,51,.6);animation:pulse 2.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(228,162,51,.55)}70%{box-shadow:0 0 0 12px rgba(228,162,51,0)}100%{box-shadow:0 0 0 0 rgba(228,162,51,0)}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.hero-inner h1{color:#fff;font-size:clamp(2.35rem,6vw,4.15rem);font-weight:800;max-width:16ch}
.hero-sub{font-family:var(--body);font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.5;
  color:#E4EDE4;max-width:60ch;margin:1.1rem 0 1.9rem}
.hero-inner .btn{box-shadow:0 10px 26px rgba(0,0,0,.28)}
.hero-trust{list-style:none;display:flex;flex-wrap:wrap;gap:10px 12px;padding:0;margin:2rem 0 0}
.hero-trust li{display:inline-flex;align-items:center;gap:.5em;font-size:.9rem;font-weight:600;
  color:#F2ECDD;background:rgba(255,255,255,.08);border:1px solid rgba(246,228,190,.28);
  padding:.5em .95em;border-radius:999px}
.hero-trust li::before{content:"";width:15px;height:15px;flex:none;background:var(--gold);
  clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}

/* ---- subtle wave dividers between a couple of LIGHT sections (home only) ---- */
.page-home .blk-services,.page-home .blk-about{position:relative}
.page-home .blk-services::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:40px;z-index:1;
  background:var(--wave-paper2) bottom/100% 100% no-repeat}   /* into features (paper-2) */
.page-home .blk-about::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:40px;z-index:1;
  background:var(--wave-paper) bottom/100% 100% no-repeat}     /* into service-area (paper) */

/* ---- SERVICES GRID (home) ---- BENTO: featured tile + panel-seam cards ---- */
.blk-services .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:2.2rem auto 0}
.svc-card{position:relative;background:var(--surface);border:1px solid var(--line);
  border-top:3px solid var(--gold);border-radius:var(--r);   /* clean panel-seam = gold top edge */
  padding:24px 22px 20px;box-shadow:var(--shadow-sm);cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.svc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold-soft);border-top-color:var(--gold-deep)}
.svc-card h3{margin-bottom:.4em;font-size:1.16rem}
.svc-card h3 a{color:var(--pine)}
.svc-card p{margin:0 0 1em;color:var(--muted);font-size:.96rem}
.svc-more{display:inline-flex;align-items:center;gap:.35em;font-weight:700;font-size:.92rem;color:var(--gold-deep)}
.svc-more::after{content:"\2192";transition:transform .18s ease}
.svc-card:hover .svc-more::after{transform:translateX(5px)}
/* featured tile: the first service spans two columns on a deep pine field */
.svc-card:first-child{grid-column:span 2;background:
  radial-gradient(120% 140% at 88% 0,var(--pine-mid) 0,var(--pine) 55%,var(--pine-deep) 100%);
  border-color:transparent;border-top:4px solid var(--gold);
  display:flex;flex-direction:column;justify-content:center;padding:34px 30px}
.svc-card:first-child h3{font-size:1.7rem;margin-bottom:.5em}
.svc-card:first-child h3 a{color:#fff}
.svc-card:first-child p{color:#DCE8DD;font-size:1.04rem;max-width:44ch}
.svc-card:first-child .svc-more{color:var(--gold-soft)}
@media (max-width:820px){
  .blk-services .svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-card:first-child{grid-column:span 2}
}
@media (max-width:520px){.blk-services .svc-grid{grid-template-columns:1fr}.svc-card:first-child{grid-column:span 1}}

/* ---- FEATURE GRID ---- editorial rows: pine top-rule + gold star, no boxes ---- */
.blk-features .feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:34px 40px;margin:2.4rem auto 0}
.feat{background:transparent;border:0;border-top:2px solid var(--pine);border-radius:0;
  padding:20px 0 0;box-shadow:none}
.feat h3{color:var(--pine-deep);margin:0 0 .5em;padding-left:38px;position:relative;min-height:26px;display:flex;align-items:center}
.feat h3::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:24px;height:24px;
  background:var(--gold);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}
.feat p{margin:0;color:var(--muted);font-size:.98rem}

/* ---- STEPS ---- a real sequence: warm gold numerals in soft circles ---- */
.blk-steps ol{list-style:none;counter-reset:none;padding:0;margin:2rem auto 0;max-width:var(--wrap);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--gap)}
.blk-steps li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px 22px;
  box-shadow:var(--shadow-sm);position:relative}
.step-n{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;
  background:var(--pine);color:#fff;font-family:var(--disp);font-weight:800;font-size:1.2rem;margin-bottom:14px;
  box-shadow:0 4px 10px rgba(27,94,68,.3)}
.step-b h3{color:var(--pine-deep);margin-bottom:.35em}
.step-b p{margin:0;color:var(--muted);font-size:.97rem}

/* ---- STAT BAND ---- warm pine band, gold values ---- */
.blk.blk-stats{background:linear-gradient(135deg,var(--pine) 0,var(--pine-deep) 100%);color:#EDF3ED}
.blk.blk-stats h2{color:#fff}
.blk.blk-stats h2::before{background:var(--gold-soft)}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--gap);
  margin:1.4rem auto 0;text-align:center}
.stat{padding:14px 10px}
.stat-v{display:block;font-family:var(--disp);font-weight:800;font-size:2rem;color:var(--gold);line-height:1.05}
.stat-l{display:block;margin-top:.4em;font-size:.95rem;color:#D5E2D6}

/* ---- SPLIT + ABOUT ---- two direct children -> content grid ---- */
.blk-split,.blk-about{display:grid;align-items:stretch;
  grid-template-columns:minmax(var(--gap),1fr) minmax(0,calc(var(--wrap)*.5)) minmax(0,calc(var(--wrap)*.5)) minmax(var(--gap),1fr);
  gap:0 48px}
.blk-split>*,.blk-about>*{max-width:none;margin:0;padding:0}
.blk-split>:first-child,.blk-about>:first-child{grid-column:2;grid-row:1}
.blk-split>:last-child,.blk-about>:last-child{grid-column:3;grid-row:1}
/* image on the right: swap the columns (image is the first child). grid-row:1 keeps
   both children on the SAME row (without it, moving the first child right pushes the
   second child down to row 2). */
.blk-split.img-right>:first-child{grid-column:3;grid-row:1}
.blk-split.img-right>:last-child{grid-column:2;grid-row:1}
/* image column fills the row height (a tall panel), never a small floating box */
.split-img,.about-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);align-self:stretch}
.split-img img,.about-img img{width:100%;height:100%;object-fit:cover;min-height:100%}
.blk-split .split-b,.blk-about .about-b{align-self:center}   /* text vertically centered beside the image */
.split-img .ph-box,.about-img .ph-box{height:100%;min-height:300px}
.about-b h2,.split-b h2{margin-top:0}
.about-b p,.split-b p{color:var(--pine-ink)}
.about-b p{max-width:60ch}

/* ---- SERVICE AREA ---- warm list, gold star bullets ---- */
.blk-area .area-list{list-style:none;padding:0;margin:1.6rem auto 0;max-width:var(--wrap);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.area-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:16px 18px 16px 46px;position:relative;box-shadow:var(--shadow-sm);color:var(--pine-ink);font-size:.98rem}
.area-list li::before{content:"";position:absolute;left:16px;top:20px;width:17px;height:17px;background:var(--gold);
  clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}

/* ---- FAQ ---- rounded warm accordion ---- */
.blk-faq details{max-width:var(--wrap);margin:0 auto 12px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}
.blk-faq summary{list-style:none;cursor:pointer;padding:18px 52px 18px 22px;font-family:var(--disp);
  font-weight:700;font-size:1.06rem;color:var(--pine-deep);position:relative}
.blk-faq summary::-webkit-details-marker{display:none}
.blk-faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);
  font-size:1.5rem;font-weight:700;color:var(--gold-deep);transition:transform .2s ease}
.blk-faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-a{padding:0 22px 20px;color:var(--muted)}
.faq-a p{margin:.2em 0 0}

/* ---- TESTIMONIALS ---- editorial: contained pine panel, lead pull-quote + card ---- */
.blk.blk-tests{display:grid;grid-template-columns:1.55fr 1fr;gap:var(--gap) 44px;align-items:start;
  max-width:var(--wrap);margin:8px auto 60px;padding:46px 44px 48px;border-radius:var(--r-lg);
  background:radial-gradient(130% 130% at 0 0,var(--pine) 0,var(--pine-deep) 72%)}
.blk-tests>*{max-width:none;margin:0}
.blk-tests blockquote{margin:0;position:relative;padding:64px 0 0;color:#EAF1EA}
.blk-tests blockquote::before{content:"\201C";position:absolute;left:-6px;top:-14px;font-family:var(--disp);
  font-size:6.5rem;line-height:1;color:var(--gold);opacity:.95}
.blk-tests blockquote:first-of-type{font-family:var(--disp);font-weight:600;
  font-size:clamp(1.4rem,2.6vw,2.05rem);line-height:1.28;color:#fff;letter-spacing:-.01em}
.blk-tests blockquote:not(:first-of-type){background:rgba(255,255,255,.05);border:1px solid rgba(246,228,190,.22);
  border-radius:var(--r);padding:52px 24px 22px;font-size:1rem;line-height:1.55}
.blk-tests blockquote:not(:first-of-type)::before{font-size:4rem;left:20px;top:2px}
.blk-tests cite{display:block;margin-top:18px;font-family:var(--body);font-style:normal;font-weight:700;
  color:var(--gold);font-size:.95rem}
.blk-tests cite::before{content:"\2014 "}
@media (max-width:760px){.blk-tests{grid-template-columns:1fr}}

/* ---- CTA + CLOSING ---- full-bleed warm gold band ---- */
.blk-cta,.blk-closing{background:
  radial-gradient(120% 140% at 85% 10%,var(--gold) 0,#D89523 55%,var(--gold-deep) 100%);
  color:var(--pine-deep);text-align:center}
.blk-cta>*,.blk-closing>*{max-width:760px}
.blk-closing h2,.blk-cta h2{color:var(--pine-deep)}
.blk-closing h2::before,.blk-cta h2::before{margin-left:auto;margin-right:auto;background:var(--pine-deep)}
.blk-cta p,.blk-closing p{font-size:1.1rem;color:#3A2E12;margin:.6em auto 1.5em;max-width:56ch}
.blk-cta .btn,.blk-closing .btn{background:var(--pine);color:#fff;box-shadow:0 8px 20px rgba(18,61,44,.3)}
.blk-cta .btn:hover,.blk-closing .btn:hover{background:var(--pine-deep)}

/* ---- GALLERY ---- */
.blk-gallery .gal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:2rem auto 0}
.gal-img{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);margin:0}
.gal-img img{width:100%;height:100%;object-fit:cover}
.gal-img figcaption{font-size:.85rem;color:var(--muted);padding:8px 4px}

/* ---- image placeholders (pre Step 06) — warm, intentional ---- */
.ph-box{background:var(--paper-2);border:1px dashed var(--gold-soft);border-radius:var(--r);
  padding:28px;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;min-height:220px}
.ph-role{font-family:var(--disp);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep)}
.ph-brief{font-size:.9rem;color:var(--muted);text-align:center;max-width:36ch}
.ph-fig{margin:0}
.ph-fig img{border-radius:var(--r)}

/* ---- BREADCRUMBS ---- */
.crumbs{max-width:var(--wrap);margin:0 auto;padding:18px var(--gap);font-size:.88rem;color:var(--muted)}
.crumbs a{color:var(--pine);font-weight:600}
.crumbs .sep{margin:0 .5em;color:var(--gold-deep)}

/* ============================================================
   FOOTER — deep pine, gold headings
   ============================================================ */
.site-footer{background:var(--pine-deep);color:#CBD8CC;padding:56px var(--gap) 0}
.foot-in{max-width:var(--wrap);margin:0 auto;display:grid;grid-template-columns:1.1fr 1.6fr;gap:48px}
.f-services h3.f-svc-h2{margin-top:30px}
.f-col h3,.f-col h4{font-family:var(--disp);font-weight:700;color:#fff;font-size:1.02rem;margin:0 0 14px}
.f-about{color:#B9C9BA;font-size:.95rem}
.f-about .site-logo{height:46px;margin-bottom:12px;filter:brightness(0) invert(1)}
.f-phone{display:inline-block;margin-top:12px;font-family:var(--disp);font-weight:800;font-size:1.7rem;
  color:var(--gold);letter-spacing:-.01em}
.f-col a{color:#CBD8CC;font-size:.9rem;display:block;padding:3px 0}
.f-col a:hover{color:var(--gold)}
.f-svc-head{font-family:var(--disp);font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);list-style:none;padding:10px 0 2px}
/* short, flat services list in two columns so the footer isn't a mile tall */
.f-svc-list{list-style:none;padding:0;margin:0;columns:2;column-gap:26px}
.f-svc-list li{break-inside:avoid}
.area-cols{list-style:none;padding:0;margin:0;columns:2;gap:18px}
/* map now lives in column 1, under the phone/hours */
.f-about .f-map{margin-top:18px}
.f-map .map{width:100%;height:180px;border:0;border-radius:var(--r);filter:grayscale(.15)}
.foot-legal{max-width:var(--wrap);margin:40px auto 0;border-top:1px solid rgba(255,255,255,.12);
  padding:18px 0 26px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
.legal-links{display:flex;flex-wrap:wrap;gap:8px 20px}
.legal-links a{color:#B9C9BA;font-size:.88rem}
.legal-links a:hover{color:var(--gold)}
.legal-copy{color:#8FA391;font-size:.85rem}

/* ============================================================
   STICKY MOBILE CALL BAR
   ============================================================ */
.call-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--gold);
  color:var(--pine-deep);text-align:center;font-weight:800;font-family:var(--disp);padding:14px;
  font-size:1.02rem;box-shadow:0 -4px 18px rgba(0,0,0,.18);align-items:center;justify-content:center;gap:.5em}
.call-bar::before{content:"";width:.95em;height:.95em;flex:none;background-color:currentColor;
  -webkit-mask:var(--ico-phone) center/contain no-repeat;mask:var(--ico-phone) center/contain no-repeat}

/* ============================================================
   SCROLL REVEAL (JS-added; degrades to visible without JS)
   ============================================================ */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .foot-in{grid-template-columns:1fr 1fr;gap:28px}
}
@media (max-width:760px){
  .blk{padding:48px var(--gap)}
  .hero-inner{padding:64px var(--gap) 60px}
  .nav-toggle{display:inline-block;margin-left:auto}
  .hdr-call{margin-left:8px}
  .site-nav{position:fixed;inset:0 0 0 auto;width:min(84vw,340px);background:#FFFDF7;
    flex-direction:column;align-items:stretch;gap:2px;padding:80px 18px 24px;
    box-shadow:-14px 0 40px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .28s ease;overflow:auto}
  body.nav-open .site-nav{transform:none}
  .site-nav>.has-dd,.site-nav>.has-dd>.dd-top{width:100%}
  .dd{position:static;display:block;box-shadow:none;border:0;border-left:2px solid var(--gold-soft);
    border-radius:0;padding:2px 0 6px 10px;max-height:none}
  .has-dd>.dd-top::after{margin-left:auto}
  .blk-split,.blk-about{grid-template-columns:1fr;gap:24px;padding-left:var(--gap);padding-right:var(--gap)}
  .blk-split>:first-child,.blk-about>:first-child,
  .blk-split>:last-child,.blk-about>:last-child{grid-column:1}
  .blk-about>:first-child{order:2}
  .call-bar{display:flex}
  body{padding-bottom:56px}
  .foot-in{grid-template-columns:1fr}
  .foot-legal{flex-direction:column;align-items:flex-start}
}
@media (min-width:761px){.nav-toggle{display:none}}
