.booking-bar { background:#084ea2; color:white; text-align:center; font-size:11px; font-weight:700; line-height:1.4; padding:7px 16px; }
/* A hidden horizontal overflow creates a body scroll container and breaks sticky positioning. */
html body { overflow-x:clip; }
header.site-header { position:sticky; top:0; z-index:70; background:#fff; backdrop-filter:none; transition:transform 240ms ease; }
header.site-header.is-hidden { transform:translateY(-100%); pointer-events:none; }
header.site-header .header-inner { width:calc(100% - 64px); max-width:1520px; min-height:80px; height:80px; padding:0; display:grid; grid-template-columns:250px minmax(0,1fr) auto; gap:20px; align-items:center; }
/* Clip the unused white canvas without changing the visible logo scale. */
.site-header .brand-link { display:flex; align-items:center; width:250px; height:62px; overflow:hidden; }
.site-header .brand-link img { width:250px; max-width:none; height:auto; flex-shrink:0; }
header.site-header .desktop-nav { display:flex; justify-content:center; align-items:center; gap:20px; height:100%; font-size:12px; font-weight:700; white-space:nowrap; }
.site-header .desktop-nav > a { padding:16px 0; }
.site-header .nav-dropdown { position:relative; }
.site-header .nav-parent { display:flex; align-items:center; }
.site-header .nav-parent a { padding:16px 0; }
.site-header .nav-parent button { display:grid; place-items:center; width:24px; height:40px; padding:0; border:0; background:none; cursor:pointer; }
.site-header .nav-parent .icon { width:13px; height:13px; transform:rotate(90deg); }
.site-header .nav-dropdown.is-open .nav-parent a { color:#084ea2; }
.site-header .nav-dropdown.is-open .nav-parent .icon { transform:rotate(-90deg); }
.site-header .nav-dropdown .dropdown-menu { top:calc(100% + 4px); left:50%; min-width:260px; padding:8px; opacity:0; visibility:hidden; transform:translate(-50%,6px); transition:opacity 220ms ease,transform 220ms ease,visibility 220ms; border-radius:6px; box-shadow:0 12px 32px rgb(8 40 70 / .14); }
.site-header .dropdown-menu::before { content:''; position:absolute; left:0; right:0; top:-8px; height:8px; }
.site-header .nav-dropdown.is-open .dropdown-menu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.site-header .dropdown-menu a { font-size:13px; padding:12px; white-space:normal; }
.site-header .header-actions { display:flex; gap:10px; align-items:center; }
.nav-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:12px 15px; border:1px solid; border-radius:5px; font-size:14px; font-weight:750; line-height:1.2; white-space:nowrap; transition:color 225ms ease,border-color 225ms ease,background-color 225ms ease,transform 225ms ease,box-shadow 225ms ease; }
.nav-button .icon { width:18px; height:18px; flex:0 0 18px; transition:filter 225ms ease; }
.nav-call { color:#084ea2; background:#fff; border-color:#084ea2; }
.nav-call:hover,.nav-call:focus-visible { color:#2e7d32; border-color:#2e7d32; }
.nav-call:hover .icon,.nav-call:focus-visible .icon { filter:invert(38%) sepia(47%) saturate(814%) hue-rotate(76deg) brightness(90%) contrast(95%); }
.nav-quote { color:white; border-color:#2e7d32; background:#2e7d32; box-shadow:0 2px 5px rgb(46 125 50 / .13); }
.nav-quote .icon { filter:invert(100%); }
.nav-button:hover { transform:translateY(-2px); box-shadow:0 5px 12px rgb(25 65 45 / .16); }
.nav-button:focus-visible,.nav-parent button:focus-visible { outline:3px solid #38b6f0; outline-offset:3px; }
header.site-header .menu-toggle { display:none; }
div.mobile-overlay { display:block; z-index:100; background:rgb(3 26 57 / .4); opacity:0; visibility:hidden; transition:opacity 320ms ease,visibility 320ms; }
div.mobile-overlay.is-open { opacity:1; visibility:visible; }
aside.mobile-menu { display:flex; flex-direction:column; gap:0; z-index:110; width:min(420px,100%); padding:20px 24px 28px; visibility:hidden; transform:translateX(100%); transition:transform 320ms cubic-bezier(.22,.7,.3,1),visibility 320ms; overflow-y:auto; overscroll-behavior:contain; }
aside.mobile-menu.is-open { display:flex; visibility:visible; transform:translateX(0); }
.mobile-menu .mobile-menu-head { flex-shrink:0; height:52px; margin-bottom:16px; }
.mobile-menu .menu-brand { display:flex; align-items:center; width:190px; height:52px; overflow:hidden; }
.mobile-menu .menu-brand img { width:190px; max-width:none; }
.mobile-menu .menu-close { display:grid; flex:0 0 40px; width:40px; height:40px; background:#f4f7fb; cursor:pointer; }
.mobile-menu .mobile-nav { display:block; }
.mobile-menu .mobile-nav > a,.mobile-menu .mobile-nav summary { padding:13px 0; font-size:15px; line-height:1.35; border-radius:0; font-weight:700; }
.mobile-menu .mobile-nav details { overflow:hidden; }
.mobile-menu .mobile-nav summary { display:flex; justify-content:space-between; align-items:center; cursor:pointer; list-style:none; }
.mobile-menu .mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-menu .mobile-nav summary .icon { width:17px; height:17px; transform:rotate(90deg); transition:transform 220ms ease; }
.mobile-menu .mobile-nav details[open] summary .icon { transform:rotate(-90deg); }
.mobile-menu .mobile-nav details div { padding:0 0 10px 13px; border-left:2px solid #e0eaf3; margin-bottom:5px; }
.mobile-menu .mobile-nav details div a { font-size:13px; font-weight:550; padding:10px 4px; }
.mobile-menu .menu-buttons { display:grid; gap:10px; margin:22px 0 24px; }
.menu-buttons .nav-button { min-height:46px; white-space:normal; text-align:center; }
.mobile-menu .menu-follow { border-top:1px solid #e0e7ef; padding-top:20px; text-align:center; }
.menu-follow p { font-size:13px; font-weight:700; margin-bottom:14px; }
.menu-socials { display:flex; justify-content:center; gap:20px; }
.menu-socials a { display:grid; place-items:center; width:44px; height:44px; }
.menu-socials svg { fill:var(--social-color); width:28px; height:28px; }
.menu-email { display:block; margin-top:20px; font-size:15px; color:#084ea2; overflow-wrap:anywhere; }
@media (max-width:1320px) {
 header.site-header .header-inner { grid-template-columns:minmax(0,1fr) auto 44px; height:70px; min-height:70px; }
 .site-header .brand-link { width:min(250px,100%); }
 .site-header .brand-link img { width:100%; }
 header.site-header .desktop-nav,.header-actions .nav-call { display:none; }
 .site-header .header-actions { justify-self:end; }
 header.site-header .menu-toggle { display:grid; justify-self:end; width:44px; height:44px; background:none; cursor:pointer; }
}
@media (max-width:760px) {
 .booking-bar { font-size:9px; padding:6px 20px; }
 header.site-header .header-inner { width:calc(100% - 24px); grid-template-columns:minmax(0,1fr) auto 36px; gap:8px; height:60px; min-height:60px; }
 .site-header .brand-link { width:min(190px,100%); height:48px; }
 .site-header .brand-link img { width:100%; }
 .header-actions .nav-button { width:auto; white-space:nowrap; text-align:center; font-size:12px; padding:8px 10px; min-height:40px; }
 header.site-header .menu-toggle { width:36px; height:40px; padding:4px; }
}
@media (max-width:380px) {
 header.site-header .header-inner { grid-template-columns:minmax(0,1fr) auto 32px; gap:6px; }
 .header-actions .nav-button { font-size:11px; padding-inline:8px; }
 header.site-header .menu-toggle { width:32px; }
}
@media (prefers-reduced-motion:reduce) {
 header.site-header,aside.mobile-menu,div.mobile-overlay,.site-header .nav-dropdown .dropdown-menu,.nav-button { transition:none; }
}
