/* Tu Visa – Mapa Mundi Interactivo */
.tvmm{--tvmm-navy:#040C1A;--tvmm-navy2:#1B3356;--tvmm-orange:#F58E02;--tvmm-orange-t:#E17900;--tvmm-grey:#475D77;--tvmm-muted:#8A97A8;
  font-family:"Inter",system-ui,sans-serif;color:var(--tvmm-navy);width:100%}
.tvmm *{box-sizing:border-box}
.tvmm-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(260px,330px);background:#fff;border-radius:18px;
  box-shadow:0 24px 60px -28px rgba(4,12,26,.28),0 2px 8px rgba(4,12,26,.04);overflow:hidden;padding-bottom:14px}
/* franja correo aéreo */
.tvmm-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;
  background:repeating-linear-gradient(-45deg,var(--tvmm-navy2) 0 22px,transparent 22px 34px,var(--tvmm-orange) 34px 56px,transparent 56px 68px)}
.tvmm-map{position:relative;padding:34px 28px 26px;display:flex;flex-direction:column;justify-content:flex-start;align-self:start;gap:18px;min-width:0}
.tvmm-svg-wrap{width:100%;min-height:200px;margin-top:24px;display:flex;align-items:center;justify-content:center}
.tvmm-svg{width:100%;height:auto;display:block;overflow:visible}
.tvmm-loading{color:var(--tvmm-muted);font-size:14px;margin:0}
.tvmm-c{fill:var(--tvmm-off,#E3E8EF);stroke:var(--tvmm-stroke,#fff);stroke-width:.6;vector-effect:non-scaling-stroke;transition:fill .25s ease}
.tvmm-c.is-on{fill:var(--tvmm-on,#1B3356);cursor:pointer;outline:none}
.tvmm-c.is-on.is-active{fill:var(--tvmm-hover,#F58E02)}
.tvmm-c.is-on.is-hover,.tvmm-c.is-on:focus-visible{fill:var(--tvmm-hover,#F58E02);filter:brightness(1.06)}
.tvmm-dot{fill:var(--tvmm-on,#1B3356);stroke:#fff;stroke-width:2;cursor:pointer;transition:fill .25s,r .25s}
.tvmm-dot.is-active,.tvmm-dot.is-hover{fill:var(--tvmm-hover,#F58E02)}
.tvmm-tip{position:absolute;pointer-events:none;transform:translate(-50%,calc(-100% - 12px));background:var(--tvmm-navy);color:#fff;
  font:600 12px/1 "Inter",sans-serif;padding:7px 10px;border-radius:6px;white-space:nowrap;opacity:0;transition:opacity .15s;z-index:3}
.tvmm-tip.is-on{opacity:1}
.tvmm-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tvmm-chip{appearance:none;border:1px solid #E1E7EE;background:#F6F8FB;color:var(--tvmm-navy2);font:600 12.5px/1 "Inter",sans-serif;
  padding:8px 13px;border-radius:99px;cursor:pointer;transition:all .2s}
.tvmm-chip:hover,.tvmm-chip.is-hover{border-color:var(--tvmm-hover,#F58E02);color:var(--tvmm-orange-t)}
.tvmm-chip.is-active{background:var(--tvmm-hover,#F58E02);border-color:var(--tvmm-hover,#F58E02);color:#fff}
.tvmm-divider{background:#E6EBF1;margin:28px 0}
/* panel */
.tvmm-aside{position:relative;padding:28px 30px 34px;display:flex;flex-direction:column;min-width:0}
.tvmm-postal{position:relative;height:184px;margin:0 -6px 6px 0}
/* estampilla */
.tvmm-stamp{position:absolute;right:4px;top:4px;width:126px;height:150px;padding:8px;transform:rotate(4deg);
  background:radial-gradient(circle,transparent 3.2px,#fff 3.8px) -5px -5px/10px 10px;
  filter:drop-shadow(0 8px 14px rgba(4,12,26,.22));transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.tvmm-card:hover .tvmm-stamp{transform:rotate(1deg) translateY(-2px)}
.tvmm-stamp-in{position:relative;height:100%;overflow:hidden;border-radius:2px;color:#fff;
  background:radial-gradient(120% 90% at 85% 10%,rgba(245,142,2,.35),transparent 55%),linear-gradient(165deg,#22406B 0%,var(--tvmm-navy2) 45%,var(--tvmm-navy) 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:9px 6px 8px}
.tvmm-stamp-in::before{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,.28);border-radius:1px;pointer-events:none}
.tvmm-stamp-in::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.10;
  background:repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 3px)}
.tvmm-stamp-top{position:relative;z-index:1;font:700 8px/1 "Outfit","Montserrat",sans-serif;letter-spacing:3px;align-self:flex-start;margin:2px 0 0 5px;opacity:.9}
.tvmm-stamp-plane{position:absolute;top:8px;right:8px;width:15px;height:15px;color:var(--tvmm-orange);transform:rotate(45deg);z-index:1}
.tvmm-stamp-plane svg{width:100%;height:100%;display:block}
.tvmm-stamp-logo{position:relative;z-index:1;width:64px;height:64px;background-repeat:no-repeat;background-size:347% auto;background-position:50.5% 50.2%;
  filter:drop-shadow(0 4px 10px rgba(245,142,2,.35))}
.tvmm-stamp-bottom{position:relative;z-index:1;white-space:nowrap;font:800 13px/1 "Outfit",sans-serif;letter-spacing:2.5px;padding-top:6px;
  border-top:1px solid rgba(255,255,255,.25);width:78%;text-align:center}
/* matasellos */
.tvmm-postmark{position:absolute;left:0;top:42px;width:262px;height:auto;color:#2E3D57;opacity:.55;transform:rotate(-12deg);
  z-index:2;pointer-events:none;mix-blend-mode:multiply;font-family:"Outfit","Montserrat",sans-serif;overflow:visible}
.tvmm-postmark image{opacity:.9}
.tvmm-info{display:flex;flex-direction:column}
.tvmm-info.is-swap{animation:tvmmIn .35s ease both}
@keyframes tvmmIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tvmm-eyebrow{font:700 11px/1.2 "Outfit","Montserrat",sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:var(--tvmm-muted);margin-bottom:10px}
.tvmm-name{display:flex;align-items:center;gap:6px;font:700 22px/1.2 "Outfit",sans-serif;color:var(--tvmm-navy2);margin-bottom:18px}
.tvmm-name svg{width:20px;height:20px;flex:none;color:var(--tvmm-orange)}
.tvmm-label{font:500 11px/1.3 "Inter",sans-serif;letter-spacing:1.5px;text-transform:uppercase;color:var(--tvmm-muted);margin:0 0 6px}
.tvmm-big{font:800 30px/1.1 "Outfit",sans-serif;color:var(--tvmm-navy);margin:0 0 4px;letter-spacing:-.5px}
.tvmm-sep{height:1px;background:#E6EBF1;margin:16px 0 18px}
.tvmm-val{font:500 15px/1.4 "Inter",sans-serif;color:var(--tvmm-navy);margin:0 0 16px}
.tvmm-tags{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tvmm-tags li{background:#FFF4E5;color:var(--tvmm-orange-t);font:600 12px/1 "Inter",sans-serif;padding:6px 10px;border-radius:99px}
.tvmm-desc{font:400 14px/1.6 "Inter",sans-serif;color:var(--tvmm-grey);margin:0 0 18px}
.tvmm-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;background:var(--tvmm-orange);color:#fff !important;text-decoration:none !important;
  font:600 14px/1 "Inter",sans-serif;padding:13px 20px;border-radius:6px;transition:background .3s,transform .3s}
.tvmm-btn svg{width:16px;height:16px}
.tvmm-btn:hover{background:#B56901;transform:translateX(2px)}
/* responsive */
@media (max-width:1024px){
  .tvmm-card{grid-template-columns:1fr}
  .tvmm-divider{height:1px;margin:0 28px}
  .tvmm-postal{position:absolute;right:24px;top:20px;width:210px;height:140px;margin:0}
  .tvmm-stamp{width:100px;height:120px}
  .tvmm-stamp-logo{width:48px;height:48px}
  .tvmm-postmark{width:206px;top:52px}
  .tvmm-aside{padding-right:240px;min-height:200px}
}
@media (max-width:600px){
  .tvmm-map{padding:22px 14px 18px}
  .tvmm-aside{padding:24px 20px 30px}
  .tvmm-postal{right:14px;top:16px;width:84px;height:96px}
  .tvmm-postmark{display:none}
  .tvmm-stamp{width:72px;height:88px;padding:6px}
  .tvmm-stamp-logo{width:36px;height:36px}
  .tvmm-stamp-top,.tvmm-stamp-plane{display:none}
  .tvmm-stamp-bottom{font-size:8px;letter-spacing:1px;padding-top:4px;width:90%}
  .tvmm-name{font-size:20px;padding-right:70px}
  .tvmm-big{font-size:26px}
  .tvmm-chip{font-size:12px;padding:7px 11px}
}
@media (prefers-reduced-motion:reduce){.tvmm *{animation:none !important;transition:none !important}}
