/* Public homepage: progressive enhancement, with a compact mobile header. */
:root { --home-ink:#202820; --home-muted:#586156; --home-line:#dce0d7; --home-paper:#fafbf8; --home-accent:#234d39; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body.home-public { margin:0; background:var(--home-paper); color:var(--home-ink); font-family:Arial,Helvetica,sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; }
.home-public [hidden] { display:none!important; }
.home-public :is(h1,h2,h3,h4,p,figure,dd) { margin:0; }
.home-public a { color:inherit; text-decoration:none; }
.home-public button,.home-public input { font:inherit; }
.home-public button { cursor:pointer; }
.home-public img { max-width:100%; }
.home-public :is(a,button,input,select,summary):focus-visible { outline:3px solid #8a621d; outline-offset:5px; }
.home-public .container { width:min(1180px,calc(100% - 80px)); margin-inline:auto; }
.home-public section { scroll-margin-top:92px; }
.home-skip { position:fixed; top:8px; left:16px; z-index:100; padding:12px 20px; background:#fff; transform:translateY(-150%); }
.home-skip:focus { transform:none; }
.home-header { position:sticky; top:0; z-index:50; background:#fafbf8f5; border-bottom:1px solid var(--home-line); backdrop-filter:blur(16px); }
.home-nav { display:flex; align-items:center; gap:28px; min-height:76px; }
.home-brand { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.home-brand img { width:38px; height:38px; object-fit:contain; }
.home-brand strong { font-size:20px; letter-spacing:.02em; line-height:1.2; }
.home-brand strong small { display:block; font-size:10px; font-weight:500; letter-spacing:.14em; line-height:1.3; margin-bottom:2px; }
.home-brand strong span { display:block; color:var(--home-muted); font-size:10px; font-weight:400; letter-spacing:0; margin-top:3px; }
.home-links { display:flex; align-items:center; gap:22px; margin-left:auto; }
.home-links a { font-size:13px; padding:14px 0; }
.home-links a:hover,.home-text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.home-nav-actions { display:flex; align-items:center; gap:8px; }
.home-login { font-size:13px; white-space:nowrap; padding:9px 17px; border:1px solid #bec7b8; border-radius:30px; }
.home-login:hover { background:#e9eddf; }
.home-menu-toggle { width:44px; height:44px; border:0; background:transparent; color:var(--home-ink); border-radius:8px; }
.home-menu-toggle svg { width:24px; height:24px; vertical-align:middle; }
.home-public .results { padding:80px 0 60px; background:var(--home-paper); scroll-margin-top:90px; }
.home-public .results-intro { display:block; text-align:center; }
.home-public .results-intro>div { max-width:800px; margin:auto; }
.home-public .results-kicker,.home-eyebrow { font-size:10px; font-weight:600; letter-spacing:.14em; color:var(--home-muted); }
.home-public h1 { font-size:clamp(42px,6.3vw,76px); font-weight:500; letter-spacing:-.055em; line-height:1.06; margin:22px 0; }
.home-public .results-intro p:not(.results-kicker) { font-size:17px; line-height:1.7; max-width:665px; margin:auto; color:var(--home-muted); }
.home-public .results-contact { display:inline-flex; gap:20px; align-items:center; margin-top:24px; padding:10px 0; font-size:14px; font-weight:500; }
.home-public .results-numbers { max-width:870px; margin:44px auto 36px; background:transparent; border:0; border-radius:0; gap:0; }
.home-public .results-numbers div { background:transparent; padding:8px 28px; text-align:center; border-right:1px solid var(--home-line); }
.home-public .results-numbers div:last-child { border-right:0; }
.home-public .results-numbers dt { font-size:12px; }
.home-public .results-numbers dd { font-size:46px; font-weight:500; margin:9px 0 0; color:var(--home-ink); }
.home-public .results-dashboard { border-radius:14px; box-shadow:none; border-color:var(--home-line); padding:28px; }
.home-public .results h3 { font-size:22px; font-weight:500; letter-spacing:-.025em; color:var(--home-ink); }
.home-public .results-filters button { min-height:44px; }
.home-public .results-bar { min-height:44px; }
.home-public .results-bar-fill { background:#527b50; }
.home-public .results-bar:nth-child(even) .results-bar-fill { background:#6d8264; }
.home-public .results-bar:hover .results-bar-fill,.home-public .results-bar[aria-pressed=true] .results-bar-fill { background:#234d39; }
.home-public .results-method { margin-top:16px; }
.home-public .results summary { min-height:48px; }
.hero,.home-section { padding:88px 0; }
.home-public h2 { font-size:clamp(32px,4vw,48px); font-weight:500; letter-spacing:-.045em; line-height:1.12; margin:14px 0 24px; }
.home-public h3 { font-size:21px; font-weight:500; line-height:1.3; letter-spacing:-.025em; }
.home-public p { text-wrap:pretty; }
.home-feature { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:80px; }
.home-feature p:not(.home-eyebrow) { color:var(--home-muted); max-width:490px; }
.home-feature .home-lead { margin-bottom:18px; font-size:18px; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 24px; }
.home-step-number { font-size:10px; letter-spacing:.12em; color:var(--home-muted); }
.home-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 22px; border-radius:28px; background:var(--home-ink); color:white!important; font-size:14px; margin-top:26px; transition:background .2s; }
.home-button:hover { background:var(--home-accent); }
.home-text-link { display:inline-block; padding:12px 0; font-size:14px; border-bottom:1px solid #87937d; margin-top:18px; }
.home-diagnostic { background:#e9edda; padding:48px 38px; border-radius:16px; }
.home-diagnostic h3 { font-size:29px; margin:20px 0; }
.home-diagnostic ul { margin:24px 0 0; padding:0; list-style:none; }
.home-diagnostic li { padding:12px 0; border-top:1px solid #c7ceb7; }
.home-section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:36px; }
.home-section-head h2 { margin-bottom:0; }
.home-section-head>p { max-width:360px; font-size:15px; color:var(--home-muted); }
.home-service-search { max-width:540px; margin:0 0 28px; }
.home-service-search label { font-size:12px; display:block; margin-bottom:8px; }
.home-service-search input { width:100%; min-height:48px; padding:12px 16px; background:#fff; border:1px solid #bfc6b9; border-radius:10px; color:var(--home-ink); }
#home-service-status { font-size:12px; color:var(--home-muted); margin-top:6px; }
.home-services { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.home-services article { padding:28px; border:1px solid var(--home-line); border-radius:12px; background:#fff; transition:border-color .2s,background .2s; }
.home-services article:hover { border-color:#9eae91; background:#f6f8f0; }
.home-card-number { font-size:12px; color:#727a69; display:block; margin-bottom:40px; }
.home-services h3 { margin-bottom:14px; }
.home-services p { font-size:14px; color:var(--home-muted); }
.home-empty { padding:28px 0; }.home-empty a { text-decoration:underline; }
.home-soft { background:#f0f2e9; }
.home-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; gap:28px; padding:0; margin:42px 0 0; }
.home-steps li { border-top:1px solid #bdc7b3; padding-top:16px; }
.home-steps li>span { font-size:12px; color:var(--home-muted); }
.home-steps h3 { font-size:19px; margin:26px 0 14px; }.home-steps p { color:var(--home-muted); font-size:14px; }
.home-values h2 { font-size:clamp(38px,5.7vw,68px); margin:32px 0; }.home-values h2 span { color:#667957; }
.home-values>div { max-width:680px; margin-left:auto; display:grid; grid-template-columns:1fr 1fr; gap:30px; color:var(--home-muted); font-size:15px; }
.home-gallery-layout { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }.home-gallery-layout>div>p:not(.home-eyebrow) { color:var(--home-muted); }
.home-gallery { text-align:center; }.home-gallery img { display:block; width:100%; height:520px; object-fit:contain; background:#e3e7da; border-radius:12px; }
.home-gallery figcaption { font-size:11px; color:var(--home-muted); margin-top:12px; }
.home-gallery-controls { display:flex; gap:8px; margin:30px 0 10px; }
.home-gallery-controls button { width:44px; height:44px; border:1px solid #a9b59f; border-radius:50%; background:transparent; color:var(--home-ink); font-size:12px; }
.home-gallery-controls button[aria-pressed=true] { background:var(--home-ink); color:#fff; border-color:var(--home-ink); }.home-photo-status { font-size:12px; }
.home-portals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.home-portal { display:flex; flex-direction:column; padding:30px; border-radius:12px; background:#edf0e7; border:1px solid transparent; }
.home-portal:hover { border-color:#87937d; }.home-portal h3 { font-size:25px; margin:28px 0 16px; }.home-portal p { color:var(--home-muted); font-size:14px; margin-bottom:36px; }.home-portal-cta { font-size:14px; margin-top:auto; }
.home-portal-featured { background:#dfe8ce; }
.home-faq { border-top:1px solid var(--home-line); }.home-faq-layout { display:grid; grid-template-columns:1fr 1.3fr; gap:80px; }.home-faq-layout>div>p:not(.home-eyebrow) { font-size:15px; color:var(--home-muted); }
.home-questions details { border-bottom:1px solid var(--home-line); padding:0 0 8px; }.home-questions summary { padding:20px 32px 14px 0; cursor:pointer; font-size:16px; position:relative; list-style:none; }.home-questions summary::-webkit-details-marker { display:none; }.home-questions summary::after { content:'+'; position:absolute; right:2px; top:17px; font-size:24px; font-weight:400; }.home-questions details[open] summary::after { content:'−'; }
.home-questions details p { font-size:14px; color:var(--home-muted); padding:4px 24px 20px 0; }.home-questions details a { font-size:14px; display:inline-block; padding-bottom:18px; text-decoration:underline; }
.home-invitation { padding:88px 0; text-align:center; background:#e6ebd7; }.home-invitation p:not(.home-eyebrow) { max-width:540px; margin:auto; color:var(--home-muted); }.home-invitation h2 { margin:20px 0; }
.home-footer { padding:64px 0 22px; background:#fafbf8; font-size:12px; }.home-footer-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; }.home-footer-brand { font-size:25px; font-weight:600; letter-spacing:.02em; }.home-footer p { margin:12px 0; color:var(--home-muted); }.home-footer h2 { font-size:13px; letter-spacing:0; margin:7px 0 18px; }.home-footer-grid>div>a:not(.home-footer-brand) { display:block; padding:5px 0; }.home-footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--home-line); margin-top:46px; padding-top:20px; color:var(--home-muted); }
body.home-public #home-install-slot #installAppBtn { position:static; inset:auto; z-index:auto; max-width:100%; padding:10px 14px; min-height:44px; border:1px solid #bfc6b9; border-radius:24px; background:transparent; color:var(--home-ink); box-shadow:none; font-size:12px; transform:none; margin-top:12px; }
@media(min-width:901px) { .home-menu-toggle { display:none!important; } }
@media(max-width:1100px) and (min-width:901px) { .home-public .container { width:calc(100% - 48px); }.home-nav { gap:16px; }.home-links { gap:14px; }.home-brand strong span { display:none; }.home-brand strong { font-size:18px; } }
@media(max-width:900px) {
 .home-public .container { width:calc(100% - 40px); }.home-header { position:static; }.home-ready .home-header { position:sticky; }.home-nav { min-height:68px; gap:12px; flex-wrap:wrap; }.home-brand img { width:32px; height:32px; }.home-brand strong { font-size:18px; }.home-brand strong span { display:none; }.home-nav-actions { margin-left:auto; }.home-login { padding:8px 13px; }.home-links { order:3; flex-basis:100%; margin:0; flex-wrap:wrap; padding:0 0 15px; gap:8px 22px; }.home-ready .home-links { display:none; }.home-ready.home-menu-open .home-links { display:flex; flex-direction:column; align-items:stretch; max-height:calc(100dvh - 80px); overflow-y:auto; gap:0; }.home-links a { padding:13px 4px; font-size:15px; border-bottom:1px solid var(--home-line); }
 .home-public .results { padding:52px 0 36px; }.home-public .results-intro p:not(.results-kicker) { font-size:15px; }.home-public .results-kicker { font-size:9px; }.home-public .results-contact { margin-top:16px; }.home-public h1 { margin:20px 0; }
 .hero,.home-section { padding:60px 0; }.home-feature,.home-gallery-layout,.home-faq-layout { gap:36px; }.home-feature { grid-template-columns:1fr 1fr; }.home-diagnostic { padding:30px 24px; }.home-section-head { display:block; }.home-section-head>p { margin-top:20px; max-width:520px; }.home-services { grid-template-columns:1fr 1fr; }.home-steps { grid-template-columns:1fr 1fr; gap:36px; }.home-portals { grid-template-columns:1fr; }.home-portal { padding:26px; }.home-portal h3 { margin-top:20px; }.home-portal p { margin-bottom:24px; }.home-footer-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px) {
 .home-public .results-numbers { margin:30px 0; }.home-public .results-numbers div { padding:0 10px; }.home-public .results-numbers dt { font-size:10px; min-height:48px; }.home-public .results-numbers dd { font-size:35px; }.home-public .results-numbers dd span { font-size:19px; }.home-public .results-dashboard { padding:20px 16px; border-radius:12px; }.home-public .results h3 { font-size:19px; }.home-public .results-period { font-size:10px; }.home-public .results-chart-top { gap:8px; }.home-public .results-filters { margin:20px 0; }.home-public .results-filters button { font-size:12px; }.home-public .results-detail { font-size:12px; }.home-public .results-method p { font-size:12px; }.home-public .results table { font-size:12px; }.home-public .results td,.home-public .results th { padding:10px 8px; }
 .home-feature,.home-gallery-layout,.home-faq-layout { grid-template-columns:1fr; }.home-diagnostic { padding:30px 24px; }.home-services { grid-template-columns:1fr; gap:12px; }.home-services article { padding:24px; }.home-card-number { margin-bottom:24px; }.home-steps { gap:28px 20px; }.home-steps h3 { font-size:17px; }.home-steps p { font-size:13px; }.home-values>div { display:block; }.home-values>div p+p { margin-top:18px; }.home-gallery img { height:460px; }.home-gallery-controls { margin-top:24px; }.home-invitation { padding:60px 0; }.home-footer { padding-top:46px; }.home-footer-grid { gap:28px 20px; }.home-footer-grid>div:first-child { grid-column:1/-1; }.home-footer h2 { line-height:1.5; }.home-footer-bottom { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.home-public * { animation:none!important; transition:none!important; } }
@media print { .home-header,.home-menu-toggle,.home-service-search,.home-gallery-controls,#home-install-slot { display:none!important; }.home-public .container { width:100%; }.home-section,.hero { padding:24px 0; }.home-public .results { padding:20px 0; }.home-services article,.home-portal { break-inside:avoid; } }
