:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-bottom]{object-position:top bottom}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-top]{object-position:bottom top}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-right]{object-position:left right}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-left]{object-position:right left}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}:root{--pine-950:#061c0e;--pine-925:#083317;--pine-900:#092a15;--pine-800:#064f1d;--pine-700:#0b6427;--pine-600:#1f6f35;--needle:#3f7d2d;--cone:#7a4709;--bark:#9a5a13;--gold:#f6a900;--gold-hover:#e39b00;--gold-soft:#ffd567;--gold-bright:#ffc22e;--gold-pale:#fff1c7;--pine-soft:#e6f3ea;--needle-light:#81b85d;--sky-mint:#dff5e7;--cream:#fff8ea;--cream-2:#f8eedb;--sand:#f4e8d1;--card:#ead6b8;--card-2:#f0dec2;--border:#d7c4a4;--border-strong:#c7a980;--heading:#102015;--body:#2c2419;--muted:#6b5a43;--white:#fff;--shadow-xs:0 8px 18px #10201514, 0 2px 0 #064f1d12;--shadow-sm:0 16px 32px #1020151f, 0 4px 0 #064f1d14;--shadow-md:0 28px 64px #10201529, 0 6px 0 #064f1d14;--shadow-card:0 16px 34px #1020151f, 0 5px 0 #7a47091a, inset 0 1px 0 #ffffffb8;--shadow-card-hover:0 24px 42px #10201529, 0 6px 0 #7a47091f, inset 0 1px 0 #fffc;--shadow-button:0 12px 24px #064f1d38, inset 0 1px 0 #ffffff38, 0 4px 0 #043914f2;--shadow-button-gold:0 12px 24px #f6a9003d, inset 0 1px 0 #ffffff6b, 0 4px 0 #b57900f5;--radius-xs:10px;--radius-sm:14px;--radius-md:20px;--radius-lg:30px;--container:1180px}*,:before,:after{box-sizing:border-box}html{background:var(--cream);color:var(--body);scroll-behavior:smooth;text-size-adjust:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{color:var(--body);background:radial-gradient(circle at 8% 4%,#f6a9002e,#0000 24rem),radial-gradient(circle at 88% 7%,#1f6f351f,#0000 28rem),radial-gradient(circle at 52% 0,#81b85d1a,#0000 24rem),linear-gradient(135deg,#7a47090d 0 1px,#0000 1px 100%) 0 0/42px 42px,linear-gradient(#fff8ea 0%,#fcf3e1 100%);margin:0;font-size:1rem;line-height:1.65}img,svg{max-width:100%;display:block}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p,ul{margin-top:0}h1,h2,h3{color:var(--heading);letter-spacing:-.045em;line-height:1.04}h1{max-width:11.6ch;margin-bottom:1.15rem;font-size:clamp(3.1rem,7vw,6rem)}h2{margin-bottom:1rem;font-size:clamp(2.1rem,4vw,4.05rem)}h3{letter-spacing:-.025em;margin-bottom:.55rem;font-size:1.25rem}p{margin-bottom:1rem}.container{width:min(100% - 2rem, var(--container));margin-inline:auto}.narrow{max-width:790px;margin-inline:auto}.centered{text-align:center}.site-header{z-index:50;backdrop-filter:blur(10px);background:#fff8eaed;border-bottom:1px solid #d7c4a4b8;padding:.75rem 0;position:sticky;top:0;box-shadow:0 10px 32px #10201514}.header-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;min-height:72px;padding:.25rem .5rem;display:grid}.brand{align-items:center;text-decoration:none;display:inline-flex}.brand img{object-fit:contain;width:150px;height:auto}.desktop-nav{background:#fff8eaa8;border:1px solid #d7c4a4c7;border-radius:999px;justify-self:center;align-items:center;gap:.15rem;padding:.35rem;display:inline-flex;box-shadow:inset 0 1px #ffffffa3}.desktop-nav a{color:var(--muted);border-radius:999px;padding:.58rem .78rem;font-size:.86rem;font-weight:850;line-height:1;text-decoration:none;transition:background-color .16s,color .16s,transform .16s}.desktop-nav a:hover{background:var(--sand);color:var(--pine-800);transform:translateY(-1px)}.header-actions,.button-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.header-actions{justify-content:flex-end}.button{border-radius:var(--radius-sm);text-align:center;border:2px solid #0000;justify-content:center;align-items:center;min-height:46px;padding:.78rem 1.12rem;font-weight:900;line-height:1.1;text-decoration:none;transition:transform .16s,background-color .16s,border-color .16s,box-shadow .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px)}.button-xl{min-height:56px;padding:1rem 1.35rem}.button-primary{color:var(--white);background:linear-gradient(180deg, #16843a, var(--pine-800));box-shadow:var(--shadow-button);border-color:#ffffff24}.button-primary:hover{background:linear-gradient(180deg, #1c9341, var(--pine-800))}.button-secondary{color:var(--heading);background:linear-gradient(180deg, #ffd04f, var(--gold));box-shadow:var(--shadow-button-gold);border-color:#ffffff57}.button-secondary:hover{background:linear-gradient(180deg, #ffe07a, var(--gold-hover))}.button-cream{color:var(--pine-800);background:linear-gradient(#fff,#fbf1dd);border-color:#ffffffb3;box-shadow:0 14px 28px #041e0e6b,inset 0 1px #ffffffe6,0 4px #04281273}.button-cream:hover{background:linear-gradient(180deg, #fff, var(--sand))}.button-outline{color:var(--pine-800);background:linear-gradient(#ffffffc7,#f4e8d1f0);border-color:#064f1d3d;box-shadow:0 10px 20px #10201514,inset 0 1px #ffffffdb,0 3px #064f1d1f}.button-outline:hover{background:linear-gradient(180deg, #ffffffeb, var(--sand))}.mobile-menu,.mobile-sticky-cta{display:none}.hero{isolation:isolate;color:var(--cream);background:radial-gradient(circle at 12% 8%,#f6a9004d,#0000 42%),radial-gradient(circle at 88% 18%,#81b85d42,#0000 46%),radial-gradient(circle at 70% 96%,#1f6f3566,#0000 50%),linear-gradient(162deg,#0e4a23 0%,#093a1b 46%,#062a14 100%);padding:5.5rem 0 4rem;position:relative;overflow:hidden}.hero:before{content:"";z-index:-1;pointer-events:none;background-image:repeating-linear-gradient(115deg,#fff8ea0d 0 1px,#0000 1px 26px),repeating-linear-gradient(25deg,#fff8ea09 0 1px,#0000 1px 30px);position:absolute;inset:0}.hero:after{content:"";z-index:-1;background:linear-gradient(180deg, transparent, var(--cream));pointer-events:none;height:3.5rem;position:absolute;bottom:-1px;left:0;right:0}.hero .eyebrow{color:var(--gold-soft)}.hero h1{color:#fff}.hero .hero-lead{color:#fff8eaf0}.hero .micro-copy{color:#fff8ead1}.hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(360px,.9fr);align-items:center;gap:clamp(2rem,5vw,5rem);display:grid}.eyebrow,.section-label{color:var(--pine-800);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.8rem;font-size:.82rem;font-weight:950}.hero-lead{max-width:760px;color:var(--body);font-size:clamp(1.18rem,2vw,1.45rem);line-height:1.55}.hero-actions{margin-top:1.65rem}.micro-copy{color:var(--muted);margin-top:1.1rem;font-weight:800}.hero-visual{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(145deg, #ffffff7a, #ead6b8a3), var(--card-2);box-shadow:var(--shadow-md), inset 0 1px 0 #ffffffb3;padding:1rem;position:relative;overflow:hidden}.hero-visual:before{content:"";filter:blur(4px);background:#f6a9003d;border-radius:50%;width:15rem;height:15rem;position:absolute;inset:-18% auto auto -10%}.section{padding:clamp(4.5rem,8vw,7rem) 0}.section-soft{background:#f4e8d1b3}.section-dark{isolation:isolate;color:var(--cream);background:radial-gradient(circle at 10% 0,#f6a90038,#0000 40%),radial-gradient(circle at 92% 100%,#81b85d33,#0000 46%),linear-gradient(158deg,#0d451f 0%,#08361a 50%,#062813 100%);position:relative;overflow:hidden}.section-dark:before{content:"";z-index:-1;pointer-events:none;background-image:repeating-linear-gradient(115deg,#fff8ea0b 0 1px,#0000 1px 28px);position:absolute;inset:0}.section-dark h2{color:#fff}.section-dark .section-label{color:var(--gold-soft)}.section-dark .section-intro,.section-dark p{color:#fff8eaeb}.section-dark .defensible-card{border-color:#ffffff2e}.section-dark .defensible-card p{color:var(--body)}.section-dark .defensible-card h3{color:var(--heading)}.section-heading{max-width:780px;margin-bottom:2rem}.section-heading p,.section-intro{max-width:760px;font-size:1.12rem;line-height:1.7}.proof-strip{padding:1rem 0 3.25rem}.proof-grid{grid-template-columns:repeat(4,1fr);gap:.8rem;display:grid}.proof-card,.service-card,.step-card,.scope-card,.contact-panel,.faq-item{border-radius:var(--radius-md);box-shadow:var(--shadow-card);background:radial-gradient(circle at 100% 0,#f6a90024,#0000 34%),radial-gradient(circle at 0 100%,#1f6f3514,#0000 36%),linear-gradient(#ffffffbd,#ead6b8f5);border:1px solid #c7a980c7}.proof-card{align-items:center;gap:.85rem;padding:1rem;display:flex}.proof-card,.scope-card,.contact-panel{transition:transform .18s,box-shadow .18s}.proof-card:hover,.scope-card:hover,.contact-panel:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.proof-card strong,.proof-card span{display:block}.proof-card strong{color:var(--heading);font-size:1rem;line-height:1.1}.proof-card div span{color:var(--muted);font-size:.9rem;font-weight:750}.icon{width:3rem;height:3rem;color:var(--pine-800);background:linear-gradient(#ffffffeb,#dff5e7eb);border:1px solid #1f6f3524;border-radius:18px;flex:none;place-items:center;display:inline-grid;position:relative;box-shadow:0 10px 22px #1020151a,inset 0 1px #ffffffd9,0 3px #064f1d14}.icon:after{content:"";pointer-events:none;background:linear-gradient(#ffffff9e,#fff0);border-radius:14px;position:absolute;inset:.32rem}.icon svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;z-index:1;width:1.55rem;height:1.55rem;position:relative}.icon svg .fill{fill:currentColor;stroke:none}.icon svg .thin{stroke-width:1.8px;opacity:.92}.proof-grid>:nth-child(3n+1) .icon,.bento-grid>:nth-child(3n+1) .icon{color:var(--pine-800);background:linear-gradient(#fffffff0,#dff5e7f2)}.proof-grid>:nth-child(3n+2) .icon,.bento-grid>:nth-child(3n+2) .icon{color:var(--cone);background:linear-gradient(#fffcf2fa,#ffebb5f5);border-color:#b579002e}.proof-grid>:nth-child(3n) .icon,.bento-grid>:nth-child(3n) .icon{color:var(--pine-700);background:linear-gradient(#fffffff5,#f0dec2fa)}.split{grid-template-columns:minmax(0,1.1fr) minmax(320px,.7fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.step-grid{counter-reset:steps;grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.step-card{min-height:260px;padding:1.35rem;transition:transform .18s,box-shadow .18s;position:relative}.step-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.step-number{color:#064f1d38;letter-spacing:-.08em;margin-bottom:2.4rem;font-size:3.5rem;font-weight:950;line-height:.9;display:block}.step-card .icon{position:absolute;top:1.45rem;right:1.45rem}.bento-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.service-card{padding:1.35rem;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.service-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-5px)}.service-card:before{content:"";background:linear-gradient(90deg, #ffd45f, var(--gold), var(--needle-light), var(--pine-700));height:6px;position:absolute;inset:0 0 auto}.service-card .icon{margin-bottom:1.2rem}.service-featured{background:linear-gradient(145deg,#ffbc1c38,#fff8eae0 48%,#dff5e7f2);grid-column:span 2;min-height:310px}.service-featured h3{font-size:1.9rem}.service-featured p{max-width:56ch;font-size:1.08rem}.fire-grid{grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.defensible-card{border-radius:var(--radius-lg);background:var(--card-2);box-shadow:var(--shadow-md);border:1px solid #064f1d29;padding:1.4rem}.zone-rings{aspect-ratio:1;background:radial-gradient(circle, var(--cream) 0 16%, #f6a90038 16% 35%, #1f6f3529 35% 61%, #064f1d29 61% 100%);border:1px solid var(--border);border-radius:50%;margin-bottom:1.25rem;position:relative}.zone-home{background:var(--pine-800);width:5rem;height:5rem;color:var(--cream);box-shadow:var(--shadow-sm);border-radius:20px;place-items:center;font-weight:950;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.zone{color:var(--pine-800);box-shadow:var(--shadow-xs);background:#fff8eae6;border-radius:999px;padding:.35rem .65rem;font-size:.82rem;font-weight:950;position:absolute}.zone-one{top:31%;left:50%;transform:translate(-50%)}.zone-two{top:12%;left:50%;transform:translate(-50%)}.zone-three{bottom:7%;left:50%;transform:translate(-50%)}.phone-card{border:10px solid var(--pine-950);background:var(--cream);max-width:390px;box-shadow:var(--shadow-md);border-radius:38px;margin-inline:auto;padding:1.2rem}.phone-top{background:#061c0e38;border-radius:999px;width:5.3rem;height:.45rem;margin:0 auto 1.1rem}.message{border-radius:18px;max-width:84%;margin-bottom:.75rem;padding:.7rem .85rem;font-size:.9rem;font-weight:750}.message-in{background:var(--sand);color:var(--heading)}.message-out{background:var(--pine-800);color:var(--cream);margin-left:auto}.photo-stack{grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0;display:grid}.photo-stack span{background:repeating-linear-gradient(23deg, #7a470980 0 4px, #9a5a1340 4px 12px), var(--sand);min-height:95px;color:var(--cream);border-radius:16px;place-items:end center;padding:.55rem;font-weight:950;display:grid}.photo-stack span:last-child{color:var(--heading);background:linear-gradient(#d8c69f,#b7a379)}.pill-grid{flex-wrap:wrap;gap:.65rem;display:flex}.pill{min-height:2.5rem;color:var(--heading);background:linear-gradient(#ffffffc7,#f0dec2f5);border:1px solid #c7a980d1;border-radius:999px;align-items:center;padding:.55rem .9rem;font-weight:900;display:inline-flex;box-shadow:0 8px 16px #10201514,inset 0 1px #ffffffd1,0 3px #7a470914}.service-area-note{color:var(--muted);margin-top:1.2rem;font-weight:800}.service-area-note a{color:var(--pine-800);text-underline-offset:.22em;text-decoration-thickness:3px}.scope-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:stretch;gap:1rem;display:grid}.scope-card{padding:1.4rem}.scope-negative{border-left:6px solid var(--gold);background:linear-gradient(#fff8ea42,#ead6b8f5)}.check-list{gap:.75rem;padding:0;list-style:none;display:grid}.two-col-list{grid-template-columns:repeat(2,minmax(0,1fr))}.check-list li{padding-left:1.7rem;font-weight:750;position:relative}.check-list li:before{content:"";background:var(--pine-700);border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:.62em;left:0}.faq-list{gap:.8rem;display:grid}.faq-item{border-radius:var(--radius-sm)}.faq-item summary{cursor:pointer;color:var(--heading);padding:1.05rem 3.25rem 1.05rem 1.15rem;font-weight:950;list-style:none;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"";width:1.8rem;height:1.8rem;color:var(--pine-800);background:#064f1d1a;border-radius:999px;place-items:center;font-size:1.2rem;display:grid;position:absolute;top:50%;right:1.1rem;transform:translateY(-50%)}.faq-item[open] summary:after{content:""}.faq-item p{margin-bottom:0;padding:0 1.15rem 1.15rem}.contact-panel{gap:.75rem;padding:1.35rem;display:grid}.contact-panel img{width:160px;margin-inline:auto}.contact-panel span{color:var(--muted);text-align:center;font-weight:800}.cta-band{isolation:isolate;background:radial-gradient(circle at 14% 12%, #ffffff73, transparent 38%), radial-gradient(circle at 90% 88%, #b5790052, transparent 45%), linear-gradient(135deg, var(--gold-bright) 0%, var(--gold) 52%, #e89a00 100%);padding:clamp(3rem,6vw,4.75rem) 0;position:relative;overflow:hidden}.cta-band:before{content:"";z-index:-1;pointer-events:none;background-image:repeating-linear-gradient(125deg,#7a470912 0 1px,#0000 1px 30px);position:absolute;inset:0}.cta-band-inner{grid-template-columns:minmax(0,1.3fr) auto;align-items:center;gap:clamp(1.5rem,4vw,3rem);display:grid}.cta-band-copy .section-label{color:#6b4500}.cta-band-copy h2{color:#1a2e12;margin-bottom:.6rem}.cta-band-copy p{color:#3a2d12;max-width:46ch;margin-bottom:0;font-size:1.08rem;font-weight:700}.cta-band-actions{flex-wrap:wrap;gap:.75rem;display:flex}.site-footer{background:var(--pine-950);color:#fff8ead1;padding:3.2rem 0 2rem}.footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:2rem;display:grid}.site-footer h2,.site-footer h3{color:var(--cream)}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin-bottom:.35rem}.footer-actions a{color:var(--gold);text-underline-offset:.2em;font-weight:950;text-decoration-thickness:2px}.footer-bottom{border-top:1px solid #fff8ea29;justify-content:space-between;gap:1rem;margin-top:2.5rem;padding-top:1rem;font-size:.9rem;display:flex}@media (width<=1080px){.desktop-nav{display:none}.header-inner{grid-template-columns:auto 1fr}.mobile-menu{display:block}.mobile-menu summary{border-radius:var(--radius-sm);min-height:46px;color:var(--pine-800);cursor:pointer;background:linear-gradient(#fffffffa,#f0dec2f2);border:2px solid #064f1dc2;align-items:center;gap:.5rem;padding:.7rem .85rem;font-weight:900;list-style:none;display:inline-flex;box-shadow:0 10px 20px #1020151a,inset 0 1px #ffffffd9,0 3px #064f1d1f}.mobile-menu summary::-webkit-details-marker{display:none}.menu-icon,.menu-icon:before,.menu-icon:after{background:currentColor;border-radius:999px;width:1.1rem;height:2px;display:block}.menu-icon{position:relative}.menu-icon:before,.menu-icon:after{content:"";position:absolute;left:0}.menu-icon:before{top:-6px}.menu-icon:after{top:6px}.mobile-menu-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--cream);min-width:230px;box-shadow:var(--shadow-md);padding:.65rem;display:grid;position:absolute;top:calc(100% + .5rem);right:1rem}.mobile-menu-panel a{border-radius:var(--radius-xs);color:var(--heading);padding:.75rem;font-weight:900;text-decoration:none}.mobile-menu-panel a:hover{background:linear-gradient(#ffd5673d,#dff5e799)}}@media (width<=900px){h1{max-width:12.2ch;font-size:clamp(2.8rem,11vw,4.2rem)}.hero{padding-top:3.5rem}.hero-grid,.split,.fire-grid,.scope-grid,.cta-band-inner{grid-template-columns:1fr}.cta-band-actions{width:100%}.cta-band-actions .button{flex:auto}.proof-grid,.bento-grid,.step-grid{grid-template-columns:1fr 1fr}.service-featured{grid-column:span 2}.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}}@media (width<=640px){body{padding-bottom:74px}.container{width:min(100% - 1.25rem, var(--container))}.site-header{backdrop-filter:none;padding:.45rem 0}.header-inner{gap:.55rem;min-height:62px}.brand img{width:118px}.header-call,.header-text{display:none}.button,.hero-actions .button{width:100%}.hero-visual{border-radius:22px;padding:.7rem}.proof-grid,.bento-grid,.step-grid,.two-col-list{grid-template-columns:1fr}.service-featured{grid-column:span 1;min-height:auto}.service-featured h3{font-size:1.35rem}.section{padding:3.5rem 0}.mobile-sticky-cta{z-index:60;border-top:1px solid var(--border);background:#fff8eaf0;grid-template-columns:1fr 1fr;gap:.5rem;padding:.6rem;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 24px #1020151f}.mobile-sticky-cta a{border-radius:14px;place-items:center;width:100%;min-height:50px;font-weight:950;text-decoration:none;display:grid}}.js [data-reveal]{opacity:0;will-change:opacity, transform;transition:opacity .62s cubic-bezier(.22,.61,.36,1),transform .62s cubic-bezier(.22,.61,.36,1);transform:translateY(22px)}.js [data-reveal].is-revealed{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}.js [data-reveal]{opacity:1;transform:none}}@media (width<=640px){html{scroll-padding-top:72px}body{padding-bottom:calc(92px + env(safe-area-inset-bottom));background-size:auto,auto,36px 36px,auto;font-size:.98rem;line-height:1.56}h1{letter-spacing:-.05em;max-width:none;margin-bottom:.8rem;font-size:clamp(2.35rem,10.25vw,3.15rem);line-height:1.03}h2{letter-spacing:-.04em;margin-bottom:.8rem;font-size:clamp(1.9rem,8vw,2.58rem);line-height:1.08}h3{margin-bottom:.45rem;font-size:1.12rem;line-height:1.16}p{margin-bottom:.78rem}.container{width:min(100% - 1.25rem, var(--container))}.site-header{background:#fff8eaf7;padding:.38rem 0;box-shadow:0 6px 18px #10201514}.header-inner{gap:.45rem;min-height:54px;padding:0}.brand img{width:106px}.header-actions{flex-wrap:nowrap;gap:.45rem}.header-call{white-space:nowrap;border-radius:12px;width:auto;min-height:42px;padding:.58rem .8rem;font-size:.92rem;display:inline-flex}.header-text{display:none}.mobile-menu summary{border-radius:12px;place-items:center;gap:.18rem;min-width:58px;min-height:42px;padding:.4rem .5rem;font-size:.72rem;line-height:1;display:grid}.menu-icon,.menu-icon:before,.menu-icon:after{width:1.25rem;height:2px}.menu-icon:before{top:-6px}.menu-icon:after{top:6px}.mobile-menu-panel{min-width:min(260px,100vw - 1.3rem);top:calc(100% + .35rem);right:.65rem}.button{border-radius:13px;min-height:48px;padding:.82rem 1rem;font-size:.98rem}.button-xl{min-height:50px;padding:.86rem 1rem}.hero{padding:2.45rem 0 2rem}.hero-grid{gap:1.15rem}.hero-lead,.section-heading p,.section-intro{font-size:1rem;line-height:1.55}.eyebrow,.section-label{letter-spacing:.065em;margin-bottom:.55rem;font-size:.72rem}.hero-actions{gap:.55rem;margin-top:1.05rem}.micro-copy{margin-top:.85rem;font-size:.86rem;line-height:1.42}.hero-visual{border-radius:20px;padding:.62rem}.section{padding:3.1rem 0}.section-heading{margin-bottom:1.35rem}.proof-strip{padding:.25rem 0 2rem}.proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.proof-card{border-radius:16px;align-items:flex-start;gap:.55rem;padding:.7rem}.proof-card strong{font-size:.88rem}.proof-card div span{font-size:.76rem;line-height:1.25}.icon{width:2.2rem;height:2.2rem}.icon svg{stroke-width:3.2px;width:1.12rem;height:1.12rem}.service-card,.step-card,.scope-card,.contact-panel{border-radius:16px;padding:1rem}.service-card .icon{margin-bottom:.75rem}.service-card p,.scope-card p,.faq-item p{font-size:.94rem;line-height:1.52}.step-grid{gap:.75rem}.step-card{min-height:auto;padding-top:1rem}.step-number{background:var(--gold);width:2.15rem;height:2.15rem;color:var(--heading);letter-spacing:0;border-radius:999px;place-items:center;margin-bottom:.85rem;font-size:.92rem;line-height:1;display:inline-grid}.step-card .icon{top:1rem;right:1rem}.bento-grid,.step-grid{gap:.85rem}.service-card:before{height:4px}.service-featured h3{font-size:1.2rem}.service-featured p{font-size:.95rem}.fire-grid{gap:1.2rem}.defensible-card{border-radius:20px;padding:1rem}.zone-home{border-radius:16px;width:4rem;height:4rem;font-size:.82rem}.zone{padding:.26rem .46rem;font-size:.68rem}.phone-card{border-width:8px;border-radius:28px;max-width:100%;padding:.9rem}.phone-top{margin-bottom:.85rem}.message{font-size:.82rem;line-height:1.35}.photo-stack span{border-radius:13px;min-height:78px}.pill-grid{gap:.45rem}.pill{min-height:2.15rem;box-shadow:none;padding:.42rem .68rem;font-size:.84rem}.two-col-list{gap:.55rem}.check-list li{padding-left:1.35rem;font-size:.94rem;line-height:1.42}.check-list li:before{width:.45rem;height:.45rem;top:.48em}.faq-list{gap:.6rem}.faq-item summary{padding:.85rem 2.75rem .85rem .9rem;font-size:.94rem;line-height:1.35}.faq-item summary:after{width:1.55rem;height:1.55rem;font-size:1rem;right:.8rem}.faq-item p{padding:0 .9rem .95rem}.contact-panel img{width:128px}.contact-panel span{font-size:.9rem;line-height:1.35}.site-footer{padding:2.35rem 0 calc(2.35rem + env(safe-area-inset-bottom))}.footer-grid{gap:1.35rem}.site-footer li,.site-footer p{font-size:.94rem;line-height:1.48}.mobile-sticky-cta{padding:.6rem .7rem calc(.62rem + env(safe-area-inset-bottom));background:#fff8eaf7;gap:.55rem}.mobile-sticky-cta a{border-radius:13px;min-height:50px;font-size:.95rem}}@media (width<=380px){.brand img{width:96px}.header-call{padding-inline:.68rem;font-size:.86rem}.mobile-menu summary{min-width:54px}h1{font-size:2.15rem}h2{font-size:1.78rem}.proof-grid{grid-template-columns:1fr}}html{scroll-padding-top:106px}#services,#how-it-works,#service-area,#faq,#contact{scroll-margin-top:112px}.site-header{z-index:120;background:var(--cream);-webkit-backdrop-filter:none}.hero{padding-top:4.6rem}.hero h1{max-width:13.9ch;font-size:clamp(3.05rem,6.15vw,5.5rem)}@media (width<=1080px){.mobile-menu{position:static}.mobile-menu summary{background:#fff8eafa;border-width:2px;position:relative;box-shadow:inset 0 1px #ffffffbf,0 2px #064f1d1f}.mobile-menu[open] summary{background:var(--sand);box-shadow:inset 0 2px 8px #10201514}.menu-label-open,.mobile-menu[open] .menu-label-closed{display:none}.mobile-menu[open] .menu-label-open{display:inline}.mobile-menu[open] .menu-icon{background:0 0}.mobile-menu[open] .menu-icon:before{top:0;transform:rotate(45deg)}.mobile-menu[open] .menu-icon:after{top:0;transform:rotate(-45deg)}.menu-icon:before,.menu-icon:after{transition:transform .16s,top .16s}.mobile-menu-panel{width:100%;min-width:0;padding:1rem max(1rem, calc((100vw - var(--container)) / 2));border-width:1px 0;border-color:var(--border);background:var(--cream);border-radius:0 0 24px 24px;position:absolute;top:100%;left:0;right:0;box-shadow:0 18px 42px #1020152e}.mobile-menu-links{gap:.1rem;width:min(100%,560px);margin-inline:auto;display:grid}.mobile-menu-panel a:not(.button){border-radius:14px;padding:.85rem .9rem;font-size:1.05rem}.mobile-menu-actions{grid-template-columns:1fr 1fr;gap:.65rem;width:min(100%,560px);margin:.85rem auto 0;display:grid}.mobile-menu-actions .button{width:100%}}@media (width<=640px){html{scroll-padding-top:74px}body{padding-bottom:calc(116px + env(safe-area-inset-bottom))}main{padding-bottom:calc(36px + env(safe-area-inset-bottom))}#services,#how-it-works,#service-area,#faq,#contact{scroll-margin-top:78px}.site-header{background:var(--cream);border-bottom:1px solid #d7c4a4f2;box-shadow:0 8px 22px #1020151f}.mobile-menu-panel{padding:.85rem .75rem calc(1rem + env(safe-area-inset-bottom));max-height:calc(100svh - 78px);overflow:auto}.mobile-menu-panel a:not(.button){padding:.78rem .65rem;font-size:1.02rem}.mobile-menu-actions{grid-template-columns:1fr;gap:.5rem}.hero{padding-top:2.1rem}.hero h1{max-width:10.9ch;font-size:clamp(2.55rem,10.8vw,3.25rem)}.hero-lead{max-width:34rem}.section-heading.centered{text-align:left}.section-heading.centered.narrow{margin-inline:0}.section{padding:3rem 0}.mobile-sticky-cta{z-index:130;background:var(--cream)}}.hero-photo-card{padding:.75rem}.hero-photo-heading{z-index:1;color:var(--pine-800);letter-spacing:.055em;text-transform:uppercase;margin:0 0 .62rem;padding:.15rem .3rem;font-size:.76rem;font-weight:950;position:relative}.hero-photo{z-index:1;background:var(--sand);border:1px solid #7a47092e;border-radius:22px;display:block;position:relative;overflow:hidden}.hero-photo img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.hero-photo-footer{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-top:.7rem;display:grid;position:relative}.hero-photo-footer span{min-height:2.3rem;color:var(--pine-800);letter-spacing:.04em;text-align:center;text-transform:uppercase;background:#fff8eabd;border-radius:999px;place-items:center;padding:.4rem .25rem;font-size:.7rem;font-weight:950;display:grid}.cleanup-example-section{background:linear-gradient(#ffffff45,#f0dec27a);border-block:1px solid #d7c4a485}.ba-slider{aspect-ratio:16/9;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--sand);box-shadow:var(--shadow-card);isolation:isolate;touch-action:pan-y;user-select:none;margin:2rem auto 0;position:relative;overflow:hidden}.ba-img{object-fit:cover;border-radius:0;inset:0;width:100%!important;max-width:none!important;height:100%!important;margin:0!important;position:absolute!important}.ba-img-after{z-index:1;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.ba-slider .ba-badge{z-index:3;top:1rem}.ba-slider .ba-badge-after{left:1rem;right:auto}.ba-slider .ba-badge-before{left:auto;right:1rem}.ba-divider{top:0;bottom:0;left:var(--pos);z-index:4;pointer-events:none;background:#fff8eaf2;width:3px;margin-left:-1.5px;position:absolute;box-shadow:0 0 0 1px #061c0e47}.ba-handle{width:3rem;height:3rem;color:var(--pine-800);background:linear-gradient(#fff,#fbf1dd);border:2px solid #ffffffeb;border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 22px #041e0e6b}.ba-handle svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:1.55rem;height:1.55rem}.ba-range{z-index:5;cursor:ew-resize;opacity:0;appearance:none;background:0 0;width:100%;height:100%;margin:0;position:absolute;inset:0}.ba-range::-webkit-slider-thumb{-webkit-appearance:none;cursor:ew-resize;width:3rem;height:100%}.ba-range::-moz-range-thumb{cursor:ew-resize;background:0 0;border:none;width:3rem;height:100%}.ba-slider:focus-within .ba-handle{box-shadow:0 0 0 4px #f6a9008c,0 10px 22px #041e0e6b}.ba-caption{z-index:3;color:var(--cream);letter-spacing:.01em;white-space:nowrap;pointer-events:none;background:#061c0ebd;border-radius:999px;margin:0;padding:.5rem .95rem;font-size:.82rem;font-weight:850;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)}.photo-badge{z-index:2;color:var(--white);letter-spacing:.045em;text-transform:uppercase;border-radius:999px;padding:.42rem .7rem;font-size:.75rem;font-weight:950;line-height:1;position:absolute;top:.85rem;left:.85rem;box-shadow:0 8px 16px #1020152e}.photo-badge-before{background:#5b3d20f0}.photo-badge-after{background:#064f1df0}@media (width<=640px){.hero-photo-card{padding:.52rem}.hero-photo-heading{margin-bottom:.45rem;font-size:.66rem}.hero-photo{border-radius:16px}.hero-photo img{aspect-ratio:4/5}.hero-photo-footer{gap:.3rem;margin-top:.5rem}.hero-photo-footer span{min-height:2rem;padding:.3rem .15rem;font-size:.59rem}.ba-slider{aspect-ratio:4/3;border-radius:17px;margin-top:1.25rem}.ba-handle{width:2.6rem;height:2.6rem}.ba-handle svg{width:1.3rem;height:1.3rem}.photo-badge{font-size:.68rem;top:.7rem;left:.7rem}.ba-slider .ba-badge{top:.7rem}.ba-slider .ba-badge-after{left:.7rem}.ba-slider .ba-badge-before{left:auto;right:.7rem}.ba-caption{padding:.4rem .75rem;font-size:.74rem;bottom:.7rem}}

/* ============================================================
   AWARD-WINNING REFINEMENT PASS  (appended overrides, CSS-only)
   - Calm bright card tops (warm cream instead of white)
   - More green/brown earthiness
   - Make every section announce itself
   GPSI-safe: no new requests, no layout shift, AA contrast verified.
   ============================================================ */

/* 1. Softer, warmer top highlight on every card (was bright white) */
:root{--shadow-card:0 16px 34px #1020151f,0 5px 0 #7a470922,inset 0 1px 0 #fff7e6a6;--shadow-card-hover:0 24px 42px #10201529,0 6px 0 #7a470926,inset 0 1px 0 #fffaf0d9}

/* 2. Calm card faces: warm-cream top (#fffdf6) not white, + deeper green corner */
.proof-card,.service-card,.step-card,.scope-card,.contact-panel,.faq-item{background:radial-gradient(circle at 100% 0,#f6a9001a,#0000 40%),radial-gradient(circle at 0 100%,#1f6f3528,#0000 46%),linear-gradient(160deg,#fffdf6 0%,#f2e3c6 56%,#e7d2ac 100%);border-color:#c2a877}
/* re-assert the special cards so they keep their identity */
.service-featured{background:linear-gradient(145deg,#ffce5e30,#fffdf6 47%,#dcefe2f5)}
.scope-negative{background:linear-gradient(160deg,#fffdf7,#f3e6cb);border-left:6px solid var(--gold)}
/* greener, less-bright service-card accent bar */
.service-card:before{background:linear-gradient(90deg,var(--gold) 0%,var(--needle-light) 46%,var(--pine-700) 100%)}

/* 3. Stepped earthy section surfaces: cream > sand(soft) > brown(service-area) */
.section-soft{background:linear-gradient(180deg,#f1e4cb,#e9dab9);border-block:1px solid #d8c6a6}
#service-area{background:radial-gradient(circle at 85% 0,#7a47091f,#0000 42%),linear-gradient(180deg,#e5d0a7,#d4bb86);border-block:1px solid #c7a980}
#service-area .service-area-note{color:#4a3c29}
#service-area .pill{border-color:#b89058}
/* keep scope cream so it doesn't double up with the sand FAQ next to it */
.scope-section{background:transparent;border-block:0}

/* 4. Section labels become "you are here" pill markers (with leaf dot) */
.section-label{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(180deg,#ffffffe6,#e3f1e7eb);border:1px solid #1f6f3533;border-radius:999px;padding:.42rem .82rem;margin-bottom:1.05rem;letter-spacing:.07em;font-size:.74rem;box-shadow:0 8px 18px #10201514,inset 0 1px 0 #fff}
.section-label::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:linear-gradient(180deg,var(--needle-light),var(--pine-700));box-shadow:0 0 0 3px #1f6f3522}
.section-dark .section-label{background:#06311a;border-color:#ffffff2e;color:var(--gold-soft)}
.section-dark .section-label::before{background:var(--gold-soft);box-shadow:0 0 0 3px #ffffff1f}
.cta-band-copy .section-label{background:#fff8eaf0;border-color:#b5790059;color:#6b4500}
.cta-band-copy .section-label::before{background:linear-gradient(180deg,#b57900,#7a4709);box-shadow:0 0 0 3px #7a470926}

/* ============================================================
   BOLD PASS — "website of the year" intensity (CSS-only, GPSI-safe)
   Lit, textured anchor bands (forest green + deep wood-brown) with a
   subtle topographic-contour motif; cream/sand sections stay breathers.
   AA contrast re-verified on every dark surface (>8:1 for body text).
   ============================================================ */

/* Hero: lusher lighting + faint topographic contour rings */
.hero{background:radial-gradient(circle at 12% 6%,#ffb52066,#0000 40%),radial-gradient(circle at 86% 16%,#9bd06b4d,#0000 44%),radial-gradient(circle at 72% 100%,#1f944280,#0000 52%),repeating-radial-gradient(circle at 16% -10%,#fff8ea0d 0 1.5px,#0000 1.5px 48px),linear-gradient(162deg,#10592a 0%,#0a3d1d 47%,#05230f 100%)}

/* Fire-season: matching lit + contoured green anchor */
.section-dark{background:radial-gradient(circle at 10% 0,#ffb52047,#0000 42%),radial-gradient(circle at 92% 100%,#9bd06b42,#0000 48%),repeating-radial-gradient(circle at 88% 110%,#fff8ea0b 0 1.5px,#0000 1.5px 46px),linear-gradient(158deg,#0f5025 0%,#093a1c 50%,#05230f 100%)}

/* Service Area: deep wood-brown showpiece — the warm counterpart anchor */
#service-area{color:var(--cream);background:radial-gradient(circle at 85% 8%,#ffb5204d,#0000 42%),radial-gradient(circle at 10% 98%,#c66f1559,#0000 48%),repeating-radial-gradient(circle at 50% 120%,#fff1d40d 0 1.5px,#0000 1.5px 46px),linear-gradient(160deg,#4d2f10 0%,#3a210b 52%,#281604 100%)}
#service-area h2{color:#fff}
#service-area .section-intro,#service-area p{color:#fff8eaeb}
#service-area .service-area-note{color:#fff8ead1}
#service-area .service-area-note a{color:var(--gold-soft);text-decoration-color:var(--gold)}
#service-area .section-label{background:#2a1806;border-color:#ffffff2e;color:var(--gold-soft)}
#service-area .section-label::before{background:var(--gold-soft);box-shadow:0 0 0 3px #ffffff1f}
#service-area .pill{background:linear-gradient(#fff,#f6e9cd);border-color:#caa86a;color:var(--heading);box-shadow:0 12px 24px #00000045,0 0 0 1px #ffffff14,inset 0 1px #fff}

/* Featured service card: confident green-glow showpiece (warm top, not washed-out) */
.service-featured{background:radial-gradient(circle at 88% 10%,#ffce5e54,#0000 44%),radial-gradient(circle at 0% 100%,#1f6f3547,#0000 52%),linear-gradient(150deg,#fffdf7 0%,#e4f4ea 50%,#c2e7d1 100%);border-color:#1f6f3547}

/* Whisper of texture on the sand sections so they read intentional, not flat */
.section-soft{background:repeating-linear-gradient(120deg,#7a47090a 0 1px,#0000 1px 34px),linear-gradient(180deg,#f1e4cb,#e9dab9)}

/* CTA finale: richer, brighter gold */
.cta-band{background:radial-gradient(circle at 14% 12%,#ffffff80,#0000 40%),radial-gradient(circle at 88% 92%,#a96e006b,#0000 48%),linear-gradient(135deg,#ffce4f 0%,#f6a900 52%,#dd8c00 100%)}

/* ============================================================
   POLISH PASS — component-level "$1M" refinement (CSS-only, GPSI-safe)
   Mobile menu overhaul, review stars, header elevation, richer
   step numbers, proof chips, slider handle, unified card hovers.
   AA contrast verified on every new pairing.
   ============================================================ */

/* --- 1. Hamburger: signature dark-forest pill (hints at the panel it opens) --- */
.mobile-menu summary{background:linear-gradient(180deg,#0e4f26,#083317);border:2px solid #ffffff30;color:var(--cream);box-shadow:0 12px 24px #04140a4d,inset 0 1px 0 #ffffff2e,0 3px 0 #04140abf;transition:transform .16s,box-shadow .16s}
.mobile-menu summary:hover{transform:translateY(-1px)}
.mobile-menu summary:active{transform:translateY(1px)}
.mobile-menu[open] summary{background:linear-gradient(180deg,#06311a,#04140a);border-color:var(--gold);color:var(--gold-soft);box-shadow:0 6px 16px #04140a66,inset 0 2px 6px #00000059}

/* --- 2. Mobile menu panel: lit dark-forest surface matching the hero --- */
.mobile-menu-panel{border-color:#ffffff24;background:radial-gradient(circle at 88% 0,#ffb52038,#0000 46%),repeating-radial-gradient(circle at 12% -10%,#fff8ea0a 0 1.5px,#0000 1.5px 44px),linear-gradient(165deg,#0f5025 0%,#093a1c 55%,#05230f 100%);box-shadow:0 34px 80px #04140ab8;animation:nh-panel .2s ease}
.mobile-menu-panel a:not(.button){color:var(--cream);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.mobile-menu-panel a:not(.button)::after{content:"";width:.48rem;height:.48rem;flex:none;color:var(--gold-soft);border-top:2px solid currentColor;border-right:2px solid currentColor;opacity:.9;transform:rotate(45deg)}
.mobile-menu-panel a:not(.button):hover{background:#ffffff14}
.mobile-menu-links a+a{border-top:1px solid #ffffff17}
.mobile-menu-actions{border-top:1px solid #ffffff21;margin-top:.55rem;padding-top:.85rem}
.mobile-menu-actions .button-primary{border-color:#ffffff45}
.mobile-menu-links{animation:nh-rise .26s cubic-bezier(.2,.9,.3,1)}
@keyframes nh-panel{from{opacity:0}}
@keyframes nh-rise{from{opacity:0;transform:translateY(-6px)}}

/* dim the page behind the open menu (visual only; header stays lit) */
.mobile-menu[open]>summary::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#0a1f1280,#04140ab8);animation:nh-panel .25s ease}
/* one CTA set at a time: park the sticky bar while the menu is open */
body:has(.mobile-menu[open]) .mobile-sticky-cta{visibility:hidden}

/* --- 3. Reviews: stars, avatars, oversized quote mark --- */
#reviews .service-card{position:relative}
#reviews .service-card::after{content:"\201D";position:absolute;top:.55rem;right:1.05rem;font-size:4.4rem;line-height:1;font-weight:950;color:#0b642726;pointer-events:none}
.review-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.85rem}
.review-avatar{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:linear-gradient(160deg,#16843a,var(--pine-800));color:#fff;font-weight:950;font-size:.84rem;letter-spacing:.02em;box-shadow:0 6px 14px #064f1d33,inset 0 1px 0 #ffffff3d}
.review-stars{color:var(--gold);font-size:1.02rem;letter-spacing:.14em;text-shadow:0 1px 0 #b5790052}

/* --- 4. Step numbers: confident gradient fill instead of washed-out ghosts --- */
@media (width>640px){
  .step-number{color:#0000;background:linear-gradient(165deg,var(--needle-light),var(--pine-700) 58%,#043914);-webkit-background-clip:text;background-clip:text;font-size:3.9rem;margin-bottom:1.5rem}
}

/* --- 5. Proof strip: crisper chips, green-tinted icon bubbles, brand-green titles --- */
.proof-card{background:linear-gradient(160deg,#fffefa,#f4e9d2);border-color:#c8ad7e;box-shadow:0 14px 30px #10201524,inset 0 1px 0 #fff}
.proof-card .icon{background:linear-gradient(160deg,#eef7f0,#d3ecdc);border:1px solid #1f6f3529;color:var(--pine-700)}
.proof-card strong{color:#064f1d}

/* --- 6. Before/after slider: heftier handle + divider --- */
.ba-divider{width:4px;margin-left:-2px}
.ba-handle{width:3.4rem;height:3.4rem;box-shadow:0 0 0 4px #f6a900b8,0 14px 30px #041e0e80}
.ba-handle svg{width:1.8rem;height:1.8rem;stroke-width:2.6px}
@media (width<=640px){.ba-handle{width:3rem;height:3rem}.ba-handle svg{width:1.5rem;height:1.5rem}}

/* --- 7. One hover language for every card --- */
.service-card,.step-card{transition:transform .18s,box-shadow .18s}
.service-card:hover,.step-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}

/* --- 8. Phone mockup: readable photo-tile labels (white on deep bark) --- */
.photo-stack span{background:repeating-linear-gradient(23deg,#59360ae0 0 4px,#7a4709b3 4px 12px),var(--card);color:#fff;text-shadow:0 1px 2px #00000052}
.photo-stack span:last-child{color:#241a08;background:linear-gradient(#ddcba1,#c3ad7c);text-shadow:none}

/* --- 9. Header: buttons on the site's scale + scroll-aware elevation --- */
@media (width>900px){.header-actions .button{min-height:44px;padding:.72rem 1rem;font-size:.92rem}}
.desktop-nav a{font-size:.87rem;white-space:nowrap;padding:.58rem .62rem}
@supports (animation-timeline: scroll()){
  .site-header{animation:nh-header linear both;animation-timeline:scroll();animation-range:0 140px}
  @keyframes nh-header{from{background:#fff8ea;box-shadow:0 0 #10201500}to{background:#fffdf4f7;box-shadow:0 14px 34px #10201530}}
}

@media (prefers-reduced-motion:reduce){
  .mobile-menu-panel,.mobile-menu-links,.mobile-menu[open]>summary::before{animation:none}
  .service-card:hover,.step-card:hover,.mobile-menu summary:hover{transform:none}
}

/* ============================================================
   DEPTH PASS — app-grade 3D physics (CSS-only, GPSI-safe)
   Real button press (ledge collapses), floating hero card,
   hardware-look phone, FAQ pop, floating mobile CTA dock.
   ============================================================ */

/* --- 1. Buttons truly press: sink 3px INTO the ledge, drop shadow tightens --- */
.button:active{transform:translateY(3px)}
.button-primary:active{box-shadow:0 4px 10px #064f1d2e,inset 0 1px 0 #ffffff38,0 1px 0 #043914f2}
.button-secondary:active{box-shadow:0 4px 10px #f6a90029,inset 0 1px 0 #ffffff6b,0 1px 0 #b57900f5}
.button-cream:active{box-shadow:0 5px 12px #041e0e47,inset 0 1px #ffffffe6,0 1px #04281273}
.button-outline:active{box-shadow:0 4px 8px #10201510,inset 0 1px #ffffffdb,0 1px #064f1d1f}
.mobile-menu summary:active{transform:translateY(2px);box-shadow:0 4px 10px #04140a40,inset 0 1px 0 #ffffff2e,0 1px 0 #04140abf}

/* --- 2. Hero photo card: floats high above the green (deep ambient + key shadow) --- */
.hero-photo-card{box-shadow:0 70px 130px -24px #02150ac4,0 30px 60px -18px #04140a8c,0 6px 0 #064f1d14,inset 0 1px 0 #ffffffb3}

/* --- 3. Phone mockup: real hardware — deep drop, screen inset, side button --- */
.phone-card{position:relative;box-shadow:0 56px 100px -22px #10201559,0 22px 44px #10201526,inset 0 3px 10px #1020151f}
.phone-card::after{content:"";position:absolute;top:17%;right:-13px;width:4px;height:52px;border-radius:0 4px 4px 0;background:linear-gradient(90deg,#0c2a16,#04140a);box-shadow:inset 0 1px 0 #ffffff21}
.phone-top{box-shadow:inset 0 1px 2px #04140a52}

/* --- 4. FAQ: open item pops forward like an expanded sheet --- */
.faq-item{transition:transform .18s,box-shadow .18s,border-color .18s}
.faq-item[open]{position:relative;z-index:1;transform:translateY(-3px);border-color:#b5905a;box-shadow:0 28px 54px #10201538,0 7px 0 #7a470929,inset 0 1px 0 #fffc}

/* --- 5. Mobile sticky CTA: floating elevated dock, not a pinned strip --- */
.mobile-sticky-cta{left:.6rem;right:.6rem;bottom:calc(.55rem + env(safe-area-inset-bottom));border:1px solid #d3bf9c;border-radius:19px;padding:.55rem .6rem;background:#fffaf0fa;box-shadow:0 -4px 14px #1020150f,0 26px 52px -12px #10201559,0 12px 26px #10201530,inset 0 1px 0 #fff}

@media (prefers-reduced-motion:reduce){
  .button:active,.mobile-menu summary:active{transform:none}
  .faq-item[open]{transform:none}
}

/* ============================================================
   CINEMATIC PASS — above-the-fold showpiece
   Fraunces display serif, choreographed entrance, drifting light,
   falling pine needles, Ken Burns photo, floating hero card.
   (Perf constraint intentionally relaxed per owner, 2026-07-05.)
   ============================================================ */

/* --- Typography: editorial display serif for the big statements --- */
h1,.section-heading h2,.cta-band h2,#service-area h2,.section-dark h2{font-family:Fraunces,Georgia,"Times New Roman",serif;letter-spacing:-.018em;font-weight:680}
h1{font-weight:660;line-height:1.03}
.h1-accent{font-style:italic;font-weight:620;color:#0000;background:linear-gradient(105deg,#ffd567,#ffb520 45%,#ffe9ae 72%,#ffd567 100%);-webkit-background-clip:text;background-clip:text;background-size:220% 100%;animation:nh-sheen 7s ease-in-out infinite}
@keyframes nh-sheen{0%,100%{background-position:0% 0}50%{background-position:100% 0}}

/* --- Stage: fx layer sits between the hero backdrop and the content --- */
.hero{position:relative;overflow:hidden}
.hero>.container{position:relative;z-index:2}
.hero-fx{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}

/* drifting key light (gold, upper left) and forest glow (green, lower right) */
.hero-fx::before{content:"";position:absolute;left:-10%;top:-22%;width:46vw;height:46vw;min-width:430px;min-height:430px;border-radius:50%;background:radial-gradient(circle,#ffb52042 0%,#ffb52024 34%,#0000 70%);animation:nh-drift 16s ease-in-out infinite alternate}
.hero-fx::after{content:"";position:absolute;right:-14%;bottom:-26%;width:54vw;height:42vw;min-width:480px;min-height:390px;border-radius:50%;background:radial-gradient(circle,#2ea45c3d 0%,#2ea45c21 36%,#0000 72%);animation:nh-drift 21s ease-in-out infinite alternate-reverse}
@keyframes nh-drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(8%,6%,0) scale(1.16)}}

/* --- Falling pine needles --- */
.hero-fx i{position:absolute;top:-6%;width:3px;height:30px;border-radius:999px;background:linear-gradient(180deg,#ffd567c4,#9a5a13a6);opacity:0;animation:nh-needle var(--d,12s) linear infinite;animation-delay:var(--dl,0s)}
.hero-fx i:nth-child(3n){background:linear-gradient(180deg,#b7e29ac4,#3f7d2da6);height:23px}
.hero-fx i:nth-child(4n){width:2px;height:38px}
@keyframes nh-needle{0%{opacity:0;transform:translate3d(0,-5vh,0) rotate(var(--r0,15deg))}7%{opacity:.9}80%{opacity:.7}100%{opacity:0;transform:translate3d(var(--sw,4vw),106vh,0) rotate(var(--r1,300deg))}}
.hero-fx i:nth-child(1){left:4%;--d:12s;--dl:0s;--sw:3vw;--r0:8deg;--r1:260deg}
.hero-fx i:nth-child(2){left:12%;--d:15s;--dl:4.2s;--sw:-2vw;--r0:40deg;--r1:-200deg}
.hero-fx i:nth-child(3){left:21%;--d:11s;--dl:1.8s;--sw:4vw;--r0:-15deg;--r1:310deg}
.hero-fx i:nth-child(4){left:30%;--d:16s;--dl:6.5s;--sw:2vw;--r0:70deg;--r1:180deg}
.hero-fx i:nth-child(5){left:38%;--d:13s;--dl:3.1s;--sw:-3vw;--r0:20deg;--r1:-280deg}
.hero-fx i:nth-child(6){left:47%;--d:17s;--dl:8.4s;--sw:5vw;--r0:-35deg;--r1:220deg}
.hero-fx i:nth-child(7){left:55%;--d:12.5s;--dl:.9s;--sw:-4vw;--r0:55deg;--r1:-190deg}
.hero-fx i:nth-child(8){left:63%;--d:14s;--dl:5.7s;--sw:3vw;--r0:10deg;--r1:290deg}
.hero-fx i:nth-child(9){left:70%;--d:11.5s;--dl:2.4s;--sw:-2vw;--r0:-50deg;--r1:200deg}
.hero-fx i:nth-child(10){left:77%;--d:16.5s;--dl:7.2s;--sw:4vw;--r0:30deg;--r1:-240deg}
.hero-fx i:nth-child(11){left:84%;--d:12.8s;--dl:4.9s;--sw:-3vw;--r0:65deg;--r1:250deg}
.hero-fx i:nth-child(12){left:90%;--d:15.5s;--dl:1.3s;--sw:2vw;--r0:-25deg;--r1:-210deg}
.hero-fx i:nth-child(13){left:95%;--d:13.5s;--dl:9.1s;--sw:-4vw;--r0:45deg;--r1:230deg}
.hero-fx i:nth-child(14){left:8%;--d:18s;--dl:11s;--sw:5vw;--r0:-10deg;--r1:320deg}

/* --- Entrance choreography: copy cascades up, card settles into place --- */
@keyframes nh-rise-in{from{opacity:0;transform:translateY(26px)}}
.hero-copy-block>*{animation:nh-rise-in .75s cubic-bezier(.2,.8,.25,1) both}
.hero-copy-block>:nth-child(1){animation-delay:.05s}
.hero-copy-block>:nth-child(2){animation-delay:.16s}
.hero-copy-block>:nth-child(3){animation-delay:.3s}
.hero-copy-block>:nth-child(4){animation-delay:.44s}
.hero-copy-block>:nth-child(5){animation-delay:.56s}
.hero-copy-block>:nth-child(6){animation-delay:.66s}
@keyframes nh-card-in{from{opacity:0;transform:translateY(48px) rotate(1.4deg) scale(.965)}}
@keyframes nh-card-bob{50%{transform:translateY(-9px)}}
.hero-photo-card{animation:nh-card-in 1.05s cubic-bezier(.16,.8,.24,1) both .35s,nh-card-bob 7s ease-in-out infinite 1.6s}

/* --- Ken Burns: the yard photo breathes --- */
.hero-photo img{animation:nh-kenburns 26s ease-in-out infinite alternate;transform-origin:62% 38%}
@keyframes nh-kenburns{to{transform:scale(1.11) translate3d(-1.6%,1.4%,0)}}

/* --- Reduced motion: keep the light, lose the movement --- */
@media (prefers-reduced-motion:reduce){
  .hero-fx i{display:none}
  .hero-fx::before,.hero-fx::after,.h1-accent,.hero-copy-block>*,.hero-photo-card,.hero-photo img{animation:none}
}

/* ============================================================
   TACTILE PASS — every component upgraded to "real object" grade
   Glossy convex push-keys with icons, coin icons, glossy diagram,
   lantern pills, CTA sheen sweep. AA contrast maintained.
   ============================================================ */

/* --- 1. Buttons: convex glass keys you can feel --- */
.button{position:relative;overflow:hidden}
.button::after{content:"";position:absolute;left:2px;right:2px;top:2px;height:46%;border-radius:inherit;background:linear-gradient(#ffffff54,#ffffff0d);pointer-events:none}
.button:active::after{opacity:.45}
.button-primary{text-shadow:0 1px 1px #04140a66;box-shadow:0 12px 24px #064f1d38,inset 0 1px 0 #ffffff45,inset 0 -10px 14px -8px #02240c99,0 4px 0 #043914f2}
.button-secondary{text-shadow:0 1px 0 #ffffff59;box-shadow:0 12px 24px #f6a9003d,inset 0 1px 0 #ffffff80,inset 0 -10px 14px -8px #9a640099,0 4px 0 #b57900f5}
.button-cream{box-shadow:0 14px 28px #041e0e6b,inset 0 1px #ffffffe6,inset 0 -8px 12px -7px #7a470930,0 4px #04281273}
.button-outline{box-shadow:0 10px 20px #10201514,inset 0 1px #ffffffdb,inset 0 -8px 12px -7px #7a470921,0 3px #064f1d1f}
/* pressed: light flips — top goes dark, key sits in its socket */
.button-primary:active{box-shadow:0 4px 10px #064f1d2e,inset 0 3px 8px #02240c8c,0 1px 0 #043914f2}
.button-secondary:active{box-shadow:0 4px 10px #f6a90029,inset 0 3px 8px #9a640080,0 1px 0 #b57900f5}
.button-cream:active{box-shadow:0 5px 12px #041e0e47,inset 0 3px 8px #7a470938,0 1px #04281273}
.button-outline:active{box-shadow:0 4px 8px #10201510,inset 0 3px 8px #7a47092e,0 1px #064f1d1f}

/* --- 2. Action icons: phone / chat / mail glyphs, drawn from the href --- */
.button[href^="tel:"]::before,.button[href^="sms:"]::before,.button[href^="mailto:"]::before{content:"";flex:none;width:1.02em;height:1.02em;margin-right:.48em;background:currentColor;-webkit-mask:var(--btn-ico) center/contain no-repeat;mask:var(--btn-ico) center/contain no-repeat}
.button[href^="tel:"]{--btn-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.85 21 3 13.15 3 3.99A1 1 0 0 1 4 3h3.5a1 1 0 0 1 1 1c0 1.24.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E")}
.button[href^="sms:"]{--btn-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 5.9 2 10.7c0 2.13.87 4.08 2.32 5.58-.2 1.28-.73 2.55-1.62 3.62 1.9-.08 3.6-.75 4.93-1.77 1.32.5 2.8.77 4.37.77 5.52 0 10-3.9 10-8.7S17.52 2 12 2ZM7 12a1.3 1.3 0 1 1 0-2.6A1.3 1.3 0 0 1 7 12Zm5 0a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6Zm5 0a1.3 1.3 0 1 1 0-2.6 1.3 1.3 0 0 1 0 2.6Z'/%3E%3C/svg%3E")}
.button[href^="mailto:"]{--btn-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2Zm0 4.24-8 5-8-5V6.12l8 5 8-5Z'/%3E%3C/svg%3E")}

/* --- 3. Icon bubbles become minted coins --- */
.icon{background:radial-gradient(circle at 32% 24%,#fff 0%,#eaf7ee 36%,#cdebd8 74%,#b4dfc4 100%);border-color:#1f6f3538;box-shadow:0 12px 22px #1f6f3524,inset 0 1px 0 #fff,inset 0 -3px 6px #1f6f3521,0 3px 0 #064f1d1a}
.proof-grid>:nth-child(3n+2) .icon,.bento-grid>:nth-child(3n+2) .icon{background:radial-gradient(circle at 32% 24%,#fffdf6,#ffedbd 62%,#fadf9d 100%);box-shadow:0 12px 22px #b5790024,inset 0 1px 0 #fff,inset 0 -3px 6px #b5790024,0 3px 0 #7a47091a}

/* --- 4. Defensible-space diagram: carved bowl with a solid Home key --- */
.zone-rings{background:radial-gradient(circle,#fffdf4 0 16%,#ffdf8e 16% 16.6%,#f6a90042 16.6% 35%,#cfe3b8 35% 35.6%,#1f6f3533 35.6% 61%,#9db98a 61% 61.6%,#064f1d30 61.6% 100%);border-color:#c7a980;box-shadow:inset 0 12px 32px #10201524,inset 0 -8px 20px #ffffff80,0 18px 40px #1020151f}
.zone-home{background:linear-gradient(160deg,#16843a,#064f1d);box-shadow:0 16px 30px #04140a4d,inset 0 1px 0 #ffffff45,inset 0 -8px 12px -7px #02240c99,0 4px 0 #042912a6}
.zone{border:1px solid #d7c4a4;box-shadow:0 8px 16px #10201526,inset 0 1px 0 #fff,0 2px 0 #7a470914}

/* --- 5. FAQ toggle: coin that flips pressed when open --- */
.faq-item summary:after{background:linear-gradient(#fff,#dff0e2);border:1px solid #1f6f3538;color:var(--pine-700);box-shadow:0 4px 10px #1020151f,inset 0 1px 0 #fff,0 2px 0 #064f1d14}
.faq-item[open] summary:after{background:linear-gradient(#e2f1e6,#c9e6d3);box-shadow:inset 0 2px 6px #10201526,0 1px 0 #064f1d0f}

/* --- 6. Town pills: lanterns with a hover lift --- */
.pill{transition:transform .16s,box-shadow .16s}
.pill:hover{transform:translateY(-2px)}
#service-area .pill{box-shadow:0 14px 26px #0000004d,0 0 0 1px #ffffff17,inset 0 1px #fff,inset 0 -6px 10px -6px #b579003d,0 3px 0 #1a0e0380}

/* --- 7. CTA band: cinematic light sweep every few seconds --- */
.cta-band::before{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:32%;background:linear-gradient(100deg,#fff0,#ffffff4d 50%,#fff0);transform:translateX(-140%) skewX(-14deg);animation:nh-sweep 7.5s ease-in-out infinite;pointer-events:none}
.cta-band .cta-band-inner{position:relative;z-index:1}
@keyframes nh-sweep{0%,58%{transform:translateX(-140%) skewX(-14deg)}100%{transform:translateX(360%) skewX(-14deg)}}

/* --- 8. Slider handle: glass knob --- */
.ba-handle{background:radial-gradient(circle at 32% 26%,#fff,#fbf1dd 62%,#eee0bf 100%)}

@media (prefers-reduced-motion:reduce){
  .cta-band::before{animation:none;opacity:0}
  .pill:hover{transform:none}
}
/* sticky dock buttons: icon sits inline with the label, not stacked */
.mobile-sticky-cta a{display:inline-flex;align-items:center;justify-content:center}

/* ============================================================
   SHOWPIECE PASS — "site of the year" flourishes
   Ridge-line section dividers, film grain, marquee ticker,
   rising embers, scroll-driven card reveals, craft details.
   ============================================================ */

/* --- craft details --- */
html{scroll-behavior:smooth}
::selection{background:var(--gold);color:#102015}

/* --- film grain + ridge-line dividers on the anchor bands --- */
.section-dark{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v6l-60 20-50-16-70 22-70-18-70 26-70-22-70 16-70-24-70 24-70-14-70 20-70-24-70 22-70-18-70 24-60-14L0 6Z' fill='%23152819'/%3E%3C/svg%3E") top/100% 38px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/240px repeat,radial-gradient(circle at 10% 0,#ffb52047,#0000 42%),radial-gradient(circle at 92% 100%,#9bd06b42,#0000 48%),repeating-radial-gradient(circle at 88% 110%,#fff8ea0b 0 1.5px,#0000 1.5px 46px),linear-gradient(158deg,#0f5025 0%,#093a1c 50%,#05230f 100%);padding-top:5.4rem}
#service-area{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v6l-60 20-50-16-70 22-70-18-70 26-70-22-70 16-70-24-70 24-70-14-70 20-70-24-70 22-70-18-70 24-60-14L0 6Z' fill='%230e1d12'/%3E%3C/svg%3E") top/100% 38px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/240px repeat,radial-gradient(circle at 85% 8%,#ffb5204d,#0000 42%),radial-gradient(circle at 10% 98%,#c66f1559,#0000 48%),repeating-radial-gradient(circle at 50% 120%,#fff1d40d 0 1.5px,#0000 1.5px 46px),linear-gradient(160deg,#4d2f10 0%,#3a210b 52%,#281604 100%);padding-top:5.4rem}
.cta-band{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v6l-60 20-50-16-70 22-70-18-70 26-70-22-70 16-70-24-70 24-70-14-70 20-70-24-70 22-70-18-70 24-60-14L0 6Z' fill='%23152819'/%3E%3C/svg%3E") top/100% 38px no-repeat,radial-gradient(circle at 14% 12%,#ffffff80,#0000 40%),radial-gradient(circle at 88% 92%,#a96e006b,#0000 48%),linear-gradient(135deg,#ffce4f 0%,#f6a900 52%,#dd8c00 100%)}
.site-footer{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v6l-60 20-50-16-70 22-70-18-70 26-70-22-70 16-70-24-70 24-70-14-70 20-70-24-70 22-70-18-70 24-60-14L0 6Z' fill='%23e89a00'/%3E%3C/svg%3E") top/100% 34px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/240px repeat,var(--pine-950);padding-top:5rem}

/* --- marquee ticker: the award-site signature strip --- */
.ticker{overflow:hidden;position:relative;z-index:1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/240px repeat,linear-gradient(90deg,#06311a,#0b4a22 50%,#06311a);border-block:1px solid #ffffff1a;padding:.74rem 0}
.ticker-track{display:flex;align-items:center;gap:2.4rem;width:max-content;animation:nh-ticker 32s linear infinite}
.ticker span{color:#fff8eae3;font-weight:850;font-size:.78rem;letter-spacing:.17em;text-transform:uppercase;white-space:nowrap}
.ticker i{color:var(--gold);font-style:normal;font-size:.72rem}
@keyframes nh-ticker{to{transform:translateX(-50%)}}

/* --- rising embers in the fire-season band --- */
#fire-season{position:relative;overflow:hidden}
#fire-season>.container{position:relative;z-index:1}
.ember-fx{position:absolute;inset:0;pointer-events:none;z-index:0}
.ember-fx i{position:absolute;bottom:-2%;width:5px;height:5px;border-radius:50%;background:radial-gradient(circle,#ffd567,#f6a90000 72%);opacity:0;animation:nh-ember var(--d,10s) linear infinite;animation-delay:var(--dl,0s)}
@keyframes nh-ember{0%{opacity:0;transform:translate3d(0,0,0) scale(.8)}8%{opacity:.9}55%{opacity:.5}100%{opacity:0;transform:translate3d(var(--sw,3vw),-104vh,0) scale(1.3)}}
.ember-fx i:nth-child(1){left:8%;--d:9s;--dl:0s;--sw:3vw}
.ember-fx i:nth-child(2){left:18%;--d:12s;--dl:3.5s;--sw:-2vw}
.ember-fx i:nth-child(3){left:29%;--d:10s;--dl:1.4s;--sw:4vw;width:4px;height:4px}
.ember-fx i:nth-child(4){left:41%;--d:13s;--dl:5.8s;--sw:-3vw}
.ember-fx i:nth-child(5){left:52%;--d:9.5s;--dl:2.2s;--sw:2vw;width:6px;height:6px}
.ember-fx i:nth-child(6){left:63%;--d:11s;--dl:7.1s;--sw:-4vw}
.ember-fx i:nth-child(7){left:72%;--d:10.5s;--dl:4.4s;--sw:3vw;width:4px;height:4px}
.ember-fx i:nth-child(8){left:81%;--d:12.5s;--dl:.8s;--sw:-2vw}
.ember-fx i:nth-child(9){left:89%;--d:9.8s;--dl:6.3s;--sw:4vw}
.ember-fx i:nth-child(10){left:95%;--d:11.5s;--dl:8.6s;--sw:-3vw;width:6px;height:6px}

/* --- scroll-driven reveals: cards rise as they enter the viewport --- */
@supports (animation-timeline: view()){
  .service-card,.step-card,.scope-card,.proof-card,.faq-item{animation:nh-view-rise both;animation-timeline:view();animation-range:entry 5% entry 45%}
  @keyframes nh-view-rise{from{opacity:0;translate:0 36px}to{opacity:1;translate:0 0}}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ticker-track{animation:none}
  .ember-fx{display:none}
  .service-card,.step-card,.scope-card,.proof-card,.faq-item{animation:none}
}
/* desktop header stays compact: no glyphs on the small utility buttons */
@media (width>900px){.header-actions .button::before{display:none}}

/* ============================================================
   LOCAL PAGES PASS — styles for the 7 keyword landing pages
   ============================================================ */
.subpage-hero{padding:4.4rem 0 3.4rem}
.subpage-hero h1{font-size:clamp(2.35rem,4.8vw,3.9rem);max-width:19ch}
.subpage-hero .hero-lead{max-width:58ch}
.prose-block p{max-width:70ch;margin-bottom:1.05rem}
.prose-block a{color:var(--pine-700);font-weight:850;text-decoration-color:#f6a900a6;text-underline-offset:3px}
.page-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}
a.pill{text-decoration:none;transition:transform .16s,box-shadow .16s}
a.pill:hover{transform:translateY(-2px);box-shadow:0 14px 26px #10201526,inset 0 1px #fff,0 4px 0 #7a470929}
.site-footer ul a{color:#fff8ead1;text-decoration:none;border-bottom:1px solid #ffffff26;transition:color .16s,border-color .16s}
.site-footer ul a:hover{color:var(--gold-soft);border-color:var(--gold-soft)}
/* mobile menu: full-bleed panel across the ENTIRE hamburger range —
   at 641-1080px it was still a right-anchored dropdown, leaving a strip
   of the page (and its buttons) visible on the left */
@media (640px < width <= 1080px){
  .mobile-menu-panel{top:100%;left:0;right:0;width:100%;min-width:0;border-radius:0 0 24px 24px;border-width:0 0 1px;padding:1.1rem clamp(1.2rem,5vw,3rem) 1.5rem;max-height:calc(100svh - 88px);overflow:auto}
}
/* one button system sitewide: green Call, gold Text. On same-hue bands,
   a cream halo ring keeps the key popped off the background */
.hero .button-primary{border-color:#fff8ea59}
.cta-band .button-secondary{border-color:#fffdf2b8;box-shadow:0 12px 24px #7a470947,inset 0 1px 0 #ffffff80,inset 0 -10px 14px -8px #9a640099,0 4px 0 #b57900f5,0 0 0 3px #ffffff30}
/* seamless handoff: CTA band flows straight into the footer's treeline ridge */
main{padding-bottom:0}

/* ============================================================
   DUSK PASS — semi-dark theme: deep forest canvas, warm cream
   cards and chrome float on top. AA contrast on all new pairings.
   ============================================================ */
body{color:#e7ddc6;background:radial-gradient(circle at 8% 4%,#f6a9001f,#0000 24rem),radial-gradient(circle at 88% 7%,#1f6f353d,#0000 28rem),linear-gradient(135deg,#fff8ea07 0 1px,#0000 1px 100%) 0 0/42px 42px,linear-gradient(180deg,#182b1d 0%,#122316 48%,#0d1b11 100%)}
.hero:after{background:linear-gradient(180deg,transparent,#182b1d)}
.section-soft{background:linear-gradient(180deg,#1c3323,#152819);border-block:1px solid #ffffff12}
.cleanup-example-section{background:linear-gradient(#ffffff08,#0000);border-block:1px solid #ffffff0f}
.scope-section{background:transparent;border-block:0}

/* text sitting directly on the dark canvas */
.section-heading h2{color:#fff6e3}
.section-heading p{color:#d8cdb0}
.micro-copy{color:#cfc3a6}
.prose-block a{color:var(--gold-soft);text-decoration-color:#f6a900b8}

/* cards stay warm paper — reset inherited text back to ink */
.service-card,.step-card,.scope-card,.faq-item,.proof-card,.contact-panel,.phone-card,.defensible-card,.hero-photo-card{color:var(--body)}
.service-card .micro-copy,.contact-panel .micro-copy{color:var(--muted)}

/* section-label pills: dark lantern chips everywhere (cta-band keeps its cream chip) */
.section-label{background:#0a2f19;border-color:#ffffff2b;color:var(--gold-soft);box-shadow:0 8px 18px #04140a3d,inset 0 1px 0 #ffffff14}
.section-label::before{background:var(--gold-soft);box-shadow:0 0 0 3px #ffffff1a}

/* ============================================================
   AUDIT VISUAL PASS — presentation only; content and proof intact
   ============================================================ */

/* Restore readable headings that sit directly on the dusk canvas. */
#contact h2,.cabin-section h2{color:#fff6e3;text-shadow:0 2px 18px #04140a52}
#contact>div>div>p:not(.section-label),.cabin-section>div>div>p:not(.section-label){color:#e7ddc6}

/* Give the header one clear primary action without removing either option. */
@media (width>640px){
  .header-call{color:var(--pine-800);background:#fffaf0;border-color:#0b64273d;box-shadow:0 8px 16px #10201514,inset 0 1px #fff,0 2px #064f1d1f}
  .header-call:hover{color:var(--pine-800);background:var(--pine-soft);border-color:#0b642766}
  .header-text{box-shadow:0 12px 24px #7a470933,inset 0 1px #ffffff80,0 4px #b57900e6}
}

/* Keep the seven-link navigation calm and legible on genuinely wide screens. */
@media (width>1180px){
  .desktop-nav{gap:0;padding:.3rem}
  .desktop-nav a{min-height:44px;display:inline-flex;align-items:center;padding:.55rem .58rem;font-size:.81rem}
  .header-actions{gap:.5rem}
  .header-actions .button{padding:.68rem .86rem;font-size:.86rem}
}

/* Switch to the existing full menu before the desktop header becomes crowded. */
@media (1080px < width <= 1180px){
  .desktop-nav{display:none}
  .header-inner{grid-template-columns:auto 1fr}
  .mobile-menu{display:block}
  .mobile-menu summary{border-radius:var(--radius-sm);min-height:48px;color:var(--cream);cursor:pointer;background:linear-gradient(180deg,#0e4f26,#083317);border:2px solid #ffffff30;align-items:center;gap:.5rem;padding:.7rem .85rem;font-weight:900;list-style:none;display:inline-flex;box-shadow:0 12px 24px #04140a4d,inset 0 1px 0 #ffffff2e,0 3px 0 #04140abf}
  .mobile-menu summary::-webkit-details-marker{display:none}
}

/* Larger, consistent touch targets and a less cramped mobile panel. */
@media (width<=1180px){
  body:has(.mobile-menu[open]){overflow:hidden}
  .mobile-menu-panel{width:min(340px,calc(100vw - 1.25rem));max-height:calc(100svh - 88px);overflow:auto}
  .mobile-menu-panel a{min-height:48px;display:flex;align-items:center}
  .mobile-menu-actions .button{min-height:50px}
}

/* Clear keyboard focus across the main interactive design system. */
.button:focus-visible,.desktop-nav a:focus-visible,.mobile-menu summary:focus-visible,.mobile-menu-panel a:focus-visible,a.pill:focus-visible,.faq-item summary:focus-visible,.ba-range:focus-visible{outline:4px solid var(--gold-soft);outline-offset:3px}

/* Unify card rhythm and improve long-form readability. */
.service-card,.step-card,.scope-card,.proof-card,.faq-item,.contact-panel{border-color:#c8ad7e}
.service-card p,.step-card p,.scope-card p,.faq-item p{line-height:1.68}
.prose-block p{line-height:1.75}
#reviews .service-card p:first-of-type{font-size:1.02rem;line-height:1.72}
.contact-panel{border-color:#d6b36e;box-shadow:0 28px 58px #04140a52,0 6px 0 #7a470929,inset 0 1px #fff}

/* Keep hover depth for pointer devices without making touch cards jump. */
@media (hover:none){
  .service-card:hover,.step-card:hover,.scope-card:hover,.proof-card:hover,.contact-panel:hover,a.pill:hover{transform:none}
}

@media (width<=640px){
  #contact h2,.cabin-section h2{font-size:clamp(2rem,9vw,2.8rem)}
  .mobile-menu-panel{right:.625rem}
  .faq-item summary{min-height:52px;display:flex;align-items:center}
}

/* ============================================================
   PRIORITY PAGES — page-based navigation and long-form layouts
   ============================================================ */
.nav-dropdown{position:relative}
.nav-dropdown>summary{min-height:44px;color:var(--muted);cursor:pointer;border-radius:999px;display:inline-flex;align-items:center;padding:.55rem .62rem;font-size:.81rem;font-weight:850;line-height:1;list-style:none;white-space:nowrap}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown>summary:after{content:"";width:.4rem;height:.4rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;margin-left:.45rem;transform:translateY(-2px) rotate(45deg)}
.nav-dropdown>summary:hover,.nav-dropdown[open]>summary{color:var(--pine-800);background:var(--sand)}
.nav-dropdown-menu{z-index:90;min-width:285px;border:1px solid var(--border);border-radius:18px;background:#fffaf0;padding:.55rem;display:grid;position:absolute;top:calc(100% + .65rem);left:0;box-shadow:0 28px 60px #04140a4d}
.nav-dropdown-menu a{min-height:44px;color:var(--heading);border-radius:12px;align-items:center;padding:.72rem .8rem;font-size:.9rem;font-weight:850;text-decoration:none;display:flex}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a[aria-current=page]{color:var(--pine-800);background:var(--pine-soft)}
.header-phone{color:var(--pine-800);font-size:.86rem;font-weight:950;text-decoration:none;white-space:nowrap}
.header-phone:hover{text-decoration:underline;text-underline-offset:.2em}
.mobile-submenu{border-bottom:1px solid #ffffff17}
.mobile-submenu>summary{min-height:48px;color:var(--cream);cursor:pointer;border-radius:12px;align-items:center;justify-content:space-between;padding:.75rem;font-weight:900;list-style:none;display:flex}
.mobile-submenu>summary::-webkit-details-marker{display:none}
.mobile-submenu>summary:after{content:"";width:1rem;height:1rem;flex:none;color:var(--gold-soft);background:linear-gradient(currentColor,currentColor) center/12px 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 12px no-repeat}
.mobile-submenu[open]>summary:after{background:linear-gradient(currentColor,currentColor) center/12px 2px no-repeat}
.mobile-submenu>div{padding:0 0 .45rem .65rem;display:grid}
.mobile-menu-panel a[aria-current=page]{color:var(--gold-soft);background:#ffffff16}

.page-shell .subpage-hero{padding:4.5rem 0 3.5rem}
.page-shell .subpage-hero h1{max-width:16ch}
.breadcrumb{color:#fff8ead1;margin-bottom:1.1rem;font-size:.9rem;font-weight:800}
.breadcrumb a{color:var(--gold-soft);text-underline-offset:.2em}
.page-copy{max-width:850px}
.page-copy h2{color:#fff6e3;margin-top:2.8rem;font-size:clamp(1.85rem,3.6vw,3.15rem)}
.page-copy h3{color:#fff1d4;margin-top:1.8rem;font-size:1.35rem}
.page-copy p,.page-copy li{color:#e7ddc6;font-size:1.04rem;line-height:1.78}
.page-copy a:not(.button):not(.pill){color:var(--gold-soft);text-underline-offset:.22em;text-decoration-thickness:2px}
.content-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start;gap:1rem;display:grid}
.content-card{color:var(--body);background:radial-gradient(circle at 100% 0,#f6a90022,#0000 38%),linear-gradient(160deg,#fffdf6,#ead6b8);border:1px solid #c7a980c7;border-radius:var(--radius-md);padding:1.4rem;box-shadow:var(--shadow-card)}
.content-card h2,.content-card h3,.content-card p,.content-card li{color:var(--heading)}
.content-card p,.content-card li{line-height:1.68}
.content-card .check-list{margin-bottom:0}
.link-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}
.service-card.card-link{color:var(--body);min-height:100%;text-decoration:none;display:block}
.service-card.card-link h2,.service-card.card-link h3{color:var(--heading)}
.service-card.card-link .card-cta{color:var(--pine-800);font-weight:950;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:.24em}
.service-card.card-link:focus-visible{outline:4px solid var(--gold-soft);outline-offset:3px}
.question-grid{gap:.85rem;display:grid}
.source-note{border-left:4px solid var(--gold);padding:.85rem 1rem;background:#ffffff0a;border-radius:0 12px 12px 0}
.numbered-steps{counter-reset:page-step;gap:1rem;padding:0;list-style:none;display:grid}
.numbered-steps li{counter-increment:page-step;position:relative;padding-left:3.25rem}
.numbered-steps li:before{content:counter(page-step);width:2.25rem;height:2.25rem;color:#fff;background:linear-gradient(160deg,#16843a,var(--pine-800));border-radius:50%;place-items:center;font-weight:950;display:grid;position:absolute;top:.05rem;left:0;box-shadow:0 8px 16px #04140a4d}
.cta-inline{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}
.cta-inline .secondary-link{color:var(--gold-soft);font-weight:950;text-underline-offset:.22em}
.legal-copy{max-width:820px}
.legal-copy h2{font-size:clamp(1.6rem,3vw,2.35rem)}
.footer-grid{grid-template-columns:1.1fr 1fr 1fr 1fr}
.footer-legal{flex-wrap:wrap;gap:.8rem;display:flex}
.site-footer a{color:#fff8eadb;text-underline-offset:.2em}
.site-footer a:hover{color:var(--gold-soft)}

@media (width<=1180px){.header-phone{display:none}}
@media (width<=900px){.content-grid,.link-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media (width<=640px){.footer-grid{grid-template-columns:1fr}.page-shell .subpage-hero{padding-top:3.2rem}.page-copy h2{margin-top:2.25rem}.footer-legal{display:grid;gap:.35rem}}

/* ============================================================
   QUICK QA PASS — contrast, keyboard access, and mobile rhythm
   ============================================================ */
.skip-link{z-index:500;color:#fff;background:var(--pine-950);border:3px solid var(--gold-soft);border-radius:0 0 12px 12px;padding:.7rem 1rem;font-weight:950;text-decoration:none;position:fixed;top:0;left:1rem;transform:translateY(-120%);transition:transform .16s}
.skip-link:focus{transform:translateY(0);outline:3px solid #fff;outline-offset:2px}
.hero .eyebrow{color:#fff4d6;text-shadow:0 2px 12px #04140acc}

@media (width<=640px){
  .eyebrow,.section-label{font-size:.78rem}
  .mobile-menu summary{font-size:.78rem}
  .hero-photo-heading{font-size:.76rem}
  .hero-photo-footer span{min-height:2.2rem;font-size:.68rem}
  .photo-badge{font-size:.75rem}
  .mobile-sticky-cta.is-smart{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(110%);transition:opacity .2s,transform .2s,visibility 0s linear .2s}
  .mobile-sticky-cta.is-smart.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}
}

/* ============================================================
   WORLD-CLASS REFINEMENT — typography, section rhythm, and depth
   Content, claims, testimonials, and proof remain unchanged.
   ============================================================ */

/* Better line endings keep the display typography composed at every width. */
h1,h2,h3{text-wrap:balance}
.hero-lead,.section-heading p,.page-copy p{text-wrap:pretty}
::selection{color:var(--pine-950);background:var(--gold-soft)}

/* Section padding already clears the sticky header. Avoid doubling that space
   when a homepage navigation link lands directly on a section. */
#services,#how-it-works,#service-area,#faq,#contact,#cleanup-example,#fire-season,#reviews{scroll-margin-top:0}

/* Extend the expressive display face to long-form, narrative section titles
   while leaving compact card and interface headings in the sturdy sans face. */
.page-copy>h2,.prose-block>h2,.split>div>h2{
  font-family:Fraunces,Georgia,serif;
  font-weight:720;
  letter-spacing:-.025em;
  line-height:1.08;
}
.page-copy>h2~h2::before{
  content:"";
  width:3.25rem;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--gold-soft),#f6a90055);
  margin-bottom:1rem;
  display:block;
  box-shadow:0 0 18px #f6a90036;
}

/* Wide subpage heroes gain a quiet topographic signature in their unused
   space. It is decorative, restrained, and removed before content can crowd. */
.subpage-hero .container{position:relative;z-index:1}
.subpage-hero .hero-copy-block{position:relative;z-index:2;max-width:min(66%,780px)}
.subpage-hero .container::after{
  content:"";
  width:clamp(270px,28vw,410px);
  aspect-ratio:1;
  pointer-events:none;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,transparent 0 17%,#ffd56740 17.4% 18%,transparent 18.4% 30%,#fff8ea26 30.4% 31%,transparent 31.4% 43%,#81b85d42 43.4% 44%,transparent 44.4% 57%,#fff8ea1f 57.4% 58%,transparent 58.4% 100%),
    radial-gradient(circle at 34% 29%,#ffd56770 0 1.6%,transparent 2.1%),
    radial-gradient(circle at 63% 69%,#81b85d4d 0 1.3%,transparent 1.8%),
    linear-gradient(145deg,#fff8ea0d,#064f1d12);
  border:1px solid #fff8ea17;
  box-shadow:inset 0 0 0 1px #fff8ea0c,0 38px 90px #04140a38;
  opacity:.9;
  position:absolute;
  top:50%;
  right:clamp(.5rem,3.5vw,3.5rem);
  transform:translateY(-50%);
}

@media (width<=900px){
  .subpage-hero .hero-copy-block{max-width:none}
  .subpage-hero .container::after{display:none}
}

@media (width<=640px){
  #services,#how-it-works,#service-area,#faq,#contact,#cleanup-example,#fire-season,#reviews{scroll-margin-top:32px}
  .page-copy>h2,.prose-block>h2,.split>div>h2{letter-spacing:-.02em}
  .page-copy>h2~h2::before{width:2.75rem;margin-bottom:.8rem}
}

/* ============================================================
   IMMERSIVE MOTION SYSTEM — a living, reactive forest interface
   Effects are progressive enhancements and fully reduced-motion aware.
   ============================================================ */

@property --motion-border-angle{
  syntax:"<angle>";
  initial-value:0deg;
  inherits:false;
}

/* A luminous scroll rail gives the long-form experience a sense of travel. */
.scroll-progress{
  z-index:700;
  pointer-events:none;
  height:3px;
  position:fixed;
  inset:0 0 auto;
  overflow:hidden;
}
.scroll-progress span{
  width:100%;
  height:100%;
  background:linear-gradient(90deg,var(--pine-700),var(--gold-soft) 58%,#fff4c7);
  transform:scaleX(var(--scroll-progress,0));
  transform-origin:left center;
  display:block;
  box-shadow:0 0 14px #ffd567d9,0 2px 8px #064f1d80;
  will-change:transform;
}

/* The navigation condenses into a precision glass instrument after scroll. */
.site-header{
  transition:background-color .35s,border-color .35s,box-shadow .35s,backdrop-filter .35s;
}
.site-header::after{
  content:"";
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,#f6a9007d 35%,#81b85d66 65%,transparent);
  opacity:0;
  position:absolute;
  inset:auto 8% -1px;
  transform:scaleX(.65);
  transition:opacity .35s,transform .35s;
}
.site-header.is-scrolled{
  background:#fff8eae8;
  border-bottom-color:#c8ad7ea8;
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  backdrop-filter:blur(18px) saturate(1.2);
  box-shadow:0 18px 44px #04140a2e,0 1px #fff inset;
}
.site-header.is-scrolled::after{opacity:1;transform:scaleX(1)}
.brand{transform-origin:left center;transition:transform .35s filter .35s}
.site-header.is-scrolled .brand{transform:scale(.95);filter:drop-shadow(0 8px 10px #1020151f)}
.desktop-nav{transition:box-shadow .35s,border-color .35s,background-color .35s}
.site-header.is-scrolled .desktop-nav{background:#fffdf3d6;border-color:#c7a980a8;box-shadow:0 10px 25px #1020151a,inset 0 1px #fff}

.desktop-nav>a,.nav-dropdown>summary{position:relative;isolation:isolate}
.desktop-nav>a::after,.nav-dropdown>summary::before{
  content:"";
  z-index:-1;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--gold),var(--needle-light));
  position:absolute;
  inset:auto .7rem .22rem;
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.desktop-nav>a:hover::after,.desktop-nav>a[aria-current=page]::after,.nav-dropdown>summary:hover::before,.nav-dropdown[open]>summary::before{transform:scaleX(1)}
.nav-dropdown>summary::after{transition:transform .24s cubic-bezier(.2,.8,.2,1)}
.nav-dropdown[open]>summary::after{transform:translateY(2px) rotate(225deg)}
.nav-dropdown[open] .nav-dropdown-menu{animation:nh-dropdown-in .28s cubic-bezier(.16,.85,.25,1) both;transform-origin:top left}
@keyframes nh-dropdown-in{from{opacity:0;transform:translateY(-8px) scale(.97);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}

/* Editorial reveals are intentionally slower than ordinary UI transitions. */
.motion-enhanced .motion-reveal{
  opacity:0;
  translate:0 34px;
  filter:blur(9px);
  transition:opacity .82s cubic-bezier(.16,.82,.25,1),translate .82s cubic-bezier(.16,.82,.25,1),filter .72s ease;
  transition-delay:var(--reveal-delay,0ms);
}
.motion-enhanced .motion-reveal.is-in-view{opacity:1;translate:0 0;filter:none}
.section-label.is-in-view::before{animation:nh-lantern-pulse 2.8s ease-out 2}
@keyframes nh-lantern-pulse{0%,100%{box-shadow:0 0 0 3px #ffffff1a}45%{box-shadow:0 0 0 8px #ffd56700,0 0 18px #ffd56799}}

/* Reactive card planes: perspective, moving light, and a spectral edge. */
.motion-depth{
  --tilt-x:0deg;
  --tilt-y:0deg;
  --depth-lift:0px;
  --glare-x:50%;
  --glare-y:0%;
  isolation:isolate;
  position:relative;
  transform:perspective(1050px) translateY(var(--depth-lift)) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style:preserve-3d;
  transition:transform .46s cubic-bezier(.18,.8,.22,1),box-shadow .3s,border-color .3s;
  will-change:auto;
}
.motion-glare,.motion-border{pointer-events:none;border-radius:inherit;position:absolute;inset:0}
.motion-glare{
  z-index:5;
  background:radial-gradient(circle at var(--glare-x) var(--glare-y),#ffffffb8 0%,#fff8ea45 16%,transparent 42%);
  opacity:0;
  mix-blend-mode:soft-light;
  transition:opacity .3s;
}
.motion-border{
  z-index:7;
  padding:2px;
  background:conic-gradient(from var(--motion-border-angle),transparent 0 22%,#ffd567 30%,#81b85d 39%,transparent 48% 76%,#fff3bd 84%,transparent 92%);
  opacity:0;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  transition:opacity .28s;
}
.motion-depth>.icon,.motion-depth>.step-number,.motion-depth>.review-head{
  transform:translateZ(28px);
  transition:transform .4s cubic-bezier(.18,.8,.22,1),filter .3s;
}

@media (hover:hover) and (pointer:fine){
  .motion-depth.is-tilting,.motion-depth:focus-within,.button.motion-magnetic:hover{will-change:transform}
  .motion-depth:hover,.motion-depth:focus-within{--depth-lift:-8px;box-shadow:0 36px 68px #04140a4d,0 8px 0 #7a470926,inset 0 1px #fff}
  .motion-depth:hover .motion-glare,.motion-depth:focus-within .motion-glare{opacity:.72}
  .motion-depth:hover .motion-border,.motion-depth:focus-within .motion-border{opacity:.94;animation:nh-border-orbit 3.2s linear infinite}
  .motion-depth:hover>.icon,.motion-depth:focus-within>.icon{transform:translateZ(42px) rotate(-4deg) scale(1.06);filter:drop-shadow(0 14px 12px #064f1d24)}
  .motion-depth:hover>.step-number{transform:translateZ(40px) rotate(-2deg) scale(1.04)}
}
@keyframes nh-border-orbit{to{--motion-border-angle:360deg}}

/* Magnetic buttons use a restrained attraction field and a single light pass. */
.button.motion-magnetic{
  --mag-x:0px;
  --mag-y:0px;
  --button-y:0px;
  transform:translate3d(var(--mag-x),calc(var(--mag-y) + var(--button-y)),0);
  transition:transform .22s cubic-bezier(.2,.8,.2,1),background-color .16s,border-color .16s,box-shadow .16s;
  will-change:auto;
}
.button.motion-magnetic:hover{--button-y:-2px}
.button.motion-magnetic:active{--button-y:3px}
.button.motion-magnetic::after{
  height:auto;
  background:linear-gradient(105deg,transparent 25%,#ffffff0d 38%,#ffffff9c 50%,#ffffff12 62%,transparent 75%);
  position:absolute;
  inset:-15% -35%;
  transform:translateX(-85%) skewX(-12deg);
  transition:transform .7s cubic-bezier(.2,.75,.2,1);
}
.button.motion-magnetic:hover::after{transform:translateX(85%) skewX(-12deg)}

/* The hero becomes a subtle light field with two planes of parallax. */
.hero>.container{translate:0 var(--hero-parallax-y,0px)}
.hero-fx{translate:0 var(--fx-parallax-y,0px)}
.hero-spotlight{
  z-index:1;
  pointer-events:none;
  background:radial-gradient(520px circle at var(--hero-x,50%) var(--hero-y,35%),#ffd56735,transparent 68%);
  opacity:.85;
  mix-blend-mode:screen;
  position:absolute;
  inset:0;
  transition:background-position .18s linear;
}
.hero-photo{
  --photo-tilt-x:0deg;
  --photo-tilt-y:0deg;
  transform:perspective(1300px) rotateX(var(--photo-tilt-x)) rotateY(var(--photo-tilt-y));
  transform-style:preserve-3d;
  transition:transform .42s cubic-bezier(.18,.8,.22,1),box-shadow .35s;
}
.hero-photo-card:hover .hero-photo{box-shadow:0 24px 52px #04140a45}
.subpage-hero .container::after{animation:nh-topographic-orbit 34s linear infinite}
@keyframes nh-topographic-orbit{to{transform:translateY(-50%) rotate(360deg)}}

/* The comparison control invites one interaction, then calmly gets out of the way. */
.ba-handle::before{
  content:"";
  pointer-events:none;
  border:2px solid #ffd567c7;
  border-radius:50%;
  position:absolute;
  inset:-7px;
  animation:nh-slider-invite 2.35s ease-out infinite;
}
.ba-slider.is-interacted .ba-handle::before{display:none}
.ba-slider:hover .ba-img-after{filter:saturate(1.06) contrast(1.02)}
.ba-img-after{transition:filter .35s}
@keyframes nh-slider-invite{0%{opacity:.8;transform:scale(.82)}70%,100%{opacity:0;transform:scale(1.45)}}

/* Native details receive a true opening motion where the browser supports it. */
.faq-item{interpolate-size:allow-keywords}
.faq-item::details-content{
  opacity:0;
  block-size:0;
  overflow:hidden;
  transition:content-visibility .38s allow-discrete,block-size .38s cubic-bezier(.2,.8,.2,1),opacity .28s;
}
.faq-item[open]::details-content{opacity:1;block-size:auto}
.faq-item summary:after{transition:transform .32s cubic-bezier(.2,.85,.2,1),background .25s,box-shadow .25s}
.faq-item[open] summary:after{transform:translateY(-50%) rotate(180deg)}

/* Diagrams and device mockups feel alive without obscuring their information. */
.zone-rings::before,.zone-rings::after{
  content:"";
  pointer-events:none;
  border:1px solid #f6a90080;
  border-radius:50%;
  position:absolute;
  inset:18%;
  animation:nh-zone-pulse 3.8s ease-out infinite;
}
.zone-rings::after{inset:6%;animation-delay:1.15s}
.zone-home,.zone{z-index:2}
@keyframes nh-zone-pulse{0%{opacity:.7;transform:scale(.82)}75%,100%{opacity:0;transform:scale(1.12)}}
.motion-enhanced .phone-card.motion-reveal .message,.motion-enhanced .phone-card.motion-reveal .photo-stack{opacity:0;translate:0 12px}
.motion-enhanced .phone-card.is-in-view .message,.motion-enhanced .phone-card.is-in-view .photo-stack{animation:nh-message-in .55s cubic-bezier(.2,.8,.2,1) both}
.motion-enhanced .phone-card.is-in-view .message:nth-of-type(2){animation-delay:.2s}
.motion-enhanced .phone-card.is-in-view .message:nth-of-type(3){animation-delay:.35s}
.motion-enhanced .phone-card.is-in-view .photo-stack{animation-delay:.48s}
.motion-enhanced .phone-card.is-in-view .message:last-child{animation-delay:.62s}
@keyframes nh-message-in{to{opacity:1;translate:0 0}}

/* Small moments across the supporting system. */
.ticker{-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.ticker:hover .ticker-track{animation-play-state:paused}
#reviews .service-card:hover .review-stars{animation:nh-stars-shine .85s ease both}
@keyframes nh-stars-shine{45%{letter-spacing:.22em;filter:brightness(1.3) drop-shadow(0 0 8px #f6a90070)}}
.pill{position:relative;overflow:hidden}
.pill::after{content:"";width:45%;height:160%;pointer-events:none;background:linear-gradient(90deg,transparent,#ffffffb3,transparent);position:absolute;top:-30%;left:-65%;transform:skewX(-18deg);transition:left .55s ease}
.pill:hover::after{left:120%}
.site-footer ul a{position:relative}
.site-footer ul a::after{content:"";height:1px;background:linear-gradient(90deg,var(--gold-soft),var(--needle-light));position:absolute;inset:auto 0 -.18rem;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.site-footer ul a:hover::after{transform:scaleX(1)}

@media (width<=900px){
  .hero>.container,.hero-fx{translate:0 0}
}

@media (width<=640px){
  .scroll-progress{height:2px}
  .site-header.is-scrolled{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--cream)}
  .site-header.is-scrolled .brand{transform:scale(.97)}
  .motion-depth{will-change:auto}
  .hero-spotlight{opacity:.52;background:radial-gradient(360px circle at 35% 22%,#ffd56724,transparent 70%)}
  .zone-rings::before,.zone-rings::after{animation-duration:4.8s}
}

@media (prefers-reduced-motion:reduce){
  .scroll-progress{display:none}
  .motion-enhanced .motion-reveal{opacity:1;translate:0;filter:none;transition:none}
  .motion-depth,.button.motion-magnetic,.hero-photo{transform:none!important;transition:none!important}
  .motion-border,.motion-glare,.hero-spotlight,.button.motion-magnetic::after,.pill::after{display:none!important;animation:none!important}
  .subpage-hero .container::after,.ba-handle::before,.zone-rings::before,.zone-rings::after{animation:none}
  .motion-enhanced .phone-card.motion-reveal .message,.motion-enhanced .phone-card.motion-reveal .photo-stack{opacity:1;translate:0;animation:none}
  .nav-dropdown[open] .nav-dropdown-menu{animation:none}
  .site-header,.site-header::after,.brand,.desktop-nav,.desktop-nav>a::after,.nav-dropdown>summary::before,.nav-dropdown>summary::after,.faq-item::details-content,.faq-item summary:after,.site-footer ul a::after{transition:none!important}
}

/* ============================================================
   RESPONSIVE UI CORRECTIONS — menu, FAQ contrast, hero call action
   ============================================================ */

/* Long-form page typography is light on the dark page canvas, but FAQ cards
   are cream. Restore an explicitly dark answer color inside those cards. */
.faq-item p,
.page-copy .faq-item p,
.prose-block .faq-item p{
  color:#3a3023;
  opacity:1;
}
.page-copy .faq-item a,
.prose-block .faq-item a{color:var(--pine-800)}
.faq-item summary:focus-visible{
  outline:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 3px var(--gold-soft);
}

/* The phone action in subpage heroes is a real secondary CTA, not a loose
   underlined line. It stays quieter than the gold text-photo action. */
.subpage-hero .hero-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  gap:.75rem;
}
.subpage-hero .hero-actions .secondary-link{
  min-height:56px;
  color:#fffaf0;
  background:linear-gradient(180deg,#0a5428e8,#063819f2);
  border:2px solid #fff8eaa8;
  border-radius:var(--radius-sm);
  box-shadow:0 13px 26px #04140a5c,inset 0 1px #ffffff38,0 3px #04140ab8;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:1rem 1.35rem;
  font-weight:950;
  line-height:1.1;
  text-decoration:none;
  transition:transform .16s,background-color .16s,border-color .16s,box-shadow .16s;
}
.subpage-hero .hero-actions .secondary-link::before{
  content:"";
  flex:none;
  width:1.02em;
  height:1.02em;
  margin-right:.48em;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.85 21 3 13.15 3 3.99A1 1 0 0 1 4 3h3.5a1 1 0 0 1 1 1c0 1.24.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.85 21 3 13.15 3 3.99A1 1 0 0 1 4 3h3.5a1 1 0 0 1 1 1c0 1.24.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.subpage-hero .hero-actions .secondary-link:hover{
  color:#fff;
  background:linear-gradient(180deg,#117036,#08451f);
  border-color:#fff8eae6;
  box-shadow:0 17px 30px #04140a70,inset 0 1px #ffffff45,0 4px #04140acf;
  transform:translateY(-2px);
}
.subpage-hero .hero-actions .secondary-link:focus-visible{
  outline:4px solid var(--gold-soft);
  outline-offset:3px;
}

@media (width<=1180px){
  /* Keep the light brand bar legible while the dark menu canvas is open. */
  .site-header:has(.mobile-menu[open]){
    background:var(--cream)!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    border-bottom-color:#d7c4a4;
    box-shadow:0 12px 32px #04140a38;
  }

  /* Use a deliberate full-width navigation sheet throughout the hamburger
     range instead of a narrow side panel surrounded by a dead overlay. */
  .mobile-menu-panel{
    width:100%;
    min-width:0;
    max-height:calc(100svh - 78px);
    padding:1rem max(1rem,calc((100vw - 720px)/2)) 1.3rem;
    border-width:0 0 1px;
    border-color:#ffffff24;
    border-radius:0 0 28px 28px;
    top:100%;
    left:0;
    right:0;
    overflow:auto;
    box-shadow:0 34px 76px #04140ac2,0 1px #ffffff14 inset;
  }
  .mobile-menu-links,
  .mobile-menu-actions{width:min(100%,680px);margin-inline:auto}

  /* Earlier broad summary rules accidentally styled every nested accordion
     like the main Menu/Close control. Reset those submenus as quiet rows. */
  .mobile-menu[open] .mobile-submenu>summary,
  .mobile-submenu>summary{
    min-height:54px;
    color:#fff8ea;
    background:#031d0d70;
    border:1px solid #ffd56755;
    border-radius:15px;
    padding:.78rem .95rem;
    box-shadow:inset 0 1px #ffffff12;
    font-size:1rem;
    line-height:1.2;
    transform:none;
  }
  .mobile-menu[open] .mobile-submenu>summary:hover,
  .mobile-submenu>summary:hover{
    color:#fff;
    background:#ffffff0d;
    border-color:#ffd5678c;
    box-shadow:inset 0 1px #ffffff1c;
    transform:none;
  }
  .mobile-submenu+ .mobile-submenu{margin-top:.5rem}
  .mobile-submenu{border-bottom:0}
  .mobile-submenu>div{padding:.35rem 0 .65rem .5rem}
  .mobile-menu-links>a{
    min-height:52px;
    border-bottom:1px solid #ffffff1b;
    border-radius:0!important;
    padding:.8rem .85rem!important;
  }
  .mobile-menu-actions{
    border-top:1px solid #ffffff24;
    margin-top:.75rem;
    padding-top:1rem;
  }
  .mobile-menu-actions .button-primary{
    color:#fff!important;
    border-color:#ffffff61;
    text-shadow:0 1px 1px #04140a7a;
  }
}

@media (width<=640px){
  .subpage-hero .hero-actions{display:grid;grid-template-columns:1fr}
  .subpage-hero .hero-actions .secondary-link{width:100%;min-height:52px;padding:.88rem 1rem}
  .mobile-menu-panel{right:0;padding:.85rem .75rem calc(1rem + env(safe-area-inset-bottom))}
}

/* ============================================================
   TYPOGRAPHY + PAGE-RHYTHM CONSISTENCY
   Keep each hierarchy contextual while sharing the same baseline system.
   ============================================================ */

/* Location-page prose now uses the same readable body baseline as the
   long-form service pages. Section and card headings retain their deliberate
   hierarchy differences. */
.prose-block p{
  font-size:1.04rem;
  line-height:1.78;
}

/* Eyebrow-like section chips and compact hero labels remain small, but no
   longer dip below a comfortable 12px reading floor. */
.section-label,
.section-heading .section-label,
.cta-band-copy .section-label{
  font-size:.78rem;
  line-height:1.2;
}
.hero-photo-footer span{font-size:.75rem}

@media (width<=640px){
  /* Match the tablet and desktop gutter rhythm instead of squeezing mobile
     content to only 10px from the viewport edge. */
  .container{width:min(100% - 2rem,var(--container))}
  .hero-photo-footer span,.zone{font-size:.75rem}
}

/* ============================================================
   ACCESSIBLE ACTION + CONTROL REFINEMENTS
   Keep decorative affordances visual-only, enlarge compact labels, and
   give every header/contact action a deliberate interactive surface.
   ============================================================ */

/* Draw the FAQ state glyph with backgrounds instead of text characters so
   screen readers announce only the question itself. */
.faq-item summary:after{
  content:"";
  background:
    linear-gradient(var(--pine-700),var(--pine-700)) center/12px 2px no-repeat,
    linear-gradient(var(--pine-700),var(--pine-700)) center/2px 12px no-repeat,
    linear-gradient(#fff,#dff0e2);
}
.faq-item[open] summary:after{
  background:
    linear-gradient(var(--pine-700),var(--pine-700)) center/12px 2px no-repeat,
    linear-gradient(#e2f1e6,#c9e6d3);
}

/* Match the desktop phone target to the navigation and CTA controls without
   reintroducing it into the compact hamburger header. */
@media (width>1180px){
  .header-phone{
    min-height:44px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    padding:.55rem .72rem;
  }
  .header-phone:hover{background:var(--sand)}
  .header-phone:focus-visible{
    outline:4px solid var(--gold);
    outline-offset:2px;
    background:var(--sand);
  }
}

@media (width<=640px){
  /* Keep the remaining compact homepage image labels at a true 12px floor. */
  .hero-photo-heading,.photo-badge,.ba-caption{font-size:.75rem}
}

/* ============================================================
   QUICK RESPONSIVE POLISH
   Improve mobile readability and touch comfort while preserving the richer
   pointer-based presentation on desktop.
   ============================================================ */

@media (width<=900px){
  /* Blur-heavy reveals are disproportionately expensive on touch hardware. */
  .motion-enhanced .motion-reveal{
    filter:none;
    transition-duration:.48s;
  }
}

@media (width<=640px){
  /* Match the homepage's opening rhythm to the shared subpage hero spacing. */
  main>.hero:not(.subpage-hero){padding-top:3.2rem}

  /* Keep meaningful reading copy at a dependable 16px minimum. */
  .service-card p,
  .scope-card p,
  .faq-item p,
  .faq-item summary,
  .check-list li,
  .site-footer li,
  .site-footer p{font-size:1rem}

  /* Premium mobile controls should be comfortably tappable, not merely pass. */
  .mobile-menu summary{min-height:48px}
  a.pill{min-height:44px}
}
