/* =========================
   HERO WRAPPER & FADE OVERLAY
   ========================= */
.mecha-hero-wrapper {
    /* Asegurar contexto de posicionamiento */
    position: relative;
    z-index: 1;
}

.hero-fade-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 200px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 40%, rgba(255, 255, 255, 0.95) 70%, rgba(255, 255, 255, 1) 100%);
    pointer-events: none;
    z-index: 15;
    /* Mayor que banners, menor que cards */
}

.cards-overlay-container {
    position: relative;
    max-width: 1280px;
    /* Aumentado para que la 6ta tarjeta se vea completa */
    margin: -200px auto 0 auto;
    /* Margin-top negativo aumentado 50px más para escritorio */
    padding: 0 20px;
    /* Padding lateral para que no toque los bordes en móvil */
    z-index: 20;
    /* Siempre encima del overlay */
}

/* Ajustes responsive para el overlay */
@media (max-width: 768px) {
    .hero-fade-overlay {
        height: 100%;
        /* Cubrir toda la altura disponible */
        display: block !important;
        /* Gradiente más bajo: Transparente hasta el 70%, luego fuerte hacia blanco */
        background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, 0.9) 92%, #ffffff 100%);
    }

    .cards-overlay-container {
        margin-top: -60px !important;
        /* Ajustado para que no suban tanto */
        padding: 0 10px;
    }
}

@media (max-width: 480px) {

    /* (Ya no necesario reducir altura, usa 100%) */
    .cards-overlay-container {
        margin-top: -60px !important;
        /* Ajustado consistencia */
    }
}

/* =========================
   MECHA MOBILE SLIDER (SIMPLE)
   ========================= */
.mecha-mobile-hero {
    position: relative;
    overflow: hidden;
}

.mecha-mobile-hero .slider-banner-container {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    display: flex;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.mecha-mobile-hero .slider-banner-container::-webkit-scrollbar {
    display: none;
}

.mecha-mobile-hero .slider-content {
    display: flex;
    width: 100%;
}

.mecha-mobile-hero .slider-item {
    flex: 0 0 100%;
    scroll-snap-align: start;
    display: block;
    /* Asegurar que el ancla sea bloque */
}

/* Mantener proporción 700x800 */
.mecha-mobile-hero .slider-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 700 / 800;
    display: block;
    object-fit: cover;
}

/* Contenedor de indicadores */
.mecha-mobile-hero .slider-dots {
    position: absolute;
    bottom: 15px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
    z-index: 10;
}

/* Líneas de progreso */
.mecha-mobile-hero .dot {
    width: 24px;
    height: 3px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: all 0.3s ease;
}

/* Estado activo para las líneas */
.mecha-mobile-hero .dot.active {
    background: #fff;
    width: 32px;
}

/* =========================
   MECHA CARDS SLIDER
   ========================= */
.mecha-cards-slider-wrapper {
    position: relative;
    width: 100%;
    overflow: visible;
    /* Permite que el botón se vea fuera */
}

/* Botones del slider de cards - Estilo sutil */
.mecha-cards-slider-wrapper .mecha-slider-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    color: #555;
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    opacity: 0;
}

.mecha-cards-slider-wrapper:hover .mecha-slider-btn {
    opacity: 1;
}

.mecha-cards-slider-wrapper .mecha-slider-btn:hover {
    background: rgba(96, 23, 177, 0.12);
    color: #6017b1;
    border-color: rgba(96, 23, 177, 0.25);
    transform: translateY(-50%) scale(1.05);
    box-shadow: 0 2px 8px rgba(96, 23, 177, 0.15);
}

.mecha-cards-slider-wrapper .mecha-slider-prev {
    left: -40px;
}

.mecha-cards-slider-wrapper .mecha-slider-next {
    right: -60px;
}

/* Responsive: en pantallas medianas acercar botones */
@media (max-width: 1400px) {
    .mecha-cards-slider-wrapper .mecha-slider-prev {
        left: -5px;
    }

    .mecha-cards-slider-wrapper .mecha-slider-next {
        right: -5px;
    }
}

/* OCULTAR BOTONES SOLO EN MÓVIL */
@media (max-width: 768px) {
    .mecha-slider-btn {
        display: none !important;
    }
}

/* Indicador de deslizamiento para móvil */
.mecha-slider-swipe-hint {
    display: none;
    position: absolute;
    bottom: 35px;
    right: 25px;
    background: rgba(96, 23, 177, 0.9);
    color: #fff;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
    pointer-events: none;
    z-index: 15;
    animation: pulseSwipe 2s ease-in-out infinite;
    box-shadow: 0 2px 8px rgba(96, 23, 177, 0.3);
}

@keyframes pulseSwipe {

    0%,
    100% {
        opacity: 0.7;
        transform: translateX(0);
    }

    50% {
        opacity: 1;
        transform: translateX(5px);
    }
}

@media (max-width: 768px) {
    .mecha-slider-swipe-hint {
        display: none;
        /* Ocultada: la 3ra card cortada ya indica scroll */
    }
}


.mecha-cards-slider {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 19px;
    padding: 10px 4px 30px 4px;
    /* Padding simétrico reducido */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;

    /* Centrado de las tarjetas */
    margin: 0 auto;
    width: fit-content;
    max-width: 1196px;
    /* (183*6) + (18*5) + 8px padding = 1196px exactos */
}

.mecha-cards-slider>br,
.mecha-cards-slider>p:empty {
    display: none;
}

.mecha-cards-slider::-webkit-scrollbar {
    display: none;
}

.mecha-card {
    flex: 0 0 183px;
    width: 183px;
    scroll-snap-align: start;
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .15);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform .2s ease, box-shadow .2s ease;
    border: 1px solid #ededed;
    height: 285px;
}



.mecha-card-body {
    padding: 16px 16px 0 16px;
    /* Reducido top de 24px a 16px */
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex-grow: 1;
    justify-content: flex-start;
    /* Cambiado de center a flex-start para subir contenido */
}

.mecha-card-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 700;
    color: #333;
    line-height: 1.25;
    margin-bottom: 8px;
    /* Agregado margen inferior */
}

/* ... (icono) ... */

.mecha-card-description {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    color: #666;
    margin-bottom: auto;
    /* Empujar footer hacia abajo suavemente */
    line-height: 1.4;
    transition: color .2s ease;
}

