
  @import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Public+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

  :root{
    --bg:#fbf3e6;
    --surface:#ffffff;
    --surface-2:#f6e6c9;
    --ink:#2a1c0d;
    --ink-soft:#6e5b41;
    --primary:#d9700f;
    --primary-strong:#a1500a;
    --primary-ink:#fffaf2;
    --accent:#0f6e46;
    --accent-soft:#dcefe1;
    --line:#e9d5ac;
    --good:#0f6e46;
    --warn:#b3261e;
    color-scheme: light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#170f07;
      --surface:#241708;
      --surface-2:#2d1c0c;
      --ink:#fbeedd;
      --ink-soft:#cbb08c;
      --primary:#ff9d47;
      --primary-strong:#ffbf83;
      --primary-ink:#2a1503;
      --accent:#4fd18c;
      --accent-soft:#12271b;
      --line:#3c2812;
      --good:#4fd18c;
      --warn:#ff8a80;
      color-scheme: dark;
    }
  }
  :root[data-theme="dark"]{
    --bg:#170f07;
    --surface:#241708;
    --surface-2:#2d1c0c;
    --ink:#fbeedd;
    --ink-soft:#cbb08c;
    --primary:#ff9d47;
    --primary-strong:#ffbf83;
    --primary-ink:#2a1503;
    --accent:#4fd18c;
    --accent-soft:#12271b;
    --line:#3c2812;
    --good:#4fd18c;
    --warn:#ff8a80;
    color-scheme: dark;
  }

  *{ box-sizing:border-box; }
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Public Sans', system-ui, sans-serif;
    line-height:1.55;
    padding-inline:0;
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', Georgia, serif;
    font-weight:600;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
  }
  p{ margin:0; }
  a{ color:inherit; }
  .mono{ font-family:'JetBrains Mono', ui-monospace, monospace; font-variant-numeric: tabular-nums; }
  .wrap{ max-width:1160px; margin-inline:auto; padding-inline:20px; }
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--primary);
    font-weight:500;
  }

  /* ---- presentation notice ---- */
  .notice{
    background:var(--primary-strong);
    color:var(--primary-ink);
    font-size:13px;
    text-align:center;
    padding:9px 16px;
    padding-top: calc(9px + env(safe-area-inset-top, 0px));
    letter-spacing:.01em;
  }
  .notice strong{ font-weight:600; }
  .notice.secondary{ background:var(--surface-2); color:var(--ink-soft); padding-top:9px; font-size:11.5px; }

  /* ---- header ---- */
  header.site{
    position:sticky;
    top:0;
    z-index:30;
    background:color-mix(in srgb, var(--bg) 90%, transparent);
    backdrop-filter: blur(10px);
    border-bottom:1px solid var(--line);
  }
  .header-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding-block:14px;
  }
  .brand{ display:flex; align-items:center; gap:12px; }
  .brand .mark{
    width:42px; height:42px; border-radius:50%;
    background:var(--primary);
    color:var(--primary-ink);
    display:flex; align-items:center; justify-content:center;
    font-family:'Fraunces',serif; font-weight:700; font-size:17px;
    flex:none;
  }
  .brand .name{ font-family:'Fraunces',serif; font-weight:600; font-size:17px; line-height:1.15; }
  .brand .loc{ font-size:12px; color:var(--ink-soft); }

  .menu-toggle{
    display:none; align-items:center; gap:8px; border:1px solid var(--line); background:var(--surface);
    color:var(--ink); border-radius:8px; padding:8px 12px; font-family:'Public Sans',sans-serif;
    font-weight:600; font-size:13px; cursor:pointer;
  }
  .menu-toggle .bars{ display:flex; flex-direction:column; gap:3px; }
  .menu-toggle .bars span{ width:16px; height:2px; background:var(--ink); display:block; }

  nav.primary{ display:flex; gap:4px; flex-wrap:wrap; align-items:center; }
  .nav-item{ position:relative; }
  .nav-item summary{
    list-style:none; cursor:pointer; font-size:14px; font-weight:600; color:var(--ink-soft);
    padding:8px 12px; border-radius:7px; display:flex; align-items:center; gap:5px;
  }
  .nav-item summary::-webkit-details-marker{ display:none; }
  .nav-item summary::after{ content:"▾"; font-size:10px; opacity:.7; }
  .nav-item summary:hover, .nav-item[open] summary{ color:var(--ink); background:var(--surface-2); }
  .nav-item ul{
    list-style:none; margin:0; padding:8px; display:flex; flex-direction:column; gap:2px;
    background:var(--surface); border:1px solid var(--line); border-radius:10px;
    min-width:220px; box-shadow:0 12px 28px rgba(0,0,0,.12);
  }
  .nav-item ul a{
    display:block; padding:8px 10px; border-radius:6px; font-size:13.5px; text-decoration:none; color:var(--ink-soft);
  }
  .nav-item ul a:hover{ background:var(--accent-soft); color:var(--ink); }

  .lang-toggle{
    display:flex; border:1px solid var(--line); border-radius:999px; overflow:hidden;
    font-family:'JetBrains Mono',monospace; font-size:12px; flex:none;
  }
  .lang-toggle button{
    border:0; background:transparent; color:var(--ink-soft); padding:6px 12px; cursor:pointer;
    font-family:inherit; font-size:inherit; font-weight:600;
  }
  .lang-toggle button[aria-pressed="true"]{ background:var(--primary); color:var(--primary-ink); }

  .header-right{ display:flex; align-items:center; gap:10px; }

  @media (min-width:821px){
    .nav-item ul{ position:absolute; top:calc(100% + 6px); left:0; z-index:40; }
  }
  @media (max-width:820px){
    .menu-toggle{ display:inline-flex; }
    nav.primary{
      display:none; position:absolute; top:100%; left:0; right:0; width:100%; max-height:calc(100vh - 100%);
      background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
      flex-direction:column; align-items:stretch; gap:2px; padding:10px 16px 18px;
      overflow-y:auto; z-index:35; box-shadow:0 16px 28px rgba(0,0,0,.14);
    }
    nav.primary.open{ display:flex; }
    .nav-item{ width:100%; }
    .nav-item summary{ width:100%; justify-content:space-between; }
    .nav-item ul{ position:static; box-shadow:none; margin-top:2px; width:100%; min-width:0; }
  }

  /* ---- hero slider ---- */
  .hero{ padding-block:28px 40px; }
  .slider{
    position:relative; border-radius:22px; overflow:hidden; border:1px solid var(--line);
    background:var(--surface-2);
  }
  .slide{
    display:none; grid-template-columns:1.05fr .95fr; gap:0; align-items:center;
  }
  .slide.active{ display:grid; }
  .slide .copy{ padding:36px clamp(20px,4vw,48px); }
  .slide .eyebrow{ display:block; margin-bottom:10px; }
  .slide h1{ font-size:clamp(28px,4vw,46px); line-height:1.08; }
  .slide p.lede{ margin-top:14px; max-width:50ch; color:var(--ink-soft); font-size:16px; }
  .cta-row{ display:flex; gap:12px; margin-top:24px; flex-wrap:wrap; }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:12px 20px; border-radius:9px; font-weight:600; font-size:14.5px;
    text-decoration:none; border:1px solid transparent; cursor:pointer;
  }
  .btn-primary{ background:var(--primary); color:var(--primary-ink); }
  .btn-ghost{ border-color:var(--line); color:var(--ink); background:var(--surface); }
  .btn:hover{ opacity:.9; }
  .slide-art{
    width:100%; background:var(--surface-2); overflow:hidden;
  }
  .slide-art svg, .slide-art img{ display:block; width:100%; height:100%; object-fit:cover; }

  .slider-nav{
    position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
    display:flex; gap:8px; z-index:5;
  }
  .slider-nav button{
    width:9px; height:9px; border-radius:50%; border:1px solid var(--primary-ink); background:transparent;
    opacity:.5; cursor:pointer; padding:0;
  }
  .slider-nav button[aria-current="true"]{ opacity:1; background:var(--primary-ink); }
  .slider-arrow{
    position:absolute; top:50%; translate:0 -50%; z-index:5; border:1px solid var(--line);
    background:color-mix(in srgb, var(--surface) 80%, transparent); border-radius:50%; width:36px; height:36px;
    display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; color:var(--ink);
  }
  .slider-arrow.prev{ left:12px; }
  .slider-arrow.next{ right:12px; }

  /* ---- stats ---- */
  .stats{
    display:grid; grid-template-columns:repeat(6,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden;
    margin-block:28px 52px;
  }
  .stat{ background:var(--surface); padding:18px 14px; text-align:center; }
  .stat .num{ font-family:'JetBrains Mono',monospace; font-size:22px; font-weight:600; color:var(--primary); }
  .stat .lbl{ font-size:11.5px; color:var(--ink-soft); margin-top:4px; letter-spacing:.02em; }

  section{ padding-block:44px; border-top:1px solid var(--line); }
  .section-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:26px; flex-wrap:wrap; }
  .section-head h2{ font-size:clamp(24px,3vw,32px); margin-top:6px; }

  /* ---- leadership ---- */
  .leadership{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .leader-card{
    background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:26px;
    display:flex; gap:18px; align-items:flex-start;
  }
  .leader-portrait{
    width:76px; height:76px; border-radius:14px; flex:none;
    background:linear-gradient(160deg, var(--primary), var(--primary-strong));
    color:var(--primary-ink); display:flex; align-items:center; justify-content:center;
    font-family:'Fraunces',serif; font-weight:700; font-size:24px;
    box-shadow:0 8px 20px rgba(0,0,0,.14);
  }
  .leader-name{ font-family:'Fraunces',serif; font-weight:600; font-size:18px; }
  .leader-role{ font-size:13px; color:var(--primary); font-weight:600; margin-top:2px; }
  .leader-desc{ font-size:13.5px; color:var(--ink-soft); margin-top:10px; }
  .placeholder-note{ font-size:11px; color:var(--ink-soft); margin-top:22px; }

  /* ---- BDO / about ---- */
  .bdo{ display:grid; grid-template-columns:.62fr 1fr; gap:36px; align-items:start; }
  .bdo-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:26px; }
  .bdo-avatar{
    width:64px; height:64px; border-radius:50%; background:var(--accent-soft); color:var(--accent);
    display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; font-size:22px;
    margin-bottom:14px;
  }
  .bdo-sig{ margin-top:18px; font-size:14px; color:var(--ink-soft); }
  .bdo-sig strong{ display:block; color:var(--ink); font-family:'Fraunces',serif; font-size:15.5px; font-weight:600; }
  .about-body p{ color:var(--ink-soft); font-size:15.5px; margin-bottom:14px; }
  .gp-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
  .gp-chips span{
    font-size:12.5px; font-family:'JetBrains Mono',monospace; padding:6px 11px; border-radius:999px;
    background:var(--surface-2); border:1px solid var(--line); color:var(--ink-soft);
  }

  /* ---- schemes ---- */
  .schemes{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .scheme{
    background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px;
    border-top:3px solid var(--primary);
  }
  .scheme .amt{ font-family:'JetBrains Mono',monospace; font-size:19px; font-weight:600; color:var(--primary); }
  .scheme h4{ font-size:15.5px; margin-top:6px; font-family:'Public Sans',sans-serif; font-weight:700; }
  .scheme p{ font-size:13px; color:var(--ink-soft); margin-top:6px; }
  .scheme-photo{ padding-top:0; overflow:hidden; }
  .scheme-thumb{ width:calc(100% + 40px); margin:0 -20px 14px; display:block; aspect-ratio:16/9; object-fit:cover; }

  /* ---- attractions ---- */
  .attractions{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .attraction{ border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--surface); }
  .attraction .art{ height:150px; }
  .attraction .art svg{ width:100%; height:100%; display:block; }
  .attraction .body{ padding:20px; }
  .attraction h3{ font-size:19px; }
  .attraction p{ color:var(--ink-soft); font-size:14.5px; margin-top:8px; }

  /* ---- gallery ---- */
  .gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  .gallery-item{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:var(--surface); }
  .gallery-item .art{ height:110px; }
  .gallery-item .art svg{ width:100%; height:100%; display:block; }
  .gallery-item .cap{ padding:10px 12px; font-size:12px; color:var(--ink-soft); font-weight:600; }

  /* ---- departments ---- */
  .dept-groups{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .dept-group{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px; }
  .dept-group h4{ font-size:14px; letter-spacing:.03em; text-transform:uppercase; color:var(--primary); font-family:'Public Sans',sans-serif; font-weight:700; margin-bottom:12px; }
  .dept-group ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
  .dept-group li{ font-size:14px; color:var(--ink-soft); padding-left:14px; position:relative; }
  .dept-group li::before{ content:"—"; position:absolute; left:0; color:var(--accent); }

  /* ---- services ---- */
  .services{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
  .service{
    border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:var(--surface);
    font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);
  }
  .service:hover{ border-color:var(--primary); }
  .service .dot{ width:7px; height:7px; border-radius:50%; background:var(--good); flex:none; }
  .service .go{ margin-left:auto; font-size:11px; color:var(--ink-soft); }

  /* ---- events ---- */
  .events{ display:flex; flex-direction:column; gap:12px; }
  .event{
    display:grid; grid-template-columns:130px 1fr; gap:18px; align-items:center;
    border:1px solid var(--line); border-radius:12px; padding:16px 18px; background:var(--surface);
  }
  .event .date{ font-family:'JetBrains Mono',monospace; font-size:12.5px; color:var(--primary); font-weight:600; }
  .event h4{ font-family:'Public Sans',sans-serif; font-weight:700; font-size:15px; }

  footer{ border-top:1px solid var(--line); padding-block:36px 28px; background:var(--surface-2); }
  .foot-grid{ display:grid; grid-template-columns:1.4fr .8fr .8fr; gap:30px; }
  .foot-grid h5{ font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-bottom:12px; font-family:'Public Sans',sans-serif; font-weight:700; }
  .foot-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
  .foot-grid a{ text-decoration:none; font-size:13.5px; color:var(--ink-soft); }
  .foot-grid a:hover{ color:var(--primary); }
  .foot-note{ margin-top:26px; padding-top:18px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-soft); }
  .copyright{
    margin-top:14px; padding-top:14px; border-top:1px solid var(--line);
    display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; align-items:center;
    font-size:12.5px; color:var(--ink-soft);
  }
  .copyright a{ color:var(--primary); text-decoration:none; font-weight:600; }
  .copyright a:hover{ text-decoration:underline; }

  @media (max-width:820px){
    .slide{ grid-template-columns:1fr; }
    .slide-art{ order:-1; }
    .stats{ grid-template-columns:repeat(3,1fr); }
    .leadership{ grid-template-columns:1fr; }
    .bdo{ grid-template-columns:1fr; }
    .schemes{ grid-template-columns:1fr 1fr; }
    .attractions{ grid-template-columns:1fr; }
    .gallery{ grid-template-columns:1fr 1fr; }
    .dept-groups{ grid-template-columns:1fr; }
    .services{ grid-template-columns:1fr 1fr; }
    .event{ grid-template-columns:1fr; gap:6px; }
    .foot-grid{ grid-template-columns:1fr; }
  }
  @media (max-width:520px){
    .schemes{ grid-template-columns:1fr; }
    .gallery{ grid-template-columns:1fr; }
    .services{ grid-template-columns:1fr; }
  }

/* ================= multi-page additions ================= */
.page-main{ padding-block:40px 20px; }
.page-hero{
  position:relative; min-height:220px; display:flex; align-items:flex-end;
  overflow:hidden; border-bottom:1px solid var(--line);
}
.page-hero-bg{ position:absolute; inset:0; background:linear-gradient(135deg, var(--primary), var(--primary-strong)); }
.page-hero-bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.page-hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,14,6,.15) 0%, rgba(20,14,6,.72) 100%);
}
.page-hero-content{ position:relative; padding-block:64px 28px; }
.page-hero-eyebrow{ color:#ffdcae !important; }
.page-hero-title{ color:#fff !important; font-size:clamp(28px,4vw,42px); }

.content-section{ padding-block:36px; }
.content-section h2{ font-size:22px; }
.content-section h3{ font-size:17px; font-family:'Public Sans',sans-serif; font-weight:700; margin-top:22px; }
.content-section p{ line-height:1.65; }
.two-col{ display:grid; grid-template-columns:1.1fr .9fr; gap:36px; align-items:start; }
.legal-text p{ margin-bottom:14px; color:var(--ink-soft); font-size:15px; }

.quick-links-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; }
.quick-link{
  display:flex; flex-direction:column; gap:4px; padding:16px 18px; border:1px solid var(--line);
  border-radius:12px; background:var(--surface); text-decoration:none; color:var(--ink);
  border-top:3px solid var(--primary);
}
.quick-link strong{ font-family:'Fraunces',serif; font-size:15.5px; }
.quick-link span{ font-size:12.5px; color:var(--ink-soft); }
.quick-link:hover{ border-color:var(--primary); }

.wb-map-card{
  background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:18px;
  text-align:center;
}
.wb-map{ width:100%; max-width:280px; height:auto; margin-inline:auto; display:block; }
.wb-map-caption{ font-size:12px; color:var(--ink-soft); margin-top:10px; }

.demo-bars{ display:flex; flex-direction:column; gap:14px; margin-top:16px; }
.demo-bar-row{ display:grid; grid-template-columns:120px 1fr 90px; align-items:center; gap:12px; }
.demo-bar-label{ font-size:13.5px; color:var(--ink-soft); }
.demo-bar-track{ height:10px; border-radius:999px; background:var(--surface-2); overflow:hidden; }
.demo-bar-fill{ height:100%; background:linear-gradient(90deg, var(--primary), var(--accent)); border-radius:999px; }
.demo-bar-value{ font-size:13px; text-align:right; color:var(--ink); }

.notice-list, .form-list{ display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.notice-row, .form-row{
  display:grid; grid-template-columns:120px 1fr 110px; gap:14px; align-items:center;
  background:var(--surface); padding:13px 16px; font-size:13.5px;
}
.form-row{ grid-template-columns:1fr 140px 110px; }
.form-row-head{ background:var(--surface-2); font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); }
.notice-date, .form-updated{ font-size:12px; color:var(--primary); font-weight:600; }
.notice-tag, .form-cat{
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  padding:4px 9px; border-radius:999px; background:var(--accent-soft); color:var(--accent);
  justify-self:start;
}
.gallery-page{ grid-template-columns:repeat(4,1fr); }

.contact-rows{ display:flex; flex-direction:column; gap:10px; margin-top:18px; }
.contact-row{ display:flex; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding-bottom:10px; font-size:14px; }
.contact-label{ color:var(--ink-soft); font-weight:600; }
.map-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:16px; text-align:center; }
.map-card svg{ width:100%; height:auto; border-radius:10px; }

