/* CVH-040 · Country System · GeoRouting + NavSwitcher + FooterSwitcher
   Prefijos: .cvh-geo- | .cvh-cs- | .cvh-fc-
   Paleta: #06060F bg | #D4AF37 gold | #FFA500 amber | #4A90E2 marian | #F0EAD6 pearl */

/* ========== VARS ========== */
#cvh-geo-overlay,#cvh-cs-wrap,#cvh-fc-wrap{
  --g:#D4AF37;--gb:#E9C66A;--gd:#8C6F1A;
  --am:#FFA500;--mn:#4A90E2;
  --ink:#F0EAD6;--dim:#A6A0B5;--mute:#6B6680;
  --line:rgba(212,175,55,.12);--soft:rgba(240,234,214,.06);
  --bg:#06060F;--bge:#0B0B17;--bgc:#0E0E1C;
  --fd:'Syne',system-ui,sans-serif;
  --fb:'DM Sans',system-ui,sans-serif;
  --fm:'JetBrains Mono',ui-monospace,monospace;
}

/* ========== GEO POPUP OVERLAY ========== */
#cvh-geo-overlay{
  display:none;
  position:fixed;inset:0;
  z-index:99999;
  background:rgba(6,6,15,.7);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
  align-items:center;justify-content:center;
  padding:20px;
  font-family:var(--fb);
}
#cvh-geo-overlay.cvh-geo-active{display:flex}

.cvh-geo-card{
  position:relative;
  width:100%;max-width:420px;
  background:linear-gradient(180deg,rgba(14,14,28,.97),rgba(11,11,23,.95));
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  border:1px solid var(--line);
  border-radius:24px;
  padding:32px 28px 28px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7),0 0 60px -20px rgba(212,175,55,.2),inset 0 1px 0 rgba(255,255,255,.04);
}
.cvh-geo-card::before{
  content:"";position:absolute;top:0;left:32px;right:32px;height:1px;
  background:linear-gradient(90deg,transparent,var(--g),transparent);opacity:.6;
}
.cvh-geo-close{
  position:absolute;top:16px;right:16px;
  width:32px;height:32px;border-radius:50%;
  background:rgba(240,234,214,.04);border:1px solid var(--soft);
  display:grid;place-items:center;cursor:pointer;
  color:var(--mute);font-size:20px;line-height:1;
  transition:all .2s;font-family:var(--fm);
}
.cvh-geo-close:hover{background:rgba(212,175,55,.1);border-color:var(--g);color:var(--g)}

.cvh-geo-spinner{
  width:48px;height:48px;margin:0 auto 18px;border-radius:50%;
  border:2px solid rgba(212,175,55,.15);border-top-color:var(--g);
  animation:cvhSpin 1.1s linear infinite;
}
@keyframes cvhSpin{to{transform:rotate(360deg)}}