.mecha-card-footer {
    padding: 0 16px 24px 16px;
    /* Aumentado bottom de 20px a 24px */
    width: 100%;
    margin-top: 0;
}

.mecha-card-button {
    display: block;
    width: 100%;
    padding: 4px 4px;
    background-color: rgba(96, 23, 177, 0.08);
    /* Fondo morado muy suave */
    color: #6017b1;
    /* Texto morado */
    font-size: 11px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 700;
    text-align: center;
    border-radius: 12px;
    text-decoration: none;
    transition: background-color .2s, color .2s;
}

.mecha-card-button:hover {
    background-color: #6017b1;
    color: #fff;
}

.mecha-card:has(.mecha-card-button:hover) .mecha-card-description {
    color: #6017b1;
}

/* Responsive móvil - Tarjetas más compactas */
@media (max-width: 768px) {
    .mecha-card {
        flex: 0 0 150px;
        width: 150px;
        height: 235px;
    }

    .mecha-card-body {
        padding: 16px 12px 0 12px;
    }

    .mecha-card-title {
        font-size: 13px;
    }

    .mecha-card-icon {
        width: 100px;
        height: 100px;
    }

    .mecha-card-description {
        font-size: 11px;
        margin-bottom: 12px;
    }

    .mecha-card-footer {
        padding: 0 12px 16px 12px;
    }

    .mecha-card-button {
        padding: 4px 4px;
    }

    /* El ::after ya está definido globalmente con "Ver" */

    .mecha-cards-slider {
        gap: 14px;
    }
}

@media (max-width: 480px) {
    .mecha-card {
        flex: 0 0 130px;
        width: 130px;
        height: 210px;
    }

    .mecha-card-body {
        padding: 12px 10px 0 10px;
    }

    .mecha-card-title {
        font-size: 12px;
    }

    .mecha-card-icon {
        width: 80px;
        height: 80px;
    }

    .mecha-card-description {
        font-size: 10px;
        margin-bottom: 10px;
    }

    .mecha-card-footer {
        padding: 0 10px 12px 10px;
    }

    .mecha-card-button {
        padding: 4px 4px;
    }

    .mecha-cards-slider {
        gap: 10px;
        padding: 10px 100px 30px 4px;
    }
}

/* =========================
   PAYMENT MODAL
   ========================= */
.mecha-pay-modal {
    display: none;
    position: fixed;
    z-index: 99999;
    /* High z-index to stay on top */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

.mecha-pay-modal.is-active {
    display: flex;
}

.mecha-pay-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    cursor: pointer;
}

.mecha-pay-modal-content {
    position: relative;
    background: #fff;
    padding: 32px;
    border-radius: 8px;
    width: 90%;
    max-width: 600px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    animation: mechaSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 10;
    max-height: 90vh;
    overflow-y: auto;
}

