/* World Map Widget Styles */
.world-map-container {
    position: relative;
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

.world-map-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.world-map-svg {
    width: 100%;
    height: auto;
    display: block;
    background: transparent;
}

/* Tooltip Styles */
.country-tooltip {
    position: absolute;
    background: rgba(0, 0, 0, 0.85);
    color: white;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
    pointer-events: none;
    display: none;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transform: translateY(-100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    max-width: 300px;
    text-align: center;
}

.country-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -6px;
    border-width: 6px;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.85) transparent transparent transparent;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.1));
}

.tooltip-text {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    line-height: 1.3;
    letter-spacing: 0.025em;
}

/* SVG Path Animations */
/* Hide small islands for better map visualization */
.world-map-svg path[class*="BS"],  /* Bahamas */
.world-map-svg path[class*="CV"],  /* Cape Verde */
.world-map-svg path[class*="PF"],  /* French Polynesia */
.world-map-svg path[class*="TC"],  /* Turks and Caicos */
.world-map-svg path[class*="IC"],  /* Canary Islands */
.world-map-svg path[class*="GP"],  /* Guadeloupe */
.world-map-svg path[class*="MQ"],  /* Martinique */
.world-map-svg path[class*="BB"],  /* Barbados */
.world-map-svg path[class*="TT"],  /* Trinidad and Tobago */
.world-map-svg path[class*="MV"],  /* Maldives */
.world-map-svg path[class*="SC"],  /* Seychelles */
.world-map-svg path[class*="MT"],  /* Malta */
.world-map-svg path[class*="CY"],  /* Cyprus */
.world-map-svg path[class*="WS"],  /* Samoa */
.world-map-svg path[class*="TO"],  /* Tonga */
.world-map-svg path[class*="PW"],  /* Palau */
.world-map-svg path[class*="NR"],  /* Nauru */
.world-map-svg path[class*="TV"],  /* Tuvalu */
.world-map-svg path[class*="MH"],  /* Marshall Islands */
.world-map-svg path[class*="FM"],  /* Micronesia */
.world-map-svg path[class*="KI"],  /* Kiribati */
.world-map-svg path[class*="SB"],  /* Solomon Islands */
.world-map-svg path[class*="VU"],  /* Vanuatu */
.world-map-svg path[class*="FJ"],  /* Fiji */
.world-map-svg path[class*="NC"],  /* New Caledonia */
.world-map-svg path[class*="GF"],  /* French Guiana */
.world-map-svg path.Bahamas,
.world-map-svg path[class*="Cape Verde"],
.world-map-svg path[class*="French Polynesia"],
.world-map-svg path[class*="Turks and Caicos"],
.world-map-svg path[class*="Canary Islands"],
.world-map-svg path[class*="Guadeloupe"],
.world-map-svg path[class*="Martinique"],
.world-map-svg path[class*="Barbados"],
.world-map-svg path[class*="Trinidad"],
.world-map-svg path[class*="Tobago"],
.world-map-svg path[class*="Maldives"],
.world-map-svg path[class*="Seychelles"],
.world-map-svg path[class*="Malta"],
.world-map-svg path[class*="Cyprus"],
.world-map-svg path[class*="Samoa"],
.world-map-svg path[class*="Tonga"],
.world-map-svg path[class*="Palau"],
.world-map-svg path[class*="Nauru"],
.world-map-svg path[class*="Tuvalu"],
.world-map-svg path[class*="Marshall Islands"],
.world-map-svg path[class*="Micronesia"],
.world-map-svg path[class*="Kiribati"],
.world-map-svg path[class*="Solomon Islands"],
.world-map-svg path[class*="Vanuatu"],
.world-map-svg path[class*="Fiji"],
.world-map-svg path[class*="New Caledonia"],
.world-map-svg path[class*="French Guiana"] {
    display: none !important;
}

/* Keep main Caribbean countries visible */
.world-map-svg path#JM,  /* Jamaica */
.world-map-svg path.JM,  /* Jamaica */
.world-map-svg path#DO,  /* Dominican Republic */
.world-map-svg path.DO,  /* Dominican Republic */
.world-map-svg path#HT,  /* Haiti */
.world-map-svg path.HT,  /* Haiti */
.world-map-svg path#CU,  /* Cuba */
.world-map-svg path.CU   /* Cuba */ {
    display: block !important;
}

