/* V21 — complete responsive behavior across phone, tablet, laptop and wide screens */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
img{max-width:100%}
.site-container{width:min(100% - 48px,1240px)!important;margin-inline:auto!important}
.hero-copy,.interior-hero-copy,.operations-copy,.portfolio-meta,.safety-feature-copy{overflow-wrap:anywhere}

/* Wide desktop: prevent content from becoming too stretched */
@media(min-width:1440px){
 .site-container{width:min(100% - 96px,1380px)!important}
 .home-hero{min-height:min(920px,92vh)!important}
 .hero-copy{max-width:700px!important}.hero-copy h1{font-size:4.9rem!important}
 .hero-visual img,.interior-hero-image img,.portfolio-image img{object-position:center!important}
 .service-ribbon{max-width:1380px!important;left:50%!important;transform:translateX(-50%)!important}
 .portfolio-grid>article{min-height:min(850px,72vh)!important}
}

/* Standard laptop */
@media(min-width:1025px) and (max-width:1439px){
 .site-container{width:min(100% - 64px,1180px)!important}
 .home-hero{min-height:820px!important}.hero-copy{max-width:590px!important}
 .hero-copy h1{font-size:clamp(2.8rem,4.5vw,4.2rem)!important}
 .desktop-nav{gap:clamp(14px,1.7vw,27px)!important}
 .brand-name{max-width:240px!important;white-space:nowrap!important}
 .service-ribbon-grid strong{font-size:.82rem!important}
}

/* Tablet landscape and smaller laptops */
@media(min-width:769px) and (max-width:1024px){
 .site-container{width:calc(100% - 48px)!important}
 .desktop-nav{display:none!important}.mobile-menu{display:block!important}
 .home-hero{min-height:860px!important}
 .hero-copy{width:58%!important;max-width:540px!important}
 .hero-copy h1{font-size:clamp(2.55rem,5.7vw,3.75rem)!important}
 .hero-visual{inset:0 -14% 0 16%!important}
 .hero-logo-watermark{right:34px!important;top:94px!important;width:120px!important}
 .service-ribbon{left:24px!important;right:24px!important;width:auto!important}
 .service-ribbon-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}
 .service-ribbon-grid a{padding-inline:10px!important}.service-ribbon-grid strong{font-size:.7rem!important}
 .interior-hero-copy{left:38px!important;width:52vw!important}
 .service-card{flex-basis:42%!important}.service-detail-grid{grid-template-columns:.2fr 1fr!important}
 .management-card{flex-basis:210px!important}.management-photo{width:190px!important;height:255px!important}
 .footer-main{grid-template-columns:1.4fr 1fr 1fr!important}.footer-contact{grid-column:1/-1!important}
}