@keyframes mechaSlideUp {
    from {
        transform: translateY(30px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.mecha-pay-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    background: none;
    border: none;
    color: #999;
    padding: 4px 8px;
    transition: color 0.2s;
    z-index: 2;
}

.mecha-pay-modal-close:hover {
    color: #333;
}

.mecha-pay-title {
    margin: 0 0 24px 0;
    font-size: 24px;
    font-weight: 400;
    color: #000;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Payment Method Container */
.mecha-pay-method {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    align-items: flex-start;
}

.mecha-pay-method-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mecha-pay-method-icon svg {
    width: 32px;
    height: auto;
    max-height: 32px;
}

.mecha-pay-icon-placeholder {
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mecha-pay-method-content {
    flex: 1;
}

.mecha-pay-method-content h3 {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 400;
    color: #333;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
}

.mecha-pay-method-content h3 strong {
    font-weight: 600;
}

.mecha-pay-method-content p {
    margin: 0 0 12px 0;
    font-size: 14px;
    line-height: 1.5;
    color: #666;
}

.mecha-pay-note {
    font-size: 13px !important;
    color: #00a650 !important;
    margin: 8px 0 0 0 !important;
}

/* Payment Method Logos */
.mecha-pay-logos {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.mecha-pay-logo-placeholder {
    display: inline-block;
    padding: 6px 12px;
    background: #f5f5f5;
    border-radius: 4px;
    font-size: 12px;
    color: #666;
    border: 1px solid #e5e5e5;
}

/* Divider */
.mecha-pay-divider {
    height: 1px;
    background: #e5e5e5;
    margin: 24px 0;
}

/* Responsive */
@media (max-width: 640px) {
    .mecha-pay-modal-content {
        padding: 24px;
        width: 95%;
        max-height: 95vh;
    }

    .mecha-pay-title {
        font-size: 20px;
        margin-bottom: 20px;
    }

    .mecha-pay-method {
        gap: 12px;
    }

    .mecha-pay-method-icon {
        width: 40px;
        height: 40px;
    }

    .mecha-pay-icon-placeholder {
        font-size: 20px;
    }
}

/* =========================
   TRACKING MODAL
   ========================= */
.mecha-tracking-modal {
    display: none;
    position: fixed;
    z-index: 99999;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

.mecha-tracking-modal.is-active {
    display: flex;
}

.mecha-tracking-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    cursor: pointer;
}

.mecha-tracking-modal-content {
    position: relative;
    background: #fff;
    padding: 32px;
    border-radius: 12px;
    width: 90%;
    max-width: 500px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    animation: mechaSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: 10;
    max-height: 90vh;
    overflow-y: auto;
}

.mecha-tracking-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    background: none;
    border: none;
    color: #999;
    padding: 4px 8px;
    transition: color 0.2s;
    z-index: 2;
}

.mecha-tracking-modal-close:hover {
    color: #333;
}

/* Header */
.mecha-tracking-header {
    text-align: center;
    margin-bottom: 24px;
}

.mecha-tracking-icon {
    margin-bottom: 12px;
}

.mecha-tracking-title {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 700;
    color: #333;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
}

.mecha-tracking-subtitle {
    margin: 0;
    font-size: 14px;
    color: #666;
}

/* Tabs */
.mecha-tracking-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    background: #f5f5f5;
    border-radius: 8px;
    padding: 4px;
}

.mecha-tracking-tab {
    flex: 1;
    padding: 10px 16px;
    border: none;
    background: transparent;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #666;
    cursor: pointer;
    transition: all 0.2s;
    font-family: 'Montserrat', sans-serif;
}

.mecha-tracking-tab:hover {
    color: #333;
}

.mecha-tracking-tab.active {
    background: #fff;
    color: #6017b1;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Form */
.mecha-tracking-form {
    margin-bottom: 16px;
}

.mecha-tracking-input-group {
    margin-bottom: 16px;
}

.mecha-tracking-input-group label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    margin-bottom: 6px;
}

.mecha-tracking-input-group input {
    width: 100%;
    padding: 14px 16px;
    border: 2px solid #e5e5e5;
    border-radius: 8px;
    font-size: 16px;
    transition: border-color 0.2s, box-shadow 0.2s;
    box-sizing: border-box;
}

.mecha-tracking-input-group input:focus {
    outline: none;
    border-color: #6017b1;
    box-shadow: 0 0 0 3px rgba(96, 23, 177, 0.1);
}

.mecha-tracking-input-group input::placeholder {
    color: #999;
}

.mecha-tracking-hint {
    display: block;
    font-size: 12px;
    color: #888;
    margin-top: 6px;
}

/* Submit Button */
.mecha-tracking-submit {
    width: 100%;
    padding: 14px 24px;
    background: #6017b1;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-family: 'Montserrat', sans-serif;
}

.mecha-tracking-submit:hover {
    background: #4a1190;
}

.mecha-tracking-submit:active {
    transform: scale(0.98);
}

.mecha-tracking-submit:disabled {
    background: #ccc;
    cursor: not-allowed;
}

.mecha-btn-loader svg {
    animation: mechaSpinLoader 1s linear infinite;
}

@keyframes mechaSpinLoader {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* Results */
.mecha-tracking-results {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #e5e5e5;
}

.mecha-tracking-status-card {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
}

.mecha-tracking-status-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.mecha-tracking-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 700;
}

.mecha-tracking-status-badge.estado-entregado,
.mecha-tracking-status-badge.estado-retirado {
    background: #d4edda;
    color: #155724;
}

.mecha-tracking-status-badge.estado-en-transito,
.mecha-tracking-status-badge.estado-recepcionado {
    background: #cce5ff;
    color: #004085;
}

.mecha-tracking-status-badge.estado-en-reparto {
    background: #fff3cd;
    color: #856404;
}

.mecha-tracking-status-badge.estado-disponible-retiro {
    background: #d1ecf1;
    color: #0c5460;
}

.mecha-tracking-status-badge.estado-default {
    background: #e2e3e5;
    color: #383d41;
}

.mecha-tracking-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.mecha-tracking-info-item {
    font-size: 13px;
}

.mecha-tracking-info-item .label {
    color: #888;
    display: block;
    margin-bottom: 2px;
}

.mecha-tracking-info-item .value {
    color: #333;
    font-weight: 600;
}

/* Timeline de eventos */
.mecha-tracking-timeline {
    margin-top: 20px;
}

.mecha-tracking-timeline-title {
    font-size: 15px;
    font-weight: 700;
    color: #333;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.mecha-tracking-event {
    display: flex;
    gap: 12px;
    padding-bottom: 16px;
    position: relative;
}

.mecha-tracking-event:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 20px;
    bottom: 0;
    width: 2px;
    background: #e5e5e5;
}

.mecha-tracking-event-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #e5e5e5;
    flex-shrink: 0;
    margin-top: 2px;
}

.mecha-tracking-event:first-child .mecha-tracking-event-dot {
    background: #6017b1;
}

.mecha-tracking-event-content {
    flex: 1;
}

.mecha-tracking-event-desc {
    font-size: 14px;
    color: #333;
    margin: 0 0 4px 0;
    font-weight: 500;
}

.mecha-tracking-event-meta {
    font-size: 12px;
    color: #888;
    display: flex;
    gap: 12px;
}

/* Error */
.mecha-tracking-error {
    text-align: center;
    padding: 24px;
    margin-top: 16px;
}

.mecha-tracking-error-icon {
    margin-bottom: 12px;
}

.mecha-tracking-error-message {
    color: #e74c3c;
    font-size: 14px;
    margin: 0;
}

/* Help */
.mecha-tracking-help {
    text-align: center;
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

.mecha-tracking-help p {
    margin: 0;
    font-size: 13px;
    color: #888;
}

.mecha-tracking-help a {
    color: #6017b1;
    font-weight: 600;
    text-decoration: none;
}

.mecha-tracking-help a:hover {
    text-decoration: underline;
}

/* Courier badge */
.mecha-tracking-courier {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: #f0f0f0;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    color: #555;
}

.mecha-tracking-courier.bluexpress {
    background: #e8f4fc;
    color: #0066b3;
}

.mecha-tracking-courier.chilexpress {
    background: #fff0e6;
    color: #e65c00;
}

/* Responsive */
@media (max-width: 640px) {
    .mecha-tracking-modal-content {
        padding: 24px 16px;
        width: 95%;
        max-height: 95vh;
        border-radius: 16px 16px 0 0;
        position: fixed;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        animation: mechaSlideUpMobile 0.3s ease-out;
    }

    @keyframes mechaSlideUpMobile {
        from {
            transform: translateX(-50%) translateY(100%);
        }

        to {
            transform: translateX(-50%) translateY(0);
        }
    }

    .mecha-tracking-title {
        font-size: 18px;
    }

    .mecha-tracking-info-grid {
        grid-template-columns: 1fr;
    }

    .mecha-tracking-tabs {
        flex-direction: column;
    }

    .mecha-tracking-tab {
        padding: 12px;
    }
}

/* =========================================
   HERO BANNER ALINEACIÓN ESTÁTICA (CROP)
   ========================================= */

/* 1. Contenedor Maestro: Oculta lo que sobra */
.mecha-hero-full-width {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    overflow: hidden;
    /* ¡Importante! Corta los bordes */
    background-color: #f7f7f7;
    z-index: 1;
}

/* 2. Wrapper de la imagen para asegurar centrado */
.mecha-picture-wrapper {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}

/* 3. La Imagen: Comportamiento 'No-Shrink' */
.mecha-responsive-img {
    display: block;
    height: 100% !important;
    /* Fija la altura a 586px */
    width: auto !important;
    /* El ancho se calcula solo según la altura */
    max-width: none !important;
    /* Permite que la imagen sea más ancha que la pantalla */
    min-width: 100vw;
    /* Asegura que nunca quede espacio blanco */

    /* Centrado absoluto perfecto */
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);

    /* Calidad de renderizado */
    object-fit: cover;
}

/* 4. Contenedor de Hotspots (Contenido) */
.mecha-overlay-content {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 100%;
    z-index: 10;
    /* Esto alinea tus hotspots con las cards de abajo */
    margin: 0 auto;
}

/* 5. Ajustes para el Slider interno de Flatsome */
/* Mantiene funcionalidad del slider pero hace transparente el fondo */
.mecha-hero-full-width .ux-slider,
.mecha-hero-full-width .slider-wrapper {
    height: 100% !important;
}

.mecha-hero-full-width .ux-banner {
    height: 100% !important;
    background-color: transparent !important;
    /* Muestra nuestra imagen de fondo */
}

/* =========================================
   MECHA HERO SLIDER (UX BUILDER)
   ========================================= */

/* 1. Wrapper Principal */
.mecha-hero-wrapper {
    width: 100%;
    position: relative;
    overflow: hidden;
    background-color: #f0f0f0;
    z-index: 1;
}

/* Forzar altura en editor y frontend */
.mecha-hero-wrapper .flickity-viewport,
.mecha-hero-wrapper .slider,
.mecha-hero-wrapper .slider>.flickity-viewport {
    height: 100% !important;
    min-height: 100% !important;
}

/* 2. Slide Individual */
.mecha-pro-slide {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

/* 3. Imagen de Fondo */
.mecha-slide-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

/* Placeholder para cuando no hay imagen (Solo visible en editor/cuando falta img) */
.mecha-slide-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #e0e0e0;
    color: #888;
    border: 2px dashed #ccc;
}

.mecha-slide-placeholder .dashicons {
    font-size: 40px;
    width: 40px;
    height: 40px;
    margin-bottom: 10px;
}

/* Imagen Real con Crop Mode */
/* BASE: Para pantallas >= 1601px (img_max) - Cover para llenar contenedor */
.mecha-crop-image {
    display: block;
    height: 100% !important;
    width: auto !important;
    min-width: 100%;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    object-fit: cover;
}

/* En pantallas MUY grandes (>1900px), congelar la imagen al tamaño máximo nativo */
@media (min-width: 1901px) {
    .mecha-crop-image {
        width: 2048px !important;
        max-width: none !important;
        height: auto !important;
        left: 50%;
        transform: translateX(-50%);
        top: 0;
        object-fit: cover;
    }
}

/* PANTALLAS <= 1600px: img_min se muestra COMPLETA, sin zoom, sin corte lateral */
/* La imagen escala al 100% del ancho del viewport, la altura se ajusta proporcionalmente */
@media (max-width: 1600px) {
    .mecha-slide-bg {
        overflow: hidden;
    }

    .mecha-crop-image {
        width: 100% !important;
        height: auto !important;
        min-width: unset !important;
        max-width: 100% !important;
        position: relative !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        object-fit: contain !important;
        display: block !important;
    }
}

/* 4. Contenido (Hotspots) */
.mecha-slide-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    pointer-events: none;
}

