/**
 * Estilos personalizados para variaciones de WooCommerce
 * Plugin: PMN Core
 * Con !important para sobrescribir Elementor y otros temas
 */

/* ===========================================
   RESET Y CONTENEDOR GENERAL
   =========================================== */

/* Asegurar que el contenedor de variaciones tome el ancho completo */
.variations,
.variations .value,
table.variations td.value,
.variations_form table.variations td.value {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

/* ===========================================
   BOTONES DE CANTIDAD
   =========================================== */

/* Ocultar el select original de cantidad */
.pmn-quantity-select,
select.pmn-quantity-select {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    position: absolute !important;
    left: -9999px !important;
}

/* Contenedor de botones */
.pmn-quantity-buttons-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.75rem !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* Si solo hay un botón, que ocupe el 100% */
.pmn-quantity-buttons-wrapper .pmn-quantity-button:only-of-type {
    flex: 1 1 100% !important;
    width: 100% !important;
}

/* Cuando hay varios botones, distribuir el espacio equitativamente */
.pmn-quantity-buttons-wrapper .pmn-quantity-button:not(:only-of-type) {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

/* Botones de cantidad */
.pmn-quantity-button,
button.pmn-quantity-button {
    /* Tipografía según especificaciones */
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    line-height: 1.15rem !important;
    color: #003942 !important;
    font-family: inherit !important;
    text-align: center !important;
    text-decoration: none !important;

    /* Diseño del botón - FONDO BLANCO */
    background-color: #ffffff !important;
    background-image: none !important;
    background: #ffffff !important;

    /* Bordes según especificaciones exactas */
    border-style: solid !important;
    border-color: #e5e7eb !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    border-radius: 8px !important;

    /* Espaciado interno - 0.6rem arriba/abajo, 8px izquierda/derecha */
    padding: 0.6rem 8px !important;
    padding-top: 0.6rem !important;
    padding-bottom: 0.6rem !important;
    padding-left: 8px !important;
    padding-right: 8px !important;

    /* Comportamiento */
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;

    /* Evitar selección de texto */
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;

    /* Display */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    /* Resetear otros estilos que puedan interferir */
    box-shadow: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    min-height: auto !important;
    height: auto !important;
    vertical-align: middle !important;
    outline: none !important;
}

/* Estado hover (cuando pasas el mouse) */
.pmn-quantity-button:hover,
button.pmn-quantity-button:hover {
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    background-color: #ffffff !important;
    background: #ffffff !important;
    color: #003942 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 4px rgba(0, 120, 49, 0.1) !important;
}

/* Estado activo/seleccionado - IMPORTANTE: debe verse claramente */
.pmn-quantity-buttons-wrapper .pmn-quantity-button.selected,
.pmn-quantity-buttons-wrapper button.pmn-quantity-button.selected,
.pmn-quantity-button.selected,
button.pmn-quantity-button.selected,
.pmn-quantity-button.active,
button.pmn-quantity-button.active {
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    border-style: solid !important;
    background-color: #ffffff !important;
    background-image: none !important;
    background: #ffffff !important;
    color: #003942 !important;
    box-shadow: 0 0 0 1px #007831 !important;
}

/* Mantener el estilo verde incluso en hover cuando está seleccionado */
.pmn-quantity-button.selected:hover,
button.pmn-quantity-button.selected:hover {
    border-color: #007831 !important;
    box-shadow: 0 0 0 1px #007831, 0 2px 4px rgba(0, 120, 49, 0.2) !important;
}

/* Estado focus (accesibilidad) - SOLO si NO está seleccionado */
.pmn-quantity-button:focus:not(.selected),
button.pmn-quantity-button:focus:not(.selected) {
    outline: none !important;
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    background-color: #ffffff !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 2px rgba(0, 120, 49, 0.2) !important;
}

/* Estado focus cuando ESTÁ seleccionado - mantener bordes verdes */
.pmn-quantity-button.selected:focus,
button.pmn-quantity-button.selected:focus {
    outline: none !important;
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    background-color: #ffffff !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 1px #007831 !important;
}

/* Estado disabled */
.pmn-quantity-button:disabled,
button.pmn-quantity-button:disabled,
.pmn-quantity-button[disabled],
button.pmn-quantity-button[disabled] {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    background-color: #ffffff !important;
    background: #ffffff !important;
}

.pmn-quantity-button:disabled:hover,
button.pmn-quantity-button:disabled:hover {
    transform: none !important;
    box-shadow: none !important;
    border-color: #e5e7eb !important;
}

/* ===========================================
   SELECT DE SABOR
   =========================================== */

/* Contenedor del select de sabor */
.variations td.value select.pmn-flavor-select,
select.pmn-flavor-select,
.pmn-flavor-select {
    /* Tipografía según especificaciones */
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    line-height: 1.15rem !important;
    color: #003942 !important;
    font-family: inherit !important;

    /* Diseño del select - FONDO BLANCO */
    background-color: #ffffff !important;
    background: #ffffff !important;

    /* Bordes según especificaciones exactas */
    border-style: solid !important;
    border-color: #e5e7eb !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    border-radius: 8px !important;

    /* Ancho completo */
    width: 100% !important;
    max-width: 100% !important;

    /* Espaciado - 1.2rem arriba/abajo, 8px izquierda, espacio para flecha derecha */
    padding: 1rem 2rem 1rem 1rem !important;
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;

    /* Apariencia */
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;

    /* Comportamiento */
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-sizing: border-box !important;

    /* Icono de flecha personalizado */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23003942' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.75rem center !important;
    background-size: 1.25rem !important;

    /* Resetear otros estilos */
    box-shadow: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    height: auto !important;
    min-height: auto !important;
    outline: none !important;
}

/* Estado hover del select de sabor */
.variations td.value select.pmn-flavor-select:hover,
select.pmn-flavor-select:hover,
.pmn-flavor-select:hover {
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    background-color: #ffffff !important;
}

/* Estado focus del select de sabor */
.variations td.value select.pmn-flavor-select:focus,
select.pmn-flavor-select:focus,
.pmn-flavor-select:focus {
    outline: none !important;
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
    box-shadow: 0 0 0 2px rgba(0, 120, 49, 0.2) !important;
    background-color: #ffffff !important;
}

/* Estado con valor seleccionado (borde verde cuando tiene un valor) */
.variations td.value select.pmn-flavor-select.has-value,
select.pmn-flavor-select.has-value,
.pmn-flavor-select.has-value {
    border-color: #007831 !important;
    border-top-width: 1px !important;
    border-right-width: 1px !important;
    border-bottom-width: 2px !important;
    border-left-width: 1px !important;
}

/* Opciones del select */
.pmn-flavor-select option,
select.pmn-flavor-select option {
    font-weight: 700 !important;
    color: #003942 !important;
    padding: 0.5rem !important;
    background-color: #ffffff !important;
}

/* ===========================================
   RESPONSIVE
   =========================================== */

/* Tablets */
@media (max-width: 768px) {
    .pmn-quantity-button,
    button.pmn-quantity-button {
        font-size: 0.9375rem !important;
        padding: 0.5rem 1rem !important;
    }

    .pmn-quantity-buttons-wrapper {
        gap: 0.5rem !important;
    }
}

/* Móviles */
@media (max-width: 480px) {
    .pmn-quantity-button,
    button.pmn-quantity-button {
        font-size: 0.875rem !important;
        padding: 0.5rem 0.875rem !important;
        flex: 1 1 calc(50% - 0.25rem) !important;
        min-width: 0 !important;
    }

    .pmn-quantity-buttons-wrapper {
        gap: 0.5rem !important;
    }
}

/* ===========================================
   COMPATIBILIDAD CON TEMAS Y ELEMENTOR
   =========================================== */

/* Resetear estilos de Elementor que puedan interferir */
.elementor-widget-container .pmn-quantity-buttons-wrapper,
.elementor-widget-container .variations td.value .pmn-quantity-buttons-wrapper,
.elementor .pmn-quantity-buttons-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

/* Asegurar que el label ocupe su espacio */
.variations .label,
table.variations td.label {
    width: auto !important;
}

/* Resetear padding del td que contiene las variaciones */
.variations td,
table.variations td {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Separación entre filas de variaciones - 2rem gap entre atributos */
.variations tbody tr,
table.variations tbody tr {
    border-bottom: none !important;
}

/* Quitar padding por defecto entre label y campo */
.variations tbody tr th,
.variations tbody tr td,
table.variations tbody tr th,
table.variations tbody tr td {
    padding: 0 !important;
    padding-bottom: 2rem !important;
    vertical-align: top !important;
}

/* Quitar padding extra de la última fila */
.variations tbody tr:last-child th,
.variations tbody tr:last-child td,
table.variations tbody tr:last-child th,
table.variations tbody tr:last-child td {
    padding-bottom: 0 !important;
}

/* Asegurar que label y campo estén pegados (sin espacio) */
.variations .label,
.variations th.label,
table.variations .label,
table.variations th.label {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    display: block !important;
}

.variations .value,
.variations td.value,
table.variations .value,
table.variations td.value {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* ===========================================
   ANIMACIONES
   =========================================== */
@keyframes pmn-button-select {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(0.97);
    }
    100% {
        transform: scale(1);
    }
}

.pmn-quantity-button.selected,
button.pmn-quantity-button.selected {
    animation: pmn-button-select 0.2s ease !important;
}
