/* ================================================================
   FRØST · Shop · Cart + Checkout
   Hello Elementor Child Theme · WooCommerce Blocks
   ================================================================
   Este archivo solo se carga en /cart/ y /checkout/ (vía functions.php).
   No depende de templates PHP — pinta el DOM nativo de WC Blocks.
   ================================================================ */


/* ================================================================
   TOKENS DE MARCA — Solo dentro de cart/checkout
   ================================================================ */
body.woocommerce-cart,
body.woocommerce-checkout {
    --frost-navy-900: #0F2640;
    --frost-navy-700: #1B3A5C;
    --frost-ice-50:   #F4F7FA;
    --frost-ice-100:  #E5EBF0;
    --frost-ice-200:  #D5DEE7;
    --frost-slate-400: #8E97A4;
    --frost-slate-500: #6B7785;
    --frost-slate-700: #3D4854;
    --frost-bone:     #FAFAF7;
    --frost-accent:   #7FA3C4;
    --frost-ease:     cubic-bezier(0.4, 0, 0.2, 1);

    background: #ffffff;
    font-family: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: var(--frost-slate-700);
    -webkit-font-smoothing: antialiased;
}


/* ================================================================
   ROMPER MAX-WIDTH DEL THEME PADRE (Hello Elementor 800px)
   ================================================================ */
body.woocommerce-cart .site-main,
body.woocommerce-cart .page-content,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout .page-content,
body.woocommerce-checkout .woocommerce {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* ================================================================
   PAGE HERO — Título grande FRØST
   ================================================================ */
body.woocommerce-cart h1.entry-title,
body.woocommerce-checkout h1.entry-title {
    font-family: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif !important;
    font-size: clamp(40px, 4.5vw, 56px) !important;
    font-weight: 200 !important;
    color: var(--frost-navy-900) !important;
    letter-spacing: -0.03em !important;
    line-height: 1 !important;
    margin: 48px 0 36px !important;
    padding: 0 !important;
    max-width: 1280px;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 56px !important;
    padding-right: 56px !important;
}


/* ================================================================
   WRAPPER GENERAL — Layout 2 columnas (CSS Grid forzado)
   ================================================================
   WC Blocks usa flex+wrap por default. Si los anchos suman más que el
   container, el sidebar baja a una nueva fila (1 columna). Forzamos
   CSS Grid para garantizar 2 columnas exactas en desktop.
*/
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    max-width: 1280px;
    margin: 0 auto 80px !important;
    padding: 0 56px !important;
}

body.woocommerce-cart .wc-block-cart,
body.woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    flex-wrap: nowrap !important;
    gap: 64px !important;
    align-items: start !important;
}

body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    width: auto !important;
    min-width: 0 !important;
    flex: none !important;
    max-width: none !important;
}

/* WC Blocks aplica un border propio al wrapper interno del sidebar
   en checkout (.wp-block-woocommerce-checkout-order-summary-block).
   Lo neutralizamos para que solo el sidebar exterior tenga el card. */
body.woocommerce-checkout .wc-block-checkout__sidebar > div,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
body.woocommerce-checkout .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-cart-items-block,
body.woocommerce-checkout .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-totals-block {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
}


/* ================================================================
   CART · ITEMS LIST
   ================================================================ */

/* Eliminar header de la tabla "PRODUCT / TOTAL" del WC default */
body.woocommerce-cart .wc-block-cart-items thead {
    display: none !important;
}

/* Border top inicial sobre los items */
body.woocommerce-cart .wc-block-cart-items {
    border-top: 1px solid var(--frost-ice-100) !important;
    margin: 0 !important;
}

/* Cada fila de item */
body.woocommerce-cart .wc-block-cart-items__row {
    padding: 28px 0 !important;
    border-bottom: 1px solid var(--frost-ice-100) !important;
    align-items: center !important;
}

body.woocommerce-cart .wc-block-cart-items__row td {
    padding: 0 !important;
    vertical-align: top !important;
}

/* Imagen del producto
   IMPORTANTE: padding-right en un <td> NO genera gap entre celdas
   (el padding queda DENTRO del td). El gap real lo damos con
   padding-left en la celda __product. */
