/* Shared type scale for readable copy, clear actions, and comfortable forms. */
:root{--text-body:18px;--text-support:16px;--text-small:14px;--text-label:12px;--text-action:16px}
body{font-size:var(--text-body)}

/* Navigation stays compact while labels and targets become easier to use. */
.site-header .desktop-nav,.spanish .site-header .desktop-nav{font-size:16px;gap:24px}
.nav-estimate{font-size:16px;min-height:48px;padding:12px 18px;gap:14px}
.language-option{font-size:12px;min-width:34px;height:40px;opacity:.8}
.language-option[aria-current]{opacity:1}
.nav-phone,.site-header .menu-toggle{width:44px;height:44px}
.menu-kicker{font-size:12px;letter-spacing:.12em}
.menu-number{font-size:13px}
.menu-location{font-size:14px;line-height:1.6}
.mobile-menu>a.mobile-menu-estimate{font-size:16px;min-height:54px}

/* Main copy uses the same comfortable size across home and detail pages. */
.hero-description,.service-panel-copy p,.service-index p,.why-copy>p:not(.eyebrow),
.why-items p,.steps-grid p,.area-grid>div>p:not(.eyebrow),.contact-copy>p:not(.eyebrow),
.intro-description,.service-hero>div>p:not(.breadcrumb,.eyebrow),.detail-intro>p:last-child,
.detail-points p,.about-story p,.legacy-services p,.prose p,
.brand-story-copy>p:not(.eyebrow),.home-contact p:not(.eyebrow),.thank-you>p:not(.eyebrow){font-size:var(--text-body);line-height:1.75}
.section-heading>p,.section-heading>div:last-child:not(:first-child),
.home-page .projects .section-heading>div:last-child>p{font-size:var(--text-body);line-height:1.7}
.brand-story-copy>p:not(.eyebrow),.why-copy>p:not(.eyebrow),.contact-copy>p:not(.eyebrow),
.area-grid>div>p:not(.eyebrow),.steps-grid p{max-width:52ch}
.film-tagline{font-size:20px;line-height:1.65;max-width:52ch}
.brand-values>span{font-size:17px;line-height:1.6}
.brand-values .icon{width:19px;height:19px}
.review-grid blockquote,.home-page .reviews .review-grid blockquote{font-size:18px;line-height:1.8}
.review-grid strong{font-size:16px;line-height:1.5}
.review-grid small{font-size:14px;line-height:1.5}
.review-avatar{font-size:15px;width:42px;height:42px}
.stars{font-size:17px}
.faq-items summary{font-size:18px;line-height:1.5;padding-block:25px}
.faq-items details p{font-size:18px;line-height:1.75}
.county-list article p{font-size:17px;line-height:2}
.county-list .nearby{font-size:14px!important;line-height:1.7!important}
.area-pin,.area-pin small{font-size:16px;line-height:1.6}
.related a{font-size:17px;line-height:1.5;gap:20px}
.best-for,.about-story .guarantee{font-size:16px;line-height:1.7}
.best-for span{font-size:13px;line-height:1.5}
.why-items h3{font-size:22px;line-height:1.25}

/* Supporting information is readable without competing with the headings. */
.eyebrow,.hero .eyebrow,.faq .eyebrow,.service-hero .eyebrow,
.film-content .eyebrow,.brand-story-copy>.eyebrow,.brand-story-copy .eyebrow,
.visual-services .eyebrow,.home-contact .eyebrow{font-size:var(--text-label);line-height:1.6;letter-spacing:.12em}
.film-content .eyebrow{font-size:13px}
.hero-note,.spanish .hero-note,.hero-badge,.hero-badge strong,.visual-note,
.service-help,.service-track-note{font-size:var(--text-support);line-height:1.6}
.service-tab .tab-number,.why-items article>span,.detail-points article>span{font-size:14px;color:var(--muted)}
.service-photo>span,.service-count,.county-list header>span{font-size:12px;letter-spacing:.1em}
.project-tile figcaption{font-size:16px;line-height:1.5;gap:16px}
.project-tile small{font-size:13px;color:var(--muted)}
.video-caption,.lightbox p{font-size:15px;line-height:1.6}
.film-scroll,.film-location{font-size:12px;line-height:1.5;letter-spacing:.1em}
.film-scroll{gap:10px}
.breadcrumb{font-size:14px;line-height:1.6;gap:10px}
.included-brand{font-size:16px}
.included-brand strong{font-size:22px}
.included-offers>p,.spanish .included-offers>p{font-size:18px;line-height:1.4}
.included-note,.offers-intro span,.offers:after{font-size:14px;line-height:1.6}
.offers-intro{font-size:13px;line-height:1.5;letter-spacing:.08em;max-width:none}
.offer h2,.spanish .offer h2{font-size:20px;line-height:1.3}
.offer p{font-size:16px;line-height:1.6;max-width:none}
.offer-check{width:28px;height:28px}
.offer-check .icon{width:16px;height:16px}
.collage-caption{font-size:12px;line-height:1.5;letter-spacing:.08em}
.anytime-seal span{font-size:11px;letter-spacing:.1em}