.sitemap-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.sitemap-group h4{ font-size:13px; text-transform:uppercase; letter-spacing:.04em; color:var(--primary); font-family:'Public Sans',sans-serif; font-weight:700; margin-bottom:12px; }
.sitemap-group ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.sitemap-group a{ text-decoration:none; color:var(--ink-soft); font-size:14px; }
.sitemap-group a:hover{ color:var(--primary); }

.visitor-count{ display:flex; gap:22px; margin-top:16px; }
.vc-item{ display:flex; flex-direction:column; }
.vc-num{ font-size:18px; font-weight:600; color:var(--primary); }
.vc-lbl{ font-size:11px; color:var(--ink-soft); }

@media (max-width:820px){
  .two-col{ grid-template-columns:1fr; }
  .quick-links-grid{ grid-template-columns:1fr 1fr; }
  .sitemap-grid{ grid-template-columns:1fr 1fr; }
  .gallery-page{ grid-template-columns:1fr 1fr; }
  .notice-row, .form-row{ grid-template-columns:1fr; gap:4px; }
  .notice-tag, .form-cat{ justify-self:start; }
}
@media (max-width:520px){
  .quick-links-grid{ grid-template-columns:1fr; }
  .sitemap-grid{ grid-template-columns:1fr; }
  .gallery-page{ grid-template-columns:1fr; }
}