/* Keep major island nations visible */
.world-map-svg path#JP,  /* Japan */
.world-map-svg path.JP,  /* Japan */
.world-map-svg path#GB,  /* United Kingdom */
.world-map-svg path.GB,  /* United Kingdom */
.world-map-svg path#IE,  /* Ireland */
.world-map-svg path.IE,  /* Ireland */
.world-map-svg path#IS,  /* Iceland */
.world-map-svg path.IS,  /* Iceland */
.world-map-svg path#NZ,  /* New Zealand */
.world-map-svg path.NZ,  /* New Zealand */
.world-map-svg path#ID,  /* Indonesia */
.world-map-svg path.ID,  /* Indonesia */
.world-map-svg path#PH,  /* Philippines */
.world-map-svg path.PH,  /* Philippines */
.world-map-svg path#MY,  /* Malaysia */
.world-map-svg path.MY,  /* Malaysia */
.world-map-svg path#LK,  /* Sri Lanka */
.world-map-svg path.LK,  /* Sri Lanka */
.world-map-svg path#TW,  /* Taiwan */
.world-map-svg path.TW,  /* Taiwan */
.world-map-svg path#CU,  /* Cuba */
.world-map-svg path.CU   /* Cuba */ {
    display: block !important;
}

/* Default country styles */
.world-map-svg path {
    fill: var(--country-fill, #f0f0f0);
    stroke: var(--country-border, #333);
    stroke-width: 1.2px;
    cursor: pointer;
    transition: fill 0.3s ease, stroke 0.3s ease;
    shape-rendering: geometricPrecision;
    vector-effect: non-scaling-stroke;
}

.world-map-svg {
    shape-rendering: geometricPrecision;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

.world-map-svg path:focus {
    outline: 2px solid #007cba;
    outline-offset: 2px;
}

/* Responsive Design */
@media (max-width: 768px) {
    .world-map-container {
        padding: 10px;
    }
    
    .country-tooltip {
        font-size: 12px;
        padding: 6px 10px;
    }
}

@media (max-width: 480px) {
    .world-map-container {
        padding: 5px;
    }
    
    .country-tooltip {
        font-size: 11px;
        padding: 5px 8px;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .world-map-svg path {
        stroke-width: 1px !important;
    }
    
    .country-tooltip {
        background: #000;
        border: 1px solid #fff;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .world-map-svg path {
        transition: none;
    }
}

/* Print styles */
@media print {
    .country-tooltip {
        display: none !important;
    }
    
    .world-map-svg path {
        stroke: #000 !important;
        stroke-width: 0.5px !important;
    }
}

/* Loading state */
.world-map-container.loading {
    opacity: 0.7;
}

.world-map-container.loading::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border: 3px solid rgba(0, 124, 186, 0.3);
    border-top-color: #007cba;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 100;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Error state */
.world-map-error {
    text-align: center;
    padding: 40px 20px;
    color: #666;
    font-style: italic;
}

/* Accessibility improvements */
.world-map-svg path[role="button"] {
    cursor: pointer;
}

.world-map-svg path:focus-visible {
    outline: 2px solid #007cba;
    outline-offset: 2px;
}

/* Custom scrollbar for overflow */
.world-map-wrapper::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.world-map-wrapper::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.world-map-wrapper::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}

.world-map-wrapper::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .country-tooltip {
        background: rgba(255, 255, 255, 0.9);
        color: #000;
        border: 1px solid rgba(0, 0, 0, 0.1);
    }
    
    .country-tooltip::after {
        border-color: rgba(255, 255, 255, 0.9) transparent transparent transparent;
    }
    
    .world-map-svg path {
        fill: var(--country-fill, #2a2a2a);
        stroke: var(--country-border, #666);
    }
}

/* Elementor Editor Preview */
.elementor-editor-preview .world-map-svg {
    pointer-events: all;
}

.elementor-editor-preview .world-map-svg path {
    shape-rendering: geometricPrecision;
    vector-effect: non-scaling-stroke;
}

/* Fix for Elementor editor */
.elementor-element .world-map-container {
    position: relative;
}

.elementor-element .world-map-svg {
    max-width: 100%;
    height: auto;
}