/* A lighter, consistent button style with comfortable touch targets. */
.button,.nav-estimate,.mobile-menu>a.mobile-menu-estimate{font-family:inherit;font-weight:500;letter-spacing:0;border-radius:999px;text-transform:none;justify-content:center;box-shadow:none;transition:background .2s,color .2s}
.button.primary,.nav-estimate,.mobile-menu>a.mobile-menu-estimate{background:var(--navy);color:white}
.button.primary:hover,.nav-estimate:hover,.mobile-menu>a.mobile-menu-estimate:hover{background:#214773;transform:none}
.film-actions .button.primary,.home-contact-actions .button.primary{background:#fff;color:var(--navy)}
.film-actions .button.primary:hover,.home-contact-actions .button.primary:hover{background:#e9f3dd}
.button>.icon,.nav-estimate>.icon,.mobile-menu>a.mobile-menu-estimate>.icon{width:18px;height:18px;stroke-width:1.5;flex:none}
.text-link,.film-call,.gallery-filters button,.brand-values>span{font-weight:500}
.included-offers>p,.included-brand strong,.service-tab>span:nth-child(2){font-weight:600}
.film-content h1{letter-spacing:-.05em}
.mobile-call{display:none}

.button,.hero-buttons .button,.spanish .hero-buttons .button,.film-actions .button,
.home-contact-actions .button,.service-hero .button,.form-actions .button{font-size:var(--text-action);min-height:54px;padding:15px 24px;line-height:1.4;gap:16px}
.text-link,.hero-buttons .text-link,.service-panel-copy .text-link,.why-copy .text-link,
.area-grid .text-link,.brand-story-copy>.text-link,.visual-services .service-navigation>.text-link,
.home-contact-actions>.text-link,.thank-you>div>.text-link{font-size:16px;line-height:1.5;min-height:44px}
.film-call{font-size:20px;min-height:52px;gap:12px}
.film-call .icon{width:20px;height:20px}
.gallery-filters button{font-size:16px;min-height:46px;padding:12px 20px;line-height:1.4}
.carousel-controls button{width:46px;height:46px}
.visual-service-title>span{width:44px;height:44px}

/* Forms favor legible labels and full-size text entry. */
.estimate-form h2{font-size:28px;line-height:1.25}
.estimate-form>p{font-size:16px;line-height:1.6}
.estimate-form label{font-size:15px;line-height:1.5;margin-bottom:20px}
.estimate-form input,.estimate-form select,.estimate-form textarea{font-size:16px;line-height:1.5;min-height:52px;padding:13px 14px;margin-top:8px}
.estimate-form input::placeholder,.estimate-form textarea::placeholder{font-size:16px;color:#697580}
.estimate-form textarea{min-height:128px}
.estimate-form .form-note,.estimate-form .form-status{font-size:14px;line-height:1.7}
.email-button{font-size:16px;min-height:48px}
.contact-direct>span{font-size:16px}
.contact-direct .contact-email{font-size:16px;line-height:1.6}
.contact-direct>p{font-size:15px;line-height:1.6}

/* Footer and privacy text remain useful at normal reading distance. */
.footer-grid h3{font-size:16px;line-height:1.5}
.footer-grid>div>a:not(.footer-logo){font-size:15px;line-height:1.65;margin-bottom:13px}
.footer-grid p,.footer-grid>div:first-child p,.footer-grid>div:last-child p{font-size:15px;line-height:1.7}
.footer-bilingual{font-size:14px}
.footer-bottom{font-size:13px;line-height:1.7}
.footer-brandline,.spanish .footer-brandline{font-size:13px;line-height:1.6;letter-spacing:.12em}

@media(max-width:1200px){
 .site-header{gap:20px}
 .site-header .desktop-nav,.spanish .site-header .desktop-nav{font-size:16px;gap:20px}
 .site-header .header-actions{gap:10px}
 .nav-estimate{padding-inline:16px}
 .nav-phone{display:none}
 .included-inner{grid-template-columns:1fr;row-gap:12px}
 .included-brand{display:none}
 .included-offers{justify-content:space-between}
 .brand-story-grid{gap:55px}
}
@media(max-width:960px){
 .brand-story-grid{gap:36px}
 .service-explorer{gap:36px}
 .film-location{font-size:11px;letter-spacing:.06em}
 .included-offers>p,.spanish .included-offers>p{font-size:17px}
}
@media(max-width:680px){
 :root{--text-body:17px}
 body{padding-bottom:0}
 .site-header{gap:10px}
 .site-header .header-actions{gap:8px}
 .language-option{font-size:12px;min-width:32px;height:40px}
 .site-header .menu-toggle{width:44px;height:44px}
 .film-content .eyebrow{font-size:12px;letter-spacing:.09em}
 .film-tagline{font-size:18px;max-width:34ch}
 .film-actions{flex-direction:column;align-items:flex-start;gap:12px;max-width:420px}
 .film-actions .button{justify-content:center}
 .film-call{justify-content:flex-start;font-size:18px;min-height:44px}
 .film-scroll{font-size:11px;letter-spacing:.06em}
 .film-bottom{gap:12px}
 .included-offers{flex-direction:column;gap:15px}
 .included-offers>p,.spanish .included-offers>p{flex-direction:row;align-items:center;font-size:18px;max-width:none;gap:12px}
 .included-offers .icon{width:20px;height:20px}
 .included-note{font-size:14px;max-width:44ch}
 .visual-services .section-heading{gap:12px;align-items:flex-start;flex-wrap:wrap}
 .visual-services .service-navigation{margin-left:auto;align-self:flex-end}
 .carousel-controls button{width:44px;height:44px}
 .service-track-note{font-size:15px;max-width:none}
 .brand-story-grid{gap:34px}
 .brand-story-copy>p:not(.eyebrow){max-width:none}
 .anytime-seal span{font-size:10px}
 .collage-caption{font-size:11px;letter-spacing:.05em}
 .project-tile figcaption{font-size:15px;gap:8px}
 .review-grid blockquote,.home-page .reviews .review-grid blockquote{font-size:17px}
 .faq-items summary,.faq-items details p{font-size:17px}
 .home-contact p:not(.eyebrow){max-width:38ch}
 .home-contact-actions{align-items:flex-start;flex-direction:column;gap:14px}
 .home-contact-actions .button{justify-content:center}
 .home-contact-actions>.text-link{align-self:flex-start;font-size:18px}
 .mobile-call{position:fixed;right:14px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--green);color:var(--navy);border:1px solid #52763533;box-shadow:0 3px 12px #09254420;transition:background .2s}
 .mobile-call .icon{width:21px;height:21px;stroke-width:1.6}
 .mobile-call:hover{background:#a4dc65}
 body:has(.mobile-menu:not([hidden])) .mobile-call{visibility:hidden}
 .footer-grid>div:first-child{column-gap:20px}
 .footer-grid>div>a:not(.footer-logo),.footer-grid p,.footer-grid>div:first-child p,.footer-grid>div:last-child p{font-size:15px}
 .footer-bottom>span{max-width:70%}
 .thank-you>div>.text-link{font-size:16px}
}
@media(max-width:480px){
 .form-grid{grid-template-columns:1fr}
 .estimate-form{padding:26px 20px}
 .footer-grid>div:first-child{grid-template-columns:110px 1fr}
 .footer-logo img{width:110px}
}
