/**
 * Checkout CSS
 * Estilos específicos para la página de checkout/finalizar compra
 *
 * Nota: Los estilos de formularios, inputs, botones y alertas están en style.css
 * Este archivo solo contiene estilos específicos del layout y componentes del checkout
 *
 * @package ClimaZona
 * @version 1.0.0
 */

/* Grid de dos columnas */
.checkout-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-xl, 2rem);
}

@media (min-width: 768px) {
    .checkout-layout {
        grid-template-columns: 1fr 1fr;
    }
}

/* Columna izquierda: Formulario */
.checkout-form-column {
    order: 2;
}

/* Columna derecha: Resumen del pedido */
.checkout-order-column {
    order: 1;
}

@media (min-width: 768px) {
    .checkout-form-column {
        order: 1;
    }
    .checkout-order-column {
        order: 2;
    }
}

/* ========================================
   TÍTULOS DE SECCIÓN
   ======================================== */

#order_review_heading,
.woocommerce-checkout h3 {
    font-size: var(--font-size-lg, 1.25rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--theme-text, #333);
    margin: 0 0 var(--spacing-md, 1rem);
    padding-bottom: var(--spacing-sm, 0.5rem);
    border-bottom: 2px solid var(--theme-primary, #2563eb);
}

/* ========================================
   TABLA DE RESUMEN DEL PEDIDO
   ======================================== */

.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--spacing-lg, 1.5rem);
    font-size: var(--font-size-sm, 0.875rem);
}

