/* Shared responsive layout for every page. Keep intrinsic content within its column. */
.wrap{width:min(1240px,calc(100% - 48px))}
img,svg,video{max-width:100%;height:auto}
.hero-grid,.about-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-grid,.steps{grid-template-columns:repeat(3,minmax(0,1fr))}
.faq-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.content-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.hero-grid>*,.about-grid>*,.contact-grid>*,.faq-grid>*,.content-grid>*,.steps>*,.service-grid>*{min-width:0}
h1,h2,h3,p,li,summary,.breadcrumbs,a{overflow-wrap:break-word}
h1{font-size:clamp(2.1rem,4.6vw,4.25rem);letter-spacing:-.045em}
h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}
.page-hero h1{font-size:clamp(2rem,4.3vw,3.375rem);letter-spacing:-.04em}
.nav{gap:24px}.nav>.brand{min-width:0;flex:0 1 300px}
.brand-logo{width:300px;max-width:100%;height:auto;object-fit:contain}
nav{flex-shrink:0;gap:clamp(16px,2vw,30px)}
.actions,.hero-notes{flex-wrap:wrap}.button{max-width:100%;white-space:normal;text-align:left;min-height:44px}
.text-link,.contact-email{overflow-wrap:anywhere}
.eyebrow{flex-wrap:wrap}.dot{flex-shrink:0}
input,select,textarea{min-width:0;max-width:100%;font-size:16px}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.summary,summary{min-height:44px;align-items:center}summary:after{flex-shrink:0}
.footer-top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto auto;gap:26px}
.footer-top .brand,.footer-top p{width:auto;min-width:0}
.footer-top .brand{max-width:300px}.footer-top .brand-logo{width:100%}
.footer-top>div{flex-wrap:wrap}.footer-bottom{flex-wrap:wrap}
footer>.wrap>p{font-size:13px;line-height:2.1;overflow-wrap:anywhere}
.hero-visual>img{height:100%;object-fit:cover}.visual-card{right:12px;max-width:calc(100% - 24px)}
@media(min-width:1440px){.wrap{width:min(1240px,calc(100% - 96px))}}
@media(max-width:1100px){.about-grid,.contact-grid,.faq-grid{gap:32px}.content-grid{gap:32px}.footer-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.footer-top>div{flex-direction:row;gap:22px}.footer-top .brand{max-width:300px}}
@media(max-width:1024px){
 html{scroll-padding-top:96px}.nav{height:80px;gap:16px}.nav>.brand{flex:0 1 280px;max-width:calc(100% - 64px)}
 .menu{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:4px;background:white;font-size:25px;line-height:1}
 nav{display:none;position:absolute;inset:80px 0 auto;width:100%;padding:16px 24px 24px;background:#fff;box-shadow:0 15px 20px #142c2d10;max-height:calc(100dvh - 80px);overflow-y:auto}
 nav.open{display:flex;flex-direction:column;align-items:stretch;gap:6px}nav a{display:flex;align-items:center;min-height:48px;padding:12px 16px}nav .button{margin-top:6px}
 .hero-grid{grid-template-columns:minmax(0,1fr);gap:30px}.hero-copy{max-width:740px}.hero-visual{height:clamp(320px,48vw,460px);margin-top:0}
 .actions{flex-direction:row;align-items:center}.hero-notes{gap:14px 24px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section{padding:64px 0}
 .about-grid,.contact-grid,.faq-grid{grid-template-columns:minmax(0,1fr);gap:36px}.about-art{min-height:350px}.about-art p{font-size:clamp(28px,4vw,36px)}
 .contact-grid>div{max-width:100%}.section-head{align-items:start;gap:28px}.section-head>*{min-width:0}.section-head>p{max-width:42%}
 .content-grid{grid-template-columns:minmax(0,1fr)}.sidebar{width:100%}.steps{gap:24px}
}
@media(max-width:600px){
 .wrap{width:calc(100% - 32px)}.top .wrap{gap:12px;align-items:center}.top .wrap>span{max-width:55%;font-size:9px;line-height:1.4}.top a{font-size:10px;white-space:nowrap}
 .nav>.brand{flex-basis:245px}.brand-logo{width:245px}.nav{height:76px}nav{top:76px;max-height:calc(100dvh - 76px);padding:12px 16px 20px}
 h1{font-size:clamp(2rem,8.8vw,3rem);margin:20px 0;line-height:1.15}.page-hero h1{font-size:clamp(1.9rem,8vw,2.6rem)}h2{font-size:clamp(1.7rem,7vw,2rem)}
 .hero{padding:30px 0 36px}.lead{font-size:15px}.section,.page-hero{padding:44px 0}
 .actions{flex-direction:column;align-items:stretch;gap:18px}.actions .text-link{align-self:flex-start}.actions .button{width:100%}
 .hero-notes{font-size:11px;gap:8px 16px}.hero-visual{height:340px}.photo-label{left:12px;right:12px;width:fit-content;max-width:calc(100% - 24px);font-size:9px;line-height:1.4}
 .visual-card{padding:16px;gap:12px;bottom:80px}.visual-card>div{min-width:0}.mini-icon{flex:0 0 42px;width:42px;height:42px}.visual-card strong{font-size:18px}.visual-card small{font-size:7px;letter-spacing:1px}
 .service-strip .wrap{flex-wrap:wrap;justify-content:center;gap:10px 14px;font-size:8px;letter-spacing:1px}.service-strip i{display:none}
 .section-head{display:block;margin-bottom:28px}.section-head>p{max-width:100%;margin-top:18px}.section-head .button{margin-top:20px}
 .service-grid,.steps,.form-row{grid-template-columns:minmax(0,1fr)}.service{padding:24px}.service h3{font-size:21px}.service p{font-size:14px}.steps{gap:24px;margin-top:30px}.steps p{max-width:none}
 .about-art{padding:26px;min-height:350px}.big-star{font-size:100px}.values>div{gap:14px}
 .faq-grid{gap:24px}summary{font-size:15px;gap:16px}details p{font-size:14px;margin-right:0}
 form{padding:22px}.form-row{gap:0}label{font-size:12px}.form-note{font-size:12px}.contact-phone{font-size:clamp(23px,6.6vw,29px)}.contact-email{font-size:14px}
 .page-callout,.sidebar{padding:24px}.page-callout .button{width:100%}
 .footer-top{grid-template-columns:minmax(0,1fr);gap:24px;padding-bottom:30px}.footer-top .brand{width:100%;max-width:300px;padding:12px}.footer-top .brand-logo{width:100%}.footer-top p{width:auto}.footer-top>div{display:flex;flex-wrap:wrap;gap:20px}.footer-top a{min-height:44px}.footer-bottom{gap:12px;padding:20px 0}.footer-bottom>span:first-child{width:100%}
 footer{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}.mobile-bar{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);width:100%;gap:8px;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:30;background:white;box-shadow:0 -3px 20px #142c2d15}.mobile-bar a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 8px;font-size:12px}
}
@media(max-width:360px){.wrap{width:calc(100% - 24px)}.nav{gap:12px}.nav>.brand{max-width:calc(100% - 56px)}.hero-visual{height:310px}.visual-card{padding:12px;gap:10px}.visual-card strong{font-size:16px}.visual-card small{letter-spacing:.6px}.service,form,.sidebar,.page-callout{padding:18px}.eyebrow{letter-spacing:1px}.audience-list span{max-width:100%}}
