/**
 * Estulin Custom Checkout Styles
 * Version: 2.4.0
 */

/* ================================================
   CONTENEDOR PRINCIPAL
   ================================================ */
.estulin-checkout-container {
    max-width: 600px;
    margin: 0 auto;
    background: #0a0a0a;
    color: #FFFFFF;
    padding: 40px;
    border-radius: 12px;
    font-family: 'Montserrat', sans-serif;
}

/* ================================================
   TÍTULO MODALIDAD DE PAGO
   ================================================ */
.billing-selector-title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: #FFD700;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 16px 0;
}

/* ================================================
   SELECTOR DE BILLING
   ================================================ */
.billing-toggle {
    background: rgba(255,255,255,0.03);
    padding: 24px;
    border-radius: 12px;
    margin-bottom: 32px;
    border: 1px solid rgba(255,215,0,0.3);
}

.billing-option {
    display: block;
    position: relative;
    margin-bottom: 12px;
    cursor: pointer;
}

.billing-option:last-child {
    margin-bottom: 0;
}

.billing-option input[type='radio'] {
    position: absolute;
    opacity: 0;
}

.option-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 20px;
    background: rgba(0,0,0,0.3);
    border: 2px solid transparent;
    border-radius: 8px;
    transition: all 0.3s ease;
}

.billing-option:hover .option-content {
    background: rgba(255,255,255,0.05);
}

.billing-option input:checked + .option-content {
    border-color: #FFD700;
    background: rgba(255,215,0,0.08);
}

.option-label {
    font-weight: 600;
    font-size: 16px;
    color: #FFFFFF;
}

.option-price {
    font-weight: 700;
    font-size: 18px;
    color: #FFD700;
}

.option-badge {
    position: absolute;
    top: -8px;
    right: 20px;
    background: #FFD700;
    color: #2E2E2E;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.loading-variations {
    text-align: center;
    padding: 20px;
    color: rgba(255,255,255,0.6);
}

/* ================================================
   LOGIN PROMPT - Versión Discreta (v2.4.0)
   ================================================ */
.estulin-login-line {
    color: rgba(255,255,255,0.6);
    font-size: 14px;
    margin: 0 0 20px;
    text-align: right;
}

.estulin-login-line a {
    color: #FFD700 !important;
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}

.estulin-login-line a:hover {
    color: #FFA500 !important;
    text-decoration: underline;
}

.estulin-login-form {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,215,0,0.2);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 24px;
}

.estulin-login-form .form-row {
    margin-bottom: 16px;
}

.estulin-login-form .form-row-first,
.estulin-login-form .form-row-last {
    display: inline-block;
    width: calc(50% - 10px);
    vertical-align: top;
}

.estulin-login-form .form-row-first {
    margin-right: 20px;
}

.estulin-login-form label {
    display: block;
    color: rgba(255,255,255,0.8);
    font-weight: 500;
    font-size: 13px;
    margin-bottom: 6px;
}

.estulin-login-form input[type="text"],
.estulin-login-form input[type="password"] {
    width: 100%;
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 6px;
    padding: 10px 12px;
    color: #FFFFFF;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    transition: all 0.2s ease;
}

.estulin-login-form input[type="text"]:focus,
.estulin-login-form input[type="password"]:focus {
    border-color: #FFD700;
    outline: none;
}

.estulin-login-form .login-actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 8px;
}

.estulin-btn-login {
    background: #FFD700;
    color: #2E2E2E;
    border: none;
    padding: 10px 24px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    transition: all 0.2s ease;
}

.estulin-btn-login:hover {
    background: #FFA500;
}

.estulin-btn-login:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.lost-password-link {
    color: rgba(255,255,255,0.5) !important;
    font-size: 13px;
    text-decoration: none !important;
}

.lost-password-link:hover {
    color: #FFD700 !important;
}

/* ================================================
   SAME PLAN NOTICE - Diseño Mejorado (v2.4.0)
   ================================================ */
