/* ==========================================================================
   Aerya · shop.css — solo páginas WooCommerce.
   Tarjeta/precio/estrellas: sections/product-card.css · Drawer: sections/drawer.css
   ========================================================================== */

/* ---------- Migas y avisos ---------- */
.breadcrumb { padding-block: var(--space-5) var(--space-4); font-size: var(--fs-xs); color: var(--c-muted); }
.product-page > .breadcrumb + * { margin-top: var(--space-2); }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: var(--c-ink); text-decoration: underline; }
.breadcrumb__sep { margin-inline: var(--space-2); opacity: .5; }

/* ---------- Avisos de WooCommerce (clásicos + bloques) ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	--n: var(--c-success); --n-soft: #eef8f1;
	position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4);
	margin: var(--space-4) 0; padding: var(--space-4) var(--space-4) var(--space-4) calc(var(--space-4) + 42px); list-style: none;
	background: linear-gradient(90deg, var(--n-soft), var(--c-bg) 55%); border: 1px solid var(--c-line); border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm); font-size: var(--fs-sm); line-height: 1.5; color: var(--c-ink); overflow: hidden;
	animation: aerya-notice .4s var(--ease) both;
}
.woocommerce-message::after, .woocommerce-info::after, .woocommerce-error::after, .wc-block-components-notice-banner::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--n); }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
	content: "\2713"; position: absolute; left: var(--space-4); top: calc(var(--space-4) - 2px);
	display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
	background: var(--n); color: #fff; font: 800 14px/1 var(--font-body);
}
.woocommerce-info, .wc-block-components-notice-banner.is-info { --n: var(--c-accent); --n-soft: #eef1ff; }
.woocommerce-info::before { content: "i"; font-family: Georgia, serif; font-style: italic; font-size: 15px; }
.woocommerce-error, .wc-block-components-notice-banner.is-error { --n: var(--c-error); --n-soft: #fdecec; }
.woocommerce-error::before { content: "!"; }
.wc-block-components-notice-banner.is-warning { --n: #b7791f; --n-soft: #fff6e0; }
ul.woocommerce-error { padding: var(--space-4) var(--space-4) var(--space-4) calc(var(--space-4) + 42px); } /* gana al reset ul[class] */
.woocommerce-error li { flex-basis: 100%; }
.woocommerce-error li + li { padding-top: var(--space-2); border-top: 1px dashed var(--c-line); }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button { order: 3; margin-left: auto; min-height: 36px; padding: .45em 1.1em; font-size: var(--fs-xs); }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button), .woocommerce-error a:not(.button), .wc-block-components-notice-banner a { font-weight: 700; color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.wc-block-components-notice-banner > svg { position: absolute; left: var(--space-4); top: calc(var(--space-4) - 2px); width: 28px; height: 28px; padding: 5px; border-radius: 50%; background: var(--n); fill: #fff; }
.wc-block-components-notice-banner__content { flex: 1; min-width: 0; }
.wc-block-components-notice-banner__dismiss { margin-left: auto; min-height: 32px !important; width: 32px; padding: 0 !important; border-radius: 50% !important; background: transparent !important; border: 0 !important; color: var(--c-muted) !important; }
.wc-block-components-notice-banner__dismiss:hover { background: var(--c-surface) !important; color: var(--c-ink) !important; }
.wc-block-components-validation-error { font-size: var(--fs-xs); color: var(--c-error); font-weight: 600; }
.wc-block-components-validation-error > p { display: flex; align-items: center; gap: 6px; }
.wc-block-components-validation-error > p::before { content: "!"; display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--c-error); color: #fff; font-size: 11px; font-weight: 800; }
body .wc-block-components-notice-snackbar-list .wc-block-components-notice-banner { padding: var(--space-3) var(--space-4) var(--space-3) calc(var(--space-4) + 42px); border-radius: var(--radius-md); background: var(--c-ink); color: var(--c-bg); border-color: var(--c-ink); box-shadow: var(--shadow-md); }
body .wc-block-components-notice-snackbar-list .wc-block-components-notice-banner > svg { top: 50%; transform: translateY(-50%); }
@keyframes aerya-notice { from { opacity: 0; transform: translateY(-6px); } }

/* Botones nativos de Woo con los tokens del tema */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce-page .button, .wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 44px; padding: .65em 1.4em;
	border: 2px solid var(--c-ink); border-radius: var(--radius-pill); background: var(--c-ink); color: var(--c-bg);
	font-weight: 700; font-size: var(--fs-sm); line-height: 1.1; text-decoration: none; cursor: pointer;
	transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.woocommerce .button:hover, .woocommerce-page .button:hover, .wc-block-components-button:not(.is-link):hover { background: var(--c-ink-soft); border-color: var(--c-ink-soft); color: var(--c-bg); }
.woocommerce .button.alt, .woocommerce-page .button.alt, .checkout-button, #place_order { background: var(--c-accent); border-color: var(--c-accent); color: var(--c-accent-ink); }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .45; cursor: not-allowed; }

/* ---------- Archivo ---------- */
.shop-head { display: grid; gap: var(--space-3); padding-block: var(--space-2) var(--space-5); }
.shop-head__title { font-size: var(--fs-h1); }
.shop-head__desc { max-width: 60ch; color: var(--c-muted); }

.pills { margin-bottom: var(--space-5); }
.pills__list { display: flex; gap: var(--space-2); overflow-x: auto; overflow-y: hidden; scrollbar-width: none; padding-bottom: var(--space-1); }
.pill-link { display: inline-flex; align-items: center; min-height: 40px; padding: 0 var(--space-4); border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); font-size: var(--fs-sm); font-weight: 600; text-decoration: none; white-space: nowrap; }
.pill-link:hover, .pill-link[aria-current="page"] { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-bg); }

.shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); margin-bottom: var(--space-5); font-size: var(--fs-sm); color: var(--c-muted); }
.woocommerce-ordering { display: flex; gap: var(--space-2); }
.woocommerce-ordering select { min-height: 40px; padding: 0 1em; border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); background: var(--c-bg); color: var(--c-ink); font-weight: 600; }

ul.products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.products__item, ul.products > li { min-width: 0; }
@media (min-width: 640px) { ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } }
@media (min-width: 1024px) { ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); } }
@media (max-width: 479px) { ul.products .product-card__body { padding: var(--space-3); } }

.woocommerce-pagination { margin-block: var(--space-7) var(--space-4); }
.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 var(--space-3); border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); font-weight: 700; text-decoration: none; }
.woocommerce-pagination .page-numbers .current { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-bg); }
.woocommerce-no-products-found { padding-block: var(--space-6); }

/* ---------- Ficha: layout ---------- */
.product-page { padding-bottom: var(--space-section); }
.product-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
@media (min-width: 1024px) {
	.product-layout { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); gap: var(--space-7); align-items: start; }
	.product-layout__gallery { position: sticky; top: calc(var(--header-h) + var(--space-5)); }
}

/* Galería */
.gallery { display: grid; gap: var(--space-3); }
.gallery__main { position: relative; margin: 0; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius-lg); background: var(--c-surface); }
.gallery__main-link { display: block; height: 100%; cursor: zoom-in; }
.gallery__img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s var(--ease); }
.gallery__main-link.is-zoom .gallery__img { transform: scale(1.8); }
.gallery__thumbs { display: flex; gap: var(--space-2); overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.gallery__thumb { display: block; width: 72px; height: 72px; overflow: hidden; border: 2px solid transparent; border-radius: var(--radius-sm); background: var(--c-surface); opacity: .7; transition: opacity var(--dur), border-color var(--dur); }
.gallery__thumb:hover { opacity: 1; }
.gallery__thumb[aria-current="true"] { border-color: var(--c-ink); opacity: 1; }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) { .gallery__thumb { width: 88px; height: 88px; } }

