/* Touch-first layout, including iPhone safe areas and landscape. */
@media(max-width:800px){
header{position:relative;z-index:25;min-height:80px;padding:12px 6%}#menu{min-width:48px;min-height:48px;font-size:16px}nav.open{max-height:calc(100dvh - 120px);overflow-y:auto;gap:0;padding:12px 6% 20px}nav.open>a{display:flex;align-items:center;min-height:48px;width:100%;font-size:13px}nav.open .nav-contact{justify-content:center;margin-top:8px;color:#fff}
input,select,textarea{font-size:16px!important}main{overflow-wrap:break-word}.section>*{min-width:0}.button{min-height:48px;max-width:100%;white-space:normal}.text-link{min-height:44px;display:inline-flex;align-items:center}img{max-width:100%}.site-footer a{min-height:44px;display:flex;align-items:center}.site-footer{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:700px){
body{font-size:16px}.topline{padding:7px 6%}.topline a{font-size:12px;padding:4px 0}.preview{font-size:10px}.campaign-hero{height:auto;min-height:570px}.campaign-copy{padding:44px 6% 65px}.campaign-copy h1{font-size:clamp(32px,8.8vw,42px);letter-spacing:-.8px}.campaign-copy h2{font-size:25px}.campaign-copy p{font-size:16px;line-height:1.65}.campaign-copy .button{font-size:12px;gap:18px}.hero-secondary{font-size:14px;min-height:44px;display:flex;align-items:center;margin-top:14px}.location-label{font-size:9px;letter-spacing:1.3px}.studio-intro.section .studio-photo img{height:auto;min-height:0;max-height:620px;aspect-ratio:3/4;object-position:center 28%}.studio-copy{padding:32px 6%!important}.studio-copy p,.method-copy>p,.office-section p,.photo-card p,.article-copy p,.contemporary-grid p,.university-focus p{font-size:16px;line-height:1.7}.section-head h2,.studio-copy h2,h2{font-size:32px}.method-points{grid-template-columns:1fr;gap:0}.areas .photo-card .card-detail{opacity:1;visibility:visible;transform:none;font-size:15px}.areas .photo-card{min-height:0;padding-bottom:58px}.photo-card h3{font-size:27px}.office-section>.office-image img{height:290px}.reading{overflow-wrap:anywhere}.reading h1,.page-intro h1{font-size:34px;letter-spacing:-.7px}.reading h2{font-size:28px}.reading p,.reading li{font-size:16px;line-height:1.75}
.intake-launch{left:12px;right:calc(50% + 4px);bottom:calc(10px + env(safe-area-inset-bottom,0px));height:52px;padding:10px 8px;text-align:center;font-size:13px;border-radius:5px}.intake-launch span{display:none}#ai-launch{left:calc(50% + 4px);right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));height:52px;padding:10px 8px;font-size:13px;border-radius:5px}#cookie-reopen{bottom:calc(74px + env(safe-area-inset-bottom,0px));left:12px}#ai-panel{left:12px;right:12px;bottom:calc(74px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;max-height:calc(100dvh - 100px - env(safe-area-inset-bottom,0px));padding:16px;overscroll-behavior:contain;border-radius:10px}.ai-heading{position:sticky;top:-16px;background:white;z-index:1;padding:8px 0}.ai-heading h2{font-size:21px}.ai-notice{font-size:13px}body.cookie-active #ai-panel{max-height:calc(100dvh - 260px - env(safe-area-inset-bottom,0px))}#cookie-notice{top:calc(8px + env(safe-area-inset-top,0px));font-size:12px;max-height:35dvh;overflow:auto}dialog{margin:auto 12px calc(12px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 24px - env(safe-area-inset-bottom,0px));overscroll-behavior:contain}.intake-head button{min-width:44px}.intake-body label{font-size:14px}
}
@media(max-height:500px) and (max-width:950px){#ai-panel,body.cookie-active #ai-panel{top:12px;bottom:12px;max-height:calc(100dvh - 24px);z-index:41}.campaign-hero{min-height:480px}}

@media(max-width:700px){.campaign-hero .campaign-copy{padding:24px 20px;margin:30px 6% 65px;max-width:88%}.campaign-copy h1{font-size:clamp(29px,8vw,38px)}}
/* Homepage sequence: shaded city, framed portrait, interactive practice cards. */
.campaign-hero{height:auto;min-height:650px;padding:50px 0;overflow:visible}
.campaign-hero:before{background:linear-gradient(90deg,rgba(15,32,52,.76),rgba(15,32,52,.38) 55%,rgba(15,32,52,.1))!important}
.campaign-hero .campaign-copy{background:none;width:100%;max-width:1400px;margin:0 auto;padding:35px 7%}
.studio-intro.section{margin:44px 0 0;border:0!important;background:#09294e;padding:34px max(4%,calc((100% - 1400px)/2));gap:0;grid-template-columns:1fr 1fr}
.studio-intro .studio-photo{min-height:660px;background:#09294e}
.studio-intro .studio-copy{background:#fff;padding:48px clamp(28px,4vw,65px);align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.studio-intro .studio-copy .button{align-self:flex-start}
.studio-intro.section + .blue-section{border-top:44px solid white}
@media(max-width:700px){.campaign-hero{min-height:580px;padding:20px 0 45px}.campaign-hero .campaign-copy{margin:0;max-width:100%;padding:30px 6%}.studio-intro.section{grid-template-columns:1fr;margin-top:28px;padding:20px 5%}.studio-intro .studio-photo{min-height:0;height:auto;aspect-ratio:3/4}.studio-intro.section .studio-photo img{height:100%;max-height:none;aspect-ratio:auto}.studio-intro .studio-copy{padding:30px 22px!important}.studio-intro.section + .blue-section{border-top-width:28px}}
/* Centred, readable cookie information panel. */
#cookie-notice{position:fixed;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:600px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 48px);overflow:auto;margin:0;padding:28px 30px;display:flex;flex-direction:column;align-items:stretch;gap:20px;font-size:15px;line-height:1.7;border-radius:10px;box-shadow:0 16px 65px #09294e40;z-index:45;background:#fff}
#cookie-notice p{line-height:1.7}#cookie-notice strong{font-size:20px}#cookie-notice button{align-self:flex-end;min-width:125px;min-height:48px;font-size:15px;padding:10px 22px}#cookie-notice[hidden]{display:none}
@media(max-width:700px){#cookie-notice{top:50%;left:50%;bottom:auto;width:calc(100vw - 32px);max-width:440px;max-height:calc(100dvh - 48px);padding:24px;font-size:14px;gap:16px;margin:0}#cookie-notice button{width:100%}}
/* Piazza Mazzini: equal photographic and editorial columns. */
.mazzini-territory.section{max-width:none;width:100%;padding:48px 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}
.mazzini-territory.section figure{width:100%;max-width:none;margin:0}
.mazzini-territory.section figure img{display:block;width:100%;height:auto;max-height:780px;object-fit:cover;object-position:center 45%}
.mazzini-territory.section figcaption{padding:12px 6% 0}
.mazzini-territory.section>div{padding:40px clamp(28px,5vw,85px)}
@media(max-width:700px){.mazzini-territory.section{grid-template-columns:1fr;padding:28px 0}.mazzini-territory.section figure{max-width:none}.mazzini-territory.section figure img{max-height:none;height:auto}.mazzini-territory.section>div{padding:32px 6%}}
/* Separate the consultation photo from the jurisprudence banner. */
.consultation.section + .editorial-banner{border-top:64px solid #fff}
@media(max-width:700px){.consultation.section + .editorial-banner{border-top-width:36px}}