.cvh-geo-icon{
  width:64px;height:64px;margin:0 auto 16px;border-radius:50%;
  background:radial-gradient(circle at 50% 35%,var(--g) 0%,#8a6e1c 60%,#2a1f08 100%);
  box-shadow:0 0 24px rgba(212,175,55,.4),inset 0 0 12px rgba(255,239,180,.6),inset 0 -8px 16px rgba(0,0,0,.4);
  display:grid;place-items:center;
}
.cvh-geo-icon svg{width:30px;height:30px;color:#1A140A}
.cvh-geo-icon.neutral{background:rgba(212,175,55,.08);box-shadow:none;border:1px solid var(--line)}
.cvh-geo-icon.neutral svg{color:var(--g)}
.cvh-geo-icon.alert{background:radial-gradient(circle at 50% 35%,var(--am) 0%,#a85f00 100%);box-shadow:0 0 24px rgba(255,165,0,.3)}
.cvh-geo-icon.alert svg{color:#3a1f00}
.cvh-geo-icon.error{background:radial-gradient(circle at 50% 35%,#C94352 0%,#5a1a22 100%);box-shadow:0 0 24px rgba(201,67,82,.3)}
.cvh-geo-icon.error svg{color:#fff}

.cvh-geo-eye{
  font-family:var(--fm);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--g);text-align:center;display:block;margin-bottom:8px;
}
.cvh-geo-h{
  font-family:var(--fd);font-weight:600;font-size:22px;line-height:1.25;
  color:var(--ink);text-align:center;letter-spacing:-.005em;margin-bottom:8px;
}
.cvh-geo-h em{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;color:var(--g)}
.cvh-geo-p{font-size:14.5px;line-height:1.55;color:var(--dim);text-align:center;margin-bottom:18px}

.cvh-geo-flag-wrap{display:flex;justify-content:center;margin-bottom:18px}
.cvh-geo-flag{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--fm);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
  padding:8px 14px;border-radius:999px;background:rgba(212,175,55,.06);border:1px solid var(--line);
}

.cvh-geo-actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.cvh-geo-actions.row{flex-direction:row}
.cvh-geo-actions.row > *{flex:1}

.cvh-geo-btn{
  font-family:var(--fb);font-weight:600;font-size:14.5px;
  padding:13px 18px;border-radius:12px;border:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;letter-spacing:.01em;transition:all .2s;width:100%;
}
.cvh-geo-btn.primary{
  background:linear-gradient(180deg,var(--gb) 0%,var(--g) 50%,var(--gd) 100%);
  color:#1A140A;
  box-shadow:0 8px 24px -8px rgba(212,175,55,.6),inset 0 1px 0 rgba(255,255,255,.4);
}
.cvh-geo-btn.primary:hover{transform:translateY(-1px);box-shadow:0 12px 32px -8px rgba(212,175,55,.7)}
.cvh-geo-btn.ghost{background:rgba(240,234,214,.04);color:var(--ink);border:1px solid var(--line)}
.cvh-geo-btn.ghost:hover{background:rgba(212,175,55,.08);border-color:var(--g);color:var(--g)}
.cvh-geo-btn.text-btn{background:transparent;color:var(--dim);padding:8px 12px;width:auto;align-self:center}
.cvh-geo-btn.text-btn:hover{color:var(--g)}

.cvh-geo-checkbox{
  display:flex;align-items:center;gap:10px;
  font-size:13px;color:var(--dim);padding:12px 0 6px;justify-content:center;
}
.cvh-geo-checkbox input{accent-color:var(--g);width:15px;height:15px}

.cvh-geo-search{
  width:100%;background:rgba(6,6,15,.6);
  border:1px solid var(--line);color:var(--ink);
  font-family:var(--fb);font-size:14px;
  padding:10px 14px;border-radius:10px;margin-bottom:8px;
}
.cvh-geo-search:focus{outline:2px solid var(--g);outline-offset:0;border-color:var(--g)}
.cvh-geo-search::placeholder{color:var(--mute)}

.cvh-geo-list{
  display:grid;gap:5px;max-height:260px;overflow-y:auto;
  margin:0 -4px 12px;padding:4px;
}
.cvh-geo-list::-webkit-scrollbar{width:5px}
.cvh-geo-list::-webkit-scrollbar-thumb{background:rgba(212,175,55,.25);border-radius:3px}

.cvh-geo-row{
  display:flex;align-items:center;gap:12px;
  padding:10px 12px;border-radius:10px;
  background:rgba(240,234,214,.02);border:1px solid transparent;
  cursor:pointer;transition:all .15s;
  text-align:left;color:var(--ink);font-family:var(--fb);font-size:14px;
  width:100%;
}
.cvh-geo-row:hover{background:rgba(212,175,55,.08);border-color:var(--line)}
.cvh-geo-row.active{background:rgba(212,175,55,.12);border-color:var(--g);color:var(--g)}
.cvh-geo-row.soon{opacity:.7}
.cvh-geo-row .meta{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-left:auto}
.cvh-geo-row.soon .meta{color:var(--am)}
.cvh-geo-row .check{width:16px;height:16px;color:var(--g);margin-left:auto}

.cvh-geo-divider{height:1px;background:var(--line);margin:14px 0}
.cvh-geo-foot{font-size:12px;color:var(--mute);text-align:center;font-family:var(--fm);letter-spacing:.1em;text-transform:uppercase}
.cvh-geo-foot a{color:var(--g);text-decoration:none}

/* ===== FLAGS (shared atlas) ===== */
.cvh-fi{width:18px;height:13px;border-radius:2px;flex:0 0 auto;border:1px solid rgba(255,255,255,.15);display:inline-block}
.cvh-fi.es{background:linear-gradient(180deg,#C60B1E 0 33%,#FFC400 33% 66%,#C60B1E 66% 100%)}
.cvh-fi.mx{background:linear-gradient(90deg,#006847 0 33%,#FFF 33% 66%,#CE1126 66% 100%)}
.cvh-fi.co{background:linear-gradient(180deg,#FCD116 0 50%,#003893 50% 75%,#CE1126 75% 100%)}
.cvh-fi.ar{background:linear-gradient(180deg,#74ACDF 0 33%,#FFF 33% 66%,#74ACDF 66% 100%)}
.cvh-fi.cl{background:linear-gradient(180deg,#FFF 0 50%,#D52B1E 50% 100%);position:relative}
.cvh-fi.cl::before{content:"";position:absolute;left:0;top:0;width:40%;height:50%;background:#0039A6}
.cvh-fi.pe{background:linear-gradient(90deg,#D91023 0 33%,#FFF 33% 66%,#D91023 66% 100%)}
.cvh-fi.ec{background:linear-gradient(180deg,#FFD100 0 33%,#034EA2 33% 66%,#EE1C25 66% 100%)}
.cvh-fi.br{background:#009B3A;position:relative}
.cvh-fi.br::before{content:"";position:absolute;inset:2px;background:#FEDF00;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.cvh-fi.us{background:repeating-linear-gradient(180deg,#B22234 0 2px,#FFF 2px 4px)}
.cvh-fi.pt{background:linear-gradient(90deg,#006600 0 40%,#FF0000 40% 100%)}
.cvh-fi.it{background:linear-gradient(90deg,#008C45 0 33%,#FFF 33% 66%,#CD212A 66% 100%)}

/* ========== NAV COUNTRY SWITCHER ========== */
#cvh-cs-wrap{
  display:inline-flex;align-items:center;
  position:relative;
  font-family:var(--fb);
}
.cvh-cs-trigger{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px 7px 10px;border-radius:10px;
  background:rgba(240,234,214,.03);border:1px solid var(--line);
  cursor:pointer;color:var(--ink);font-family:var(--fb);font-size:13px;font-weight:500;
  transition:all .2s;white-space:nowrap;
}
.cvh-cs-trigger:hover,.cvh-cs-trigger.open{
  background:rgba(212,175,55,.08);border-color:var(--g);color:var(--g);
}
.cvh-cs-code{font-family:var(--fm);font-size:10px;letter-spacing:.12em;color:var(--dim)}
.cvh-cs-chev{width:12px;height:12px;transition:transform .2s;flex-shrink:0}
.cvh-cs-trigger.open .cvh-cs-chev{transform:rotate(180deg)}

.cvh-cs-pop{
  display:none;
  position:absolute;top:calc(100% + 10px);right:0;
  width:300px;
  background:linear-gradient(180deg,rgba(14,14,28,.98),rgba(11,11,23,.95));
  border:1px solid var(--line);border-radius:16px;
  padding:14px;
  box-shadow:0 24px 60px -12px rgba(0,0,0,.6),0 0 40px -16px rgba(212,175,55,.15);
  z-index:9999;
}
.cvh-cs-pop.open{display:block}
.cvh-cs-pop::before{
  content:"";position:absolute;top:-5px;right:18px;
  width:9px;height:9px;background:rgba(14,14,28,.98);
  border-top:1px solid var(--line);border-left:1px solid var(--line);
  transform:rotate(45deg);
}
.cvh-cs-head{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--fm);font-size:10px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--mute);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line);
}
.cvh-cs-search{
  width:100%;background:rgba(6,6,15,.5);border:1px solid var(--line);
  color:var(--ink);font-family:var(--fb);font-size:13px;
  padding:8px 12px;border-radius:8px;margin-bottom:8px;
}
.cvh-cs-search:focus{outline:1px solid var(--g);border-color:var(--g)}
.cvh-cs-search::placeholder{color:var(--mute)}
.cvh-cs-list{max-height:240px;overflow-y:auto;display:grid;gap:3px}
.cvh-cs-list::-webkit-scrollbar{width:4px}
.cvh-cs-list::-webkit-scrollbar-thumb{background:rgba(212,175,55,.2);border-radius:2px}
.cvh-cs-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;border-radius:8px;
  background:rgba(240,234,214,.02);border:1px solid transparent;
  cursor:pointer;color:var(--ink);font-family:var(--fb);font-size:13.5px;
  width:100%;transition:all .15s;text-align:left;
}
.cvh-cs-row:hover{background:rgba(212,175,55,.08);border-color:var(--line)}
.cvh-cs-row.active{background:rgba(212,175,55,.12);border-color:var(--g);color:var(--g)}
.cvh-cs-row.soon{opacity:.65}
.cvh-cs-row .name{flex:1}
.cvh-cs-row .meta{font-family:var(--fm);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.cvh-cs-row.soon .meta{color:var(--am)}
.cvh-cs-row .check{width:15px;height:15px;color:var(--g);margin-left:auto}
.cvh-cs-foot{
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);
  padding-top:10px;margin-top:10px;border-top:1px solid var(--line);
}
.cvh-cs-foot a{color:var(--g);text-decoration:none}

/* ========== FOOTER COUNTRY SWITCHER ========== */
#cvh-fc-wrap{
  font-family:var(--fb);
  background:linear-gradient(180deg,rgba(14,14,28,.7),rgba(11,11,23,.5));
  border:1px solid var(--line);
  border-radius:14px;padding:18px;
  margin-top:8px;
}
.cvh-fc-eye{font-family:var(--fm);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--g);display:block;margin-bottom:6px}
.cvh-fc-h{font-family:var(--fd);font-weight:600;font-size:15px;color:var(--ink);margin-bottom:12px}
.cvh-fc-h em{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;color:var(--g)}
.cvh-fc-trigger{
  display:flex;align-items:center;gap:10px;
  padding:11px 12px;width:100%;
  background:rgba(212,175,55,.06);border:1px solid var(--line);
  border-radius:10px;cursor:pointer;color:var(--ink);font-family:var(--fb);
  transition:all .2s;text-align:left;
}
.cvh-fc-trigger:hover{background:rgba(212,175,55,.1);border-color:var(--g)}
.cvh-fc-trigger .cvh-fc-lbl{flex:1}
.cvh-fc-trigger .cvh-fc-country{font-weight:600;font-size:14px;display:block;color:var(--ink)}
.cvh-fc-trigger .cvh-fc-micro{font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--g)}
.cvh-fc-trigger .cvh-fc-chev{width:12px;height:12px;transition:transform .2s;color:var(--dim)}
#cvh-fc-wrap.open .cvh-fc-chev{transform:rotate(180deg)}
#cvh-fc-wrap.open .cvh-fc-trigger{background:rgba(212,175,55,.1);border-color:var(--g)}

.cvh-fc-help{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--mute);margin-top:10px}
.cvh-fc-help svg{width:13px;height:13px;color:var(--mn);flex-shrink:0;margin-top:1px}
.cvh-fc-help a{color:var(--g);text-decoration:none}

.cvh-fc-pop{display:none;margin-top:10px}
#cvh-fc-wrap.open .cvh-fc-pop{display:block}
.cvh-fc-pop-head{
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);
  padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line);
}
.cvh-fc-list{max-height:220px;overflow-y:auto;display:grid;gap:4px}
.cvh-fc-list::-webkit-scrollbar{width:4px}
.cvh-fc-list::-webkit-scrollbar-thumb{background:rgba(212,175,55,.2);border-radius:2px}
.cvh-fc-pop-foot{
  display:flex;justify-content:space-between;align-items:center;
  font-size:12px;color:var(--mute);padding-top:10px;margin-top:10px;border-top:1px solid var(--line);
}
.cvh-fc-pop-foot label{display:flex;align-items:center;gap:8px;cursor:pointer}
.cvh-fc-pop-foot input{accent-color:var(--g)}
.cvh-fc-pop-foot a{color:var(--g);text-decoration:none;font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase}

/* ========== RESPONSIVE ========== */
@media(max-width:768px){
  .cvh-geo-card{max-width:360px;padding:26px 22px 24px;border-radius:20px}
  .cvh-geo-h{font-size:20px}
  .cvh-geo-p{font-size:14px}
  .cvh-geo-icon{width:56px;height:56px}
  .cvh-cs-pop{width:260px;right:0}
  .cvh-cs-code{display:none}
}
@media(max-width:480px){
  .cvh-geo-card{max-width:100%;border-radius:16px;padding:22px 18px 20px}
  .cvh-geo-h{font-size:18px}
  .cvh-geo-actions.row{flex-direction:column}
  #cvh-cs-wrap .cvh-cs-label{display:none}
  .cvh-cs-pop{width:240px}
}