.estulin-same-plan-notice {
    background: linear-gradient(135deg, rgba(46,46,46,0.95) 0%, rgba(26,26,26,0.98) 100%);
    border: 1px solid rgba(255,215,0,0.3);
    border-radius: 16px;
    padding: 48px 40px;
    text-align: center;
    max-width: 500px;
    margin: 0 auto;
}

.same-plan-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(76,175,80,0.15);
    border: 1px solid rgba(76,175,80,0.4);
    padding: 8px 16px;
    border-radius: 20px;
    margin-bottom: 24px;
}

.same-plan-badge .badge-icon {
    color: #4CAF50;
    font-size: 16px;
}

.same-plan-badge .badge-text {
    color: #4CAF50;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.same-plan-title {
    color: #FFFFFF;
    font-size: 28px;
    font-weight: 700;
    margin: 0 0 16px;
    line-height: 1.3;
}

.same-plan-title .plan-name {
    color: #FFD700;
}

.same-plan-question {
    color: rgba(255,255,255,0.7);
    font-size: 16px;
    margin: 0 0 32px;
}

.same-plan-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.same-plan-actions .btn-primary {
    display: inline-block;
    background: #FFD700;
    color: #2E2E2E !important;
    padding: 14px 32px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.2s ease;
    width: 100%;
    max-width: 280px;
    text-align: center;
}

.same-plan-actions .btn-primary:hover {
    background: #FFA500;
    transform: translateY(-1px);
}

.same-plan-actions .btn-secondary {
    display: inline-block;
    color: rgba(255,255,255,0.6) !important;
    padding: 10px 24px;
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s ease;
}

.same-plan-actions .btn-secondary:hover {
    color: #FFD700 !important;
}

/* ================================================
   UPGRADE NOTICE (v2.4.0)
   ================================================ */
.estulin-upgrade-notice {
    background: linear-gradient(135deg, rgba(255,215,0,0.1) 0%, rgba(255,165,0,0.05) 100%);
    border: 2px solid rgba(255,215,0,0.4);
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 24px;
}

.upgrade-header {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 16px;
}

.upgrade-icon {
    font-size: 28px;
}

.upgrade-plans {
    display: flex;
    align-items: center;
    gap: 12px;
}

.current-plan {
    background: rgba(255,255,255,0.1);
    padding: 6px 14px;
    border-radius: 6px;
    color: rgba(255,255,255,0.7);
    font-weight: 500;
    font-size: 14px;
}

.upgrade-plans .arrow {
    color: #FFD700;
    font-size: 20px;
}

.target-plan {
    background: #FFD700;
    color: #2E2E2E;
    padding: 6px 14px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 14px;
}

.upgrade-content {
    padding-left: 44px;
}

.upgrade-message {
    color: #FFFFFF;
    font-size: 16px;
    margin: 0 0 16px;
}

.compensation-inline {
    background: rgba(255,215,0,0.15);
    padding: 12px 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.compensation-inline .comp-icon {
    font-size: 20px;
}

.compensation-inline .comp-text {
    color: #FFD700;
    font-weight: 500;
    font-size: 14px;
}

.upgrade-note {
    margin: 0;
}

.upgrade-note small {
    color: rgba(255,255,255,0.5);
    font-size: 13px;
}

/* ================================================
   DOWNGRADE NOTICE (v2.4.0)
   ================================================ */
.estulin-downgrade-notice {
    background: rgba(244,67,54,0.1);
    border: 2px solid rgba(244,67,54,0.4);
    border-radius: 12px;
    padding: 32px;
    text-align: center;
}

.downgrade-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.downgrade-content h3 {
    color: #F44336;
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 700;
}

.downgrade-content p {
    color: rgba(255,255,255,0.8);
    margin: 0 0 12px;
    font-size: 15px;
}

.downgrade-actions {
    margin-top: 24px;
}

.downgrade-actions .btn-manage {
    background: rgba(255,255,255,0.1);
    border: 2px solid rgba(255,255,255,0.3);
}

.downgrade-actions .btn-manage:hover {
    background: rgba(255,255,255,0.2);
    border-color: #FFFFFF;
}

/* ================================================
   COMPENSACIÓN VIP
   ================================================ */
.compensation-notice {
    background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
    color: #2E2E2E;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 32px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.comp-icon {
    font-size: 28px;
    flex-shrink: 0;
}

.comp-content {
    flex: 1;
}

.comp-main {
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 8px 0;
    line-height: 1.4;
}

.comp-benefit {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 8px 0;
    color: #2E2E2E;
}

.comp-note {
    display: block;
    font-size: 12px;
    opacity: 0.8;
    font-weight: 400;
    margin: 0;
}

.compensation-notice strong {
    color: #2E2E2E;
}

/* ================================================
   FORMULARIO WOOCOMMERCE
   ================================================ */
#checkout-form-container {
    background: transparent;
    padding: 0;
}

