:root{
  --jm-primary:#173f8a;
  --jm-primary-hover:#10336f;
  --jm-primary-container:#dbe7ff;
  --jm-on-primary:#fff;
  --jm-text:#18202a;
  --jm-text-soft:#5d6673;
  --jm-outline:#d9dee7;
  --jm-surface:#fff;
  --jm-surface-1:#f7f9fc;
  --jm-shadow-raised:0 16px 40px rgba(20,36,61,.12);
  --jm-radius-pill:999px;
  --jm-max:1560px;
  --jm-font:Inter,Roboto,"Helvetica Neue",Arial,sans-serif;
  --jm-shell-gutter:clamp(14px,3vw,48px);
  --jm-header-height:72px
}
.skip-link{
  position:fixed;
  z-index:1000;
  top:0;
  left:0;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
  color:#fff!important;
  background:#000;
  border-radius:8px;
  text-decoration:none!important
}
.skip-link:focus,.skip-link:focus-visible{
  top:10px;
  left:10px;
  width:auto;
  height:auto;
  padding:10px 14px;
  overflow:visible;
  clip:auto;
  clip-path:none;
  white-space:normal
}
.site-header,.site-footer{font-family:var(--jm-font);font-weight:400}
.site-header *,.site-footer *{box-sizing:border-box}
.site-header{position:sticky;z-index:50;top:0;min-height:var(--jm-header-height);border-bottom:1px solid rgba(207,215,226,.88);background:rgba(247,249,252,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.site-header .container,.site-footer .container{width:min(calc(100% - (var(--jm-shell-gutter) * 2)),var(--jm-max));margin-inline:auto}
.header-inner{display:flex;min-height:var(--jm-header-height);align-items:center;justify-content:space-between;gap:clamp(14px,1.8vw,28px)}
.brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none}
.brand--image{min-width:0;flex:0 0 auto;line-height:0}
.site-header .brand-logo--header{display:block;width:auto;max-width:none;height:clamp(34px,2.7vw,42px);object-fit:contain}
.site-header .brand--image{flex-direction:column;align-items:flex-end;gap:2px}
.site-header .brand-beta{color:var(--jm-primary);font-size:.625rem;font-weight:800;letter-spacing:.15em;line-height:1.15;text-transform:uppercase;padding-inline:1px}
.nav{display:flex;min-width:0;flex:1 1 auto;align-items:center;justify-content:center;gap:clamp(0px,.35vw,6px)}
.nav a{display:inline-flex;min-height:44px;align-items:center;padding:10px clamp(8px,.75vw,13px);color:#3f4855;border-radius:var(--jm-radius-pill);font-size:clamp(.86rem,.78vw,.95rem);font-weight:650;line-height:1.2;text-decoration:none;white-space:nowrap}
.nav a:hover,.nav a[aria-current="page"]{color:var(--jm-primary);background:var(--jm-primary-container)}
.header-actions{display:flex;flex:0 0 auto;align-items:center;gap:10px}
.site-header .button,.mobile-menu__quick .button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid transparent;border-radius:var(--jm-radius-pill);font:inherit;font-size:.92rem;font-weight:700;line-height:1.25;text-align:center;text-decoration:none;white-space:nowrap}
.site-header .button--primary,.mobile-menu__quick .button--primary{color:var(--jm-on-primary);background:var(--jm-primary);box-shadow:0 7px 18px rgba(23,63,138,.2)}
.site-header .button--primary:hover,.mobile-menu__quick .button--primary:hover{background:var(--jm-primary-hover)}
.site-header .button--secondary,.mobile-menu__quick .button--secondary{color:var(--jm-primary);background:var(--jm-surface);border-color:var(--jm-outline)}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{display:grid;width:48px;height:48px;place-content:center;gap:4px;cursor:pointer;list-style:none;color:var(--jm-text);background:var(--jm-surface);border:1px solid var(--jm-outline);border-radius:14px}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary .mobile-menu__bar{display:block;width:21px;height:2px;background:currentColor;border-radius:99px}
.mobile-menu[open] summary{color:var(--jm-primary);border-color:#b9cbed;background:var(--jm-primary-container)}
.mobile-menu__panel{position:absolute;z-index:70;top:54px;right:0;display:grid;width:min(390px,calc(100vw - (var(--jm-shell-gutter) * 2)));min-width:0;padding:12px;background:var(--jm-surface);border:1px solid var(--jm-outline);border-radius:18px;box-shadow:var(--jm-shadow-raised)}
.mobile-menu__quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--jm-outline)}
.mobile-menu__quick .button{min-width:0;min-height:46px;padding-inline:12px;font-size:.9rem;white-space:normal}
.mobile-menu__group{display:grid;gap:2px;padding-top:10px}
.mobile-menu__group+.mobile-menu__group{margin-top:6px;border-top:1px solid var(--jm-outline)}
.mobile-menu__label{padding:6px 12px 4px;color:var(--jm-text-soft);font-size:.72rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.mobile-menu__group a{display:flex;min-height:46px;align-items:center;padding:10px 12px;color:var(--jm-text);border-radius:11px;font-weight:700;line-height:1.3;text-decoration:none;overflow-wrap:anywhere}
.mobile-menu__group a:hover,.mobile-menu__group a:focus-visible,.mobile-menu__group a[aria-current="page"]{color:var(--jm-primary);background:var(--jm-primary-container)}
.site-header :where(a,summary):focus-visible,.site-footer :where(a,button):focus-visible{outline:3px solid #8ab0f5;outline-offset:3px}
.site-footer{margin-top:clamp(32px,5vw,72px);padding:clamp(42px,5vw,68px) 0 max(24px,env(safe-area-inset-bottom));color:#e8edf5;background:#111821}
.footer-grid{display:grid}
.footer-grid--wide{grid-template-columns:minmax(260px,1.2fr) repeat(3,minmax(170px,.8fr));gap:clamp(28px,4vw,64px);align-items:start}
.footer-brand{min-width:0}
.footer-brand .brand--footer{display:inline-flex;margin-bottom:18px}
.site-footer .brand-logo--footer{display:block;width:auto;max-width:none;height:46px;object-fit:contain}
.footer-brand p{max-width:430px;margin:0;color:#aeb8c6;line-height:1.7;font-weight:400}
.footer-nav{min-width:0}
.footer-title{margin:0 0 14px;color:#f4f7fb;font-size:.8rem;font-weight:800;line-height:1.3;letter-spacing:.08em;text-transform:uppercase}
.footer-links{display:grid;gap:2px}
.footer-links a,.footer-link-button{display:flex;width:fit-content;max-width:100%;min-height:38px;align-items:center;padding:7px 0;color:#c9d1dc;background:transparent;border:0;font:inherit;font-size:1rem;font-weight:400;line-height:1.35;text-align:left;text-decoration:none}
.footer-links a:hover,.footer-link-button:hover,.footer-link-button:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-top:clamp(34px,4vw,52px);padding-top:22px;color:#8f9aa8;border-top:1px solid #2c3541;font-size:.86rem;font-weight:400}
@media(max-width:1180px){
  :root{--jm-header-height:68px}
  .nav,.header-actions{display:none}
  .mobile-menu{display:block;margin-left:auto}
  .site-header .brand-logo--header{height:36px}
  .footer-grid--wide{grid-template-columns:minmax(240px,1.2fr) repeat(2,minmax(180px,.8fr))}
  .footer-brand{grid-column:1/-1}
  .footer-brand p{max-width:720px}
}
@media(max-width:760px){
  :root{--jm-shell-gutter:14px;--jm-header-height:64px}
  .site-header .brand-logo--header{height:32px}
  .mobile-menu summary{width:46px;height:46px}
  .mobile-menu__panel{position:fixed;top:calc(var(--jm-header-height) + env(safe-area-inset-top));right:var(--jm-shell-gutter);left:var(--jm-shell-gutter);width:auto;max-height:calc(100dvh - var(--jm-header-height) - 24px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
  .footer-grid--wide{grid-template-columns:1fr;gap:34px}
  .footer-brand{grid-column:auto}
  .footer-links a,.footer-link-button{width:100%;min-height:44px}
  .site-footer .brand-logo--footer{height:40px}
  .footer-bottom{align-items:flex-start;gap:8px}
}
@media(max-width:420px){
  :root{--jm-shell-gutter:12px}
  .mobile-menu__quick{grid-template-columns:1fr}
  .mobile-menu__panel{right:10px;left:10px}
  .site-header .brand-logo--header{height:29px}
  .site-footer .brand-logo--footer{height:38px}
}
@media(max-width:350px){
  :root{--jm-shell-gutter:10px}
  .site-header .brand-logo--header{height:27px}
  .mobile-menu summary{width:42px;height:42px}
}
@media(prefers-reduced-motion:reduce){
  .site-header *,.site-footer *{scroll-behavior:auto!important;transition-duration:.01ms!important}
}
@media print{.site-header,.site-footer,.skip-link{display:none!important}}

/* Search-first navigation: one discreet hamburger, a real right-side drawer. */
.site-header .nav,
.site-header .header-actions { display: none; }
.site-header .mobile-menu { display: block; margin-left: auto; }
.site-header .mobile-menu__backdrop {
  display: none;
  position: fixed;
  z-index: 60;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  padding: 0;
  border: 0;
  background: rgba(9, 21, 41, .42);
  cursor: default;
}
.site-header .mobile-menu[open] > .mobile-menu__backdrop { display: block; }
.site-header .mobile-menu__panel {
  position: fixed;
  z-index: 70;
  top: 0;
  right: 0;
  bottom: 0;
  left: auto;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: min(370px, 100vw);
  min-width: 0;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 0;
  border-left: 1px solid var(--jm-outline);
  border-radius: 0;
  padding: max(17px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
  background: var(--jm-surface);
  box-shadow: -12px 0 48px rgba(10, 23, 44, .17);
}
.mobile-menu__panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  color: var(--jm-text);
  font-size: 1.08rem;
}
.mobile-menu__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--jm-outline);
  border-radius: 12px;
  background: var(--jm-surface-1);
  color: var(--jm-text);
  cursor: pointer;
  font: inherit;
  font-size: 1.15rem;
}
.mobile-menu__close:hover { color: var(--jm-primary); border-color: var(--jm-primary); }
.site-header .mobile-menu__group a { font-size: .91rem; font-weight: 600; }
.site-header .mobile-menu__quick { flex: 0 0 auto; }
@media (max-width: 420px) {
  .site-header .mobile-menu__panel {
    width: min(100vw, 355px);
    right: 0;
    left: auto;
    padding-inline: 18px;
  }
}

/* The search-engine landing page is intentionally free of portal chrome. */
.footer-minimal-links { display: none; }
body.search-homepage {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  background: var(--jm-surface);
}
body.search-homepage .site-header {
  flex: 0 0 auto;
  background: var(--jm-surface);
  border-bottom: 0;
  backdrop-filter: none;
}
body.search-homepage .site-header .brand { visibility: hidden; }
body.search-homepage .page {
  display: flex;
  flex: 1 0 auto;
  min-height: 0;
  flex-direction: column;
}
body.search-homepage .site-footer {
  flex: 0 0 auto;
  margin-top: 0;
  padding: 8px 0 max(14px, env(safe-area-inset-bottom));
  color: var(--jm-text-soft);
  background: var(--jm-surface);
  border-top: 1px solid var(--jm-outline);
}
body.search-homepage .site-footer .footer-grid { display: none; }
body.search-homepage .site-footer .footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 10px 22px;
  flex-wrap: wrap;
  margin-top: 0;
  padding-top: 0;
  border: 0;
  color: var(--jm-text-soft);
  font-size: .78rem;
}
body.search-homepage .site-footer .footer-minimal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 18px;
}
body.search-homepage .site-footer .footer-minimal-links a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  color: var(--jm-text-soft);
}
body.search-homepage .site-footer .footer-minimal-links a:hover {
  color: var(--jm-primary);
}
body.search-homepage .site-footer .footer-domain { display: none; }
@media (max-width: 520px) {
  body.search-homepage .site-footer .footer-bottom {
    justify-content: center;
    text-align: center;
  }
  body.search-homepage .site-footer .footer-minimal-links {
    justify-content: center;
  }
}

/* The fixed navigation drawer must not be confined by a blurred header. */
.site-header { backdrop-filter: none; -webkit-backdrop-filter: none; }

/* All non-legal navigation lives in the hamburger drawer, not the footer. */
.site-footer {
  margin-top: 30px;
  padding: 12px 0 max(14px, env(safe-area-inset-bottom));
  color: var(--jm-text-soft);
  background: var(--jm-surface-1);
  border-top: 1px solid var(--jm-outline);
  box-shadow: none;
}
.site-footer .footer-grid { display: none !important; }
.site-footer .footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  color: var(--jm-text-soft);
  font-size: .8rem;
}
.site-footer .footer-minimal-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px 19px;
}
.site-footer .footer-minimal-links a {
  display: inline-flex;
  align-items: center;
  min-height: 39px;
  color: var(--jm-text-soft);
  font-size: .8rem;
}
.site-footer .footer-minimal-links a:hover { color: var(--jm-primary); text-decoration: underline; }
.site-footer .footer-domain { display: none; }
@media (max-width: 520px) {
  .site-footer .footer-bottom { justify-content: center; text-align: center; }
}
