/* WCAG-oriented essentials are shared by the customer shell and dynamic forms. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
html{scroll-padding-bottom:max(100px,var(--cookie-clearance,0px))}
:where(a,button,input,select,textarea,summary,[tabindex]){scroll-margin-block:115px max(110px,var(--cookie-clearance,0px))}
body{overflow-wrap:break-word;padding-bottom:var(--cookie-clearance,0px)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #075fca!important;outline-offset:4px!important;box-shadow:0 0 0 2px #fff!important}
.skip:focus{position:fixed;top:8px;left:8px;z-index:10000;clip-path:none;transform:none;background:#fff;color:#111;padding:14px 22px;border:2px solid #075fca}
:where(button,summary,.button,.language,.menu-toggle){min-height:44px}
:where(.field input,.field select,.field textarea){font-size:16px;min-height:48px}
:where(.field,.check-line,.help,.compact-error){line-height:1.6}
.field{min-width:0}
.field input,.field select,.field textarea{max-width:100%;min-width:0}
.field input::placeholder,.field textarea::placeholder{color:#62666d;opacity:1}
.compact-error{color:#a02020}
.help{color:#575c64}
.topbar a,.help a,.check-line a,.chat-footnote a{ text-decoration:underline;text-underline-offset:3px }
.chat-head small,.chat-thinking,.chat-footnote{color:#575c64}
/* Review text must retain contrast at the darkest stops of its pale gradients. */
.customer-reviews .customer-review figcaption{color:#606771}
.customer-reviews .customer-review figcaption time{color:#576476}
.customer-reviews .customer-review-source,.customer-reviews .customer-review-followup>p>span{color:#556174}
.customer-reviews .customer-review-stars{color:#8f5b00}
body .commercial-page .commercial-kicker,body .commercial-page .commercial-phone,body .commercial-page .commercial-system-number,body .commercial-page .commercial-system-note,body .commercial-hero figcaption{color:#555e69}
body .commercial-page .commercial-system-card .commercial-system-number{color:#555e69}
body .book-archive-heading>p,body #gallery-count,body .portfolio-source-note,body .company-brand-story-copy>.customer-eyebrow,body #peaked-team-promise figcaption>span{color:#505b66}
#main #gallery-count,#main .portfolio-source-note{color:#505b66}
#main .work-archive .gallery-card figcaption>span{color:#505b66;font-size:.75rem}
#main .work-archive .gallery-card p{color:#505b66;font-size:.875rem}
.reveal:focus-within{opacity:1!important;transform:none!important;transition:none!important}
body .work-storybook .book-folio{color:#818994}
footer a,footer button.plain{min-height:44px;display:inline-flex;align-items:center;padding-top:8px;padding-bottom:8px}
.check-line input{min-width:22px;min-height:22px;accent-color:#25272b}
.mobile-nav a{min-height:48px;display:flex;align-items:center}
.studio-upload-row:has(#studio-file:focus-visible) label[for=studio-file]{outline:3px solid #075fca;outline-offset:4px}
#studio-file:focus-visible+*{outline:none}
#roof-canvas,#studio-material-canvas{scroll-margin-block:115px 110px}
.property-map-pan-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}
.property-map-pan-controls>span{font-size:.875rem;font-weight:600;margin-right:4px}
.property-map-pan-controls button{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #79828d;border-radius:8px;background:#fff;color:#25272b}
#chat-panel{top:auto;left:auto;margin:0;padding:0}
#chat-panel::backdrop{background:#10182050}
.peaked-chat-open{overflow:hidden}
#chat-panel.chat-compact .chat-suggestions,#chat-panel.chat-compact .chat-head small{display:none}
#chat-panel.chat-compact .chat-head{padding:8px 12px}
#chat-panel.chat-compact .chat-messages{min-height:35px;padding-top:8px}
#chat-panel.chat-compact .chat-form{padding-top:8px}
#chat-panel.chat-compact .chat-footnote{padding-block:5px}
dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto}
dialog .dialog-top button{min-width:44px;min-height:44px}
dialog::backdrop{background:#10182070}
.submission-success:focus{outline-offset:8px}
.accessibility-help{max-width:1050px}
.accessibility-help h2{font-family:var(--body,Arial,sans-serif);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.25}
.accessibility-help p,.accessibility-help li{line-height:1.75;max-width:800px}
.accessibility-help li+li{margin-top:12px}
.accessibility-contact-links{display:flex;flex-wrap:wrap;gap:12px 28px}
.accessibility-contact-links a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
@media(max-width:650px),(max-height:600px){
 #cookie-banner{position:static;inset:auto;max-width:none;width:auto;margin:14px max(12px,4.5%);box-shadow:none}
}
@media(max-width:850px){
 #chat-panel{left:10px;right:10px}
 footer{grid-template-columns:repeat(2,minmax(0,1fr))}
 footer>div,footer>section,.footer-extra{min-width:0}
 footer a{max-width:100%;min-width:0;overflow-wrap:anywhere;white-space:normal}
 .field input,.field select,.field textarea{font-size:16px!important}
 .form-actions{flex-wrap:wrap;gap:16px}
 .form-actions>*{max-width:100%}
 .form-grid>*{min-width:0}
 .header-actions .button{white-space:normal}
}
@media(max-width:420px){.form-grid{grid-template-columns:minmax(0,1fr)!important}.topbar{overflow-wrap:anywhere}.footer-bottom{flex-wrap:wrap}.header{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}}
@media(forced-colors:active){.button,.estimate-choice,.quote-package{border:1px solid ButtonText!important}.estimate-choice:has(input:checked){outline:3px solid Highlight}.estimate-choice input{appearance:auto}}
