/* Engine additions on top of the accepted v4 look: empty photo slots, flexible grids, list cards. */
.v4photo-empty{background:repeating-linear-gradient(135deg,rgba(0,190,239,.14) 0 18px,var(--panel) 18px 44px);min-height:320px;display:grid;place-items:center;border:1px dashed #48c8e8;border-radius:12px}
.v4photo-empty .slot-empty{text-align:center;padding:30px;max-width:360px}
.v4photo-empty .slot-empty p{margin:12px 0 0;font-size:14px;color:var(--ink)}
.v4photo-empty figcaption{background:none;color:#07374b;position:static;padding:10px 0 0}
.needs{display:inline-block;background:#c9f4ff;color:#07374b;border:1px solid #48c8e8;border-radius:6px;padding:4px 9px;font:700 11px/1 var(--font-body),Arial,sans-serif;letter-spacing:1px}
.hero-empty{background:repeating-linear-gradient(135deg,rgba(0,190,239,.18) 0 22px,var(--dark) 22px 60px)}
.pair-empty{min-height:340px;display:grid;place-items:center;border:1px dashed #48c8e8;border-radius:12px;background:repeating-linear-gradient(135deg,rgba(0,190,239,.12) 0 18px,transparent 18px 44px)}
.pair-empty .slot-empty{text-align:center;max-width:420px;padding:30px;color:var(--ink)}.v4dark .pair-empty .slot-empty{color:var(--dark-ink)}
.v4services.cols-3{grid-template-columns:repeat(3,1fr)}.v4services.cols-5{grid-template-columns:repeat(5,1fr)}.v4services.cols-6{grid-template-columns:repeat(3,1fr)}
.v4checklist article{background:var(--card);padding:30px;border-radius:12px}.v4dark .v4checklist article{background:var(--dark-panel);border:1px solid var(--dark-line)}
.v4checklist h3{font:500 22px var(--font-display),Arial,sans-serif;margin:0 0 14px}.v4checklist .package-list{margin:0;padding-left:18px}
.v4photo-row{min-height:220px}.v4photo-row img{height:220px;object-fit:cover}
.coverage-diagram .package-list{margin:0 0 10px;padding-left:18px;text-align:left}
@media(max-width:1049px){.v4services.cols-3,.v4services.cols-5{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.v4services.cols-3,.v4services.cols-5,.v4services.cols-6{grid-template-columns:1fr}}
.coverage-diagram .package-list li{color:var(--ink)}.coverage-diagram .package-list li::before{color:var(--accent-deep)}
.v4photo-row{min-height:0;align-self:start}.v4photo-row img{height:280px;width:100%;object-fit:cover}
.v4dark .vehicle button{color:var(--dark-ink);border-color:var(--dark-line)}.v4dark .vehicle button[aria-pressed=true]{background:var(--accent);color:var(--button)}
.v4checklist{grid-template-columns:repeat(4,1fr)}.v4checklist article{padding:24px}
@media(max-width:1049px){.v4checklist{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.v4checklist{grid-template-columns:1fr}}
.coverage-diagram .package-list{color:var(--ink)}.coverage-diagram .package-list li{border-top-color:var(--line)}
.v4checklist .package-list{color:var(--ink)}.v4checklist .package-list li{border-top-color:var(--line)}.v4checklist .package-list li::before{color:var(--accent-deep)}
.v4dark .v4checklist .package-list{color:var(--dark-muted)}.v4dark .v4checklist .package-list li{border-top-color:var(--dark-line)}.v4dark .v4checklist .package-list li::before{color:var(--accent)}
.v4lawcards.cols-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1049px){.v4lawcards.cols-4,.v4checklist{grid-template-columns:1fr 1fr}}@media(max-width:640px){.v4lawcards.cols-4,.v4checklist{grid-template-columns:1fr}}

/* P0: review dock + badge must never cover CTAs or form fields */
body.light{padding-bottom:140px}
.draftdock>div{display:none}.draftdock .dock-main{display:inline-flex}
.v4hero{padding-bottom:70px}
@media(max-width:640px){.draftdock{bottom:10px;padding:6px 8px;gap:6px}.draftdock .btn{min-height:40px;font-size:11px;padding:8px 11px}}
@media(min-width:1050px){.v4contact>div:last-child{padding-right:120px}}
.sis-marketing-badge{bottom:calc(92px + env(safe-area-inset-bottom))}
@media(max-width:640px){.sis-marketing-badge{bottom:calc(70px + env(safe-area-inset-bottom));width:60px;min-height:40px}}
/* P1: contrast + targets + 768 grid + hover spec */
.sample-review-label{color:#59d8fa}.v4caption{color:#5c635e}
.ghl-consent input[type=checkbox]{width:24px;height:24px;min-width:24px}
.v4footer a,.v4textlink,.footergrid a{padding-block:6px;display:inline-block}
@media(max-width:1049px){.v4packages{grid-template-columns:1fr 1fr}.v4packages .pricecard h3{min-height:2.4em}}
@media(max-width:640px){.v4packages{grid-template-columns:1fr}}
.btn:hover{transform:scale(1.04)}@media(prefers-reduced-motion:reduce){.btn:hover{transform:none}}
#locked-dialog{max-width:520px;padding:32px;border:0;border-radius:14px;background:#17252e;color:#eafaff}#locked-dialog h2{font:600 24px/1.25 var(--font-display),Arial,sans-serif;margin:8px 0 14px}#locked-dialog .btn{margin:6px 8px 0 0}#locked-dialog .close-dialog{position:absolute;right:12px;top:10px;background:none;border:0;color:#eafaff;font-size:26px}

/* intake: answered items sink to the bottom and dim, so the list is always what's still needed */
#info-pane,#photos-pane{display:flex;flex-direction:column}.info-field.answered{order:2;opacity:.62}.info-field.answered label::after,.info-field.answered h3::after{content:' ✓ saved';color:#0b6144;font-size:12px;font-weight:700}
#filelist p button{margin-left:8px;font-size:11px;padding:4px 8px;border-radius:6px;border:1px solid #48c8e8;background:#c9f4ff;color:#07374b}
.draftdock{transition:transform .25s,opacity .25s}.draftdock.dock-hidden{transform:translate(-50%,160%);opacity:0;pointer-events:none;visibility:hidden}
.hero-bottom a{padding:6px 0;margin-right:96px}.v4packages .price{color:#fff!important;background:#0b7c8c!important}@media(prefers-reduced-motion:reduce){.draftdock{transition:none}}

/* FAQ question headings + timeline + case study */
.v4faq summary h3{display:inline;font:inherit;margin:0}
.timeline{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:18px}.timeline li{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;padding:22px 0;border-top:1px solid var(--line)}.v4dark .timeline li{border-top-color:var(--dark-line)}
.tl-num{font:700 32px var(--font-display),sans-serif;color:var(--accent-deep)}.v4dark .tl-num{color:var(--accent)}.timeline h3{margin:0 0 6px;font-size:22px}.timeline p{margin:0;max-width:640px}
.proposed{display:inline-block;margin-top:8px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#07374b;background:#c9f4ff;border:1px solid #48c8e8;border-radius:6px;padding:3px 8px}
.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}@media(max-width:640px){.case-pair{grid-template-columns:1fr}}
.case-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-top:24px}.case-facts div{padding:14px;border:1px solid var(--line);border-radius:var(--radius)}.case-facts b{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.case-empty{margin-top:30px}
h1,h2,h3{hyphens:none;overflow-wrap:normal}
.v4photo-row+.coverage-diagram{margin-top:14px}
.v4number{color:var(--accent-deep)}.v4dark .v4number{color:var(--accent)}
@media(max-width:1049px){.customer-header .menu{display:block;margin-left:auto}.customer-header nav{display:none!important}.customer-header nav.open{display:flex!important;flex-direction:column;gap:18px;align-items:flex-start;width:100%;padding:12px 0}.customer-header .header-actions{width:100%;display:flex;margin:0;gap:12px}.header-actions .btn{flex:1}}
.v4contact{padding-bottom:120px}
.proposed{text-transform:none;letter-spacing:0;font-size:12px}

/* market-study additions: start-here paths, inline quote, price grid, sticky mobile bar, trust order */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.path{display:block;padding:24px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;background:var(--panel);color:var(--ink);transition:transform .2s}.path:hover{transform:translateY(-2px)}.path h3{margin:8px 0 6px;font-size:20px}.path p{margin:0 0 12px;font-size:14px}.path b{font-size:12px;color:var(--accent-deep)}
@media(max-width:1049px){.paths{grid-template-columns:1fr}}
.inline-quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}@media(max-width:1049px){.inline-quote-grid{grid-template-columns:1fr;gap:28px}}
.inline-quote-form .quote-form.compact{padding:22px}.quote-form.compact select{width:100%;min-height:44px;border:1px solid #D6D6D6;border-radius:4px;padding:10px;font:inherit;margin:4px 0 14px;background:#fff}
.form-license{font-size:12px;color:#555;margin:10px 0 0}
.price-grid-wrap{overflow-x:auto;margin-top:30px}.price-grid{width:100%;border-collapse:collapse;font-size:15px}.price-grid th,.price-grid td{padding:14px 12px;border-top:1px solid var(--line);text-align:left}.v4dark .price-grid th,.v4dark .price-grid td{border-top-color:var(--dark-line)}.price-grid thead th{border-top:0;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.v4dark .price-grid thead th{color:var(--dark-muted)}.price-grid th small{display:block;font-weight:400;font-size:12px;color:var(--muted)}.price-need{display:inline-block;background:#00c7df22;color:inherit;border-bottom:2px dashed #00bcd4;padding:2px 6px;font-weight:700}
.sticky-bar{display:none}
@media(max-width:640px){.sticky-bar{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:11;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--dark);border-top:1px solid var(--dark-line)}.sticky-bar .btn{flex:1;min-height:46px;font-size:13px;background:transparent;color:var(--dark-ink);border:1px solid var(--dark-muted)}.sticky-bar .btn.primary{background:var(--accent);color:var(--button);border-color:var(--accent)}
 body.light{padding-bottom:170px}.draftdock{bottom:76px!important}.sis-marketing-badge{bottom:calc(140px + env(safe-area-inset-bottom))!important}.sticky-bar.hidden{transform:translateY(120%)}}

/* fix pass 2026-09-22: trust strip spacing on every theme, light-section lists, themed form button, price-grid chips, dock vs CTA band */
.trust-strip{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);font-size:13px}
.trust-strip>span{display:inline-flex;align-items:center;gap:8px}.trust-strip b{font-family:var(--font-display),sans-serif;letter-spacing:.5px;font-size:14px}
.trust-strip .needs{margin-left:0}
.inline-quote .package-list,.v4section:not(.v4dark) .package-list{color:var(--ink);font-size:15px}
.inline-quote .package-list li,.v4section:not(.v4dark) .package-list li{border-top-color:var(--line)}
.inline-quote .package-list li::before,.v4section:not(.v4dark) .package-list li::before{color:var(--accent-deep)}
.v4dark .v4checklist .package-list,.v4dark .package-list{color:var(--dark-muted)}
.v4dark .v4heading p:not(.eyebrow),.v4dark .v4lead{color:var(--dark-muted)}
.ghl-plain-mock button[type=submit],.quote-form button[type=submit]{background:var(--accent-deep);color:#fff;font:700 16px var(--font-display),Arial,sans-serif;border-radius:var(--radius);letter-spacing:.3px}
.ghl-plain-mock button[type=submit]:hover{filter:brightness(1.08)}
.ghl-plain-mock label,.ghl-plain-mock input,.ghl-plain-mock textarea,.ghl-plain-mock select,.ghl-consent span,.ghl-mock-note,.ghl-policy-placeholder{font-family:var(--font-body),Arial,sans-serif}
.price-grid td .needs{margin-left:8px;vertical-align:middle}.price-grid td[colspan]{text-align:center}
.v4service b{color:var(--accent-deep);font-size:16px}
section[id],div[id]{scroll-margin-top:24px}
.v4cta{scroll-margin-top:24px}
@media(max-width:640px){.v4cta{padding:36px 24px;flex-direction:column;align-items:flex-start}.v4cta .btn{white-space:normal;width:100%}.dock-over-cta .draftdock{transform:translate(-50%,160%);opacity:0;pointer-events:none;visibility:hidden}}

/* rulings 2026-09-22: contact form first on phone; no chip walls in customer view */
@media(max-width:640px){.v4contact{display:flex;flex-direction:column}.v4contact-aside{order:2}.v4contact-aside .v4photo{display:none}}
.ghl-consent label{display:flex;gap:10px;align-items:flex-start;margin:8px 0}.ghl-consent span{font-size:13px;line-height:1.5}
.ghl-policy-placeholder a{color:inherit;text-decoration:underline}
.info-group{font:800 22px/1.2 var(--font-body);margin:34px 0 4px}.info-group+.micro{margin:0 0 10px;color:#53656f;font-size:13px}

/* Contrast: secondary text inside dark bands uses the dark-band muted colour. */
.v4dark .price-grid th small{color:var(--dark-muted)}

/* brand.logo: image brand mark in header/footer (brand_word stays the text fallback + favicon source). */
.brand-logo{display:inline-flex;align-items:center;line-height:0}
.brand-logo picture{display:block;line-height:0}
.brand-logo img{display:block;height:var(--logo-h,44px);width:auto;max-width:min(46vw,360px);object-fit:contain;object-position:left center}
.brand-logo.logo-chip{padding:7px 12px;border-radius:calc(var(--radius,12px) * .6)}
.brand-logo.logo-chip-dark{background:var(--dark)}.brand-logo.logo-chip-light{background:var(--bg)}
.brand-logo-footer{margin-bottom:18px}
@media(max-width:760px){.brand-logo img{height:var(--logo-h-m,34px);max-width:58vw}}
@media(max-width:760px){.v4hero .hero-image[style*="--hero-pos-m"]{object-position:var(--hero-pos-m)!important}}
/* business.sms: Call + Text + Get a quote share the phone action bar; phone/text links read as links. */
.sticky-bar.sticky-3 .btn{padding-inline:6px;flex:1}.sticky-bar.sticky-3 .btn.primary{flex:1.45}
.v4contact-note a,.v4footer p a{text-decoration:underline;text-underline-offset:3px}