/* Forzar una columna completa */
.estulin-checkout-container .woocommerce-billing-fields__field-wrapper,
.estulin-checkout-container .woocommerce-additional-fields {
    display: block !important;
    width: 100% !important;
}

.estulin-checkout-container #customer_details {
    width: 100% !important;
    float: none !important;
}

.estulin-checkout-container .col2-set {
    width: 100% !important;
}

.estulin-checkout-container .col2-set .col-1,
.estulin-checkout-container .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
}

/* Ocultar secciones */
.estulin-checkout-container #order_review_heading,
.estulin-checkout-container .woocommerce-additional-fields {
    display: none !important;
}

.estulin-checkout-container .woocommerce form .form-row {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin-bottom: 20px !important;
}

/* ================================================
   CAMPOS DE FORMULARIO
   ================================================ */
.estulin-checkout-container .woocommerce form .form-row label {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: #FFD700;
    margin-bottom: 8px;
    display: block;
}

.estulin-checkout-container .woocommerce form .form-row label .required {
    color: #FFD700;
}

.estulin-checkout-container .woocommerce form input[type='text'],
.estulin-checkout-container .woocommerce form input[type='email'],
.estulin-checkout-container .woocommerce form input[type='tel'],
.estulin-checkout-container .woocommerce form input[type='password'],
.estulin-checkout-container .woocommerce form textarea,
.estulin-checkout-container .woocommerce form select:not(.select2-hidden-accessible) {
    background: rgba(0,0,0,0.3) !important;
    border: 2px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    padding: 14px 16px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 15px !important;
    color: #FFFFFF !important;
    width: 100% !important;
    transition: all 0.3s ease !important;
}

.estulin-checkout-container .woocommerce form input[type='text']:focus,
.estulin-checkout-container .woocommerce form input[type='email']:focus,
.estulin-checkout-container .woocommerce form input[type='tel']:focus,
.estulin-checkout-container .woocommerce form input[type='password']:focus,
.estulin-checkout-container .woocommerce form textarea:focus,
.estulin-checkout-container .woocommerce form select:focus {
    border-color: #FFD700 !important;
    background: rgba(255,215,0,0.05) !important;
    outline: none !important;
}

.estulin-checkout-container .woocommerce form input::placeholder,
.estulin-checkout-container .woocommerce form textarea::placeholder {
    color: rgba(255,255,255,0.4) !important;
}

/* Checkbox y radio */
.estulin-checkout-container .woocommerce form .form-row input[type='checkbox'],
.estulin-checkout-container .woocommerce form .form-row input[type='radio'] {
    width: auto !important;
    margin-right: 8px;
    accent-color: #FFD700;
}

/* ================================================
   DOS COLUMNAS - LAYOUT CON CLASES CORRECTAS
   ================================================ */

/* Transiciones suaves para evitar flash visual */
.estulin-checkout-container .woocommerce form .form-row {
    transition: width 0.2s ease, margin 0.2s ease, opacity 0.2s ease !important;
}

