/* Responsive additions. Larger-screen presentation keeps the V9 layout. */
.mobile-only,.mobile-service-thumb,.service-row-arrow,.service-copy-short,.service-title-short,.hero-description-short{display:none}
.hero-title-line{display:block}
.hero .hero-inner{position:static}
.hero-description-long>br{display:none}

.mobile-services{border-bottom:1px solid var(--line)}
.mobile-services>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:14px 0;font:30px/1.2 var(--serif);cursor:pointer}
.mobile-services>summary::-webkit-details-marker{display:none}
.mobile-services>summary::marker{content:''}
.mobile-services-indicator{font:300 29px/1 var(--sans);transition:transform .2s}
.mobile-services[open] .mobile-services-indicator{transform:rotate(45deg)}
.mobile-services .mobile-service-list{display:grid;grid-template-columns:1fr;gap:0;padding:2px 0 14px}
.mobile-services .mobile-service-list>a{display:flex;align-items:center;min-height:48px;padding:12px 6px;font:400 16px/1.5 var(--sans);border-top:1px solid var(--line)}
.mobile-services .mobile-service-list>.mobile-all-services{font-weight:700}
.mobile-services>summary:focus-visible{outline:3px solid #789345;outline-offset:4px}

@media(max-width:760px){
 :root{--header:72px}
 .container{width:calc(100% - 40px)}
 .section{padding-block:40px}
 .section-label{margin-bottom:18px;gap:12px}
 .section-heading{gap:16px;margin-bottom:25px}
 .section-heading h2,.about-brief h2,.faq-section h2,.service-area h2{font-size:clamp(34px,9.3vw,42px);line-height:1.14}
 .section-heading>p{margin-top:0}
 main p:not(.eyebrow):not(.legal-updated):not(.contact-number):not(.service-area-line){font-size:16px;line-height:1.6}
 .button{min-height:50px;font-size:14px}
 .site-header .header-inner{width:calc(100% - 40px);gap:12px}
 .site-header .brand-art{width:clamp(205px,60vw,252px);height:54px}
 .site-header .brand-art .brand-logo{width:calc(100% + 14px);max-width:none;left:-6px;top:50%;transform:translateY(-50%)}
 .menu-toggle{width:44px;height:44px;flex-shrink:0}
 .menu-toggle>span{left:8px}
 .mobile-menu{padding:18px 22px calc(28px + env(safe-area-inset-bottom));scroll-padding-block:12px}
 .mobile-menu nav>.menu-label{margin-bottom:8px}
 .mobile-menu nav>a:not(.button){font-size:30px;min-height:64px;padding-block:14px}
 .mobile-menu>p{font-size:10px;margin-top:26px}

 /* The nonsemantic copy wrappers pass their children into the mobile grid. */
 .hero{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "photo" "details";min-height:0;overflow:hidden}
 .hero .hero-inner,.hero .hero-copy{display:contents}
 .hero .hero-heading{grid-area:heading;min-width:0;width:calc(100% - 40px);margin-inline:auto;padding-block:25px 26px}
 .hero .hero-eyebrow{font-size:9px;line-height:1.5;letter-spacing:.08em;max-width:none;margin-bottom:14px}
 .hero h1{font-size:clamp(34px,9.5vw,40px);line-height:1.12;letter-spacing:-.03em}
 .hero h1 em{display:block;margin-top:4px;font-size:clamp(26px,7vw,30px);line-height:1.2;letter-spacing:-.025em}
 .hero h1 em br{display:none}
 .hero .hero-photo{grid-area:photo;position:relative;inset:auto;width:100%;height:clamp(300px,82vw,340px);z-index:auto;object-position:50% 54%}
 .hero .hero-details{grid-area:details;min-width:0;width:calc(100% - 40px);margin-inline:auto;padding-block:20px 28px}
 .hero .hero-description{font-size:16px;line-height:1.6;margin:0;max-width:none}
 .hero-description-long{display:none}
 .hero .hero-description-short{display:inline}
 .hero .hero-description-short>br{display:initial}
 .hero .hero-actions{margin-top:19px;gap:0;flex-direction:row}
 .hero .hero-discover{display:none}
 .hero .hero-actions>.button{min-height:50px;font-size:14px;gap:30px;padding-left:22px}
 .hero .button-icon{width:38px;height:38px}
 .service-strip>.container{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:9px 16px;padding-block:15px}
 .service-strip span{font-size:11px;gap:7px;white-space:normal}
 .service-strip span svg{width:18px;height:18px}
 .service-strip span:last-child{border:0;padding:0;width:100%;font-size:11px}

 /* One row per service, keeping each complete row as the link target. */
 .home-services .section-heading{margin-bottom:24px}
 .home-services .featured-services,.catalog-v4-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
 .service-v4-card{display:grid;grid-template-columns:76px minmax(0,1fr) 18px;gap:14px;align-items:center;padding:15px 0;min-width:0;border-bottom:1px solid var(--line)}
 .featured-services>.service-v4-card:first-child,.catalog-v4-grid>.service-v4-card:first-child{border-top:1px solid var(--line)}
 .service-v4-card .service-v4-image{aspect-ratio:auto;width:76px;height:90px;border-radius:3px;overflow:hidden}
 .service-v4-card .service-v4-image>img{width:100%;height:100%;object-fit:cover}
 .service-v4-card .service-card-arrow,.service-v4-card .service-card-link,.service-v4-card .service-v4-copy>.eyebrow{display:none}
 .service-v4-card .service-v4-copy{padding:0;min-width:0}
 .service-v4-card .service-v4-copy h3,.home-services .additional-services h3{font-size:23px;line-height:1.17;letter-spacing:-.025em}
 .service-v4-card .service-v4-copy p,.home-services .additional-services p{font-size:16px;line-height:1.45;margin-top:7px}
 .service-copy-full,.service-title-full{display:none}
 .service-copy-short,.service-title-short{display:inline}
 .service-row-arrow{display:block;color:#506647}
 .service-row-arrow svg{width:18px;height:18px}
 .home-services .additional-services{display:grid;grid-template-columns:minmax(0,1fr);margin:0;border:0;gap:0}
 .home-services .additional-services>a{display:grid;grid-template-columns:76px minmax(0,1fr) 18px;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}
 .home-services .additional-services>a>svg:first-child{display:none}
 .home-services .additional-services>a>svg:last-child{width:18px;height:18px}
 .mobile-service-thumb{display:block;width:76px;height:90px;border-radius:3px;overflow:hidden}
 .mobile-service-thumb img{width:100%;height:100%;object-fit:cover}
 .mobile-only{display:block}
 .services-contact{padding-top:26px}
 .services-contact>p{color:var(--muted)}
 .services-contact>.text-link{font-size:15px;min-height:48px;gap:20px;margin-top:6px}

 .about-brief-grid{gap:26px}
 .about-brief-grid>figure{max-height:320px;overflow:hidden}
 .about-brief-grid>figure>img{width:100%;height:290px;object-fit:cover}
 .about-brief-grid>figure>figcaption{margin-top:6px}
 .process-grid{gap:22px;margin-top:26px}
 .process-grid article{padding-top:16px}
 .process-grid h3{font-size:27px;margin-top:12px;line-height:1.2}
 .process-grid p{margin-top:9px}
 .service-area-grid{gap:24px}
 .faq-grid{gap:26px}
 .faq-list summary{min-height:52px;font-size:16px;line-height:1.45}
 .page-top-copy{padding:25px 20px 32px}
 .page-top h1{font-size:clamp(35px,9.8vw,44px);line-height:1.12}
 .page-top .page-top-photo{height:290px;min-height:0}
 .contact-landing h1,.editorial-top h1{font-size:clamp(38px,10.5vw,48px);line-height:1.12}
 .contact-landing-grid{gap:28px}
 .contact-photo{height:320px}
 .gallery-filters{flex-wrap:wrap;gap:8px}
 .gallery-filters button{min-height:44px;padding:9px 14px;font-size:14px}

 .footer-contact{padding-block:40px 34px;gap:25px}
 .footer-contact h2{font-size:clamp(34px,9.3vw,42px);line-height:1.14}
 .footer-contact p:not(.eyebrow){font-size:16px;line-height:1.6;margin-top:18px}
 .footer-contact .eyebrow{margin-bottom:18px}
 .footer-contact-action>.button{min-height:52px;min-width:0;font-size:14px}
 .footer-contact-action>.footer-phone{font-size:20px}
 .footer-columns{padding-block:28px;gap:24px 20px}
 .footer-columns>div:not(.footer-identity)>a{min-height:44px;font-size:14px}
 .footer-legal-nav{gap:0 19px;font-size:13px}
 .footer-legal-nav>a,.footer-legal-nav>button{display:inline-flex;align-items:center;min-height:44px}
 .footer-credits>a{min-height:44px;display:inline-flex;align-items:center}
}

@media(max-width:360px){
 .hero .hero-heading,.hero .hero-details,.container{width:calc(100% - 36px)}
 .hero h1{font-size:33px}
 .hero h1 em{font-size:26px}
 .hero .hero-eyebrow{font-size:8px}
 .service-v4-card,.home-services .additional-services>a{grid-template-columns:64px minmax(0,1fr) 16px;gap:11px}
 .service-v4-card .service-v4-image,.mobile-service-thumb{width:64px;height:84px}
 .service-v4-card .service-v4-copy h3,.home-services .additional-services h3{font-size:21px}
 .service-v4-card .service-v4-copy p,.home-services .additional-services p{font-size:16px}
 .service-strip>.container{gap:10px 12px}
 .service-strip span{font-size:10px}
}

@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .mobile-services-indicator{transition:none}
}