/* Lightbox */
.lightbox { width: 100vw; max-width: 100vw; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: rgb(14 15 18 / .94); color: var(--c-on-dark); }
.lightbox::backdrop { background: transparent; }
.lightbox__inner { position: relative; display: grid; place-items: center; width: 100%; height: 100%; padding: var(--space-7) var(--space-4); }
.lightbox__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.lightbox .icon-btn { position: absolute; background: rgb(255 255 255 / .12); color: inherit; }
.lightbox .icon-btn:hover { background: rgb(255 255 255 / .25); }
.lightbox__close { top: var(--space-3); right: var(--space-3); }
.lightbox__nav { top: 50%; transform: translateY(-50%); }
.lightbox__nav--prev { left: var(--space-3); }
.lightbox__nav--next { right: var(--space-3); }
.lightbox__count { position: absolute; bottom: var(--space-4); left: 0; right: 0; text-align: center; font-size: var(--fs-sm); }

/* Resumen */
.summary { display: grid; gap: var(--space-4); align-content: start; }
.summary > .rating { margin-bottom: calc(var(--space-2) * -1); }
.product-title { font-size: clamp(2.25rem, 1.7rem + 2.4vw, 3.5rem); }
.product-subtitle { font-size: var(--fs-md); color: var(--c-muted); }
.summary .price-block__now { font-size: var(--fs-lg); }
.unit-price { margin-top: calc(var(--space-3) * -1); font-size: var(--fs-sm); color: var(--c-muted); }
.product-excerpt { color: var(--c-ink-soft); }
.product-excerpt > * + * { margin-top: .75em; }
.product-stock { font-size: var(--fs-sm); font-weight: 600; color: var(--c-success); }
.product-stock:empty { display: none; }
.product-sku { font-size: var(--fs-xs); color: var(--c-muted); }

/* Formulario de variaciones */
.variations_form { display: grid; gap: var(--space-5); }
.attr { margin: 0; padding: 0; border: 0; min-width: 0; }
.attr__legend { margin-bottom: var(--space-3); padding: 0; font-size: var(--fs-sm); font-weight: 700; }
.attr__legend span { font-weight: 500; color: var(--c-muted); }

.swatches, .pill-opts { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.swatch { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; cursor: pointer; }
.swatch__dot { width: 34px; height: 34px; border-radius: 50%; background: var(--swatch, var(--c-surface-2)); box-shadow: inset 0 0 0 1px rgb(14 15 18 / .15); transition: box-shadow var(--dur) var(--ease); }
.swatch input:checked + .swatch__dot { box-shadow: 0 0 0 2px var(--c-bg), 0 0 0 4px var(--c-ink); }
.swatch input:focus-visible + .swatch__dot { outline: 3px solid var(--c-accent); outline-offset: 5px; }
.swatch.is-oos .swatch__dot, .pill.is-oos .pill__txt { opacity: .4; background-image: linear-gradient(135deg, transparent 47%, var(--c-muted) 48% 52%, transparent 53%); }
.swatch input:disabled + .swatch__dot { cursor: not-allowed; }

.pill { cursor: pointer; }
.pill__txt { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-4); border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); font-weight: 600; font-size: var(--fs-sm); }
.pill input:checked + .pill__txt { border-color: var(--c-ink); background: var(--c-ink); color: var(--c-bg); }
.pill input:focus-visible + .pill__txt { outline: 3px solid var(--c-accent); outline-offset: 2px; }

.packs { display: grid; gap: var(--space-3); }
.pack { position: relative; display: block; cursor: pointer; }
.pack__box {
	display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--space-1) var(--space-3);
	padding: var(--space-4); border: 2px solid var(--c-line); border-radius: var(--radius-md); background: var(--c-bg);
	transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.pack:hover .pack__box { border-color: var(--c-muted); }
.pack input:checked + .pack__box { border-color: var(--c-ink); background: var(--c-surface); box-shadow: inset 0 0 0 1px var(--c-ink); }
.pack input:focus-visible + .pack__box { outline: 3px solid var(--c-accent); outline-offset: 2px; }
.pack input:disabled + .pack__box { opacity: .45; cursor: not-allowed; }
.pack.is-oos .pack__box { border-style: dashed; }
.pack__name { font-weight: 800; font-size: var(--fs-md); }
.pack__tag { position: absolute; top: 0; right: var(--space-4); transform: translateY(-50%); }
.pack--popular .pack__box { padding-top: var(--space-5); }
.pack__prices { grid-row: span 2; display: grid; justify-items: end; text-align: right; }
.pack__price { font-weight: 800; font-size: var(--fs-md); }
.pack__old { font-size: var(--fs-sm); color: var(--c-muted); }
.pack__unit { font-size: var(--fs-sm); color: var(--c-muted); }
.pack__save { justify-self: start; grid-column: 1; }

