/*
Theme Name: Axiz
Theme URI: https://axiz.local
Author: Axiz
Description: Tema WooCommerce portado desde el tema Shopify Dawn/Axiz (péptidos con verificación COA). Reutiliza el sistema de diseño de Dawn (base.css + componentes) y añade el puente hacia WooCommerce.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: axiz
Tags: woocommerce, e-commerce, custom-colors, custom-menu, translation-ready
WC requires at least: 8.0
WC tested up to: 9.0
*/

/* ============================================================
   Puente WooCommerce <-> Dawn
   Mapea clases por defecto de WooCommerce al sistema de Dawn.
   ============================================================ */

.axiz-woo {
	padding-top: 3rem;
	padding-bottom: 4rem;
}

/* Botones de WooCommerce con el estilo de Dawn */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	font-family: var(--font-body-family);
	font-size: 1.5rem;
	letter-spacing: .1rem;
	line-height: 1;
	min-height: 4.5rem;
	padding: 1.4rem 3rem;
	border: var(--buttons-border-width) solid rgba(var(--color-button), var(--buttons-border-opacity));
	border-radius: var(--buttons-radius);
	background: rgb(var(--color-button));
	color: rgb(var(--color-button-text));
	cursor: pointer;
	transition: box-shadow .2s ease;
}