.mecha-slide-content-inner {
    width: 100%;
    height: 100%;
    margin: 0 auto;
    position: relative;
}

/* Permitir clicks en el contenido */
.mecha-slide-content-inner>* {
    pointer-events: auto;
}

/* 5. FIX VISUALIZACIÓN UX BUILDER */
/* Hace visible el contenedor interno en el editor */
body.ux-builder-active .mecha-slide-content-inner {
    border: 1px dashed rgba(96, 23, 177, 0.3);
    /* Borde guía */
    min-height: 50px;
}

/* Ajustes de Navegación */
.mecha-hero-wrapper .flickity-page-dots {
    bottom: 15px;
    z-index: 20;
}

.mecha-hero-wrapper .flickity-prev-next-button {
    z-index: 20;
    opacity: 0;
    transition: opacity 0.3s;
}

.mecha-hero-wrapper:hover .flickity-prev-next-button {
    opacity: 1;
}

/* =========================================
   MECHA HERO SLIDER (UX BUILDER UPDATED)
   ========================================= */

/* 1. Wrapper Principal */
.mecha-hero-wrapper {
    width: 100%;
    position: relative;
    overflow: hidden;
    background-color: #f0f0f0;
    z-index: 1;
}

/* Forzar altura en editor y frontend */
.mecha-hero-wrapper .flickity-viewport,
.mecha-hero-wrapper .slider,
.mecha-hero-wrapper .slider>.flickity-viewport {
    height: 100% !important;
    min-height: 100% !important;
}

/* 2. Slide Individual - Asegurar que no colapse */
.mecha-pro-slide {
    width: 100%;
    height: 100% !important;
    /* Importante para que herede del padre */
    min-height: 100%;
    position: relative;
    overflow: hidden;
}

/* 3. Imagen de Fondo */
.mecha-slide-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

/* EDITOR SPECIFIC: Asegurar visibilidad */
body.ux-builder-active .mecha-slide-bg {
    z-index: 1;
    /* Elevar un poco en editor */
}

body.ux-builder-active .mecha-hero-wrapper {
    min-height: 200px;
    /* Evitar que el slider colapse a 0 si flickity falla */
}

/* Placeholder */
.mecha-slide-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #e0e0e0;
    color: #888;
    border: 2px dashed #ccc;
    position: absolute;
    /* Asegurar que llene el padre */
    top: 0;
    left: 0;
}

.mecha-slide-placeholder .dashicons {
    font-size: 40px;
    width: 40px;
    height: 40px;
    margin-bottom: 10px;
}

/* Imagen Real con Crop Mode */
.mecha-crop-image {
    display: block;
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 100%;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    object-fit: cover;
}

/* 4. Contenido (Hotspots) */
.mecha-slide-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    pointer-events: none;
}

.mecha-slide-content-inner {
    width: 100%;
    height: 100%;
    margin: 0 auto;
    position: relative;
    pointer-events: none;
    /* Dejar pasar clicks al fondo en general */
}

/* Content direct children pointer events */
.mecha-slide-content-inner>* {
    pointer-events: auto;
}

/* 5. FIX VISUALIZACIÓN UX BUILDER */
body.ux-builder-active .mecha-slide-content-inner {
    border: 1px dashed rgba(96, 23, 177, 0.3);
    min-height: 50px;
    position: relative;
    z-index: 20;
    /* Encima de la imagen */
}

/* Ajustes de Navegación */
.mecha-hero-wrapper .flickity-page-dots {
    bottom: 25px;
    z-index: 20;
}