/* Cantidad + botón */
.atc-row { display: flex; gap: var(--space-3); align-items: stretch; }
.atc-row .btn { flex: 1; min-width: 0; min-height: 56px; padding-inline: 1em; font-size: var(--fs-md); white-space: nowrap; }
@media (max-width: 479px) { .atc-row .btn { font-size: var(--fs-base); } .atc-sep, .atc-price { display: none; } .qty__btn { width: 34px; } .qty__input { width: 2.25rem; } }
.qty { display: inline-flex; align-items: center; flex: none; border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); }
.qty__btn { width: 40px; height: 100%; min-height: 52px; border: 0; background: none; font-size: 1.25rem; font-weight: 700; border-radius: var(--radius-pill); }
.qty__input { width: 3.25rem; min-height: 52px; border: 0; background: none; text-align: center; font-weight: 700; appearance: textfield; -moz-appearance: textfield; }
.qty__input::-webkit-inner-spin-button, .qty__input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.qty__input:focus-visible { outline-offset: -3px; }
.atc-msg:not(:empty) { margin-top: var(--space-2); padding: var(--space-2) var(--space-3); border-left: 3px solid var(--c-error); background: var(--c-surface); font-size: var(--fs-sm); }

/* Simple (formulario nativo de Woo) */
.atc-simple form.cart { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.atc-simple .quantity .qty { width: 5rem; min-height: 56px; padding: 0 var(--space-3); border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); text-align: center; font-weight: 700; }
.woocommerce .atc-simple .single_add_to_cart_button { flex: 1; min-height: 56px; background: var(--c-ink); border-color: var(--c-ink); color: var(--c-bg); font-size: var(--fs-md); }
.stock { font-size: var(--fs-sm); font-weight: 600; }
.stock.out-of-stock { color: var(--c-error); }