/* Hover de los botones de WooCommerce (carrito, checkout, cupón…). Dawn dibujaba
   un doble halo gris-azulado con box-shadow; aquí se sustituye por un
   oscurecido sutil, y las CTA de marca definen su propio hover más abajo. */
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	box-shadow: none;
	filter: brightness(.94);
}
.woocommerce a.button:focus,
.woocommerce button.button:focus,
.woocommerce input.button:focus { box-shadow: none; outline: 0; }
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible { box-shadow: none; outline: 2px solid var(--axiz-ink, #1a1a1a); outline-offset: 2px; }

/* Dawn dibuja el borde de TODOS sus botones con una capa `::after` (box-shadow)
   que además se engrosa al hover, y usa su propio anillo de foco. Como el tema
   define sus fondos y bordes, esa capa sólo se veía como un halo gris-azulado
   (p. ej. en los botones de la bandeja del carrito, que quedan fuera de
   `.woocommerce`). Se retira en todo el sitio: `.button--secondary` —lo único
   que dependía de ella para su borde— no se usa aquí. */
.button::after,
.shopify-challenge__button::after,
.customer button::after { box-shadow: none !important; border: 0 !important; background: none !important; }
.button:focus, .button.focused { box-shadow: none !important; outline: 0; }
.button:focus-visible { box-shadow: none !important; outline: 2px solid var(--axiz-ink, #1a1a1a); outline-offset: 2px; }

/* Barra de anuncio: en escritorio el anuncio va centrado y el selector de región
   absoluto a la derecha (estilos en línea de header.php). En móvil ese absoluto
   se montaba sobre el texto, así que ahí pasan a flujo normal, en una fila que
   puede envolver. Los `!important` son necesarios para ganar al style en línea. */
@media screen and (max-width: 749px) {
	.announcement-bar-section .utility-bar__grid {
		flex-wrap: wrap; gap: .2rem 1rem; padding-top: .6rem; padding-bottom: .6rem;
	}
	.announcement-bar-section .axiz-region-switch {
		position: static !important; transform: none !important;
	}
	.announcement-bar-section .announcement-bar__message { font-size: 1.2rem; }
}

/* Contención de desborde horizontal en las páginas de WooCommerce (shop, carrito,
   checkout, cuenta): evita el scroll lateral que provocan celdas/elementos anchos
   en tablet. `clip` (no `hidden`) no crea contenedor de scroll, así que no rompe
   position:sticky de los totales del carrito/checkout. */
.axiz-woo { overflow-x: clip; }

/* Rejilla de productos: usa la rejilla de Dawn */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--grid-desktop-vertical-spacing) var(--grid-desktop-horizontal-spacing);
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* WooCommerce añade ::before/::after (clearfix) que en un grid ocupan celdas: ocultarlos. */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
	display: none;
}

@media screen and (min-width: 750px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media screen and (min-width: 990px) {
	.woocommerce ul.products.columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* El <li> también lleva `grid__item`, la clase de la rejilla flex de Dawn, que
   impone `width: calc(25% …)` y sobre todo `max-width: calc(50% …)`. Dentro de
   esta rejilla CSS eso dejaba cada tarjeta a la mitad de su columna (y el botón,
   con el min-width de Dawn, se desbordaba y quedaba cortado). Aquí se anulan
   ancho, alto máximo y los gutters propios de esa rejilla: el espaciado lo pone
   el `gap` del grid. */
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.grid__item {
	margin: 0;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	padding-left: 0;
	padding-bottom: 0;
	float: none;
	text-align: var(--product-card-text-alignment);
}

.woocommerce ul.products li.product::before { content: none; }

/* Precio y títulos */
.woocommerce ul.products li.product .price {
	color: rgb(var(--color-foreground));
	font-weight: var(--font-body-weight);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: rgb(var(--color-foreground));
	font-size: 1.8rem;
}

/* Página de producto individual */
.woocommerce div.product .product_title {
	font-size: 3.4rem;
	line-height: 1.15;
	margin-bottom: 1.5rem;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	width: 48%;
}

/* Facets / sidebar del catálogo alineado con Dawn */
.woocommerce .woocommerce-ordering select,
.woocommerce .widget_layered_nav ul {
	font-family: var(--font-body-family);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: rgb(var(--color-button));
	background: rgb(var(--color-background));
	color: rgb(var(--color-foreground));
}
.woocommerce-message::before,
.woocommerce-info::before { color: rgb(var(--color-button)); }

/* base.css oculta los elementos vacíos (`div:empty{display:none}`). Reactivar los
   divs decorativos que solo llevan fondo/imagen (capas del parallax, degradados). */
.axiz-parallax .axiz-parallax__layer,
.axiz-parallax .axiz-parallax__fallback,
.banner .banner__media > div {
	display: block;
}

/* Contenedores de sección */
.section-padding { padding-top: 4rem; padding-bottom: 4rem; }

/* Páginas: contenido a ancho completo, texto plano limitado a ancho legible.
   Las secciones (shortcodes) generan sus propios contenedores full-width. */
.page-content { width: 100%; }
.page-content > p,
.page-content > h1,
.page-content > h2,
.page-content > h3,
.page-content > h4,
.page-content > h5,
.page-content > h6,
.page-content > ul,
.page-content > ol,
.page-content > blockquote,
.page-content > figure,
.page-content > pre,
.page-content > table {
	max-width: 72rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.collection__view-all { margin-top: 3rem; }

/* ============================================================
   Página de producto (layout Dawn con datos WooCommerce)
   ============================================================ */
.axiz-woo .product { max-width: none; }

/* Los elementos personalizados de Dawn deben ser de bloque (por defecto son inline). */
product-form,
variant-selects,
share-button,
slider-component,
cart-drawer { display: block; }

.woocommerce div.product div.images,
.woocommerce div.product div.summary { width: 100%; float: none; margin: 0; }

.woocommerce div.product .woocommerce-product-gallery { margin-bottom: 0; }
.woocommerce div.product .woocommerce-product-gallery__image img {
	border-radius: var(--media-radius);
	border: var(--media-border-width) solid rgba(var(--color-foreground), var(--media-border-opacity));
}

.product__info-container { max-width: 60rem; }
.product__info-container > * + * { margin-top: 1.5rem; }

.woocommerce div.product p.price,
.woocommerce div.product span.price { color: rgb(var(--color-foreground)); font-size: 2.4rem; }
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { text-decoration: none; }
.woocommerce div.product del { opacity: .6; }

/* Cantidad + añadir al carrito */
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 1rem; align-items: stretch; margin: 2rem 0; }
.woocommerce .quantity .qty {
	height: 4.5rem; width: 7rem; text-align: center;
	border: var(--inputs-border-width) solid rgba(var(--color-foreground), var(--inputs-border-opacity));
	border-radius: var(--inputs-radius); background: transparent; color: rgb(var(--color-foreground));
	font-size: 1.6rem;
}
.woocommerce div.product form.cart .button {
	flex: 1 1 auto; min-width: 20rem;
	background: rgb(var(--color-button)); color: rgb(var(--color-button-text));
}
.woocommerce div.product .single_variation_wrap { width: 100%; }

/* Selector de variaciones estilo "pills" de Dawn */
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 1rem; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { padding: .6rem 0; }
.woocommerce div.product form.cart .variations select {
	min-height: 4.5rem; padding: 0 1.2rem;
	border: var(--inputs-border-width) solid rgba(var(--color-foreground), var(--inputs-border-opacity));
	border-radius: var(--inputs-radius); background: transparent; color: rgb(var(--color-foreground));
}

/* Pestañas (descripción / información) */
.woocommerce-tabs { margin-top: 4rem; }
.woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 2rem; border-bottom: .1rem solid rgba(var(--color-foreground), .15); display: flex; gap: 2rem; list-style: none; }
.woocommerce-tabs ul.tabs::before { border: 0; content: none; }
.woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; padding: 0; margin: 0; list-style: none; }
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after,
.woocommerce-tabs ul.tabs li::marker { display: none; content: none; }
.woocommerce-tabs ul.tabs li a { padding: 1rem 0; font-size: 1.6rem; color: rgba(var(--color-foreground), .6); }
.woocommerce-tabs ul.tabs li.active a { color: rgb(var(--color-foreground)); box-shadow: inset 0 -.2rem 0 rgb(var(--color-button)); }
.woocommerce-tabs .panel h2 { font-size: 2rem; }

/* Bloques del port literal de main-product */
.product__info-container .product__text.uppercase {
	text-transform: uppercase; letter-spacing: .13rem; font-size: 1.3rem; opacity: .7; margin-bottom: .5rem;
}
.product__info-container .product__title h1 { font-size: 3.4rem; line-height: 1.15; margin: 0; }
.product__info-container .price--large .price-item { font-size: 2.4rem; }
.product-form__quantity { margin: 2rem 0 1.5rem; }
.product-form__quantity .quantity__label { display: block; margin-bottom: .8rem; font-size: 1.4rem; }
quantity-input.quantity {
	display: inline-grid; grid-template-columns: 4.5rem 6rem 4.5rem; align-items: stretch;
	border: var(--inputs-border-width) solid rgba(var(--color-foreground), var(--inputs-border-opacity));
	border-radius: var(--inputs-radius); overflow: hidden; width: max-content;
}
.quantity__button {
	background: transparent; border: 0; cursor: pointer; color: rgb(var(--color-foreground));
	display: flex; align-items: center; justify-content: center; padding: 0;
}
.quantity__button .svg-wrapper svg { width: 1.4rem; height: 1.4rem; }
/* El click debe registrarse en el <button> (Dawn lee event.target.name), no en el icono. */
.quantity__button .svg-wrapper, .quantity__button svg { pointer-events: none; }
.quantity__input {
	background: transparent; border: 0; text-align: center; color: rgb(var(--color-foreground));
	font-size: 1.6rem; -moz-appearance: textfield; min-height: 4.5rem;
}
.quantity__input::-webkit-outer-spin-button,
.quantity__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.product-form__buttons { margin: 2rem 0; }
.product-form .form,
.product-form__buttons { width: 100%; }
.product-form__submit,
.product-form__submit.button--full-width { width: 100%; min-width: 0; }
.product-form__submit.loading .loading__spinner { display: inline-block; }
.product-form__submit .loading__spinner.hidden { display: none; }

/* CTA de la ficha con la identidad Axiz (Dawn lo dejaba con su color por
   defecto) + hover/focus propios, neutralizando su capa ::after. */
.woocommerce .product-form__submit.button {
	background: var(--axiz-accent, #e09038); color: #1a1a1a; border: 0; border-radius: 6px;
	font-weight: 600; letter-spacing: .01em;
	transition: background var(--axiz-dur, .2s) var(--axiz-ease, ease), color var(--axiz-dur, .2s) var(--axiz-ease, ease);
}
.woocommerce .product-form__submit.button:hover { background: var(--axiz-accent-press, #c4761f); color: #fff; }
/* Variable sin variación elegida / sin stock: apagado y sin hover. */
.woocommerce .product-form__submit.button.disabled,
.woocommerce .product-form__submit.button:disabled,
.woocommerce .product-form__submit.button.disabled:hover,
.woocommerce .product-form__submit.button:disabled:hover {
	background: var(--axiz-surface-sunk, #f3f0ea); color: var(--axiz-ink-3, #877f76);
	cursor: not-allowed; opacity: 1;
}
.product-form__input--pill { border: 0; padding: 0; margin: 0 0 1.5rem; }
.product-form__input--pill .form__label { display: block; margin-bottom: .8rem; font-size: 1.4rem; }
.product__share-wrapper { margin-top: 1.5rem; }
.share-button__button {
	display: inline-flex; align-items: center; gap: .8rem; background: none; border: 0; cursor: pointer;
	color: rgb(var(--color-foreground)); font-size: 1.4rem;
}
.share-button__button .svg-wrapper svg { width: 1.6rem; height: 1.6rem; }
.product__description { margin-top: 2rem; }

.product-secondary { margin-top: 5rem; }
.woocommerce .related > h2,
.woocommerce .upsells > h2 { font-size: 2.8rem; margin-bottom: 2rem; }

/* ============================================================
   Colección / catálogo (estilo Dawn collection)
   ============================================================ */
.woocommerce-products-header { text-align: center; margin-bottom: 3rem; }
.woocommerce-products-header__title,
.woocommerce .page-title {
	font-size: clamp(2.8rem, 5vw, 4.4rem);
	line-height: 1.1;
	margin: 0 0 1rem;
	color: rgb(var(--color-foreground));
}
.woocommerce-products-header .term-description { max-width: 60rem; margin: 0 auto; opacity: .85; }

.woocommerce .woocommerce-result-count { font-size: 1.4rem; opacity: .7; margin-bottom: 1.5rem; }
.woocommerce .woocommerce-ordering select {
	min-height: 4.2rem; padding: 0 1.2rem;
	border: var(--inputs-border-width) solid rgba(var(--color-foreground), var(--inputs-border-opacity));
	border-radius: var(--inputs-radius); background: transparent; color: rgb(var(--color-foreground));
	font-size: 1.4rem;
}
.woocommerce nav.woocommerce-pagination ul { border: 0; margin-top: 3rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	padding: .8rem 1.4rem; border-radius: var(--buttons-radius);
	color: rgb(var(--color-foreground));
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: rgb(var(--color-button)); color: rgb(var(--color-button-text));
}

/* ============================================================
   Shortcodes de contenido: ajustes menores
   ============================================================ */
/* ============================================================
   Cart drawer lateral (mini-cart de WooCommerce con look Dawn)
   ============================================================ */
.drawer { visibility: hidden; }
.drawer.active { visibility: visible; }
body.overflow-hidden { overflow: hidden; }

/* Drawer — diseño propio Axiz (markup mini-cart.php: .axiz-minicart) */
.axiz-cart-drawer .drawer__header { display: flex; align-items: center; justify-content: space-between; padding: 1.8rem 2.4rem; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-cart-drawer .drawer__heading { font-size: 1.8rem; margin: 0; }
.axiz-cart-drawer .drawer__close { border: 0; background: none; cursor: pointer; color: var(--axiz-ink-3, #877f76); }
.axiz-cart-drawer .drawer__close:hover { color: var(--axiz-ink, #1a1a1a); }
.axiz-cart-drawer .drawer__contents { padding: 1.2rem 2.4rem 2.4rem; overflow-y: auto; flex: 1; }

/* Nota: se scopean con .axiz-cart-drawer + 3 clases para GANARLE al CSS core de
   WooCommerce (`.woocommerce ul.cart_list li img{float:right}` etc.), que solo se
   carga en páginas de tienda y por eso rompía la bandeja fuera del inicio. */
.axiz-cart-drawer .widget_shopping_cart_content { padding: 0; }
.axiz-cart-drawer ul.axiz-minicart { margin: 0; padding: 0; list-style: none; }
.axiz-cart-drawer ul.axiz-minicart li.axiz-minicart__item {
	position: relative; display: grid !important; grid-template-columns: 6.4rem 1fr !important; gap: 1.2rem;
	align-items: center; padding: 1.4rem 2.6rem 1.4rem 0 !important; margin: 0;
	border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); float: none !important;
}
.axiz-cart-drawer ul.axiz-minicart li.axiz-minicart__item::before,
.axiz-cart-drawer ul.axiz-minicart li.axiz-minicart__item::after { content: none !important; display: none !important; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__thumb { grid-column: 1; display: block; float: none !important; width: auto !important; margin: 0 !important; padding: 0; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__thumb img {
	float: none !important; width: 6.4rem !important; height: auto; display: block; margin: 0 !important;
	border-radius: 8px; border: 1px solid var(--axiz-hairline, #e9e4dc);
}
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__info { grid-column: 2; min-width: 0; padding: 0; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__name { display: block; font-weight: 600; font-size: 1.45rem; line-height: 1.25; color: var(--axiz-ink, #1a1a1a); text-decoration: none; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__meta { display: block; margin-top: .3rem; padding: 0 !important; border: 0 !important; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__meta .quantity { display: inline !important; float: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-size: 1.3rem; color: var(--axiz-ink-3, #877f76); }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__remove { position: absolute; right: 0; top: 1.4rem; width: 2.2rem; height: 2.2rem; line-height: 2rem; text-align: center; border-radius: 50%; color: var(--axiz-ink-3, #877f76); font-size: 1.8rem; text-decoration: none; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__remove:hover { color: #c0392b; background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-cart-drawer .axiz-minicart__total { display: flex; justify-content: space-between; align-items: baseline; padding: 1.6rem 0; margin: .4rem 0 0; border-top: 1px solid var(--axiz-hairline, #e9e4dc); font-size: 1.7rem; font-weight: 700; }
.axiz-cart-drawer .axiz-minicart__total span { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; text-transform: uppercase; letter-spacing: .08em; font-size: 1.15rem; color: var(--axiz-ink-3, #877f76); font-weight: 400; }
.axiz-cart-drawer .axiz-minicart__buttons { display: flex; flex-direction: column; gap: .8rem; margin: .8rem 0 0; }
.axiz-cart-drawer .axiz-minicart__buttons .button { width: 100%; text-align: center; transition: background var(--axiz-dur, .2s) var(--axiz-ease, ease), color var(--axiz-dur, .2s) var(--axiz-ease, ease), border-color var(--axiz-dur, .2s) var(--axiz-ease, ease); }
.axiz-cart-drawer .axiz-minicart__checkout { background: var(--axiz-accent, #e09038); color: #1a1a1a; border: 0; }
.axiz-cart-drawer .axiz-minicart__view { background: transparent; color: var(--axiz-ink, #1a1a1a); border: 1px solid var(--axiz-hairline-strong, #d8d1c6); }
.axiz-cart-drawer .axiz-minicart__checkout:hover { background: var(--axiz-accent-press, #c4761f); color: #fff; }
.axiz-cart-drawer .axiz-minicart__view:hover { background: var(--axiz-surface-sunk, #f3f0ea); border-color: var(--axiz-ink-3, #877f76); color: var(--axiz-ink, #1a1a1a); }
.axiz-cart-drawer .axiz-minicart__empty { padding: 3rem 0 1.5rem; text-align: center; color: var(--axiz-ink-3, #877f76); }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__item.axiz-cart-oos .axiz-minicart__thumb,
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__item.axiz-cart-oos .axiz-minicart__name,
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__item.axiz-cart-oos .axiz-minicart__meta { opacity: .5; }
.axiz-cart-drawer ul.axiz-minicart .axiz-minicart__item.axiz-cart-oos .axiz-minicart__remove { opacity: 1; }

/* Área de imagen de las tarjetas: fondo claro neutro para que el estado sin
   imagen / durante lazy-load nunca se vea como un bloque oscuro (el card__inner
   usa scheme-2 oscuro por diseño, pero la imagen debe asentarse sobre claro). */
.card-wrapper .card__media,
.card-wrapper .card__inner .media,
.wc-block-grid__product .wc-block-grid__product-image {
	background-color: #f3f3f3;
}
.card-wrapper .card__media img { background-color: #f3f3f3; }

.multicolumn-card__icon-wrapper .svg-wrapper svg { width: 100%; height: 100%; }
.image-with-text__media img { width: 100%; height: 100%; object-fit: cover; }
.image-with-text__media--small { min-height: 24rem; }
.image-with-text__media--medium { min-height: 36rem; }
.image-with-text__media--large { min-height: 48rem; }

/* ============================================================================
   Card de producto "Axiz" — clínica/clara, inspirada en eonpeptides.
   Superficie clara + borde hairline + elevación al hover. Acento naranja de
   marca (#e09038) y sello NFC. Se aplica en home (featured) y en la tienda.
   ========================================================================== */
:root {
	--axiz-accent: #e09038;
	--axiz-accent-press: #c4761f;
	--axiz-accent-tint: #fbefe0;
	--axiz-ink: #1a1a1a;
	--axiz-ink-3: #877f76;
	--axiz-surface: #ffffff;
	--axiz-surface-sunk: #f3f0ea;
	--axiz-hairline: #e9e4dc;
	--axiz-hairline-strong: #d8d1c6;
	--axiz-success: #1d7a4c;
	--axiz-success-tint: #e7f1eb;
	--axiz-card-shadow-1: 0 1px 2px rgba(26,26,26,.05), 0 0 0 1px rgba(26,26,26,.02);
	--axiz-card-shadow-2: 0 10px 26px -8px rgba(26,26,26,.16), 0 0 0 1px rgba(26,26,26,.04);
	--axiz-ease: cubic-bezier(.16,1,.3,1);
	--axiz-dur: 220ms;
}

/* El wrapper anula el estilo de card oscura heredado de Dawn. */
.axiz-pcard-wrapper { height: 100%; }

.axiz-pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--axiz-surface);
	border: 1px solid var(--axiz-hairline);
	border-radius: 12px;
	box-shadow: var(--axiz-card-shadow-1);
	overflow: hidden;
	transition: transform var(--axiz-dur) var(--axiz-ease),
	            box-shadow var(--axiz-dur) var(--axiz-ease),
	            border-color var(--axiz-dur) var(--axiz-ease);
}
.axiz-pcard:hover,
.axiz-pcard:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--axiz-card-shadow-2);
	border-color: var(--axiz-hairline-strong);
}

/* Media */
.axiz-pcard__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: var(--axiz-surface-sunk);
	overflow: hidden;
}
.axiz-pcard__img {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--axiz-surface-sunk);
	transition: transform 450ms var(--axiz-ease);
}
.axiz-pcard__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: var(--axiz-surface-sunk);
}
.axiz-pcard:hover .axiz-pcard__img { transform: scale(1.06); }

/* Chips de datos (mono) */
.axiz-pcard__chips {
	position: absolute;
	top: .7rem; left: .7rem;
	z-index: 2;
	pointer-events: none;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .4rem;
}
.axiz-chip {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.1rem;
	letter-spacing: .03em;
	line-height: 1;
	padding: .35em .6em;
	border-radius: 6px;
	border: 1px solid var(--axiz-hairline-strong);
	background: var(--axiz-surface);
	color: var(--axiz-ink-3);
}
.axiz-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.axiz-chip--nfc { color: var(--axiz-accent-press); border-color: var(--axiz-accent); background: var(--axiz-accent-tint); }
.axiz-chip--pass { color: var(--axiz-success); border-color: rgba(29,122,76,.3); background: var(--axiz-success-tint); }
/* Tipo: Blend resaltado (naranja sólido), Único neutro/sutil. */
.axiz-chip--blend { color: #1a1a1a; border-color: var(--axiz-accent); background: var(--axiz-accent); font-weight: 600; }
.axiz-chip--single { color: var(--axiz-ink-3); border-color: var(--axiz-hairline-strong); background: var(--axiz-surface); }

.axiz-pcard__sale {
	position: absolute;
	top: .7rem; right: .7rem;
	z-index: 2;
	pointer-events: none;
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.05rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	font-weight: 600;
	padding: .35em .55em;
	border-radius: 6px;
	background: var(--axiz-accent);
	color: #1a1a1a;
}

/* Cuerpo */
.axiz-pcard__body {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex: 1;
	padding: 1.2rem 1.3rem 1.3rem;
}
.axiz-pcard__cat {
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.05rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--axiz-ink-3);
}
.axiz-pcard__title {
	margin: 0;
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -.01em;
}
.axiz-pcard__title a { color: var(--axiz-ink); text-decoration: none; }
/* El título abarca toda la card como enlace principal. */
.axiz-pcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Subrayado "tech net": una malla de circuito (traza base + vía con nodo + rama
   a un pad) se repite bajo el nombre, como el ruteo del label de Axiz. Vive
   tenue y siempre visible; al hover de la card se "energiza" a naranja pleno
   revelándose de izquierda a derecha. Va sobre un <span> propio para no
   interferir con el overlay de click del enlace (que sigue en el <a>). */
.axiz-pcard__name {
	position: relative;
	display: inline-block;
	padding-bottom: 13px;
	--axiz-net-faint: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='10' viewBox='0 0 44 10'%3E%3Cg fill='none' stroke='%23e09038' stroke-width='1.3' stroke-opacity='.32'%3E%3Cpath d='M0 7H44'/%3E%3Cpath d='M22 7V3'/%3E%3C/g%3E%3Cg fill='%23e09038' fill-opacity='.32'%3E%3Ccircle cx='8' cy='7' r='2'/%3E%3Ccircle cx='22' cy='2.4' r='1.6'/%3E%3Crect x='32.2' y='5.2' width='3.6' height='3.6'/%3E%3C/g%3E%3C/svg%3E");
	--axiz-net-solid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='10' viewBox='0 0 44 10'%3E%3Cg fill='none' stroke='%23e09038' stroke-width='1.3'%3E%3Cpath d='M0 7H44'/%3E%3Cpath d='M22 7V3'/%3E%3C/g%3E%3Cg fill='%23e09038'%3E%3Ccircle cx='8' cy='7' r='2'/%3E%3Ccircle cx='22' cy='2.4' r='1.6'/%3E%3Crect x='32.2' y='5.2' width='3.6' height='3.6'/%3E%3C/g%3E%3C/svg%3E");
}
.axiz-pcard__name::before,
.axiz-pcard__name::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	height: 10px;
	background-repeat: repeat-x;
	background-position: left center;
	pointer-events: none;
}
.axiz-pcard__name::before { width: 100%; background-image: var(--axiz-net-faint); }
.axiz-pcard__name::after  { width: 0; background-image: var(--axiz-net-solid); transition: width .5s var(--axiz-ease); }
.axiz-pcard:hover .axiz-pcard__name::after,
.axiz-pcard:focus-within .axiz-pcard__name::after { width: 100%; }

.axiz-pcard__dose { margin: 0; font-size: 1.3rem; color: var(--axiz-ink-3); }
.axiz-pcard__dose-inline { font-weight: 400; color: var(--axiz-ink-3); font-size: .82em; white-space: nowrap; margin-left: .35em; }

.axiz-pcard__price {
	margin-top: auto;
	padding-top: .3rem;
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--axiz-ink);
	font-variant-numeric: tabular-nums;
}
.axiz-pcard__price del { color: var(--axiz-ink-3); font-weight: 500; font-size: .85em; margin-left: .4rem; }
.axiz-pcard__price ins { text-decoration: none; }

/* Quick-add: presente pero discreto; se realza al hover de la card. */
.axiz-pcard .quick-add { position: relative; z-index: 2; margin-top: .8rem; }
.axiz-pcard__add.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	/* Dawn impone min-width: 12rem a .button; en una tarjeta estrecha el botón se
	   salía de la card (recortado por su overflow). */
	min-width: 0;
	/* Sin gap: el circuito y la capa "charge" son position:absolute, pero su
	   contenedor sigue siendo flex-item y el gap descentraba el texto. */
	gap: 0;
	text-align: center;
	width: 100%;
	min-height: 0;
	padding: 1rem 1.2rem;
	border-radius: 8px;
	font-size: 1.4rem;
	font-weight: 600;
	background: var(--axiz-surface-sunk);
	color: var(--axiz-ink);
	border: 1px solid var(--axiz-hairline-strong);
	box-shadow: none;
	transition: background var(--axiz-dur) var(--axiz-ease),
	            color var(--axiz-dur) var(--axiz-ease),
	            border-color var(--axiz-dur) var(--axiz-ease);
}
.axiz-pcard:hover .axiz-pcard__add.button {
	background: var(--axiz-accent);
	color: #1a1a1a;
	border-color: var(--axiz-accent);
}
.axiz-pcard__add.button.added { background: var(--axiz-success); color: #fff; border-color: var(--axiz-success); }

/* Móvil: la card mantiene su densidad de datos pero en dos columnas el ancho útil
   baja a ~150px, así que se ajustan tipografías y espaciados, y los chips se
   acotan al ancho de la tarjeta (antes podían desbordar sobre la imagen). */
@media screen and (max-width: 749px) {
	.axiz-pcard__body { padding: 1rem 1rem 1.1rem; gap: .4rem; }
	/* Categorías largas ("Longevidad y anti-aging · Piel y cabello") ocupaban
	   varias líneas y descuadraban la altura de las tarjetas: se recortan. */
	.axiz-pcard__cat { display: block; font-size: 1rem; letter-spacing: .06em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.axiz-pcard__title { font-size: 1.45rem; overflow-wrap: anywhere; }
	.axiz-pcard__name { padding-bottom: 11px; }
	.axiz-pcard__dose { font-size: 1.2rem; }
	.axiz-pcard__price { font-size: 1.5rem; }
	.axiz-pcard__chips { top: .5rem; left: .5rem; right: .5rem; gap: .3rem; }
	.axiz-pcard__chips .axiz-chip { max-width: 100%; font-size: 1rem; padding: .3em .5em; overflow: hidden; }
	.axiz-pcard__chips .axiz-chip span:not(.axiz-dot) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.axiz-pcard__sale { top: .5rem; right: .5rem; font-size: 1rem; }
	.axiz-pcard .quick-add { margin-top: .6rem; }
	.axiz-pcard__add.button { font-size: 1.25rem; padding: .9rem .6rem; line-height: 1.2; }
	/* El hover de la card no aplica en táctil: el botón nace ya con el acento. */
	.axiz-pcard__add.button { background: var(--axiz-accent); color: #1a1a1a; border-color: var(--axiz-accent); }
}

@media (prefers-reduced-motion: reduce) {
	.axiz-pcard,
	.axiz-pcard__img,
	.axiz-pcard__add.button,
	.axiz-pcard__name::after { transition: none; }
	.axiz-pcard:hover { transform: none; }
	.axiz-pcard:hover .axiz-pcard__img { transform: none; }
	/* La malla aparece completa al instante, sin barrido. */
	.axiz-pcard:hover .axiz-pcard__name::after { width: 100%; }
}

/* ============================================================================
   Catálogo — barra de filtro por área de uso (chips multi-selección).
   ========================================================================== */
.axiz-filter {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 0 0 2.4rem;
	padding-bottom: 1.6rem;
	border-bottom: 1px solid var(--axiz-hairline, #e9e4dc);
}
.axiz-filter__group {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .6rem 1.2rem;
}
.axiz-filter__label {
	flex: 0 0 9rem;
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.15rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--axiz-ink-3, #877f76);
}
.axiz-filter__chips { display: flex; flex-wrap: wrap; gap: .6rem; flex: 1; }
.axiz-filter__chip {
	display: inline-flex;
	align-items: center;
	gap: .3em;
	font-size: 1.35rem;
	line-height: 1;
	padding: .6rem 1.1rem;
	border-radius: 999px;
	border: 1px solid var(--axiz-hairline-strong, #d8d1c6);
	background: var(--axiz-surface, #fff);
	color: var(--axiz-ink, #1a1a1a);
	text-decoration: none;
	transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.axiz-filter__chip:hover { border-color: var(--axiz-accent, #e09038); }
.axiz-filter__chip.is-active {
	background: var(--axiz-accent, #e09038);
	border-color: var(--axiz-accent, #e09038);
	color: #1a1a1a;
	font-weight: 600;
}
.axiz-filter__clear {
	font-size: 1.25rem;
	color: var(--axiz-ink-3, #877f76);
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}
.axiz-filter__clear:hover { color: var(--axiz-accent-press, #c4761f); }
@media screen and (max-width: 749px) {
	.axiz-filter__label { width: 100%; }
}

/* ============================================================================
   COA / verificación por lote.
   ========================================================================== */
/* --- Verificador --- */
/* Verificación: dos columnas — formulario (izq.) y guía NFC en panel (der.). */
.axiz-verify__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4vw, 4rem); align-items: start; }
@media screen and (max-width: 900px) { .axiz-verify__grid { grid-template-columns: 1fr; gap: 2.4rem; } }

.axiz-verify__col--form { align-self: center; }
.axiz-verify__head { margin: 0 0 2rem; }
.axiz-verify__eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.2rem; letter-spacing: .12em; text-transform: uppercase; color: var(--axiz-accent-press, #c4761f); margin: 0 0 1rem; }
.axiz-verify__eyebrow .svg-wrapper { width: 1.8rem; height: 1.8rem; color: var(--axiz-accent, #e09038); }
.axiz-verify__sub { font-size: 1.6rem; line-height: 1.55; opacity: .82; margin: .8rem 0 0; }
.axiz-verify__form { display: flex; flex-wrap: wrap; gap: 1rem; margin: 0 0 1.2rem; }
.axiz-verify__input { flex: 1 1 22rem; min-height: 5rem; padding: 0 1.4rem; font-size: 1.6rem; border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px; background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a); }
.axiz-verify__input:focus { outline: 2px solid var(--axiz-accent, #e09038); outline-offset: 1px; }
.axiz-verify__lib { margin-top: 1.6rem; font-size: 1.4rem; }
.axiz-verify__lib a { color: var(--axiz-accent-press, #c4761f); text-decoration: underline; text-underline-offset: 3px; }
.axiz-verify__result { max-width: 92rem; margin: 3rem auto 0; }
.axiz-verify__notfound { max-width: 52rem; margin: 2.4rem 0 0; border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-left: 3px solid #c0392b; border-radius: 8px; padding: 1.4rem 1.6rem; background: var(--axiz-surface, #fff); }
.axiz-verify__notfound p { margin: .3rem 0; font-size: 1.5rem; }

/* Columna derecha: la guía dentro de un panel; pasos apilados en filas compactas. */
.axiz-verify__col--guide { background: var(--axiz-surface-sunk, #f3f0ea); border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 16px; padding: clamp(1.8rem, 3vw, 2.6rem); }
.axiz-verify__col--guide .axiz-nfcguide { max-width: none; margin: 0; }
.axiz-verify__col--guide .axiz-nfcguide__title { text-align: left; font-size: 1.9rem; margin: 0 0 .5rem; }
.axiz-verify__col--guide .axiz-nfcguide__lead { text-align: left; max-width: none; margin: 0 0 1.6rem; font-size: 1.4rem; }
.axiz-verify__col--guide .axiz-nfcguide__tabs { text-align: left; }
.axiz-verify__col--guide .axiz-nfcguide__panel { margin-top: 1.6rem; }
.axiz-verify__col--guide .axiz-nfcguide__steps { grid-template-columns: 1fr; gap: .9rem; }
.axiz-verify__col--guide .axiz-nfcguide__step { display: grid; grid-template-columns: 4.4rem 1fr; column-gap: 1.3rem; align-items: center; padding: 1.2rem 1.4rem; border-radius: 10px; }
.axiz-verify__col--guide .axiz-nfcguide__ic { width: 4.4rem; height: 4.4rem; margin-bottom: 0; grid-row: 1 / 3; align-self: center; }
.axiz-verify__col--guide .axiz-nfcguide__n { display: none; }
.axiz-verify__col--guide .axiz-nfcguide__st { margin: 0 0 .2rem; font-size: 1.5rem; }
.axiz-verify__col--guide .axiz-nfcguide__tip { text-align: left; }

/* Guía de escaneo NFC: pasos con iconos + pestañas Android / iPhone (CSS puro). */
.axiz-nfcguide { max-width: 74rem; margin: 0 auto 1rem; }
.axiz-nfcguide__title { font-size: clamp(2rem, 3.4vw, 2.6rem); font-weight: 700; text-align: center; margin: 0 0 .8rem; }
.axiz-nfcguide__lead { text-align: center; max-width: 52rem; margin: 0 auto 2rem; font-size: 1.5rem; color: var(--axiz-ink-2, #4a453f); }

.axiz-nfcguide__tabs { position: relative; text-align: center; }
.axiz-nfcguide__radio { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.axiz-nfcguide__tab {
	display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-width: 12rem;
	padding: 1rem 1.8rem; border: 1px solid var(--axiz-hairline-strong, #d8d1c6);
	background: var(--axiz-surface, #fff); color: var(--axiz-ink-2, #4a453f);
	font-weight: 600; font-size: 1.45rem; cursor: pointer; transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.axiz-nfcguide__tab .svg-wrapper { display: inline-flex; }
.axiz-nfcguide__tab .svg-wrapper svg,
.axiz-nfcguide__tab .svg-wrapper img { width: 1.7rem; height: 1.7rem; object-fit: contain; }
.axiz-nfcguide__tab:first-of-type { border-radius: 100px 0 0 100px; }
.axiz-nfcguide__tab:last-of-type { border-radius: 0 100px 100px 0; border-left: 0; }
#axiz-nfctab-android:checked ~ label[for="axiz-nfctab-android"],
#axiz-nfctab-ios:checked ~ label[for="axiz-nfctab-ios"] {
	background: var(--axiz-accent, #e09038); border-color: var(--axiz-accent, #e09038); color: #1a1a1a;
}
#axiz-nfctab-android:focus-visible ~ label[for="axiz-nfctab-android"],
#axiz-nfctab-ios:focus-visible ~ label[for="axiz-nfctab-ios"] { outline: 2px solid var(--axiz-ink, #1a1a1a); outline-offset: 2px; }

.axiz-nfcguide__panel { display: none; margin-top: 2rem; }
#axiz-nfctab-android:checked ~ .axiz-nfcguide__panel--android,
#axiz-nfctab-ios:checked ~ .axiz-nfcguide__panel--ios { display: block; }

.axiz-nfcguide__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.axiz-nfcguide__step {
	position: relative; padding: 2.2rem 1.8rem 1.8rem; text-align: left;
	border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 14px; background: var(--axiz-surface, #fff);
	box-shadow: var(--axiz-card-shadow-1);
}
.axiz-nfcguide__ic {
	display: inline-flex; align-items: center; justify-content: center; width: 4.6rem; height: 4.6rem;
	border-radius: 50%; background: var(--axiz-accent-tint, #fbefe0); color: var(--axiz-accent-press, #c4761f); margin-bottom: 1.4rem;
}
.axiz-nfcguide__ic svg { width: 2.4rem; height: 2.4rem; }
.axiz-nfcguide__n { position: absolute; top: 1.6rem; right: 1.8rem; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.3rem; font-weight: 700; color: var(--axiz-hairline-strong, #d8d1c6); }
.axiz-nfcguide__st { margin: 0 0 .4rem; font-size: 1.6rem; font-weight: 700; color: var(--axiz-ink, #1a1a1a); }
.axiz-nfcguide__sd { margin: 0; font-size: 1.38rem; line-height: 1.5; color: var(--axiz-ink-2, #4a453f); }
.axiz-nfcguide__tip { margin: 1.4rem 0 0; text-align: center; font-size: 1.3rem; color: var(--axiz-ink-3, #877f76); }

@media screen and (max-width: 749px) {
	.axiz-nfcguide__steps { grid-template-columns: 1fr; gap: 1rem; }
	.axiz-nfcguide__step { display: grid; grid-template-columns: 4.6rem 1fr; column-gap: 1.4rem; align-items: center; padding: 1.6rem; }
	.axiz-nfcguide__ic { margin-bottom: 0; grid-row: 1 / 3; align-self: start; }
	.axiz-nfcguide__n { display: none; }
	.axiz-nfcguide__st { margin-top: 0; }
}

/* --- Ficha COA (reutilizada en verificador, single y producto) --- */
.axiz-coa { max-width: 62rem; border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; background: var(--axiz-surface, #fff); box-shadow: var(--axiz-card-shadow-1); overflow: hidden; }
.axiz-coa__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.6rem; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-coa__badge { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: 1.45rem; color: var(--axiz-success, #1d7a4c); }
.axiz-coa__badge .svg-wrapper { width: 2rem; height: 2rem; }
.axiz-coa__badge.is-fail { color: #c0392b; }
.axiz-coa__lot { text-align: right; font-size: 1.3rem; }
.axiz-coa__lot-label { display: block; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; text-transform: uppercase; letter-spacing: .1em; color: var(--axiz-ink-3, #877f76); font-size: 1rem; }
.axiz-coa__lot strong { font-size: 1.7rem; letter-spacing: .02em; }
.axiz-coa__grid { margin: 0; padding: .6rem 1.6rem; }
.axiz-coa__row { display: flex; justify-content: space-between; gap: 1.6rem; padding: .9rem 0; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-coa__row:last-child { border-bottom: 0; }
.axiz-coa__row dt { margin: 0; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.15rem; letter-spacing: .06em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); }
.axiz-coa__row dd { margin: 0; font-size: 1.5rem; font-weight: 600; text-align: right; }
.axiz-coa__pdf { display: inline-flex; margin: 1.2rem 1.6rem .4rem; }
.axiz-coa__perma { display: inline-block; margin: 0 1.6rem 1.6rem; font-size: 1.35rem; color: var(--axiz-accent-press, #c4761f); text-decoration: underline; text-underline-offset: 3px; }
.axiz-coa__crumb { font-size: 1.35rem; margin: 0 0 1.6rem; }
.axiz-coa__crumb a, .axiz-coa__verify-again a { color: var(--axiz-accent-press, #c4761f); text-decoration: none; }
.axiz-coa__verify-again { margin-top: 2rem; font-size: 1.4rem; }

/* --- Bloque de lotes en la ficha de producto --- */
.axiz-prod-coa { border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; padding: 1.4rem 1.6rem; }
.axiz-prod-coa__title { display: flex; align-items: center; gap: .6rem; font-size: 1.7rem; margin: 0 0 .4rem; }
.axiz-prod-coa__title .svg-wrapper { width: 2rem; height: 2rem; color: var(--axiz-accent, #e09038); }
.axiz-prod-coa__note { font-size: 1.4rem; opacity: .8; margin: 0 0 1rem; }
.axiz-prod-coa__list { list-style: none; margin: 0; padding: 0; }
.axiz-prod-coa__list li + li { margin-top: .5rem; }
.axiz-prod-coa__list a { display: flex; align-items: center; gap: 1rem; padding: .9rem 1.1rem; border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 8px; text-decoration: none; color: var(--axiz-ink, #1a1a1a); transition: border-color .18s ease; }
.axiz-prod-coa__list a:hover { border-color: var(--axiz-accent, #e09038); }
.axiz-prod-coa__lot { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-weight: 600; }
.axiz-prod-coa__purity { font-size: 1.25rem; color: var(--axiz-success, #1d7a4c); }
.axiz-prod-coa__arrow { margin-left: auto; color: var(--axiz-accent, #e09038); }

/* --- Biblioteca de COA (archivo) --- */
.axiz-coalib__head { max-width: 62rem; margin: 0 0 2.6rem; }
.axiz-coalib__table { border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; overflow: hidden; }
.axiz-coalib__row { display: grid; grid-template-columns: 1.2fr 1.6fr 1fr 1fr .8fr; gap: 1rem; align-items: center; padding: 1.2rem 1.6rem; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); text-decoration: none; color: var(--axiz-ink, #1a1a1a); font-size: 1.45rem; }
.axiz-coalib__row:last-child { border-bottom: 0; }
a.axiz-coalib__row:hover { background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-coalib__row--head { background: var(--axiz-surface-sunk, #f3f0ea); font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.1rem; letter-spacing: .08em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); }
.axiz-coalib__lot { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-weight: 700; }
.axiz-coalib__result { color: var(--axiz-success, #1d7a4c); font-weight: 600; }
.axiz-coalib__result.is-fail { color: #c0392b; }
.axiz-coalib__pager { margin-top: 2rem; display: flex; gap: .6rem; }
@media screen and (max-width: 749px) {
	.axiz-coalib__row { grid-template-columns: 1fr 1fr; font-size: 1.3rem; }
	.axiz-coalib__row > span:nth-child(n+3) { display: none; }
	.axiz-coalib__row--head { display: none; }
}

/* Disponibilidad por localización en la ficha de producto */
.product__inventory { font-size: 1.4rem; font-weight: 600; margin: 0 0 .8rem; display: inline-flex; align-items: center; gap: .5rem; }
.product__inventory::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.product__inventory.in-stock { color: var(--axiz-success, #1d7a4c); }
.product__inventory.out-of-stock { color: #c0392b; }

/* ============================================================================
   Ficha de producto (PDP) — layout clínico tipo eon.
   ========================================================================== */
/* Caja de compra */
.product__eyebrow { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.15rem; letter-spacing: .08em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); margin: 0; }
.product__title h1 { font-size: clamp(2.8rem, 4vw, 3.6rem); line-height: 1.05; letter-spacing: -.01em; margin: 0; }
.product__dose { font-size: 1.5rem; color: var(--axiz-ink-3, #877f76); margin: 0; }
.product__title-dose { font-weight: 400; color: var(--axiz-ink-3, #877f76); font-size: .6em; white-space: nowrap; margin-left: .35em; letter-spacing: 0; }
.product__proof { display: flex; flex-wrap: wrap; gap: .6rem; }
.product__proof .axiz-chip { font-size: 1.2rem; }
.product__reassure { list-style: none; margin: 1rem 0 0; padding: 1.2rem 0 0; border-top: 1px solid var(--axiz-hairline, #e9e4dc); display: grid; gap: .6rem; }
.product__reassure li { position: relative; padding-left: 2rem; font-size: 1.4rem; color: var(--axiz-ink-2, #4a453f); line-height: 1.5; }
.product__reassure li::before { content: "◈"; position: absolute; left: 0; color: var(--axiz-accent, #e09038); }
@media screen and (min-width: 750px) {
	.product__column-sticky { position: sticky; top: 9rem; }
}

/* Panel COA en la columna de medios */
.axiz-coa-panel { margin-top: 1.6rem; border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 14px; background: var(--axiz-surface, #fff); box-shadow: var(--axiz-card-shadow-1); overflow: hidden; }
.axiz-coa-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-coa-panel__head b { display: flex; align-items: center; gap: .5rem; font-size: 1.5rem; }
.axiz-coa-panel__head .svg-wrapper { width: 2rem; height: 2rem; color: var(--axiz-accent, #e09038); }
.axiz-coa-panel__ok { color: var(--axiz-success, #1d7a4c); font-weight: 700; font-size: 1.35rem; }
.axiz-coa-panel__figs { display: grid; grid-template-columns: repeat(3, 1fr); }
.axiz-coa-panel__fig { padding: 1.1rem 1.2rem; border-right: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-coa-panel__fig:last-child { border-right: 0; }
.axiz-coa-panel__fig .n { display: block; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-size: 2rem; font-weight: 600; }
.axiz-coa-panel__fig .l { display: block; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.05rem; letter-spacing: .06em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); margin-top: .2rem; }
.axiz-coa-panel__lots { padding: 1rem 1.2rem; border-top: 1px solid var(--axiz-hairline, #e9e4dc); display: flex; flex-direction: column; gap: .5rem; }
.axiz-coa-panel__lots .lbl { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.05rem; letter-spacing: .04em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); }
.axiz-coa-panel__lot { display: flex; align-items: center; gap: .8rem; padding: .7rem .9rem; border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 8px; text-decoration: none; color: var(--axiz-ink, #1a1a1a); transition: border-color .18s ease; }
.axiz-coa-panel__lot:hover { border-color: var(--axiz-accent, #e09038); }
.axiz-coa-panel__lot .code { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-weight: 700; }
.axiz-coa-panel__lot .pur { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.2rem; color: var(--axiz-success, #1d7a4c); }
.axiz-coa-panel__lot .go { margin-left: auto; color: var(--axiz-accent, #e09038); font-size: 1.3rem; }

/* Especificaciones */
.axiz-specs, .axiz-pdp-info { margin-top: clamp(3rem, 6vw, 5rem); }
.axiz-specs__h { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.2rem; letter-spacing: .14em; text-transform: uppercase; color: var(--axiz-accent-press, #c4761f); margin: 0 0 1.6rem; }
/* Destacado: Peso molecular + CAS (más visibles que el resto de specs). */
.axiz-specs__key { display: flex; flex-wrap: wrap; gap: 1.2rem; margin: 0 0 2rem; }
.axiz-specs__key-item { display: flex; flex-direction: column; gap: .3rem; padding: 1rem 1.6rem; min-width: 14rem; border: 1px solid var(--axiz-hairline, #e9e4dc); border-left: 3px solid var(--axiz-accent, #e09038); border-radius: 10px; background: var(--axiz-surface, #fff); box-shadow: var(--axiz-card-shadow-1); }
.axiz-specs__key-label { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.1rem; letter-spacing: .1em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); }
.axiz-specs__key-val { font-size: 1.9rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--axiz-ink, #1a1a1a); line-height: 1.1; }
.axiz-specs__grid { display: grid; grid-template-columns: 280px 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.axiz-specs__rail { position: sticky; top: 9rem; background: var(--axiz-accent-tint, #fbefe0); border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; padding: 1.4rem; }
.axiz-specs__rail h3 { margin: 0; font-size: 1.5rem; }
.axiz-specs__rail dl { margin: 1.2rem 0 0; display: grid; gap: .8rem; }
.axiz-specs__kv { display: flex; justify-content: space-between; gap: 1rem; font-size: 1.35rem; }
.axiz-specs__kv dt { color: var(--axiz-ink-3, #877f76); margin: 0; }
.axiz-specs__kv dd { margin: 0; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-weight: 600; }
.axiz-specs__rows { border-top: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-specs__row { display: flex; align-items: baseline; gap: 1.6rem; padding: 1.1rem .2rem; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-specs__row .k { flex: 0 0 auto; min-width: 16rem; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.2rem; letter-spacing: .04em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); }
.axiz-specs__row .v { margin-left: auto; text-align: right; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; }
.axiz-pdp-info { max-width: 80rem; }
@media screen and (max-width: 749px) {
	.axiz-specs__grid { grid-template-columns: 1fr; }
	.axiz-specs__rail { position: static; }
	.axiz-specs__row .k { min-width: 0; }
}

/* ============================================================================
   Modal para ver el PDF del COA (estilo eon).
   ========================================================================== */
html.axiz-coamodal-open, html.axiz-coamodal-open body { overflow: hidden; }
.axiz-coamodal { position: fixed; inset: 0; z-index: 100000; display: none; }
.axiz-coamodal[aria-hidden="false"] { display: flex; align-items: center; justify-content: center; padding: 4vh 3vw; }
.axiz-coamodal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.axiz-coamodal__panel { position: relative; width: 100%; max-width: 900px; height: 90vh; display: flex; flex-direction: column; background: var(--axiz-surface, #fff); border-radius: 12px; overflow: hidden; box-shadow: var(--axiz-card-shadow-2, 0 12px 30px -8px rgba(0,0,0,.4)); }
.axiz-coamodal__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.4rem; border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-coamodal__title { font-weight: 700; font-size: 1.5rem; }
.axiz-coamodal__actions { display: flex; align-items: center; gap: 1rem; }
.axiz-coamodal__dl { font-size: 1.35rem; color: var(--axiz-accent-press, #c4761f); text-decoration: underline; text-underline-offset: 3px; }
.axiz-coamodal__close { border: 0; background: none; font-size: 2.6rem; line-height: 1; color: var(--axiz-ink-3, #877f76); cursor: pointer; padding: 0 .4rem; }
.axiz-coamodal__close:hover { color: var(--axiz-ink, #1a1a1a); }
.axiz-coamodal__body { flex: 1; min-height: 0; background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-coamodal__frame { width: 100%; height: 100%; border: 0; display: block; }

/* Fila de lote del panel COA con acciones (PDF + ver COA) */
.axiz-coa-panel__lot .acts { margin-left: auto; display: inline-flex; align-items: center; gap: .8rem; }
.axiz-coa-panel__lot .acts .pdf { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.1rem; font-weight: 700; color: var(--axiz-accent-press, #c4761f); border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 6px; padding: .2rem .5rem; text-decoration: none; }
.axiz-coa-panel__lot .acts .pdf:hover { border-color: var(--axiz-accent, #e09038); }
.axiz-coa-panel__lot .acts .go { color: var(--axiz-accent, #e09038); font-size: 1.25rem; text-decoration: none; white-space: nowrap; }
@media screen and (max-width: 749px) { .axiz-coamodal__panel { height: 84vh; } }

/* Acordeones de "Información" en la ficha de producto — estilo propio limpio. */
.axiz-pdp-info .axiz-specs__h { margin-bottom: 1rem; }
.axiz-pdp-info .accordion { margin-top: 0; border-top: 1px solid var(--axiz-hairline, #e9e4dc); border-bottom: 0; }
.axiz-pdp-info .accordion:last-of-type { border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-pdp-info .accordion summary { padding: 1.6rem .2rem; align-items: center; }
.axiz-pdp-info .accordion__title { font-size: 1.7rem; font-weight: 600; color: var(--axiz-ink, #1a1a1a); max-width: calc(100% - 3rem); }
/* El caret es un <svg class="icon-caret"> directo del summary: base.css lo posiciona
   absoluto y pequeño a la derecha (height .6rem, right 1.5rem). No lo envolvemos. */
.axiz-pdp-info .accordion .icon-caret { color: var(--axiz-ink-3, #877f76); }
.axiz-pdp-info .accordion__content { padding: 0 .2rem; margin-bottom: 1.5rem; }
.axiz-pdp-info .accordion__content p { font-size: 1.5rem; line-height: 1.65; color: var(--axiz-ink-2, #4a453f); margin: 0; max-width: 72ch; }

/* Pill de variación agotada en la región activa */
.product-form__input--pill input:disabled + label,
.product-form__input--pill label.axiz-pill--oos { opacity: .55; text-decoration: line-through; cursor: not-allowed; }
.axiz-pill__oos { text-decoration: none; display: inline-block; margin-left: .5rem; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: .8em; letter-spacing: .04em; text-transform: uppercase; color: #c0392b; }

/* Etiqueta de dosis (variación) en los lotes del panel COA */
.axiz-coa-panel__lot .dose { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.1rem; font-weight: 700; color: var(--axiz-accent-press, #c4761f); background: var(--axiz-accent-tint, #fbefe0); border: 1px solid var(--axiz-accent, #e09038); border-radius: 6px; padding: .1rem .5rem; }

/* ============================================================================
   Carrito y Checkout clásicos — estilo clínico Axiz.
   ========================================================================== */
/* Mismo ancho que el resto del sitio (evita el exceso de margen lateral) y aire antes del footer. */
.woocommerce-cart .page-content, .woocommerce-checkout .page-content { max-width: var(--page-width, 1360px); margin: 0 auto; padding: 0 1.5rem 6rem; }

/* --- Tabla del carrito --- */
.woocommerce table.shop_table { border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; border-collapse: separate; border-spacing: 0; overflow: hidden; margin: 0 0 2rem; }
.woocommerce table.shop_table th { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.15rem; letter-spacing: .08em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); background: var(--axiz-surface-sunk, #f3f0ea); padding: 1.2rem 1.4rem; text-align: left; border: 0; }
.woocommerce table.shop_table td { padding: 1.4rem; border-top: 1px solid var(--axiz-hairline, #e9e4dc); vertical-align: middle; }
.woocommerce table.cart .product-thumbnail img { width: 64px; height: auto; border-radius: 8px; border: 1px solid var(--axiz-hairline, #e9e4dc); }
.woocommerce table.cart .product-name a { font-weight: 600; color: var(--axiz-ink, #1a1a1a); text-decoration: none; }
.woocommerce table.cart .product-name a:hover { color: var(--axiz-accent-press, #c4761f); }
.woocommerce table.cart td.product-price, .woocommerce table.cart td.product-subtotal { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-weight: 600; }
.woocommerce table.cart td.product-remove a.remove { color: #c0392b; font-size: 2rem; line-height: 1; border: 0; }
.woocommerce table.cart td.product-remove a.remove:hover { background: transparent; color: #a93226; }
.woocommerce a.remove { width: auto; height: auto; }

/* --- Maquetación con CSS Grid (no con el motor de tablas) ---
   La fila de acciones lleva colspan="6" (cupón + "actualizar"); con el layout de
   tabla su contenido ensanchaba las columnas y la primera quedaba enorme, con la
   cabecera desalineada respecto a las celdas. Convirtiendo la tabla a bloques y
   maquetando cabecera y filas con las MISMAS pistas de grid, el ancho de cada
   columna es determinista y la fila de acciones ya no influye. */
.woocommerce table.cart.axiz-cart__table { width: 100%; display: block; }
.axiz-cart__table thead, .axiz-cart__table tbody { display: block; width: 100%; }
.axiz-cart__table tr { display: block; }
/* Se prefijan con `.woocommerce table.cart` para ganar a `.woocommerce
   table.shop_table td|th`, que si no impone su borde y su alineación. */
.woocommerce table.cart.axiz-cart__table th,
.woocommerce table.cart.axiz-cart__table td { display: block; border: 0; }
.woocommerce table.cart.axiz-cart__table th.product-price,
.woocommerce table.cart.axiz-cart__table th.product-subtotal { text-align: right; }
.woocommerce table.cart.axiz-cart__table th.product-quantity { text-align: center; }
.axiz-cart__table thead tr,
.axiz-cart__table tr.woocommerce-cart-form__cart-item {
	display: grid;
	grid-template-columns: 4rem 8.4rem minmax(0, 1fr) 11rem 10rem 11rem;
	align-items: center;
}
.axiz-cart__table tr.woocommerce-cart-form__cart-item { border-top: 1px solid var(--axiz-hairline, #e9e4dc); }
.axiz-cart__table td.product-remove { text-align: center; padding-left: 1rem; padding-right: 0; }
.axiz-cart__table td.product-thumbnail a { display: block; }
.axiz-cart__table td.product-thumbnail img { margin: 0; display: block; max-width: 100%; }
.axiz-cart__table th.product-name, .axiz-cart__table td.product-name { text-align: left; word-break: break-word; }
.axiztotals-cart__table th.product-price, .axiz-cart__table td.product-price,
.axiz-cart__table th.product-subtotal, .axiz-cart__table td.product-subtotal { text-align: right; white-space: nowrap; }
.axiz-cart__table th.product-quantity, .axiz-cart__table td.product-quantity { text-align: center; }
.axiz-cart__table td.actions { width: 100%; border-top: 1px solid var(--axiz-hairline, #e9e4dc); }

/* Cantidad: un solo input limpio. El <div class="quantity"> no debe pintar caja
   propia (se veía una segunda caja alrededor del campo). */
.axiz-cart__table td.product-quantity .quantity {
	display: inline-flex !important; margin: 0 auto; float: none !important;
	border: 0 !important; padding: 0 !important; background: none !important; width: auto !important;
}
.axiz-cart__table td.product-quantity .quantity label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.axiz-cart__table td.product-quantity .quantity .qty {
	width: 6rem !important; min-height: 4rem; text-align: center; padding: .4rem;
	border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px;
	background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a);
	font-size: 1.5rem; -moz-appearance: textfield;
}
.axiz-cart__table td.product-quantity .quantity .qty::-webkit-outer-spin-button,
.axiz-cart__table td.product-quantity .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.axiz-cart__table td.product-name::before, .axiz-cart__table td.product-price::before,
.axiz-cart__table td.product-quantity::before, .axiz-cart__table td.product-subtotal::before { content: none !important; }

/* Responsive: apila cada línea en tarjeta (sin :has() para navegadores viejos).
   Usa el mismo corte que el resto del tema (749px); con 640px la tabla de 6
   columnas seguía en modo escritorio en tablets estrechas. */
@media screen and (max-width: 749px) {
	.axiz-cart__table, .axiz-cart__table tbody, .axiz-cart__table thead, .axiz-cart__table tr, .axiz-cart__table td { display: block !important; width: auto !important; }
	.axiz-cart__table thead { display: none !important; }
	.axiz-cart__table tr.woocommerce-cart-form__cart-item {
		position: relative; padding: 1.4rem 1.4rem 1.4rem 9rem; min-height: 8rem;
		border-top: 1px solid var(--axiz-hairline, #e9e4dc);
	}
	.axiz-cart__table tr.woocommerce-cart-form__cart-item td { border: 0 !important; padding: .2rem 0 !important; }
	.axiz-cart__table td.product-thumbnail { position: absolute; left: 1.4rem; top: 1.4rem; width: 6.4rem !important; }
	.axiz-cart__table td.product-remove { position: absolute; right: 1rem; top: 1rem; }
	.axiz-cart__table td.product-price, .axiz-cart__table td.product-quantity, .axiz-cart__table td.product-subtotal { text-align: left !important; }
	/* Sin cabeceras visibles, cada celda recupera su etiqueta desde data-title. */
	.axiz-cart__table td.product-price::before,
	.axiz-cart__table td.product-quantity::before,
	.axiz-cart__table td.product-subtotal::before {
		content: attr(data-title) ": " !important;
		font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
		font-size: 1.15rem; letter-spacing: .08em; text-transform: uppercase;
		color: var(--axiz-ink-3, #877f76); margin-right: .6rem;
	}
}

/* Inputs (cupón, cantidad, checkout) */
.woocommerce .input-text, .woocommerce input[type="text"], .woocommerce input[type="email"], .woocommerce input[type="tel"], .woocommerce input[type="password"], .woocommerce textarea, .woocommerce select, .select2-container .select2-selection {
	border: 1px solid var(--axiz-hairline-strong, #d8d1c6) !important; border-radius: 8px !important; min-height: 4.6rem; padding: .5rem 1.2rem; background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a); font-size: 1.5rem; }
.woocommerce .cart .actions { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; }
.woocommerce .cart .actions .coupon { display: flex; gap: .6rem; }
.woocommerce .cart .actions .button { transition: background var(--axiz-dur, .2s) var(--axiz-ease, ease), color var(--axiz-dur, .2s) var(--axiz-ease, ease); }
.woocommerce .cart .actions .button:hover:not(:disabled) { background: var(--axiz-accent-press, #c4761f); color: #fff; filter: none; }
.woocommerce .cart .actions .button:disabled { cursor: not-allowed; filter: none; }
/* Móvil: el cupón y "actualizar" no caben en una fila; se apilan y el input se
   encoge (min-width:0 evita el desbordamiento clásico de los ítems flex). */
@media screen and (max-width: 749px) {
	.woocommerce .cart .actions { flex-direction: column; align-items: stretch; }
	.woocommerce .cart .actions .coupon .input-text { flex: 1 1 auto; min-width: 0; width: auto; }
	.woocommerce .cart .actions .coupon .button { flex: 0 0 auto; }
	.woocommerce .cart .actions > .button { width: 100%; }
}

/* Layout del carrito: tabla ancha a la izquierda, totales (ancho fijo) a la derecha. */
@media screen and (min-width: 900px) {
	.axiz-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 36rem; gap: 3rem; align-items: start; }
	.axiz-cart-layout .woocommerce-cart-form { min-width: 0; margin: 0; }
	.axiz-cart-layout .cart-collaterals { position: sticky; top: 9rem; margin: 0; min-width: 0; }
}
.axiz-cart-layout .woocommerce-cart-form .shop_table { margin-bottom: 0; }

/* Totales del carrito */
.cart-collaterals { margin-top: 2.4rem; }
.cart-collaterals .cart_ { width: 100%; border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; padding: 1.6rem 1.8rem; background: var(--axiz-surface, #fff); box-shadow: var(--axiz-card-shadow-1); }
.cart_totals h2 { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.3rem; letter-spacing: .12em; text-transform: uppercase; color: var(--axiz-accent-press, #c4761f); margin: 0 0 1rem; }
.cart_totals table { border: 0; margin: 0; width: 100%; }
.cart_totals table th { background: transparent; text-transform: none; letter-spacing: 0; font-family: var(--font-body-family); color: var(--axiz-ink-2, #4a453f); padding: .8rem 0; border: 0; }
.cart_totals table td { padding: .8rem 0; border: 0; text-align: right; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 1.7rem; font-weight: 700; border-top: 1px solid var(--axiz-hairline, #e9e4dc); padding-top: 1.2rem; }
.wc-proceed-to-checkout { padding-top: 1.4rem !important; }
.wc-proceed-to-checkout a.checkout-button { display: block; width: 100%; text-align: center; background: var(--axiz-accent, #e09038); color: #1a1a1a; transition: background var(--axiz-dur, .2s) var(--axiz-ease, ease), color var(--axiz-dur, .2s) var(--axiz-ease, ease); }
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--axiz-accent-press, #c4761f); color: #fff; filter: none; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals { width: 100%; }
.woocommerce #content table.cart td.actions .input-text, .woocommerce table.cart td.actions .input-text, .woocommerce-page #content table.cart td.actions .input-text, .woocommerce-page table.cart td.actions .input-text { width: 380px; max-width: 100%; box-sizing: border-box; }
/* --- Checkout ---
   Fila 1: facturación (izq) + resumen (der). Fila 2: envío + notas, a lo ancho. */
@media screen and (min-width: 900px) {
	.woocommerce-checkout form.checkout.axiz-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 40rem; gap: 0 3rem; align-items: start; }
	.axiz-checkout__billing { grid-column: 1; grid-row: 1; min-width: 0; }
	/* Sin position:sticky: en fila 1 tapaba el bloque de envío/notas (fila 2). */
	.axiz-checkout__review  { grid-column: 2; grid-row: 1; min-width: 0; }
	.axiz-checkout__extra   { grid-column: 1 / -1; grid-row: 2; margin-top: 3rem; }
}
/* Envío + notas a lo ancho: en desktop, sus dos secciones lado a lado. */
@media screen and (min-width: 700px) {
	.axiz-checkout__extra .woocommerce-shipping-fields,
	.axiz-checkout__extra .woocommerce-additional-fields { }
	.axiz-checkout__extra { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
	.axiz-checkout__extra .woocommerce-shipping-fields:only-child,
	.axiz-checkout__extra .woocommerce-additional-fields:only-child { grid-column: 1 / -1; }
}
.woocommerce-checkout h3 { font-size: 2rem; margin-bottom: 1.2rem; }
.woocommerce-checkout #order_review, .woocommerce-checkout #order_review_heading + #order_review { border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 12px; padding: 1.6rem 1.8rem; background: var(--axiz-surface, #fff); }
.woocommerce-checkout .woocommerce-checkout-review-order-table th { background: transparent; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td, .woocommerce-checkout .order-total td { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; text-align: right; }
.woocommerce-checkout #payment { background: var(--axiz-surface-sunk, #f3f0ea); border-radius: 10px; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--axiz-hairline, #e9e4dc); }
.woocommerce #payment #place_order, .woocommerce-checkout #place_order { width: 100%; background: var(--axiz-accent, #e09038); color: #1a1a1a; font-size: 1.6rem; transition: background var(--axiz-dur, .2s) var(--axiz-ease, ease), color var(--axiz-dur, .2s) var(--axiz-ease, ease); }
.woocommerce #payment #place_order:hover, .woocommerce-checkout #place_order:hover { background: var(--axiz-accent-press, #c4761f); color: #fff; filter: none; }
.woocommerce form .form-row label { font-size: 1.35rem; color: var(--axiz-ink-2, #4a453f); }

/* Avisos con acento de marca */
.woocommerce-message, .woocommerce-info { border-top-color: var(--axiz-accent, #e09038); }

/* El loader-anillo del botón "Añadir al carrito" fue reemplazado por el circuito
   del logo (más abajo). Solo queda neutralizar el spinner SVG de Dawn y la
   atenuación de WooCommerce durante el estado .loading de las cards. */
.axiz-pcard .axiz-pcard__add.button.loading { opacity: 1 !important; }
.woocommerce .product-form__submit.button.loading { opacity: 1 !important; }
.woocommerce .product-form__submit.button .loading__spinner { display: none !important; }

/* ============================================================================
   Add-to-cart · circuito del logo. En hover, el ruteo de la marca (núcleo +
   buses + trazas ortogonales + vías) se graba tenue y el núcleo late; al añadir,
   la corriente sale del núcleo por las trazas y el botón se carga desde el centro
   hasta el check verde. El SVG del circuito y el disco de carga los inyecta
   assets/axiz-addbtn.js (clases .busy / .done; ver .axiz-btnfx*). Una máscara despeja el footprint
   detrás del texto para que el label siempre se lea.
   ========================================================================== */
.axiz-btnfx { position: relative; overflow: hidden; isolation: isolate; }
.axiz-btnfx__label { position: relative; z-index: 6; display: inline-flex; align-items: center; gap: .5rem; transition: color .2s ease; }
.axiz-btnfx__label svg { display: block; }
.axiz-btnfx__chk { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 22; stroke-dashoffset: 22; }
.axiz-addbtn.done .axiz-btnfx__chk { animation: axiz-chk .38s ease .05s forwards; }
@keyframes axiz-chk { to { stroke-dashoffset: 0; } }

/* Disco de carga radial desde el centro. Se recorta con clip-path dentro de la
   caja del botón (inset:0), así nunca puede desbordar aunque algún estilo
   nativo deje el overflow visible. */
.axiz-btnfx__charge { position: absolute; inset: 0; z-index: 1; pointer-events: none;
	clip-path: circle(0% at 50% 50%);
	background: color-mix(in srgb, var(--axiz-accent-press, #c4761f) 55%, #1a1a1a 45%); }

/* Circuito (réplica del logo) con footprint despejado detrás del texto */
.axiz-btnfx__circuit { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; opacity: 0; pointer-events: none; overflow: visible; transition: opacity .3s ease;
	-webkit-mask-image: radial-gradient(ellipse 40% 26% at 50% 50%, transparent 0 74%, #000 100%);
	        mask-image: radial-gradient(ellipse 40% 26% at 50% 50%, transparent 0 74%, #000 100%); }
.axiz-btnfx__circuit .trace { fill: none; stroke: #1a1a1a; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 100; }
.axiz-btnfx__circuit .via, .axiz-btnfx__circuit .corec { fill: #1a1a1a; }
.axiz-btnfx__circuit .ringc { fill: none; stroke: #1a1a1a; stroke-width: 1.6; }

/* Hover: circuito grabado tenue + núcleo latiendo */
.axiz-btnfx:hover .axiz-btnfx__circuit, .axiz-btnfx:focus-visible .axiz-btnfx__circuit { opacity: .38; }
.axiz-btnfx:hover .corec, .axiz-btnfx:focus-visible .corec { animation: axiz-core 2s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes axiz-core { 0%,100% { transform: scale(1); } 50% { transform: scale(1.28); } }

/* Añadiendo: corriente desde el núcleo + carga radial + label blanco */
.axiz-btnfx.busy .axiz-btnfx__circuit { opacity: 1; }
.axiz-btnfx.busy .trace { stroke: #ffe3b3; filter: drop-shadow(0 0 2px rgba(255,205,130,.9)); animation: axiz-draw .5s ease .06s forwards; }
.axiz-btnfx.busy .via, .axiz-btnfx.busy .corec { fill: #ffe3b3; }
.axiz-btnfx.busy .ringc { stroke: #ffe3b3; }
@keyframes axiz-draw { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
.axiz-btnfx.busy .axiz-btnfx__charge { animation: axiz-charge .6s cubic-bezier(.4,0,.2,1) .12s forwards; }
@keyframes axiz-charge { to { clip-path: circle(140% at 50% 50%); } }
.axiz-btnfx.busy .axiz-btnfx__label, .axiz-addbtn.done .axiz-btnfx__label { color: #fff !important; }

/* Terminado: verde + check */
.axiz-addbtn.done { background: var(--axiz-success, #2f9e6b) !important; border-color: var(--axiz-success, #2f9e6b) !important; }
.axiz-addbtn.done .axiz-btnfx__charge { clip-path: circle(140% at 50% 50%); background: var(--axiz-success, #2f9e6b); }
.axiz-addbtn.done .axiz-btnfx__circuit { opacity: 0; }

/* (La capa `::after` de Dawn y su anillo de foco se retiran globalmente arriba.)
   WooCommerce sí dibuja su propio check (content "\e017" de su icon-font) en los
   botones con clase `added`; sobra porque la animación ya muestra el suyo. */
.axiz-addbtn.added::after, .axiz-btnfx.button.added::after { content: none !important; margin: 0 !important; }

/* WooCommerce añade un enlace "Ver carrito" junto al botón tras añadir. El drawer
   ya se abre solo, así que se oculta (CSS, para que no llegue a parpadear; el JS
   además lo quita del DOM). */
a.added_to_cart, .added_to_cart.wc-forward { display: none !important; }

/* Neutraliza el loader-anillo viejo cuando corre el circuito (cards con .loading) */
.axiz-btnfx.button.loading { color: inherit !important; }
.axiz-btnfx.button.loading::after { display: none !important; content: none !important; }

@media (prefers-reduced-motion: reduce) {
	.axiz-btnfx__circuit, .axiz-btnfx__charge { transition: none; }
	.axiz-btnfx.busy .trace, .axiz-btnfx:hover .corec, .axiz-btnfx.busy .axiz-btnfx__charge { animation: none; }
	.axiz-btnfx.busy .axiz-btnfx__charge { clip-path: circle(140% at 50% 50%); }
	.axiz-btnfx.busy .trace { stroke-dashoffset: 0; }
}

/* ============================================================================
   Modal de captación de leads.
   ========================================================================== */
html.axiz-leadmodal-open, html.axiz-leadmodal-open body { overflow: hidden; }
.axiz-leadmodal { position: fixed; inset: 0; z-index: 100000; display: none; }
.axiz-leadmodal[aria-hidden="false"] { display: flex; align-items: center; justify-content: center; padding: 5vh 4vw; }
.axiz-leadmodal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); }
.axiz-leadmodal__panel { position: relative; width: 100%; max-width: 460px; background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a); border-radius: 14px; padding: 2.6rem 2.4rem 2.2rem; box-shadow: var(--axiz-card-shadow-2, 0 14px 34px -10px rgba(0,0,0,.5)); border-top: 4px solid var(--axiz-accent, #e09038); }
.axiz-leadmodal__close { position: absolute; top: 1rem; right: 1.2rem; border: 0; background: none; font-size: 2.4rem; line-height: 1; color: var(--axiz-ink-3, #877f76); cursor: pointer; }
.axiz-leadmodal__close:hover { color: var(--axiz-ink, #1a1a1a); }
.axiz-leadmodal__eyebrow { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.15rem; letter-spacing: .12em; text-transform: uppercase; color: var(--axiz-accent-press, #c4761f); margin: 0 0 .6rem; }
.axiz-leadmodal__title { font-size: 2.1rem; line-height: 1.15; margin: 0 0 .6rem; letter-spacing: -.01em; }
.axiz-leadmodal__sub { font-size: 1.45rem; line-height: 1.5; color: var(--axiz-ink-2, #4a453f); margin: 0 0 1.4rem; }
.axiz-leadmodal__form { display: flex; gap: .7rem; }
.axiz-leadmodal__form input { flex: 1; min-height: 4.8rem; padding: 0 1.3rem; font-size: 1.5rem; border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px; background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a); }
.axiz-leadmodal__form input:focus { outline: 2px solid var(--axiz-accent, #e09038); outline-offset: 1px; }
.axiz-leadmodal__form .button { background: var(--axiz-accent, #e09038); color: #1a1a1a; border: 0; border-radius: 8px; padding: 0 1.6rem; font-weight: 700; cursor: pointer; }
.axiz-leadmodal__msg { min-height: 1.6rem; margin: .8rem 0 0; font-size: 1.35rem; color: var(--axiz-success, #1d7a4c); }
.axiz-leadmodal__fine { margin: .6rem 0 0; font-size: 1.15rem; color: var(--axiz-ink-3, #877f76); }

/* Ítem de carrito no disponible en la región activa (opaco, solo quitar) */
.axiz-cart-oos { opacity: .55; }
.axiz-cart-oos .quantity, .axiz-cart-oos .product-quantity, .axiz-cart-oos .product-price,
.axiz-cart-oos .product-subtotal, .axiz-cart-oos .woocommerce-mini-cart-item__quantity,
.axiz-cart-oos .quantity input { pointer-events: none; }
.axiz-cart-oos .product-remove, .axiz-cart-oos .product-remove a, .axiz-cart-oos a.remove { pointer-events: auto; opacity: 1; }
.axiz-cart-oos__flag { display: block; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .04em; color: #c0392b; margin-top: .3rem; }

/* ============================================================================
   Página de contacto (custom).
   ========================================================================== */
.axiz-contact { max-width: 1080px; margin: 0 auto; }
.axiz-contact__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.axiz-contact__eyebrow { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.2rem; letter-spacing: .14em; text-transform: uppercase; color: var(--axiz-accent-press, #c4761f); margin: 0 0 .6rem; }
.axiz-contact__info h2 { margin: 0 0 1rem; }
.axiz-contact__lead { font-size: 1.6rem; line-height: 1.55; color: var(--axiz-ink-2, #4a453f); margin: 0 0 2rem; }
.axiz-contact__details { display: grid; gap: 1.2rem; margin: 0 0 2rem; }
.axiz-contact__details dt { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: 1.1rem; letter-spacing: .08em; text-transform: uppercase; color: var(--axiz-ink-3, #877f76); }
.axiz-contact__details dd { margin: .2rem 0 0; font-size: 1.6rem; }
.axiz-contact__details a { color: var(--axiz-accent-press, #c4761f); text-decoration: none; }
.axiz-contact__details a:hover { text-decoration: underline; }
.axiz-contact__note { font-size: 1.3rem; color: var(--axiz-ink-3, #877f76); border-left: 3px solid var(--axiz-accent, #e09038); padding-left: 1.2rem; }
.axiz-contact__formwrap { border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 14px; padding: 2rem 2.2rem; background: var(--axiz-surface, #fff); box-shadow: var(--axiz-card-shadow-1); }
.axiz-contact__form { display: grid; gap: 1.4rem; }
.axiz-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.axiz-contact__form label { display: flex; flex-direction: column; gap: .5rem; }
.axiz-contact__form label span { font-size: 1.3rem; color: var(--axiz-ink-2, #4a453f); }
.axiz-contact__form input, .axiz-contact__form textarea { border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px; min-height: 4.6rem; padding: .6rem 1.2rem; font-size: 1.5rem; background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a); font-family: inherit; }
.axiz-contact__form textarea { min-height: 12rem; padding: 1rem 1.2rem; resize: vertical; }
.axiz-contact__form input:focus, .axiz-contact__form textarea:focus { outline: 2px solid var(--axiz-accent, #e09038); outline-offset: 1px; }
.axiz-contact__form .button { justify-self: start; background: var(--axiz-accent, #e09038); color: #1a1a1a; border: 0; }
@media screen and (max-width: 749px) { .axiz-contact__grid, .axiz-contact__row { grid-template-columns: 1fr; } }

/* ============================================================================
   Cuenta: login / registro (formularios auth).
   ========================================================================== */
.axiz-auth { max-width: 1080px; margin: 0 auto; }
.axiz-auth__card { max-width: 46rem; margin: 0 auto; border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 14px; padding: 2.4rem 2.4rem 2rem; background: var(--axiz-surface, #fff); box-shadow: var(--axiz-card-shadow-1); }
.axiz-auth__card--wide { max-width: 68rem; }
.axiz-auth__card h1 { margin: 0 0 .6rem; }
.axiz-auth__lead { font-size: 1.45rem; line-height: 1.5; color: var(--axiz-ink-2, #4a453f); margin: 0 0 1.6rem; }
.axiz-auth__error { color: #c0392b; font-size: 1.4rem; margin: 0 0 1.2rem; border-left: 3px solid #c0392b; padding-left: 1rem; }
.axiz-auth__form { display: grid; gap: 1.3rem; margin-top: 1.4rem; }
.axiz-auth__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
.axiz-auth__form label { display: flex; flex-direction: column; gap: .5rem; }
.axiz-auth__form label span { font-size: 1.3rem; color: var(--axiz-ink-2, #4a453f); }
.axiz-auth__form input, .axiz-auth__form select { border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px; min-height: 4.6rem; padding: .6rem 1.2rem; font-size: 1.5rem; background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a); font-family: inherit; }
.axiz-auth__form input:focus, .axiz-auth__form select:focus { outline: 2px solid var(--axiz-accent, #e09038); outline-offset: 1px; }
.axiz-auth__check { flex-direction: row !important; align-items: flex-start; gap: .8rem; font-size: 1.3rem; line-height: 1.5; color: var(--axiz-ink-2, #4a453f); }
.axiz-auth__check input { min-height: 0; width: 1.8rem; height: 1.8rem; margin-top: .2rem; accent-color: var(--axiz-accent, #e09038); }
.axiz-auth__form .button { justify-self: start; background: var(--axiz-accent, #e09038); color: #1a1a1a; border: 0; }
.axiz-auth__hint { font-size: 1.2rem; color: var(--axiz-ink-3, #877f76); line-height: 1.4; }
.axiz-auth__note { font-size: 1.25rem; line-height: 1.5; color: var(--axiz-ink-2, #4a453f); margin: 0; padding: 1rem 1.2rem; border-left: 3px solid var(--axiz-accent, #e09038); background: rgba(224, 144, 56, .08); border-radius: 0 8px 8px 0; }
.axiz-ab__hint { font-size: 1.2rem; color: var(--axiz-ink-3, #877f76); line-height: 1.4; }
.axiz-auth__links { margin-top: 1.4rem; font-size: 1.35rem; }
.axiz-auth__links a { color: var(--axiz-accent-press, #c4761f); text-decoration: none; }
@media screen and (max-width: 749px) { .axiz-auth__row { grid-template-columns: 1fr; } }

/* ============================ Mi cuenta (perfil) ========================== */
/* La página de cuenta es una Page con el shortcode [woocommerce_my_account];
   se renderiza dentro de .page-content, cuyo hijo .woocommerce no recibía
   padding lateral (pegaba al borde). Aquí se le da contenedor, padding y un
   layout de 2 columnas (sidebar + contenido) que colapsa en móvil. */
.woocommerce-account .page-content{ padding-top: 1rem; }
.woocommerce-account .woocommerce{
	width: 100%; max-width: var(--page-width, 1200px);
	margin: 0 auto; padding: 0 3rem 5rem;
	display: grid; grid-template-columns: 26rem minmax(0, 1fr);
	gap: 2.6rem; align-items: start;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper{ grid-column: 1 / -1; }

/* --- Sidebar de navegación --- */
/* Alta especificidad para anular el float:left;width:30% del CSS de WooCommerce
   (woocommerce-layout.css) y dejar que el grid controle la colocación. */
.woocommerce-account .woocommerce-MyAccount-navigation.axiz-acct-nav{
	float: none; width: auto; margin: 0; grid-column: 1;
}
.axiz-acct-nav__toggle{ display: none; }
.axiz-acct-nav__list{
	list-style: none; margin: 0; padding: .8rem;
	display: flex; flex-direction: column; gap: .3rem;
	background: var(--axiz-surface, #fff);
	border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 14px;
	box-shadow: var(--axiz-card-shadow-1);
	position: sticky; top: 2rem;
}
.axiz-acct-nav__list li{ margin: 0; }
.axiz-acct-nav__list li::before{ content: none; }
.axiz-acct-nav__list a{
	display: flex; align-items: center; gap: .9rem;
	padding: 1rem 1.2rem; border-radius: 10px;
	color: var(--axiz-ink, #1a1a1a); text-decoration: none;
	font-size: 1.45rem; font-weight: 500; line-height: 1.2;
	transition: background var(--axiz-dur, 220ms) var(--axiz-ease, ease), color var(--axiz-dur, 220ms) var(--axiz-ease, ease);
}
.axiz-acct-nav__list a:hover{ background: var(--axiz-surface-sunk, #f3f0ea); }
.axiz-acct-nav__list .is-active a{
	background: var(--axiz-accent-tint, #fbefe0);
	color: var(--axiz-accent-press, #c4761f); font-weight: 700;
}
.axiz-acct-nav__icon{ display: inline-flex; flex: 0 0 auto; width: 2rem; height: 2rem; color: currentColor; }
.axiz-acct-nav__icon svg{ width: 100%; height: 100%; display: block; }
.axiz-acct-nav__text{ min-width: 0; }
.axiz-acct-nav__list .woocommerce-MyAccount-navigation-link--customer-logout a{ color: #b0392b; }
.axiz-acct-nav__list .woocommerce-MyAccount-navigation-link--customer-logout a:hover{ background: #fbece9; }

/* --- Contenido --- */
.woocommerce-account .woocommerce-MyAccount-content{
	float: none; width: auto; margin: 0; min-width: 0; grid-column: 2;
	background: var(--axiz-surface, #fff);
	border: 1px solid var(--axiz-hairline, #e9e4dc); border-radius: 14px;
	padding: 2.6rem 2.8rem; box-shadow: var(--axiz-card-shadow-1);
}
.woocommerce-account .woocommerce-MyAccount-content > :first-child{ margin-top: 0; }
.woocommerce-account .woocommerce-MyAccount-content table{ max-width: 100%; }

/* Tablet: sidebar arriba, a lo ancho. */
@media (max-width: 900px){
	.woocommerce-account .woocommerce{ grid-template-columns: 1fr; gap: 1.8rem; padding: 0 2rem 4rem; }
	.woocommerce-account .woocommerce-MyAccount-navigation.axiz-acct-nav,
	.woocommerce-account .woocommerce-MyAccount-content{ grid-column: 1; }
	.axiz-acct-nav__list{ position: static; }
}

/* Móvil: sidebar como desplegable (toggle por JS). */
@media (max-width: 749px){
	.woocommerce-account .woocommerce{ padding: 0 1.4rem 3.5rem; }
	.woocommerce-account .woocommerce-MyAccount-content{ padding: 1.8rem 1.6rem; }
	.axiz-acct-nav__toggle{
		display: flex; align-items: center; justify-content: space-between; gap: 1rem;
		width: 100%; padding: 1.2rem 1.4rem;
		background: var(--axiz-surface, #fff);
		border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 10px;
		font-family: inherit; font-size: 1.5rem; font-weight: 600;
		color: var(--axiz-ink, #1a1a1a); cursor: pointer;
	}
	.axiz-acct-nav__chevron{
		flex: 0 0 auto; width: .9rem; height: .9rem;
		border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
		transform: rotate(45deg); transition: transform var(--axiz-dur, 220ms) var(--axiz-ease, ease);
	}
	.axiz-acct-nav.is-open .axiz-acct-nav__chevron{ transform: rotate(-135deg); }
	.axiz-acct-nav__list{ display: none; margin-top: .6rem; }
	.axiz-acct-nav.is-open .axiz-acct-nav__list{ display: flex; }
}

/* --- Recuperar / restablecer contraseña (endpoint sin sidebar) --- */
/* Estas vistas no tienen navegación, así que el grid de 2 columnas comprimía el
   contenido en la 1ª columna. Las mostramos como una tarjeta centrada, al estilo
   de login/registro. Se apoya en la clase de body .woocommerce-lost-password. */
.woocommerce-lost-password .woocommerce{
	display: block;
	max-width: 56rem;
	margin: 0 auto 4rem;
	padding: 2.6rem 2.8rem 3rem;
	background: var(--axiz-surface, #fff);
	border: 1px solid var(--axiz-hairline, #e9e4dc);
	border-radius: 14px;
	box-shadow: var(--axiz-card-shadow-1);
}
.woocommerce-lost-password .woocommerce form.woocommerce-ResetPassword{ margin: 0; }
.woocommerce-lost-password .woocommerce form.woocommerce-ResetPassword > p:first-of-type{
	margin: 0 0 1.6rem; font-size: 1.45rem; line-height: 1.55; color: var(--axiz-ink-2, #4a453f);
}
.woocommerce-lost-password .woocommerce .form-row{
	float: none; width: 100%; display: flex; flex-direction: column; gap: .5rem; margin: 0 0 1.4rem; padding: 0;
}
.woocommerce-lost-password .woocommerce .form-row label{ font-size: 1.35rem; font-weight: 600; }
.woocommerce-lost-password .woocommerce input.input-text{
	width: 100%; min-height: 4.6rem; padding: .6rem 1.2rem;
	border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px;
	font-size: 1.5rem; font-family: inherit;
	background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a);
}
.woocommerce-lost-password .woocommerce input.input-text:focus{ outline: 2px solid var(--axiz-accent, #e09038); outline-offset: 1px; }
.woocommerce-lost-password .woocommerce .form-row .button{ width: auto; }

@media (max-width: 749px){
	.woocommerce-lost-password .woocommerce{ max-width: none; margin: 0 0 3rem; padding: 1.8rem 1.6rem 2.2rem; }
}

/* Barra "sitio en preparación" (modo WIP / catálogo sin ventas). */
.axiz-wip-bar {
	position: relative; z-index: 60; text-align: center;
	background: repeating-linear-gradient(45deg, #1a1a1a, #1a1a1a 14px, #211c14 14px, #211c14 28px);
	color: #f8f8f8; font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.2rem; letter-spacing: .06em; padding: .7rem 1.5rem;
	border-bottom: 2px solid var(--axiz-accent, #e09038);
}

/* ============================ T&C + cuenta (item 2) ======================== */
/* Disclaimer para no logueados (ficha, carrito, drawer) */
.axiz-acct-note{
	margin: 1rem 0; padding: 1rem 1.2rem;
	background: #fff8ef; border: 1px solid var(--axiz-accent, #e09038);
	border-radius: 8px; font-size: 1.4rem; line-height: 1.5;
}
.axiz-acct-note__msg{ margin: 0 0 .4rem; color: #4a3b28; }
.axiz-acct-note__cta{ margin: 0; font-weight: 600; }
.axiz-acct-note__cta a{ color: var(--axiz-accent, #e09038); text-decoration: underline; }

/* Botón "Realizar pedido" bloqueado hasta aceptar términos */
#place_order.axiz-disabled,
#place_order:disabled{ opacity: .5; cursor: not-allowed; pointer-events: none; }

/* Modal de términos */
.axiz-tos{ position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.axiz-tos[hidden]{ display: none; }
.axiz-tos__overlay{ position: absolute; inset: 0; background: rgba(20,24,28,.55); }
.axiz-tos__panel{
	position: relative; z-index: 1; width: min(64rem, 92vw); max-height: 88vh;
	display: flex; flex-direction: column; background: #fff; border-radius: 12px;
	box-shadow: 0 24px 64px rgba(0,0,0,.3); overflow: hidden;
}
.axiz-tos__head{
	display: flex; align-items: center; justify-content: space-between;
	padding: 1.4rem 1.8rem; border-bottom: 1px solid #ececec;
}
.axiz-tos__head h2{ margin: 0; font-size: 1.9rem; }
.axiz-tos__x{ background: none; border: 0; font-size: 2.6rem; line-height: 1; cursor: pointer; color: #666; }
.axiz-tos__body{ padding: 1.8rem; overflow-y: auto; font-size: 1.45rem; line-height: 1.6; color: #333; }
.axiz-tos__body h1, .axiz-tos__body h2, .axiz-tos__body h3{ margin: 1.4rem 0 .6rem; }
.axiz-tos__body p{ margin: 0 0 1rem; }
.axiz-tos__foot{
	display: flex; align-items: center; justify-content: space-between; gap: 1.2rem;
	padding: 1.4rem 1.8rem; border-top: 1px solid #ececec; flex-wrap: wrap;
}
.axiz-tos__hint{ margin: 0; font-size: 1.3rem; color: #a06a1f; }
.axiz-tos__accept:disabled{ opacity: .5; cursor: not-allowed; }

/* ========================= Libreta de direcciones (item 6) ================= */
/* Mi cuenta */
.axiz-ab__list{ list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1rem; }
.axiz-ab__item{
	display: flex; align-items: flex-start; justify-content: space-between; gap: 1.2rem;
	padding: 1.2rem 1.4rem; border: 1px solid #e6e6e6; border-radius: 8px; background: #fff;
}
.axiz-ab__info{ display: flex; flex-direction: column; gap: .3rem; }
.axiz-ab__label{ font-size: 1.55rem; }
.axiz-ab__addr{ font-size: 1.35rem; color: #666; }
.axiz-ab__actions{ display: flex; align-items: center; gap: .6rem; flex-shrink: 0; }
.axiz-ab__actions form{ margin: 0; }
.axiz-ab__del{ background: #fff; border: 1px solid #d9534f; color: #d9534f; }
.axiz-ab__form-title{ margin: 1.5rem 0 1rem; }
.axiz-ab__form{
	display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.4rem;
}
.axiz-ab__field{ margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.axiz-ab__field label{ font-size: 1.35rem; font-weight: 600; }
.axiz-ab__field input,
.axiz-ab__field select{
	width: 100%; min-height: 4.4rem; padding: .5rem 1.1rem;
	border: 1px solid var(--axiz-hairline-strong, #d8d1c6); border-radius: 8px;
	font-size: 1.5rem; font-family: inherit;
	background: var(--axiz-surface, #fff); color: var(--axiz-ink, #1a1a1a);
}
.axiz-ab__field input:focus,
.axiz-ab__field select:focus{ outline: 2px solid var(--axiz-accent, #e09038); outline-offset: 1px; }
.axiz-ab__field--label, .axiz-ab__field--address_1, .axiz-ab__submit{ grid-column: 1 / -1; }
.axiz-ab__submit{ display: flex; gap: .8rem; align-items: center; }
@media (max-width: 560px){ .axiz-ab__form{ grid-template-columns: 1fr; } }

/* Selector en el checkout */
.axiz-ab-pick{
	margin: 0 0 1.6rem; padding: 1.2rem 1.4rem;
	background: #f6f8fa; border: 1px solid #e2e6ea; border-radius: 8px;
}
.axiz-ab-pick label{ display: block; font-weight: 600; margin-bottom: .5rem; font-size: 1.4rem; }
.axiz-ab-pick select{ width: 100%; }
.axiz-ab-pick__hint{ margin: .5rem 0 0; font-size: 1.25rem; color: #667; }
.axiz-ab-pick__hint a{ color: var(--axiz-accent, #e09038); text-decoration: underline; }

/* ===================== Modo contacto / gracias (item 7) =================== */
.axiz-contact-thanks{
	margin: 0 0 2rem; padding: 1.6rem 1.8rem;
	background: #f0f9f2; border: 1px solid #bfe3c8; border-radius: 10px;
}
.axiz-contact-thanks h3{ margin: 0 0 .6rem; }
.axiz-contact-thanks p{ margin: 0 0 1rem; font-size: 1.45rem; line-height: 1.55; }
.axiz-contact-thanks__cta{ margin: 0; }
.axiz-contact-thanks__cta .button{
	background: #25d366; border-color: #25d366; color: #fff;
}
.axiz-contact-thanks__cta .button:hover{ background: #1eb457; border-color: #1eb457; }
