/* Reading and contact controls shared by the homeowner and service pages. */
:root{font-size:18px;--serif:var(--sans)}
body.hub,body.visual-site,body.company-site{--ink:#292523;--muted:#5b534e;--line:#d6cec8;font-size:1rem;line-height:1.85}
html{scroll-padding-top:125px;scroll-padding-bottom:120px}
body h1,body h2,body h3{font-family:var(--sans);font-weight:700;letter-spacing:0}
body .wrap{width:calc(100% - 80px)}
body .eyebrow{font-size:.89rem;letter-spacing:.04em}
body .previewbar{font-size:.78rem;line-height:1.6}
body .previewbar a{display:inline-block}
body .header{position:relative;height:auto;min-height:96px;padding:16px 0}
body .header-inner,body .header .nav{flex-wrap:wrap}
body .brand-name{font-size:.89rem;max-width:230px}
body .brand-name small,body .visual-copy .eyebrow span{display:none}
body .header .nav{font-size:1rem;gap:22px}
body .header .nav a{display:flex;align-items:center;min-height:48px;font-size:1rem}
body .menu-toggle{min-width:80px;min-height:48px;width:auto;font-size:.89rem;height:auto;padding:10px}
body .button{font-size:1rem;min-height:52px;letter-spacing:0;white-space:normal}
body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #912633;outline-offset:4px}
body :is(p,li,dd,label,button,a){overflow-wrap:anywhere}
body .footer{padding-bottom:48px}
body .footer p,body .footer a{font-size:.89rem;line-height:1.9}
body .footer a{display:inline-flex;align-items:center;min-height:44px}

body.visual-site :is(.visual-lead,.special-lead,.channel-copy,.consult-invite,.needs-heading>p,.reading-content p,.reading-content li,.reading-content .preparation,.reading-content .cost-list,.situation>summary,.assurance-grid p,.photo-tip p,.consultation-preparation p,.consultation-preparation li,.field label,.message-form-intro>p,.company-contact-note){font-size:1rem;line-height:1.85}
body.visual-site :is(.visual-copy h1,.paint-copy h1,.repair-copy h1,.shop-copy h1){font-family:var(--sans);font-weight:700;font-size:clamp(1.9rem,3.2vw,2.65rem);line-height:1.5;letter-spacing:0}
body.visual-site .visual-copy h1 span{white-space:normal}
body.visual-site :is(.special-service,.concern-text,.assurance-grid h3,.field input,.field select,.field textarea,.contact-form .button){font-size:1rem;line-height:1.7}
body.visual-site .concern-text{font-size:1.11rem;font-weight:600}
body.visual-site .concern-card{min-height:108px;padding:20px;gap:16px}
body.visual-site :is(.needs-heading h2,.consultation-heading h2,.special-heading h2,.detail-heading h2){font-size:1.65rem;line-height:1.6}
body.visual-site :is(.visual-region,.special-region){gap:12px;flex-wrap:wrap}
body.visual-site :is(.visual-region p,.special-region p){font-size:1rem}
body.visual-site :is(.visual-region span,.special-region span,.visual-disclosure,.visual-area-note,.special-note,.process-note,.palette-selection,.photo-tip summary,.form-options>summary,.channel-small,.phone-hours,.consult-preview-label,.message-form-intro .form-demo-note,.form-privacy,.memo-sharing-note,.consultation-prototype-note,.reading-content .detail-note,.detail-consult,.detail-columns small,.visual-details>details>summary small,.field label small,.company-contact-note){font-size:.89rem;line-height:1.8}
body.visual-site :is(.special-text-link,.message-link,.memo-preparation-link,.visual-model-link,.related a){font-size:1rem;min-height:48px}
body.visual-site :is(.call-action strong,.official-message-links a){font-size:1.11rem;line-height:1.6}
body.visual-site .call-action small{font-size:.89rem;line-height:1.5}
body.visual-site .header-call{padding:12px 18px;min-height:64px}
body.visual-site .header-call strong{font-size:1rem}
body.visual-site .hero-call{padding:16px 24px;min-height:80px}
body.visual-site .phone-channel .channel-copy{color:#fff}
body.visual-site .phone-channel .phone-hours{color:#fff}
body.visual-site .channel-overline{font-size:.89rem;opacity:1}
body.visual-site .office-phone>span{font-size:.89rem;opacity:1}
body.visual-site .office-phone strong{font-size:1.65rem;white-space:normal}
body.visual-site .official-message-links>a{min-height:56px}
body.visual-site :is(.consultation-heading>p:last-child,.message-form-intro h3,.selected-consult-topic){font-size:1rem}
body.visual-site .selected-consult-topic strong{max-width:none}
body.visual-site .consultation-channels{grid-template-columns:1fr 1fr}
body.visual-site .consultation-channels h3{font-size:1.65rem;font-weight:700}
body.visual-site :is(.phone-channel,.message-channel){padding:30px}
body.visual-site .message-form-body{grid-template-columns:1fr 1.6fr;gap:32px}
body.visual-site .message-disclosure>summary,body.visual-site .visual-details>details>summary{font-size:1.15rem;min-height:64px}
body.visual-site .field :is(input,select,textarea){min-height:52px;font-size:1rem}
body.visual-site .field textarea{min-height:130px}
body.visual-site .photo-tip summary{min-height:48px}
body.visual-site .detail-columns h3{font-size:1.25rem}
body.visual-site .related-title{font-size:1.15rem}
body.visual-site .paint-studio :is(button,small),body.visual-site .roof-steps :is(strong,small),body.visual-site .business-picker button,body.visual-site .opening-list small{font-size:.89rem;line-height:1.7}
body.visual-site .paint-studio button,body.visual-site .business-picker button{min-height:48px}
body.visual-site .repair-visual-label span:first-child{display:none}
body.visual-site .repair-visual-label{font-size:.89rem}
body.visual-site .repair-observation,body.visual-site .craft-copy>p{font-size:1rem}
body.visual-site .phone-preview-dialog{max-width:570px}
body.visual-site .phone-preview-dialog p{font-size:.89rem;line-height:1.85}
body.visual-site .phone-preview-dialog h2{font-size:1.5rem}
body.visual-site .phone-preview-dialog .office-phone strong{font-size:1.65rem}
body.visual-site .phone-preview-dialog .dialog-close{min-width:48px;min-height:48px}

body.company-site :is(.company-page-intro>p:last-child,.company-profile dl,.office-address,.company-area p,.company-contact p,.office-visit-note,.review-page p,.review-page li){font-size:1rem;line-height:1.9}
body.company-site :is(.official-message-links>a,.office-phone>span){font-size:1rem}
body.company-site .company-profile dl>div{grid-template-columns:180px 1fr;gap:20px}
body.company-site .company-contact-note{font-size:.89rem}
body.company-site .company-profile dd{overflow-wrap:anywhere}

@media(max-width:1100px){
 body .header .nav{display:none}
 body .menu-toggle{display:block;margin-left:auto}
 body .nav[data-open=true]{display:flex;position:absolute;top:100%;left:0;width:100%;padding:20px 40px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}
 body.visual-site .concern-links{grid-template-columns:1fr}
 body.visual-site .concern-card{grid-template-columns:48px 1fr 20px;min-height:90px}
}
@media(max-width:760px){
 body .wrap{width:calc(100% - 40px)}
 body .header{position:relative;min-height:84px;padding:14px 0}
 body .brand-name{display:none}
 body .brand img{width:130px}
 html{scroll-padding-top:18px}
 body.visual-site .header-call{display:none}
 body.visual-site .visual-hero{display:flex;flex-direction:column;align-items:stretch;gap:16px}
 body.visual-site .visual-copy{padding:0}
 body.visual-site .visual-art{width:100%;margin-left:0}
 body.visual-site .visual-disclosure{padding:0}
 body.visual-site :is(.visual-copy h1,.paint-copy h1,.repair-copy h1,.shop-copy h1){font-size:1.9rem;line-height:1.55}
 body.visual-site :is(.needs-heading h2,.consultation-heading h2,.special-heading h2,.detail-heading h2){font-size:1.5rem}
 body.visual-site .visual-actions.consultation-hero{display:flex;flex-direction:column;align-items:stretch;gap:10px}
 body.visual-site .consultation-channels,body.visual-site .message-form-body{grid-template-columns:1fr}
 body.visual-site .selected-consult-topic{flex-wrap:wrap}
 body.visual-site .message-form-body{gap:24px}
 body.visual-site :is(.phone-channel,.message-channel){padding:24px 20px}
 body.visual-site .contact-form{padding:24px 18px}
 body.visual-site .assurance-grid{grid-template-columns:1fr}
 body.visual-site .detail-columns{grid-template-columns:1fr}
 body.visual-site .consultation-dock{display:grid;grid-template-columns:1.35fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:30;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fffdfb;border-top:1px solid var(--line)}
 body.visual-site .dock-call{min-height:60px;padding:10px;gap:8px}
 body.visual-site .dock-call strong{font-size:1rem}
 body.visual-site .dock-call small{display:none}
 body.visual-site .dock-call .call-arrow{display:none}
 body.visual-site .dock-message{font-size:.95rem;min-height:60px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--brand)}
 body.visual-site .footer{padding-bottom:120px}
 body.company-site .company-profile dl>div{grid-template-columns:1fr;gap:6px}
 body.company-site .office-grid{grid-template-columns:1fr}
 body.company-site .company-page-intro h1{font-size:2rem}
}
@media(max-width:360px){body .wrap{width:calc(100% - 32px)}body.visual-site .dock-call>.consult-icon{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body *,body *::before,body *::after{scroll-behavior:auto!important}}
@media print{body .header{position:static}body .home-contact-dock,body .consultation-dock{display:none!important}}
