/* C&E site-wide mobile optimization */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%;height:auto}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}

@media(max-width:900px){
  .wrap{width:min(100% - 32px,1180px)!important}
  .nav,.top .nav{min-height:68px!important}
  .nav .wrap{min-height:68px!important}
  .hero h1{font-size:clamp(40px,10vw,56px)!important;line-height:.94!important;overflow-wrap:normal!important}
  .hero p,.hero-lede{font-size:15px!important;line-height:1.65!important}
  .section-title,.content h2,.steps h2,.related h2{font-size:clamp(34px,8vw,42px)!important;line-height:1!important}
  .content-grid,.story-grid,.review-layout,.areas-grid,.faq-grid,.contact-grid{grid-template-columns:1fr!important;gap:34px!important}
  .service-showcase,.service-mini-grid,.step-grid,.related-grid,.service-grid{grid-template-columns:1fr!important}
  .side{position:static!important}
  .rating-panel{position:relative!important;top:auto!important;width:100%!important}
  .cta-row,.quote{align-items:stretch!important}
  .field input,.field select,.field textarea,.quick-field input,.quick-field select{font-size:16px!important;min-height:48px}
}

@media(max-width:640px){
  body{padding-bottom:env(safe-area-inset-bottom)}
  .wrap{width:calc(100% - 28px)!important}

  /* compact utility bar */
  .topbar{font-size:10px!important}
  .topbar .wrap{min-height:42px!important;padding:0!important}
  .top-group{gap:9px!important}
  .top-group:last-child{display:none!important}
  .top-group span,.top-group a{font-size:10px!important;white-space:nowrap}

  /* real mobile header, no giant dead block */
  .nav,.top .nav{height:68px!important;min-height:68px!important;gap:12px!important}
  .nav .wrap,.top .nav.wrap{height:68px!important;min-height:68px!important;padding-top:0!important;padding-bottom:0!important}
  .brand{min-width:0!important;white-space:nowrap}
  .brand-copy strong{font-size:14px!important}
  .brand-copy span{display:none!important}
  .mark{width:38px!important;height:38px!important}
  .nav-call,.top .links,.nav-links{display:none!important}
  .menu-btn{display:block!important;width:44px!important;height:44px!important;margin-left:auto!important}

  /* only the actual hero content gets hero padding */
  .hero{min-height:auto!important;padding:0!important;background-position:62% center!important}
  .hero > .wrap,.hero-grid{padding-top:42px!important;padding-bottom:44px!important}
  .hero-grid{display:block!important}
  .hero-kicker{font-size:11px!important;letter-spacing:.1em!important}
  .hero h1{font-size:clamp(38px,11.3vw,46px)!important;line-height:.93!important;margin:12px 0 14px!important;letter-spacing:-.012em!important}
  .hero-lede,.hero p{font-size:14px!important;line-height:1.58!important;max-width:35rem!important}
  .quick-card{display:none!important}

  .hero-actions,.actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;width:100%!important;max-width:none!important;margin-top:20px!important}
  .hero-actions .btn,.actions .btn,.cta-row .btn,.quote .btn{width:100%!important;min-height:48px!important}
  .proof-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;max-width:none!important;margin-top:16px!important}
  .proof-chip{text-align:center;padding:9px 7px!important;font-size:10px!important}

  .trust-band .wrap,.trust .wrap{grid-template-columns:1fr 1fr!important;display:grid!important}
  .trust-item,.trust .wrap>span{min-height:auto!important;border-right:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important;padding:13px 10px!important}
  .trust-item{gap:10px!important}
  .trust-icon{width:36px!important;height:36px!important;font-size:15px!important}
  .trust-item b{font-size:11px!important}
  .trust-item span{font-size:9px!important}

  .services,.story,.projects,.process,.reviews,.areas,.faq,.contact,.content,.steps,.related,.gallery,.main{padding-top:52px!important;padding-bottom:52px!important}
  .section-title,.content h2,.steps h2,.related h2{font-size:clamp(32px,10vw,39px)!important}
  .section-copy,.content p,.content li{font-size:14px!important;line-height:1.7!important}

  .svc,.svc:first-child{height:230px!important;border-radius:10px!important}
  .svc-copy{left:18px!important;right:18px!important;bottom:17px!important}
  .service-mini-grid{gap:10px!important}

  .story-media{padding:0!important}
  .story-main{height:330px!important;border-radius:10px!important}
  .story-small{display:none!important}
  .story-badge{position:relative!important;left:auto!important;bottom:auto!important;margin:-54px 14px 0!important;width:calc(100% - 28px)!important;padding:15px 16px!important}

  .project-grid{grid-template-columns:1fr!important;grid-template-rows:none!important}
  .project,.project:first-child{height:220px!important;grid-column:auto!important;grid-row:auto!important;border-radius:10px!important}
  .project:nth-child(n+4){display:none!important}

  .review-layout{gap:24px!important}
  .rating-panel{padding:20px!important;grid-template-columns:50px 1fr!important;column-gap:13px!important;border-radius:14px!important}
  .rating-panel .g{width:50px!important;height:50px!important;border-radius:13px!important}
  .rating-panel .g svg{width:30px!important;height:30px!important}
  .rating-big{font-size:46px!important}
  .rating-stars{font-size:15px!important;letter-spacing:2px!important}
  .rating-panel p{margin:16px 0!important;max-width:none!important;font-size:12px!important}
  .rating-panel .btn{min-height:46px!important}
  .review-list{gap:10px!important;margin-inline:-14px!important;padding-inline:14px!important;scroll-snap-type:x mandatory!important;scrollbar-width:none!important}
  .review-list::-webkit-scrollbar{display:none!important}
  .review-card{flex:0 0 84vw!important;max-width:330px!important;padding:19px!important;scroll-snap-align:start!important;border-radius:10px!important}
  .review-card p{font-size:13px!important;line-height:1.62!important}

  .area-list{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .area-list a{display:flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:10px 8px!important;text-align:center!important;font-weight:600!important}
  .area-card{height:245px!important;border-radius:10px!important}

  .faq-q{min-height:54px!important;padding:15px!important}

  .contact{background:#0b1f0f!important}
  .contact-info{padding-right:0!important}
  .contact-info .section-title{font-size:clamp(34px,10vw,40px)!important}
  .estimate-form{padding:22px 18px!important;border-radius:12px!important}
  .estimate-form h2{font-size:27px!important}
  .form-grid{grid-template-columns:1fr!important}
  .field.full{grid-column:1!important}
  .form-actions{display:grid!important;grid-template-columns:1fr!important}
  .form-actions .btn{width:100%!important}

  .footer-grid{grid-template-columns:1fr!important;gap:24px!important}
  .footer-bottom,.foot .wrap{display:block!important;line-height:1.8!important}

  .mobile-menu{width:min(330px,88vw)!important;padding:22px!important}
  .mobile-links a{min-height:48px!important;display:flex!important;align-items:center!important}
  .mobile-actions{grid-template-columns:1fr!important}

  /* compact persistent actions */
  .mobile-sticky{gap:5px!important;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important}
  .mobile-sticky a{min-height:40px!important;font-size:9px!important;padding-inline:5px!important}

  .top .call,.cta{min-height:42px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 11px!important;font-size:10px!important}
  .content-grid{gap:26px!important}
  .side{padding:20px!important;border-radius:10px!important}
  .side a{min-height:48px!important;align-items:center!important}
  .step-grid,.related-grid{gap:10px!important}
  .step,.related-grid a{border-radius:9px!important}
  .related-grid a{min-height:52px!important;display:flex!important;align-items:center!important;padding:15px!important}
  .cta-section{padding:42px 0!important}
  .cta-row{display:block!important}
  .cta-row h2{font-size:32px!important;line-height:1!important}
  .cta-row .btn{margin-top:18px!important}
  .city-note{font-size:13px!important;line-height:1.6!important}
  .main .areas{grid-template-columns:1fr!important}
  .main .area{padding:20px!important}

  .gallery .grid,.grid{grid-template-columns:1fr!important;gap:10px!important}
  .gallery .photo,.photo,.photo:nth-child(1),.photo:nth-child(7){height:245px!important;grid-column:auto!important;border-radius:10px!important}
  .quote{padding:22px!important;border-radius:10px!important}
  .quote h2{font-size:24px!important}
  .lightbox{padding:12px!important}
  .close{top:8px!important;right:12px!important;width:48px!important;height:48px!important}
}

@media(max-width:390px){
  .wrap{width:calc(100% - 24px)!important}
  .hero h1{font-size:37px!important}
  .hero > .wrap,.hero-grid{padding-top:36px!important;padding-bottom:40px!important}
  .section-title,.content h2,.steps h2,.related h2{font-size:31px!important}
  .proof-row{grid-template-columns:1fr 1fr!important}
  .area-list{grid-template-columns:1fr!important}
  .rating-panel{grid-template-columns:46px 1fr!important;padding:17px!important}
  .rating-panel .g{width:46px!important;height:46px!important}
  .rating-big{font-size:42px!important}
  .review-card{flex-basis:88vw!important}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* two-button mobile sticky bar */
@media(max-width:760px){.mobile-sticky{grid-template-columns:1.35fr 1fr!important}}


/* smooth review carousel + mobile containment */
.review-layout,.review-layout>*{min-width:0!important}
.review-list{min-width:0!important;max-width:100%!important;scrollbar-width:none!important;-ms-overflow-style:none!important;scroll-snap-type:none!important;scroll-behavior:auto!important;overscroll-behavior-inline:contain;will-change:scroll-position}
.review-list::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.rating-panel{max-width:100%!important;min-width:0!important}
.rating-panel>*{min-width:0!important}
.rating-panel p{overflow-wrap:anywhere}
.rating-panel .btn{min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere}
@media(max-width:640px){
  .reviews>.wrap,.review-layout{width:calc(100% - 28px)!important;max-width:100%!important}
  .rating-panel{width:100%!important;max-width:100%!important;padding:18px!important;grid-template-columns:48px minmax(0,1fr)!important;column-gap:12px!important}
  .rating-panel .g{width:48px!important;height:48px!important}
  .rating-panel .btn{font-size:10px!important;line-height:1.2!important;padding:0 12px!important}
  .review-list{margin-inline:0!important;padding-inline:0!important;scroll-snap-type:none!important}
  .review-card{flex:0 0 min(82vw,320px)!important;max-width:min(82vw,320px)!important;scroll-snap-align:none!important}
}
@media(max-width:390px){
  .reviews>.wrap,.review-layout{width:calc(100% - 24px)!important}
  .rating-panel{grid-template-columns:44px minmax(0,1fr)!important;padding:16px!important}
  .rating-panel .g{width:44px!important;height:44px!important}
  .rating-big{font-size:40px!important}
  .review-card{flex-basis:80vw!important;max-width:80vw!important}
}
