/*
 * Gái Gú Việt — Regional Explorer Recovery v1.4.2.8
 * Fully scoped to .ggv-region-hub.
 */
.ggv-region-hub {
  --ggv-bg: #100f1d;
  --ggv-panel: #18152b;
  --ggv-panel-2: #211b37;
  --ggv-line: rgba(255,255,255,.14);
  --ggv-line-soft: rgba(255,255,255,.08);
  --ggv-text: #f8f7ff;
  --ggv-muted: #bab5ca;
  --ggv-pink: #fa74aa;
  --ggv-pink-2: #f5579a;
  --ggv-gold: #ffd780;
  --ggv-orange: #ffa35c;
  --ggv-green: #70e3b5;
  position: relative;
  margin: 0 0 34px;
  color: var(--ggv-text);
  font-family: inherit;
  background: var(--ggv-bg);
  border: 1px solid rgba(250,116,170,.34);
  box-shadow: 0 18px 44px rgba(8,5,20,.38);
  overflow: hidden;
}

.ggv-region-hub *,
.ggv-region-hub *::before,
.ggv-region-hub *::after { box-sizing: border-box; }

.ggv-region-hub a { text-decoration: none; }
.ggv-region-hub a:focus-visible,
.ggv-region-hub button:focus-visible,
.ggv-region-hub select:focus-visible,
.ggv-region-hub summary:focus-visible {
  outline: 2px solid var(--ggv-gold);
  outline-offset: 3px;
}

