/* Shared header and footer. The home header overlays the hero; internal headers
   remain inside their navy page-header bar. All other chrome is the same. */
.site-header .nav{position:relative;left:-2px}
.site-header .top-cta{position:relative;top:1px;border-radius:30px}
.footer .copyright{top:67px;width:195px}
.footer .contact{top:58px;width:195px;overflow-wrap:anywhere}
.footer .contact a{color:inherit;text-decoration:none}

@media (min-width:1051px) and (max-width:1249px){
  .footer .copyright{left:310px}
  .footer .social{left:675px}
}

@media (max-width:1249px){
  .site-header.shell{position:relative;z-index:120;left:0!important;right:0!important;width:100%!important;max-width:none!important;height:100px!important;margin:0!important;padding:24px 24px 0!important;transform:none!important}
  body>.site-header.shell{position:absolute}
  .site-header .brand img{width:90px!important;height:auto!important}
  .site-header .top-cta{display:none!important}
  .site-header .menu-toggle{display:flex!important;visibility:visible!important;position:relative;z-index:130;margin-left:auto!important;width:44px;height:44px;padding:8px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:6px}
  .site-header .menu-toggle span{display:block;width:28px;border-top:2px solid #fff}
  body.menu-open .site-header .menu-toggle{visibility:hidden!important;opacity:0!important;pointer-events:none!important}

  .site-header .nav,.site-header .nav.open{display:flex!important;position:fixed!important;z-index:125;inset:0!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:100vw!important;max-width:none!important;min-width:0!important;height:100vh!important;height:100dvh!important;margin:0!important;padding:112px 28px 48px!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:24px!important;overflow:auto!important;border-radius:0!important;background:var(--navy)!important;transform:none!important;transition:none!important}
  .site-header .nav{visibility:hidden!important;opacity:0!important;pointer-events:none!important;clip-path:inset(0 0 0 100%)}
  .site-header .nav.open{visibility:visible!important;opacity:1!important;pointer-events:auto!important;clip-path:inset(0)}
  .site-header .nav .mobile-menu-head{display:flex!important;visibility:visible!important;position:absolute!important;z-index:130;top:28px!important;left:28px!important;right:28px!important;height:48px!important;align-items:center!important;justify-content:space-between!important}
  .site-header .nav .mobile-menu-brand{display:block;flex:0 0 auto}
  .site-header .nav .mobile-menu-brand img{display:block!important;width:92px!important;height:auto!important;filter:brightness(0) invert(1)}
  .site-header .nav .mobile-menu-head .mobile-close{display:grid!important;visibility:visible!important;position:static!important;flex:0 0 48px;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;padding:0!important;place-items:center!important;border:1px solid rgba(255,255,255,.55)!important;border-radius:50%!important;background:transparent!important;font-size:0!important;line-height:0!important}
  .site-header .nav .mobile-menu-head .mobile-close::before,.site-header .nav .mobile-menu-head .mobile-close::after{content:none!important;display:none!important}
  .site-header .nav .mobile-menu-head .mobile-close>img{display:block!important;width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important;margin:0!important;object-fit:contain!important}
  .site-header .nav>a:not(.mobile-menu-cta){display:block!important;min-height:0!important;padding:0!important;border:0!important;color:#fff!important;font-size:clamp(28px,4vw,40px)!important;line-height:1.08!important;font-weight:400!important;text-align:center!important;text-decoration:none!important}
  .site-header .nav>.mobile-menu-cta{display:flex!important;visibility:visible!important;align-items:center!important;justify-content:center!important;width:min(290px,100%)!important;height:58px!important;margin:14px 0 0!important;border-radius:30px!important;background:var(--cyan)!important;color:#fff!important;font-size:17px!important;line-height:1!important;font-weight:700!important;text-align:center!important;text-decoration:none!important}

  .footer .footer-grid{font-size:12px}
}
@media (max-width:780px){
  .site-header.shell{padding-left:18px!important;padding-right:18px!important}
  .footer{height:auto!important;min-height:0!important;padding:48px 18px!important;overflow:visible!important}
  .footer .footer-grid{position:static!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important;gap:24px!important;width:100%!important;height:auto!important;max-width:100%!important;margin:0 auto!important;justify-items:center!important;align-items:center!important;text-align:center!important}
  .footer .footer-logo,.footer .copyright,.footer .social,.footer .contact{position:static!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;max-width:100%!important;margin:0 auto!important;grid-column:1!important;text-align:center!important}
  .footer .footer-logo{order:1!important;width:120px!important;height:67px!important}
  .footer .copyright{order:2!important}
  .footer .contact{order:3!important;overflow-wrap:anywhere}
  .footer .social{order:4!important;display:flex!important;justify-content:center!important;gap:24px!important;width:100%!important}
}

@media (min-width:781px) and (max-width:900px){
  .footer{height:auto!important;min-height:0!important;padding:48px 18px!important;overflow:visible!important}
  .footer .footer-grid{position:static!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto!important;gap:24px!important;width:100%!important;height:auto!important;max-width:100%!important;margin:0 auto!important;justify-items:center!important;align-items:center!important;text-align:center!important}
  .footer .footer-logo,.footer .copyright,.footer .social,.footer .contact{position:static!important;left:auto!important;right:auto!important;top:auto!important;width:auto!important;max-width:100%!important;margin:0 auto!important;grid-column:1!important;text-align:center!important}
  .footer .footer-logo{order:1!important;width:120px!important;height:67px!important}
  .footer .copyright{order:2!important}
  .footer .contact{order:3!important;overflow-wrap:anywhere}
  .footer .social{order:4!important;display:flex!important;justify-content:center!important;gap:24px!important;width:100%!important}
}

/* Keep the full navigation through tablet widths; reserve the overlay menu for <=900px. */
@media (min-width:901px) and (max-width:1249px){
  .site-header.shell{position:relative!important;left:0!important;right:auto!important;width:calc(100% - 48px)!important;max-width:1200px!important;height:100px!important;margin:0 auto!important;padding:24px 0 0!important;transform:none!important}
  body>.site-header.shell{position:absolute!important;left:50%!important;transform:translateX(-50%)!important}
  .site-header .brand img{width:90px!important;height:auto!important}
  .site-header.shell .nav{display:flex!important;position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;z-index:auto!important;width:auto!important;max-width:none!important;min-width:0!important;height:auto!important;margin:0 0 0 auto!important;padding:18px 0 0!important;flex-direction:row!important;align-items:flex-start!important;justify-content:flex-start!important;gap:clamp(14px,1.8vw,24px)!important;overflow:visible!important;border-radius:0!important;background:transparent!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;clip-path:none!important;transform:none!important;transition:none!important}
  .site-header .nav>a:not(.mobile-menu-cta){display:block!important;min-height:0!important;padding:0!important;border:0!important;color:#fff!important;font-size:clamp(16px,1.44vw,18px)!important;line-height:24px!important;font-weight:400!important;white-space:nowrap!important;text-align:left!important}
  .site-header .nav .mobile-menu-head,.site-header .nav>.mobile-menu-cta{display:none!important}
  .site-header .top-cta{display:grid!important;flex:0 0 clamp(190px,17.6vw,220px)!important;width:clamp(190px,17.6vw,220px)!important;height:63px!important;margin-left:clamp(16px,2vw,28px)!important;font-size:16px!important;white-space:nowrap!important}
  .site-header .menu-toggle{display:none!important;visibility:hidden!important}
}

@media (max-width:900px){
  .site-header .nav{transition:clip-path 260ms ease-in-out,opacity 260ms ease-in-out,visibility 0s linear 260ms!important}
  .site-header .nav.open{transition:clip-path 260ms ease-in-out,opacity 260ms ease-in-out,visibility 0s linear 0s!important}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){
  .site-header .nav,.site-header .nav.open{transition:none!important}
}

.back-to-top{display:none}
@media (max-width:900px){
  .back-to-top:not([hidden]){
    position:fixed;
    right:calc(18px + env(safe-area-inset-right,0px));
    bottom:calc(18px + env(safe-area-inset-bottom,0px));
    z-index:100;
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    padding:0;
    border:1px solid var(--cyan);
    border-radius:50%;
    background:var(--navy);
    color:#fff;
    cursor:pointer;
    touch-action:manipulation;
  }
  .back-to-top:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
  .back-to-top:active{background:var(--ink,#102a4c)}
  body.menu-open .back-to-top{display:none}
}
