/* Groundwell customer site – shared pieces (homepage + Garage Studio): base, accessibility helpers, consent banner, help (FAQ) widget, QA flags. */
:root{--ink:#171c1a;--muted:#485651;--green:#207e66;--green2:#145a47;--paper:#f8f8f5;--line:#e2e7e0;--r:18px;--focus:#6dba99}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font:17px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;background:var(--paper);-webkit-font-smoothing:antialiased}
button,a,input,select,textarea{font:inherit}
a{text-decoration:none;color:inherit}
img{max-width:100%}
.hidden{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:#fff;color:#14221b;padding:12px 18px;border-radius:10px;font-weight:700}
.skip:focus{top:12px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Prototype status banner (truthfulness: this build is not a live service) */
.banner{background:#101614;color:#d9e2dc;font-size:14px;line-height:1.4;padding:9px clamp(16px,4vw,40px);text-align:center;position:relative;z-index:30}
.banner b{color:#fff}

/* Privacy-choices banner (built by js/track.js) */
#consent{position:fixed;left:12px;right:12px;bottom:12px;max-width:560px;z-index:60;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:0 18px 60px #0003}
#consent p{margin:0 0 12px;font-size:15px;line-height:1.5}
#consent .btn{min-height:46px;padding:10px 18px;font-size:16px;margin:0 6px 8px 0}
#consent .btn.ghost{background:#fff;color:var(--ink);border:1.5px solid #c8d3cb}
#consent .btn.ghost:hover{background:#f2f4ef;transform:none}

/* Help widget */
#faqbtn{position:fixed;right:16px;bottom:16px;z-index:40;min-height:48px;border-radius:999px;border:0;padding:12px 22px;background:#14221b;color:#fff;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 8px 28px #0003}
#faqbtn:hover{background:#000}
#faqbox{position:fixed;right:16px;bottom:76px;width:min(380px,calc(100vw - 32px));z-index:40;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 18px 60px #0003}
#faqbox p{margin:0 0 12px;font-size:15px;line-height:1.5;color:var(--muted)}
#faqbox input{width:100%;font-size:16px;padding:12px;border:1px solid #cfd8d1;border-radius:10px;background:#fff;color:var(--ink)}
#faqbox .btn{min-height:46px;padding:10px 20px;font-size:16px}
#faqa p{color:var(--ink)}
#faqa a{color:var(--green2);font-weight:700;text-decoration:underline;text-underline-offset:3px}
@media(max-width:680px){body.has-sticky #faqbtn{bottom:92px}body.has-sticky #faqbox{bottom:152px}}

/* QA mode (?qa=1): outline copy that is PROPOSED and awaiting owner approval */
body.qa [data-copy-status=proposed]{outline:3px dashed #e0a800;outline-offset:6px;position:relative}
body.qa [data-copy-status=proposed]::before{content:'PROPOSED COPY – pending owner approval';position:absolute;top:-30px;left:0;font:700 12px/1 -apple-system,Arial,sans-serif;background:#e0a800;color:#201800;padding:5px 8px;border-radius:5px;letter-spacing:.04em;z-index:50;white-space:nowrap}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

#faqbtn.inline{position:static;display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;font-size:16px;box-shadow:none;vertical-align:middle}
body[data-stage] #faqbox{top:76px;bottom:auto}
@media(max-width:680px){#faqbox{left:12px;right:12px;width:auto}}

/* privacy banner: a compact bar that never hides page content (the page gains bottom padding while it is open) and can be dismissed */
#consent.bar{left:0;right:0;bottom:0;max-width:none;border-radius:14px 14px 0 0;padding:12px 44px 10px 16px;box-shadow:0 -6px 24px #0002}
#consent.bar p{font-size:13px;line-height:1.4;margin:0 0 8px}
#consent.bar .btn{min-height:40px;padding:6px 14px;font-size:14px;margin:0 6px 4px 0}
#consent.bar .x{position:absolute;top:4px;right:6px;width:40px;height:40px;border:0;background:none;font-size:28px;line-height:1;color:#46564b;cursor:pointer}
@media(min-width:900px){#consent.bar{left:auto;right:16px;bottom:16px;max-width:460px;border-radius:14px}}

/* Questions? launcher + compact Call/Email panel */
.qbtn{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;font-size:16px;font-weight:700;border-radius:999px;border:0;background:var(--ink,#14221b);color:#fff;cursor:pointer}
.qbtn:hover{background:#000}
.qpanel{position:fixed;top:68px;right:16px;z-index:60;width:min(560px,calc(100vw - 32px));background:#fff;border:1px solid #cfd8d1;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.2);padding:8px;display:flex;flex-direction:column;gap:4px}
.qpanel.hidden{display:none}
.qrow{display:flex;align-items:center;min-height:52px;padding:10px 14px;border-radius:10px;font-size:17px;font-weight:700;color:var(--ink,#14221b);text-decoration:none}
.qline{margin:0;padding:12px 14px;font-size:15px;font-weight:600;line-height:1.5;color:var(--ink,#14221b)}.qline a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.qline a:hover,.qline a:focus-visible{background:#eef4f0}.qrow:hover,.qrow:focus-visible{background:#eef4f0}
.qrow[hidden]{display:none}
@media(max-width:680px){.qpanel{left:12px;right:12px;width:auto}}
/* Horizontal progress bar (booking flow) */
.gwprog{display:flex;gap:8px;list-style:none;margin:0 0 18px;padding:0}
.gwprog li{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.gwprog .pbar{height:6px;border-radius:99px;background:#d5ddd8}
.gwprog .done .pbar,.gwprog .now .pbar{background:var(--green2,#1d5a3b)}
.gwprog .now .pbar{background:#14221b}
.gwprog .plab{font-size:13px;font-weight:600;color:#55615a}
.gwprog .now .plab{color:#14221b;font-weight:800}.gwprog .done .plab{color:#1d5a3b}

/* Home teaser */
.teaser{padding:48px 0;text-align:center}.teaser .container{max-width:1100px}
.teaserFig{position:relative;margin:18px auto 24px;border-radius:14px;overflow:hidden;background:#14221b;box-shadow:0 10px 30px #0002}
.teaserFig{display:block;text-decoration:none}.teaserFig img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.teaserFig:hover,.teaserFig:focus-visible{box-shadow:0 14px 38px #0003}.teaserFig:focus-visible{outline:3px solid #1f6f5b;outline-offset:3px}
.teaser{background:linear-gradient(180deg,#f4f7f4 0,#f6f8f3 45%,#fdfaf2 100%)}   /* ends on the floor-system section's cream: no hard band between the two */
.qbtn{box-shadow:0 0 0 1px #ffffff66}
/* header phone test: visible tap-to-call number, replaces the Questions? pop-up */
.hdrPhone{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:999px;border:1.5px solid currentColor;font-weight:700;font-size:16px;line-height:1;text-decoration:none;color:inherit;white-space:nowrap}
.hdrPhone[hidden]{display:none}.hdrPhone:hover,.hdrPhone:focus-visible{background:rgba(255,255,255,.14)}
@media(max-width:480px){.hdrPhone{padding:8px 11px;font-size:14px}}

/* Floor-system graphic + FAQ (Rev 22) */
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.floorsys{background:linear-gradient(180deg,#fdfaf2 0,#fdfaf2 78%,#f6efe2 100%);padding:0 0 40px}.fsWrap{max-width:1280px;margin:0 auto}.floorsys picture,.floorsys img{display:block;width:100%;height:auto}
.fsRows{max-width:820px;margin:8px auto 0;padding:0 20px}
@media(max-width:700px){.floorsys{padding-bottom:32px}.fsRows{padding:0 16px}.fsRows .faqItem summary{font-size:17px;min-height:60px}.fsRows .faqA{padding-right:8px;font-size:16px}}
.gsLink{display:inline-block;padding:13px 0;margin:-13px 0;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.gsLink:hover{color:#1f6f5b}.gsLink:focus-visible{outline:3px solid #1f6f5b;outline-offset:2px;border-radius:3px}
.faq{background:#f6efe2;padding:72px 20px 80px}.faqWrap{max-width:820px;margin:0 auto}.faq h2{margin:0 0 28px;font-size:clamp(28px,4vw,40px);line-height:1.1;letter-spacing:-.01em}
.faqList{border-top:1px solid #d9cfba}.faqItem{border-bottom:1px solid #d9cfba}
.faqItem summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:18px 4px;cursor:pointer;list-style:none;font-size:18px;font-weight:600;line-height:1.35;color:#14221b;-webkit-tap-highlight-color:transparent}
.faqItem summary::-webkit-details-marker{display:none}.faqItem summary:hover{color:#1f6f5b}.faqItem summary:focus-visible{outline:3px solid #1f6f5b;outline-offset:2px;border-radius:6px}
.faqMark{flex:none;position:relative;width:22px;height:22px}.faqMark::before,.faqMark::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:currentColor;transition:transform .2s ease}.faqMark::after{transform:rotate(90deg)}
.faqItem[open] .faqMark::after{transform:rotate(0)}
.faqA{padding:0 44px 24px 4px;font-size:17px;line-height:1.65;color:#2d3b33}.faqA p{margin:0}.faqA p+ul{margin:10px 0 0;padding-left:22px}.faqA li{margin:4px 0}
@media(max-width:700px){.faq{padding:48px 16px 56px}.faqItem summary{font-size:17px;min-height:60px}.faqA{padding-right:8px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.faqMark::before,.faqMark::after{transition:none}}

/* Rev 25: What happens after I reserve? */
.after{padding:64px 0 72px;background:linear-gradient(180deg,#f6efe2 0,#fdfaf2 22%,#fdfaf2 76%,#f6efe2 100%)}   /* picks up the floor-system section's closing tone and hands off to the FAQ tone: no hard edges */
.after .fsWrap{max-width:760px;margin:0 auto;padding:0 16px}
.after h2{margin:4px 0 20px}
.afterList{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:none}
.afterList li{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start}
.afterN{width:36px;height:36px;border-radius:50%;background:var(--green,#0f4c45);color:#fff;display:grid;place-items:center;font-weight:700}
.afterList strong{display:block;font-size:17px;margin-bottom:2px}
.afterList p{margin:0;color:#4a5560;line-height:1.5}

/* Rev 25: installer credibility (hidden until verified items exist) */
.credibility{padding:56px 0}.credibility[hidden]{display:none}
.credGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:18px}
.credItem{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.credItem img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.credItem h3{margin:14px 16px 4px}.credItem p{margin:0 16px 16px;color:var(--muted)}

/* Painting callout: continues the warm tone of the steps section into the FAQ (no hard edges) */
.paintCta{background:linear-gradient(180deg,#f6efe2 0,#f6efe2 100%);padding:8px 20px 64px}
.paintWrap{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.paintCopy h2{margin:4px 0 14px;font-size:clamp(26px,3.6vw,38px);line-height:1.12;letter-spacing:-.01em}
.paintCopy p{color:#4f5d56;font-size:1.05rem;line-height:1.55;margin:0 0 14px}
.paintAct{margin:20px 0 14px!important}.paintNote{font-size:.92rem!important;color:#66746d!important}
.paintFig{margin:0}.paintFig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:62% 45%;border-radius:22px;box-shadow:0 14px 40px #163b3226}
.paintFig figcaption{margin-top:8px;font-size:.8rem;color:#6e7b74;text-align:right}
@media(max-width:760px){.paintWrap{grid-template-columns:1fr;gap:22px}.paintFig{order:-1}.paintFig img{aspect-ratio:4/3;object-position:60% 40%}.paintCta{padding:8px 16px 48px}}
