/* Shared public website header. Menus currently use homepage section links. */
.site-skip-link { position:fixed; left:5%; top:-80px; z-index:1200; padding:12px 20px; background:#fff; color:#071b43; border:2px solid #0799f4; border-radius:6px; }
.site-skip-link:focus { top:10px; }
.site-topbar { background:linear-gradient(110deg,#071b43,#103361); color:#c7d6ec; font-size:14px; letter-spacing:.01em; }
.site-topbar-inner,.site-topbar-contact,.site-topbar-meta { display:flex; align-items:center; gap:22px; }
.site-topbar-inner { justify-content:space-between; min-height:42px; }
.site-topbar a { color:#e8f2ff; display:inline-flex; align-items:center; gap:8px; }
.site-topbar a:hover { color:#73d5ff; }
.site-topbar i { color:#81cfff; font-size:14px; }
.site-topbar-divider { width:1px; height:12px; background:#ffffff26; }
.site-topbar-message { color:#a3b6d1; }
.site-hours { display:flex; align-items:center; gap:8px; }
.site-topbar-talk { border-left:1px solid #ffffff26; padding-left:22px; font-weight:600; }
.site-header { z-index:1030; background:rgba(255,255,255,.97); backdrop-filter:blur(16px); box-shadow:0 6px 28px #071b4310; border-bottom:1px solid #eaf0f8; }
.site-navbar { padding:0; position:static; }
.site-nav-inner { min-height:94px; }
.site-brand { display:inline-flex; flex-shrink:0; margin-right:40px; }
.site-brand img { width:150px; height:48px; object-fit:contain; }
#mainNav.site-nav-collapse { justify-content:space-between; gap:24px; }
.site-nav-list { list-style:none; display:flex; align-items:center; gap:8px; margin:0 auto; padding:0; }
.site-nav-link { display:flex; align-items:center; gap:9px; padding:36px 14px; color:#263750; font-size:16px; font-weight:600; white-space:nowrap; position:relative; cursor:pointer; line-height:22px; letter-spacing:-.01em; }
.site-nav-link:hover,.site-nav-link.is-active,.site-nav-details[open] > summary { color:#008bd9; }
.site-nav-link.is-active::after,.site-nav-details[open] > summary::after { content:""; position:absolute; height:3px; background:#0799f4; bottom:0; left:12px; right:12px; border-radius:3px 3px 0 0; }
.site-nav-link i { font-size:12px; transition:transform .2s; }
.site-nav-details[open] > summary i { transform:rotate(180deg); }
.site-nav-details > summary { list-style:none; }
.site-nav-details > summary::-webkit-details-marker { display:none; }
.site-nav-details > summary:focus-visible,.site-header a:focus-visible { outline:2px solid #0799f4; outline-offset:4px; border-radius:4px; }
.site-nav-actions { display:flex; align-items:center; gap:24px; flex-shrink:0; }
.site-nav-phone { display:flex; align-items:center; gap:9px; color:#172d4c; font-weight:700; font-size:15px; white-space:nowrap; }
.site-nav-phone small { display:block; font-size:12px; font-weight:400; color:#79879a; margin-bottom:1px; }
.site-phone-icon { width:40px; height:40px; display:grid; place-items:center; border:1px solid #e7edf5; background:#f3f8ff; border-radius:50%; font-size:16px; }
.site-quote-btn { display:inline-flex; align-items:center; justify-content:center; gap:18px; padding:16px 22px; background:linear-gradient(120deg,#0799f4,#007bdc); color:#fff; border-radius:10px; font-size:14px; font-weight:700; white-space:nowrap; box-shadow:0 5px 14px #0799f426; transition:background .2s,transform .2s; }
.site-quote-btn:hover { color:#fff; background:#0879d4; transform:translateY(-1px); }
.site-menu-eyebrow { font-size:12px; font-weight:700; letter-spacing:.13em; color:#71819a; }
.site-mega-panel { position:absolute; top:100%; left:5%; right:5%; background:#fff; border:1px solid #e3eaf4; border-top:3px solid #0799f4; border-radius:0 0 12px 12px; box-shadow:0 22px 50px #071b4326; overflow:hidden; }
.site-mega-intro { display:flex; align-items:center; gap:22px; padding:20px 28px; border-bottom:1px solid #edf1f7; }
.site-mega-intro p { margin:0; color:#263d5d; font-size:16px; }
.site-mega-intro > a { margin-left:auto; font-size:14px; font-weight:600; color:#008bd9; }
.site-mega-grid { display:grid; grid-template-columns:1fr 1fr 1fr 1.05fr; gap:24px; padding:28px; }
.site-menu-column .site-menu-title { font-size:16px; font-weight:700; display:flex; align-items:center; gap:9px; margin:0 0 18px; letter-spacing:-.015em; }
.site-menu-icon { width:38px; height:38px; background:#edf7ff; color:#008bd9; border-radius:8px; display:grid; place-items:center; flex-shrink:0; font-size:18px; }
.site-menu-column > a { display:block; padding:10px 9px; margin:0 -9px 3px; border-radius:9px; font-size:15px; font-weight:600; color:#33435d; transition:background .15s; }
.site-menu-column > a span { display:block; margin-top:5px; font-size:13px; font-weight:400; color:#718099; line-height:1.6; }
.site-menu-column > a:hover { background:#f1f8ff; color:#008bd9; }
.site-menu-feature { padding:24px; background:linear-gradient(135deg,#09234a,#0c3c65); border-radius:8px; color:#fff; position:relative; overflow:hidden; }
.site-menu-feature::after { content:""; width:140px; height:140px; border:1px solid #ffffff12; border-radius:50%; position:absolute; right:-65px; top:-60px; pointer-events:none; }
.site-menu-feature-icon { display:block; font-size:22px; color:#71d3ff; margin-bottom:12px; }
.site-menu-feature .site-menu-eyebrow { font-size:11px; color:#79d1fc; }
.site-menu-feature .site-menu-feature-title { font-size:30px; line-height:1.2; font-weight:700; margin:10px 0; color:#fff; }
.site-menu-feature p { font-size:14px; line-height:1.7; color:#c4d3e4; margin-bottom:18px; }
.site-menu-feature a { color:#fff; font-size:14px; font-weight:600; display:flex; justify-content:space-between; gap:8px; }
.site-mega-bottom { background:#f7faff; border-top:1px solid #edf1f7; display:flex; justify-content:space-between; gap:20px; padding:16px 28px; font-size:13px; color:#71819a; }
.site-mega-bottom i { color:#0799f4; margin-right:6px; }
.site-mega-bottom a { color:#263d5d; font-weight:600; }
.site-company-details { position:relative; }
.site-company-panel { position:absolute; top:100%; left:0; width:340px; background:#fff; padding:22px 14px 12px; border:1px solid #e3eaf4; border-top:3px solid #0799f4; border-radius:0 0 10px 10px; box-shadow:0 18px 40px #071b4326; }
.site-company-panel > .site-menu-eyebrow { display:block; padding:0 10px 12px; }
.site-company-panel > a { display:flex; align-items:center; gap:13px; padding:12px 10px; border-radius:6px; color:#263d5d; font-size:15px; font-weight:600; }
.site-company-panel > a > i { color:#008bd9; font-size:21px; }
.site-company-panel small { display:block; font-size:13px; color:#8390a3; font-weight:400; margin-top:3px; }
.site-company-panel > a:hover { background:#f1f8ff; color:#008bd9; }
.site-menu-toggle { display:flex; align-items:center; gap:8px; border:1px solid #e2eaf4; border-radius:6px; padding:8px 12px; color:#263d5d; font-size:15px; font-weight:600; }
.site-menu-toggle i { font-size:23px; }
.site-menu-toggle:focus { box-shadow:0 0 0 3px #0799f426; }
@media (min-width:1200px) and (max-width:1399.98px) {
  .site-brand { margin-right:20px; }
  .site-nav-link { padding-left:10px; padding-right:10px; font-size:15px; }
  .site-nav-actions { gap:14px; }
  .site-nav-collapse { gap:12px; }
  .site-nav-phone { font-size:14px; }
  .site-quote-btn { gap:10px; padding:14px 16px; font-size:14px; }
}
@media (max-width:1199.98px) {
  .site-nav-inner { min-height:76px; }
  .site-brand img { width:140px; height:44px; }
  #mainNav.site-nav-collapse { position:absolute; top:100%; left:0; right:0; background:#fff; padding:0; max-height:calc(100dvh - 76px); overflow-y:auto; overscroll-behavior:contain; box-shadow:0 15px 25px #071b431a; border-top:1px solid #edf1f7; }
  .site-nav-list { display:block; padding:12px 5%; margin:0; }
  .site-nav-link { padding:14px 0; justify-content:space-between; font-size:16px; }
  .site-nav-link.is-active::after,.site-nav-details[open] > summary::after { display:none; }
  .site-nav-list > li + li { border-top:1px solid #f0f3f8; }
  .site-mega-panel,.site-company-panel { position:static; width:auto; border:1px solid #e3eaf4; border-radius:8px; box-shadow:none; margin-bottom:16px; }
  .site-mega-intro { flex-wrap:wrap; padding:18px; gap:8px; }
  .site-mega-intro > a { margin-left:0; width:100%; }
  .site-mega-intro p { width:100%; }
  .site-mega-grid { grid-template-columns:1fr 1fr; gap:24px; padding:20px; }
  .site-menu-column > a { font-size:15px; }
  .site-menu-column > a span { font-size:13px; }
  .site-mega-bottom { padding:14px 18px; flex-wrap:wrap; gap:8px; }
  .site-nav-actions { border-top:1px solid #edf1f7; padding:20px 5%; justify-content:space-between; background:#f8fbff; }
  .site-nav-phone { font-size:15px; }
}
@media (max-width:767.98px) {
  .site-topbar-inner { min-height:38px; }
  .site-topbar-message,.site-topbar-divider,.site-hours { display:none; }
  .site-topbar-talk { padding-left:0; border:0; font-size:12px; }
  .site-topbar { font-size:12px; }
  .site-topbar-contact,.site-topbar-meta { gap:0; }
  .site-nav-inner { min-height:72px; }
  .site-nav-actions { flex-wrap:wrap; gap:16px; }
  .site-mega-grid { grid-template-columns:1fr; padding:18px; gap:20px; }
  .site-menu-column .site-menu-title { margin-bottom:8px; }
  .site-menu-feature .site-menu-feature-title br { display:none; }
  .site-menu-feature { padding:22px; }
  .site-brand { margin-right:0; }
  .site-quote-btn { font-size:14px; padding:14px; gap:10px; }
  .site-nav-phone { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) {
  .site-header *, .site-header *::before, .site-header *::after { transition:none !important; }
}

/* Generous desktop type without crowding smaller laptop screens. */
@media (min-width:1200px) and (max-width:1599.98px) {
  .site-nav-actions .site-nav-phone { display:none; }
}
@media (min-width:1200px) {
  .site-nav-link::before { content:""; position:absolute; inset:22px 3px; background:#edf7ff; border-radius:9px; opacity:0; transition:opacity .18s; z-index:-1; }
  .site-nav-link { isolation:isolate; }
  .site-nav-link:hover::before,.site-nav-details[open] > summary::before { opacity:1; }
  .site-mega-panel,.site-company-panel { animation:site-menu-reveal .18s ease-out; }
}
@keyframes site-menu-reveal {
  from { opacity:0; transform:translateY(6px); }
  to { opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion:reduce) {
  .site-mega-panel,.site-company-panel { animation:none; }
}

@media (min-width:1200px) { .site-solutions-panel { width:380px; } }
.website-solution[id] { scroll-margin-top:120px; }
@media(min-width:1200px){.site-mega-grid{grid-template-columns:repeat(calc(var(--menu-columns,3) + var(--menu-feature,1)),minmax(0,1fr))}}
@media(min-width:992px){.iw-footer-container[data-menu-columns="3"]{grid-template-columns:1.3fr repeat(3,minmax(0,1fr)) 1fr}.iw-footer-container[data-menu-columns="1"]{grid-template-columns:1.3fr 1fr 1fr}.iw-footer-container[data-menu-columns="0"]{grid-template-columns:1.3fr 1fr}}
.site-company-panel a[aria-current="page"],.site-menu-column a[aria-current="page"]{background:#eef8ff;color:#008bd9}

