
:root {
  --ink: #17365D;
  --accent: #0070C0;
  --muted: #4f5965;
  --line: #dbe4ef;
  --soft: #f4f8fc;
  --soft-blue: #eef6ff;
  --paper: #ffffff;
}
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--ink); }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; color: #111; background: #fff; line-height: 1.55; }
a { color: inherit; }

.map-skip-link {
  position: fixed; left: 12px; top: 8px; z-index: 10000; transform: translateY(-160%);
  background: #fff; border: 2px solid var(--accent); border-radius: 8px; padding: 10px 14px;
  font: 700 14px/1.2 Arial, Helvetica, sans-serif; text-decoration: none;
  box-shadow: 0 4px 18px rgba(0,0,0,.18); color: var(--ink) !important;
}
.map-skip-link:focus { transform: none; }

.map-global-header { background:#fff; border-bottom:1px solid var(--line); color:var(--ink); position:relative; z-index:190; }
.map-nav-inner { max-width:1120px; margin:0 auto; padding:10px 16px; display:flex; align-items:center; gap:18px; position:relative; }
.map-nav-brand { display:inline-flex; align-items:center; min-height:44px; font-weight:800; font-size:18px; text-decoration:none; white-space:nowrap; color:var(--ink)!important; }
.map-nav-toggle { display:none; margin-left:auto; min-width:44px; min-height:44px; border:1px solid #b8c5d3; border-radius:9px; background:#fff; color:var(--ink); cursor:pointer; padding:8px 11px; }
.map-nav-toggle span, .map-nav-toggle span::before, .map-nav-toggle span::after { display:block; width:20px; height:2px; background:var(--ink); position:relative; content:""; }
.map-nav-toggle span::before { position:absolute; top:-6px; }
.map-nav-toggle span::after { position:absolute; top:6px; }
.map-nav-links { display:flex; align-items:center; gap:4px 10px; margin:0 0 0 auto; padding:0; list-style:none; }
.map-nav-links a { display:inline-flex; align-items:center; min-height:44px; padding:7px 6px; border-radius:7px; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; color:var(--ink)!important; }
.map-nav-links a:hover, .map-nav-links a:focus-visible { background:#eef6ff; text-decoration:underline; text-underline-offset:3px; }
.map-nav-links a[aria-current="page"], .map-nav-links a[aria-current="location"] { background:#e8f3ff; color:#005f9f!important; }

.map-breadcrumb-wrap { background:#fff; border-bottom:1px solid #edf1f5; }
.map-breadcrumb { max-width:1120px; margin:0 auto; padding:9px 16px; display:flex; flex-wrap:wrap; align-items:center; gap:4px 7px; color:#5a6878; font-size:12.5px; line-height:1.45; }
.map-breadcrumb a { text-decoration:none; min-height:28px; display:inline-flex; align-items:center; color:#46617d!important; }
.map-breadcrumb a:hover, .map-breadcrumb a:focus-visible { text-decoration:underline; }
.map-breadcrumb [aria-current="page"] { color:#26394d; font-weight:700; }

.hero { background:linear-gradient(#eef6ff,#f8fbff); border-bottom:1px solid var(--line); }
.hero-inner, .content { max-width:980px; margin:auto; padding:44px 18px; }
.eyebrow { color:var(--accent); font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:13px; }
h1 { color:var(--ink); font-size:clamp(34px,5vw,52px); line-height:1.03; margin:10px 0 16px; }
h2 { color:var(--ink); font-size:29px; line-height:1.15; margin:0 0 12px; }
h3 { color:var(--ink); margin:0 0 6px; font-size:20px; }
p { margin:0 0 14px; }
.lead { max-width:820px; color:#3f5264; font-size:18px; }
.map-hub-backlink-wrap { margin-top:15px; }
.map-hub-backlink { display:inline-flex; align-items:center; min-height:34px; padding:3px 0; text-decoration:none; font:700 13px/1.3 Arial,Helvetica,sans-serif; color:#46617d!important; }
.map-hub-backlink:hover { text-decoration:underline; text-underline-offset:3px; }

.content { padding-top:34px; padding-bottom:58px; }
.section + .section { margin-top:42px; padding-top:38px; border-top:1px solid var(--line); }
.section-lead { color:#45586a; max-width:820px; }
.grid-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:22px; }
.grid-one { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; margin-top:22px; max-width:680px; }
.card { display:block; border:1px solid var(--line); border-radius:14px; background:var(--soft); padding:20px; text-decoration:none; min-height:150px; box-shadow:0 1px 3px rgba(0,0,0,.024); transition:border-color .15s ease, transform .15s ease; }
a.card:hover, a.card:focus-visible { border-color:#9cc4e7; transform:translateY(-1px); outline:none; }
.card p { color:#45586a; font-size:14px; }
.card .kicker { display:block; margin-bottom:7px; color:#006bb6; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.cta { display:inline-block; margin-top:10px; color:#006bb6; font-weight:800; font-size:14px; }
.badge { display:inline-block; margin-top:10px; padding:4px 9px; border-radius:999px; background:#e8f3ff; color:#0067ad; font-weight:800; font-size:12px; }
.muted-card { opacity:.76; }

.vocab-card-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px;
}
.vocab-card {
  display:flex; align-items:center; gap:12px; min-height:92px; padding:14px 15px;
  border:1px solid var(--line); border-radius:12px; background:#fff; text-decoration:none;
  transition:border-color .15s ease, transform .15s ease, background .15s ease;
}
.vocab-card:hover, .vocab-card:focus-visible {
  border-color:#9cc4e7; background:#f8fbff; transform:translateY(-1px); outline:none;
}
.vocab-icon { flex:0 0 auto; font-size:25px; line-height:1; }
.vocab-card-text { min-width:0; display:flex; flex-direction:column; gap:4px; }
.vocab-card-text strong { color:var(--ink); font-size:15px; line-height:1.3; }
.vocab-card-text small { color:#006bb6; font-size:12.5px; font-weight:800; line-height:1.3; }

.simple-list { margin:18px 0 0; padding-left:22px; color:#334a60; }
.simple-list li { margin:8px 0; }
.notice { margin-top:22px; padding:14px 16px; border-left:4px solid var(--accent); background:#f7fbff; color:#3f5264; border-radius:0 10px 10px 0; }

.map-global-footer { clear:both; background:var(--ink)!important; color:#fff!important; margin:0!important; padding:0!important; }
.map-global-footer-inner { max-width:1120px; margin:0 auto; padding:24px 16px; text-align:center; }
.map-footer-links { display:flex; justify-content:center; gap:8px 18px; flex-wrap:wrap; margin:0 0 14px; }
.map-footer-links a { display:inline-flex; align-items:center; min-height:36px; text-decoration:underline; text-underline-offset:2px; font-size:13px; font-weight:700; color:#fff!important; }
.map-copyright { margin:0 0 8px!important; color:#fff!important; font-size:13px!important; line-height:1.45!important; }
.map-legal { max-width:900px; margin:0 auto!important; color:#fff!important; font-size:12px!important; line-height:1.5!important; }


.map-analytics-settings { display:inline-flex; align-items:center; justify-content:center; min-height:36px; margin:10px auto 0; padding:7px 10px; border:1px solid rgba(255,255,255,.75); border-radius:8px; background:transparent; color:#fff!important; font:700 12px/1.2 Arial,Helvetica,sans-serif; text-decoration:none; text-underline-offset:2px; }
.map-analytics-settings:hover, .map-analytics-settings:focus-visible { background:rgba(255,255,255,.12); text-decoration:underline; }

@media (max-width:760px) {
  .hero-inner { padding-top:30px; padding-bottom:30px; }
  .grid-two { grid-template-columns:1fr; }
  .vocab-card-grid { grid-template-columns:1fr; }
  .map-nav-inner { padding:8px 12px; flex-wrap:wrap; gap:4px 10px; }
  .map-nav-brand { font-size:17px; }
  .map-nav-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .map-nav-links { display:none; width:100%; margin:4px 0 3px; padding:6px 0 4px; border-top:1px solid #edf1f5; grid-template-columns:1fr; }
  .map-nav-links[data-open="true"] { display:grid; }
  .map-nav-links a { white-space:normal; min-height:46px; padding:9px 8px; }
  .map-breadcrumb { padding:8px 12px; font-size:12px; }
  .map-global-footer-inner { padding:22px 12px; }
}
@media print {
  .map-skip-link, .map-global-header, .map-breadcrumb-wrap, .map-global-footer { display:none!important; }
}