/* Confianza y beneficios */
.trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-2); padding: var(--space-2) 0; text-align: center; font-size: var(--fs-xs); font-weight: 600; }
.trust-row li { display: grid; justify-items: center; gap: var(--space-2); }
.trust-row .icon { width: 1.5rem; height: 1.5rem; }
.benefits { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.benefits__item { display: grid; gap: var(--space-1); padding: var(--space-4); border-radius: var(--radius-md); background: var(--c-surface); }
.benefits__icon { width: 1.75rem; height: 1.75rem; margin-bottom: var(--space-1); color: var(--c-accent); }
.benefits__title { font-weight: 700; line-height: 1.25; }
.benefits__text { font-size: var(--fs-sm); color: var(--c-muted); }
.product-accordion .accordion__summary { font-size: var(--fs-md); }

/* Compra junto con */
.bundle { display: grid; gap: var(--space-3); padding: var(--space-4); border: 1.5px solid var(--c-line); border-radius: var(--radius-md); }
.bundle__title { font: 700 var(--fs-md)/1.2 var(--font-body); text-transform: none; letter-spacing: 0; }
.bundle__list { display: grid; gap: var(--space-3); }
.bundle__item { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: var(--space-3); }
.bundle__img img { width: 56px; height: 56px; border-radius: var(--radius-sm); object-fit: cover; background: var(--c-surface); }
.bundle__info { display: grid; gap: 2px; min-width: 0; font-size: var(--fs-sm); }
.bundle__name { font-weight: 700; text-decoration: none; }
.bundle .price-block__now { font-size: var(--fs-sm); }
.bundle .price-block__badge { display: none; }

/* Barra fija móvil */
/* Barra de compra inferior + desplegable de opciones */
.buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: grid; gap: var(--space-2); padding: 0 var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom)); pointer-events: none; transform: translateY(130%); transition: transform .45s var(--ease); }
.buybar.is-visible { transform: none; }
.buybar.is-visible > * { pointer-events: auto; }
.buybar__bar, .buybar__sheet { width: 100%; max-width: 46rem; margin-inline: auto; background: rgb(255 255 255 / .92); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: 0 16px 44px rgb(14 15 18 / .18); }
.buybar__bar { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-2) var(--space-2) var(--space-2); }
.buybar__thumb img { width: 48px; height: 48px; border-radius: var(--radius-sm); object-fit: cover; background: var(--c-surface); }
.buybar__toggle { display: grid; min-width: 0; padding: var(--space-1) 0; border: 0; background: none; text-align: left; cursor: pointer; }
.buybar__name { overflow: hidden; font-size: var(--fs-sm); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.buybar__sel { display: flex; align-items: center; gap: 4px; min-width: 0; font-size: var(--fs-xs); font-weight: 600; color: var(--c-accent); }
.buybar__sel > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.buybar__chev { flex: none; width: 14px; height: 14px; transition: transform var(--dur) var(--ease); }
.buybar.is-open .buybar__chev { transform: rotate(180deg); }
.buybar__end { display: flex; align-items: center; gap: var(--space-3); }
.buybar__price { font-weight: 800; white-space: nowrap; }
.buybar__btn { min-height: 44px; padding-inline: 1.1em; }
.buybar__btn .icon { width: 18px; height: 18px; }
.buybar__sheet { max-height: min(68vh, 36rem); overflow-y: auto; overscroll-behavior: contain; padding: var(--space-5); animation: buysheet-in .35s var(--ease) both; transform-origin: bottom center; }
.buybar__opts { display: grid; gap: var(--space-5); }
.buybar__opts .packs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.buybar__opts .pack__box { display: grid; grid-template-columns: 1fr; justify-items: center; gap: 4px; min-height: 100%; padding: var(--space-4) var(--space-2) var(--space-3); text-align: center; }
.buybar__opts .pack__name { font-size: var(--fs-base); }
.buybar__opts .pack__prices { grid-row: auto; justify-items: center; text-align: center; }
.buybar__opts .pack__price { font-size: var(--fs-sm); }
.buybar__opts .pack__old, .buybar__opts .pack__unit { display: none; }
.buybar__opts .pack__save { justify-self: center; grid-column: auto; padding: .25em .55em; font-size: 10px; white-space: nowrap; }
.buybar__opts .pack__tag { right: 50%; transform: translate(50%, -50%); font-size: 9px; white-space: nowrap; }
.buybar__go { min-height: 52px; }
@keyframes buysheet-in { from { opacity: 0; transform: translateY(14px) scale(.98); } }
@media (max-width: 479px) {
	.buybar__price { font-size: var(--fs-sm); }
	.buybar__btn span { display: none; }
	.buybar__btn { width: 48px; padding: 0; }
}

/* Relacionados */
.related .rail { padding-bottom: var(--space-4); }

/* ---------- Reseñas (marcado nativo de Woo) ---------- */
.product-reviews { border-top: 1px solid var(--c-line); }
/* ---------- Reseñas ---------- */
.reviews-summary { display: grid; gap: var(--space-5); margin-bottom: var(--space-7); padding: var(--space-6); border-radius: var(--radius-lg); background: var(--c-surface); }
.reviews-summary .eyebrow { margin-bottom: var(--space-2); }
.reviews-summary__title { font-size: var(--fs-h3); max-width: 22ch; }
.reviews-summary__avg { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-4); }
.reviews-summary__avg strong { font-family: var(--font-display); font-size: 4rem; line-height: .85; }
.reviews-summary__avg span { display: grid; gap: var(--space-1); }
.reviews-summary__avg small { font-size: var(--fs-sm); color: var(--c-muted); }
.reviews-summary__avg .stars { --size: 1.25rem; }
.reviews-summary__bars { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); }
.reviews-summary__bars li { display: grid; grid-template-columns: 2.5rem 1fr 2rem; align-items: center; gap: var(--space-3); }
.reviews-summary__label { font-weight: 700; white-space: nowrap; }
.reviews-summary__bar { height: 8px; border-radius: var(--radius-pill); background: var(--c-bg); overflow: hidden; }
.reviews-summary__bar span { display: block; height: 100%; border-radius: inherit; background: var(--c-ink); }
.reviews-summary__n { color: var(--c-muted); text-align: right; }
.reviews-summary__cta { justify-self: start; }
.reviews-summary__cta .icon { width: 1em; height: 1em; }
@media (min-width: 1024px) { .reviews-summary { grid-template-columns: 1.1fr 1fr auto; align-items: center; gap: var(--space-7); padding: var(--space-7); } .reviews-summary__cta { align-self: center; } }