body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__image {
    width: 96px !important;
    padding: 0 !important;
    vertical-align: top !important;
}

body.woocommerce-cart .wc-block-cart-item__image img {
    width: 96px !important;
    height: 96px !important;
    object-fit: cover !important;
    border-radius: 4px !important;
    background: linear-gradient(135deg, var(--frost-ice-100), var(--frost-ice-200));
}

/* Celda central: producto (nombre, descripción, qty, remove)
   padding-left: 28px → ESTO crea el gap visible entre imagen y texto */
body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__product {
    padding: 4px 24px 0 28px !important;
    vertical-align: top !important;
}

body.woocommerce-cart .wc-block-cart-item__wrap {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

/* Ocultar el precio duplicado debajo del nombre — ya aparece en columna __total */
body.woocommerce-cart .wc-block-cart-item__prices {
    display: none !important;
}

/* Celda derecha: precio total de la línea */
body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__total {
    padding: 4px 0 0 0 !important;
    vertical-align: top !important;
    text-align: right !important;
}

/* Nombre del producto */
body.woocommerce-cart .wc-block-components-product-name {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: var(--frost-navy-900) !important;
    letter-spacing: -0.01em !important;
    text-decoration: none !important;
    margin: 0 0 4px !important;
    display: block;
    transition: color 0.3s var(--frost-ease);
}

body.woocommerce-cart .wc-block-components-product-name:hover {
    color: var(--frost-navy-700) !important;
}

/* Metadata del producto */
body.woocommerce-cart .wc-block-cart-item__product-metadata,
body.woocommerce-cart .wc-block-components-product-metadata {
    font-size: 12px !important;
    color: var(--frost-slate-500) !important;
    margin-bottom: 14px !important;
}

body.woocommerce-cart .wc-block-components-product-details__name {
    font-size: 12px !important;
    color: var(--frost-slate-500) !important;
}

/* Precio individual del item (línea) */
body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper,
body.woocommerce-cart .wc-block-cart-item__prices,
body.woocommerce-cart .wc-block-components-product-price {
    font-size: 18px !important;
    font-weight: 300 !important;
    color: var(--frost-navy-900) !important;
    letter-spacing: -0.01em !important;
}

/* Quantity selector */
body.woocommerce-cart .wc-block-components-quantity-selector {
    border: 1px solid var(--frost-ice-100) !important;
    border-radius: 2px !important;
    overflow: hidden;
    width: auto !important;
    display: inline-flex !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__button,
body.woocommerce-cart button.wc-block-components-quantity-selector__button {
    width: 32px !important;
    height: 32px !important;
    border: none !important;
    background: #ffffff !important;
    color: var(--frost-navy-900) !important;
    font-size: 14px !important;
    cursor: pointer;
    transition: background 0.2s var(--frost-ease);
}

body.woocommerce-cart .wc-block-components-quantity-selector__button:hover {
    background: var(--frost-ice-50) !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__input {
    width: 36px !important;
    height: 32px !important;
    border: none !important;
    border-left: 1px solid var(--frost-ice-100) !important;
    border-right: 1px solid var(--frost-ice-100) !important;
    background: #ffffff !important;
    text-align: center !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--frost-navy-900) !important;
}

/* Remove link */
body.woocommerce-cart .wc-block-cart-item__remove-link {
    color: var(--frost-slate-500) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    border-bottom: 1px solid transparent !important;
    padding-bottom: 1px;
    margin-left: 14px !important;
    transition: all 0.3s var(--frost-ease);
}

body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
    color: var(--frost-navy-900) !important;
    border-bottom-color: var(--frost-navy-900) !important;
}


/* ================================================================
   CART/CHECKOUT · SIDEBAR (Resumen / Totals)
   ================================================================ */
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    background: var(--frost-bone) !important;
    border: 1px solid var(--frost-ice-100) !important;
    border-radius: 4px !important;
    padding: 32px !important;
    position: sticky;
    top: 24px;
}

/* Título "Total del carrito" / "Resumen del pedido" */
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-heading-block,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block h2,
body.woocommerce-checkout .wc-block-checkout__sidebar h2 {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--frost-navy-900) !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    margin: 0 0 22px !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid var(--frost-ice-100) !important;
}

