/* Shared refinements from the approved Impeccable review. */
:root{--muted:#4d6271;--header-height:120px}
html{scroll-padding-top:calc(var(--header-height) + 20px);scrollbar-color:#8ba8b9 #f2f5f7}
::selection{background:#bcdce8;color:#08334d}
h1,h2{letter-spacing:-.03em;text-wrap:balance}
p{font-size:18px}
.skip-link{position:fixed;left:20px;top:-100px;z-index:100;background:#fff;padding:14px 22px;color:var(--blue)}
.skip-link:focus{top:12px}
a{text-underline-offset:.3em}
button:focus-visible,a:focus-visible,main:focus-visible{outline-color:#14789d}
.dark a:focus-visible,.dark button:focus-visible{outline-color:#fff}
.header{height:var(--header-height);gap:36px}
.brand{flex:0 0 342px;width:342px;height:104px;transform:none;margin-right:0}
.brand-image{width:342px;height:104px;background-size:1013.76px 675.84px;background-position:-353px -163px}
.header nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(16px,1.6vw,30px);min-width:0}
.header nav a{display:flex;align-items:center;min-height:48px;position:relative;white-space:nowrap;font-size:14px;font-weight:400;line-height:1.35;padding:10px 2px;max-width:none}
.header nav a:after{content:"";height:2px;position:absolute;bottom:3px;left:2px;right:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.header nav a:hover:after,.header nav a[aria-current="location"]:after{transform:scaleX(1)}
.header nav a[aria-current="location"]{font-weight:600}
.menu-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}
.hero{height:calc(87svh - var(--header-height))}
.hero-content{padding-top:clamp(64px,8vw,118px)}
figcaption,.image-note{font-size:12px;line-height:1.4;background:#123f59;padding:5px 8px;text-shadow:none;color:#fff}
.service h3{font-size:21px;line-height:1.35}.service p{font-size:17px}
.eyebrow{font-size:12px;letter-spacing:.12em}.professional{font-size:16px}
.text-link{min-height:44px;padding-top:9px;padding-bottom:9px}
.succession figure img{transform:none;object-position:center}
.contact p{font-size:17px}
.channels button{min-height:48px;font-size:17px}.channels svg{flex-shrink:0}
.contact .pending{font-size:14px;color:#e0e9ee}
.contact .contact-context{font-size:15px}
footer{padding-right:max(130px,6%);font-size:13px;color:var(--muted)}
.feather-button{border:0}.feather-button span{font-size:12px}
.contact-popover{width:260px;border:0;bottom:calc(100% + 10px);margin:0}
.contact-popover:after{content:"";position:absolute;top:100%;right:0;width:100%;height:15px}
.contact-popover strong{font-size:16px}
.contact-popover button{min-height:48px;font-size:16px}
.close-dialog{width:44px;height:44px;top:8px;right:10px}.dialog-ok{min-height:44px}
@media(max-width:1290px){
 :root{--header-height:112px}
 .header{padding:0 5%;gap:20px}
 .brand{width:342px;height:104px;transform:none;margin-right:0}
 .menu-toggle{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid #b5c8d4;color:var(--blue);min-height:48px;padding:12px 18px;font-size:16px}
 .header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:16px 5% 24px;box-shadow:0 12px 20px #123f591a;max-height:calc(100svh - var(--header-height));overflow-y:auto}
 .header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .header nav a{font-size:17px;white-space:normal;min-height:54px;padding:15px 0;border-bottom:1px solid #e3eaf0;max-width:none}
 .header nav a:after{bottom:0;right:auto;width:36px}
}
@media(max-width:820px){
 :root{--header-height:100px}
 .header{padding:0 5%;gap:20px}
 .brand{flex-basis:274px;width:274px;height:84px;margin:0}
 .brand-image{transform:scale(.8);transform-origin:left top}
 .menu-toggle{padding:10px 13px;gap:10px}
 .hero{height:600px}.hero-content{padding-top:72px}.hero p{font-size:18px}
 .contact .pending{font-size:14px}.channels button{font-size:16px}
 footer{padding:24px 100px 50px 6%;font-size:13px}
}
@media(max-width:440px){
 :root{--header-height:94px}
 .header{gap:12px}.brand{flex-basis:219px;width:219px;height:67px}
 .brand-image{transform:scale(.64)}
 .menu-toggle{font-size:14px;padding:10px;gap:8px}.menu-toggle svg{width:18px}
 .hero{height:570px}.hero-content{padding-top:62px}.hero p{font-size:17px}h1{font-size:40px}
}
@media(max-width:350px){
 .brand{flex-basis:192px;width:192px;height:60px}.brand-image{transform:scale(.56)}
 .header{padding:0 4%;gap:5px}h1{font-size:36px}
}

.hero .image-note{right:125px}