/* Phones and portrait tablets */
@media(max-width:768px){
 .site-container{width:calc(100% - 36px)!important}
 .site-header{height:70px!important}.header-inner{height:70px!important}
 .desktop-nav{display:none!important}.mobile-menu{display:block!important}
 .brand-name{display:none!important}.brand-mark{font-size:1.1rem!important}
 .mobile-menu nav{right:0!important;left:auto!important;width:min(310px,calc(100vw - 28px))!important;
   max-height:calc(100vh - 84px)!important;overflow:auto!important}

 .home-hero{min-height:max(780px,100svh)!important;border-radius:0 0 48px 0!important;padding-top:70px!important}
 .hero-grid{display:block!important}.hero-copy{width:auto!important;max-width:none!important;padding-top:58px!important}
 .hero-copy h1{font-size:clamp(2.1rem,9.2vw,3.1rem)!important;max-width:12ch!important}
 .hero-lead{font-size:.98rem!important;line-height:1.62!important;max-width:92%!important}
 .hero-actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important}.button{min-height:46px!important}
 .hero-visual{inset:27% -38% 10% -5%!important;clip-path:none!important}
 .hero-visual img{object-position:66% center!important}
 .hero-visual:after{background:linear-gradient(180deg,#031927 0%,rgba(3,25,39,.62) 26%,rgba(3,25,39,.12) 59%,#031927 100%)!important}
 .hero-logo-watermark{top:82px!important;right:18px!important;width:92px!important;opacity:.82!important}
 .service-ribbon{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;margin:36px 18px 18px!important;
   border:0!important;background:rgba(3,25,39,.62)!important;border-radius:18px!important}
 .service-ribbon-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;padding:6px!important}
 .service-ribbon-grid a{min-width:145px!important;scroll-snap-align:start!important;padding:16px 13px!important;transform:none!important}
 .coverage-line{display:none!important}

 .section{padding-block:68px!important}.section-intro{max-width:none!important}
 .two-column-intro{display:block!important}.intro-detail{margin-top:38px!important}
 .service-card-grid{display:block!important}.service-card{margin-bottom:56px!important;max-width:none!important}
 .process-grid,.value-mini-grid,.value-card-grid,.safety-grid,.legal-grid{display:block!important}
 .process-grid article,.value-mini-grid article,.value-card-grid article,.safety-grid article,.legal-grid article{max-width:none!important;margin-bottom:48px!important}

 .interior-hero{min-height:max(650px,88svh)!important;padding-top:70px!important}
 .interior-hero-copy{left:18px!important;right:18px!important;top:44%!important;width:auto!important}
 .interior-hero-image img{object-position:64% center!important}

 .operations-grid,.portfolio-grid>article,.editorial-grid,.safety-feature-grid,.company-story{min-height:650px!important}
 .operations-copy,.portfolio-meta,.editorial-grid>div:not(.portfolio-image),.safety-feature-copy,
 .portfolio-grid:nth-child(even) .portfolio-meta{left:18px!important;right:18px!important;bottom:62px!important;width:auto!important}
 .operations-image img,.portfolio-image img,.safety-feature-image img{object-position:center!important}

 .service-detail{padding-block:80px!important}.service-detail-grid{display:block!important}
 .service-detail-index{margin-bottom:-24px!important}.service-detail-copy{padding-top:0!important}
 .service-scope{margin-top:35px!important}.service-jump-grid{margin-inline:-18px!important;padding-inline:18px!important}

 .management-grid{display:block!important}.management-card{margin:0 auto 62px!important;max-width:270px!important}
 .management-card:nth-child(2){margin-top:0!important}.management-photo{width:190px!important;height:250px!important}
 .legal-document-gallery{display:block!important}.legal-document-image{max-width:310px!important;margin:0 auto 58px!important}
 .requirement-grid,.contact-layout,.contact-hero-grid,.footer-main{grid-template-columns:1fr!important}
 .footer-column,.footer-contact{margin-top:24px!important}.footer-bottom{display:block!important}.footer-bottom p+ p{margin-top:8px!important}
 .field-grid{grid-template-columns:1fr!important}.form-panel{padding-inline:0!important}
}

/* Small phones */
@media(max-width:390px){
 .site-container{width:calc(100% - 28px)!important}
 .hero-copy{padding-top:45px!important}.hero-copy h1{font-size:2.05rem!important}
 .hero-lead{font-size:.93rem!important}.hero-actions .button{width:100%!important;justify-content:space-between!important}
 .hero-logo-watermark{width:76px!important}
 .section{padding-block:58px!important}.section-intro h2{font-size:1.75rem!important}
 .interior-hero-copy{left:14px!important;right:14px!important}.interior-hero-copy h1{font-size:2rem!important}
 .portfolio-meta h3{font-size:1.75rem!important}.portfolio-meta>span{font-size:4.3rem!important}
 .cta-panel{display:block!important}.cta-panel .button{margin-top:26px!important;width:100%!important}
}

/* Short landscape phones: keep content reachable */
@media(max-height:520px) and (orientation:landscape){
 .home-hero,.interior-hero{min-height:620px!important}
 .hero-copy{padding-top:34px!important}.hero-copy h1{font-size:2.3rem!important}
 .hero-logo-watermark{width:74px!important;top:76px!important}
 .service-ribbon{display:none!important}
 .interior-hero-copy{top:53%!important}
}