/* Filas de totales (subtotal, envío, etc.) */
body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-checkout .wc-block-components-totals-item {
    padding: 10px 0 !important;
    margin: 0 !important;
    font-size: 14px !important;
    border: none !important;
}

body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__label {
    color: var(--frost-slate-500) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
}

body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value {
    color: var(--frost-navy-900) !important;
    font-weight: 500 !important;
    font-size: 14px !important;
}

/* Total final destacado */
body.woocommerce-cart .wc-block-components-totals-footer-item,
body.woocommerce-checkout .wc-block-components-totals-footer-item {
    padding-top: 18px !important;
    margin-top: 12px !important;
    border-top: 1px solid var(--frost-ice-100) !important;
    border-bottom: none !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: 11px !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
    color: var(--frost-navy-900) !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 24px !important;
    font-weight: 200 !important;
    letter-spacing: -0.02em !important;
    color: var(--frost-navy-900) !important;
}

/* Coupon block */
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-checkout .wc-block-components-totals-coupon {
    padding: 12px 0 !important;
    border-bottom: 1px solid var(--frost-ice-100) !important;
    margin-bottom: 16px !important;
}

body.woocommerce-cart .wc-block-components-totals-coupon__button,
body.woocommerce-checkout .wc-block-components-totals-coupon__button {
    color: var(--frost-slate-500) !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    transition: color 0.3s var(--frost-ease);
}

body.woocommerce-cart .wc-block-components-totals-coupon__button:hover,
body.woocommerce-checkout .wc-block-components-totals-coupon__button:hover {
    color: var(--frost-navy-900) !important;
}


