.heading-break{display:block}

@media(max-width:900px){
  body{font-size:16px;line-height:1.65}
  h1,h2{font-family:var(--sans);font-weight:600;letter-spacing:-.045em;line-height:1.12;text-wrap:balance}
  h1 .heading-break,h2 .heading-break,h3 .heading-break{display:inline}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-copy{padding:48px 32px 42px;max-width:760px}
  .hero h1{font-size:clamp(42px,6.2vw,60px);max-width:650px;margin-bottom:24px}
  .hero h1 em{font-style:normal;font-weight:600}
  .hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.65;max-width:560px;margin-bottom:28px}
  .hero-photo{height:430px;min-height:0}
  .hero-photo>img{object-position:50% 64%}
  .hero .actions{gap:24px}
  .hero .call{font-size:15px}
  .section-head{align-items:flex-start}
  .section-head h2,h2{font-size:clamp(32px,4.6vw,44px)}
  .section-intro,.story-copy>p:not(.eyebrow),.area-section p:not(.eyebrow),.service-detail p:not(.eyebrow),.page-hero p:not(.eyebrow),.contact-block p:not(.eyebrow){font-size:16px;line-height:1.7}
  .service-card p,.service-mini p,.value p,.step p,.faq p{font-size:15px;line-height:1.65}
  .page-hero h1{font-size:clamp(36px,5.5vw,54px);line-height:1.12}
  .page-hero h1,.page-hero p:not(.eyebrow){max-width:700px}
  .service-detail{grid-template-columns:1fr;gap:36px}
  .detail-photo img{height:440px}
  .service-detail h2,.faq-layout h2{font-size:36px}
  .story{grid-template-columns:1fr 1.1fr;gap:36px}
  .value h3{font-size:16px}
  .review blockquote{font-family:var(--sans);font-size:22px;font-weight:500;line-height:1.5;letter-spacing:-.025em}
  .reviewer strong{font-size:14px}
  .reviewer small{font-size:12px}
  .contact-layout{gap:36px}
  input,select,textarea{font-size:16px;line-height:1.5;min-height:50px}
  .field span{font-size:14px;line-height:1.5;margin-bottom:8px}
  .quote-form>p{font-size:15px}
  .quote-form .form-note{font-size:13px!important;line-height:1.65}
  .btn{font-size:14px;min-height:50px}
  .text-link{font-size:14px;min-height:44px;align-items:center}
  .tile-caption{display:flex;flex-direction:column;align-items:flex-start;gap:5px;font-size:15px;line-height:1.4}
  .tile-caption small{font-size:11px;line-height:1.5;letter-spacing:.08em}
  .filter{font-size:14px;min-height:44px;padding:10px 17px}
  .cta h2{font-size:42px;line-height:1.15}
  .cta p:not(.eyebrow){font-size:15px;line-height:1.65}
  .more-links a{font-size:15px;min-height:54px}
}

