.site-topbar { color: #d9e7f7; background: var(--jas-ink); font-size: .78rem; }
.site-topbar__inner { display: flex; min-height: 34px; justify-content: space-between; gap: 1rem; align-items: center; }
.site-topbar__location, .site-topbar__proof { display: flex; gap: .45rem; align-items: center; }
.site-topbar .jas-icon { width: 1rem; height: 1rem; color: #7fe3f1; }
.site-topbar a { color: #fff; text-decoration: none; }
.site-header { position: sticky; z-index: 1000; top: 0; border-bottom: 1px solid rgba(219, 227, 237, .8); background: rgba(255, 255, 255, .96); box-shadow: 0 4px 20px rgba(11,18,32,.04); backdrop-filter: blur(14px); }
.admin-bar .site-header { top: 32px; }
.site-header__inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 82px; gap: clamp(1rem, 2.5vw, 2.25rem); align-items: center; }
.site-branding { min-width: 210px; }
.custom-logo-link { display: block; }
.custom-logo { width: auto; max-width: 220px; max-height: 58px; }
.brand-lockup { display: inline-flex; gap: .72rem; align-items: center; color: var(--jas-ink); text-decoration: none; }
.brand-lockup:hover { color: var(--jas-ink); }
.brand-mark { display: grid; width: 2.8rem; height: 2.8rem; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: .78rem; color: #fff; background: linear-gradient(135deg, var(--jas-accent), var(--jas-cyan)); box-shadow: 0 8px 20px rgba(22,119,255,.22); font-weight: 900; line-height: 1; letter-spacing: -.12em; transform: skew(-4deg); }
.brand-mark span { display: grid; place-items: center; }
.brand-mark span:last-child { color: #c9f7ff; transform: translateX(-.08rem); }
.brand-copy { display: grid; line-height: 1.18; }
.brand-copy strong { font-size: 1.15rem; letter-spacing: -.02em; }
.brand-copy small { max-width: 190px; margin-top: .18rem; color: var(--jas-muted); font-size: .67rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.primary-navigation { justify-self: center; }
.primary-menu { display: flex; align-items: center; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.primary-menu li { position: relative; margin: 0; }
.primary-menu > li > a { display: flex; min-height: 44px; align-items: center; padding: .55rem .68rem; border-radius: .6rem; color: #25344a; font-size: .88rem; font-weight: 700; text-decoration: none; }
.primary-menu > li > a:hover, .primary-menu > .current-menu-item > a, .primary-menu > .current-menu-ancestor > a { color: var(--jas-accent-dark); background: #eef6ff; }
.primary-menu .menu-item-has-children > a::after { content: ""; width: .42rem; height: .42rem; margin-left: .45rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-.12rem); }
.primary-menu .sub-menu { position: absolute; top: calc(100% + .55rem); left: 0; z-index: 20; width: 250px; margin: 0; padding: .55rem; visibility: hidden; opacity: 0; border: 1px solid var(--jas-line); border-radius: .9rem; background: #fff; box-shadow: var(--jas-shadow); list-style: none; transform: translateY(.4rem); transition: opacity .18s ease, transform .18s ease, visibility .18s; }
.primary-menu .sub-menu::before { content: ""; position: absolute; inset: -.7rem 0 auto; height: .8rem; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }
.primary-menu .sub-menu a { display: block; padding: .68rem .72rem; border-radius: .55rem; color: #26354a; font-size: .86rem; font-weight: 650; text-decoration: none; }
.primary-menu .sub-menu a:hover { color: var(--jas-accent-dark); background: var(--jas-cloud); }
.site-header__actions { display: flex; gap: .8rem; align-items: center; }
.header-phone { display: flex; gap: .55rem; align-items: center; color: var(--jas-ink); text-decoration: none; }
.header-phone > .jas-icon { color: var(--jas-accent); }
.header-phone span { display: grid; line-height: 1.1; }
.header-phone small { color: var(--jas-muted); font-size: .65rem; }
.header-phone strong { margin-top: .15rem; font-size: .85rem; }
.nav-toggle { display: none; width: 44px; height: 44px; place-items: center; border: 1px solid var(--jas-line); border-radius: .7rem; background: #fff; }
.nav-toggle__close { display: none; }
.nav-toggle .jas-icon { width: 1.45rem; height: 1.45rem; }

.cta-strip { color: #dce8f8; background: linear-gradient(130deg, var(--jas-accent-dark), #123f86 55%, var(--jas-ink)); }
.cta-strip__inner { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 2rem; align-items: center; padding-block: clamp(2.5rem, 5vw, 4rem); }
.cta-strip h2 { margin-bottom: .35rem; color: #fff; font-size: clamp(1.7rem, 3.5vw, 2.7rem); }
.cta-strip p:not(.eyebrow) { max-width: 720px; margin: 0; }

.site-footer { color: #b9c8da; background: #080e19; }
.site-footer__grid { display: grid; grid-template-columns: 1.35fr .8fr .8fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); padding-block: clamp(3.5rem, 7vw, 6rem); }
.site-footer h2 { margin-bottom: 1rem; color: #fff; font-size: .86rem; letter-spacing: .09em; text-transform: uppercase; }
.brand-lockup--footer .brand-copy strong { color: #fff; }
.brand-lockup--footer .brand-copy small { color: #a7b7ca; }
.footer-brand > p { max-width: 390px; margin-top: 1rem; }
.footer-location { display: flex; gap: .45rem; align-items: flex-start; font-size: .88rem; }
.footer-location .jas-icon { margin-top: .2rem; color: #7fe3f1; }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin: .55rem 0; }
.footer-links a { color: #b9c8da; text-decoration: none; }
.footer-links a:hover { color: #fff; }
.footer-contact { display: grid; align-content: start; gap: .75rem; }
.footer-contact > a:not(.button) { display: flex; gap: .55rem; align-items: center; color: #dce8f8; text-decoration: none; word-break: break-word; }
.footer-contact > a .jas-icon { color: #7fe3f1; }
.footer-contact .button { margin-top: .35rem; justify-self: start; }
.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); }
.site-footer__bottom-inner { display: flex; min-height: 68px; flex-wrap: wrap; gap: .8rem 1.4rem; justify-content: space-between; align-items: center; font-size: .76rem; }
.site-footer__bottom p { margin: 0; }
.legal-menu { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.legal-menu li { margin: 0; }
.legal-menu a { color: #b9c8da; text-decoration: none; }
.site-credit { color: #7d8ca0; }

@media (max-width: 1120px) {
  .site-header__inner { grid-template-columns: auto auto 1fr; }
  .primary-navigation { position: fixed; inset: 116px 0 auto; max-height: calc(100vh - 116px); overflow: auto; visibility: hidden; opacity: 0; border-top: 1px solid var(--jas-line); background: #fff; box-shadow: var(--jas-shadow); transform: translateY(-.6rem); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
  .admin-bar .primary-navigation { inset-block-start: 148px; }
  .site-header.is-nav-open .primary-navigation { visibility: visible; opacity: 1; transform: translateY(0); }
  .primary-menu { display: block; width: min(var(--jas-max), calc(100% - 2rem)); margin: 0 auto; padding: 1rem 0 1.4rem; }
  .primary-menu > li > a { min-height: 46px; justify-content: space-between; }
  .primary-menu .sub-menu { position: static; width: auto; padding: .15rem 0 .45rem 1rem; visibility: visible; opacity: 1; border: 0; box-shadow: none; transform: none; transition: none; }
  .primary-menu .sub-menu a { padding-block: .55rem; }
  .nav-toggle { display: grid; justify-self: end; }
  .site-header.is-nav-open .nav-toggle__menu { display: none; }
  .site-header.is-nav-open .nav-toggle__close { display: block; }
  .site-header__actions { justify-self: end; }
}
@media (max-width: 820px) {
  .site-header__inner { grid-template-columns: 1fr auto; min-height: 72px; }
  .site-header__actions { display: none; }
  .primary-navigation { inset-block-start: 106px; }
  .admin-bar .primary-navigation { inset-block-start: 152px; }
  .site-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cta-strip__inner { grid-template-columns: 1fr; }
}
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}
@media (max-width: 620px) {
  .site-topbar__proof { display: none; }
  .site-topbar__inner { justify-content: center; }
  .site-branding { min-width: 0; }
  .brand-copy small { display: none; }
  .primary-navigation { inset-block-start: 106px; }
  .admin-bar .primary-navigation { inset-block-start: 152px; }
  .site-footer__grid { grid-template-columns: 1fr; }
  .site-footer__bottom-inner { align-items: flex-start; padding-block: 1.2rem; flex-direction: column; }
  .cta-strip .button-group { width: 100%; }
}