/* ================================================================
   BOTONES PRIMARIOS — "Proceder al pago" / "Realizar pedido"
   ================================================================ */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block .wc-block-components-button {
    width: 100% !important;
    background: var(--frost-navy-700) !important;
    color: #ffffff !important;
    border: none !important;
    padding: 18px 32px !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.24em !important;
    text-transform: uppercase !important;
    border-radius: 2px !important;
    cursor: pointer;
    text-decoration: none !important;
    margin-top: 24px !important;
    transition: all 0.4s var(--frost-ease) !important;
    height: auto !important;
    line-height: 1.4 !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block .wc-block-components-button:hover {
    background: var(--frost-navy-900) !important;
    transform: translateY(-1px);
}


/* ================================================================
   CHECKOUT · STEPS / SECCIONES
   ================================================================ */
body.woocommerce-checkout .wc-block-components-checkout-step {
    padding: 0 0 36px !important;
    margin-bottom: 36px !important;
    border: none !important;
    border-bottom: 1px solid var(--frost-ice-100) !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step:last-child {
    border-bottom: none !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__title {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--frost-navy-900) !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__heading {
    margin-bottom: 20px !important;
    padding-bottom: 0 !important;
    border: none !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step__container {
    padding: 0 !important;
    border: none !important;
}

body.woocommerce-checkout .wc-block-components-checkout-step::before,
body.woocommerce-checkout .wc-block-components-checkout-step::after {
    display: none !important;
}


/* ================================================================
   CHECKOUT · INPUTS (estilo underline FRØST)
   ================================================================ */
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-textarea {
    margin-bottom: 24px !important;
}

body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input textarea,
body.woocommerce-checkout .wc-block-components-textarea textarea,
body.woocommerce-checkout input.wc-block-components-text-input,
body.woocommerce-checkout textarea.wc-block-components-textarea {
    width: 100% !important;
    padding: 12px 0 !important;
    border: none !important;
    border-bottom: 1px solid var(--frost-ice-200) !important;
    background: transparent !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 15px !important;
    color: var(--frost-navy-900) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: border-color 0.3s var(--frost-ease) !important;
    height: auto !important;
    min-height: auto !important;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input textarea:focus,
body.woocommerce-checkout input.wc-block-components-text-input:focus,
body.woocommerce-checkout textarea.wc-block-components-textarea:focus {
    outline: none !important;
    border-bottom-color: var(--frost-navy-700) !important;
    box-shadow: none !important;
}

/* Label de input (flotante WC) — convertir a label estática arriba */
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-textarea label {
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.22em !important;
    color: var(--frost-slate-500) !important;
    text-transform: uppercase !important;
    margin-bottom: 8px !important;
    position: static !important;
    transform: none !important;
    transition: none !important;
    background: transparent !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    pointer-events: auto !important;
}

/* Placeholder muestra en lugar del label flotante */
body.woocommerce-checkout .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-components-text-input label.is-active {
    transform: none !important;
    font-size: 10px !important;
}

body.woocommerce-checkout .wc-block-components-text-input input::placeholder {
    color: var(--frost-slate-400) !important;
}


/* ================================================================
   CHECKOUT · SELECT (país, estado)
   ================================================================ */
body.woocommerce-checkout .wc-block-components-combobox,
body.woocommerce-checkout .wc-block-components-select {
    margin-bottom: 24px !important;
}

body.woocommerce-checkout .wc-block-components-combobox-control input,
body.woocommerce-checkout .wc-block-components-select-input {
    border: none !important;
    border-bottom: 1px solid var(--frost-ice-200) !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 12px 0 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 15px !important;
    color: var(--frost-navy-900) !important;
    height: auto !important;
}

body.woocommerce-checkout .wc-block-components-combobox-control input:focus,
body.woocommerce-checkout .wc-block-components-select-input:focus {
    outline: none !important;
    border-bottom-color: var(--frost-navy-700) !important;
    box-shadow: none !important;
}


/* ================================================================
   CHECKOUT · CHECKBOX (terms, billing same as shipping)
   ================================================================ */
body.woocommerce-checkout .wc-block-components-checkbox__input {
    width: 18px !important;
    height: 18px !important;
    border: 1.5px solid var(--frost-ice-200) !important;
    border-radius: 2px !important;
    background: transparent !important;
    transition: all 0.2s var(--frost-ease) !important;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

body.woocommerce-checkout .wc-block-components-checkbox__input:checked {
    background: var(--frost-navy-700) !important;
    border-color: var(--frost-navy-700) !important;
}

body.woocommerce-checkout .wc-block-components-checkbox__mark {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

body.woocommerce-checkout .wc-block-components-checkbox__label {
    font-size: 13px !important;
    color: var(--frost-slate-700) !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}


/* ================================================================
   CHECKOUT · RADIO (métodos de pago, shipping options)
   ================================================================
   WC Blocks anida el <label> dentro del <div>.accordion-option, ambos
   con border y padding propios. Si aplicamos el card a los dos, hay
   doble border. La solución: card SOLO al wrapper externo, y reset
   completo al label interno (manteniendo position:relative para que
   el input radio absoluto se posicione bien).
*/

/* Wrapper externo: el card visible (UN solo border) */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option {
    border: 1px solid var(--frost-ice-100) !important;
    border-radius: 4px !important;
    padding: 20px 24px !important;
    margin-bottom: 12px !important;
    background: #ffffff !important;
    transition: all 0.3s var(--frost-ease) !important;
    cursor: pointer;
}
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option:has(input:checked) {
    border-color: var(--frost-navy-700) !important;
    background: var(--frost-bone) !important;
}

/* Label interno: SIN border ni bg, mantiene position:relative para el radio absolute */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
    border: none !important;
    background: transparent !important;
    padding: 0 0 0 32px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    position: relative !important;
    display: block !important;
    cursor: pointer;
    min-height: 22px;
}

/* Radio button: posicionado absoluto al inicio del label */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__input {
    position: absolute !important;
    left: 0 !important;
    top: 1px !important;
    width: 18px !important;
    height: 18px !important;
    border: 2px solid var(--frost-ice-200) !important;
    appearance: none;
    -webkit-appearance: none;
    border-radius: 50% !important;
    transition: all 0.2s var(--frost-ease) !important;
}
body.woocommerce-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__input:checked {
    border-color: var(--frost-navy-700) !important;
    background: radial-gradient(circle, var(--frost-navy-700) 0%, var(--frost-navy-700) 40%, transparent 45%) !important;
}

/* Texto del label */
body.woocommerce-checkout .wc-block-components-radio-control__label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--frost-navy-900) !important;
}

body.woocommerce-checkout .wc-block-components-radio-control__description {
    font-size: 12px !important;
    color: var(--frost-slate-500) !important;
    margin-top: 4px !important;
}

/* Descripción "Paga en efectivo..." alineada DENTRO del card, debajo del label */
body.woocommerce-checkout .wc-block-components-radio-control-accordion-content {
    margin-top: 10px !important;
    padding-left: 32px !important;
    font-size: 12px !important;
    color: var(--frost-slate-500) !important;
    line-height: 1.5 !important;
}

/* Para radio options NO accordion (ej. shipping options sin descripción) */
body.woocommerce-checkout .wc-block-components-radio-control > .wc-block-components-radio-control__option {
    border: 1px solid var(--frost-ice-100) !important;
    border-radius: 4px !important;
    padding: 20px 24px 20px 56px !important;
    margin-bottom: 12px !important;
    background: #ffffff !important;
    position: relative !important;
    transition: all 0.3s var(--frost-ease) !important;
}
body.woocommerce-checkout .wc-block-components-radio-control > .wc-block-components-radio-control__option:has(input:checked) {
    border-color: var(--frost-navy-700) !important;
    background: var(--frost-bone) !important;
}
body.woocommerce-checkout .wc-block-components-radio-control > .wc-block-components-radio-control__option .wc-block-components-radio-control__input {
    position: absolute !important;
    left: 24px !important;
    top: 22px !important;
}

/* ================================================================
   CHECKOUT · ORDER SUMMARY (sidebar)
   ================================================================ */

/* Item del resumen */
body.woocommerce-checkout .wc-block-components-order-summary-item {
    padding: 14px 0 !important;
    border-bottom: 1px solid var(--frost-ice-100) !important;
    align-items: center !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item:last-child {
    border-bottom: none !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image {
    width: 60px !important;
    height: 60px !important;
    margin-right: 16px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
    width: 60px !important;
    height: 60px !important;
    border-radius: 4px !important;
    object-fit: cover !important;
    background: linear-gradient(135deg, var(--frost-ice-100), var(--frost-ice-200));
}

/* Badge de cantidad sobre la imagen */
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
    background: var(--frost-navy-900) !important;
    color: #ffffff !important;
    border: 2px solid var(--frost-bone) !important;
    width: 22px !important;
    height: 22px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--frost-navy-900) !important;
    margin-bottom: 2px !important;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__individual-prices,
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
    font-size: 13px !important;
    color: var(--frost-navy-900) !important;
    font-weight: 500 !important;
}

body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata__description,
body.woocommerce-checkout .wc-block-components-product-details {
    font-size: 11px !important;
    color: var(--frost-slate-500) !important;
}


/* ================================================================
   CHECKOUT · TERMS Y NOTAS
   ================================================================ */
body.woocommerce-checkout .wc-block-checkout__terms {
    font-size: 12px !important;
    color: var(--frost-slate-500) !important;
    line-height: 1.7 !important;
    margin-top: 24px !important;
}

body.woocommerce-checkout .wc-block-checkout__terms a,
body.woocommerce-checkout .wc-block-checkout__terms-text a {
    color: var(--frost-navy-900) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--frost-ice-100) !important;
}

body.woocommerce-checkout .wc-block-checkout__order-notes textarea {
    min-height: 100px !important;
    border: 1px solid var(--frost-ice-200) !important;
    border-radius: 4px !important;
    padding: 14px !important;
    border-bottom: 1px solid var(--frost-ice-200) !important;
}


/* ================================================================
   "VOLVER AL CARRITO" link (checkout)
   ================================================================ */
body.woocommerce-checkout .wc-block-components-button.outlined,
body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block a {
    color: var(--frost-slate-500) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    background: transparent !important;
    border: none !important;
    transition: color 0.3s var(--frost-ease);
}

body.woocommerce-checkout .wp-block-woocommerce-checkout-actions-block a:hover {
    color: var(--frost-navy-900) !important;
}


/* ================================================================
   CART/CHECKOUT · NOTICES (errores, info)
   ================================================================ */
body.woocommerce-cart .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-components-notice-banner {
    border-radius: 4px !important;
    border-left-width: 3px !important;
    font-size: 13px !important;
    color: var(--frost-slate-700) !important;
}

body.woocommerce-cart .wc-block-components-notice-banner.is-error,
body.woocommerce-checkout .wc-block-components-notice-banner.is-error {
    background: #FDF4F4 !important;
    border-left-color: #C44545 !important;
}

body.woocommerce-cart .wc-block-components-notice-banner.is-success,
body.woocommerce-checkout .wc-block-components-notice-banner.is-success {
    background: var(--frost-bone) !important;
    border-left-color: var(--frost-accent) !important;
}


/* ================================================================
   EMPTY CART
   ================================================================ */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
    text-align: center;
    padding: 80px 40px !important;
    background: var(--frost-bone) !important;
    border: 1px solid var(--frost-ice-100) !important;
    border-radius: 4px !important;
    margin: 0 auto;
    max-width: 600px;
}

body.woocommerce-cart .wc-block-cart__empty-cart__title {
    font-size: 28px !important;
    font-weight: 200 !important;
    color: var(--frost-navy-900) !important;
    letter-spacing: -0.02em !important;
    margin: 24px 0 12px !important;
}


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

/* Tablet y abajo: 1 columna (sidebar va al fondo) */
@media (max-width: 1024px) {
    body.woocommerce-cart .wc-block-cart,
    body.woocommerce-checkout .wc-block-components-sidebar-layout {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    body.woocommerce-cart .wc-block-cart__sidebar,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        position: static !important;
        margin-top: 0 !important;
        padding: 28px !important;
    }
}

/* Tablet/landscape mobile */
@media (max-width: 900px) {
    body.woocommerce-cart h1.entry-title,
    body.woocommerce-checkout h1.entry-title {
        font-size: 36px !important;
        padding-left: 32px !important;
        padding-right: 32px !important;
        margin: 32px 0 24px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        padding: 0 32px !important;
    }
}

/* Mobile (~portrait phones) */
@media (max-width: 700px) {
    body.woocommerce-cart h1.entry-title,
    body.woocommerce-checkout h1.entry-title {
        font-size: 32px !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        margin: 24px 0 20px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        padding: 0 20px !important;
        margin: 0 auto 48px !important;
    }
    body.woocommerce-cart .wc-block-cart__sidebar,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        padding: 24px 20px !important;
    }

    /* Cart item: imagen más pequeña, mejor distribución mobile */
    body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__image {
        width: 72px !important;
        padding: 0 !important;
    }
    body.woocommerce-cart .wc-block-cart-item__image img {
        width: 72px !important;
        height: 72px !important;
    }
    body.woocommerce-cart .wc-block-cart-items__row {
        padding: 20px 0 !important;
    }
    /* Padding-left crea el gap entre imagen y producto */
    body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__product {
        padding: 4px 12px 0 20px !important;
    }
    body.woocommerce-cart .wc-block-components-product-name {
        font-size: 15px !important;
    }
    body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper,
    body.woocommerce-cart .wc-block-cart-item__prices,
    body.woocommerce-cart .wc-block-components-product-price {
        font-size: 15px !important;
    }

    /* Quantity selector + remove se ven mal apretados en mobile */
    body.woocommerce-cart .wc-block-cart-item__quantity {
        margin-top: 8px !important;
    }
    body.woocommerce-cart .wc-block-cart-item__remove-link {
        margin-left: 12px !important;
        font-size: 10px !important;
        letter-spacing: 0.16em !important;
    }

    /* Ocultar columna de precio total en mobile — solo se ve el precio en la columna del medio
       (lo reactivamos abajo). Solución: mover precio al wrap junto al nombre */
    body.woocommerce-cart .wc-block-cart-item__prices {
        display: block !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        color: var(--frost-navy-900) !important;
        margin-top: 4px !important;
    }
    body.woocommerce-cart .wc-block-cart-item__total {
        display: none !important;
    }

    /* Checkout: address card y payment method más compactos */
    body.woocommerce-checkout .wc-block-components-address-card {
        padding: 18px 20px !important;
        flex-direction: column !important;
        gap: 12px !important;
    }
    body.woocommerce-checkout .wc-block-components-radio-control__option,
    body.woocommerce-checkout .wc-block-components-radio-control-accordion-option {
        padding: 16px 18px !important;
    }

    /* Checkout: gap entre steps menos */
    body.woocommerce-checkout .wc-block-components-checkout-step {
        padding-bottom: 28px !important;
        margin-bottom: 28px !important;
    }

    /* Sidebar: order summary item más compacto */
    body.woocommerce-checkout .wc-block-components-order-summary-item__image {
        width: 50px !important;
        height: 50px !important;
        margin-right: 12px !important;
    }
    body.woocommerce-checkout .wc-block-components-order-summary-item__image img {
        width: 50px !important;
        height: 50px !important;
    }

    /* Botones full-width con padding más cómodo */
    body.woocommerce-cart .wc-block-cart__submit-button,
    body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
        padding: 16px 24px !important;
        font-size: 10px !important;
        letter-spacing: 0.2em !important;
    }
}