/* Cabecera de la tabla */
.woocommerce-checkout-review-order-table thead th {
    padding: var(--spacing-sm, 0.5rem) var(--spacing-md, 1rem);
    text-align: left;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--theme-text, #333);
    background-color: var(--theme-secondary-light, #f8f9fa);
    border-bottom: 2px solid var(--border-color, #e4e4e7);
}

.woocommerce-checkout-review-order-table thead th.product-total {
    text-align: right;
}

/* Filas de productos */
.woocommerce-checkout-review-order-table tbody .cart_item td {
    padding: var(--spacing-md, 1rem);
    vertical-align: top;
    border-bottom: 1px solid var(--border-color-light, #f1f3f5);
}

.woocommerce-checkout-review-order-table tbody .cart_item:last-child td {
    border-bottom: 1px solid var(--border-color, #e4e4e7);
}

/* Nombre del producto */
.woocommerce-checkout-review-order-table .product-name {
    color: var(--theme-text, #333);
    line-height: var(--line-height-normal, 1.5);
}

/* Cantidad */
.woocommerce-checkout-review-order-table .product-quantity {
    display: inline-block;
    color: var(--theme-text-light, #666);
    font-weight: var(--font-weight-normal, 400);
    margin-left: var(--spacing-xs, 0.25rem);
}

/* Precio del producto */
.woocommerce-checkout-review-order-table .product-total {
    text-align: right;
    white-space: nowrap;
}

.woocommerce-checkout-review-order-table .product-total .woocommerce-Price-amount {
    font-weight: var(--font-weight-semibold, 600);
    color: var(--theme-text, #333);
    font-size: var(--font-size-base, 1rem);
}

/* Etiqueta de impuestos */
.woocommerce-checkout-review-order-table .tax_label {
    display: block;
    font-size: var(--font-size-xs, 0.75rem);
    color: var(--theme-text-light, #666);
    font-weight: var(--font-weight-normal, 400);
    margin-top: var(--spacing-xs, 0.25rem);
}

/* ========================================
   FOOTER DE LA TABLA (Totales)
   ======================================== */

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
    padding: var(--spacing-md, 1rem);
    border-bottom: 1px solid var(--border-color-light, #f1f3f5);
}

.woocommerce-checkout-review-order-table tfoot th {
    text-align: left;
    font-weight: var(--font-weight-medium, 500);
    color: var(--theme-text, #333);
}

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

/* ----------------------------------------
   SUBTOTAL (cart-subtotal)
   ---------------------------------------- */
.woocommerce-checkout-review-order-table .cart-subtotal td {
    font-weight: var(--font-weight-medium, 500);
}

.woocommerce-checkout-review-order-table .cart-subtotal .woocommerce-Price-amount {
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--theme-text, #333);
}

.woocommerce-checkout-review-order-table .cart-subtotal .tax_label {
    display: inline;
    font-size: var(--font-size-xs, 0.75rem);
    color: var(--theme-text-light, #666);
    margin-left: 0.25rem;
}

/* Envío */
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals th,
.woocommerce-checkout-review-order-table .woocommerce-shipping-totals td {
    vertical-align: top;
}

/* Lista de métodos de envío */
.woocommerce-shipping-methods {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Tasas/Fees */
.woocommerce-checkout-review-order-table .fee th {
    color: var(--theme-text-light, #666);
    font-weight: var(--font-weight-normal, 400);
}

/* ----------------------------------------
   TOTAL FINAL (order-total)
   ---------------------------------------- */
.woocommerce-checkout-review-order-table .order-total {
    background-color: var(--theme-secondary-light, #f8f9fa);
}

.woocommerce-checkout-review-order-table .order-total th {
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-bold, 700);
    color: var(--theme-text, #333);
    vertical-align: top;
}

.woocommerce-checkout-review-order-table .order-total td {
    vertical-align: top;
}

/* Precio total: 1.25rem, bold, verde */
.woocommerce-checkout-review-order-table .order-total td > strong {
    display: block;
}

.woocommerce-checkout-review-order-table .order-total td > strong .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-amount.amount {
    font-size: 1.25rem;
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-success, #22c55e);
}

/* Texto "(incluye X€ IVA)" debajo del precio */
.woocommerce-checkout-review-order-table .order-total .includes_tax {
    display: inline-flex;
    white-space: break-spaces;
    font-size: 0.75rem;
    font-weight: var(--font-weight-normal, 400);
    color: var(--theme-text-light, #666);
    margin-top: 0.25rem;
    line-height: 1.4;
}

/* El precio dentro del includes_tax hereda el tamaño pequeño */
.woocommerce-checkout-review-order-table .order-total .includes_tax .woocommerce-Price-amount {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
}

/* ========================================
   SECCIÓN DE PAGO
   ======================================== */

#payment,
.woocommerce-checkout-payment {
    background-color: #fff;
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    overflow: hidden;
}

/* ========================================
   TÉRMINOS Y CONDICIONES
   ======================================== */

/* Contenedor del texto de términos (colapsable) */
.woocommerce-terms-and-conditions {
    max-height: 200px;
    overflow-y: auto;
    padding: var(--spacing-md, 1rem);
    margin-bottom: var(--spacing-md, 1rem);
    background-color: var(--theme-secondary-light, #f8f9fa);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    font-size: var(--font-size-sm, 0.875rem);
    line-height: var(--line-height-relaxed, 1.75);
}

/* Checkbox de términos */
.woocommerce-terms-and-conditions-checkbox-text {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--theme-text, #333);
    line-height: var(--line-height-normal, 1.5);
}

.woocommerce-terms-and-conditions-checkbox-text a {
    color: var(--theme-primary, #2563eb);
    text-decoration: underline;
}

.woocommerce-terms-and-conditions-checkbox-text a:hover {
    color: var(--theme-primary-dark, #1d4ed8);
}

/* ========================================
   CHECKBOXES DE CONSENTIMIENTO
   ======================================== */

.cr-customer-consent,
.form-row.privacy {
    margin-bottom: var(--spacing-md, 1rem);
}

.cr-customer-consent label,
.form-row.privacy label {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm, 0.5rem);
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--theme-text, #333);
    line-height: var(--line-height-normal, 1.5);
    cursor: pointer;
}

.cr-customer-consent input[type="checkbox"],
.form-row.privacy input[type="checkbox"] {
    width: 1.125rem;
    height: 1.125rem;
    margin-top: 0.125rem;
    accent-color: var(--theme-primary, #2563eb);
    cursor: pointer;
    flex-shrink: 0;
}

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

@media (max-width: 767px) {
    .woocommerce-checkout-review-order-table thead {
        display: none;
    }

    .woocommerce-checkout-review-order-table tbody .cart_item {
        display: block;
        padding: var(--spacing-md, 1rem) 0;
        border-bottom: 1px solid var(--border-color-light, #f1f3f5);
    }

    .woocommerce-checkout-review-order-table tbody .cart_item td {
        display: block;
        padding: var(--spacing-xs, 0.25rem) 0;
        border: none;
    }

    .woocommerce-checkout-review-order-table tbody .cart_item .product-total {
        text-align: left;
        margin-top: var(--spacing-sm, 0.5rem);
    }

    .woocommerce-checkout-review-order-table tfoot tr {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: var(--spacing-sm, 0.5rem) 0;
    }

    .woocommerce-checkout-review-order-table tfoot th,
    .woocommerce-checkout-review-order-table tfoot td {
        padding: 0;
        border: none;
    }
}

/* ========================================
   MÉTODOS DE PAGO
   ======================================== */
.wc_payment_methods,
ul.wc_payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.wc_payment_method,
li.wc_payment_method {
    display: block !important;
    position: relative;
    border-bottom: 1px solid var(--border-color-light, #f1f3f5);
    margin: 0 !important;
}

.wc_payment_method:last-child {
    border-bottom: none;
}

.wc_payment_method > input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
}

.wc_payment_method > label {
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1rem 1rem 2.75rem !important;
    margin: 0 !important;
    cursor: pointer;
    font-weight: 500;
    color: var(--theme-text, #333);
    transition: background-color 0.15s ease;
    position: relative;
    min-height: 3rem;
}

.wc_payment_method > label::before {
    content: '';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.125rem;
    height: 1.125rem;
    border: 2px solid var(--border-color, #e4e4e7);
    border-radius: 50%;
    background: #fff;
    transition: border-color 0.15s ease, background-color 0.15s ease;
    flex-shrink: 0;
}

.wc_payment_method > input[type="radio"]:checked + label::before {
    border-color: var(--theme-primary, #2563eb);
    background: var(--theme-primary, #2563eb);
    box-shadow: inset 0 0 0 3px #fff;
}

.wc_payment_method > input[type="radio"]:focus-visible + label::before {
    outline: 2px solid var(--theme-primary, #2563eb);
    outline-offset: 2px;
}

.wc_payment_method > label:hover {
    background-color: var(--theme-secondary-light, #f8f9fa);
}

.wc_payment_method > label {
    flex-wrap: nowrap;
    justify-content: flex-start;
    min-width: 0;
    white-space: normal;
}

.wc_payment_method > label > span,
.wc_payment_method > label > .payment_method_title {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wc_payment_method > label img {
    max-height: 24px;
    max-width: 100px;
    width: auto;
    height: auto;
    flex-shrink: 0;
    margin-left: auto;
    object-fit: contain;
}

.wc_payment_method > label img + img {
    margin-left: 0.25rem;
}

.payment_box {
    float: none !important;
    position: static !important;
    width: auto !important;
    max-width: none !important;
    clear: both;
    display: block;
    margin: 0 1rem 1rem 2.75rem !important;
    padding: 1rem !important;
    background-color: var(--theme-primary-light, #dbeafe);
    border-radius: 0.25rem;
    font-size: 0.875rem;
    color: var(--theme-text, #333);
    line-height: 1.6;
}

.payment_box::before,
.payment_box::after {
    display: none !important; /* Eliminar flechas/triángulos */
}

.payment_box p {
    margin: 0 0 0.5rem;
}

.payment_box p:last-child {
    margin-bottom: 0;
}

/* ========================================
   MÉTODO SEQURA - Widget personalizado
   SeQura oculta el radio/label originales y
   renderiza su propio widget con radios internos
   ======================================== */

.wc_payment_method.payment_method_sequra {
    display: block !important;
    padding: 1rem !important;
}

.wc_payment_method.payment_method_sequra > div.payment_method_sequra {
    margin: 0 !important;
    padding: 0 !important;
}

/* Cada opción de campaña - el DIV contenedor (div.sq_payment_method.pp3, etc.) */
.wc_payment_method.payment_method_sequra div.sq_payment_method {
    display: flex !important;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1rem 1rem 2.75rem !important;
    margin: 0 !important;
    cursor: pointer;
    border-bottom: 1px solid var(--border-color-light, #f1f3f5);
    position: relative;
    background: #fff;
    transition: background-color 0.15s ease;
}

.wc_payment_method.payment_method_sequra div.sq_payment_method:hover {
    background-color: var(--theme-secondary-light, #f8f9fa);
}

.wc_payment_method.payment_method_sequra div.sq_payment_method:last-child {
    border-bottom: none;
}

/* Radio de SeQura - visible y alineado */
.wc_payment_method.payment_method_sequra div.sq_payment_method > input[type="radio"],
.wc_payment_method.payment_method_sequra input.sq-input-radio {
    position: absolute !important;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.125rem !important;
    height: 1.125rem !important;
    margin: 0 !important;
    opacity: 1 !important;
    clip: auto !important;
    accent-color: var(--theme-primary, #2563eb);
    cursor: pointer;
    flex-shrink: 0;
}

/* Label de campaña SeQura */
.wc_payment_method.payment_method_sequra label.sq_payment_method {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer;
    font-weight: 500;
    flex: 1;
    min-width: 0;
}

.wc_payment_method.payment_method_sequra label.sq_payment_method::before {
    display: none !important;
}

.wc_payment_method.payment_method_sequra label.sq_payment_method > img {
    max-height: 28px;
    width: auto;
    flex-shrink: 0;
}

.wc_payment_method.payment_method_sequra .sq_payment_method_title_claim {
    flex: 1;
    min-width: 0;
    font-size: 0.875rem;
    line-height: 1.4;
}

.wc_payment_method.payment_method_sequra .sq_payment_method_title {
    font-weight: 600;
    color: var(--theme-text, #333);
}

.wc_payment_method.payment_method_sequra .sq_payment_method_cost {
    margin-left: auto;
    text-align: right;
    flex-shrink: 0;
}

.wc_payment_method.payment_method_sequra .sequra-cost {
    font-weight: 600;
    color: var(--theme-primary, #2563eb);
    font-size: 0.875rem;
    white-space: nowrap;
}

.wc_payment_method.payment_method_sequra .sequra-more-info {
    color: var(--theme-primary, #2563eb);
    font-size: 0.75rem;
    text-decoration: underline;
    cursor: pointer;
}

.payment_method_sequra .payment_box {
    margin: 0 1rem 1rem 2.75rem !important;
    padding: 1rem !important;
    background-color: var(--theme-secondary-light, #f8f9fa);
}

/* =========================================
   OTROS MÉTODOS
   ======================================== */

.wc_payment_method.payment_method_bacs label, .wc_payment_method.payment_method_cecabank_gateway label {
    padding-left: 2.75rem;
}

/* ========================================
   CHECKBOXES DE CONSENTIMIENTO
   ======================================== */
.woocommerce-checkout-payment > p,
.woocommerce-checkout-payment > div,
.woocommerce-checkout-payment .cr-customer-consent,
.custom-checkbox,
#privacy_policy_field,
#terms_conditions_field,
.form-row.ck-fg-consent {
    margin: 0 !important;
    padding: 0.75rem 1rem !important; /* Spacing uniforme: 12px vertical */
    border-top: 1px solid var(--border-color-light, #f1f3f5);
}

.woocommerce-terms-and-conditions {
    background-color: #fff;
}

/* Primera fila con borde más marcado */
.wc_payment_methods + .form-row,
.wc_payment_methods + p,
.wc_payment_methods + div,
.woocommerce-checkout-payment > .form-row:first-of-type,
.woocommerce-checkout-payment > p:first-of-type,
.woocommerce-checkout-payment > .cr-customer-consent:first-of-type {
    border-top: 1px solid var(--border-color, #e4e4e7);
}

/* Quitar borde del contenedor de términos si hay inner elements */
.woocommerce-terms-and-conditions-wrapper {
    padding: 0 !important;
    border: none !important;
}

.woocommerce-terms-and-conditions-wrapper > .woocommerce-privacy-policy-text {
    padding: 0 !important;
}

.woocommerce-terms-and-conditions-wrapper > * {
    padding: 0.75rem 1rem !important;
    border-top: 1px solid var(--border-color-light, #f1f3f5);
}

/* Layout flex para TODOS los labels con checkbox */
.woocommerce-checkout-payment label,
.woocommerce-checkout-payment .form-row label,
.cr-customer-consent label,
#privacy_policy_field label,
#terms_conditions_field label,
.form-row.ck-fg-consent label,
.woocommerce-form__label-for-checkbox,
.woocommerce-terms-and-conditions-checkbox-text {
    gap: 0.625rem !important; /* 10px gap consistente */
    font-size: 0.875rem !important;
    color: var(--theme-text, #333);
    line-height: 1.5 !important;
    cursor: pointer;
    margin: 0 !important;
}

/* Checkbox uniforme */
.woocommerce-checkout-payment input[type="checkbox"],
.cr-customer-consent input[type="checkbox"],
#privacy_policy_field input[type="checkbox"],
.woocommerce-form__input-checkbox {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 1.125rem !important;
    height: 1.125rem !important;
    min-width: 1.125rem !important;
    min-height: 1.125rem !important;
    margin: 0.125rem 0 0 0 !important; /* Alinear con primera línea */
    padding: 0 !important;
    border: 2px solid var(--border-color, #e4e4e7);
    border-radius: 0.25rem;
    background: #fff;
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.woocommerce-checkout-payment input[type="checkbox"]:checked,
.cr-customer-consent input[type="checkbox"]:checked,
#privacy_policy_field input[type="checkbox"]:checked,
.woocommerce-form__input-checkbox:checked {
    background-color: var(--theme-primary, #2563eb);
    border-color: var(--theme-primary, #2563eb);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3E%3C/svg%3E");
    background-size: 100%;
    background-position: center;
    background-repeat: no-repeat;
}

.woocommerce-checkout-payment input[type="checkbox"]:focus-visible,
.cr-customer-consent input[type="checkbox"]:focus-visible,
#privacy_policy_field input[type="checkbox"]:focus-visible {
    outline: 2px solid var(--theme-primary, #2563eb);
    outline-offset: 2px;
}

/* Texto del checkbox ocupa el resto */
.woocommerce-checkout-payment label span,
.cr-customer-consent label span,
#privacy_policy_field label span,
.woocommerce-form__label-for-checkbox span,
.woocommerce-terms-and-conditions-checkbox-text span {
    flex: 1;
    min-width: 0;
}

/* Asterisco obligatorio */
.required,
abbr.required,
span.required,
abbr[title="required"] {
    display: inline !important;
    white-space: nowrap !important;
    color: #dc2626 !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-checkout-payment label span,
.woocommerce-terms-and-conditions-checkbox-text span,
.woocommerce-form__label-for-checkbox span {
    word-break: normal;
    overflow-wrap: break-word;
}

.woocommerce-checkout-payment label span .required::before,
.woocommerce-terms-and-conditions-checkbox-text .required::before {
    content: none !important;
}

.woocommerce-checkout-payment label span,
.woocommerce-terms-and-conditions-checkbox-text span {
    word-spacing: normal;
}

.woocommerce-checkout-payment a + .required,
.woocommerce-checkout-payment a + abbr.required,
.woocommerce-terms-and-conditions-checkbox-text a + .required {
    margin-left: 0 !important;
}

.woocommerce-checkout-payment label a,
.woocommerce-terms-and-conditions-checkbox-text a,
.cr-customer-consent label a {
    white-space: normal;
    word-break: break-word;
}

.woocommerce-checkout-payment .required,
.woocommerce-checkout-payment abbr.required,
.cr-customer-consent .required {
    display: inline !important;
    margin-left: 0.125em !important;
    white-space: nowrap !important;
}

/* ========================================
   BOTÓN CONFIRMAR COMPRA
   ======================================== */

.place-order {
    padding: var(--spacing-lg, 1.5rem);
    margin-top: var(--spacing-md, 1rem);
    background-color: var(--theme-secondary-light, #f8f9fa);
    border-top: 1px solid var(--border-color, #e4e4e7);
}

#place_order,
button#place_order {
    display: block;
    width: 100%;
    padding: var(--spacing-md, 1rem) var(--spacing-lg, 1.5rem);
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    text-align: center;
    background-color: var(--theme-primary, #2563eb);
    color: #fff;
    border: none;
    border-radius: var(--border-radius-md, 0.5rem);
    cursor: pointer;
    transition: background-color 0.15s ease, transform 0.1s ease;
}

#place_order:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
}

#place_order:active {
    transform: scale(0.99);
}

#place_order:disabled {
    background-color: var(--theme-text-light, #666);
    cursor: not-allowed;
    opacity: 0.7;
}

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

@media (max-width: 767px) {
    /* Métodos de pago en móvil */
    .wc_payment_method > label {
        flex-wrap: wrap;
        padding: 0.875rem 0.75rem 0.875rem 2.25rem !important;
    }

    .wc_payment_method > label::before {
        left: 0.75rem;
    }

    .wc_payment_method > label > span {
        white-space: normal; /* Permitir wrap en móvil si es necesario */
    }

    .wc_payment_method > label img {
        max-height: 20px;
        max-width: 80px;
    }

    .payment_box {
        margin: 0 0.75rem 0.75rem 2.25rem !important;
    }

    /* Checkboxes en móvil */
    .woocommerce-checkout-payment > p,
    .woocommerce-checkout-payment > div,
    .woocommerce-checkout-payment .form-row,
    .woocommerce-checkout-payment .cr-customer-consent,
    #privacy_policy_field {
        padding: 0.625rem 0.75rem !important;
    }

    .woocommerce-terms-and-conditions-wrapper > * {
        padding: 0.625rem 0.75rem !important;
    }

    /* SeQura móvil */
    .wc_payment_method.payment_method_sequra > label {
        padding: 0.875rem 0.75rem 0.875rem 2.25rem !important;
    }

    .wc_payment_method.payment_method_sequra div.sq_payment_method {
        padding: 0.875rem 0.75rem 0.875rem 2.25rem !important;
        flex-wrap: wrap;
    }

    .wc_payment_method.payment_method_sequra div.sq_payment_method > input[type="radio"],
    .wc_payment_method.payment_method_sequra input.sq-input-radio {
        left: 0.75rem;
    }

    .wc_payment_method.payment_method_sequra label.sq_payment_method > img {
        max-height: 24px;
    }

    .wc_payment_method.payment_method_sequra .sq_payment_method_cost {
        width: 100%;
        margin-left: 0;
        margin-top: 0.25rem;
        text-align: left;
    }

    .payment_method_sequra .payment_box {
        margin: 0 0.75rem 0.75rem 2.25rem !important;
    }
}

/* ========================================
   BILLING SUMMARY (OIDC collapsible card)
   ======================================== */

.climazona-billing-summary {
    padding: 1.25rem;
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    background: #fff;
    margin-bottom: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.climazona-billing-summary > .climazona-notice {
    margin-bottom: 0;
}

.climazona-billing-summary .ck-field--missing input,
.climazona-billing-summary .ck-field--missing select,
.climazona-billing-summary .ck-field--missing textarea {
    border-color: var(--color-error, #ef4444);
    box-shadow: 0 0 0 1px var(--color-error, #ef4444);
}

.climazona-billing-summary__content {
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.6;
    color: var(--theme-text, #333);
}

.climazona-billing-summary__name {
    font-weight: var(--font-weight-semibold, 600);
}

.climazona-billing-summary__company {
    color: var(--theme-text, #333);
}

.climazona-billing-summary__email,
.climazona-billing-summary__phone {
    color: var(--theme-text-light, #666);
}

.climazona-billing-summary__address,
.climazona-billing-summary__location {
    color: var(--theme-text-light, #666);
    margin-top: 0.25rem;
}

.climazona-billing-summary__form-slot {
    width: 100%;
}

.climazona-billing-summary__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.climazona-billing-summary__edit-btn {
    padding: 0.375rem 0.875rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--theme-primary, #2563eb);
    background: transparent;
    border: 1px solid var(--theme-primary, #2563eb);
    border-radius: var(--border-radius-sm, 0.375rem);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.climazona-billing-summary__edit-btn:hover {
    background-color: var(--theme-primary, #2563eb);
    color: #fff;
}

.climazona-billing-summary__save-btn {
    padding: 0.375rem 0.875rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: #fff;
    background-color: var(--theme-primary, #2563eb);
    border: 1px solid var(--theme-primary, #2563eb);
    border-radius: var(--border-radius-sm, 0.375rem);
    cursor: pointer;
    transition: background-color 0.15s ease;
    white-space: nowrap;
}

.climazona-billing-summary__save-btn:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
    border-color: var(--theme-primary-dark, #1d4ed8);
}

.climazona-billing-summary__cancel-btn {
    padding: 0.375rem 0.875rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--theme-text-light, #666);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--border-radius-sm, 0.375rem);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.climazona-billing-summary__cancel-btn:hover {
    background-color: var(--theme-secondary-light, #f8f9fa);
    color: var(--theme-text, #333);
}

/* ========================================
   READONLY FIELDS (identity fields)
   ======================================== */

.climazona-readonly input[readonly],
.climazona-readonly select[readonly],
.climazona-readonly textarea[readonly] {
    opacity: 0.65 !important;
    cursor: not-allowed !important;
    background-color: var(--theme-secondary-light, #f8f9fa) !important;
}

.climazona-readonly select[readonly] {
    pointer-events: none;
}

/* ========================================
   NOTICES (checkout informational)
   ======================================== */

.climazona-notice {
    padding: 0.875rem 1rem;
    border-radius: var(--border-radius-md, 0.5rem);
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.5;
    margin-bottom: 1.5rem;
}

.climazona-notice p {
    margin: 0;
}

.climazona-notice--info {
    background-color: var(--theme-primary-light, #dbeafe);
    border-left: 3px solid var(--theme-primary, #2563eb);
    color: var(--theme-text, #333);
}

.climazona-notice--subtle {
    background-color: var(--theme-secondary-light, #f8f9fa);
    border-left: 3px solid var(--border-color, #e4e4e7);
    color: var(--theme-text-light, #666);
}

.climazona-notice--warning {
    background-color: var(--color-warning-light, #fef3c7);
    border-left: 3px solid var(--color-warning, #f59e0b);
    color: var(--foreground, #09090b);
}

.climazona-notice a {
    font-weight: var(--font-weight-medium, 500);
    white-space: nowrap;
}

/* ── Email verification banner ── */

.climazona-checkout-verify__hint {
    margin-top: 0.25rem;
    font-size: var(--font-size-xs, 0.8125rem);
    color: var(--muted-foreground, #71717a);
}

.climazona-thankyou-verify {
    margin-top: 1.5rem;
}

/* ── Shared button (subset used by verification banners) ── */

.climazona-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    height: 2.25rem;
    padding: 0.5rem 1rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    line-height: var(--line-height-normal, 1.5);
    border-radius: var(--border-radius-sm, 0.375rem);
    cursor: pointer;
    border: 1px solid transparent;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease),
                color var(--transition-base, 0.2s ease),
                box-shadow var(--transition-base, 0.2s ease);
}

.climazona-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--background, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.climazona-btn:disabled {
    opacity: 0.5;
    pointer-events: none;
}

.climazona-btn--outline {
    background-color: transparent;
    color: var(--foreground, #09090b);
    border-color: var(--border-color, #e4e4e7);
}

.climazona-btn--outline:hover:not(:disabled) {
    background-color: var(--accent, #f4f4f5);
}

.climazona-btn--sm {
    height: 1.75rem;
    padding: 0.125rem 0.625rem;
    font-size: var(--font-size-xs, 0.75rem);
}

/* ========================================
   ADDRESS SELECTOR CARDS (from checkout-address-selector.php)
   ======================================== */

.climazona-shipping-title {
    font-size: var(--font-size-lg, 1.25rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--theme-text, #333);
    margin: 0 0 var(--spacing-md, 1rem);
    padding-bottom: var(--spacing-sm, 0.5rem);
    border-bottom: 2px solid var(--theme-primary, #2563eb);
}

/* ========================================
   SHIPPING DROPDOWN SELECTOR
   ======================================== */

.climazona-shipping-selector {
    margin-bottom: 1.5rem;
}

.climazona-shipping-select {
    width: 100%;
    padding: 0.625rem 0.875rem;
    font-size: var(--font-size-sm, 0.875rem);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    background: #fff;
    color: var(--theme-text, #333);
    cursor: pointer;
    line-height: 1.5;
}

.climazona-shipping-select:focus {
    outline: none;
    border-color: var(--theme-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.climazona-shipping-selector__info {
    display: block;
    margin-top: 0.75rem;
    font-size: 0.75rem;
    color: var(--theme-text-light, #999);
}

/* ========================================
   SHIPPING SAVE BUTTON (checkout)
   ======================================== */

.climazona-shipping-save {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-color, #e4e4e7);
}

.climazona-shipping-save__btn {
    font-size: var(--font-size-sm, 0.875rem);
    white-space: nowrap;
}

.climazona-shipping-save__status {
    font-size: 0.8125rem;
}

.climazona-shipping-save__status--ok {
    color: var(--theme-success, #16a34a);
}

.climazona-shipping-save__status--error {
    color: var(--theme-danger, #dc2626);
}

/* ========================================
   ADDRESS SELECTOR RESPONSIVE
   ======================================== */

@media (max-width: 480px) {
    .climazona-billing-summary__actions {
        justify-content: flex-start;
    }
}

/* ========================================
   GUEST CHECKOUT BANNER
   ======================================== */

.climazona-guest-banner {
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    background: var(--card, #fff);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.5rem;
}

.climazona-guest-banner__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.climazona-guest-banner__text {
    margin: 0;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    color: var(--foreground, #09090b);
}

.climazona-guest-banner__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.climazona-guest-banner__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    border-radius: var(--border-radius-sm, 0.375rem);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--transition-base, 0.2s ease),
                color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease);
    line-height: var(--line-height-normal, 1.5);
    cursor: pointer;
}

.climazona-guest-banner__btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--card, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.climazona-guest-banner__btn--primary {
    background-color: var(--theme-primary, #2563eb);
    color: #fff;
    border: 1px solid var(--theme-primary, #2563eb);
}

.climazona-guest-banner__btn--primary:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
    border-color: var(--theme-primary-dark, #1d4ed8);
    color: #fff;
}

.climazona-guest-banner__btn--secondary {
    background: transparent;
    color: var(--foreground, #09090b);
    border: 1px solid var(--border-color, #e4e4e7);
}

.climazona-guest-banner__btn--secondary:hover {
    background-color: var(--accent, #f4f4f5);
    border-color: var(--border-color, #e4e4e7);
}

.climazona-guest-banner__guest-note {
    margin: 0.25rem 0 0;
    font-size: var(--font-size-xs, 0.75rem);
    color: var(--muted-foreground, #71717a);
    line-height: 1.4;
}

/* Hide native WC "Crear una cuenta?" checkbox (hidden by PHP when OIDC is active) */
.climazona-hide-create-account .woocommerce-account-fields {
    display: none !important;
}

@media (max-width: 480px) {
    .climazona-guest-banner {
        padding: 1rem;
    }

    .climazona-guest-banner__main {
        flex-direction: column;
        align-items: flex-start;
    }

    .climazona-guest-banner__actions {
        width: 100%;
    }

    .climazona-guest-banner__btn {
        flex: 1;
    }
}

/* ═══════════════════════════════════════════════════════════════════
 * Inline Login & Registration Forms (checkout + my-account)
 * Aligned to shadcn/ui Input, Label, Button, Alert patterns.
 * ═══════════════════════════════════════════════════════════════════ */

.climazona-login-form,
.climazona-register-form {
    background: var(--card, #fff);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

/* ── Header ── */

.climazona-login-form__header h3,
.climazona-register-form__header h3 {
    margin: 0 0 0.25rem;
    font-size: var(--font-size-lg, 1.25rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
}

.climazona-login-form__subtitle,
.climazona-register-form__subtitle {
    color: var(--muted-foreground, #71717a);
    font-size: var(--font-size-sm, 0.875rem);
    margin: 0 0 1.25rem;
    line-height: var(--line-height-normal, 1.5);
}

/* ── Form rows ── */

.climazona-login-form__row,
.climazona-register-form__row {
    margin-bottom: 1rem;
}

.climazona-register-form__row--half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

/* ── Labels (shadcn Label) ── */

.climazona-login-form__field label,
.climazona-register-form__field label {
    display: block;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    margin-bottom: 0.375rem;
    color: var(--foreground, #09090b);
    line-height: var(--line-height-normal, 1.5);
}

.climazona-login-form__field label abbr,
.climazona-register-form__field label abbr {
    color: var(--color-error, #ef4444);
    text-decoration: none;
}

/* ── Inputs (shadcn Input) ── */

.climazona-login-form__field input,
.climazona-register-form__field input {
    width: 100%;
    height: 2.5rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--input, #e4e4e7);
    border-radius: var(--border-radius-sm, 0.375rem);
    font-size: var(--font-size-sm, 0.875rem);
    font-family: inherit;
    line-height: var(--line-height-normal, 1.5);
    background: transparent;
    color: var(--foreground, #09090b);
    transition: border-color var(--transition-base, 0.2s ease),
                box-shadow var(--transition-base, 0.2s ease);
}

.climazona-login-form__field input::placeholder,
.climazona-register-form__field input::placeholder {
    color: var(--muted-foreground, #71717a);
}

.climazona-login-form__field input:focus,
.climazona-register-form__field input:focus {
    outline: none;
    border-color: var(--input-focus, var(--ring, #2563eb));
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--card, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.climazona-login-form__field input.climazona-field--error,
.climazona-register-form__field input.climazona-field--error {
    border-color: var(--color-error, #ef4444);
}

.climazona-login-form__field input.climazona-field--error:focus,
.climazona-register-form__field input.climazona-field--error:focus {
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--card, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--color-error, #ef4444);
}

/* ── Field errors ── */

.climazona-field-error {
    display: none;
    color: var(--color-error, #ef4444);
    font-size: var(--font-size-xs, 0.75rem);
    margin-top: 0.375rem;
    line-height: var(--line-height-snug, 1.375);
}

/* ── Password strength rules ── */

.climazona-password-rules {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.125rem 1rem;
}

.climazona-password-rules li {
    padding-left: 1.25rem;
    position: relative;
    font-size: var(--font-size-xs, 0.75rem);
    line-height: 1.75;
    color: var(--muted-foreground, #71717a);
    transition: color var(--transition-base, 0.2s ease);
}

.climazona-password-rules li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.375rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    border: 1.5px solid var(--border-color, #e4e4e7);
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease);
}

.climazona-password-rules li.valid {
    color: var(--color-success, #22c55e);
}

.climazona-password-rules li.valid::before {
    background-color: var(--color-success, #22c55e);
    border-color: var(--color-success, #22c55e);
}

.climazona-password-rules li.invalid {
    color: var(--color-error, #ef4444);
}

.climazona-password-rules li.invalid::before {
    background-color: var(--color-error, #ef4444);
    border-color: var(--color-error, #ef4444);
}

/* ── Terms & Privacy checkbox ── */

.climazona-register-form__terms {
    margin-top: 0.25rem;
}

.climazona-register-form__checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    cursor: pointer;
    font-size: var(--font-size-xs, 0.75rem);
    color: var(--muted-foreground, #71717a);
    line-height: var(--line-height-normal, 1.5);
}

.climazona-register-form__checkbox {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    margin-top: 0.125rem;
    accent-color: var(--theme-primary, #2563eb);
    cursor: pointer;
}

.climazona-register-form__checkbox.climazona-field--error {
    outline: 2px solid var(--color-error, #ef4444);
    outline-offset: 1px;
    border-radius: 2px;
}

.climazona-register-form__checkbox-label a {
    color: var(--foreground, #09090b);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-color: var(--border-color, #e4e4e7);
    transition: text-decoration-color var(--transition-base, 0.2s ease);
}

.climazona-register-form__checkbox-label a:hover {
    text-decoration-color: var(--foreground, #09090b);
}

.climazona-register-form__terms .climazona-field-error {
    margin-left: 1.5rem;
}

/* ── Forgot password link ── */

.climazona-login-form__forgot {
    margin: -0.25rem 0 0;
    text-align: right;
}

.climazona-login-form__forgot a {
    color: var(--muted-foreground, #71717a);
    font-size: var(--font-size-xs, 0.75rem);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-color, #e4e4e7);
    transition: color var(--transition-base, 0.2s ease),
                text-decoration-color var(--transition-base, 0.2s ease);
}

.climazona-login-form__forgot a:hover {
    color: var(--foreground, #09090b);
    text-decoration-color: var(--muted-foreground, #71717a);
}

/* ── Actions ── */

.climazona-login-form__actions,
.climazona-register-form__actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.climazona-login-form__submit,
.climazona-register-form__submit {
    width: 100%;
    height: 2.75rem;
    padding: 0 1.25rem;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    font-family: inherit;
    border: none;
    border-radius: var(--border-radius-md, 0.5rem);
    background-color: var(--theme-primary, #2563eb);
    color: var(--theme-text-on-primary, #fff);
    cursor: pointer;
    transition: background-color var(--transition-base, 0.2s ease);
}

.climazona-login-form__submit:hover,
.climazona-register-form__submit:hover {
    background-color: var(--theme-primary-dark, #1d4ed8);
}

.climazona-login-form__submit:focus-visible,
.climazona-register-form__submit:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset, 2px) var(--card, #fff),
                0 0 0 calc(var(--ring-offset, 2px) + 2px) var(--ring, #2563eb);
}

.climazona-login-form__submit:disabled,
.climazona-register-form__submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.climazona-login-form__cancel,
.climazona-register-form__cancel {
    background: none;
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-sm, 0.375rem);
    color: var(--foreground, #09090b);
    cursor: pointer;
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-medium, 500);
    font-family: inherit;
    text-decoration: none;
    padding: 0.5rem 1rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color var(--transition-base, 0.2s ease),
                border-color var(--transition-base, 0.2s ease);
}

.climazona-login-form__cancel:hover,
.climazona-register-form__cancel:hover {
    background-color: var(--accent, #f4f4f5);
}

/* ── Status messages (shadcn Alert) ── */

.climazona-login-form__status,
.climazona-register-form__status {
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--border-radius-sm, 0.375rem);
    font-size: var(--font-size-sm, 0.875rem);
    line-height: var(--line-height-normal, 1.5);
    border: 1px solid transparent;
}

.climazona-login-form__status.success,
.climazona-register-form__status.success {
    background: var(--color-success-light, #dcfce7);
    color: var(--color-success-foreground, #166534);
    border-color: var(--color-success, #22c55e);
}

.climazona-login-form__status.error,
.climazona-register-form__status.error {
    background: var(--color-error-light, #fee2e2);
    color: var(--color-error-foreground, #991b1b);
    border-color: var(--color-error, #ef4444);
}

/* ── Form footer link ("already have account?" / "create account") ── */

.climazona-form-footer {
    text-align: center;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color, #e4e4e7);
}

.climazona-form-footer p {
    margin: 0;
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
}

.climazona-form-footer a {
    color: var(--foreground, #09090b);
    font-weight: var(--font-weight-medium, 500);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-color, #e4e4e7);
    transition: text-decoration-color var(--transition-base, 0.2s ease);
}

.climazona-form-footer a:hover {
    text-decoration-color: var(--foreground, #09090b);
}

/* ── Responsive ── */

@media (max-width: 600px) {
    .climazona-login-form,
    .climazona-register-form {
        padding: 1.25rem;
    }

    .climazona-register-form__row--half {
        grid-template-columns: 1fr;
    }

    .climazona-password-rules {
        grid-template-columns: 1fr;
    }
}

/* ═══════════════════════════════════════════════════════════════════
 * THANK-YOU / ORDER RECEIVED PAGE
 * .woocommerce-order-received body class — loaded via checkout.css
 * Aligned to shadcn/ui Card, Table, Badge, Alert patterns.
 * ═══════════════════════════════════════════════════════════════════ */

/* ── Container ── */

.woocommerce-order-received .woocommerce-order {
    max-width: 48rem;
    margin: 0 auto;
    padding: 2rem 0;
}

/* ── Success notice ── */

.woocommerce-order-received .woocommerce-notice--success.woocommerce-thankyou-order-received {
    background: var(--color-success-light, #dcfce7);
    color: var(--color-success-foreground, #166534);
    border: 1px solid color-mix(in srgb, var(--color-success, #22c55e) 30%, transparent);
    border-radius: var(--border-radius-md, 0.5rem);
    padding: 1rem 1.25rem;
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    margin: 0 0 1.5rem;
}

/* ── Order overview strip ── */

.woocommerce-order-received .woocommerce-order-overview {
    list-style: none;
    margin: 0 0 2rem;
    padding: 1.25rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    background: var(--card, #fff);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
}

.woocommerce-order-received .woocommerce-order-overview li {
    flex: 1 1 auto;
    padding: 0.5rem 1rem;
    border-right: 1px solid var(--border-color, #e4e4e7);
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
    line-height: 1.5;
}

.woocommerce-order-received .woocommerce-order-overview li:last-child {
    border-right: none;
}

.woocommerce-order-received .woocommerce-order-overview li strong {
    display: block;
    color: var(--foreground, #09090b);
    font-weight: var(--font-weight-semibold, 600);
    margin-top: 0.125rem;
}

/* ── BACS bank transfer instructions ── */

.woocommerce-order-received .woocommerce-order > p,
.woocommerce-order-received .woocommerce-order > h3,
.woocommerce-order-received .woocommerce-order > ul {
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.6;
    color: var(--foreground, #09090b);
}

.woocommerce-order-received .woocommerce-order > p {
    margin: 0 0 0.75rem;
}

.woocommerce-order-received .woocommerce-order > h3 {
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    margin: 1.5rem 0 0.5rem;
}

.woocommerce-order-received .woocommerce-order > ul:not(.woocommerce-order-overview) {
    margin: 0 0 0.75rem;
    padding-left: 1.25rem;
}

.woocommerce-order-received .woocommerce-order > ul:not(.woocommerce-order-overview) li {
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.75;
    color: var(--foreground, #09090b);
}

.woocommerce-order-received .woocommerce-order > p a {
    color: var(--theme-primary, #2563eb);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: color-mix(in srgb, var(--theme-primary, #2563eb) 40%, transparent);
    transition: text-decoration-color var(--transition-base, 0.2s ease);
}

.woocommerce-order-received .woocommerce-order > p a:hover {
    text-decoration-color: var(--theme-primary, #2563eb);
}

/* BACS bank details section */

.woocommerce-order-received .woocommerce-bacs-bank-details {
    background: var(--muted, #f4f4f5);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    padding: 1.25rem 1.5rem;
    margin: 1.5rem 0 2rem;
}

.woocommerce-order-received .wc-bacs-bank-details-heading {
    font-size: var(--font-size-base, 1rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--border-color, #e4e4e7);
}

.woocommerce-order-received .wc-bacs-bank-details-account-name {
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--foreground, #09090b);
    margin: 1rem 0 0.375rem;
}

.woocommerce-order-received .wc-bacs-bank-details-account-name:first-of-type {
    margin-top: 0;
}

.woocommerce-order-received .wc-bacs-bank-details {
    list-style: none;
    padding: 0;
    margin: 0 0 0.75rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1.5rem;
}

.woocommerce-order-received .wc-bacs-bank-details li {
    font-size: var(--font-size-sm, 0.875rem);
    color: var(--muted-foreground, #71717a);
    line-height: 1.5;
}

.woocommerce-order-received .wc-bacs-bank-details li strong {
    color: var(--foreground, #09090b);
    font-weight: var(--font-weight-medium, 500);
}

/* ── Order details table ── */

.woocommerce-order-received .woocommerce-order-details {
    margin: 2rem 0;
}

.woocommerce-order-received .woocommerce-order-details__title {
    font-size: var(--font-size-lg, 1.25rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 1rem;
}

.woocommerce-order-received .woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    overflow: hidden;
    font-size: var(--font-size-sm, 0.875rem);
}

.woocommerce-order-received .woocommerce-table--order-details thead {
    background: var(--muted, #f4f4f5);
}

.woocommerce-order-received .woocommerce-table--order-details thead th {
    padding: 0.75rem 1rem;
    font-weight: var(--font-weight-medium, 500);
    color: var(--muted-foreground, #71717a);
    text-align: left;
    border-bottom: 1px solid var(--border-color, #e4e4e7);
    font-size: var(--font-size-xs, 0.75rem);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--border-color, #e4e4e7);
    color: var(--foreground, #09090b);
    vertical-align: top;
}

.woocommerce-order-received .woocommerce-table--order-details tbody tr:last-child td {
    border-bottom: none;
}

.woocommerce-order-received .woocommerce-table--order-details tbody td.product-name a {
    color: var(--foreground, #09090b);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--border-color, #e4e4e7);
    transition: text-decoration-color var(--transition-base, 0.2s ease);
}

.woocommerce-order-received .woocommerce-table--order-details tbody td.product-name a:hover {
    text-decoration-color: var(--foreground, #09090b);
}

.woocommerce-order-received .woocommerce-table--order-details .product-quantity {
    color: var(--muted-foreground, #71717a);
    font-weight: var(--font-weight-normal, 400);
}

.woocommerce-order-received .woocommerce-table--order-details .product-total {
    text-align: right;
    white-space: nowrap;
}

.woocommerce-order-received .woocommerce-table--order-details thead th.product-total {
    text-align: right;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot th {
    padding: 0.625rem 1rem;
    font-weight: var(--font-weight-medium, 500);
    color: var(--muted-foreground, #71717a);
    text-align: left;
    font-size: var(--font-size-sm, 0.875rem);
}

.woocommerce-order-received .woocommerce-table--order-details tfoot td {
    padding: 0.625rem 1rem;
    text-align: right;
    color: var(--foreground, #09090b);
    font-size: var(--font-size-sm, 0.875rem);
}

.woocommerce-order-received .woocommerce-table--order-details tfoot tr {
    border-top: 1px solid var(--border-color, #e4e4e7);
}

.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order-received .woocommerce-table--order-details tfoot tr:last-child td {
    font-weight: var(--font-weight-semibold, 600);
    font-size: var(--font-size-base, 1rem);
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
}

.woocommerce-order-received .woocommerce-table--order-details tfoot small.includes_tax {
    display: block;
    font-size: var(--font-size-xs, 0.75rem);
    font-weight: var(--font-weight-normal, 400);
    color: var(--muted-foreground, #71717a);
    margin-top: 0.125rem;
}

/* ── Customer details (billing + shipping addresses) ── */

.woocommerce-order-received .woocommerce-customer-details {
    margin: 2rem 0;
}

.woocommerce-order-received .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin: 0;
}

.woocommerce-order-received .woocommerce-columns--addresses .woocommerce-column {
    background: var(--card, #fff);
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    padding: 1.25rem;
}

.woocommerce-order-received .woocommerce-column__title {
    font-size: var(--font-size-sm, 0.875rem);
    font-weight: var(--font-weight-semibold, 600);
    letter-spacing: var(--tracking-tight, -0.025em);
    color: var(--foreground, #09090b);
    margin: 0 0 0.75rem;
    padding-bottom: 0.625rem;
    border-bottom: 1px solid var(--border-color, #e4e4e7);
}

.woocommerce-order-received .woocommerce-customer-details address {
    font-style: normal;
    font-size: var(--font-size-sm, 0.875rem);
    line-height: 1.75;
    color: var(--foreground, #09090b);
}

.woocommerce-order-received .woocommerce-customer-details--phone,
.woocommerce-order-received .woocommerce-customer-details--email {
    margin: 0.5rem 0 0;
    color: var(--muted-foreground, #71717a);
    font-size: var(--font-size-sm, 0.875rem);
}

/* ── Address CTA banner ── */

.woocommerce-order-received .climazona-thankyou-address-cta {
    background: var(--muted, #f4f4f5) !important;
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem) !important;
    padding: 1rem 1.25rem !important;
    margin: 1.5rem 0 !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.woocommerce-order-received .climazona-thankyou-address-cta p {
    margin: 0 !important;
    font-size: var(--font-size-sm, 0.875rem) !important;
    color: var(--muted-foreground, #71717a);
    line-height: 1.5;
}

/* ── Additional info table (DNI, Factura) ── */

.woocommerce-order-received .shop_table.additional_info {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--border-color, #e4e4e7);
    border-radius: var(--border-radius-md, 0.5rem);
    overflow: hidden;
    font-size: var(--font-size-sm, 0.875rem);
    margin: 0 0 2rem;
}

.woocommerce-order-received .shop_table.additional_info th {
    padding: 0.625rem 1rem;
    font-weight: var(--font-weight-medium, 500);
    color: var(--muted-foreground, #71717a);
    text-align: left;
    background: var(--muted, #f4f4f5);
    border-bottom: 1px solid var(--border-color, #e4e4e7);
    width: 35%;
}

.woocommerce-order-received .shop_table.additional_info td {
    padding: 0.625rem 1rem;
    color: var(--foreground, #09090b);
    border-bottom: 1px solid var(--border-color, #e4e4e7);
}

.woocommerce-order-received .shop_table.additional_info tr:last-child th,
.woocommerce-order-received .shop_table.additional_info tr:last-child td {
    border-bottom: none;
}

/* ── Thank-you page responsive ── */

@media (max-width: 767px) {
    .woocommerce-order-received .woocommerce-order {
        padding: 1.5rem 0;
    }

    .woocommerce-order-received .woocommerce-order-overview {
        flex-direction: column;
        gap: 0;
    }

    .woocommerce-order-received .woocommerce-order-overview li {
        border-right: none;
        border-bottom: 1px solid var(--border-color, #e4e4e7);
        padding: 0.625rem 1rem;
        display: flex;
        justify-content: space-between;
        align-items: baseline;
    }

    .woocommerce-order-received .woocommerce-order-overview li:last-child {
        border-bottom: none;
    }

    .woocommerce-order-received .woocommerce-order-overview li strong {
        display: inline;
        margin-top: 0;
    }

    .woocommerce-order-received .woocommerce-columns--addresses {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .woocommerce-order-received .woocommerce-bacs-bank-details {
        padding: 1rem 1.25rem;
    }

    .woocommerce-order-received .wc-bacs-bank-details {
        flex-direction: column;
        gap: 0.125rem;
    }

    .woocommerce-order-received .climazona-thankyou-address-cta {
        flex-direction: column;
        align-items: flex-start;
    }

    /* Order details table mobile card layout */
    .woocommerce-order-received .woocommerce-table--order-details thead {
        display: none;
    }

    .woocommerce-order-received .woocommerce-table--order-details tbody tr {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: baseline;
        padding: 0.75rem 1rem;
        border-bottom: 1px solid var(--border-color, #e4e4e7);
    }

    .woocommerce-order-received .woocommerce-table--order-details tbody tr:last-child {
        border-bottom: none;
    }

    .woocommerce-order-received .woocommerce-table--order-details tbody td {
        padding: 0;
        border-bottom: none;
    }

    .woocommerce-order-received .woocommerce-table--order-details tbody td.product-name {
        flex: 1 1 0;
        min-width: 0;
    }

    .woocommerce-order-received .woocommerce-table--order-details tbody td.product-total {
        flex: 0 0 auto;
        text-align: right;
        padding-left: 0.75rem;
    }

    .woocommerce-order-received .woocommerce-table--order-details tfoot th,
    .woocommerce-order-received .woocommerce-table--order-details tfoot td {
        padding: 0.5rem 1rem;
    }
}

/* ========================================
   FLUORINATED GASES — consent + drawer (ck-fg-*)
   ======================================== */

.ck-fg-consent .ck-fg-consent__trigger {
    display: inline;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--theme-primary, var(--ring));
    font: inherit;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ck-fg-consent .ck-fg-consent__trigger:hover {
    text-decoration-thickness: 2px;
}

.ck-fg-consent .ck-fg-consent__trigger:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--ring-offset) var(--background),
                0 0 0 calc(var(--ring-offset) + 2px) var(--ring);
    border-radius: var(--border-radius-sm);
}

.ck-fg-drawer__section-title {
    margin: var(--spacing-lg) 0 var(--spacing-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--foreground);
    letter-spacing: var(--tracking-tight);
}

.ck-fg-drawer__list {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

.ck-fg-drawer__list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-sm);
}

.ck-fg-drawer__list-item + .ck-fg-drawer__list-item {
    border-top: 1px solid var(--border-color-light);
}

.ck-fg-drawer__list-name {
    flex: 1;
    min-width: 0;
}

.ck-fg-drawer__list-qty {
    flex-shrink: 0;
    padding: 0.125rem 0.625rem;
    background: var(--theme-primary-light, var(--muted));
    color: var(--theme-primary-dark, var(--foreground));
    border-radius: var(--border-radius-full);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
}