.mecha-hero-wrapper .flickity-prev-next-button {
    z-index: 20;
    opacity: 0;
    transition: opacity 0.3s;
}

.mecha-hero-wrapper:hover .flickity-prev-next-button {
    opacity: 1;
}

/* =========================================
   MECHA HERO SLIDER (EMERGENCY FIX)
   ========================================= */

/* 1. Wrapper Principal */
.mecha-hero-wrapper {
    width: 100%;
    position: relative;
    overflow: hidden;
    background-color: #f0f0f0;
    z-index: 1;
}

/* Forzar altura en editor y frontend */
.mecha-hero-wrapper .flickity-viewport,
.mecha-hero-wrapper .slider,
.mecha-hero-wrapper .slider>.flickity-viewport {
    height: 100% !important;
    min-height: 100% !important;
}

/* 2. Slide Individual */
.mecha-pro-slide {
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}

/* 3. Imagen de Fondo - Frontend (Absolute Crop) */
.mecha-slide-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.mecha-crop-image {
    display: block;
    height: 100% !important;
    width: auto !important;
    max-width: none !important;
    min-width: 100%;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    object-fit: cover;
}

/* 4. Contenido (Hotspots) */
.mecha-slide-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    pointer-events: none;
}

.mecha-slide-content-inner {
    width: 100%;
    height: 100%;
    margin: 0 auto;
    position: relative;
    pointer-events: none;
}

.mecha-slide-content-inner>* {
    pointer-events: auto;
}

/* 5. FIX VISUALIZACIÓN UX BUILDER (EL "SEGURO") 
   Esto fuerza a que las imagenes fluyan normal en el editor para evitar colapso */
body.ux-builder-active .mecha-hero-wrapper {
    height: auto !important;
    min-height: 300px !important;
    background: #eee;
}

body.ux-builder-active .mecha-pro-slide {
    height: auto !important;
    min-height: 300px !important;
    position: relative !important;
    display: block !important;
    border: 1px dotted #ccc;
}

body.ux-builder-active .mecha-slide-bg {
    position: relative !important;
    /* Reset absolute */
    top: auto;
    left: auto;
    width: 100% !important;
    height: auto !important;
    min-height: 200px;
    z-index: 1;
}

