/* The supplied logo, recast in the site's restrained ink-and-ivory palette. */
.brand { display:flex; align-items:center; gap:12px; color:#173342; }
.brand-emblem { width:40px; height:42px; flex:none; }
.brand-lockup { display:flex; flex-direction:column; gap:5px; }
.brand-lettermark { width:102px; height:28px; }
.brand .brand-lockup>span { font-size:9px; line-height:1; font-weight:550; letter-spacing:.24em; margin-left:0; }
.site-header { inset:18px 32px auto; height:80px; border:1px solid #ffffffb3; border-radius:18px; background:#f9fcfbe6; box-shadow:0 8px 32px #122d4010,inset 0 1px #fff; backdrop-filter:blur(24px) saturate(1.12); -webkit-backdrop-filter:blur(24px) saturate(1.12); transition:height .3s,background .3s,box-shadow .3s; }
.home-preview .site-header { background:#f5fafac9; border-color:#ffffff99; }
.header-inner { width:auto; max-width:none; margin:0; padding:0 26px; gap:32px; }
.desktop-nav { gap:8px; }
.desktop-nav>a { position:relative; padding:13px 17px; border-radius:9px; color:#354f5c; font-size:13px; font-weight:500; letter-spacing:-.02em; transition:color .2s,background .2s; }
.home-preview .desktop-nav>a { color:#354f5c; }
.desktop-nav>a:hover,.desktop-nav>a[aria-current] { color:#173342; background:#17334208; }
.nav-group { position:relative; display:flex; align-items:center; border-radius:9px; transition:background .2s; }
.nav-group:hover,.nav-group.is-current,.nav-group.is-open { background:#17334208; }
.nav-trigger { padding:13px 2px 13px 17px; color:#354f5c; font-size:13px; font-weight:500; letter-spacing:-.02em; transition:color .2s; }
.nav-toggle { display:grid; place-items:center; width:30px; height:44px; padding:0 10px 0 4px; border:0; border-radius:0 9px 9px 0; background:none; color:#354f5c; cursor:pointer; box-sizing:content-box; }
.nav-toggle .icon { width:14px; height:14px; transition:rotate .3s var(--ease); }
.nav-toggle:focus-visible { outline:2px solid #173342; outline-offset:-2px; }
.nav-group:hover .nav-trigger,.nav-group.is-current .nav-trigger,.nav-group.is-open .nav-trigger,.nav-group:hover .nav-toggle,.nav-group.is-open .nav-toggle { color:#173342; }
.nav-group.is-open .nav-toggle .icon { rotate:180deg; }
.nav-dropdown { position:absolute; top:calc(100% + 12px); left:50%; width:320px; padding:8px; border:1px solid #e3e8e5; border-radius:18px; background:#fff; box-shadow:0 24px 50px -20px #122d4033; opacity:0; visibility:hidden; translate:-50% -6px; transition:opacity .2s,translate .3s var(--ease),visibility 0s .3s; }
.nav-dropdown::before { content:""; position:absolute; inset:-14px 0 100%; }
.nav-group.is-open .nav-dropdown,.nav-group:not([data-nav-ready]):hover .nav-dropdown,.nav-group:not([data-nav-ready]):focus-within .nav-dropdown { opacity:1; visibility:visible; translate:-50% 0; transition:opacity .2s,translate .3s var(--ease),visibility 0s; }
.nav-dropdown ul { margin:0; padding:0; list-style:none; }
.nav-dropdown a { display:grid; grid-template-columns:38px minmax(0,1fr); align-items:center; gap:12px; padding:10px; border-radius:12px; color:#173342; transition:background .2s; }
.nav-dropdown a:hover,.nav-dropdown a:focus-visible,.nav-dropdown a[aria-current] { background:#f1f4f2; }
.nav-dropdown-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#e8eeea; }
.nav-dropdown-icon .icon { width:18px; height:18px; }
.nav-dropdown strong { display:block; font-size:13.5px; font-weight:560; letter-spacing:-.015em; }
.nav-dropdown small { display:block; margin-top:1px; color:var(--muted); font-size:12px; }
.header-cta { border:0; border-radius:11px; padding:7px 8px 7px 19px; gap:18px; font-size:12px; font-weight:500; min-height:46px; background:#173342; color:#fff; box-shadow:0 3px 8px #16334412; transition:background .25s,transform .25s; }
.header-cta .icon { box-sizing:content-box; width:14px; height:14px; padding:9px; border-radius:7px; background:#ffffff13; }
.header-cta:hover { background:#284c5d; transform:translateY(-1px); }
.site-header.is-scrolled { height:72px; background:#fafcf7ec; box-shadow:0 8px 28px #122d4010; }
.menu-toggle { width:42px; height:42px; padding:11px; border:1px solid #1733421c; border-radius:10px; margin-left:0; }
.menu-toggle span { width:18px; height:1.5px; background:#173342; margin:4px 0; }
.menu-toggle[aria-expanded=true] span:first-child { transform:translateY(2.75px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-2.75px) rotate(-45deg); }
.mobile-menu { top:calc(100% + 10px); border:1px solid #ffffffb3; border-radius:16px; background:#fafcf9; box-shadow:0 15px 38px #132e3917; padding:12px 24px 24px; }
.mobile-menu a { padding:20px 0; color:#173342; font-size:21px; letter-spacing:-.04em; }
.mobile-menu .mobile-sub { display:grid; padding:6px 0 10px 16px; border-bottom:1px solid var(--line); }
.mobile-menu .mobile-sub a { padding:9px 0; border:0; color:#4d6470; font-size:16px; letter-spacing:-.02em; }
.mobile-menu a:has(+.mobile-sub) { border-bottom:0; padding-bottom:10px; }
.hero-wordmark { top:14svh; margin:0; left:50%; right:auto; width:min(72vw,880px); transform:translateX(-50%); line-height:0; }
.hero-brand-image { width:100%; height:auto; filter:brightness(0) invert(1); opacity:.92; }
.hero-sky { background:radial-gradient(ellipse at 48% 90%,#d4e0e599,transparent 63%),linear-gradient(170deg,#7595aa 0%,#a5bfce 60%,#c2d4dc 100%); }
.home-preview { background:#a5bfce; }
.house-poster { top:35%; height:63%; }
.footer .brand { gap:10px; }
.footer .brand-emblem { width:34px; height:36px; }
.footer .brand-lettermark { width:90px; height:24px; }
.footer .brand-lockup>span { font-size:8px; }
@media(min-width:1800px) { .site-header { left:max(32px,calc((100vw - 1680px)/2)); right:max(32px,calc((100vw - 1680px)/2)); } }
@media(max-width:980px) {
 .desktop-nav { display:none; }
 .menu-toggle { display:block; }
 .header-cta { margin-left:auto; }
 .hero-wordmark { width:min(78vw,700px); top:16svh; }
}
@media(max-width:600px) {
 .site-header,.site-header.is-scrolled { top:12px; left:12px; right:12px; height:66px; border-radius:14px; }
 .header-inner { padding:0 15px; gap:12px; width:auto; }
 .brand { gap:9px; }
 .brand-emblem { width:32px; height:34px; }
 .brand-lettermark { width:88px; height:24px; }
 .brand-lockup { gap:4px; }
 .brand .brand-lockup>span { font-size:8px; letter-spacing:.22em; }
 .header-cta { display:none; }
 .menu-toggle { margin-left:auto; }
 .hero-wordmark { top:17svh; width:80vw; }
 .house-poster { top:29%; height:61%; }
 .mobile-menu { padding-inline:22px; }
}
@media(prefers-reduced-motion:reduce) { .site-header,.header-cta,.desktop-nav>a,.nav-group,.nav-trigger,.nav-toggle .icon,.nav-dropdown { transition:none; } }