#reviews { display: grid; gap: var(--space-6); }
.woocommerce-Reviews-title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.commentlist { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .commentlist { grid-template-columns: 1fr 1fr; gap: var(--space-5); } }
.commentlist .comment_container { display: grid; grid-template-columns: 44px 1fr; gap: var(--space-4); height: 100%; padding: var(--space-5); border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-bg); transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease); }
.commentlist .comment_container:hover { border-color: var(--c-ink); box-shadow: var(--shadow-sm); }
.review-avatar { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--c-ink); color: var(--c-bg); font-weight: 800; font-size: var(--fs-sm); letter-spacing: .02em; }
.commentlist li:nth-child(3n+2) .review-avatar { background: var(--c-accent); }
.commentlist li:nth-child(3n) .review-avatar { background: var(--c-highlight); color: var(--c-ink); }
.commentlist .comment-text { display: grid; gap: var(--space-2); align-content: start; }
.commentlist .meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px var(--space-2); margin: 0; font-size: var(--fs-xs); color: var(--c-muted); }
.commentlist .meta strong { font-size: var(--fs-sm); color: var(--c-ink); }
.commentlist .meta .woocommerce-review__dash { display: none; }
.commentlist .woocommerce-review__verified { padding: .15em .6em; border-radius: var(--radius-pill); background: #e6f4ea; color: var(--c-success); font-style: normal; font-weight: 700; }
.commentlist .description { font-size: var(--fs-base); line-height: 1.65; color: var(--c-ink-soft); }
.commentlist .description p + p { margin-top: .75em; }
.commentlist .children { margin: var(--space-3) 0 0 var(--space-6); padding: 0; list-style: none; }
.woocommerce-noreviews { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--c-surface); color: var(--c-muted); text-align: center; }

/* Mismo técnica que .stars; Woo fija el ancho del <span> en línea (80% = 4/5). */
.star-rating { --size: 1rem; position: relative; display: inline-block; width: calc(var(--size) * 5); height: var(--size); overflow: hidden; font-size: 0; line-height: 0; background: var(--c-line);
	-webkit-mask: var(--star) 0 0 / var(--size) var(--size) repeat-x; mask: var(--star) 0 0 / var(--size) var(--size) repeat-x; }
.star-rating span { position: absolute; inset: 0 auto 0 0; background: var(--c-ink); }
.star-rating::before, .star-rating span::before { content: none; }

#review_form_wrapper { padding: 0; background: none; }
.review-compose { border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-bg); overflow: hidden; }
.review-compose__toggle { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-4) var(--space-5); font-weight: 800; cursor: pointer; list-style: none; }
.review-compose__toggle::-webkit-details-marker { display: none; }
.review-compose__toggle::after { content: "+"; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-ink); color: var(--c-bg); font-size: 1.25rem; font-weight: 500; transition: transform var(--dur) var(--ease); }
.review-compose[open] .review-compose__toggle::after { transform: rotate(45deg); }
.review-compose #respond { padding: 0 var(--space-5) var(--space-5); }
@media (min-width: 768px) { .review-compose .comment-form { grid-template-columns: 1fr 1fr; column-gap: var(--space-4); } .review-compose .comment-form > * { grid-column: 1 / -1; } .review-compose .comment-form-author { grid-column: 1; } .review-compose .comment-form-email { grid-column: 2; } }
.comment-form { display: grid; gap: var(--space-4); }
.comment-form p { display: grid; gap: var(--space-2); margin: 0; }
.comment-form label { font-size: var(--fs-sm); font-weight: 600; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form textarea, .comment-form select {
	width: 100%; min-height: 50px; padding: .8em 1.1em; border: 1.5px solid var(--c-line); border-radius: var(--radius-md); background: var(--c-surface);
}
.comment-form textarea { min-height: 150px; resize: vertical; }
.comment-form :is(input, textarea):focus-visible { outline: none; }
.comment-form :is(input, textarea, select):focus { border-color: var(--c-ink); background: var(--c-bg); outline: none; box-shadow: 0 0 0 4px rgb(35 80 255 / .12); }
.comment-form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: var(--space-2); }
.comment-form .required { color: var(--c-error); text-decoration: none; }
.comment-form .submit { justify-self: start; min-height: 48px; padding: .75em 1.8em; border: 0; border-radius: var(--radius-pill); background: var(--c-ink); color: var(--c-bg); font-weight: 700; cursor: pointer; }
.comment-form .submit:hover { background: var(--c-ink-soft); }
#reply-title { display: block; margin-bottom: var(--space-3); font-size: var(--fs-md); font-weight: 700; color: var(--c-muted); }
.comment-notes { font-size: var(--fs-sm); color: var(--c-muted); }
.comment-form-rating select { max-width: 16rem; }

