:root {
  --es-sans: system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --es-serif: Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;
  --es-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}

html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: #2c3e50;
  font-family: var(--es-sans);
  -webkit-font-smoothing: antialiased;
}
a { color: #0070c9; }
a:hover { color: #0a3159; }
img { max-width: 100%; }

/* transitions on interactive elements */
a, button, input, select, textarea, summary {
  transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

/* hover treatments carried over from the design */
.h-navy:hover { background: #0a3159; }
.h-blue:hover { color: #0070c9; }
.h-bnavy:hover { border-color: #042341; }
.h-white:hover { color: #fff; }
.h-invert:hover { background: #fff; color: #042341; }
.h-bwhite:hover { border-color: #fff; }

/* focus */
:focus-visible { outline: 2px solid #0070c9; outline-offset: 2px; }
.es-field:focus { outline: none; border-color: #0070c9; box-shadow: 0 0 0 3px rgba(0,133,234,0.22); }
.es-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(0,133,234,0.35); }
.es-btn:active { transform: translateY(1px); }
.es-btn[disabled] { opacity: .75; cursor: progress; }

/* ---------------- navigation ---------------- */
.es-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; font-size: 15px; }
.es-nav-toggle {
  display: none; align-items: center; justify-content: center;
  width: 44px; height: 44px; padding: 0; margin: -4px 0;
  background: transparent; border: 1px solid #e8edf2; border-radius: 6px; cursor: pointer;
}
.es-nav-toggle:hover { border-color: #c3cdd8; }

@media (max-width: 760px) {
  .es-nav-toggle { display: inline-flex; }
  .es-nav {
    display: none; flex-basis: 100%; flex-direction: column;
    align-items: stretch; gap: 0; font-size: 17px;
  }
  .es-nav[data-open="true"] { display: flex; }
  .es-nav a {
    display: flex; align-items: center; min-height: 48px;
    padding: 4px 2px; border-top: 1px solid #e8edf2;
  }
  .es-nav a:last-child {
    justify-content: center; margin: 14px 0 6px;
    border-top: none; min-height: 50px;
  }
}

/* ---------------- mobile layout ---------------- */
@media (max-width: 560px) {
  main section { padding-left: 18px !important; padding-right: 18px !important; }
  .es-result-grid > div { border-right: none !important; }
}

/* details disclosure */
details summary { cursor: pointer; }
details summary::-webkit-details-marker { display: none; }
details summary::marker { content: ""; }
details summary:hover { color: #0a3159; }
details .es-plus { display: inline-block; transition: transform .18s ease; }
details[open] .es-plus { transform: rotate(45deg); }

@keyframes es-spin { to { transform: rotate(360deg); } }
.es-spinner {
  width: 16px; height: 16px; display: block; border-radius: 50%;
  border: 2px solid #c7e3fb; border-top-color: #0070c9;
  animation: es-spin 700ms linear infinite;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* honeypot — hidden from humans, visible to naive bots */
.es-hp {
  position: absolute; left: -9999px; top: auto;
  width: 1px; height: 1px; overflow: hidden;
}

[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .es-btn:active { transform: none; }
}
