/* ==========================================================================
   1. DECLARACIÓN DE FUENTES LOCALES (OUTFIT)
   ========================================================================== */

/* Outfit - Light (300) */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-300.woff2') format('woff2');
}

/* Outfit - Regular (400) */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-regular.woff2') format('woff2');
}

/* Outfit - Medium (500) */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-500.woff2') format('woff2');
}

/* Outfit - Bold (700) */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-700.woff2') format('woff2');
}

/* Outfit - Black (900) */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/outfit-v15-latin-900.woff2') format('woff2');
}

/* ==========================================================================
   2. ESTILOS BASE Y PROPIOS DE LA PÁGINA
   ========================================================================== */

/* Asignación global de la fuente */
html, body {
  font-family: 'Outfit', sans-serif;
}

.transition-custom,.venezuela-map-container path{transition:.3s cubic-bezier(.4, 0, .2, 1)}
html{scroll-behavior:smooth}
body{background-color:#09090b;color:#fafafa;overflow-x:hidden}
::selection{background-color:#22c55e;color:#fff}
.selection-yellow ::selection,.selection-yellow::selection{background-color:#facc15;color:#09090b}

@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.animate-marquee{animation:100s linear infinite marquee}

.modal-enter{opacity:0;pointer-events:none}
.modal-enter-active{opacity:1;pointer-events:auto;transition:opacity .3s ease-out}
.modal-exit-active{opacity:0;pointer-events:none;transition:opacity .2s ease-in}
.modal-content-enter{transform:scale(.95) translateY(20px)}
.modal-content-enter-active{transform:scale(1) translateY(0);transition:transform .3s cubic-bezier(.34, 1.56, .64, 1)}

.faq-content{max-height:0;opacity:0;transition:max-height 350ms cubic-bezier(.4, 0, .2, 1),opacity .3s;overflow:hidden}
#map-zoom-content,.map-pin-container{transition:transform 450ms cubic-bezier(.2, .8, .2, 1)}
.faq-content.open{max-height:500px;opacity:1}

.map-viewport{position:relative;width:100%;overflow:hidden;background:0 0!important;border:none!important;box-shadow:none!important}
#map-zoom-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:center center;cursor:grab;user-select:none}
#map-zoom-content.dragging{cursor:grabbing;transition:none!important}
.map-pin-container{transform:translate(-50%,-8px) scale(calc(1 / var(--map-scale,1)));transform-origin:center 8px}
#map-zoom-content.dragging .map-pin-container{transition:none!important}

.venezuela-map-container svg{filter:drop-shadow(0 10px 15px rgba(9, 9, 11, .2))}
.venezuela-map-container path{fill:rgba(9,9,11,0.15)!important;stroke:rgba(9,9,11,0.1)!important;stroke-width:.6!important;pointer-events:auto!important;cursor:pointer}
.venezuela-map-container path:hover{fill:rgba(9,9,11,0.28)!important;stroke:rgba(9,9,11,0.2)!important}
.venezuela-map-container path#VEJ{fill:#09090b!important;stroke:#09090b!important;stroke-width:1.2!important}
.venezuela-map-container path#VEJ:hover{fill:#18181b!important;stroke:#18181b!important}

#state-tooltip{box-shadow:0 10px 25px -5px rgba(0,0,0,.4),0 8px 10px -6px rgba(0,0,0,.4)}