/* Site header + mobile menu (src/components/SiteHeader.astro) */
:root{--fh-blue:#43a1c5;--fh-indigo:#434ac5;--fh-grad:linear-gradient(90deg,#43a1c5,#434ac5);--fh-ease:cubic-bezier(.2,.7,.2,1)}

.fh{position:fixed;top:0;left:0;right:0;z-index:990;transition:transform .45s var(--fh-ease),background-color .35s,box-shadow .35s,border-color .35s;border-bottom:1px solid transparent}
.fh::before{content:"";position:absolute;inset:0 0 -40px;pointer-events:none;background:linear-gradient(180deg,rgba(10,10,10,.55),rgba(10,10,10,0));transition:opacity .35s}
.fh--scrolled{background:rgba(15,15,16,.82);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom-color:rgba(255,255,255,.07);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.fh--scrolled::before{opacity:0}
.fh--hidden{transform:translateY(-100%)}

.fh-bar{position:relative;display:flex;align-items:center;gap:32px;padding:22px 56px;transition:padding .35s var(--fh-ease)}
.fh--scrolled .fh-bar{padding-top:12px;padding-bottom:12px}

.fh-logo{flex:none;display:block;line-height:0}
.fh-logo img{width:96px;height:96px;display:block;transition:width .35s var(--fh-ease),height .35s var(--fh-ease)}
.fh--scrolled .fh-logo img{width:64px;height:64px}

/* Desktop nav */
.fh-nav{margin-left:auto}
.fh-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.fh-item{position:relative}
.fh-link{display:flex;align-items:center;gap:6px;padding:12px 14px;font-family:'DM Sans';font-size:15px;font-weight:500;letter-spacing:.01em;color:rgba(255,255,255,.82);text-decoration:none;transition:color .2s;position:relative}
.fh-link::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:2px;background:var(--fh-grad);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--fh-ease)}
.fh-link:hover,.fh-item:focus-within>.fh-link{color:#fff;text-decoration:none}
.fh-link:hover::after,.fh-item.is-active>.fh-link::after{transform:scaleX(1)}
.fh-item.is-active>.fh-link{color:#fff}
.fh-item--drop>.fh-link::after{right:32px}
.fh-chev{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--fh-ease)}
.fh-item--drop:hover .fh-chev,.fh-item--drop:focus-within .fh-chev{transform:rotate(180deg)}

.fh-drop{position:absolute;top:100%;left:50%;min-width:280px;padding:10px;margin-top:6px;background:#151516;border:1px solid rgba(255,255,255,.09);border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .25s,transform .3s var(--fh-ease),visibility 0s .3s}
.fh-drop::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.fh-item--drop:hover .fh-drop,.fh-item--drop:focus-within .fh-drop{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .25s,transform .3s var(--fh-ease),visibility 0s}
.fh-drop--wide{min-width:560px}
.fh-drop ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.fh-drop--wide ul{grid-template-columns:1fr 1fr}
.fh-drop a{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:7px;color:rgba(255,255,255,.85);text-decoration:none;font-family:'DM Sans';font-size:14.5px;font-weight:500;transition:background-color .2s,color .2s}
.fh-drop a:hover,.fh-drop a[aria-current="page"]{background:rgba(67,161,197,.12);color:#fff;text-decoration:none}
.fh-drop-note{font-size:12.5px;font-weight:400;color:rgba(255,255,255,.5)}
.fh-drop .fh-drop-all{flex-direction:row;justify-content:space-between;margin-top:6px;padding-top:13px;border-top:1px solid rgba(255,255,255,.08);border-radius:0 0 7px 7px;color:var(--fh-blue);font-weight:700}

/* Actions */
.fh-actions{display:flex;align-items:center;gap:14px;flex:none}
.fh-phone{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-family:'DM Sans';font-weight:700;font-size:15px;white-space:nowrap}
.fh-phone:hover{color:var(--fh-blue);text-decoration:none}
.fh-phone svg{width:16px;height:16px;fill:var(--fh-blue)}
.fh-cta{display:inline-flex;align-items:center;padding:12px 22px;border-radius:4px;background:var(--fh-grad);color:#fff;font-family:'DM Sans';font-weight:700;font-size:15px;text-decoration:none;white-space:nowrap;box-shadow:0 8px 24px -10px rgba(67,161,197,.8);transition:transform .25s var(--fh-ease),box-shadow .25s}
.fh-cta:hover{color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 12px 28px -10px rgba(67,161,197,.95)}

.fh-toggle{display:none;align-items:center;gap:12px;height:46px;padding:0 6px 0 16px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(17,17,17,.35);color:#fff;font:700 13px/1 'DM Sans';letter-spacing:.14em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fh-toggle-icon{position:relative;width:34px;height:34px;border-radius:50%;background:var(--fh-grad)}
.fh-toggle-icon span{position:absolute;left:10px;right:10px;height:2px;border-radius:2px;background:#fff;transition:transform .35s var(--fh-ease),top .35s var(--fh-ease)}
.fh-toggle-icon span:first-child{top:13px}
.fh-toggle-icon span:last-child{top:19px}
.fh-open .fh-toggle-icon span:first-child{top:16px;transform:rotate(45deg)}
.fh-open .fh-toggle-icon span:last-child{top:16px;transform:rotate(-45deg)}
.fh-toggle:focus-visible,.fh-link:focus-visible,.fh-cta:focus-visible,.fh-mexpand:focus-visible{outline:2px solid var(--fh-blue);outline-offset:3px}

/* Mobile panel */
.fh-panel{position:fixed;inset:0;z-index:985;overflow-y:auto;overscroll-behavior:contain;background:radial-gradient(120% 60% at 100% 0,rgba(67,74,197,.22),transparent 60%),radial-gradient(90% 50% at 0 100%,rgba(67,161,197,.14),transparent 60%),#0e0e0f;opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
.fh-panel.is-open{opacity:1;visibility:visible;transition:opacity .35s,visibility 0s}
.fh-panel-inner{min-height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:130px 32px 36px;max-width:640px}
.fh-open,.fh-open body{overflow:hidden}
.fh-open .fh{background:transparent;box-shadow:none;border-bottom-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.fh-open .fh::before{opacity:0}

.fh-mnav{list-style:none;margin:0;padding:0}
.fh-mitem{border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(14px);transition:opacity .45s,transform .55s var(--fh-ease);transition-delay:calc(var(--i) * 45ms + 80ms)}
.fh-panel.is-open .fh-mitem{opacity:1;transform:none}
.fh-mrow{display:flex;align-items:center}
.fh-mlink{flex:1;display:flex;align-items:baseline;gap:14px;padding:16px 0;font-family:'DM Sans';font-weight:700;font-size:clamp(1.6rem,7vw,2.2rem);line-height:1.1;color:#fff;text-decoration:none}
.fh-mlink:hover{color:#fff;text-decoration:none}
.fh-mnum{font-size:.8rem;font-weight:700;letter-spacing:.1em;color:rgba(255,255,255,.35);min-width:22px}
.fh-mitem.is-active .fh-mlink{background:var(--fh-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.fh-mitem.is-active .fh-mnum{color:var(--fh-blue);-webkit-text-fill-color:var(--fh-blue)}
.fh-mexpand{flex:none;position:relative;width:44px;height:44px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fh-mexpand span::before,.fh-mexpand span::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;border-radius:2px;background:#fff;transition:transform .3s var(--fh-ease)}
.fh-mexpand span::after{transform:rotate(90deg)}
.fh-mexpand[aria-expanded="true"]{border-color:var(--fh-blue)}
.fh-mexpand[aria-expanded="true"] span::after{transform:rotate(0)}
.fh-msub{list-style:none;margin:0 0 18px 36px;padding:0;display:grid;gap:2px}
.fh-msub a{display:block;padding:9px 0;font-family:'DM Sans';font-size:1.05rem;font-weight:500;color:rgba(255,255,255,.72);text-decoration:none}
.fh-msub a:hover,.fh-msub a[aria-current="page"]{color:#fff;text-decoration:none}
.fh-msub .fh-msub-all{color:var(--fh-blue);font-weight:700}

.fh-mfoot{display:grid;gap:26px;opacity:0;transform:translateY(14px);transition:opacity .45s .45s,transform .55s .45s var(--fh-ease)}
.fh-panel.is-open .fh-mfoot{opacity:1;transform:none}
.fh-mcta{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-radius:6px;background:var(--fh-grad);color:#fff;font-family:'DM Sans';font-weight:700;font-size:1.1rem;text-decoration:none}
.fh-mcta:hover{color:#fff;text-decoration:none}
.fh-mcontact{display:grid;gap:14px}
.fh-mcontact a,.fh-mcontact p{margin:0;display:flex;flex-direction:column;gap:2px;color:#fff;font-size:1rem;text-decoration:none;font-family:'DM Sans';font-weight:500}
.fh-mcontact a:hover{color:var(--fh-blue);text-decoration:none}
.fh-mlabel{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.fh-msocial{display:flex;gap:10px}
.fh-msocial a{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.16);border-radius:50%;color:#fff}
.fh-msocial a:hover{border-color:var(--fh-blue);color:var(--fh-blue)}

/* Breakpoints: full nav from 1200px; below that, the menu button */
@media (max-width:1349px){.fh-phone-num{display:none}.fh-link{padding:12px 11px}.fh-link::after{left:11px;right:11px}}
@media (max-width:1199px){
.fh-nav,.fh-cta{display:none}
.fh-toggle{display:inline-flex}
.fh-phone{width:46px;height:46px;justify-content:center;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(17,17,17,.35)}
.fh-phone svg{width:18px;height:18px}
.fh-actions{margin-left:auto;gap:10px}
.fh-bar{padding:16px 32px}
.fh-logo img{width:72px;height:72px}
.fh--scrolled .fh-logo img{width:56px;height:56px}
}
@media (max-width:420px){.fh-toggle-text{display:none}.fh-toggle{padding:0 5px;border-color:transparent;background:transparent}.fh-bar{padding:14px 20px}.fh-logo img{width:64px;height:64px}.fh--scrolled .fh-logo img{width:52px;height:52px}}
@media (min-width:1200px){.fh-panel{display:none}}
@media (prefers-reduced-motion:reduce){.fh,.fh-mitem,.fh-mfoot,.fh-panel,.fh-drop,.fh-link::after{transition:none}}