.rating-input { margin: 0; padding: 0; border: 0; }
.rating-input legend { margin-bottom: var(--space-2); padding: 0; font-size: var(--fs-sm); font-weight: 600; }
.rating-input__stars { display: inline-flex; gap: var(--space-1); }
.rating-input__star { position: relative; width: 36px; height: 36px; cursor: pointer; background: var(--c-line); -webkit-mask: var(--star) center / 30px no-repeat; mask: var(--star) center / 30px no-repeat; transition: background var(--dur); }
.rating-input__star.is-on { background: var(--c-ink); }
.rating-input__star:has(:focus-visible) { background: var(--c-accent); }
.rating-input__stars:has(:focus-visible) { outline: 3px solid var(--c-accent); outline-offset: 4px; border-radius: 4px; }

/* ---------- Carrito y checkout (solo estilos: shortcode clásico + bloques) ---------- */
.woocommerce-cart .site-main > .container, .woocommerce-checkout .site-main > .container, .woocommerce-account .site-main > .container { padding-block: var(--space-6) var(--space-section); }
.woocommerce table.shop_table { width: 100%; border: 1px solid var(--c-line); border-radius: var(--radius-md); border-collapse: separate; border-spacing: 0; overflow: hidden; font-size: var(--fs-sm); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: middle; }
.woocommerce table.shop_table tr:last-child > * { border-bottom: 0; }
.woocommerce table.shop_table thead th { background: var(--c-surface); font-weight: 700; }
.woocommerce table.cart img { width: 64px; border-radius: var(--radius-sm); }
.woocommerce table.cart .product-remove a { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--c-muted); font-size: 1.25rem; text-decoration: none; }
.woocommerce table.cart .product-remove a:hover { background: var(--c-surface); color: var(--c-error); }
.woocommerce table.cart td.actions { background: var(--c-surface); }
.woocommerce .coupon { display: inline-flex; flex-wrap: wrap; gap: var(--space-2); }
.woocommerce .quantity .qty { width: 4.5rem; min-height: 44px; padding: 0 var(--space-2); border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); text-align: center; }
.cart-collaterals { margin-top: var(--space-6); }
.cart_totals { max-width: 32rem; margin-left: auto; }
.cart_totals h2, .woocommerce-checkout .woocommerce h3 { margin-bottom: var(--space-4); font-size: var(--fs-h3); }
.wc-proceed-to-checkout { margin-top: var(--space-4); }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 56px; font-size: var(--fs-md); }
@media (max-width: 767px) {
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive tr { display: block; border-bottom: 1px solid var(--c-line); }
	.woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; gap: var(--space-3); border: 0; text-align: right; }
	.woocommerce table.shop_table_responsive td::before { content: attr(data-title); font-weight: 700; text-align: left; }
	.woocommerce table.shop_table_responsive td.product-remove::before, .woocommerce table.shop_table_responsive td.product-thumbnail::before, .woocommerce table.shop_table_responsive td.actions::before { content: none; }
}

