/**
 * MiMarket Checkout Styles
 *
 * Estilos para los campos personalizados del checkout
 *
 * @package MiMarket_Checkout
 * @since 1.0.0
 *
 * Cumplimiento ISO/IEC 25010: Usabilidad (diseño accesible)
 */

/* ==========================================================================
   Campos de Checkout
   ========================================================================== */

/**
 * Ocultar campos innecesarios
 */
#billing_postcode_field,
#shipping_postcode_field,
#billing_company_field,
#shipping_company_field {
    display: none !important;
}

/**
 * Estilos para selectores de departamento y municipio
 */
.woocommerce-checkout #billing_state,
.woocommerce-checkout #shipping_state,
.woocommerce-checkout #billing_city,
.woocommerce-checkout #shipping_city,
.woocommerce-checkout .city_select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 16px;
    line-height: 1.5;
    background-color: #fff;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

/**
 * Focus state - Accesibilidad
 */
.woocommerce-checkout #billing_state:focus,
.woocommerce-checkout #shipping_state:focus,
.woocommerce-checkout #billing_city:focus,
.woocommerce-checkout #shipping_city:focus,
.woocommerce-checkout .city_select:focus {
    outline: none;
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/**
 * Estado deshabilitado
 */
.woocommerce-checkout #billing_city:disabled,
.woocommerce-checkout #shipping_city:disabled,
.woocommerce-checkout .city_select:disabled {
    background-color: #f3f4f6;
    cursor: not-allowed;
    opacity: 0.7;
}

/**
 * Placeholder styling
 */
.woocommerce-checkout #billing_city option[value=""],
.woocommerce-checkout #shipping_city option[value=""],
.woocommerce-checkout .city_select option[value=""] {
    color: #9ca3af;
}

/* ==========================================================================
   Labels
   ========================================================================== */

/**
 * Etiquetas de campos
 */
.woocommerce-checkout .form-row label {
    font-weight: 500;
    color: #374151;
    margin-bottom: 6px;
    display: block;
}

/**
 * Asterisco de campo requerido
 */
.woocommerce-checkout .form-row .required {
    color: #ef4444;
    font-weight: normal;
}

/* ==========================================================================
   Validación
   ========================================================================== */

/**
 * Campo con error
 */
.woocommerce-checkout .form-row.woocommerce-invalid #billing_state,
.woocommerce-checkout .form-row.woocommerce-invalid #shipping_state,
.woocommerce-checkout .form-row.woocommerce-invalid #billing_city,
.woocommerce-checkout .form-row.woocommerce-invalid #shipping_city,
.woocommerce-checkout .form-row.woocommerce-invalid .city_select {
    border-color: #ef4444;
}

.woocommerce-checkout .form-row.woocommerce-invalid #billing_state:focus,
.woocommerce-checkout .form-row.woocommerce-invalid #shipping_state:focus,
.woocommerce-checkout .form-row.woocommerce-invalid #billing_city:focus,
.woocommerce-checkout .form-row.woocommerce-invalid #shipping_city:focus,
.woocommerce-checkout .form-row.woocommerce-invalid .city_select:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}

/**
 * Campo válido
 */
.woocommerce-checkout .form-row.woocommerce-validated #billing_state,
.woocommerce-checkout .form-row.woocommerce-validated #shipping_state,
.woocommerce-checkout .form-row.woocommerce-validated #billing_city,
.woocommerce-checkout .form-row.woocommerce-validated #shipping_city,
.woocommerce-checkout .form-row.woocommerce-validated .city_select {
    border-color: #10b981;
}

/* ==========================================================================
   Mensajes de Error
   ========================================================================== */

/**
 * Mensajes de error del checkout
 */
.woocommerce-checkout .woocommerce-error {
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    border-left: 4px solid #ef4444;
    color: #991b1b;
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 20px;
}

.woocommerce-checkout .woocommerce-error li {
    margin: 0;
    padding: 4px 0;
}

/* ==========================================================================
   Campo de Teléfono
   ========================================================================== */

/**
 * Formato de teléfono guatemalteco
 */
#billing_phone {
    font-variant-numeric: tabular-nums;
}

#billing_phone::placeholder {
    color: #9ca3af;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

/**
 * Mobile - Touch targets mínimos 44x44px
 */
@media (max-width: 768px) {
    .woocommerce-checkout #billing_state,
    .woocommerce-checkout #shipping_state,
    .woocommerce-checkout #billing_city,
    .woocommerce-checkout #shipping_city,
    .woocommerce-checkout .city_select {
        min-height: 44px;
        font-size: 16px; /* Prevenir zoom en iOS */
    }

    .woocommerce-checkout .form-row {
        margin-bottom: 16px;
    }
}

/* ==========================================================================
   Select2 Integration (si está activo)
   ========================================================================== */

/**
 * Compatibilidad con Select2 de WooCommerce
 */
.woocommerce-checkout .select2-container--default .select2-selection--single {
    height: 44px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 44px;
    padding-left: 12px;
    color: #374151;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px;
}

.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* ==========================================================================
   Loading State
   ========================================================================== */

/**
 * Estado de carga
 */
.woocommerce-checkout .city_select.loading {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cstyle%3E.spinner{transform-origin:center;animation:spin .75s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}%3C/style%3E%3Cg class='spinner'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%239ca3af' stroke-width='2'/%3E%3Cpath fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' d='M12 2a10 10 0 0 1 10 10'/%3E%3C/g%3E%3C/svg%3E");
    background-position: right 12px center;
    background-size: 20px 20px;
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .woocommerce-checkout #billing_state,
    .woocommerce-checkout #shipping_state,
    .woocommerce-checkout #billing_city,
    .woocommerce-checkout #shipping_city {
        border: 1px solid #000;
        background-image: none;
    }
}