/* Resetear TODOS los campos primero */
.estulin-checkout-container .woocommerce form .form-row {
    width: 100% !important;
    float: none !important;
    clear: both !important;
    margin-right: 0 !important;
}

/* CLASES form-row-first y form-row-last - 2 columnas */
.estulin-checkout-container .woocommerce form .form-row-first,
.estulin-checkout-container .woocommerce form .form-row.form-row-first {
    float: left !important;
    width: calc(50% - 10px) !important;
    clear: left !important;
    margin-right: 20px !important;
}

.estulin-checkout-container .woocommerce form .form-row-last,
.estulin-checkout-container .woocommerce form .form-row.form-row-last {
    float: right !important;
    width: calc(50% - 10px) !important;
    clear: right !important;
    margin-right: 0 !important;
}

/* form-row-wide siempre 100% */
.estulin-checkout-container .woocommerce form .form-row-wide,
.estulin-checkout-container .woocommerce form .form-row.form-row-wide {
    width: 100% !important;
    float: none !important;
    clear: both !important;
}

/* Clearfix después de pares de campos */
.estulin-checkout-container .woocommerce form .form-row-last::after {
    content: "";
    display: table;
    clear: both;
}

/* Campos específicos por ID - como respaldo */
.estulin-checkout-container .woocommerce form #billing_first_name_field {
    float: left !important;
    width: calc(50% - 10px) !important;
    margin-right: 20px !important;
}

.estulin-checkout-container .woocommerce form #billing_last_name_field {
    float: right !important;
    width: calc(50% - 10px) !important;
    margin-right: 0 !important;
}

.estulin-checkout-container .woocommerce form #billing_city_field {
    float: left !important;
    width: calc(50% - 10px) !important;
    margin-right: 20px !important;
}

.estulin-checkout-container .woocommerce form #billing_postcode_field {
    float: right !important;
    width: calc(50% - 10px) !important;
    margin-right: 0 !important;
}

/* ================================================
   RESUMEN DE PEDIDO
   ================================================ */
.estulin-checkout-container .woocommerce-checkout-review-order {
    background: rgba(255,255,255,0.03);
    padding: 24px;
    border-radius: 12px;
    border: 1px solid rgba(255,215,0,0.2);
    margin-top: 20px;
}

.estulin-checkout-container .woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
}

.estulin-checkout-container .woocommerce-checkout-review-order-table th,
.estulin-checkout-container .woocommerce-checkout-review-order-table td {
    padding: 12px 0;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    color: #FFFFFF;
}

.estulin-checkout-container .woocommerce-checkout-review-order-table th {
    color: rgba(255,255,255,0.7);
    font-weight: 500;
}

.estulin-checkout-container .woocommerce-checkout-review-order-table td {
    text-align: right;
}

.estulin-checkout-container .woocommerce-checkout-review-order-table .order-total th,
.estulin-checkout-container .woocommerce-checkout-review-order-table .order-total td {
    font-weight: 700;
    font-size: 18px;
    color: #FFD700;
    border-bottom: none;
    padding-top: 16px;
}

/* Títulos de sección */
.estulin-checkout-container .payment-section-title {
    color: #FFD700;
    font-size: 16px;
    font-weight: 700;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.estulin-checkout-container .renewal-date-info {
    font-size: 13px;
    color: rgba(255,255,255,0.6);
    padding-top: 8px;
    border-bottom: none !important;
}

/* Recurring totals */
.estulin-checkout-container .recurring-totals-divider td {
    padding-top: 20px !important;
    border-top: 2px solid rgba(255,215,0,0.3);
}

/* ================================================
   BOTÓN DE COMPRA
   ================================================ */
.estulin-checkout-container .woocommerce #place_order,
.estulin-checkout-container .woocommerce button[type='submit'] {
    background: #FFD700 !important;
    color: #2E2E2E !important;
    border: none !important;
    padding: 18px 32px !important;
    border-radius: 8px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
    margin-top: 20px !important;
}

.estulin-checkout-container .woocommerce #place_order:hover,
.estulin-checkout-container .woocommerce button[type='submit']:hover {
    background: #FFA500 !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255,215,0,0.4);
}

/* ================================================
   MÉTODOS DE PAGO
   ================================================ */
.estulin-checkout-container .woocommerce-checkout #payment {
    background: transparent !important;
    border: none !important;
}