/* ================= state map with hover hotspot + CM photo + emblem ================= */
.state-map-section .state-map-grid{
  display:grid; grid-template-columns: 1.3fr 0.9fr; gap:32px; align-items:center; margin-top:20px;
}
.state-map-visual{ position:relative; background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:18px; }
.state-map-visual .wb-map{ width:100%; height:auto; display:block; }
.state-map-visual .wb-map-photo{ width:100%; height:auto; display:block; border-radius:10px; }
.map-hotspot{ position:absolute; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; cursor:pointer; outline:none; }
.map-hotspot .dot{ width:14px; height:14px; border-radius:50%; background:#0f6e46; border:3px solid #fdf4e3; display:block; box-shadow:0 0 0 2px rgba(15,110,70,.35); }
.map-hotspot .ring{ position:absolute; width:14px; height:14px; border-radius:50%; border:2px solid #0f6e46; opacity:.6; animation: mapPulse 2.4s infinite; }
@keyframes mapPulse{
  0%{ transform:scale(1); opacity:.6; }
  70%{ transform:scale(2.6); opacity:0; }
  100%{ transform:scale(2.6); opacity:0; }
}
.map-hotspot .tooltip{
  position:absolute; bottom:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(6px);
  background:var(--ink); color:#fff; padding:10px 14px; border-radius:10px; min-width:170px;
  font-size:13px; line-height:1.4; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease; box-shadow:0 10px 24px rgba(0,0,0,.25); z-index:5;
}
.map-hotspot .tooltip strong{ display:block; font-family:'Fraunces',serif; font-size:14.5px; margin-bottom:2px; color:#ffcf8f; }
.map-hotspot .tooltip::after{ content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--ink); }
.map-hotspot:hover .tooltip, .map-hotspot:focus-visible .tooltip{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.state-map-side{ display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center; }
.state-map-side .emblem{ width:84px; height:auto; object-fit:contain; }
.cm-photo-wrap{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.cm-photo-wrap .cm-photo{ width:180px; height:180px; border-radius:50%; object-fit:cover; border:4px solid var(--primary); box-shadow:0 12px 28px rgba(0,0,0,.15); }
.cm-caption strong{ display:block; font-family:'Fraunces',serif; font-size:16px; }
.cm-caption span{ display:block; font-size:13px; color:var(--ink-soft); margin-top:2px; }
@media (max-width:760px){
  .state-map-section .state-map-grid{ grid-template-columns:1fr; }
}