/* Mobile pequeño (~iPhone SE) */
@media (max-width: 420px) {
    body.woocommerce-cart h1.entry-title,
    body.woocommerce-checkout h1.entry-title {
        font-size: 28px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    body.woocommerce-cart .wp-block-woocommerce-cart,
    body.woocommerce-checkout .wp-block-woocommerce-checkout {
        padding: 0 16px !important;
    }
    body.woocommerce-cart .wc-block-cart__sidebar,
    body.woocommerce-checkout .wc-block-checkout__sidebar {
        padding: 20px 16px !important;
    }
    body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__image {
        width: 64px !important;
        padding: 0 !important;
    }
    body.woocommerce-cart .wc-block-cart-item__image img {
        width: 64px !important;
        height: 64px !important;
    }
    body.woocommerce-cart table.wc-block-cart-items tr.wc-block-cart-items__row td.wc-block-cart-item__product {
        padding: 4px 8px 0 16px !important;
    }
    /* Total final: bajar tamaño para evitar overflow */
    body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
    body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
        font-size: 20px !important;
    }
}
/* ============================================================
   FIX · Floating labels del WooCommerce Blocks Checkout · v2
   Espaciado correcto · label arriba, input abajo, border al ras
   ============================================================ */

/* Container relative · espacio arriba para que quepa el label flotante */
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-select {
    position: relative !important;
    padding-top: 18px !important;
    margin-bottom: 24px !important;
}

