/* Spot On: clear typography, consistent surfaces and restrained movement. */
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/inter-400.woff') format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/inter-500.woff') format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/inter-600.woff') format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/inter-700.woff') format('woff')}
:root{--card-radius:22px;--card-shadow:0 6px 12px #102c4c04,0 16px 36px #102c4c09;--card-shadow-hover:0 10px 18px #102c4c06,0 22px 44px #102c4c14;--gold:#ecd9b5}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:Montserrat,Inter,Arial,sans-serif;font-weight:600;letter-spacing:-.035em;text-wrap:balance}
h1,h2{line-height:1.15}
.home-hero-cinematic h1{font-size:clamp(44px,4.55vw,64px);font-weight:600;line-height:1.12;letter-spacing:-.045em}
.home-hero-cinematic .home-hero-description{font-size:17px;line-height:1.8;max-width:590px}
.section-desc,.service-intro{font-size:16px;line-height:1.8}
.eyebrow{font-size:12px;letter-spacing:.12em;margin-bottom:16px}
.topbar{font-size:13px}
.topbar .wrap>.topbar-tagline{font-size:13px}
.desktop-nav{gap:22px}
.desktop-nav>.navlink,.nav-services>summary{font-size:14px;font-weight:600}
.nav-service-panel-heading strong,.nav-service-grid a{font-size:14px}
.button,.nav-cta{font-size:15px;font-weight:600;min-height:50px;padding:13px 21px;border-radius:14px;box-shadow:0 5px 14px #102c4c12;transition:background .2s,box-shadow .2s,transform .2s}
.button.secondary{box-shadow:0 4px 12px #102c4c06}
.home-hero-cinematic .home-hero-actions .button{font-size:15px;min-height:54px}
.mobile-menu .navlink,.mobile-contact a{font-size:15px}
.home-hero-cinematic .home-hero-eyebrow{font-size:12px;letter-spacing:.045em;line-height:1.6;padding:9px 13px}
.home-hero-cinematic .home-hero-proof{font-size:13px;line-height:1.7;row-gap:8px}
.home-license{font-size:13px}
.contractor-registration,.home-about .contractor-registration,.home-about .home-team-credentials{font-size:14px}
.home-stage-credit{font-size:11px}
.home-hero-cinematic .home-stage-video .home-project-kicker{font-size:11px;line-height:1.6}
.home-hero-cinematic .home-stage-video strong{font-family:Montserrat,Inter,sans-serif;font-weight:600;font-size:15px;line-height:1.45}
.home-hero-cinematic .home-stage-video figcaption{padding:18px;gap:10px}
.home-hero-cinematic .home-hero-shortcuts{gap:14px;align-items:stretch;border:0;padding-top:0;margin-top:24px}
.home-hero-shortcuts>p{font-size:11px;align-self:center;line-height:1.8}
.home-hero-cinematic .home-hero-shortcuts>a{font-size:14px;line-height:1.5;min-height:64px;padding:14px 17px;border:1px solid #102c4c12;border-radius:16px;background:#fff;box-shadow:0 5px 18px #102c4c05;transition:border-color .2s,transform .2s,box-shadow .2s}
.home-services .section-heading{margin-bottom:32px}
.service-grid{gap:24px}
.service-card,.featured-card,.review-card,.project-photo,.example-panel{border-radius:var(--card-radius);border-color:#102c4c14;box-shadow:var(--card-shadow);transition:transform .25s,box-shadow .25s,border-color .25s}
.service-card-content,.home-services .service-card-content{padding:25px}
.service-card h3,.home-services .service-card h3{font-size:20px;line-height:1.4;font-weight:600;margin-bottom:12px;letter-spacing:-.025em}
.service-card p,.home-services .service-card p{font-size:16px;line-height:1.75;margin-bottom:22px}
.service-card .card-link,.home-services .service-card .card-link,.featured-copy .card-link{font-size:14px;font-weight:600;min-height:44px}
.featured-copy{padding:26px}
.featured-copy h3{font-size:21px;line-height:1.4;font-weight:600}
.featured-copy p{font-size:16px;line-height:1.75}
.featured-pair figcaption{font-size:12px;padding:4px 12px;box-shadow:0 2px 9px #102c4c0d}
.review-card{padding:30px}
.review-source,.review-context{font-size:13px}
.review-card blockquote p{font-size:21px;line-height:1.6;font-weight:500}
.review-author strong{font-size:15px}
.review-author a,.reviews-actions p{font-size:14px}
.repair-callout,.service-start,.estimate-form,dialog{border-radius:var(--card-radius)}
.estimate-form{box-shadow:0 18px 50px #06182e33;padding:32px}
.estimate-form label{font-size:14px;line-height:1.5;gap:9px;margin-bottom:19px}
.estimate-form input,.estimate-form select,.estimate-form textarea{font-size:16px;line-height:1.5;min-height:48px;border-radius:10px;padding:12px 13px}
.photo-upload{border-radius:14px}
.photo-upload>p,.disclosure{font-size:12px;line-height:1.75}
.photo-upload input{font-size:13px}
.estimate-form .button{min-height:52px}
.home-about p:not(.eyebrow),.contact-intro{font-size:16px;line-height:1.85}
.home-team-photo img{border-radius:var(--card-radius);box-shadow:0 12px 30px #06182e33}
.home-team-photo figcaption,.contact-languages{font-size:13px}
.home-contact-areas p,.home-question-list p,.home-question-list summary{font-size:15px}
.home-questions>summary{font-size:16px}
.scope-note,.example-panel li,.service-start p{font-size:15px;line-height:1.85}
.work-list li{font-size:16px}
.breadcrumb,.project-photo figcaption{font-size:13px}
.footer-main p,.footer-link,.privacy-button,.footer-main strong{font-size:14px}
.footer-bottom{font-size:12px}
.footer-main .contractor-registration{font-size:14px}
.business-hours,.free-estimate-note{font-size:14px!important}
.business-hours .timezone{font-size:12px}
.service-cover img{transition:transform .5s cubic-bezier(.2,.65,.3,1)}
@media(hover:hover) and (pointer:fine){
 .service-card:hover,.featured-card:hover,.review-card:hover,.project-photo:hover{transform:translateY(-5px);box-shadow:var(--card-shadow-hover);border-color:#174fa438}
 .service-card:hover .service-cover img{transform:scale(1.035)}
 .button:hover,.home-hero-cinematic .home-hero-shortcuts>a:hover{transform:translateY(-2px);box-shadow:0 9px 22px #102c4c1a}
}
@media(min-width:1121px){.home-services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:851px) and (max-width:1150px){.desktop-nav{gap:13px}.desktop-nav>.navlink,.nav-services>summary{font-size:13px}.nav{gap:16px}.nav-cta{font-size:13px;padding:12px 14px}.home-hero-cinematic h1{font-size:46px}}
@media(max-width:980px){.desktop-nav{display:none}.menu-button{display:block}}
@media(min-width:701px) and (max-width:850px){.home-hero-cinematic h1{font-size:38px}.home-hero-cinematic .home-hero-description{font-size:16px}.home-hero-cinematic .home-hero-actions .button{font-size:14px;gap:12px;padding:12px 16px}.home-hero-cinematic .home-hero-proof{font-size:12px}}
@media(max-width:850px){.mobile-menu .navlink{min-height:44px;display:flex;align-items:center}.home-hero-cinematic .home-hero-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}.home-hero-shortcuts>p{grid-column:1/-1}}
@media(max-width:700px){.home-hero-cinematic h1{font-size:clamp(34px,7.8vw,48px)}.home-hero-cinematic .home-hero-shortcuts{grid-template-columns:1fr;gap:10px}.home-hero-cinematic .home-hero-shortcuts>a{min-height:54px}.service-grid,.home-services .service-grid{grid-template-columns:1fr;gap:22px}.home-services .service-cover img{height:auto;aspect-ratio:16/10}.service-card-content,.home-services .service-card-content{padding:24px}.home-services .service-card h3{font-size:22px}.featured-copy{padding:24px}.review-card{padding:26px}.section-desc{font-size:16px}.home-compact>.section{padding-top:48px;padding-bottom:48px}}
@media(max-width:620px){
 .topbar .wrap>.topbar-tagline{font-size:11px}.topbar-links{gap:6px}.topbar .topbar-social,.topbar .topbar-phone{min-width:36px;width:36px;height:36px;min-height:36px}
 .home-stage-grid{padding:28px 24px;gap:28px}.home-hero-cinematic .home-hero-description{font-size:16px;line-height:1.8}.home-hero-cinematic .home-hero-eyebrow{font-size:10px;border-radius:14px;letter-spacing:.015em;max-width:100%;padding:9px 10px}
 .home-hero-cinematic .home-hero-actions .button{font-size:15px;min-height:52px;gap:12px}.home-hero-cinematic .home-hero-proof{font-size:12px;align-items:flex-start;column-gap:7px}.home-license{font-size:12px;border-left:0;margin-left:25px;padding-left:0}
 .home-stage-video{max-width:320px}.home-hero-cinematic .home-stage-video figcaption{padding:17px}.home-stage-credit{font-size:10px}
 .eyebrow{font-size:11px}.home-about h2{font-size:30px}.contact-grid h2{font-size:34px}.estimate-form{padding:24px}.estimate-form label{font-size:14px}.estimate-form .form-row{grid-template-columns:1fr;gap:0}.photo-upload input{font-size:12px}.button{font-size:15px}
 .featured-copy p,.service-card p,.home-services .service-card p{font-size:16px}.home-about p:not(.eyebrow){font-size:16px}.home-about .home-team-credentials{font-size:14px}.footer-main{gap:28px}.footer-main p,.footer-link,.privacy-button{font-size:14px}.mobile-contact a{font-size:13px;line-height:1.4}
}
@media(max-width:370px){.home-stage-grid{padding:25px 20px}.home-hero-cinematic h1{font-size:31px}.home-hero-cinematic .home-hero-eyebrow{font-size:9px}.topbar .wrap{gap:4px}.topbar .wrap>.topbar-tagline{font-size:10px}.topbar-links{gap:3px}}
@media(prefers-reduced-motion:no-preference){
 .reveal-pending{opacity:0}
 .reveal-entered{animation:spot-on-enter .55s cubic-bezier(.2,.65,.3,1) backwards}
 @keyframes spot-on-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1}html{scroll-behavior:auto}}