body.ux-builder-active .mecha-crop-image {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* Placeholder también visible */
body.ux-builder-active .mecha-slide-placeholder {
    position: relative !important;
    height: 200px !important;
}

/* Ajustes de Navegación */
.mecha-hero-wrapper .flickity-page-dots {
    bottom: 25px;
    z-index: 20;
}

.mecha-hero-wrapper .flickity-prev-next-button {
    z-index: 20;
}

/* Ajuste Mecha Cards: 100px más arriba en laptops (<1600px) */
@media (max-width: 1600px) and (min-width: 769px) {
    .cards-overlay-container {
        margin-top: -300px !important;
    }
}

/* MECHA HERO SLIDER: FADE EFFECT */
.mecha-hero-wrapper .flickity-slider {
    transform: none !important;
}

.mecha-hero-wrapper .mecha-pro-slide {
    left: 0 !important;
    opacity: 0;
    transition: opacity 1.2s ease-in-out;
    z-index: 1;
}

.mecha-hero-wrapper .mecha-pro-slide.is-selected {
    opacity: 1;
    z-index: 2;
}

/* =========================================
   UX BUILDER VISUAL HELPERS (EDITOR ONLY)
   ========================================= */

/* Indicadores para visibilidad condicional */
body.ux-builder-active .hide-on-min {
    outline: 2px dashed #0073aa;
    /* Azul */
    position: relative;
}

body.ux-builder-active .hide-on-min::before {
    content: 'SOLO MAX (>1600px)';
    position: absolute;
    top: 0;
    right: 0;
    transform: translateY(-100%);
    background: #0073aa;
    color: white;
    font-size: 10px;
    font-weight: bold;
    padding: 2px 6px;
    z-index: 999;
    pointer-events: none;
    white-space: nowrap;
}

body.ux-builder-active .hide-on-max {
    outline: 2px dashed #d63638;
    /* Rojo */
    position: relative;
}

body.ux-builder-active .hide-on-max::before {
    content: 'SOLO NORMAL (≤1600px)';
    position: absolute;
    top: 0;
    left: 0;
    transform: translateY(-100%);
    background: #d63638;
    color: white;
    font-size: 10px;
    font-weight: bold;
    padding: 2px 6px;
    z-index: 999;
    pointer-events: none;
    white-space: nowrap;
}

/* Asegurar que las etiquetas se vean */
body.ux-builder-active .hide-on-min,
body.ux-builder-active .hide-on-max {
    overflow: visible !important;
}

/* FIX EDITOR VISIBILITY: Override Fade Effect hiding everything */
body.ux-builder-active .mecha-hero-wrapper .mecha-pro-slide {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

/* Ensure selected slide in editor (nested) is shown */
body.ux-builder-active .mecha-hero-wrapper .is-selected .mecha-pro-slide {
    opacity: 1 !important;
}

/* OCULTAR HERO SLIDER EN MOVILES (Solo visible en Tablet+ >=768px) */
@media (max-width: 767px) {
    .mecha-hero-wrapper {
        display: none !important;
    }
}

/* FIX EDITOR: Permitir agregar Hotspots y elementos al slide */
body.ux-builder-active .mecha-slide-content {
    z-index: 999 !important;
    pointer-events: auto !important;
    min-height: 300px;
}

body.ux-builder-active .mecha-slide-content-inner {
    min-height: 200px;
    position: relative;
    z-index: 1000;
}

/* HOTSPOT FIX EDITOR */
.mecha-pro-slide {
    position: relative !important;
}

.ux-hotspot {
    position: absolute;
    z-index: 99;
}

/* VISIBILIDAD SALVAVIDAS */
.mecha-hide-on-min,
.mecha-hide-on-max {
    transition: opacity 0.2s ease;
}

/* =========================
   MECHA SLIDE STRUCTURE (FRONTEND FIX)
   ========================= */
.mecha-pro-slide {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.mecha-slide-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.mecha-slide-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.mecha-slide-content {
    position: relative;
    z-index: 5;
    width: 100%;
    height: 100%;
    pointer-events: none;
    /* Permitir clicks en hotspots hijos pero pasar clicks vacíos */
}

.mecha-slide-content-inner {
    pointer-events: auto;
    height: 100%;
    width: 100%;
}

/* FIX SUPREMO EDITOR: Visibilidad basada en clase del body */
body.ux-builder-active .mecha-pro-slide,
body.ux-builder-active .mecha-pro-slide img {
    opacity: 1 !important;
    visibility: visible !important;
}


/* FIX FRONTEND: Solo el slide activo debe tener opacity forzada */
.mecha-hero-wrapper .is-selected .mecha-pro-slide {
    opacity: 1 !important;
    visibility: visible !important;
}

/* MECHA SLIDER PROPIO (evita conflicto con Flatsome .slider) */
.mecha-slider {
    width: 100%;
    height: 100%;
}

.mecha-slider .mecha-pro-slide {
    width: 100%;
    height: 100%;
}

/* Dots y arrows para nuestro slider */
.mecha-hero-wrapper .flickity-prev-next-button {
    background: rgba(0, 0, 0, 0.3);
}

.mecha-hero-wrapper .flickity-page-dots {
    bottom: 15px;
}

.mecha-hero-wrapper .flickity-page-dots .dot {
    background: white;
    opacity: 0.5;
}

.mecha-hero-wrapper .flickity-page-dots .dot.is-selected {
    opacity: 1;
}

/* FIX DEFINITIVO: Evitar cuadros grises antes de inicializar */
.mecha-hero-wrapper {
    overflow: hidden;
    width: 100%;
}

.mecha-slider:not(.flickity-enabled) {
    display: flex;
    overflow: hidden;
}

.mecha-slider:not(.flickity-enabled) .mecha-pro-slide {
    min-width: 100%;
    height: 100%;
}

.mecha-slider .flickity-viewport {
    height: 100% !important;
    width: 100%;
}

/* ========================
   CSS MAESTRO - FIX DEFINITIVO
   ======================== */

/* 1. ESTRUCTURA CRÍTICA: Forzar visibilidad */
.mecha-hero-wrapper {
    position: relative;
    display: block !important;
    width: 100% !important;
    overflow: hidden;
    background-color: #f0f0f0;
}

.mecha-slider {
    width: 100%;
    height: 100%;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
}

/* 2. PREVENIR COLAPSO: Altura de los slides */
.mecha-pro-slide {
    width: 100%;
    height: 100% !important;
    min-height: 100% !important;
    position: relative !important;
    flex-shrink: 0;
}

/* 3. FLICKITY FIX: Asegurar que el área de dibujo exista */
.mecha-slider .flickity-viewport {
    height: 100% !important;
    min-height: 100% !important;
    cursor: grab;
}

/* 4. VISIBILIDAD CONDICIONAL (Especifidad Triple) */
@media (min-width: 1601px) {
    body .mecha-pro-slide .mecha-hide-on-min {
        display: none !important;
    }
}

@media (max-width: 1600px) {
    body .mecha-pro-slide .mecha-hide-on-max {
        display: none !important;
    }
}

/* =========================
   FLATSOME OVERRIDE - PREVENIR CONFLICTO CON .slider
   ========================= */

/* Prevenir que Flatsome interfiera con nuestro slider */
.mecha-hero-wrapper .mecha-slider {
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    overflow: visible !important;
}

/* Prevenir clonación de Flatsome - slides deben estar absolutamente posicionados */
.mecha-hero-wrapper .mecha-slider>* {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

/* Solo el slide activo debe ser visible ANTES de que Flickity se active */
.mecha-hero-wrapper .mecha-slider:not(.flickity-enabled)>*:not(:first-child) {
    opacity: 0;
    visibility: hidden;
}

/* Primer slide visible mientras carga */
.mecha-hero-wrapper .mecha-slider:not(.flickity-enabled)>*:first-child {
    opacity: 1;
    visibility: visible;
}

/* Cuando Flickity se activa, deja que maneje todo */
.mecha-hero-wrapper .mecha-slider.flickity-enabled {
    position: relative;
    overflow: visible;
}

/* Asegurar que Flickity viewport tenga altura completa */
.mecha-hero-wrapper .mecha-slider.flickity-enabled .flickity-viewport {
    height: 100% !important;
    overflow: hidden;
}

/* Resetear opacidad de todos los slides cuando Flickity está activo */
.mecha-hero-wrapper .mecha-slider.flickity-enabled .mecha-pro-slide {
    opacity: 0;
    transition: opacity 0.8s ease-in-out;
}

/* Solo el slide seleccionado debe ser visible */
.mecha-hero-wrapper .mecha-slider.flickity-enabled .mecha-pro-slide.is-selected {
    opacity: 1;
    z-index: 2;
}

/* Prevenir que se vean slides duplicados durante la transición */
.mecha-hero-wrapper .flickity-slider {
    transform: none !important;
}

.mecha-hero-wrapper .mecha-slider.flickity-enabled .mecha-pro-slide {
    left: 0 !important;
}

/* =========================
   FIX ESPECÍFICO PARA PREVENIR 4 BANNERS
   ========================= */

/* Asegurar que no haya clones ocultos de Flickity visibles */
.mecha-hero-wrapper .flickity-slider>.mecha-pro-slide:not(.is-selected) {
    opacity: 0 !important;
    pointer-events: none;
}

/* Forzar visibilidad solo del slide activo */
.mecha-hero-wrapper .flickity-slider>.mecha-pro-slide.is-selected {
    opacity: 1 !important;
    pointer-events: auto;
    z-index: 10;
}

/* =========================
   MECHA CUSTOM SLIDER (INDEPENDIENTE)
   ========================= */
.mecha-custom-slider {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.mecha-custom-slider .mecha-pro-slide {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.8s ease-in-out, visibility 0.8s !important;
    z-index: 1 !important;
}

/* Primer slide visible por defecto (antes de que JS cargue) */
.mecha-custom-slider:not(.mecha-slider-ready) .mecha-pro-slide:first-child {
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 2 !important;
}

.mecha-custom-slider .mecha-pro-slide.mecha-active {
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 2 !important;
}

/* Contenedor de imagen del slide */
.mecha-custom-slider .mecha-slide-bg {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 0 !important;
}

/* Picture element */
.mecha-custom-slider .mecha-slide-bg picture {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

/* Imagen dentro del slide */
.mecha-custom-slider .mecha-slide-bg img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Contenedor de contenido (hotspots, etc) */
.mecha-custom-slider .mecha-slide-content {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

.mecha-custom-slider .mecha-slide-content-inner {
    width: 100% !important;
    height: 100% !important;
    position: relative !important;
    pointer-events: none !important;
}

.mecha-custom-slider .mecha-slide-content-inner>* {
    pointer-events: auto !important;
}

/* Navegación - Botones Sutiles */
.mecha-slider-nav {
    position: absolute;
    top: calc(50% - 80px);
    transform: translateY(-50%);
    background: none;
    border: none;
    width: 40px;
    height: 40px;
    font-size: 40px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.7);
    cursor: pointer;
    z-index: 100;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    padding: 0;
}

.mecha-slider-nav:hover {
    color: rgba(255, 255, 255, 1);
    transform: translateY(-50%) scale(1.2);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.mecha-slider-prev {
    left: 20px;
}

.mecha-slider-next {
    right: 20px;
}

/* Dots - Más Sutiles */
.mecha-slider-dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 100;
}

.mecha-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}

.mecha-dot.mecha-active {
    background: rgba(255, 255, 255, 0.9);
    transform: scale(1.2);
}

.mecha-dot:hover {
    background: rgba(255, 255, 255, 0.7);
}

/* Nav Styles - Ajustados para botones sin fondo */
.slider-nav-simple .mecha-slider-nav {
    color: rgba(255, 255, 255, 0.8);
}

.slider-nav-reveal .mecha-slider-nav {
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.slider-nav-reveal:hover .mecha-slider-nav {
    opacity: 1;
}

/* Responsive */
@media (max-width: 768px) {
    .mecha-slider-nav {
        width: 30px;
        height: 30px;
        font-size: 32px;
    }

    .mecha-slider-prev {
        left: 10px;
    }

    .mecha-slider-next {
        right: 10px;
    }

    .mecha-dot {
        width: 8px;
        height: 8px;
    }
}

/* =========================
   CLASES DE VISIBILIDAD CONDICIONAL (GLOBAL FALLBACK)
   ========================= */
/* Para elementos con mecha-hide-on-min: se ocultan en pantallas GRANDES */
@media (min-width: 1601px) {
    .mecha-hide-on-min {
        display: none !important;
    }
}

/* Para elementos con mecha-hide-on-max: se ocultan en pantallas NORMALES */
@media (max-width: 1600px) {
    .mecha-hide-on-max {
        display: none !important;
    }
}

/* Editor UX Builder: SIEMPRE mostrar elementos condicionales */
/* Usando selector más específico para anular media queries */
body.ux-builder-active .mecha-hide-on-min,
body.ux-builder-active .mecha-hide-on-max,
.ux-builder-active .mecha-hide-on-min,
.ux-builder-active .mecha-hide-on-max {
    display: block !important;
    visibility: visible !important;
    opacity: 0.7 !important;
    position: relative;
    outline: 2px dashed rgba(0, 115, 170, 0.5) !important;
}

/* Anular específicamente los media queries en el editor */
@media (min-width: 1601px) {

    body.ux-builder-active .mecha-hide-on-min,
    .ux-builder-active .mecha-hide-on-min {
        display: block !important;
        visibility: visible !important;
    }
}

@media (max-width: 1600px) {

    body.ux-builder-active .mecha-hide-on-max,
    .ux-builder-active .mecha-hide-on-max {
        display: block !important;
        visibility: visible !important;
    }
}

body.ux-builder-active .mecha-hide-on-min::after {
    content: 'Solo GRANDE >1600px';
    position: absolute;
    top: 0;
    right: 0;
    background: #0073aa;
    color: white;
    font-size: 10px;
    padding: 2px 6px;
    pointer-events: none;
    z-index: 9999;
    opacity: 1 !important;
}

body.ux-builder-active .mecha-hide-on-max::after {
    content: 'Solo NORMAL ≤1600px';
    position: absolute;
    top: 0;
    left: 0;
    background: #d63638;
    color: white;
    font-size: 10px;
    padding: 2px 6px;
    pointer-events: none;
    z-index: 9999;
    opacity: 1 !important;
}

/* Banner Link */
.mecha-banner-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
    color: inherit !important;
}

.mecha-banner-link:hover {
    text-decoration: none !important;
}

/* SVG Icon Size Control */
.mecha-card-icon img,
.mecha-card-icon svg {
    width: 100% !important;
    height: auto !important;
    max-width: 100px !important;
    display: block !important;
    margin: 0 auto !important;
}

/* Mecha Card Icon - Preservar colores y controlar tamaño */
.mecha-card-icon {
    margin: 20px auto;
}

.mecha-card-icon svg {
    width: 100% !important;
    height: 100% !important;
    display: block;
}

/* Preservar colores originales del SVG */
.mecha-card-icon svg * {
    fill: inherit;
}

/* Si el SVG no tiene colores, usar color del tema */
.mecha-card-icon svg[fill='none'] *,
.mecha-card-icon svg:not([fill]) * {
    fill: currentColor;
}

/* ================================================
   MECHA CARD - ESTILOS MEJORADOS PARA SVG ICON
   ================================================ */

/* Contenedor del icono - Tamaño fijo */
.mecha-card-icon {
    width: 120px !important;
    height: 120px !important;
    min-width: 120px !important;
    min-height: 120px !important;
    max-width: 120px !important;
    max-height: 120px !important;
    margin: 15px auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

/* SVG e imagenes dentro del icono */
.mecha-card-icon img,
.mecha-card-icon svg {
    width: 100% !important;
    height: 100% !important;
    max-width: 120px !important;
    max-height: 120px !important;
    object-fit: contain !important;
    display: block !important;
}

/* Mecha Card Layout - Evitar que icono afecte tamaño */
.mecha-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 280px !important;
}

.mecha-card-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}

/* PROTEGER COLORES SVG EN MECHA CARDS */
.mecha-card-icon svg,
.mecha-card-icon svg * {
    filter: none !important;
    opacity: 1 !important;
}

.mecha-card-icon svg circle,
.mecha-card-icon svg path,
.mecha-card-icon svg g {
    fill-opacity: 1 !important;
}

/* Limpieza de elementos parásitos en Hero Slider */
.mecha-custom-slider>br,
.mecha-custom-slider>p:empty {
    display: none !important;
}

/* Prevención de colapso del Hero Slider */
.mecha-hero-wrapper {
    min-height: 480px;
    /* Altura mínima razonable para móvil/desktop */
    background-color: #f5f5f5;
    /* Color de fondo por si la imagen tarda */
    display: block;
    width: 100%;
}

/* =========================================
   OPTIMIZACIÓN MÓVIL (COMPACTO)
   ========================================= */
@media (max-width: 768px) {
    .mecha-cards-slider {
        max-width: 100% !important;
        padding: 10px 0px 25px 5px;
        gap: 10px;
        scroll-padding-left: 5px;
        width: 100% !important;
    }

    .mecha-card {
        /* 2 completas + media visible: (100vw - padL(5px) - 2gaps(20px)) / 2.5 */
        flex: 0 0 calc((100vw - 25px) / 2.5) !important;
        width: calc((100vw - 25px) / 2.5) !important;
        height: auto !important;
        min-height: 200px !important;
    }

    .mecha-card-icon {
        width: 100% !important;
        /* Ocupar ancho disponible */
        height: 110px !important;
        /* Altura generosa */
        min-width: unset !important;
        min-height: unset !important;
        margin: 5px auto 5px auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    /* SVG interior ajustado para llenar realmente */
    .mecha-card-icon svg,
    .mecha-card-icon img {
        max-width: none !important;
        /* Permitir extenderse */
        max-height: none !important;
        width: 100% !important;
        /* Llenar ancho */
        height: 100% !important;
        /* Llenar alto */
        object-fit: contain !important;
        /* Mantener aspecto sin recortar */
        display: block !important;
    }

    .mecha-card-body {
        padding: 5px 6px 10px 6px !important;
        justify-content: flex-start;
    }

    .mecha-card-body h3 {
        font-size: 14px;
        margin-bottom: 5px;
        /* Reducir margen inferior */
    }

    /* OCULTAR DESCRIPCIÓN EN MÓVIL (para dar espacio al icono) */
    .mecha-card-description {
        display: none !important;
    }

    .mecha-card-icon {
        height: 100px;
        /* Aumentado de 85px a 100px */
        width: 100px;
        margin-bottom: 5px;
    }

    .mecha-card-svg-icon {
        height: 100px !important;
        /* Aumentado de 85px a 100px */
        width: 100px !important;
    }

    .mecha-card-button {
        padding: 6px 15px;
        font-size: 12px;
    }

    .mecha-card-title {
        font-size: 13px !important;
        line-height: 1.2;
    }
}

/* =========================================
   SUPER OPTIMIZACIÓN MÓVIL (ESCALADO FLUIDO < 470px)
   ========================================= */
@media (max-width: 470px) {
    .mecha-card {
        /* Mantener 2.5 cards visibles también en pantallas pequeñas */
        flex: 0 0 calc((100vw - 25px) / 2.5) !important;
        width: calc((100vw - 25px) / 2.5) !important;
        min-height: auto !important;
    }

    .mecha-card-icon {
        height: 80px !important;
        margin-bottom: 2px !important;
    }

    .mecha-card-svg-icon {
        height: 80px !important;
        width: 80px !important;
    }

    .mecha-card-title {
        font-size: 12px !important;
    }

    .mecha-card-button {
        padding: 5px 10px !important;
        font-size: 11px !important;
    }
}



/* =========================
   MECHA MOBILE GRID SLIDER (2x2 Paginado)
   ========================= */
.mecha-mobile-grid-slider {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 15px;
    padding: 0 10px 15px 10px;
    width: 100%;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.mecha-mobile-grid-slider::-webkit-scrollbar {
    display: none;
}

/* CHUNK: Bloque de 4 tarjetas (2x2) */
.mecha-mobile-grid-chunk {
    flex: 0 0 100%;
    /* Ocupa todo el ancho visible */
    width: 100%;
    scroll-snap-align: start;
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* 2 columnas */
    grid-template-rows: auto auto;
    /* 2 filas */
    gap: 10px;
    /* Espacio entre tarjetas */
}

/* TARJETA COMPACTA MÓVIL (HORIZONTAL) */
.mecha-card-mobile-compact {
    background: #fff;
    border-radius: 12px;
    padding: 10px;
    display: flex;
    flex-direction: row;
    /* Horizontal: Icono | Texto */
    align-items: center;
    gap: 10px;
    border: 1px solid #ededed;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    height: 100%;
    /* Llenar celda del grid */
    min-height: 80px;
    /* Altura mínima razonable */
    text-decoration: none;
    transition: transform 0.2s;
}

.mecha-card-mobile-compact:active {
    transform: scale(0.98);
}

/* Icono en tarjeta móvil compacta */
.mecha-mobile-icon {
    flex-shrink: 0;
    width: 45px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mecha-mobile-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Contenido texto móvil */
.mecha-mobile-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.mecha-mobile-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #333;
    line-height: 1.2;
    margin: 0;
}

/* Link wrapper style reset */
a.mecha-card-mobile-link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
}

.mecha-card-mobile-link {
    height: 100%;
    width: 100%;
    display: block;
}

/* Responsive Hero Banner Images */
/* SOLUCIÓN DISTORSIÓN: Aplicar dimensiones base a todos los banners UX */
.ux-banner,
.ux-banner[data-bg] {
    position: relative;
    width: 100%;
    display: block;
}

/* Pantallas pequeñas y medianas (≤1600px) - Imagen chica */
@media (max-width: 1600px) {

    /* Ajuste de posición de botones slider en pantallas <1600px */
    .mecha-slider-nav {
        top: calc(50% - 120px) !important;
    }

    /* FIX DISTORSIÓN: Forzar dimensiones y proporciones desde el inicio del render */
    .ux-banner[data-bg="534"],
    .ux-banner[data-bg="534"] .ux-banner-bg,
    .mecha-pro-slide[data-id="534"],
    .mecha-pro-slide[data-id="534"] .ux-banner {
        background-image: url('http://localhost:10005/wp-content/uploads/2026/01/Banner-min.png') !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        /* Mantener dimensiones estables desde el primer render */
        min-height: 586px !important;
        height: 586px !important;
        width: 100% !important;
        display: block !important;
    }

    /* Asegurar que el contenedor padre también mantenga altura */
    .mecha-pro-slide[data-id="534"] {
        min-height: 586px !important;
        height: 586px !important;
    }
}

/* Pantallas grandes (>1600px) - Imagen grande */
@media (min-width: 1601px) {
    .ux-banner[data-bg="533"] {
        background-image: url('http://localhost:10005/wp-content/uploads/2026/01/Banner-Max.png') !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
    }
}