/* Input · sin padding interno excesivo, border-bottom pegado al texto */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select {
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 8px 0 8px 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--frost-ice-200, #D5DEE7) !important;
    border-radius: 0 !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
    color: var(--frost-navy-900, #0F2640) !important;
    box-shadow: none !important;
    outline: none !important;
    height: auto !important;
}

body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus {
    border-bottom-color: var(--frost-navy-700, #1B3A5C) !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Label · default position (encima del input cuando vacío) */
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-select label {
    position: absolute !important;
    top: 26px !important;
    left: 0 !important;
    right: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
    background: transparent !important;
    color: var(--frost-slate-500, #6B7785) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    line-height: 1.4 !important;
    z-index: 1 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    transition: top 0.2s var(--frost-ease, cubic-bezier(0.4, 0, 0.2, 1)),
                font-size 0.2s var(--frost-ease, cubic-bezier(0.4, 0, 0.2, 1)),
                color 0.2s var(--frost-ease, cubic-bezier(0.4, 0, 0.2, 1)) !important;
}

/* Label flotante arriba · cuando focus, has value, o is-active */
body.woocommerce-checkout .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-components-select.is-active label,
body.woocommerce-checkout .wc-block-components-text-input input:focus + label,
body.woocommerce-checkout .wc-block-components-text-input input:not(:placeholder-shown) + label {
    top: 0 !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--frost-slate-500, #6B7785) !important;
    transform: none !important;
}

/* Cuando el input está enfocado (con foco activo) · label en accent */
body.woocommerce-checkout .wc-block-components-text-input.is-active:focus-within label,
body.woocommerce-checkout .wc-block-components-select.is-active:focus-within label {
    color: var(--frost-navy-700, #1B3A5C) !important;
}

/* Select dropdown · ajustar padding del icono */
body.woocommerce-checkout .wc-block-components-select select {
    padding-right: 28px !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7785' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 4px center !important;
    background-size: 16px !important;
}