.estulin-checkout-container .woocommerce-checkout #payment ul.payment_methods {
    padding: 0 !important;
    border: none !important;
    list-style: none;
}

.estulin-checkout-container .woocommerce-checkout #payment ul.payment_methods li {
    background: rgba(0,0,0,0.3) !important;
    border-radius: 8px !important;
    margin-bottom: 10px !important;
    padding: 15px !important;
    border: 2px solid transparent !important;
}

.estulin-checkout-container .woocommerce-checkout #payment ul.payment_methods li.payment_method_stripe input:checked + label {
    color: #FFD700 !important;
}

.estulin-checkout-container .woocommerce-checkout #payment ul.payment_methods li input:checked {
    accent-color: #FFD700;
}

.estulin-checkout-container .woocommerce-checkout #payment ul.payment_methods li label {
    color: #FFFFFF !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 600 !important;
}

.estulin-checkout-container .woocommerce-checkout #payment div.payment_box {
    background: rgba(0,0,0,0.3) !important;
    color: rgba(255,255,255,0.8) !important;
    border-radius: 8px !important;
    margin-top: 10px !important;
    border: none !important;
}

.estulin-checkout-container .woocommerce-checkout #payment div.payment_box::before {
    border-bottom-color: rgba(0,0,0,0.3) !important;
}

/* ================================================
   TÉRMINOS Y CONDICIONES
   ================================================ */
.estulin-checkout-container .woocommerce-terms-and-conditions-wrapper {
    margin-top: 20px;
}

.estulin-checkout-container .woocommerce-terms-and-conditions-wrapper label {
    color: rgba(255,255,255,0.8) !important;
}

.estulin-checkout-container .woocommerce-terms-and-conditions-wrapper a {
    color: #FFD700 !important;
    text-decoration: underline;
}

.estulin-checkout-container .woocommerce-terms-and-conditions-wrapper a:hover {
    color: #FFA500 !important;
}

/* ================================================
   MENSAJES DE ERROR/INFO
   ================================================ */
.estulin-checkout-container .woocommerce .woocommerce-error,
.estulin-checkout-container .woocommerce .woocommerce-info,
.estulin-checkout-container .woocommerce .woocommerce-message {
    background: rgba(255,215,0,0.1) !important;
    color: #FFFFFF !important;
    border-left: 4px solid #FFD700 !important;
    border-radius: 8px !important;
    padding: 15px !important;
    margin-bottom: 20px !important;
}

.estulin-checkout-container .woocommerce .woocommerce-error a,
.estulin-checkout-container .woocommerce .woocommerce-info a,
.estulin-checkout-container .woocommerce .woocommerce-message a {
    color: #FFD700 !important;
    text-decoration: underline;
}

/* ================================================
   SELECT2 (PAÍS)
   ================================================ */
.estulin-checkout-container .woocommerce form select.select2-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.estulin-checkout-container .select2-container {
    width: 100% !important;
    display: block !important;
    z-index: 1 !important;
}

.estulin-checkout-container .select2-container--default .select2-selection--single {
    background: rgba(0,0,0,0.3) !important;
    border: 2px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    padding: 8px 16px !important;
    height: auto !important;
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
}

.estulin-checkout-container .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #FFFFFF !important;
    line-height: 32px !important;
    padding: 0 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 15px !important;
}

.estulin-checkout-container .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 46px !important;
    top: 1px !important;
    right: 10px !important;
}

