/* Shared site chrome (header + footer) and the brand tokens.
 * Loaded by every page, including the generated blog / research / privacy
 * pages, so every rule is scoped under .es-header / .es-footer and nothing
 * here restyles page content. Colors: reference/Colors.pdf only, plus
 * --orange-text: the brand orange is 2.6:1 on white, so orange *text* uses
 * this darker shade (5.2:1, WCAG AA); fills and icons keep --orange.
 * Active nav items use #0A4FC4, not --blue: the hero glow behind the header
 * pulls --blue under 4.5:1. */
:root{
  --navy:#162B5B; --blue:#0163E2; --blue-mid:#326FEA; --blue-light:#518FFE;
  --blue-pale:#B0D7FF; --blue-faint:#EAF3FF;
  --orange:#FF784E; --green:#08DEAA; --aqua:#30D1FF; --lavender:#A3A9F5;
  --gray100:#FAFAFA; --gray200:#DBDFE2; --gray300:#BCC3C7; --gray400:#8B96AA;
  --gray500:#5A667C; --gray600:#2B3B47;
  --orange-text:#C2410C;
}
@keyframes es-drop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Skip link: the first focus stop on every page; hidden until focused. */
.es-skip{position:absolute;left:16px;top:-80px;z-index:100;background:#162B5B;color:#fff;padding:12px 18px;border-radius:6px;font:600 14px 'Inter',sans-serif;text-decoration:none}
.es-skip:focus{top:12px;outline:3px solid #0163E2;outline-offset:2px;box-shadow:0 0 0 2px #fff}

/* ---------- header ---------- */
.es-header{position:relative;z-index:30;border-bottom:1px solid rgba(43,59,71,.08);font-family:'Inter',sans-serif;line-height:normal}
.es-header *, .es-footer *{box-sizing:border-box}
.es-header p, .es-footer p{margin:0}
.es-header-in{max-width:1180px;margin:0 auto;padding:22px 32px;display:flex;align-items:center;gap:32px}
.es-logo{display:flex;align-items:flex-start;gap:1px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:19px;line-height:1.2;color:#162B5B;letter-spacing:-.01em;flex-shrink:0;text-decoration:none}
.es-logo:hover{color:#162B5B}
.es-tm{font-size:9px;font-weight:600;margin-top:2px}
.es-logo-sm{font-size:17px;letter-spacing:0}
.es-logo-sm .es-tm{font-size:8.5px}
.es-nav{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:500;margin-left:auto}
.es-nav > a{color:#2B3B47;text-decoration:none;transition:color .15s}
.es-nav > a:hover{color:#0A4FC4}
.es-nav > a.is-active{color:#0A4FC4;font-weight:600}
.es-menu{position:relative}
.es-menu-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:6px 0;font:500 14px 'Inter',sans-serif;color:#2B3B47;cursor:pointer;transition:color .15s}
.es-menu-btn:hover{color:#0A4FC4}
.es-menu-btn.is-active{color:#0A4FC4;font-weight:600}
.es-menu-btn svg{transition:transform .18s}
.es-menu[data-open="true"] .es-menu-btn svg{transform:rotate(180deg)}
.es-menu-panel{display:none;position:absolute;top:100%;left:-18px;padding-top:12px;z-index:40}
.es-menu[data-open="true"] .es-menu-panel{display:block}
.es-menu-card{width:360px;background:#fff;border:1px solid #DBDFE2;border-radius:12px;box-shadow:0 24px 48px -20px rgba(22,43,91,.35);padding:8px;display:flex;flex-direction:column;gap:2px;animation:es-drop .16s ease-out}
.es-menu-item{display:flex;gap:14px;padding:14px;border-radius:9px;align-items:flex-start;text-decoration:none;transition:background .15s}
.es-menu-item.es-fc:hover{background:#EAF3FF}
.es-menu-item.es-aj:hover{background:rgba(255,120,78,.08)}
.es-menu-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}
.es-fc .es-menu-ic{background:#EAF3FF}
.es-aj .es-menu-ic{background:rgba(255,120,78,.12)}
.es-menu-tx{display:flex;flex-direction:column;gap:3px}
.es-menu-t{font:700 15px 'Montserrat',sans-serif}
.es-fc .es-menu-t{color:#0163E2}
.es-aj .es-menu-t{color:#C2410C}
.es-menu-d{font-size:13px;line-height:1.45;color:#5A667C;font-weight:400}
.es-cta{background:#162B5B;color:#fff;padding:11px 20px;border-radius:6px;font-size:14px;font-weight:600;white-space:nowrap;text-decoration:none;transition:background .15s}
.es-cta:hover{background:#0163E2;color:#fff}
.es-burger{display:none;margin-left:auto;background:none;border:0;padding:6px;cursor:pointer;line-height:0}
.es-mobile{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid #DBDFE2;box-shadow:0 14px 24px -14px rgba(22,43,91,.2);padding:8px 24px 22px;flex-direction:column}
.es-mobile-label{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#5A667C;padding:14px 4px 6px}
.es-mobile a{padding:13px 4px;font-size:15px;font-weight:500;color:#2B3B47;border-bottom:1px solid #DBDFE2;text-decoration:none}
.es-mobile a.es-mobile-prod{padding:10px 4px;font:700 15px 'Montserrat',sans-serif;border-bottom:0}
.es-mobile a.es-mobile-prod.es-fc{color:#0163E2}
.es-mobile a.es-mobile-prod.es-aj{color:#C2410C;padding-bottom:14px;border-bottom:1px solid #DBDFE2}
.es-mobile a.es-mobile-cta{margin-top:16px;background:#162B5B;color:#fff;padding:13px 20px;border-radius:6px;font-size:14px;font-weight:600;text-align:center;border-bottom:0}
@media (max-width:1040px){
  .es-nav,.es-cta{display:none}
  .es-burger{display:block}
  .es-header[data-mobile-open="true"] .es-mobile{display:flex}
}

/* ---------- footer ---------- */
.es-footer{position:relative;z-index:2;overflow:hidden;font-family:'Inter',sans-serif;line-height:normal;background:#fff}
.es-footer-glow{position:absolute;right:-40px;bottom:-120px;width:520px;max-width:none;opacity:.45;mix-blend-mode:multiply;pointer-events:none}
.es-footer-in{position:relative;max-width:1180px;margin:0 auto;padding:56px 32px 44px}
.es-footer-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:32px;padding-bottom:32px;border-bottom:1px solid #DBDFE2}
.es-footer-cols{display:flex;gap:64px;flex-wrap:wrap}
.es-footer-col{display:flex;flex-direction:column;gap:9px}
.es-footer-h{margin:0 0 4px!important;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#5A667C}
.es-footer-col a{font-size:14px;font-weight:500;color:#2B3B47;text-decoration:none;transition:color .15s}
.es-footer-col a:hover{color:#0163E2}
.es-footer-col a.es-fc{font-weight:600;color:#0163E2}
.es-footer-col a.es-aj{font-weight:600;color:#C2410C}
.es-footer-col a.es-fc:hover,.es-footer-col a.es-aj:hover{color:#162B5B}
.es-footer-bottom{padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-size:13px;color:#5A667C}
.es-footer-legal{display:flex;align-items:center;gap:10px}
.es-footer-legal a{color:#5A667C;text-decoration:none;transition:color .15s}
.es-footer-legal a:hover{color:#0163E2}
.es-footer-legal a.es-footer-in-tile{margin-left:10px;width:30px;height:30px;border-radius:7px;border:1px solid #DBDFE2;background:#fff;display:grid;place-items:center;font:700 12px 'Inter',sans-serif;color:#162B5B;transition:border-color .15s,color .15s}
.es-footer-legal a.es-footer-in-tile:hover{border-color:#0163E2;color:#0163E2}

/* Two-tone ring (blue outside, white gap inside) so the indicator keeps 3:1
 * against both light and dark surroundings. */
.es-header a:focus-visible,.es-header button:focus-visible,.es-footer a:focus-visible{outline:3px solid #0163E2;outline-offset:2px;box-shadow:0 0 0 2px #fff}
@media (prefers-reduced-motion:reduce){
  .es-header *,.es-footer *{animation:none!important;transition:none!important}
}