@media(max-width:640px){
  html{scroll-padding-top:84px}
  .wrap{width:calc(100% - 40px)}
  .topbar{font-size:10px;line-height:1.5;letter-spacing:.08em;padding:7px 0}
  .header-inner{height:72px;justify-content:space-between;gap:16px}
  .header-inner>.btn{display:none}
  .brand-sub{font-size:8px;letter-spacing:.065em;line-height:1.25;margin-top:5px}
  .menu-toggle{width:auto;min-width:76px;height:46px;gap:8px;padding:10px 0 10px 10px;margin-left:auto}
  .menu-toggle:before{content:'Menu';font-size:14px;font-weight:500}
  .menu-toggle svg{width:20px;height:20px}
  .mobile-nav.open{padding:4px 20px 20px}
  .mobile-nav a{font-size:16px;line-height:1.4;min-height:51px;padding:15px 0}
  .hero-copy{padding:32px 24px;max-width:100%}
  .eyebrow,.hero .eyebrow{font-size:11px;line-height:1.5;letter-spacing:.095em;gap:9px;margin-bottom:18px}
  .hero .eyebrow{max-width:100%}
  .eyebrow:before{width:18px;flex-shrink:0}
  .hero h1{font-size:clamp(37px,10.5vw,46px);line-height:1.12;letter-spacing:-.045em;max-width:350px;margin:0 0 20px;text-wrap:balance}
  .hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.65;max-width:100%;margin-bottom:25px}
  .hero .actions{display:flex;flex-direction:column;align-items:stretch;gap:9px;width:100%}
  .hero .btn{width:100%;font-size:15px;min-height:52px;justify-content:space-between;padding:15px 18px}
  .hero .call{border-bottom:0;text-align:center;font-size:14px;line-height:1.5;min-height:40px;padding:10px 4px}
  .hero-photo{height:260px;min-height:0}
  .hero-photo>img{object-position:center 68%}
  .photo-tag{bottom:18px;left:20px;right:20px;padding:12px 14px;gap:12px;font-size:12px;line-height:1.5}
  .photo-tag strong{font-size:13px;line-height:1.5}
  .photo-tag svg{width:24px;height:24px}
  .photo-index{top:18px;right:20px;bottom:auto;font-size:10px;letter-spacing:.1em}
  .proof-inner{grid-template-columns:1fr 1fr;padding:24px 0;gap:22px 18px}
  .proof-rating{gap:11px}
  .proof-rating .score{font:600 35px/1 var(--sans);letter-spacing:-.05em}
  .rating-label{display:block;font-size:12px;line-height:1.5;margin-top:5px}
  .stars svg{width:12px;height:12px}
  .proof-item{padding-left:16px}
  .proof-item strong{font-size:14px;line-height:1.4}
  .proof-item span{font-size:12px;line-height:1.5;display:block;margin-top:4px}
  .section{padding:54px 0}
  .section-head{margin-bottom:28px}
  h2,.section-head h2,.faq-layout h2{font-size:clamp(29px,8vw,36px);line-height:1.16;letter-spacing:-.035em;margin-bottom:20px}
  .section-intro{font-size:16px;line-height:1.65;max-width:100%}
  .service-grid{gap:34px}
  .service-card img{height:285px}
  .service-card .card-top{margin-top:18px;align-items:flex-start}
  .service-card h3{font-size:23px;line-height:1.25;letter-spacing:-.025em}
  .circle-arrow{width:42px;height:42px}
  .service-card p{font-size:15px;line-height:1.65;margin-top:10px}
  .service-list{margin-top:30px}
  .service-mini{padding:22px 0!important;gap:14px}
  .service-mini svg{margin-right:0}
  .service-mini h3{font-size:18px;line-height:1.3;letter-spacing:-.02em}
  .service-mini p{font-size:15px;line-height:1.6}
  .gallery-preview{grid-template-columns:1fr;gap:28px}
  .gallery-preview .work-tile:first-child{grid-column:auto}
  .gallery-preview .work-tile img,.gallery-preview .work-tile:first-child img,.gallery-preview .work-tile:nth-child(2) img{height:320px}
  .gallery-preview .work-tile:nth-child(2){padding-top:0}
  .work-bottom{gap:18px;margin-top:28px;padding-top:22px}
  .work-bottom p{font-size:14px;line-height:1.6}
  .tile-caption{padding-top:13px;font-size:15px;line-height:1.5;gap:4px}
  .tile-caption small{font-size:11px;line-height:1.5}
  .story{grid-template-columns:1fr;gap:34px}
  .story-photo img{height:380px}
  .story-note{font:500 24px/1.25 var(--sans);letter-spacing:-.035em;padding:20px 23px;left:0;bottom:22px;max-width:260px}
  .story-copy>p:not(.eyebrow),.area-section p:not(.eyebrow){font-size:16px;line-height:1.7}
  .values{margin:26px 0}
  .value{gap:14px;padding:20px 0}
  .value h3{font-size:17px;line-height:1.4;margin-bottom:7px}
  .value p{font-size:15px;line-height:1.6}
  .review-heading{margin:24px 0 0;gap:13px}
  .review-heading .big-rating{font:600 36px/1 var(--sans);letter-spacing:-.04em}
  .review-grid{gap:16px}
  .review{padding:25px;min-height:225px}
  .review .stars{margin-bottom:21px}
  .review blockquote{font-size:22px;line-height:1.5;margin-bottom:24px;max-width:100%}
  .reviewer strong{font-size:14px}
  .reviewer small{font-size:12px}
  .source-note{font-size:12px;line-height:1.6;gap:12px}
  .source-note .text-link{align-self:flex-start}
  .area-section{gap:30px}
  .address-panel{padding:30px}
  .address-panel h3{font:600 30px/1.15 var(--sans);letter-spacing:-.035em;margin-bottom:17px}
  .address-panel p{font-size:15px;line-height:1.7}
  .address-panel .eyebrow{font-size:11px}
  .address-panel .text-link{font-size:14px}
  .faq-layout{gap:8px}
  .faq summary{font-size:16px;line-height:1.5;min-height:62px;padding:20px 35px 20px 0}
  .faq summary:after{top:18px}
  .faq p{font-size:15px;line-height:1.7;margin-bottom:22px}
  .cta{padding:48px 0}
  .cta h2{font-size:clamp(30px,8.6vw,38px);line-height:1.15;letter-spacing:-.04em}
  .cta p:not(.eyebrow){font-size:16px;line-height:1.6;max-width:100%;margin-top:18px}
  .cta-actions{margin-top:25px;gap:15px;align-items:stretch}
  .cta-actions .btn{width:100%;justify-content:space-between;font-size:15px}
  .cta-actions>a:last-child{font-size:16px;min-height:44px;padding:8px 0}
  .footer{padding:45px 0 105px}
  .footer-top{grid-template-columns:1fr 1fr;gap:30px 24px}
  .footer-top>div:last-child{grid-column:1/3}
  .footer p{font-size:14px;line-height:1.65;max-width:100%}
  .footer h3{font-size:12px;line-height:1.5;letter-spacing:.06em;margin-bottom:12px}
  .footer-links{font-size:14px;line-height:1.5;gap:0}
  .footer-links a{display:flex;align-items:center;min-height:44px;padding:8px 0}
  .footer address{font-size:15px;line-height:1.7}
  .footer address a{display:inline-flex;align-items:center;min-height:44px}
  .footer-bottom{font-size:11px;line-height:1.6;flex-wrap:wrap;gap:14px 20px}
  .footer-bottom a{min-height:30px}
  .mobile-contact{padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:10px}
  .mobile-contact a{font-size:14px;min-height:48px;gap:10px}
  .mobile-contact svg{width:18px;height:18px}
  .page-hero{padding:27px 0 36px}
  .breadcrumb{font-size:12px;line-height:1.6;margin-bottom:25px;gap:10px}
  .page-hero h1{font-size:clamp(32px,9vw,40px);line-height:1.13;letter-spacing:-.04em;max-width:100%;margin-bottom:20px}
  .page-hero p:not(.eyebrow){font-size:16px;line-height:1.65;max-width:100%;margin-bottom:0}
  .page-hero .actions{display:grid;gap:12px;margin-top:26px}
  .page-hero .btn{font-size:15px;justify-content:space-between;min-height:52px;padding:14px 18px}
  .service-detail{gap:30px}
  .service-detail h2{font-size:32px;line-height:1.17;letter-spacing:-.035em}
  .service-detail p:not(.eyebrow){font-size:16px;line-height:1.7}
  .service-detail h3{font-size:19px;line-height:1.4}
  .check-list li{font-size:15px;line-height:1.6;padding:17px 0;gap:12px}
  .check-list svg{flex-shrink:0}
  .detail-photo img{height:350px}
  .step{grid-template-columns:35px 1fr;gap:0 17px}
  .step-num{font:500 28px/1.2 var(--sans);letter-spacing:-.04em}
  .step h3{font-size:19px;line-height:1.4}
  .step p{font-size:15px;line-height:1.65}
  .gallery-grid{grid-template-columns:1fr;gap:30px}
  .gallery-grid .work-tile img{height:350px}
  .gallery-filters{gap:9px;margin-bottom:22px}
  .filter{font-size:14px;min-height:44px;padding:10px 16px}
  #gallery-status{font-size:13px!important;line-height:1.6}
  .lightbox-caption{font-size:14px;line-height:1.5}
  .lightbox-close{width:46px;height:46px}
  .contact-layout{gap:35px}
  .contact-block h2{font:600 27px/1.2 var(--sans);letter-spacing:-.03em;margin-bottom:14px}
  .contact-block p:not(.eyebrow){font-size:16px;line-height:1.65}
  .contact-phone{font:600 clamp(27px,8vw,34px)/1.3 var(--sans);letter-spacing:-.035em}
  .contact-info>p{font-size:14px!important}
  .quote-form{padding:28px 22px}
  .quote-form h2{font:600 29px/1.2 var(--sans);letter-spacing:-.035em;margin-bottom:13px}
  .quote-form>p{font-size:15px;line-height:1.65}
  .field{margin:22px 0}
  .field span{font-size:14px;line-height:1.5;margin-bottom:8px}
  input,select,textarea{font-size:16px;line-height:1.5;padding:13px 14px;min-height:52px}
  textarea{min-height:150px}
  .quote-form .btn{min-height:54px;font-size:14px;padding:15px 14px;gap:12px}
  .quote-form .form-note{font-size:13px!important;line-height:1.65}
  .form-status{font-size:15px;line-height:1.6}
  .copy-btn{font-size:14px;min-height:44px;padding:12px 0}
  .more-links a{font-size:16px;line-height:1.4;min-height:58px}
  .about-big{font-size:18px!important;line-height:1.7!important}
  .privacy-copy h2{font-size:27px}
  .privacy-copy p{font-size:16px;line-height:1.7}
}

@media(min-width:420px) and (max-width:640px){
  .gallery-grid{grid-template-columns:1fr 1fr;gap:28px 18px}
  .gallery-grid .work-tile img{height:270px}
}

@media(max-width:359px){
  .wrap{width:calc(100% - 32px)}
  .hero-copy{padding:29px 20px}
  .hero h1{font-size:37px}
  .hero .eyebrow{font-size:10px;letter-spacing:.06em}
  .proof-inner{gap:20px 14px}
  .proof-item{padding-left:12px}
  .proof-item strong{font-size:13px}
  .proof-item span,.rating-label{font-size:11px}
  .brand-sub{font-size:7px}
  .quote-form{padding:25px 18px}
  .quote-form .btn{font-size:13px;gap:8px}
}

@media(max-width:640px){.story-copy>.eyebrow,.area-section .eyebrow,.page-hero .eyebrow,.cta .eyebrow,.service-detail .eyebrow,.contact-block .eyebrow{font-size:11px;line-height:1.5;letter-spacing:.095em}}