.estulin-checkout-container .select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: #FFD700 transparent transparent transparent !important;
}

.estulin-checkout-container .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent #FFD700 transparent !important;
}

.select2-dropdown {
    background: #0a0a0a !important;
    border: 2px solid rgba(255,215,0,0.3) !important;
    border-radius: 8px !important;
    margin-top: 4px !important;
    z-index: 99999 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.8) !important;
}

.select2-container--default .select2-search--dropdown {
    background: #0a0a0a !important;
    padding: 10px !important;
    border-bottom: 1px solid rgba(255,215,0,0.2) !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    background: rgba(0,0,0,0.4) !important;
    border: 2px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    padding: 10px 12px !important;
    color: #FFFFFF !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 14px !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: #FFD700 !important;
    background: rgba(255,215,0,0.05) !important;
    outline: none !important;
}

.select2-results {
    background: #0a0a0a !important;
    padding: 0 !important;
}

.select2-results__options {
    max-height: 300px !important;
    overflow-y: auto !important;
}

.select2-container--default .select2-results__option {
    background: #0a0a0a !important;
    color: #FFFFFF !important;
    padding: 14px 16px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 14px !important;
    transition: all 0.2s ease !important;
}

.select2-container--default .select2-results__option--highlighted {
    background: rgba(255,215,0,0.1) !important;
    color: #FFD700 !important;
}

.select2-container--default .select2-results__option[aria-selected='true'] {
    background: rgba(255,215,0,0.08) !important;
    color: #FFD700 !important;
    font-weight: 600 !important;
}

/* Scrollbar personalizada */
.select2-results__options::-webkit-scrollbar {
    width: 8px;
}

.select2-results__options::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.4);
    border-radius: 4px;
}

.select2-results__options::-webkit-scrollbar-thumb {
    background: rgba(255,215,0,0.4);
    border-radius: 4px;
}

.select2-results__options::-webkit-scrollbar-thumb:hover {
    background: rgba(255,215,0,0.6);
}

/* ================================================
   CUPONES
   ================================================ */
.estulin-checkout-container .woocommerce-form-coupon-toggle,
.estulin-checkout-container .woocommerce-form-login-toggle {
    display: none !important;
}

/* ================================================
   ENLACES
   ================================================ */
.estulin-checkout-container .woocommerce a {
    color: #FFD700 !important;
}

.estulin-checkout-container .woocommerce a:hover {
    color: #FFA500 !important;
}

/* ================================================
   SELECT NATIVO PAÍS
   ================================================ */
.estulin-checkout-container select#billing_country,
.estulin-checkout-container select#shipping_country,
.estulin-checkout-container select.country_select {
    -webkit-appearance: menulist;
    appearance: auto;
    background: rgba(0,0,0,0.3) !important;
    border: 2px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    padding: 14px 16px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 15px !important;
    color: #FFFFFF !important;
    width: 100% !important;
}

/* ================================================
   RESPONSIVE
   ================================================ */
@media (max-width: 768px) {
    .estulin-checkout-container {
        padding: 30px 20px;
    }
    
    .billing-toggle {
        padding: 20px;
    }
    
    .estulin-checkout-container .woocommerce-checkout-review-order {
        padding: 20px;
    }
    
    .option-content {
        padding: 14px 16px;
    }
    
    .estulin-checkout-container .select2-container--default .select2-selection--single {
        min-height: 44px !important;
    }
    
    /* Campos a 1 columna en móvil */
    .estulin-checkout-container .woocommerce form .form-row-first,
    .estulin-checkout-container .woocommerce form .form-row-last,
    .estulin-checkout-container .woocommerce form #billing_first_name_field,
    .estulin-checkout-container .woocommerce form #billing_last_name_field,
    .estulin-checkout-container .woocommerce form #billing_city_field,
    .estulin-checkout-container .woocommerce form #billing_postcode_field {
        width: 100% !important;
        float: none !important;
        margin-right: 0 !important;
    }
    
    /* Login form responsive */
    .estulin-login-line {
        text-align: center;
    }
    
    .estulin-login-form .form-row-first,
    .estulin-login-form .form-row-last {
        display: block;
        width: 100%;
        margin-right: 0;
    }
    
    .estulin-login-form .login-actions {
        flex-direction: column;
        align-items: stretch;
    }
    
    .estulin-btn-login {
        width: 100%;
    }
    
    .lost-password-link {
        text-align: center;
        display: block;
    }
    
    /* Same plan notice responsive */
    .estulin-same-plan-notice {
        padding: 32px 24px;
    }
    
    .same-plan-title {
        font-size: 24px;
    }
    
    .same-plan-actions .btn-primary {
        max-width: 100%;
    }
    
    /* Upgrade notice responsive */
    .upgrade-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .upgrade-content {
        padding-left: 0;
    }
}

