/* Scoped planner layout; does not change the site's existing galleries. */
.planner-page{background:var(--paper,#fbfaf7);--planner-line:#ccd4cd;--planner-green:#142b22;--planner-sand:#e5d4b7}
.planner-intro{background:var(--planner-green);color:#fff;padding:38px 0 0}.planner-intro h1{font-size:clamp(2.7rem,4.7vw,4.9rem);line-height:1.04;margin:10px 0 17px;max-width:940px}.planner-intro> .wrap>p:not(.eyebrow){color:#dde6de;font-size:1rem;max-width:820px;margin-bottom:27px}.planner-intro a{color:inherit;text-underline-offset:4px}.planner-steps{padding:0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #ffffff38}.planner-steps a{display:flex;align-items:center;gap:12px;padding:18px 12px;text-decoration:none;font-size:.85rem;border-bottom:3px solid transparent;min-height:68px}.planner-steps a[aria-current]{border-color:var(--planner-sand);background:#ffffff09}.planner-steps span{border:1px solid #c9d7ce;border-radius:50%;display:grid;place-items:center;width:29px;height:29px;flex:none;font:600 .8rem var(--sans,Arial)}.planner-steps a.is-complete span{background:var(--planner-sand);color:var(--planner-green);border-color:var(--planner-sand)}
.planner-workspace{padding:35px 0 58px}.planner-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:26px;align-items:start}.planner-panel,.map-panel{background:white;border:1px solid var(--planner-line);padding:24px;min-width:0}.planner-panel h2{font-size:2.2rem;line-height:1.08;margin:6px 0 17px}.planner-page label{display:block;font-size:.85rem;font-weight:700;margin:17px 0 6px}.planner-page input,.planner-page select{width:100%;min-height:48px;padding:11px 12px;border:1px solid #879c8b;border-radius:3px;background:white;color:#1e2d25;font:400 16px/1.4 var(--sans,Arial)}.planner-page input:focus,.planner-page select:focus{outline:3px solid #b88e4e;outline-offset:2px}.field-help{font-size:.83rem;line-height:1.55;color:#4c6054;margin:10px 0;max-width:none}.planner-sidebar-note{padding:22px 5px}.planner-sidebar-note h3{font:700 1rem/1.4 var(--sans,Arial);margin:0 0 7px}.planner-sidebar-note p{font-size:.85rem;color:#4c6054;margin:0}.map-search>.btn{width:100%;margin-top:8px}.plain-button{border:none;background:none;color:#244c37;text-decoration:underline;text-underline-offset:4px;font:600 .82rem/1.3 var(--sans,Arial);padding:12px 4px;min-height:44px;cursor:pointer}.plain-link{font-weight:700;font-size:.9rem;text-underline-offset:4px}.map-results{display:grid;gap:7px;max-height:330px;overflow:auto}.map-results button{display:block;width:100%;text-align:left;border:1px solid #a3b2a5;border-radius:3px;background:#f4f7f3;color:#142b22;padding:13px;font:600 .88rem/1.45 var(--sans,Arial);min-height:48px}.map-results button:hover,.map-results button:focus-visible{background:#e9efdf}.map-search[aria-busy=true] button{opacity:.7}.map-panel-heading{display:flex;gap:15px;justify-content:space-between;align-items:start}.map-panel-heading h2{font-size:2.25rem;margin:3px 0 0}.map-panel-heading .eyebrow{margin-bottom:7px}.map-address{font-size:.88rem;line-height:1.45;color:#405a49;margin:10px 0 18px;overflow-wrap:anywhere}.map-choices{display:flex;gap:8px;flex-wrap:wrap}.map-choices button,.map-secondary{border:1px solid #93a496;border-radius:3px;background:#fff;color:#1c3b2a;padding:10px 13px;min-height:46px;font:600 .86rem/1.25 var(--sans,Arial)}.map-choices button[aria-pressed=true]{background:#142b22;color:#fff;border-color:#142b22}.map-choices button span{font-size:1.1rem;margin-right:5px}.map-status{background:#f0f4ee;color:#233f2e;font-size:.86rem;line-height:1.45;padding:10px 12px;min-height:42px;margin:12px 0 10px;max-width:none}.map-status[data-level=error]{background:#fff0e8;color:#7a3420}.map-stage{position:relative;isolation:isolate;background:#e1e6df;border:1px solid #bbc8bc}.property-map{height:445px;min-height:270px;width:100%}.map-aim{position:absolute;left:50%;top:50%;width:40px;height:40px;border:2px solid white;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:3;box-shadow:0 0 0 2px #142b22aa}.map-aim:before,.map-aim:after{content:'';position:absolute;left:50%;top:50%;background:#fff;box-shadow:0 0 1px #000;transform:translate(-50%,-50%)}.map-aim:before{width:52px;height:2px}.map-aim:after{height:52px;width:2px}.map-aim span{position:absolute;inset:14px;border-radius:50%;background:#162c21;border:2px solid white}.map-live-measure{position:absolute;top:10px;left:10px;z-index:2;max-width:calc(100% - 77px);padding:9px 12px;background:#142b22ed;color:#fff;border:1px solid #ffffff40;border-radius:3px;font:600 .88rem/1.3 var(--sans,Arial);pointer-events:none}.map-home{position:absolute;right:10px;bottom:38px;z-index:2;padding:10px 13px;border:1px solid #a7b7a7;background:#fffffff2;border-radius:3px;color:#183724;font:600 .75rem/1.3 var(--sans,Arial);min-height:44px}.map-failure{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:#edf2eafa;padding:30px;z-index:5;color:#1e3526}.map-failure strong{font-size:1.2rem}.map-failure p{font-size:.9rem;margin:10px 0 20px}.drawing-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 5px}.drawing-actions>.btn{flex:1}.planner-page button:disabled{opacity:.48;cursor:not-allowed;transform:none!important}.planner-page [hidden]{display:none!important}.map-edit-tools{display:flex;gap:12px;margin:9px 0}.map-bottom{border-top:1px solid #d5dfd5;margin-top:14px;padding-top:17px}.measurement-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.measurement-heading h3{font-size:1.65rem;margin:0}.map-drawings{padding:0;margin:12px 0 15px;list-style:none;display:grid;gap:8px}.map-drawings .no-drawings{font-size:.87rem;color:#58705f;padding:13px;background:#f4f6f2}.drawing-pick{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;text-align:left;padding:13px;border:1px solid #a5b6a6;background:#fff;border-radius:3px;min-height:48px;color:#163220}.drawing-pick strong{font-size:.96rem}.drawing-pick span{font-size:.83rem}.drawing-pick[aria-pressed=true]{border:2px solid #315941;background:#f0f5eb;padding:12px}.map-use{width:100%;margin-top:3px;min-height:50px}.map-credit{font-size:11px;line-height:1.55;color:#415849;border-top:1px solid #dce4da;padding-top:13px;margin:15px 0 0;max-width:none}.map-credit a{color:inherit;text-underline-offset:2px}.property-map .maplibregl-ctrl-group button{width:44px;height:44px}.property-map .maplibregl-ctrl-scale{background:#fffffff0;color:#182c20;border-color:#193424;font-size:12px}.property-map .maplibregl-ctrl-attrib{font-size:10px;background:#fffffff0}.map-marker{width:17px;height:17px;background:#2b73c8;border:3px solid white;border-radius:50%;box-shadow:0 0 0 4px #2b73c866}
.planning-budget{background:var(--cream,#f3eee5);padding:62px 0}.budget-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:55px;align-items:start}.budget-copy h2{font-size:clamp(2.5rem,4vw,4rem)}.budget-copy>p:not(.eyebrow){color:#435b4b}.planner-estimate{padding:30px;margin:0;min-width:0}.budget-project{display:flex;align-items:start;justify-content:space-between;gap:16px;border-bottom:1px solid #d6dfd5;padding-bottom:15px}.budget-project span{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:#45604e;display:block}.budget-project strong{display:block;font:600 1.05rem/1.4 var(--sans,Arial);margin-top:7px}.planner-estimate .btn{width:100%;min-height:50px}.planner-estimate .estimate-result{margin:20px 0}.planner-estimate .estimate-result strong{font-size:2.8rem}.planner-estimate .estimate-send{margin-top:0}.planner-page #locate-property,.planner-page #draw-property,.planner-page #planning-budget{scroll-margin-top:102px}
.map-panel.is-expanded{position:fixed;inset:8px;z-index:200;overflow:auto;overscroll-behavior:contain;background:#fff;padding:16px 22px;box-shadow:0 0 0 20px #142b22cc}.map-panel.is-expanded .property-map{height:max(300px,calc(100dvh - 320px))}.map-panel.is-expanded .map-credit{margin-bottom:10px}.map-panel.is-expanded .map-panel-heading{position:sticky;top:-16px;background:white;z-index:8;padding:9px 0}.map-panel.is-expanded .map-bottom{max-width:1100px}.map-panel.is-expanded .map-use{max-width:480px}.map-panel.is-expanded .drawing-actions{position:sticky;bottom:-16px;z-index:7;background:white;padding:10px 0;border-top:1px solid #d7e0d4}
.lead-plan-preview{background:#eff4eb;border-left:4px solid #294c35;padding:17px 20px;margin:0 0 22px}.lead-plan-preview h3{font:700 1rem/1.4 var(--sans,Arial);margin:0 0 8px}.lead-plan-preview p{font:400 .86rem/1.5 var(--sans,Arial);margin:5px 0}.lead-plan-preview a{font-weight:700;font-size:.85rem}
@media(min-width:1100px){.planner-sidebar{position:sticky;top:106px}.planner-page .wrap{width:min(1320px,calc(100% - 64px))}}
@media(max-width:1050px){.planner-layout{grid-template-columns:270px minmax(0,1fr);gap:18px}.planner-panel,.map-panel{padding:18px}.map-panel-heading h2{font-size:2rem}.map-secondary,.map-choices button{padding:10px}.property-map{height:440px}.budget-layout{gap:30px}}
@media(max-width:800px){.planner-layout,.budget-layout{grid-template-columns:1fr}.planner-intro{padding-top:27px}.planner-intro h1{font-size:3.2rem}.planner-workspace{padding-top:20px}.planner-sidebar-note{display:none}.planner-panel{padding:22px}.planner-panel h2{font-size:2rem}.map-search{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.map-search label[for=map-search],.map-search input,#map-search-button,#address-help{grid-column:1/-1}.map-search label[for=map-town]{grid-column:1/-1}.map-search #map-town{grid-column:1/-1}.planner-steps a{padding:14px 5px;gap:7px;font-size:.75rem;min-height:65px}.planner-steps span{width:25px;height:25px}.planner-steps b{font-weight:600}.map-panel-heading h2{font-size:2rem}.property-map{height:440px}.planning-budget{padding:40px 0}.budget-copy h2 br{display:none}.planner-estimate{padding:24px}.budget-layout{gap:15px}.map-panel.is-expanded{inset:0;padding:14px}.map-panel.is-expanded .property-map{height:max(270px,calc(100dvh - 330px))}}
@media(max-width:450px){.planner-intro h1{font-size:2.65rem}.planner-intro>.wrap>p:not(.eyebrow){font-size:.92rem}.planner-steps b{font-size:.68rem}.planner-steps a{align-items:center;gap:5px}.planner-steps span{width:23px;height:23px;font-size:.7rem}.planner-panel,.map-panel{padding:16px}.map-panel-heading{align-items:center;gap:9px}.map-panel-heading h2{font-size:1.8rem}.map-panel-heading>.map-secondary{font-size:.75rem;padding:10px;flex:none}.map-choices button{font-size:.79rem;flex:1;white-space:normal}.map-choices button:nth-child(2){flex:1.4}.map-choices button span{display:none}.property-map{height:385px}.map-status{font-size:.8rem}.drawing-actions>.btn{min-width:46%;font-size:.79rem;padding:12px}.drawing-actions>#map-add-point{flex:1 1 100%}.drawing-actions #map-undo{flex:1}.planner-estimate{padding:20px}.planner-estimate .estimate-result strong{font-size:2.3rem}.map-panel.is-expanded .drawing-actions #map-add-point{flex:1 1 50%}.map-panel.is-expanded .drawing-actions{flex-wrap:wrap}.map-panel.is-expanded .property-map{height:max(245px,calc(100dvh - 360px))}}
@media(prefers-reduced-motion:reduce){.planner-page{scroll-behavior:auto}}
/* Narrow-phone footer must not make the planner page scroll sideways. */
@media(max-width:360px){.site-footer .footer-grid{grid-template-columns:1fr}.site-footer .footer-grid>div{min-width:0}.site-footer .footer-grid a{overflow-wrap:anywhere}}
/* Keep the estimate itself near the top of a small screen after handoff. */
@media(max-width:800px){.budget-copy h2{font-size:2.3rem;margin:6px 0 14px}.budget-copy>p:not(.eyebrow),.budget-copy>.plain-link{display:none}.budget-copy>.eyebrow{margin:0 0 8px}.budget-layout{gap:10px}.planning-budget{padding:30px 0}.planner-estimate{padding-top:20px}}
@media(min-width:801px) and (max-width:1000px){.planner-layout{grid-template-columns:1fr}.planner-panel{display:grid;grid-template-columns:1fr 1.4fr;gap:0 24px;align-items:start}.planner-panel>.eyebrow,.planner-panel>h2,.planner-panel>label,.planner-panel>#project,.planner-panel>#project-map-hint{grid-column:1}.planner-panel>#map-search-form{grid-column:2;grid-row:1/7}.planner-panel>#map-results,.planner-panel>#map-search-status{grid-column:1/-1}.planner-sidebar-note{display:none}.planner-panel>#map-find-manually{grid-column:1;justify-self:start}.property-map{height:510px}}
.map-edit-tools{flex-wrap:wrap;align-items:center}.map-edit-tools #map-edit-point{width:auto;min-width:150px;margin:0}.map-edit-tools #map-edit-point-label{margin:0;font-size:.8rem}
.planner-page .eyebrow{color:#7b5b2f}.planner-intro .eyebrow{color:var(--planner-sand)}
