/* Scrollcraft V3: approved Gator Badge palette and type, independent scene grammar. */
:root { --sc-canvas:var(--swamp); --sc-surface:var(--moss); --sc-ink:var(--bone); --sc-ink-soft:var(--sage); --sc-accent:var(--lime); --sc-accent-ink:var(--swamp); --sc-font-display:var(--font-display); --sc-font-text:var(--font-body); }
.hero { min-height: min(820px,calc(100svh - 72px)); background:var(--swamp); isolation:isolate; overflow:clip; display:flex; align-items:center; }
.hero-inner { position:relative; z-index:3; padding-top:76px; padding-bottom:80px; width:100%; }
.hero-title { max-width:720px; }
.hero-location { font-family:var(--font-condensed); color:var(--amber); font-size:1rem; letter-spacing:.07em; text-transform:uppercase; max-width:36ch; }
.hero .lede { max-width:47ch; }
.hero-art { position:absolute; inset:0 0 0 48%; z-index:1; }
.hero-word { position:absolute; left:-5%; top:0; font-family:var(--font-display); font-size:clamp(10rem,23vw,24rem); color:var(--moss-2); line-height:1; letter-spacing:-.03em; }
.hero-portrait { position:absolute; width:94%; right:0; bottom:0; }
.hero-portrait img { width:100%; height:auto; }
.hero-seal { position:absolute; bottom:5%; left:1%; width:clamp(105px,12vw,180px); height:auto; border-radius:50%; box-shadow:0 18px 40px #0008; }
.hero-chips { max-width:580px; }
.hero .hero-line-block { font-size:clamp(3.6rem,6.2vw,6rem); }
.hero .hero-line-brush { font-size:clamp(2.5rem,4.2vw,4.25rem); }
.section { padding-block:clamp(64px,7vw,108px); }
.stump-work { padding-block:64px; }
.stump-work .split { grid-template-columns:.72fr 1.28fr; gap:72px; align-items:center; }
.stump-work .split-media { max-width:410px; }
.stump-work h2 { font-size:clamp(2rem,3.8vw,3.5rem); }
.stump-work .split-copy>p:last-child { margin-bottom:0; }
.finish-experience { background:var(--lime); color:var(--swamp); }
.finish-stage { padding:clamp(32px,4vw,64px) max(24px,calc((100vw - 1152px)/2)); display:flex; flex-direction:column; justify-content:center; gap:20px; overflow:clip; }
.finish-head { display:grid; grid-template-columns:1.15fr 1fr; gap:48px; align-items:end; }
.finish-head h2 { font-size:clamp(2.3rem,4vw,4rem); letter-spacing:-.015em; margin:0; }
.finish-head h2 span { color:var(--swamp); }
.finish-head p { max-width:36ch; margin:0; font-size:1.15rem; line-height:1.5; }
.clearance { height:clamp(190px,28vh,270px); position:relative; overflow:hidden; flex-shrink:0; background:#131810; color:var(--bone); border-radius:12px; --clear:0; }
.ground-label { position:absolute; top:20px; left:24px; font:600 .95rem var(--font-condensed); text-transform:uppercase; letter-spacing:.08em; color:var(--sage); }
.ground-bed { position:absolute; left:0; right:0; bottom:0; height:28%; background:#263119; }
.soil-line { position:absolute; left:0; right:0; bottom:28%; height:2px; background:var(--sage); }
.stump-shape { position:absolute; width:110px; height:98px; left:calc(50% - 55px); bottom:28%; border:2px solid #E6BA6B; border-radius:12px 12px 0 0; background:#815C2C; transform-origin:bottom; clip-path:inset(calc(var(--clear)*100%) 0 0); }
.stump-shape span { display:block; text-align:center; padding-top:32px; color:var(--bone); font:600 .9rem var(--font-condensed); letter-spacing:.12em; }
.stump-rings { height:18px; margin:-1px -1px 0; border-radius:50%; border:3px double #E6BA6B; background:#AB824A; }
.grinding-sweep { position:absolute; left:0; top:38%; width:100%; height:48%; transform:translateX(calc(-105% + var(--clear)*210%)); pointer-events:none; }
.grinding-sweep span { position:absolute; right:0; height:100%; width:3px; background:var(--lime); }
.grinding-sweep:before { content:''; position:absolute; right:0; width:100px; height:100%; background:linear-gradient(90deg,transparent,#A8CE1F33); }
.clearance-result { position:absolute; inset:25% 16px auto; text-align:center; font:400 clamp(1.7rem,3.5vw,3rem) var(--font-display); text-transform:uppercase; opacity:var(--clear); transform:translateY(calc(12px - var(--clear)*12px)); }
.ground-finish { position:absolute; left:32%; right:32%; bottom:28%; height:12px; opacity:0; transform-origin:bottom; }
.grindings { background:#AB824A; border-radius:50% 50% 0 0; height:18px; }
.planted { background:var(--lime); height:7px; }
.clearance[data-ground='keep'] .grindings,.clearance[data-ground='plant'] .planted { opacity:var(--clear); }
.diagram-note { position:absolute; bottom:9px; left:24px; font-size:.8rem; color:var(--sage); }
.finish-options { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.finish-options button { text-align:left; border:1px solid #53630F; border-radius:10px; padding:16px 20px; background:transparent; color:var(--swamp); cursor:pointer; min-height:84px; transition:background 160ms,color 160ms; }
.finish-options strong { display:block; font:600 1.25rem var(--font-condensed); text-transform:uppercase; }
.finish-options span { display:block; font-size:1rem; }
.finish-options button[aria-pressed='true'] { background:var(--swamp); color:var(--bone); }
.finish-options button:focus-visible,.finish-next a:focus-visible { outline-color:var(--swamp); }
.finish-options button:active { transform:translateY(1px); }
.finish-next { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:44px; }
.finish-next p { margin:0; font-size:1rem; }
.finish-next a { color:var(--swamp); flex-shrink:0; }
.services .service-groups { display:block; }
.services .service-group { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding:28px 0; border-bottom:1px solid var(--line); }
.services .service-group h3 { font-size:1.6rem; }
.services .service-group ul { margin:0; }
.services .service-group li { padding-block:8px; }
.why-us .mascot-panel { align-self:center; }
.why-us .reason-list li { padding-block:20px; }
.area { border-top:1px solid var(--line); }
.estimate { border-top:1px solid var(--lime); }
.estimate .estimate-intro { max-width:900px; }
.estimate h2 { font-size:clamp(2.5rem,5vw,4.5rem); }
@media(hover:hover) and (pointer:fine) { .finish-options button:hover { background:var(--moss); color:var(--bone); } }
@media(max-width:1000px) { .hero-art { left:50%; } .hero .lede { max-width:40ch; } .hero-title { max-width:60%; } .hero .hero-line-brush { font-size:3rem; } .hero-seal { left:0; } }
@media(max-width:760px) {
 .hero { display:block; min-height:0; }
 .hero-inner { padding:40px 24px 28px; }
 .hero-title { max-width:100%; margin-bottom:20px; }
 .hero .hero-line-block { font-size:clamp(2.7rem,10.8vw,4.3rem); }
 .hero .hero-line-brush { font-size:clamp(2rem,7.8vw,3rem); }
 .hero .lede { max-width:100%; font-size:1rem; }
 .hero-location { font-size:.82rem; margin-bottom:18px; }
 .hero-art { position:relative; inset:auto; height:300px; margin:0 24px; order:2; }
 .hero { display:flex; flex-direction:column; }
 .hero-word { font-size:36vw; left:0; top:0; }
 .hero-portrait { height:300px; width:300px; max-width:100%; right:calc(50% - 150px); bottom:0; }
 .hero-portrait img { height:100%; width:100%; object-fit:contain; }
 .hero-seal { width:94px; left:2%; bottom:24px; }
 .hero-chips { display:none; }
 .stump-work .split { grid-template-columns:1fr; gap:24px; }
 .stump-work .split-media { max-width:280px; margin:auto; }
 .stump-work .split-copy { order:-1; }
 .finish-stage { padding:44px 24px; gap:24px; }
 .finish-head { display:block; }
 .finish-head h2 { font-size:2.5rem; margin-bottom:16px; }
 .finish-head p { font-size:1rem; }
 .clearance { height:210px; }
 .finish-options { grid-template-columns:1fr; gap:8px; }
 .finish-options button { min-height:76px; padding:12px 16px; }
 .finish-next { display:block; }
 .finish-next p { margin-bottom:12px; }
 .services .service-group { grid-template-columns:1fr; gap:8px; padding:24px 0; }
 .why-us .mascot-panel { max-width:310px; margin:auto; }
 .section { padding-block:56px; }
}
@media(prefers-reduced-motion:reduce) { .clearance { --clear:1!important; } .grinding-sweep { display:none; } .hero-art [data-sc-parallax],.mascot-panel { transform:none!important; } }
/* Phone composition keeps identity in the first view, with supporting proof below. */
@media(max-width:760px) {
 .hero-art { width:calc(100% - 48px); align-self:stretch; }
 .hero .lede { display:none; }
 .hero-cta { flex-direction:row; flex-wrap:wrap; gap:12px; }
 .hero-cta .btn { flex:1; width:auto; padding-inline:12px; font-size:.95rem; }
 .hero-inner { padding-bottom:12px; }
 .hero-art { height:300px; }
 .finish-experience { height:auto!important; }
 .finish-stage { position:relative!important; height:auto!important; min-height:0!important; }
}
@media(prefers-reduced-motion:reduce) {
 .finish-experience { height:auto!important; }
 .finish-stage { position:relative!important; height:auto!important; min-height:0!important; }
 [data-sc-reveal] { clip-path:none!important; }
 [data-sc-in], [data-sc-in]>* { opacity:1!important; transform:none!important; }
}
.clearance-result { opacity:var(--result,0); }
.hero-environment { position:absolute; inset:-40px -40px -40px -110%; width:210%; max-width:none; height:calc(100% + 80px); object-fit:cover; }
.hero-portrait { bottom:10px; transform-origin:bottom center; }
.hero-art:after { content:''; position:absolute; inset:auto -20px -1px -110%; height:100px; background:linear-gradient(transparent,var(--swamp)); pointer-events:none; }
.hero-seal { z-index:2; }
@media(max-width:760px) {
 .hero-environment { inset:-10px -24px; width:calc(100% + 48px); height:calc(100% + 30px); object-position:70% center; }
 .hero-portrait { bottom:0; }
 .hero-art:after { left:-24px; right:-24px; height:36px; }
}
.hero-portrait { width:75%; right:8%; bottom:0; max-height:95%; }
.hero-portrait img { max-height:760px; object-fit:contain; object-position:bottom; }
@media(max-width:760px) { .hero-portrait { width:240px; height:300px; right:calc(50% - 120px); max-height:none; } .hero-portrait img { width:100%; height:100%; } }
/* Fixed navigation keeps scroll-state contrast sampling clear of sticky chrome. */
.site-header { position:fixed; inset:0 0 auto; }
body { padding-top:var(--header-h); }
.hero-line-block,.hero-line-brush { width:fit-content; }
.hero-location { font-family:var(--font-body); font-size:1rem; letter-spacing:normal; text-transform:none; color:var(--sage); max-width:47ch; margin:0 0 16px; }
@media(max-width:760px) { .hero-location { font-size:.95rem; max-width:32ch; margin-bottom:20px; } }
