/* Responsive refinements shared by all content pages. */
:root{--header-height:102px}
html{scroll-padding-top:calc(var(--header-height) + 16px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
:where(h1,h2,h3,p,address,a,button,label,summary,li,figcaption){overflow-wrap:anywhere}
:where(.header-inner,.audience-grid,.practice-grid,.team-layout,.portraits,.office-banner,.footer-grid,.wide-feature,.faq-wrap,.bio-grid,.contact-layout,.form-grid,.area-layout,.audience-service-layout,.service-topic-grid,.secondary-area-grid)>*{min-width:0}
.button,.text-link{max-width:100%;white-space:normal}
.button{text-align:center}
.plus{flex-shrink:0}
.field,.field input,.field select,.field textarea{min-width:0;max-width:100%}
.field input,.field select,.field textarea{font-size:16px}
.field textarea{scroll-margin-block:calc(var(--header-height) + 20px) 24px}
.check-label{font-size:16px;cursor:pointer}
.check-label input{width:18px;height:18px}
.document-list span{max-width:100%;overflow-wrap:anywhere}
.office-space .section-intro h2{white-space:normal;text-wrap:balance}
.footer-credit,.footer-bottom a{white-space:normal}
.footer-legal{row-gap:6px}
.footer-legal a,.cookie-settings-link{display:inline-flex;align-items:center;min-height:44px}
.cookie-actions,.cookie-category{flex-wrap:wrap}
.cookie-banner{overscroll-behavior:contain;max-height:calc(100dvh - 48px)}
.cookie-details-toggle{min-height:44px}
.cookie-category span{white-space:normal}
.audience-card{display:flex;flex-direction:column;justify-content:flex-end;padding:180px 30px 28px}
.audience-card .card-content{position:relative;inset:auto;width:100%}
.audience-card .audience-button{max-width:100%;gap:12px}
.practice-photo{display:flex;flex-direction:column;justify-content:flex-end;padding:230px 38px 40px}
.practice-photo .photo-caption{position:relative;inset:auto}
.portrait img{height:auto;aspect-ratio:4/5;object-position:center top}
.portrait figcaption h3{font-size:clamp(20px,1.65vw,24px)}
.gallery-dialog{max-height:92dvh;overscroll-behavior:contain}
.gallery-dialog .gallery-full-image{max-height:calc(92dvh - 190px)}
.gallery-close{position:sticky;top:0;justify-self:end;z-index:1;margin-top:-44px}
.whatsapp-float{bottom:calc(18px + env(safe-area-inset-bottom,0px));right:max(18px,env(safe-area-inset-right,0px))}
.site-footer{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
.footer-bottom{padding-right:56px}
body.menu-open .cookie-banner,body.menu-open .whatsapp-float{visibility:hidden;pointer-events:none}
@media(max-width:1180px){
  :root{--header-height:85px}
  .header-inner{gap:16px}
  .menu-toggle{flex:none}
  .mobile-nav{top:var(--header-height);max-height:calc(100svh - var(--header-height));max-height:calc(100dvh - var(--header-height));padding:16px max(24px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));overscroll-behavior:contain;scrollbar-gutter:stable}
  .mobile-nav>a{min-height:48px;flex-shrink:0}
  .mobile-nav .button{flex-shrink:0}
  .section{padding-block:80px}
  .team-section{padding-top:0}
  .team-layout{grid-template-columns:1fr;gap:38px}
  .team-copy{padding-bottom:0;text-align:center;max-width:720px;margin-inline:auto}
  .portraits{width:100%;max-width:650px;margin-inline:auto;gap:28px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 60px}
  .audience-service-layout{grid-template-columns:1fr;gap:34px}
  .audience-service-copy>p{max-width:760px}
  .audience-card{padding-inline:23px}
  .contact-layout{gap:36px}
  .contact-form{padding:30px}
}
@media(min-width:681px) and (max-width:1180px){
  .home-hero{min-height:560px}
  .hero-content{padding-block:52px;width:65%}
  .hero-content h1{font-size:clamp(46px,5.5vw,65px)}
  .inner-hero{min-height:480px}
  .inner-hero .inner-copy{width:72%;padding-block:60px}
  .inner-hero h1{font-size:clamp(38px,4.3vw,50px)}
}
@media(max-width:1024px){
  .contact-layout{grid-template-columns:1fr;gap:40px}
  .contact-info{max-width:760px}
  .contact-form{width:100%}
}
@media(min-width:681px) and (max-width:900px){
  .audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .audience-card:last-child{grid-column:1/-1;min-height:360px}
  .practice-grid,.wide-feature,.faq-wrap,.area-layout{grid-template-columns:1fr;gap:34px}
  .practice-photo{min-height:430px}
  .wide-feature.reverse .feature-image{order:0}
  .feature-image{height:400px}
  .feature-copy,.faq-intro{max-width:760px}
  .office-banner{grid-template-columns:1fr}
  .office-map{min-height:360px}
}
@media(max-width:680px){
  :root{--header-height:78px}
  .section{padding-block:58px}
  .team-section{padding-top:0}
  .home-hero{min-height:0;padding-bottom:0}
  .home-hero .hero-media{height:clamp(280px,80vw,400px)}
  .home-hero .hero-content{width:100%;padding:clamp(260px,72vw,350px) 0 42px}
  .home-hero .hero-shade{background:linear-gradient(180deg,#261d1715 0px,#261d1733 180px,var(--ink) clamp(280px,80vw,400px))}
  .home-hero h1{font-size:clamp(34px,10.1vw,58px)}
  .inner-hero .hero-media{height:clamp(270px,75vw,360px)}
  .inner-hero .hero-shade{background:linear-gradient(180deg,#261d171f 0px,#261d1738 160px,var(--ink) clamp(270px,75vw,360px))}
  .inner-hero .inner-copy{width:100%;padding:clamp(250px,67vw,303px) 0 44px}
  .inner-hero h1{font-size:clamp(32px,8.3vw,39px)}
  .simple-hero h1{font-size:clamp(32px,8.7vw,42px)}
  .hero-summary,.inner-hero p{font-size:16px}
  .audience-grid{grid-template-columns:1fr}
  .audience-card{min-height:405px;padding:185px 25px 27px}
  .practice-photo{padding:210px 26px 30px;min-height:410px}
  .practice-photo .photo-caption h3{font-size:32px}
  .service-content{padding-inline:22px}
  .service-item summary{gap:12px}
  .service-item summary h3{font-size:20px}
  .team-frame{padding:38px 22px 0}
  .portraits{gap:16px}
  .portrait figcaption p{font-size:14px;letter-spacing:0}
  .feature-image{height:auto;aspect-ratio:4/3}
  .feature-copy h2,.team-copy h2,.contact-info h2,.paper-intro h2,.audience-service-copy h2,.area-heading h2,.office-space .section-intro h2{font-size:clamp(29px,7.8vw,35px)}
  .bio-text h3{font-size:clamp(29px,7.8vw,34px)}
  .contact-band{padding:38px 22px}
  .contact-band h2{font-size:clamp(29px,7.8vw,34px)}
  .contact-form{padding:26px 20px}
  .contact-form h2{font-size:clamp(27px,7.2vw,31px)}
  .form-grid{grid-template-columns:1fr}
  .contact-form .button{gap:12px}
  .contact-method{gap:12px}
  .contact-method a{font-size:16px}
  .office-info{padding:32px 24px}
  .map-directions{left:12px;right:12px;bottom:12px;justify-content:center;min-height:44px;text-align:center}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
  .footer-links a{display:flex;align-items:center;min-height:44px;font-size:16px}
  .footer-links{gap:2px}
  .footer-bottom{font-size:14px;gap:12px}
  .footer-legal{column-gap:14px}
  .cookie-banner{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom,0px));padding:21px;max-height:calc(100dvh - 110px - env(safe-area-inset-bottom,0px))}
  .cookie-actions{gap:12px 20px}
  .cookie-banner h2{font-size:24px}
  .not-found h1{font-size:clamp(32px,9vw,48px)}
}
@media(max-width:420px){
  .portraits{grid-template-columns:1fr;max-width:290px}
  .portrait figcaption h3{font-size:23px}
  .portrait img{aspect-ratio:4/5}
  .service-topic{padding:22px}
  .secondary-area-card{padding:24px}
  .cookie-actions .button{min-width:100px}
}
@media(max-width:360px){.container{width:calc(100% - 32px)}.footer-grid{column-gap:16px}.button{padding-inline:16px;gap:12px}.service-item summary{padding-inline:14px}}
@media(max-height:500px) and (max-width:1180px){
  .mobile-nav{gap:0;padding-top:8px;padding-bottom:12px}
  .mobile-nav>a{padding-block:10px;min-height:44px}
  .cookie-banner{bottom:12px;max-height:calc(100dvh - 24px)}
  .gallery-dialog{padding-top:50px;max-height:96dvh}
  .gallery-dialog .gallery-full-image{max-height:calc(96dvh - 170px)}
}
@media(hover:none){.button:hover,.secondary-area-card:hover,.whatsapp-float:hover{transform:none}.audience-card:hover>img,.gallery-link:hover img{transform:none}}
