/* Integración visual con WooCommerce */
.kaise-shop-original__content { min-height: 60vh; background: linear-gradient(180deg, #ffffff 0%, #eef3f7 100%); padding-top: 110px; padding-bottom: 110px; }
.pcard__icons { display: flex; gap: 8px; }
/*
 * Especificidad reforzada a propósito: el CSS propio de WooCommerce
 * define ".woocommerce a.button" (especificidad 0,2,1) para el botón
 * "Añadir al carrito". Nuestra regla anterior ".pcard__icons .button"
 * (0,2,0) perdía contra esa por especificidad, así que WooCommerce
 * terminaba mostrando su botón verde/rectangular de fábrica en vez de
 * nuestro círculo con ícono. Subimos la especificidad agregando
 * ".pcard" + el elemento "a", y reforzamos con !important en las
 * propiedades visuales clave para que esto no se vuelva a romper si
 * WooCommerce cambia su CSS en una futura actualización del plugin.
 */
.pcard .pcard__icons a.button,
.pcard .pcard__icons a.add_to_cart_button,
.pcard .pcard__icons .button {
	width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 1px solid var(--kaise-border) !important;
	border-radius: 50% !important;
	color: var(--kaise-dark) !important;
	background: #fff !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	line-height: 1;
	font-size: 0; /* oculta cualquier texto del botón (p.ej. "Añadir al carrito") y deja solo el ícono SVG */
	text-align: center;
	box-shadow: none !important;
}
.pcard .pcard__icons a.button:hover,
.pcard .pcard__icons a.add_to_cart_button:hover,
.pcard .pcard__icons .button:hover {
	border-color: var(--kaise-accent) !important;
	color: var(--kaise-accent) !important;
	background: #fff !important;
}
.pcard .pcard__icons a.button svg,
.pcard .pcard__icons a.add_to_cart_button svg { display: block; }
/* Si el botón queda deshabilitado/cargando, que no se vea distinto */
.pcard .pcard__icons a.button.loading { opacity: 1 !important; }

/* Página /favoritos/ — estado vacío */
.kaise-favoritos-empty { text-align: center; padding: 60px 20px; color: var(--kaise-gray); }
.kaise-favoritos-empty p { font-size: 1.1rem; margin-bottom: 24px; }

/* =====================================================================
   FICHA DE PRODUCTO (Zenith / Core / Dúo)
   Reconstruida a partir de la captura de referencia que compartió el
   cliente ("Ficha_Zenith_Core.jpg"), siguiendo el diseño real de María
   Paz sección por sección: galería con miniaturas, caja de compra con
   separadores y botones en línea, "Entrega en" debajo de los botones,
   panel de Características con pestaña lateral, tabla de specs en
   franjas alternadas, medidas lado a lado, y "Ver características de
   X" como píldoras sólidas.
   ===================================================================== */
.kaise-ficha { padding: 60px 0 90px; background: #fff; }
.kaise-ficha__breadcrumb { font-size: 1rem; color: var(--kaise-gray); margin-bottom: 30px; } /* XD: 16px */
.kaise-ficha__breadcrumb a { color: var(--kaise-gray); }
.kaise-ficha__breadcrumb a:hover { color: var(--kaise-primary); }
.kaise-ficha__breadcrumb span:first-of-type { margin: 0 8px; }
.kaise-ficha__breadcrumb span:last-child { color: var(--kaise-dark); }

.kaise-ficha__top { display: grid; grid-template-columns: 1.2fr 1fr; gap: 50px; margin-bottom: 40px; align-items: stretch; } /* stretch: la galería y la caja de compra miden lo mismo */

/* ---- Galería de fotos ---- */
/* La altura de la fila la manda la CAJA DE COMPRA (que tiene el texto): con
   contain:size la galería deja de aportar su propia altura y solo se estira
   hasta igualarla. Antes la imagen principal (aspect-ratio 3/4) era más alta
   que la caja. min-height evita que colapse si algún día la caja fuera muy corta. */
.kaise-ficha__gallery { display: grid; grid-template-columns: 88px 1fr; gap: 16px; contain: size; min-height: 460px; }
.kaise-ficha__gallery--single { grid-template-columns: 1fr; } /* una sola foto: sin columna de miniaturas */
.kaise-ficha__thumbs { display: flex; flex-direction: column; gap: 12px; min-height: 0; } /* las miniaturas se reparten el alto disponible: 88px si sobra espacio, un poco menos si faltara (nunca se cortan ni empujan la fila) */
.kaise-ficha__thumb {
	position: relative; display: block; width: 88px; flex: 1 1 0; min-height: 0; max-height: 88px; padding: 0; border: 1px solid var(--kaise-border);
	background: var(--kaise-light-gray); cursor: pointer; overflow: hidden;
}
.kaise-ficha__thumb.is-active { border-color: var(--kaise-primary); border-width: 2px; }
.kaise-ficha__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.kaise-ficha__main-image { position: relative; background: var(--kaise-light-gray); overflow: hidden; min-height: 0; }
.kaise-ficha__main-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; } /* absoluta: la foto nunca empuja la altura */

/* ---- Caja de compra ---- */
.kaise-ficha__buybox { background: #fff; padding: 36px; box-shadow: 0 10px 34px rgba(20,40,60,.08); }
.kaise-ficha__brand { display: block; font-family: 'Inter', sans-serif; font-size: .85rem; color: var(--kaise-gray); margin-bottom: 8px; }
.kaise-ficha__name { font-size: 1.625rem; font-weight: 700; color: var(--kaise-dark); margin-bottom: 10px; } /* XD: 26px */
.kaise-ficha__price { font-size: 1.5rem; font-weight: 700; color: var(--kaise-primary); } /* XD: 24px */
.kaise-ficha__price ins { text-decoration: none; }
.kaise-ficha__price del { opacity: .5; font-size: .75em; margin-right: 8px; }
.kaise-ficha__divider { border: none; border-top: 1px solid var(--kaise-border); margin: 22px 0; }
.kaise-ficha__desc { color: #707070; font-size: 1rem; line-height: 1.7; margin: 0; } /* XD: 16px, #707070 */
.kaise-ficha__quickspecs { color: var(--kaise-dark); font-size: .88rem; line-height: 1.9; margin-bottom: 26px; }
.kaise-ficha__quickspecs .kf-label { color: var(--kaise-gray); }
.kaise-ficha__quickspecs strong { font-weight: 600; }

.kaise-ficha__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 22px; }
.kaise-ficha__form { margin: 0; flex: 1; min-width: 150px; }
.kaise-ficha__form .btn { width: 100%; white-space: nowrap; }

.kaise-ficha__location-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kaise-ficha__location-label { font-size: 1rem; font-weight: 600; color: var(--kaise-dark); } /* XD: 16px SemiBold */
.kaise-ficha__location-link {
	display: inline-flex; align-items: center; gap: 6px; background: none; border: none; padding: 0; cursor: pointer;
	font-size: 1rem; font-weight: 600; color: var(--kaise-accent); text-decoration: underline; /* XD: 16px SemiBold */
}
.kaise-ficha__location-link:hover { color: var(--kaise-primary); }
.kaise-ficha__location-panel {
	margin-top: 14px; padding: 16px 18px; background: var(--kaise-light-gray);
	font-size: .85rem; color: #4a4a4a; line-height: 1.6;
}
.kaise-ficha__location-panel p { margin: 0 0 .5em; }
.kaise-ficha__location-panel p:last-child { margin-bottom: 0; }
.kaise-ficha__location-panel strong { color: var(--kaise-dark); }

/* ---- Tarjeta de Características / Guía de cuidado ---- */
.kaise-ficha__card { display: grid; grid-template-columns: 220px 1fr; gap: 40px; background: #fff; box-shadow: 0 10px 34px rgba(20,40,60,.08); padding: 44px 40px; }
.kaise-ficha__sidenav { display: flex; flex-direction: column; gap: 22px; }
.kaise-ficha__sidenav button {
	background: none; border: none; padding: 0; text-align: left; cursor: pointer;
	font-size: .95rem; font-weight: 500; color: var(--kaise-gray);
}
.kaise-ficha__sidenav button.is-active { color: var(--kaise-primary); font-weight: 600; text-decoration: underline; }

.kaise-ficha__panel { display: none; }
.kaise-ficha__panel.is-active { display: block; }
.kaise-ficha__spec-block { margin-bottom: 30px; }
.kaise-ficha__spec-block:last-child { margin-bottom: 0; }
.kaise-ficha__spec-block h3 { font-size: 1.125rem; font-weight: 600; color: var(--kaise-dark); margin: 0 0 14px; } /* XD: 18px SemiBold */
.kaise-ficha__spec-block--split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }

.kaise-ficha__table { display: flex; flex-direction: column; }
.kaise-ficha__table-row {
	display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
	padding: 14px 16px; font-size: 1.125rem; /* XD: 18px */
}
.kaise-ficha__table-row:nth-child(odd) { background: var(--kaise-light-gray); }
.kaise-ficha__table-row .label { color: var(--kaise-dark); font-weight: 600; } /* XD: SemiBold */
.kaise-ficha__table-row .value { color: var(--kaise-dark); font-weight: 400; } /* XD: mismo #282828, solo Regular */
.kaise-ficha__care-text { color: #4a4a4a; font-size: .92rem; line-height: 1.75; margin: 0; }

/* ---- Guía de cuidado: layout de 2 sub-columnas (intro + contenido) ---- */
.kaise-ficha__cuidado { display: grid; grid-template-columns: 260px 1fr; gap: 50px; }
.kaise-ficha__cuidado-intro { position: relative; }
.kaise-ficha__cuidado-intro h3 { font-size: .98rem; font-weight: 700; color: var(--kaise-primary); margin: 0 0 .6em; line-height: 1.35; }
.kaise-ficha__cuidado-intro p { font-size: .85rem; color: #4a4a4a; line-height: 1.6; margin: 0 0 1.8em; }
.kaise-ficha__cuidado-wordmark {
	display: block; margin-top: 40px;
	font-family: 'Inter', sans-serif; font-weight: 100; font-size: 2.6rem;
	color: rgba(0,0,0,.06); user-select: none;
}
.kaise-ficha__cuidado-block { margin-bottom: 30px; }
.kaise-ficha__cuidado-block:last-child { margin-bottom: 0; }
.kaise-ficha__cuidado-block h4 { font-size: .95rem; font-weight: 700; color: var(--kaise-dark); margin: 0 0 .8em; }
.kaise-ficha__cuidado-block p { font-size: .88rem; color: #4a4a4a; line-height: 1.65; margin: 0 0 .8em; }
.kaise-ficha__cuidado-block ul { margin: 0; padding-left: 1.2em; }
.kaise-ficha__cuidado-block ul li { font-size: .88rem; color: #4a4a4a; line-height: 1.65; margin-bottom: .5em; }
.kaise-ficha__cuidado-block ul li:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
	.kaise-ficha__cuidado { grid-template-columns: 1fr; gap: 30px; }
	.kaise-ficha__cuidado-wordmark { display: none; }
}

.kaise-ficha__seemore { display: flex; gap: 20px; padding-top: 30px; flex-wrap: wrap; }

.btn-pill-accent {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 13px 28px; border-radius: var(--radius-pill);
	background: var(--kaise-accent); color: #fff; font-weight: 600; font-size: .95rem;
	border: 2px solid var(--kaise-accent);
}
.btn-pill-accent:hover { background: #d9660a; border-color: #d9660a; }

@media (max-width: 900px) {
	.kaise-ficha__top { grid-template-columns: 1fr; gap: 36px; }
	.kaise-ficha__top { align-items: start; }
	.kaise-ficha__gallery { grid-template-columns: 1fr; contain: none; min-height: 0; }
	.kaise-ficha__main-image { aspect-ratio: 1 / 1; }
	.kaise-ficha__thumbs { flex-direction: row; overflow-x: auto; overflow-y: hidden; }
	.kaise-ficha__thumb { flex: none; height: 88px; max-height: none; }
	.kaise-ficha__card { grid-template-columns: 1fr; gap: 20px; padding: 30px 24px; }
	.kaise-ficha__sidenav { flex-direction: row; gap: 24px; border-bottom: 1px solid var(--kaise-border); padding-bottom: 16px; }
	.kaise-ficha__spec-block--split { grid-template-columns: 1fr; gap: 24px; }
	.kaise-ficha__table-row { grid-template-columns: 1fr; gap: 4px; }
}

/* =====================================================================
   PÁGINAS LEGALES (Términos, Políticas, Preguntas Frecuentes)
   Desde que estas páginas pasaron a ser Páginas reales de WordPress
   (editables en el editor de bloques, ver inc/legal-pages.php), el
   contenido ya no viene envuelto en un div por sección — es un flujo
   plano de párrafos, encabezados y listas. Los separadores visuales
   entre secciones ahora van directo sobre cada <h2>.
   ===================================================================== */
.kaise-legal { padding: 70px 0 100px; }
.kaise-legal__header { text-align: center; max-width: 760px; margin: 0 auto 50px; }
.kaise-legal__header h1 { font-size: clamp(1.8rem, 3.2vw, 2.5rem); font-weight: 700; color: var(--kaise-dark); margin-bottom: .4em; }
.kaise-legal__header .updated { font-size: .88rem; color: var(--kaise-gray); }
.kaise-legal__body { max-width: 760px; margin: 0 auto; }
.kaise-legal__body p { color: #4a4a4a; font-size: .95rem; line-height: 1.75; margin-bottom: 1em; }
.kaise-legal__body h2 {
	font-size: 1.15rem; font-weight: 700; color: var(--kaise-dark);
	margin: 0 0 .8em; padding-top: 28px; border-top: 1px solid var(--kaise-border);
}
.kaise-legal__body > h2:first-child,
.kaise-legal__body > *:first-child h2 { padding-top: 0; border-top: none; } /* el primer bloque no necesita línea arriba */
.kaise-legal__body h3 { font-size: 1rem; font-weight: 600; color: var(--kaise-dark); margin: 1.2em 0 .5em; }
.kaise-legal__body ul, .kaise-legal__body ol { margin: 0 0 1em; padding-left: 1.3em; }
.kaise-legal__body ul li, .kaise-legal__body ol li { color: #4a4a4a; font-size: .95rem; line-height: 1.7; margin-bottom: .4em; }
.kaise-legal__body strong { color: var(--kaise-dark); font-weight: 600; }
.kaise-legal__body a { color: var(--kaise-primary); text-decoration: underline; }
/* Preguntas frecuentes: cada "sección" es la pregunta+respuesta */
.kaise-faq .kaise-legal__body h2 { color: var(--kaise-primary); }
/* .pcard__preview ya no se usa: era un tercer ícono que no pertenece
   al diseño original (ver funciones.php: kaise_product_card()) */
.pcard__name { font-size: 1rem; margin: 14px 0 6px; }
.pcard__meta-row { align-items: flex-start; }
.pcard__price del { opacity: .6; display: block; } .pcard__price ins { text-decoration: none; }
.kaise-products-link { text-align: center; margin: 32px 0 0; }
.cart-icon { font-size: 20px; }
.kaise-single-product { padding-top: 80px; }
.kaise-product-detail { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 68px; align-items: start; }
.kaise-product-detail__gallery .woocommerce-product-gallery__wrapper { display: grid; gap: 16px; }
.kaise-product-detail__gallery .woocommerce-product-gallery__image { background: #f5f7f8; border-radius: 0; overflow: hidden; }
.kaise-product-detail__summary h1 { font-size: clamp(2.2rem, 4vw, 4rem); margin: 10px 0; }
.kaise-product-detail__summary .price { color: var(--kaise-primary); font-size: 1.6rem; font-weight: 700; margin: 22px 0; }
.kaise-product-detail__short { color: var(--kaise-gray); margin-bottom: 26px; }
.kaise-product-detail__summary .quantity input { width: 66px; border: 1px solid #d7dfe5; border-radius: 24px; padding: 12px; text-align: center; }
.kaise-product-detail__summary .single_add_to_cart_button { border: 0; border-radius: 24px; padding: 14px 24px; background: var(--kaise-primary); color: #fff; font-weight: 600; margin-left: 10px; }
.kaise-product-detail__summary .product_meta { border-top: 1px solid var(--kaise-border); margin-top: 24px; padding-top: 16px; font-size: .85rem; color: var(--kaise-gray); }
.kaise-product-detail__description { grid-column: 1 / -1; max-width: 820px; margin: 20px auto 0; }
.kaise-product-purchase { padding: 56px 0; background: linear-gradient(135deg, #eef5f8, #fff); }
.kaise-product-purchase__card { display: flex; justify-content: space-between; align-items: center; gap: 36px; max-width: 980px; margin: 0 auto; padding: 34px 42px; border-radius: 0; background: #fff; box-shadow: 0 18px 48px rgba(40, 61, 79, .12); }
.kaise-product-purchase h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); margin: 5px 0 8px; }.kaise-product-purchase__excerpt p { margin: 0; color: var(--kaise-gray); }
.kaise-product-purchase__buy { text-align: right; flex-shrink: 0; }.kaise-product-purchase__price { color: var(--kaise-primary); font-size: 1.5rem; font-weight: 700; margin-bottom: 14px; }
.kaise-product-purchase .quantity input { width: 64px; border: 1px solid #d7dfe5; border-radius: 24px; padding: 11px; text-align: center; }.kaise-product-purchase .single_add_to_cart_button { border: 0; border-radius: 24px; padding: 13px 20px; background: var(--kaise-primary); color: #fff; font-weight: 600; margin-left: 8px; }
.kaise-duo-hero { overflow: hidden; padding: 92px 0 76px; background: linear-gradient(125deg, #f5f8fa, #dfeef5); }.kaise-duo-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; align-items: center; }.kaise-duo-hero h1 { font-size: clamp(2.6rem, 5vw, 5.1rem); margin: 8px 0 18px; }.kaise-duo-hero p { max-width: 500px; margin-bottom: 26px; font-size: 1.1rem; }.kaise-duo-hero__image { position: relative; }.kaise-duo-hero__image::before { content: ''; position: absolute; inset: 5% 0 0 12%; background: #fff; border-radius: 50%; opacity: .72; }.kaise-duo-hero__image img { position: relative; width: min(100%, 530px); margin: auto; }
.kaise-duo-story { padding: 100px 0; }.kaise-duo-story__grid { display: grid; grid-template-columns: minmax(260px, .85fr) minmax(280px, 1fr); align-items: center; gap: 10%; }.kaise-duo-story__grid > img { max-height: 400px; margin: auto; }.kaise-duo-story h2 { font-size: clamp(2rem, 4vw, 3.6rem); }.kaise-duo-story p { color: var(--kaise-gray); font-size: 1.05rem; }
.kaise-duo-benefits { padding: 70px 0; background: var(--kaise-dark); color: #fff; }.kaise-duo-benefits .container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; text-align: center; }.kaise-duo-benefits span { color: #91c6de; font-size: 1.2rem; font-weight: 700; }.kaise-duo-benefits h3 { margin: 10px 0 4px; font-size: 1.5rem; }.kaise-duo-benefits p { margin: 0; color: #d3dde2; }
.kaise-page { min-height: 55vh; padding-top: 90px; }
.entry-content > * { max-width: 900px; margin-left: auto; margin-right: auto; }
.entry-content h2 { margin-top: 2em; }.entry-content img { border-radius: 0; }
.woocommerce-pagination { margin-top: 42px; text-align: center; }.woocommerce-pagination ul { display: inline-flex; gap: 8px; }.woocommerce-pagination a, .woocommerce-pagination span { padding: 8px 12px; border-radius: 50%; }.woocommerce-pagination .current { background: var(--kaise-primary); color: #fff; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--kaise-primary); background: #eef6fa; padding: 16px 20px 16px 48px; }.woocommerce-message::before, .woocommerce-info::before { color: var(--kaise-primary); }.woocommerce-message .button { float: right; color: var(--kaise-primary); font-weight: 700; }
@media (max-width: 767px) { .site-header__actions .site-search { display: none; }.kaise-product-detail { grid-template-columns: 1fr; gap: 32px; }.kaise-product-detail__description { grid-column: auto; }.kaise-single-product, .kaise-shop-original, .kaise-page { padding-top: 48px; }.kaise-shop-original__content { padding-top: 70px; padding-bottom: 70px; }.kaise-product-purchase__card { display: block; padding: 28px 24px; }.kaise-product-purchase__buy { text-align: left; margin-top: 20px; }.kaise-duo-hero { padding: 55px 0; }.kaise-duo-hero__grid, .kaise-duo-story__grid, .kaise-duo-benefits .container { grid-template-columns: 1fr; }.kaise-duo-hero__image { order: -1; }.kaise-duo-story { padding: 64px 0; }.kaise-duo-benefits .container { gap: 36px; } }


/* =====================================================================
   FLUJO NATIVO DE WOOCOMMERCE (carrito, checkout, Mi Cuenta)
   El cliente no tenía un diseño de referencia para estas pantallas —
   se extendió el mismo sistema ya usado en el resto del sitio: botones
   píldora, tarjetas/tablas de esquina cuadrada, Inter, la misma paleta
   de colores y el mismo tono de gris para texto secundario. Cubre tanto
   el carrito/checkout "clásico" (shortcode) como el basado en bloques
   de Gutenberg, por si el sitio usa cualquiera de los dos.
   ===================================================================== */

/* ---- Botones genéricos de WooCommerce (Finalizar compra, Aplicar
   cupón, Actualizar carrito, Realizar el pedido, etc.) ---- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #place_order, .woocommerce-page a.button, .woocommerce-page button.button,
.wc-block-components-button, .wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button {
	display: inline-flex !important; align-items: center; justify-content: center;
	background: var(--kaise-primary) !important; color: #fff !important; /* antes negro: la mayoría de los botones del sitio usan el azul #467FA5 */
	border-radius: var(--radius-pill) !important; border: 2px solid var(--kaise-primary) !important;
	padding: 14px 32px !important; font-weight: 600 !important; font-size: 1rem !important;
	font-family: 'Inter', sans-serif; line-height: 1.2; text-transform: none;
	transition: all .25s ease; cursor: pointer; box-shadow: none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #place_order:hover, .wc-block-components-button:hover {
	background: var(--kaise-primary-dark) !important; border-color: var(--kaise-primary-dark) !important; color: #fff !important;
}
/* Botones secundarios (Seguir comprando, Actualizar carrito): contorno, sin relleno */
.woocommerce a.button.wc-backward, .woocommerce button.button:not(.alt):not(#place_order),
.woocommerce input.button[name="update_cart"] {
	background: #fff !important; color: var(--kaise-primary) !important; border-color: var(--kaise-primary) !important;
}
.woocommerce a.button.wc-backward:hover, .woocommerce button.button:not(.alt):not(#place_order):hover,
.woocommerce input.button[name="update_cart"]:hover { background: var(--kaise-light-gray) !important; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--kaise-primary) !important; border-color: var(--kaise-primary) !important; color: #fff !important;
}
.woocommerce a.button.disabled, .woocommerce button.button.disabled { opacity: .5; cursor: not-allowed; }

/* ---- Campos de formulario (checkout, login/registro, direcciones) ---- */
.woocommerce form .form-row label { font-size: .875rem; color: var(--kaise-dark); font-weight: 500; margin-bottom: 6px; display: block; }
.woocommerce form .form-row .required { color: var(--kaise-accent); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-form-login input.input-text,
.woocommerce-form-register input.input-text,
.woocommerce-form-coupon input.input-text,
.select2-container--default .select2-selection--single {
	width: 100%; padding: 13px 16px !important; border: 1px solid var(--kaise-border) !important;
	background: var(--kaise-light-gray); border-radius: 0 !important; outline: none;
	font-family: 'Inter', sans-serif; font-size: .95rem; color: var(--kaise-dark);
	transition: border-color .2s; height: auto !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus { border-color: var(--kaise-primary) !important; background: #fff; }
.select2-container--default .select2-selection--single { display: flex; align-items: center; }
.select2-dropdown { border-color: var(--kaise-border) !important; border-radius: 0 !important; font-family: 'Inter', sans-serif; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--kaise-primary) !important; }
.woocommerce-checkbox { display: flex !important; align-items: center; gap: 8px; font-size: .9rem; color: var(--kaise-dark); }

/* ---- Carrito: tabla de productos (clásico) ---- */
.woocommerce-cart .kaise-single-product, .woocommerce-cart .kaise-page,
.woocommerce-checkout .kaise-page, .woocommerce-account .kaise-page { padding-top: 60px; padding-bottom: 100px; }
.woocommerce-cart h1.entry-title, .woocommerce-checkout h1.entry-title,
.woocommerce-account h1.entry-title { font-size: 2.5rem; font-weight: 700; color: var(--kaise-dark); text-align: center; margin-bottom: 50px; }
.woocommerce table.cart, .woocommerce table.shop_table { width: 100%; border-collapse: collapse; font-family: 'Inter', sans-serif; }
.woocommerce table.cart th, .woocommerce table.shop_table thead th {
	text-align: left; padding: 12px; font-size: .8rem; font-weight: 600; letter-spacing: .04em;
	text-transform: uppercase; color: var(--kaise-gray); border-bottom: 1px solid var(--kaise-border);
}
.woocommerce table.cart td, .woocommerce table.shop_table td {
	padding: 20px 12px; border-bottom: 1px solid var(--kaise-border); vertical-align: middle; font-size: .95rem; color: var(--kaise-dark);
}
.woocommerce table.cart td.product-thumbnail img, .woocommerce table.shop_table td.product-thumbnail img { width: 76px; height: auto; }
.woocommerce table.cart td.product-name a, .woocommerce table.shop_table td.product-name a { color: var(--kaise-dark); font-weight: 600; text-decoration: none; }
.woocommerce table.cart td.product-name a:hover { color: var(--kaise-primary); }
.woocommerce table.cart td.product-price, .woocommerce table.cart td.product-subtotal { color: var(--kaise-primary); font-weight: 600; }
.woocommerce table.cart td.actions { border-bottom: none; }
.woocommerce a.remove {
	display: inline-flex !important; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50% !important; color: var(--kaise-gray) !important;
	font-size: 1.3rem !important; background: transparent !important; transition: all .2s;
}
.woocommerce a.remove:hover { background: var(--kaise-light-gray) !important; color: #d9302a !important; }

/* ---- Selector de cantidad (−  1  +) ---- */
.woocommerce .quantity { display: inline-flex; align-items: center; border: 1px solid var(--kaise-border); }
.woocommerce .quantity .qty {
	width: 48px; text-align: center; border: none !important; background: transparent !important;
	font-family: 'Inter', sans-serif; font-size: .95rem; color: var(--kaise-dark); padding: 10px 0 !important;
}
.woocommerce .quantity::before, .woocommerce .quantity::after { display: none; } /* por si algún plugin agrega flechas nativas duplicadas */
/* Selector de cantidad del carrito por bloques (Gutenberg) */
.wc-block-components-quantity-selector { border: 1px solid var(--kaise-border) !important; border-radius: 0 !important; }
.wc-block-components-quantity-selector__button { color: var(--kaise-dark) !important; }
.wc-block-components-quantity-selector__input { font-family: 'Inter', sans-serif !important; color: var(--kaise-dark) !important; }

/* ---- Totales del carrito / checkout (columna lateral) ---- */
.woocommerce-cart-form { margin-bottom: 0; }
.cart-collaterals, .woocommerce-checkout-review-order { background: #fff; }
/* Solo el carrito/checkout CLÁSICO (shortcodes). OJO: antes esta regla también incluía
   .wc-block-components-totals-wrapper, pero en el carrito y el checkout por BLOQUES esa clase
   no es "la caja de totales" sino CADA sección interior (producto, cupón, subtotal, total)
   de una tarjeta que ya es una sola caja. Con 32px de relleno y borde propio en cada sección,
   cada una se volvía una caja anidada: en el checkout el nombre del producto quedaba con ~20px
   de ancho y se partía letra por letra, y en el carrito se cortaba la fila de envío. */
.cart_totals, #order_review {
	background: #fff; padding: 32px; border: 1px solid var(--kaise-border) !important; /* antes fondo gris sólido, no quedaba bien */
}

/* Resumen del pedido por bloques (checkout y carrito): el nombre del producto nunca debe quedar
   aplastado por la imagen y la columna de precio. Si la tarjeta es angosta (tablet, columna
   lateral estrecha), la columna del precio se encoge y la insignia "Ahorra $X" baja de línea,
   en vez de quitarle el espacio al nombre. */
.wc-block-components-order-summary-item__description { flex: 1 1 120px; min-width: 120px; }
.wc-block-components-order-summary-item__total-price { flex: 0 1 auto; min-width: 0; text-align: right; }
.wc-block-components-order-summary-item__total-price .wc-block-components-product-badge { white-space: normal; }
.cart_totals h2, .woocommerce-checkout-review-order h3 {
	font-size: 1.25rem; font-weight: 700; color: var(--kaise-dark); margin-bottom: 20px;
	text-transform: uppercase; letter-spacing: .03em;
}
.cart_totals table, #order_review table.shop_table { background: transparent; }
.cart_totals table th, .cart_totals table td,
#order_review table.shop_table th, #order_review table.shop_table td {
	border-bottom: 1px solid rgba(0,0,0,.08); padding: 14px 0; font-size: .92rem;
}
.cart_totals .order-total td, .cart_totals .order-total th,
#order_review .order-total td, #order_review .order-total th {
	font-size: 1.2rem; font-weight: 700; color: var(--kaise-dark); border-bottom: none;
}
.cart_totals .order-total .woocommerce-Price-amount, #order_review .order-total .woocommerce-Price-amount { color: var(--kaise-primary); }
.woocommerce-shipping-totals .amount { font-weight: 600; color: var(--kaise-dark); }
.wc-proceed-to-checkout { margin-top: 24px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; text-align: center; }

/* ---- Cupón de descuento ---- */
.woocommerce-cart-form .coupon { display: flex; gap: 10px; flex-wrap: wrap; }
.woocommerce-cart-form .coupon .input-text {
	flex: 1; min-width: 180px; padding: 13px 16px; border: 1px solid var(--kaise-border);
	background: var(--kaise-light-gray); border-radius: 0; font-family: 'Inter', sans-serif;
}
.woocommerce-cart-form .coupon button.button { background: #fff !important; color: var(--kaise-dark) !important; border-color: var(--kaise-dark) !important; }

/* ---- Checkout: métodos de pago y envío ---- */
ul.wc_payment_methods, ul#shipping_method {
	list-style: none; margin: 0; padding: 0; border: 1px solid var(--kaise-border);
}
ul.wc_payment_methods li, ul#shipping_method li {
	padding: 16px 18px; border-bottom: 1px solid var(--kaise-border); font-size: .95rem;
}
ul.wc_payment_methods li:last-child, ul#shipping_method li:last-child { border-bottom: none; }
ul.wc_payment_methods li input[type="radio"], ul#shipping_method li input[type="radio"] { accent-color: var(--kaise-primary); margin-right: 8px; }
ul.wc_payment_methods li label, ul#shipping_method li label { font-weight: 500; color: var(--kaise-dark); }
.payment_box { background: #fff; border: 1px solid var(--kaise-border); padding: 16px 18px; margin-top: 4px; font-size: .88rem; color: var(--kaise-gray); } /* antes fondo gris sólido */
#order_review_heading, .woocommerce-checkout #order_review_heading { font-size: 1.25rem; font-weight: 700; color: var(--kaise-dark); margin: 40px 0 20px; text-transform: uppercase; letter-spacing: .03em; }

/* ---- Mi Cuenta ---- */
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--kaise-light-gray); padding: 10px 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--kaise-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block; padding: 14px 20px; color: var(--kaise-dark); font-size: .92rem; font-weight: 500;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--kaise-primary); font-weight: 700; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--kaise-primary); }
.woocommerce-account .woocommerce-MyAccount-content { padding-left: 20px; }
.woocommerce-MyAccount-content table.shop_table_responsive th { text-transform: uppercase; letter-spacing: .04em; color: var(--kaise-gray); font-size: .8rem; }
.woocommerce-MyAccount-content .woocommerce-Button { margin-top: 10px; }
.woocommerce-orders-table__cell-order-status { font-weight: 600; }
.woocommerce-address-fields .form-row { margin-bottom: 16px; }
mark.order-status { background: none !important; color: var(--kaise-primary); font-weight: 600; }

/* ---- Login / registro (Mi cuenta y checkout como invitado) ---- */
.woocommerce-form-login, .woocommerce-form-register { max-width: 460px; }
.woocommerce-form-login .form-row, .woocommerce-form-register .form-row { margin-bottom: 16px; }
.woocommerce-form-login .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; font-size: .88rem; color: var(--kaise-gray); }
.woocommerce-LostPassword a, .woocommerce-form-login__submit + p a { color: var(--kaise-primary); }
.u-column1.col-1, .u-column2.col-2 { padding: 32px; background: #fff; border: 1px solid var(--kaise-border); } /* antes fondo gris sólido */

/* ---- Ajustes responsivos ---- */
@media (max-width: 767px) {
	.woocommerce-cart .kaise-page, .woocommerce-checkout .kaise-page { padding-top: 40px; }
	.woocommerce-cart h1.entry-title, .woocommerce-checkout h1.entry-title { font-size: 1.8rem; margin-bottom: 30px; }
	.woocommerce table.cart td.product-thumbnail { display: none; }
	.cart_totals, #order_review { padding: 22px; margin-top: 32px; }
	.u-column1.col-1, .u-column2.col-2 { padding: 22px; }
}

/* =====================================================================
   CARRITO VACÍO (bloque de WooCommerce)
   Antes: carita triste negra genérica, línea de puntos y la grilla "Nuevo en
   la tienda" de WooCommerce (pegada a la izquierda, fotos recortadas en
   cuadrado, botones gris oscuro). Ahora: ícono de bolsa en el azul de la marca
   y la MISMA grilla de productos del resto de las páginas (ver page.php).
   ===================================================================== */
.wp-block-woocommerce-empty-cart-block { padding: 24px 0 0; }
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before {
	width: 72px !important; height: 72px !important; margin-bottom: 20px !important;
	background-color: var(--kaise-primary) !important; /* la bolsa se pinta con el azul de la marca (es una máscara) */
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.3%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M5 8h14l-1 12H6L5 8z%27/%3E%3Cpath d=%27M9 8V6a3 3 0 0 1 6 0v2%27/%3E%3C/svg%3E") !important; mask-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.3%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M5 8h14l-1 12H6L5 8z%27/%3E%3Cpath d=%27M9 8V6a3 3 0 0 1 6 0v2%27/%3E%3C/svg%3E") !important;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-size: 1.5rem !important; font-weight: 700 !important; margin-bottom: 0 !important; }
/* Se oculta lo que WooCommerce agrega debajo del mensaje: la línea de puntos, el título "Nuevo en la tienda" y su grilla */
.wp-block-woocommerce-empty-cart-block .wp-block-separator,
.wp-block-woocommerce-empty-cart-block h2:not(.with-empty-cart-icon),
.wp-block-woocommerce-empty-cart-block .wc-block-grid { display: none !important; }

/* Grilla del tema: solo visible cuando el carrito está vacío (el bloque "empty-cart" existe en la página y el "filled-cart" no).
   Con :not(:has(filled)) no hay destello con el carrito lleno mientras WooCommerce carga. */
.kaise-cart-empty-grid { display: none; }
.kaise-page:has(.wp-block-woocommerce-empty-cart-block):not(:has(.wp-block-woocommerce-filled-cart-block)) .kaise-cart-empty-grid { display: block; }
.kaise-cart-empty-grid .kaise-featured-products { padding-top: 40px; padding-bottom: 0; }
