
:root{--phone-height:calc(48px + env(safe-area-inset-top,0px))}
body{padding-top:var(--phone-height)}
html{scroll-padding-top:calc(var(--phone-height) + 110px)}
.phone-banner{position:fixed;inset:0 0 auto;z-index:40;height:var(--phone-height);padding-top:env(safe-area-inset-top,0px);background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #ffffff24}
.phone-banner a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;font:700 21px/1.2 Manrope,sans-serif;letter-spacing:.035em;white-space:nowrap}
.phone-banner a:focus-visible{outline-offset:-5px}
.header{top:var(--phone-height);z-index:30}
.skip{z-index:50}
.wrap,.prose,.content-grid>*,.contact-grid>*,.editorial-grid>*,.photographed-head>*,.family-hero-grid>*,.split>*,.section-heading>*,.footer-grid>*,.practice-groups>*,.process-row>*,.articles>*{min-width:0}
main p,.cta p{text-align:justify;text-justify:inter-word;hyphens:auto;overflow-wrap:break-word}
main h1,main h2,main h3,.cta h2{overflow-wrap:break-word}
.actions a,.nav a,.phone-banner a{text-align:center;hyphens:none}
.table-scroll{max-width:100%;min-width:0}
.contact-line a,.footer-contact a{overflow-wrap:anywhere}
@media(max-width:1100px) and (min-width:761px){
 .head{gap:16px}.nav{gap:14px;font-size:13px}.nav .btn{padding:12px 14px}.brand{gap:9px}.brand strong{font-size:13px}.brand small{font-size:10px}
 .content-grid{grid-template-columns:minmax(0,1.8fr) minmax(220px,1fr);gap:32px}
 .cta .wrap{gap:28px}.cta .wrap>div:first-child{min-width:0}
}
@media(max-width:960px){
 .editorial-grid,.family-hero-grid,.photographed-head,.family-feature-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .editorial-photo{min-height:320px}.family-side{max-width:none}
}
@media(max-width:760px){
 html{scroll-padding-top:calc(var(--phone-height) + 80px)}
 .wrap{width:calc(100% - 32px)}
 .head{height:68px;gap:10px}.brand{gap:9px}.brand-mark{width:34px;height:34px;flex-shrink:0;font-size:23px}.brand strong{font-size:13px}.brand small{font-size:9px;letter-spacing:.08em}
 .menu-toggle{flex-shrink:0;min-height:44px;padding:8px 12px;font-size:14px}
 .nav{top:68px;padding:16px;max-height:calc(100dvh - var(--phone-height) - 68px);overflow-y:auto;overscroll-behavior:contain}.nav.open{gap:8px;align-items:stretch}.nav a{padding:10px 12px;min-height:44px}
 .hero,.editorial-hero,.family-hero,.page-hero{padding-top:32px;padding-bottom:32px}
 .hero h1,.editorial-copy h1,.family-hero h1,.page-hero h1,.photographed-copy h1{font-size:clamp(30px,8vw,38px);line-height:1.16;letter-spacing:-.035em;max-width:100%}
 .prose h2,.family-topic h2,.family-feature h2,.cta h2,.section h2{font-size:clamp(24px,6.5vw,29px);line-height:1.25}
 .article-card h3{font-size:24px;line-height:1.3}
 .section{padding-block:42px}.section-heading{margin-bottom:24px}
 .content-grid,.contact-grid,.split,.section-heading,.hero-grid,.footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .footer-grid>div:first-child{grid-column:auto}
 .editorial-copy>p,.hero p,.page-hero p,.prose p,.prose li{font-size:16px;line-height:1.8;max-width:100%}
 .actions,.editorial-copy .actions{flex-direction:column;align-items:stretch;gap:12px;width:100%}
 .actions .btn{width:100%;max-width:100%;min-height:48px;padding:13px 16px}
 .actions .text-link{align-self:center;margin-top:4px;max-width:100%;overflow-wrap:anywhere}
 .cta .wrap{display:block}.cta .wrap>.contact-actions{margin-top:24px;max-width:none;width:100%}.cta .contact-actions .btn{margin-top:0}
 .hero-foot{flex-wrap:wrap;gap:12px}.scope-band .wrap>div{gap:12px}
 .editorial-photo{min-height:240px}.family-side img,.service-photo img{height:220px;object-fit:cover;width:100%}
 .contact-box,.quote-panel{padding:22px}.contact-line strong{font-size:21px}
 .faq details p{margin-right:0}.family-topic{gap:10px}
 .footer{padding-top:36px}.footer-bottom{flex-wrap:wrap;gap:10px}
}
@media(max-width:360px){.wrap{width:calc(100% - 24px)}.brand-mark{display:none}.brand strong{font-size:12px}.brand small{font-size:9px}.phone-banner a{font-size:20px}}
