/* hub template (country / province). Appended after the city template CSS; hub classes are prefixed hb-. */
/* ---------- hero with map ---------- */
.hb-hero{position:relative;min-height:min(820px,calc(100svh - 110px));display:flex;align-items:center;overflow:hidden;background:#070a10;isolation:isolate}
.hb-map{position:absolute;inset:0;z-index:0}
.hb-gl{position:absolute;inset:0;opacity:0;transition:opacity 1.2s var(--ease-out)}
.hb-gl-on .hb-gl{opacity:1}
.hb-map .cv-map-light{position:absolute;inset:0;pointer-events:none;z-index:1}
.hb-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(7,10,16,.94) 0%,rgba(7,10,16,.7) 30%,rgba(7,10,16,.1) 56%,rgba(7,10,16,0) 100%),linear-gradient(0deg,#0b0f13 0%,transparent 16%)}
.hb-hero:not(.hb-gl-on) .hb-map{background:radial-gradient(60% 60% at 70% 45%,rgba(153,44,255,.10),transparent 70%),#080b11}
.hb-gl .maplibregl-ctrl-attrib{background:rgba(10,13,19,.75)!important;color:#8d95a8;font:500 11px Manrope,sans-serif}
.hb-gl .maplibregl-ctrl-attrib a{color:#aeb5c9}.hb-gl .maplibregl-ctrl-attrib-button{filter:invert(1)}
.hb-gl.maplibregl-map{position:absolute}
.hb-hero-in{position:relative;z-index:2;padding-block:56px 72px;pointer-events:none}
.hb-hero-in>*{pointer-events:auto;max-width:600px}
.hb-h1{font:400 clamp(52px,7vw,108px)/.9 var(--f-poster);text-transform:uppercase;color:#fff;margin:0 0 20px;letter-spacing:.005em}
.hb-legend{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:22px 0 0;padding:0;font:600 12.5px Manrope,sans-serif;color:#aeb5c9}
.hb-legend li{display:flex;align-items:center;gap:8px}
.hb-dot{width:12px;height:12px;border-radius:50%;border:2px solid #7d879a;background:#0b0f13;display:inline-block}
.hb-dot.is-live{border-color:var(--lime);background:var(--lime);box-shadow:0 0 0 4px rgba(208,250,0,.14)}
.hb-dot-p{border-radius:4px;border-color:#b88cff;background:rgba(184,140,255,.15)}
.hb-map-note{position:absolute;left:clamp(16px,2.6vw,40px);bottom:12px;z-index:2;margin:0;font:600 11px Manrope,sans-serif;color:#7d879a;letter-spacing:.04em}
.hb-map-note i{color:#b88cff;margin-right:6px}
/* markers */
/* V-16: markers and pins are 44px tap targets; the visible dot stays 14px. */
.hb-mk{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:0;background:none;cursor:pointer;font:700 12px Manrope,sans-serif;color:#fff;text-decoration:none}
.hb-mk-c{width:14px;height:14px;border-radius:50%;border:2px solid #8d95a8;background:#0b0f13;display:block;transition:transform .3s var(--ease-out)}
.hb-mk.is-live .hb-mk-c{border-color:var(--lime);background:var(--lime);box-shadow:0 0 0 5px rgba(208,250,0,.16),0 0 18px rgba(208,250,0,.35)}
.hb-mk:hover .hb-mk-c,.hb-mk:focus-visible .hb-mk-c{transform:scale(1.35)}
.hb-mk-l{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);white-space:nowrap;background:rgba(14,18,28,.82);border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:3px 8px;opacity:0;transition:opacity .3s;pointer-events:none}
.hb-mk:hover .hb-mk-l,.hb-mk:focus-visible .hb-mk-l,.hb-mk.has-l .hb-mk-l{opacity:1}
.hb-mk::before{content:"";position:absolute;inset:-15px}
.hb-mk:focus-visible{outline:none}.hb-mk:focus-visible .hb-mk-c{outline:2px solid #fff;outline-offset:3px}
.hb-pm{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:0 10px;border-radius:9px;background:rgba(12,16,24,.78);border:1px solid rgba(255,255,255,.14);color:#dfe3ec;font:800 12px Manrope,sans-serif;letter-spacing:.06em;text-decoration:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s,background .3s}
.hb-pm small{font:700 11px Manrope,sans-serif;letter-spacing:0;color:#0a1001;background:var(--lime);border-radius:6px;padding:1px 6px}
.hb-pm.is-cov{border-color:rgba(184,140,255,.55)}
.hb-pm:hover,.hb-pm:focus-visible{border-color:var(--lime);background:rgba(20,26,38,.92);outline:none}
.hb-pop{position:absolute;z-index:4;width:250px;padding:16px;border-radius:14px;background:rgba(14,18,28,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.hb-pop[hidden]{display:none}
.hb-pop h3{font:800 20px/1.05 var(--f-display);text-transform:uppercase;color:#fff;margin:0 0 6px}
.hb-pop p{font:500 13px/1.45 Manrope,sans-serif;color:#c7cdd8;margin:0 0 12px}
.hb-pop .cv-btn{min-height:44px;width:100%;font-size:13px}
.hb-pop-k{font:700 10px Manrope,sans-serif!important;letter-spacing:.2em;text-transform:uppercase;color:#b88cff!important;margin:0 0 6px!important}
.hb-pop-x{position:absolute;top:4px;right:4px;width:44px;height:44px;border:0;background:none;color:#aeb5c9;cursor:pointer;font-size:14px}
/* ---------- board ---------- */
.hb-board{position:relative;z-index:2;padding:0 0 24px;background:#0b0f13}
.hb-board-in{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(255,255,255,.025);overflow:hidden}
.hb-cell{padding:20px 18px;border-left:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:6px}
.hb-cell:first-child{border-left:0}
.hb-cell b{font:400 clamp(30px,3vw,44px)/1 var(--f-poster);color:#fff}
.hb-cell b small{font-size:.5em;color:#8d95a8;margin-left:2px}
.hb-cell span{font:600 12.5px/1.3 Manrope,sans-serif;color:#aeb5c9}
.hb-cell.is-ph b{color:#6f7789;font:700 18px/1.9 Manrope,sans-serif;letter-spacing:.06em}
.hb-board-note{margin:12px 0 0;font:500 13px Manrope,sans-serif;color:#7d879a}
/* ---------- sections ---------- */
.hb-sports,.hb-regions,.hb-guides,.hb-gov,.hb-feehelp,.hb-index,.hb-band{padding:88px 0}
.hb-sports{padding:64px 0 24px}
.hb-regions,.hb-gov{padding-top:48px}
.hb-feehelp,.hb-index{background:#080b11}
.hb-chips{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.hb-chips button small{margin-left:auto;font:700 11px Manrope,sans-serif;color:#8d95a8}
.hb-chips button[aria-pressed=true] small{color:var(--lime-ink)}
.hb-chips button[data-s=all]{grid-column:span 1}
.hb-filter-note{min-height:22px;margin:14px 0 0;font:600 14px Manrope,sans-serif;color:#aeb5c9}
.hb-empty{color:#aeb5c9;font:500 15px/1.6 Manrope,sans-serif}.hb-empty a{color:var(--lime)}
/* region cards */
.hb-p-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hb-p{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;transition:border-color .4s,transform .5s var(--ease-out)}
.hb-p:hover{border-color:rgba(208,250,0,.35);transform:translateY(-3px)}
.hb-p.has-guides{background:linear-gradient(160deg,rgba(153,44,255,.10),rgba(255,255,255,.03) 45%);border-color:rgba(184,140,255,.28)}
.hb-p-k{display:flex;align-items:center;gap:10px;margin:0;font:700 11px Manrope,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#8d95a8}
.hb-abbr{display:grid;place-items:center;min-width:38px;height:30px;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);color:#b88cff;letter-spacing:.06em}
.hb-p h3,.hb-g h3{font:800 26px/1.02 var(--f-display);text-transform:uppercase;margin:0}
.hb-p-n,.hb-g-n{margin:0;font:500 14px Manrope,sans-serif;color:#aeb5c9}.hb-p-n b,.hb-g-n b{color:#fff}
.hb-facts{list-style:none;margin:6px 0 4px;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.07);display:grid;gap:8px;font:500 13.5px/1.5 Manrope,sans-serif;color:#c7cdd8}
.hb-facts b{display:block;font:700 10.5px Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#8d95a8;margin-bottom:2px}
.hb-more{color:#8d95a8}
.hb-g-go{margin-top:auto;padding-top:8px;font:700 14px Manrope,sans-serif;color:var(--lime)}
.hb-p[hidden],.hb-g[hidden],.hb-gov-row[hidden]{display:none}
/* guide cards */
.hb-g-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.hb-g{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none;transition:border-color .4s,transform .5s var(--ease-out)}
a.hb-g:hover{border-color:rgba(208,250,0,.4);transform:translateY(-3px)}
.hb-g.is-soon{border-style:dashed;border-color:rgba(255,255,255,.14)}
.hb-g-k{margin:0;font:700 11px Manrope,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#b88cff}
.hb-g-sp{list-style:none;margin:4px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.hb-g-sp li{display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);font:600 12px Manrope,sans-serif;color:#cdd1df}
.hb-g-sp i{color:#b88cff;font-size:11px}.hb-g-sp b{color:#fff}
.hb-st{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:6px;font:700 12px Manrope,sans-serif;color:#aeb5c9}
.hb-st i{font-size:10px;color:#8d95a8}.hb-st-live{color:var(--lime)}.hb-st-live i{color:var(--lime)}
/* governing */
.hb-gov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hb-gov-row{padding:20px 22px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.hb-gov-row h3{display:flex;align-items:center;gap:12px;margin:0 0 10px;font:800 22px/1 var(--f-display);text-transform:uppercase;color:#fff}
.hb-gov-row h3 i{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);color:var(--lime);font-size:14px}
.hb-gov-row ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hb-gov-row li{font:600 15px/1.45 Manrope,sans-serif;color:#e8ecf4}
.hb-gov-row li small{display:block;font:500 12.5px Manrope,sans-serif;color:#8d95a8}
.hb-gov-miss{margin:20px 0 0;color:#8d95a8;font:500 14px Manrope,sans-serif}
/* fee help */
.hb-fee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hb-fee-w{grid-row:span 2}
.hb-fee ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hb-fee li a{color:#fff;font:700 15px Manrope,sans-serif;text-decoration:none;border-bottom:1px solid rgba(208,250,0,.35)}
.hb-fee li a:hover{color:var(--lime)}
.hb-fee li small{display:block;margin-top:2px;font:500 13px/1.45 Manrope,sans-serif;color:#8d95a8}
/* band */
.hb-band-in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hb-lane{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);text-decoration:none;color:#fff;padding:0 0 18px;transition:border-color .4s}
.hb-lane:hover{border-color:rgba(208,250,0,.35)}
.hb-lane figure{margin:0 0 16px;aspect-ratio:16/9;overflow:hidden}
.hb-lane-img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85)}
.hb-lane .cv-eyebrow,.hb-lane h3,.hb-lane .cv-link{margin-inline:20px}
.hb-lane h3{font:800 24px/1.05 var(--f-display);text-transform:uppercase;margin-top:0;margin-bottom:6px}
/* index */
.hb-find{position:relative;display:flex;align-items:center;gap:10px;max-width:520px;min-height:52px;padding:0 16px;margin:0 0 20px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12)}
.hb-find i{color:#8d95a8}
.hb-find input{flex:1;min-width:0;height:50px;background:none;border:0;color:#fff;font:600 16px Manrope,sans-serif;outline:none}
.hb-find:focus-within{border-color:rgba(208,250,0,.5)}
.hb-find-n{font:600 12px Manrope,sans-serif;color:#8d95a8;white-space:nowrap}
.hb-top,.hb-az-list ul,.hb-cx ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 18px}
.hb-top li a,.hb-az-list li a,.hb-cx li a{display:inline-flex;align-items:center;min-height:44px;color:#e8ecf4;text-decoration:none;font:600 15px Manrope,sans-serif}
.hb-top li a:hover,.hb-az-list li a:hover,.hb-cx li a:hover{color:var(--lime)}
.hb-tag{font:700 10px Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);border:1px solid rgba(208,250,0,.35);border-radius:5px;padding:1px 5px;margin-left:6px}
.hb-az{margin-top:18px;border-top:1px solid rgba(255,255,255,.08)}
.hb-az summary{display:flex;align-items:center;gap:14px;min-height:56px;cursor:pointer;list-style:none;font:700 15px Manrope,sans-serif;color:#fff}
.hb-az summary::-webkit-details-marker{display:none}
.hb-az summary span{flex:1}.hb-az[open] .cv-chev{transform:rotate(45deg)}
.hb-az-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.hb-az-g h3{margin:0 0 4px;font:400 26px/1 var(--f-poster);color:#b88cff}
.hb-az-g[hidden],.hb-az-list li[hidden],.hb-top li[hidden]{display:none}
.hb-cx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hb-cx{padding:20px 22px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.hb-cx h3{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;font:800 22px/1 var(--f-display);text-transform:uppercase}
/* E2E shard 5 BUG-5 (V-16): the province heading links were 22px tall at 390px; tap targets are at least 44px. */
.hb-cx h3 a{display:inline-flex;align-items:center;min-height:44px;color:#fff;text-decoration:none}.hb-cx h3 a:hover{color:var(--lime)}
.hb-cx h3 small{font:600 12px Manrope,sans-serif;text-transform:none;color:#8d95a8}
.hb-cx ul{grid-template-columns:repeat(3,minmax(0,1fr))}
.hb-cx li a{font-size:14px;min-height:44px}
.hb-more-links{padding:24px 0 72px}
/* sticky: shown by hub.js after the hero */
.hb-sticky b{color:#fff}
/* ---------- responsive ---------- */
@media (max-width:1180px){.hb-board-in{grid-template-columns:repeat(4,minmax(0,1fr))}.hb-cell:nth-child(5){border-left:0}.hb-cell:nth-child(n+5){border-top:1px solid rgba(255,255,255,.06)}.hb-g-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:980px){
  .hb-hero{min-height:0;align-items:flex-start;flex-direction:column}
  .hb-map{position:relative;inset:auto;order:2;height:420px;width:100%}
  .hb-shade{background:linear-gradient(180deg,#070a10 0%,rgba(7,10,16,0) 18%,rgba(7,10,16,0) 80%,#0b0f13 100%)}
  .hb-hero-in{order:1;padding-block:40px 12px}
  .hb-map-note{bottom:8px}
  .hb-p-grid,.hb-fee-grid,.hb-band-in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hb-g-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hb-gov-grid,.hb-cx-grid{grid-template-columns:minmax(0,1fr)}
  .hb-chips{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .hb-top,.hb-az-list ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hb-fee-w{grid-row:auto}
}
@media (max-width:640px){
  .hb-map{height:340px}
  .hb-board-in{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hb-cell{border-left:0!important;border-top:1px solid rgba(255,255,255,.06)}
  .hb-cell:nth-child(-n+2){border-top:0}.hb-cell:nth-child(even){border-left:1px solid rgba(255,255,255,.06)!important}
  .hb-p-grid,.hb-fee-grid,.hb-band-in,.hb-g-grid{grid-template-columns:minmax(0,1fr)}
  .hb-chips{grid-template-columns:none!important}
  .hb-top,.hb-az-list ul,.hb-cx ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hb-sports,.hb-regions,.hb-guides,.hb-gov,.hb-feehelp,.hb-index,.hb-band{padding:56px 0}
  .hb-sports{padding:48px 0 12px}.hb-regions,.hb-gov{padding-top:32px}
  .hb-legend{font-size:12px}
  .hb-pm{padding:0 8px;font-size:11px}
}
@media (prefers-reduced-motion:reduce){.hb-p,.hb-g,.hb-mk-c,.hb-gl{transition:none}}

.hb-p h3 a{color:#fff;text-decoration:none;display:inline-block;padding:10px 0;margin:-10px 0}.hb-p h3 a::after{content:"";position:absolute;inset:0;border-radius:18px}.hb-p{position:relative}.hb-p .cv-src,.hb-p .hb-g-go{position:relative;z-index:1}a.hb-g-go{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