/* Formularios clásicos (checkout, cuenta, seguimiento) */
.woocommerce form .form-row { display: grid; gap: var(--space-2); margin: 0 0 var(--space-4); }
.woocommerce form .form-row label { font-size: var(--fs-sm); font-weight: 600; }
.woocommerce form .form-row .required { color: var(--c-error); text-decoration: none; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce-page form .input-text, .track_order input[type="text"], .track_order input[type="email"] {
	width: 100%; min-height: 48px; padding: .7em 1em; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); background: var(--c-bg); color: var(--c-ink);
}
.woocommerce form textarea.input-text { min-height: 110px; }
.woocommerce form .input-text:focus, .woocommerce form select:focus { border-color: var(--c-ink); outline: none; box-shadow: 0 0 0 3px rgb(35 80 255 / .25); }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--c-error); }
@media (min-width: 768px) {
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { display: inline-grid; width: calc(50% - var(--space-2)); }
	.woocommerce form .form-row-first { margin-right: var(--space-3); }
	.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--space-7); align-items: start; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
	.woocommerce-checkout #customer_details { grid-column: 1; }
	.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 2; }
	.woocommerce-checkout #order_review_heading { grid-row: 1; }
}
.woocommerce-checkout #order_review { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--c-surface); }
.woocommerce-checkout-payment .wc_payment_methods { margin: var(--space-4) 0; padding: 0; list-style: none; }
.woocommerce-checkout-payment .wc_payment_method { padding: var(--space-3) 0; border-bottom: 1px solid var(--c-line); }
.woocommerce-checkout-payment .payment_box { margin-top: var(--space-2); padding: var(--space-3); border-radius: var(--radius-sm); background: var(--c-bg); font-size: var(--fs-sm); }
#place_order { width: 100%; min-height: 56px; font-size: var(--fs-md); }
.woocommerce-terms-and-conditions-wrapper { margin: var(--space-4) 0; font-size: var(--fs-sm); }

/* Bloques de carrito/checkout (Store API / React): assets/css/checkout.css */

/* ---------- Seguimiento de pedido (Mi cuenta: account.css) ---------- */
.track_order { display: grid; gap: var(--space-4); padding: var(--space-6); border-radius: var(--radius-lg); background: var(--c-surface); }
.track_order > p:first-child { color: var(--c-muted); }
.track_order .form-row { display: grid; gap: var(--space-2); margin: 0; }
.track_order .input-text { width: 100%; min-height: 50px; padding: .75em 1em; border: 1.5px solid var(--c-line); border-radius: var(--radius-md); background: var(--c-bg); }
@media (min-width: 640px) { .track_order { grid-template-columns: 1fr 1fr; } .track_order > p:first-child, .track_order > .form-row:last-of-type, .track_order .clear { grid-column: 1 / -1; } }
.track_order { max-width: 40rem; }
.woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); padding: 0; list-style: none; font-size: var(--fs-sm); }

@media (prefers-reduced-motion: reduce) {
	.gallery__img, .buybar, .pack__box { transition: none; }
	.buybar__sheet { animation: none; }
	.gallery__main-link.is-zoom .gallery__img { transform: none; }
}

.express--product { margin-top: calc(var(--space-2) * -1); }
.summary .trust-row { margin-block: var(--space-2); }
.product-accordion .accordion__panel > :first-child { margin-top: 0; }
.product-accordion .accordion__panel h2, .product-accordion .accordion__panel h3 { font-size: var(--fs-md); margin-top: var(--space-5); }
.unit-price { margin-top: calc(var(--space-2) * -1); }
.product-sku { margin-top: calc(var(--space-2) * -1); }

/* Microinteracciones de la ficha */
.btn.is-added { background: var(--c-success) !important; animation: aerya-added .5s cubic-bezier(.16, 1, .3, 1); }
@keyframes aerya-added { 40% { transform: scale(1.04); } }
.gallery__thumb img { transition: transform var(--dur) var(--ease); }
.gallery__thumb:hover img { transform: scale(1.06); }
.pack__box, .swatch__dot { transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease); }
.pack:active .pack__box, .swatch:active .swatch__dot { transform: scale(.98); }
.pills__list a { transition: background var(--dur) var(--ease), transform var(--dur) var(--ease); }
.pills__list a:hover { transform: translateY(-1px); }
@media (prefers-reduced-motion: reduce) { .btn.is-added { animation: none; } .gallery__thumb:hover img, .pills__list a:hover { transform: none; } }