.ggv-region-hub__hero {
  position: relative;
  overflow: hidden;
  padding: 34px 30px 0;
  background:
    radial-gradient(circle at 88% 5%, rgba(247,90,159,.3), transparent 30%),
    radial-gradient(circle at 27% 12%, rgba(255,213,118,.12), transparent 28%),
    linear-gradient(125deg, #17132e 0%, #2a173e 57%, #48213d 100%);
}
.ggv-region-hub__hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,216,128,.78), rgba(250,116,170,.88), transparent);
}
.ggv-region-hub__hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 350px);
  gap: 30px;
  align-items: stretch;
}
.ggv-region-hub__hero-copy { padding: 6px 0 29px; }
.ggv-region-hub__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--ggv-gold);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 1.9px;
  text-transform: uppercase;
}
.ggv-region-hub__eyebrow i { color: #ffd884; }
.ggv-region-hub h1,
.ggv-region-hub h2,
.ggv-region-hub h3,
.ggv-region-hub p { margin-top: 0; }
.ggv-region-hub__hero h1 {
  max-width: 700px;
  margin: 10px 0 12px;
  color: #fff;
  font-size: clamp(31px, 4vw, 52px);
  font-weight: 900;
  line-height: .98;
  letter-spacing: -1.6px;
}
.ggv-region-hub__hero h1::first-line { color: #fff4c9; }
.ggv-region-hub__hero-copy > p {
  max-width: 670px;
  margin-bottom: 20px;
  color: #d7d1e5;
  font-size: 14px;
  line-height: 1.7;
}
.ggv-region-hub__hero-actions,
.ggv-region-hub__guide-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.ggv-region-hub__button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px solid transparent;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.ggv-region-hub__button:hover { transform: translateY(-2px); }
.ggv-region-hub__button.is-primary {
  color: #26152b;
  background: linear-gradient(100deg, #ffdc8a, #ff9d5d 58%, #f775a8);
  box-shadow: 0 10px 20px rgba(255,141,101,.22);
}
.ggv-region-hub__button.is-secondary {
  border-color: rgba(255,255,255,.28);
  background: rgba(17,12,32,.35);
}
.ggv-region-hub__button.is-secondary:hover { border-color: rgba(255,215,128,.85); background: rgba(255,255,255,.08); }
.ggv-region-hub__hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 17px;
  margin-top: 20px;
  color: #cfc7dd;
  font-size: 11px;
}
.ggv-region-hub__hero-trust span { display: inline-flex; align-items: center; gap: 6px; }
.ggv-region-hub__hero-trust i { color: var(--ggv-gold); }

.ggv-region-hub__access {
  align-self: end;
  min-height: 254px;
  margin: 0 0 0;
  background: linear-gradient(160deg, rgba(35,28,54,.96), rgba(34,17,44,.98));
  border: 3px solid rgba(245,112,166,.86);
  border-bottom-width: 4px;
  box-shadow: 0 15px 28px rgba(10,6,19,.32), inset 0 0 0 1px rgba(255,218,141,.2);
}
.ggv-region-hub__access-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 11px;
  color: #ffe39b;
  border-bottom: 1px solid rgba(255,255,255,.1);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.15px;
}
.ggv-region-hub__access-head > span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.ggv-region-hub__access-state {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 7px;
  color: #f7c3d8;
  border: 1px solid rgba(250,116,170,.55);
  background: rgba(95,24,62,.36);
  font-size: 8px;
  letter-spacing: 1px;
  white-space: nowrap;
}
.ggv-region-hub__access-state.is-active { color: #a8efd2; border-color: rgba(111,225,177,.68); background: rgba(20,93,67,.28); }
.ggv-region-hub__access-body {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  column-gap: 12px;
  padding: 18px 15px 16px;
}
.ggv-region-hub__access-icon {
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  color: #3d2230;
  background: linear-gradient(135deg, #ffdc91, #ff9e5b);
  font-size: 16px;
}
.ggv-region-hub__access-body small { display: block; margin-bottom: 4px; color: #bcb4ce; font-size: 9px; font-weight: 800; letter-spacing: 1.2px; }
.ggv-region-hub__access-body strong { display: block; color: #fff; font-size: 18px; line-height: 1.2; }
.ggv-region-hub__access-body p { margin: 6px 0 0; color: #cfc7da; font-size: 11px; line-height: 1.55; }
.ggv-region-hub__access-action {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding: 11px 12px;
  color: #2a1729;
  background: linear-gradient(100deg, #ffdd8a, #ff9b5e);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.ggv-region-hub__access-action:hover { color: #25142a; filter: brightness(1.05); }

.ggv-region-hub__quick {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--ggv-line);
  background: linear-gradient(90deg, #201b39, #241b36 50%, #30162f);
}
.ggv-region-hub__quick a {
  display: flex;
  min-height: 76px;
  align-items: center;
  gap: 11px;
  padding: 13px 16px;
  color: #ece9f5;
  border-right: 1px solid var(--ggv-line);
  transition: background .2s ease, color .2s ease;
}
.ggv-region-hub__quick a:last-child { border-right: 0; }
.ggv-region-hub__quick a:hover { color: #fff; background: rgba(255,255,255,.06); }
.ggv-region-hub__quick > a > i {
  display: inline-flex;
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  align-items: center;
  justify-content: center;
  color: #432239;
  background: linear-gradient(135deg, #ffdc8c, #ff9f61);
  font-size: 13px;
}
.ggv-region-hub__quick b,
.ggv-region-hub__quick small { display: block; }
.ggv-region-hub__quick b { font-size: 11px; line-height: 1.25; }
.ggv-region-hub__quick small { margin-top: 3px; color: #bdb7ca; font-size: 10px; line-height: 1.25; }

.ggv-region-hub__finder,
.ggv-region-hub__directory,
.ggv-region-hub__guide { padding: 31px 30px; }
.ggv-region-hub__finder { background: linear-gradient(180deg, #151324, #12111f); border-bottom: 1px solid var(--ggv-line); }
.ggv-region-hub__section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 18px; }
.ggv-region-hub__section-heading h2,
.ggv-region-hub__guide h2 { margin: 7px 0 5px; color: #fff; font-size: clamp(23px, 2.5vw, 31px); font-weight: 900; line-height: 1.03; letter-spacing: -1px; }
.ggv-region-hub__section-heading p { max-width: 680px; margin: 0; color: var(--ggv-muted); font-size: 12px; line-height: 1.6; }
.ggv-region-hub__result { display: inline-flex; align-items: center; gap: 7px; padding: 8px 10px; color: #ffe3a5; border: 1px solid rgba(255,215,128,.38); background: rgba(255,215,128,.07); font-size: 11px; font-weight: 800; white-space: nowrap; }

.ggv-region-hub__finder-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  padding: 16px;
  border: 1px solid rgba(255,216,128,.25);
  background: linear-gradient(135deg, rgba(38,31,61,.92), rgba(28,21,42,.9));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.ggv-region-hub__select-wrap { min-width: 0; }
.ggv-region-hub__select-wrap label { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; color: #f5d998; font-size: 10px; font-weight: 900; letter-spacing: 1px; text-transform: uppercase; }
.ggv-region-hub__select-wrap label i { color: var(--ggv-pink); }
.ggv-region-hub__select-wrap select {
  display: block;
  width: 100%;
  min-height: 45px;
  padding: 10px 13px;
  color: #f8f6ff;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 0;
  background: #12101f;
  box-shadow: inset 0 1px 8px rgba(0,0,0,.32);
  font: inherit;
  font-size: 12px;
}
.ggv-region-hub__select-wrap option,
.ggv-region-hub__select-wrap optgroup { color: #15121f; background: #fff; }
.ggv-region-hub__finder-form > button {
  min-height: 45px;
  padding: 11px 16px;
  color: #321d2e;
  border: 0;
  background: linear-gradient(100deg, #ffdb8e, #ff9e5d 62%, #f978a8);
  box-shadow: 0 9px 20px rgba(255,128,114,.16);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .2s ease, filter .2s ease;
}
.ggv-region-hub__finder-form > button:hover { filter: brightness(1.06); transform: translateY(-1px); }
.ggv-region-hub__finder-form > button i { margin-right: 6px; }
.ggv-region-hub__form-status { grid-column: 1 / -1; margin: 0; color: #bcb4cc; font-size: 10px; line-height: 1.4; }
.ggv-region-hub__form-status.is-warning { color: #ffd68d; }

/* v1.4.2.8 recovery: validation state for the curated location picker. */
.ggv-region-hub__finder-assurance {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 10px 0 0;
  padding: 9px 11px;
  color: #bcb4cc;
  border-left: 2px solid rgba(255,215,128,.72);
  background: rgba(255,215,128,.055);
  font-size: 10px;
  line-height: 1.5;
}
.ggv-region-hub__finder-assurance i {
  flex: 0 0 auto;
  margin-top: 1px;
  color: var(--ggv-gold);
}

.ggv-region-hub__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 15px; background: var(--ggv-line); border: 1px solid var(--ggv-line); }
.ggv-region-hub__steps > div { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 12px; background: #171426; }
.ggv-region-hub__steps > div > span { color: #382239; font-size: 13px; font-weight: 900; padding: 8px; background: linear-gradient(135deg, #ffdc8b, #ff9e5e); }
.ggv-region-hub__steps p { margin: 0; min-width: 0; }
.ggv-region-hub__steps b,
.ggv-region-hub__steps small { display: block; }
.ggv-region-hub__steps b { color: #f7f4ff; font-size: 11px; }
.ggv-region-hub__steps small { margin-top: 2px; color: #aea8bc; font-size: 10px; line-height: 1.35; }

.ggv-region-hub__directory { background: #100f1a; }
.ggv-region-hub__tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 15px; border: 1px solid var(--ggv-line); background: #161326; }
.ggv-region-hub__tab { display: flex; min-height: 55px; align-items: center; justify-content: center; gap: 8px; padding: 9px 10px; color: #beb7ca; border-right: 1px solid var(--ggv-line); font-size: 11px; font-weight: 800; text-align: center; transition: color .2s ease, background .2s ease; }
.ggv-region-hub__tab:last-child { border-right: 0; }
.ggv-region-hub__tab i { color: #f4c56e; font-size: 13px; }
.ggv-region-hub__tab:hover { color: #fff; background: rgba(255,255,255,.055); }
.ggv-region-hub__tab.is-active { color: #311c2d; background: linear-gradient(100deg, #ffdc8a, #f98d6c 63%, #f26ea6); }
.ggv-region-hub__tab.is-active i { color: #4c2838; }
.ggv-region-hub__alphabet { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 9px; padding: 9px 11px; border: 1px solid var(--ggv-line-soft); background: #161324; }
.ggv-region-hub__alphabet > span { display: inline-flex; align-items: center; gap: 7px; color: #bcb4cc; font-size: 10px; font-weight: 800; white-space: nowrap; }
.ggv-region-hub__alphabet > span i { color: var(--ggv-gold); }
.ggv-region-hub__alphabet > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.ggv-region-hub__alphabet button { min-width: 27px; height: 26px; padding: 4px 6px; color: #d8d2e1; border: 1px solid rgba(255,255,255,.12); background: #211c32; font: inherit; font-size: 10px; font-weight: 900; cursor: pointer; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.ggv-region-hub__alphabet button:hover,
.ggv-region-hub__alphabet button.is-active { color: #3b263a; border-color: #ffcf7d; background: #ffcf7d; }
.ggv-region-hub__filter-feedback { margin: 0 0 13px; color: #aaa4ba; font-size: 10px; }
.ggv-region-hub__location-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.ggv-region-hub__location-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid rgba(255,255,255,.14); background: linear-gradient(150deg, #1a1728, #13111e); box-shadow: 0 8px 18px rgba(0,0,0,.14); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.ggv-region-hub__location-card:hover { border-color: rgba(255,207,126,.65); box-shadow: 0 13px 24px rgba(0,0,0,.24); transform: translateY(-2px); }
.ggv-region-hub__location-card[hidden] { display: none; }
.ggv-region-hub__location-head { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 13px 12px 11px; border-bottom: 1px solid var(--ggv-line-soft); }
.ggv-region-hub__location-icon { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; color: #3b2639; background: linear-gradient(135deg, #ffdd8d, #ff9d5c); font-size: 13px; }
.ggv-region-hub__location-kicker { display: block; margin-bottom: 2px; color: #c9b99d; font-size: 8px; font-weight: 900; letter-spacing: 1.2px; }
.ggv-region-hub__location-head h3 { margin: 0; min-width: 0; font-size: 14px; line-height: 1.15; }
.ggv-region-hub__location-head h3 a { color: #fbf9ff; }
.ggv-region-hub__location-head h3 a:hover { color: #ffc97c; }
.ggv-region-hub__location-count { display: inline-flex; min-width: 39px; flex-direction: column; align-items: flex-end; color: #ffd17e; font-size: 12px; font-weight: 900; white-space: nowrap; }
.ggv-region-hub__location-count small { color: #a9a2b6; font-size: 8px; font-weight: 700; }
.ggv-region-hub__location-body { flex: 1; padding: 12px; }
.ggv-region-hub__location-body > p { min-height: 35px; margin: 0 0 10px; color: #ada6bb; font-size: 10px; line-height: 1.55; }
.ggv-region-hub__city-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.ggv-region-hub__city-list a { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 5px; padding: 7px 8px; color: #ded9e8; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.025); font-size: 10px; line-height: 1.2; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.ggv-region-hub__city-list a:hover { color: #2f2030; border-color: #ffc97d; background: #ffc97d; }
.ggv-region-hub__city-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ggv-region-hub__city-list small { flex: 0 0 auto; color: #e7a8bf; font-size: 9px; font-weight: 800; }
.ggv-region-hub__city-list a:hover small { color: #693143; }
.ggv-region-hub__more-cities { margin-top: 7px; }
.ggv-region-hub__more-cities summary { display: flex; align-items: center; justify-content: space-between; color: #f4c975; font-size: 10px; font-weight: 800; cursor: pointer; list-style: none; }
.ggv-region-hub__more-cities summary::-webkit-details-marker { display: none; }
.ggv-region-hub__more-cities summary i { transition: transform .2s ease; }
.ggv-region-hub__more-cities[open] summary i { transform: rotate(180deg); }
.ggv-region-hub__more-cities .is-more { margin-top: 7px; }
.ggv-region-hub__location-foot { margin-top: auto; border-top: 1px solid var(--ggv-line-soft); }
.ggv-region-hub__location-foot a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; color: #f7ca78; font-size: 10px; font-weight: 900; letter-spacing: .4px; text-transform: uppercase; }
.ggv-region-hub__location-foot a:hover { color: #fff; background: rgba(255,255,255,.04); }
.ggv-region-hub__empty { display: flex; grid-column: 1 / -1; min-height: 145px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 20px; color: #afa8bb; border: 1px dashed rgba(255,255,255,.2); background: #171424; text-align: center; }
.ggv-region-hub__empty i { color: #ffd07c; font-size: 24px; }
.ggv-region-hub__empty strong { color: #f3effc; font-size: 13px; }
.ggv-region-hub__empty span { font-size: 11px; }

.ggv-region-hub__guide { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 26px; border-top: 1px solid var(--ggv-line); background: linear-gradient(110deg, #171426, #23192f 58%, #33162d); }
.ggv-region-hub__guide-copy { max-width: 700px; }
.ggv-region-hub__guide p { margin: 0; color: #c3bccd; font-size: 12px; line-height: 1.65; }
.ggv-region-hub__guide-actions { justify-content: flex-end; max-width: 400px; }
.ggv-region-hub__account-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 9px 3px; color: #d6cfdf; font-size: 10px; font-weight: 800; }
.ggv-region-hub__account-link:hover { color: #ffd382; }


@media (max-width: 1140px) {
  .ggv-region-hub__hero-grid { grid-template-columns: minmax(0, 1fr) minmax(250px, 310px); gap: 22px; }
  .ggv-region-hub__location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ggv-region-hub__quick a { padding: 12px 10px; }
}
@media (max-width: 880px) {
  .ggv-region-hub__hero-grid { grid-template-columns: 1fr; }
  .ggv-region-hub__access { max-width: 520px; min-height: 0; }
  .ggv-region-hub__quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ggv-region-hub__quick a:nth-child(2) { border-right: 0; }
  .ggv-region-hub__quick a:nth-child(-n+2) { border-bottom: 1px solid var(--ggv-line); }
  .ggv-region-hub__tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ggv-region-hub__tab:nth-child(2) { border-right: 0; }
  .ggv-region-hub__tab:nth-child(-n+2) { border-bottom: 1px solid var(--ggv-line); }
  .ggv-region-hub__guide { grid-template-columns: 1fr; gap: 17px; }
  .ggv-region-hub__guide-actions { justify-content: flex-start; max-width: none; }
}
@media (max-width: 620px) {
  .ggv-region-hub { margin-bottom: 24px; border-left-width: 0; border-right-width: 0; }
  .ggv-region-hub__hero,
  .ggv-region-hub__finder,
  .ggv-region-hub__directory,
  .ggv-region-hub__guide { padding-left: 15px; padding-right: 15px; }
  .ggv-region-hub__hero { padding-top: 25px; }
  .ggv-region-hub__hero h1 { font-size: 34px; letter-spacing: -1.2px; }
  .ggv-region-hub__hero-copy > p { font-size: 12px; }
  .ggv-region-hub__hero-trust { gap: 7px 11px; font-size: 10px; }
  .ggv-region-hub__access { border-width: 2px; }
  .ggv-region-hub__access-head { align-items: flex-start; flex-direction: column; }
  .ggv-region-hub__quick a { min-height: 67px; }
  .ggv-region-hub__quick small { display: none; }
  .ggv-region-hub__section-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
  .ggv-region-hub__section-heading h2,
  .ggv-region-hub__guide h2 { font-size: 25px; }
  .ggv-region-hub__finder-form { grid-template-columns: 1fr; }
  .ggv-region-hub__finder-form > button { width: 100%; }
  .ggv-region-hub__steps { grid-template-columns: 1fr; }
  .ggv-region-hub__tabs { grid-template-columns: 1fr 1fr; }
  .ggv-region-hub__tab { min-height: 48px; padding: 7px; font-size: 10px; }
  .ggv-region-hub__alphabet { align-items: flex-start; flex-direction: column; }
  .ggv-region-hub__alphabet > div { justify-content: flex-start; }
  .ggv-region-hub__location-grid { grid-template-columns: 1fr; }
  .ggv-region-hub__location-body > p { min-height: auto; }
  .ggv-region-hub__guide-actions { align-items: stretch; flex-direction: column; }
  .ggv-region-hub__guide-actions .ggv-region-hub__button { width: 100%; }
  .ggv-region-hub__account-link { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .ggv-region-hub *,
  .ggv-region-hub *::before,
  .ggv-region-hub *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