/* ================================================
   CONSENTIMIENTOS LEGALES - CHECKOUT (v2.5.0)
   ================================================ */
.estulin-legal-consents {
    margin: 24px 0 8px;
    padding: 20px 24px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,215,0,0.2);
    border-radius: 8px;
}

.estulin-consents-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #FFD700;
    margin: 0 0 16px;
}

.estulin-consent-row {
    margin-bottom: 14px;
}

.estulin-consent-row:last-of-type {
    margin-bottom: 0;
}

.estulin-consent-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    cursor: pointer;
    color: rgba(255,255,255,0.85) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

.estulin-consent-label input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    margin: 2px 0 0 0 !important;
    accent-color: #FFD700;
    cursor: pointer;
}

.estulin-consent-label a {
    color: #FFD700 !important;
    text-decoration: underline;
}

.estulin-consent-label a:hover {
    color: #FFA500 !important;
}

.estulin-consent-asterisk {
    color: #FFD700;
    font-weight: 700;
    margin-left: 2px;
}

/* Separador visual entre obligatorios y opcionales */
.estulin-consent-row:not(.estulin-consent-required) {
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,0.08);
    margin-top: 14px;
}

.estulin-consents-note {
    font-size: 11px !important;
    color: rgba(255,255,255,0.4) !important;
    margin: 14px 0 0 !important;
}

/* ================================================
   CONSENTIMIENTOS - MI CUENTA (v2.5.0)
   ================================================ */
.estulin-account-consents {
    margin-top: 40px;
    padding-top: 32px;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.estulin-account-consents-title {
    font-size: 16px;
    font-weight: 700;
    color: #FFD700;
    margin: 0 0 16px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.estulin-account-consents-empty {
    color: rgba(255,255,255,0.5);
    font-size: 14px;
}

.estulin-account-consents-list {
    list-style: none;
    margin: 0 0 24px;
    padding: 0;
}

.estulin-account-consent-item {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    font-size: 14px;
}

.estulin-account-consent-icon {
    font-size: 14px;
    font-weight: 700;
    flex-shrink: 0;
}

.estulin-account-consent-icon.accepted { color: #4CAF50; }
.estulin-account-consent-icon.rejected { color: #F44336; }

.estulin-account-consent-text {
    flex: 1;
    color: rgba(255,255,255,0.85);
}

.estulin-account-consent-meta {
    font-size: 12px;
    color: rgba(255,255,255,0.4);
    white-space: nowrap;
}

.estulin-marketing-toggle {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,215,0,0.15);
    border-radius: 8px;
    padding: 16px 20px;
}

.estulin-marketing-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    cursor: pointer;
    color: rgba(255,255,255,0.85) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    margin-bottom: 6px !important;
}

.estulin-marketing-label input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    margin: 2px 0 0 0 !important;
    accent-color: #FFD700;
}

.estulin-marketing-note {
    font-size: 12px !important;
    color: rgba(255,255,255,0.4) !important;
    margin: 0 !important;
}
