/* Mobile layout: loaded after the shared stylesheet, up to 820px. */
html{scroll-padding-top:88px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
.wrap{width:calc(100% - 40px)}
.hero-grid>*,.split>*,.aboutsplit>*,.contactlayout>*,.service-detail>*,.teamgrid>*,.footergrid>*{min-width:0}
h1,h2,h3{overflow-wrap:break-word;hyphens:auto}
p,.contactitem strong,.footergrid a,.legalbody a,.cookie-category p,#form-status{overflow-wrap:anywhere}
.button,.menu,.mobile-contact a,.nav nav>a,.cookie-close{min-height:48px;touch-action:manipulation}
.button{max-width:100%;white-space:normal;text-align:left;line-height:1.5}
.button span{flex-shrink:0}
.topbar .wrap{padding-block:7px}
.topbar a{font-size:12px;line-height:1.6}
.nav{height:74px;gap:16px}
.brand{width:min(206px,calc(100% - 64px))}
.menu{width:48px;flex-shrink:0}
.nav nav{top:74px;max-height:calc(100dvh - 164px - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;padding:15px 22px 24px;gap:3px}
.nav nav>a:not(.button){display:flex;align-items:center;font-size:17px;padding:12px 4px}
.nav nav>.button{font-size:16px;min-height:50px;padding:13px 18px}
body.menu-open .cookie-notice{visibility:hidden;pointer-events:none}
.hero{padding:24px 0 32px}
.hero-grid{gap:25px}
.hero-copy{padding-top:6px}
.hero-copy h1{font-size:clamp(38px,6.6vw,56px);line-height:1.15;letter-spacing:-.035em}
.hero-copy>p{font-size:17px;line-height:1.7;margin-top:20px}
.hero .buttons{gap:12px;margin-top:25px}
.hero .button{font-size:16px;min-height:52px;padding:13px 19px}
.hero-trust{font-size:13px;line-height:1.55;gap:9px 18px;margin-top:20px}
.hero-photo>img{height:auto;aspect-ratio:1.6;object-position:52% center}
.photo-note{position:static;min-width:0;padding:14px 18px;margin-top:12px;box-shadow:none;background:#fff;border:1px solid #e3d8ec;border-radius:12px}
.photo-note b{font-size:18px}.photo-note div>span{font-size:13px}
.trustbar{padding-block:23px;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}
.trustbar div{padding-right:13px}.trustbar strong{font-size:22px}.trustbar span{font-size:13px;line-height:1.5}
.section{padding-block:64px}
.sectionhead{display:block;margin-bottom:30px}
.sectionhead>p{max-width:580px;font-size:16px;margin-top:20px}
.sectionhead>.button{margin-top:24px}
.values{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}
.values h3{font-size:23px}.values p{font-size:16px;line-height:1.65}
.aboutsplit{gap:34px}
.aboutphotos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.65fr);gap:14px;align-items:end;max-width:none;padding:0}
.aboutphotos>img:first-child{width:100%;height:360px}
.aboutphotos .smallphoto{position:static;width:100%;height:270px;border:0}
.phototag{position:static;grid-column:1/-1;font-size:23px;line-height:1.4}
.aboutsplit p{font-size:17px}
.servicecards{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.servicecard>img{height:auto;aspect-ratio:1.35}
.servicecard>div{padding:23px 20px}
.servicecard h3{font-size:23px;line-height:1.25;hyphens:auto;overflow-wrap:normal;align-items:flex-start;gap:14px}
.servicecard h3 span{flex-shrink:0;font-size:24px}
.servicecard p{font-size:16px;line-height:1.65}
.service-extra{font-size:15px;gap:9px 20px}
.service-extra a{padding-block:6px}
.service-index{gap:10px;padding-bottom:25px}
.service-index a{font-size:14px;min-height:44px;display:flex;align-items:center;padding:9px 14px}
.service-detail,.service-detail:nth-child(even){grid-template-columns:1fr;gap:27px;padding-block:36px}
.service-detail>img{order:0;width:100%;height:auto;aspect-ratio:1.55}
.service-detail h2{font-size:38px}.service-detail h3{font-size:24px;line-height:1.35}
.service-detail p{font-size:17px;line-height:1.7}
.reviews{grid-template-columns:1fr;gap:18px}
.reviews p{font-size:19px;line-height:1.65}.reviews cite{font-size:15px}.reviews cite span{font-size:13px}
.faq{gap:28px}.faq summary{font-size:18px;line-height:1.45;min-height:44px;gap:20px}.faq details{padding-block:16px}.faq details p{font-size:16px;line-height:1.7}
.consult{padding:0;margin-bottom:64px}.consult-photo img{height:auto;min-height:0;aspect-ratio:1.6;object-position:center}
.consult-copy{padding:34px}.consult-copy p{font-size:16px}.consult-copy .small{font-size:14px}.text-phone{font-size:15px;line-height:1.7}
.subhero{padding-block:30px}.subhero h1{font-size:clamp(38px,6.5vw,52px);line-height:1.15}.subhero img{height:auto;aspect-ratio:1.55}.subhero p{font-size:17px}
.teamgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.teamgrid article>img{height:auto;aspect-ratio:1;object-position:center 20%}.teamgrid article>div{padding:22px 18px}.teamgrid article h3{font-size:25px;line-height:1.3}.teamgrid article p{font-size:15px}.teamtext{padding:16px 0 0}
.contacthero{padding-block:46px 32px}.contacthero h1{font-size:clamp(38px,6.6vw,52px);line-height:1.17}.contacthero>p{font-size:17px}
.contactlayout{gap:30px}.contactinfo{padding:0}.contactinfo h2{font-size:32px}.contactitem{padding-block:18px}.contactitem>strong{font-size:23px}.contactitem>span{font-size:14px}
.formbox{padding:30px}.formbox>p{font-size:16px}.formbox label{font-size:15px}.formbox input,.formbox select,.formbox textarea{font-size:16px;min-height:50px;padding:13px 14px;line-height:1.5}.formbox textarea{min-height:160px;scroll-margin-top:95px}.formbox input,.formbox select{scroll-margin-top:95px}.formbox form>.small{font-size:14px;line-height:1.65}.formbox form>.button{width:100%;font-size:16px;min-height:54px;padding:14px 18px}.formbox #form-status{font-size:15px;line-height:1.65}.formrow{grid-template-columns:1fr;gap:0}
body.form-focused .mobile-contact,body.form-focused .cookie-notice{visibility:hidden;pointer-events:none}
.process{grid-template-columns:1fr;gap:25px}.process h3{font-size:24px}.process p{font-size:16px}
.oncall .wrap{display:block}.oncall h2{font-size:28px;line-height:1.25}.oncall .button{min-width:0;min-height:54px;margin-top:22px;font-size:21px;padding:13px 20px}.oncall p{font-size:14px}
.footergrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.footergrid p,.footergrid a{font-size:15px}.footergrid>div>a:not(.footerbrand){padding-block:5px;margin-bottom:5px;line-height:1.6}.footergrid h3{font-size:18px}.footerbottom{padding-bottom:24px;font-size:13px;line-height:1.7}.footerbottom a{padding-block:6px}
.legal h1{font-size:clamp(31px,5.8vw,44px);line-height:1.22;overflow-wrap:break-word;hyphens:auto}.legalbody{margin-top:30px}.legalbody h2{font-size:27px;line-height:1.3}.legalbody p{font-size:16px;line-height:1.8}
.mobile-contact{padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));gap:10px}
.mobile-contact a{min-width:0;min-height:50px;font-size:15px;line-height:1.4;padding:11px 12px;text-align:center}
.cookie-notice{bottom:calc(84px + env(safe-area-inset-bottom,0px));left:18px;width:calc(100% - 36px);max-width:440px;max-height:calc(100dvh - 190px);padding:22px}
.cookie-notice h2{font-size:22px}.cookie-notice p{font-size:15px}.cookie-actions .button{min-height:48px;font-size:15px}.cookie-actions>a{display:inline-flex;align-items:center;min-height:44px;padding:4px;font-size:15px}
.cookie-dialog{max-height:calc(100dvh - 32px);padding:26px}.cookie-dialog p{font-size:15px}.cookie-close{min-width:48px}.cookie-category h3{flex-wrap:wrap;font-size:18px;gap:10px}.cookie-category h3 span{font-size:12px}.cookie-dialog .cookie-actions .button{flex:1 1 180px;justify-content:center;text-align:center}
@media(max-width:600px){
 .servicecards{grid-template-columns:1fr;gap:23px}.servicecard>img{aspect-ratio:1.6}.servicecard>div{padding:23px}.servicecard h3{font-size:25px}.servicecard p{font-size:16px}
 .teamgrid article h3{font-size:23px}.teamgrid article p{font-size:14px}.teamgrid article>div{padding:18px 15px}
 .contactlayout{display:flex;flex-direction:column;gap:34px}.contactinfo{width:100%}.formbox{width:100%}
}
@media(max-width:480px){
 .wrap{width:calc(100% - 36px)}.section{padding-block:48px}h2{font-size:32px;line-height:1.18}
 .eyebrow{font-size:12px;line-height:1.6;letter-spacing:.075em}
 .hero-copy h1{font-size:clamp(34px,9.5vw,44px)}.hero-copy>p{font-size:16px;line-height:1.7}.hero .buttons{display:grid;grid-template-columns:1fr;gap:11px}.hero .button{width:100%;min-height:51px;justify-content:space-between}.hero-trust{font-size:12px;display:grid;gap:7px}
 .hero-photo>img{aspect-ratio:1.4}.photo-note{gap:12px;padding:12px 15px}.photo-note b{font-size:17px}.photo-note div>span{font-size:13px}.heart{font-size:34px}
 .trustbar{grid-template-columns:1fr;gap:0;padding-block:9px}.trustbar div,.trustbar div:first-child,.trustbar div:last-child{display:flex;align-items:center;gap:18px;border-right:0;padding:13px 0;border-bottom:1px solid var(--line)}.trustbar div:last-child{border-bottom:0}.trustbar strong{font-size:21px;min-width:105px;margin:0}.trustbar span{font-size:14px;max-width:none}
 .values{grid-template-columns:1fr;gap:27px}.values article{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:17px;align-items:start;padding:0}.value-icon{grid-row:1/span 2;width:48px;height:48px;margin:0}.values h3{font-size:23px;line-height:1.3}.values p{margin-top:8px;font-size:16px}
 .aboutphotos{gap:12px}.aboutphotos>img:first-child{height:280px}.aboutphotos .smallphoto{height:205px}.phototag{font-size:21px}.aboutsplit p{font-size:16px}
 .sectionhead{margin-bottom:27px}.service-extra{font-size:15px;display:grid;gap:4px}.service-extra a{min-height:40px}.service-detail>img{aspect-ratio:1.35}.service-detail h2{font-size:32px}.service-detail h3{font-size:22px}.service-detail p{font-size:16px}
 .subhero h1,.contacthero h1{font-size:clamp(34px,9vw,42px)}.subhero p,.contacthero>p{font-size:16px}.subhero img{aspect-ratio:1.4}.subhero .button{width:100%;font-size:16px}
 .consult{padding:0;margin-bottom:48px}.consult-copy{padding:28px 23px}.consult-copy h2{font-size:31px}.consult-copy>.button{width:100%;font-size:16px}.consult-photo img{aspect-ratio:1.5}
 .reviews blockquote{padding:25px 22px}.reviews p{font-size:18px}
 .contacthero{padding-top:35px;padding-bottom:29px}.contactitem>strong{font-size:clamp(18px,5vw,23px)}.contactitem .maplink{font-size:15px;min-height:44px;display:flex;align-items:center}.formbox{padding:26px 20px}.formbox h2{font-size:29px}.formbox form{margin-top:24px}
 .footergrid>div:nth-child(-n+2){grid-column:1/-1}.footergrid{gap:28px 18px}.footerbrand{width:220px;max-width:100%}.footergrid h3{font-size:17px}.footergrid p,.footergrid a{font-size:14px}.social a{min-height:44px;display:flex;align-items:center}.footerbottom{font-size:12px;margin-top:26px}
 .legal h1{font-size:31px}.legalbody h2{font-size:24px;line-height:1.35}.legalbody p{font-size:16px}.legalbody .privacy-subtitle{font-size:22px}
 .cookie-notice{padding:20px;max-height:calc(100dvh - 180px)}.cookie-notice h2{font-size:21px}.cookie-notice p{font-size:14px}.cookie-actions{gap:10px 18px}.cookie-actions .button{font-size:14px}.cookie-dialog{padding:22px 19px}.cookie-dialog h2{font-size:28px}.cookie-dialog p{font-size:14px}
}
@media(max-width:380px){
 .teamgrid{grid-template-columns:1fr;gap:22px}.teamgrid article>img{aspect-ratio:1.15}.teamgrid article>div{padding:22px}.teamgrid article h3{font-size:25px}.teamtext{grid-column:auto}
 .brand{width:180px}.wrap{width:calc(100% - 32px)}.mobile-contact a{font-size:14px;padding-inline:8px}.cookie-actions .button{width:100%;justify-content:center}.cookie-actions>a{min-height:40px}
}
@media(max-height:520px) and (orientation:landscape){
 .cookie-notice{left:auto;right:14px;width:350px;bottom:calc(78px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 110px);padding:16px}.cookie-notice h2{font-size:18px}.cookie-notice p{font-size:13px;margin-top:8px}.cookie-actions{margin-top:12px}.cookie-dialog{max-height:calc(100dvh - 20px)}
}
@media(hover:none){.button:hover,.servicecard:hover{transform:none}}
@media print{body{padding-bottom:0}}
