/*
Theme Name: clicmania
Description: Tema WooCommerce de clicmania · todo en un solo lugar. Requiere el plugin clicmania Core (marca, tokens y componentes; capa de marca en assets/clicmania/).
Version: 2.0.0
Text Domain: mundo-ofertas
Requires at least: 6.4
Requires PHP: 8.0
*/

/* Layout and WooCommerce skin. Tokens only: colors, spacing, radii, shadows and type sizes come from
 * the kit (plugin assets/brand/tokens.css). No hex, no off-scale font sizes, no soft shadows. */

/* ============================================================ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { font-size: 16px; line-height: 1.6; min-width: 320px; overflow-x: clip; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--brand); text-underline-offset: 3px; }
:focus-visible { outline: 3px solid transparent; outline-offset: 3px; box-shadow: var(--focus-ring); border-radius: var(--radius-sm); }
h1, h2, h3, h4, h5, h6, p { margin-top: 0; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -999px; top: var(--space-2); z-index: 100; padding: var(--space-3) var(--space-4); background: var(--brand-fill); color: var(--on-brand-fill); border: 2px solid var(--border-strong); border-radius: var(--radius-sticker); font-weight: 700; }
.skip-link:focus { left: var(--space-2); }
.wrap { width: min(100% - 2 * var(--space-4), 1200px); margin-inline: auto; }

/* ============================================================ announcement + header (kit Header) */
.site-header { position: sticky; top: 0; z-index: 40; }
.site-header .mo-header { border-bottom: 0; }
.mo-header .mo-header-full { height: 60px; width: auto; max-width: none; }  /* 56px tall = 140px wide: the kit's minimum for this logo (docs/02). More specific than WooCommerce's `.woocommerce img` */
.mo-header .mo-header-mark { height: 40px; width: auto; max-width: none; }
.mo-header-nav { display: none; gap: var(--space-2); }
.mo-header-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-3); border-radius: var(--radius-sticker); color: var(--on-brand-fill); font: 700 14px/1 var(--font-sans); text-decoration: none; }
.mo-header-nav a:hover { background: var(--primary-700); }
@media (min-width: 900px) { .mo-header-nav { display: flex; } }


/* ============================================================ top strip, header, category nav */
.mo-header { display: block; min-height: 0; padding: 0; }
.mo-header__in { display: flex; align-items: center; gap: var(--space-6); width: min(100% - 2 * var(--space-4), 1200px); margin-inline: auto; padding-block: var(--space-3); }
.mo-header__logo { flex: none; display: block; text-decoration: none; line-height: 0; }
/* one search control: category | query | go (a single bordered field, not three boxes) */
.mo-search { display: flex; align-items: stretch; flex: 1 1 auto; max-width: 760px; margin: 0; min-height: 48px; background: var(--bg-raised); border: 2px solid var(--ink-900); border-radius: var(--radius-sticker); overflow: hidden; }
.mo-search:focus-within { box-shadow: var(--focus-ring); }
.mo-search select, .mo-search input[type="search"] { border: 0; border-radius: 0; background: transparent; color: var(--text); font: 500 14px/1.5 var(--font-sans); outline: none; -webkit-appearance: none; appearance: none; box-shadow: none; }
.mo-search__cat { flex: none; width: 168px; padding: 0 var(--space-8) 0 var(--space-4); border-right: 2px solid var(--border-soft) !important; font-weight: 700 !important; cursor: pointer; background: var(--bg-sunken) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center / 16px !important; }
.mo-search__q { flex: 1 1 auto; min-width: 0; padding: 0 var(--space-4); }
.mo-search__q::placeholder { color: var(--text-muted); opacity: 1; }
.mo-search__go { flex: none; display: grid; place-items: center; width: 52px; border: 0; background: var(--ink-900); color: var(--ink-50); cursor: pointer; }
.mo-search__go:hover { background: var(--ink-700); }
.mo-search__go svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.mo-search__go:focus-visible { outline: 3px solid transparent; box-shadow: inset 0 0 0 3px var(--primary-300); }
.mo-header .mo-cart-btn { flex: none; width: auto; height: 48px; margin-left: auto; padding: 0 var(--space-4); display: inline-flex; align-items: center; gap: var(--space-2); text-decoration: none; }
.mo-cart-btn__txt { display: grid; text-align: left; font: 700 12px/1.15 var(--font-sans); }
.mo-cart-btn__txt b { font: 800 14px/1.15 var(--font-display); font-variant-numeric: tabular-nums; }
@media (max-width: 800px) { .mo-search__cat { display: none; } .mo-header__in { gap: var(--space-3); } .mo-cart-btn__txt { display: none; } .mo-header .mo-cart-btn { padding: 0; width: 48px; justify-content: center; } }
.mo-topbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-1) var(--space-3); margin: 0; padding: var(--space-2) var(--space-4); background: var(--ink-900); color: var(--ink-50); font: 500 13px/1.4 var(--font-sans); text-align: center; }
.mo-topbar a { color: var(--flash-fill); font-weight: 700; }
.site-header .mo-header { border-bottom: 2px solid var(--ink-900); }
.mo-nav { background: var(--bg-raised); border-bottom: 2px solid var(--border-soft); }
.mo-nav ul { display: flex; align-items: center; gap: var(--space-1); max-width: 1200px; margin: 0 auto; padding: 0 var(--space-3); list-style: none; }
.mo-nav ul::-webkit-scrollbar { display: none; }
.mo-nav li { flex: none; }
.mo-nav a, .mo-nav__wheel { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-3); color: var(--text); font: 500 14px/1 var(--font-sans); text-decoration: none; background: none; border: 0; cursor: pointer; border-radius: var(--radius-sm); }
.mo-nav a:hover, .mo-nav__wheel:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.mo-nav .mo-nav__sale { color: var(--urgent-text); font-weight: 700; }
.mo-nav__end { margin-left: auto; }
.mo-nav__wheel { color: var(--brand); font-weight: 700; }

/* ============================================================ banner: deep brand purple, one product */
.banner { display: grid; margin-top: var(--space-6); border-radius: var(--radius-card); overflow: hidden; background: var(--primary-900); color: var(--on-brand-fill); }
@media (min-width: 800px) { .banner { grid-template-columns: 1.05fr .95fr; min-height: 380px; } }
.banner__text { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--space-4); padding: var(--space-12) var(--space-10); }
.banner__text h1 { margin: 0; max-width: 12ch; color: var(--on-brand-fill); font-size: clamp(36px, 4.6vw, 52px); }
.banner__text .body-lg { margin: 0; max-width: 34ch; color: var(--primary-200); text-wrap: balance; }
.banner__media { display: grid; place-items: center; padding: var(--space-8); background: var(--primary-800); }
.banner__media img { width: auto; height: auto; max-width: min(340px, var(--nw, 340px)); max-height: min(300px, var(--nh, 300px)); }
.banner__media img[src$=".svg"] { max-width: 200px; }

/* trust bar: one quiet row, not four cards */
.trustbar { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: var(--space-4) var(--space-6); margin: var(--space-6) 0 0; padding: var(--space-5) 0 0; list-style: none; border-top: 2px solid var(--border-soft); }
.trustbar li { display: flex; align-items: center; gap: var(--space-3); }
.trustbar__ico { flex: none; color: var(--brand); }
.trustbar__ico svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.trustbar strong { display: block; font: 700 14px/1.35 var(--font-sans); }
.trustbar small { display: block; color: var(--text-muted); font: 400 12px/1.4 var(--font-sans); }

/* ============================================================ sections: air, no color blocks */
.section { padding-block: var(--space-12); }
.section--tight { padding-block: var(--space-2) 0; }
.section__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-6); }
.section__head h2, .mo-flash-head h2 { margin: 0; }
.section__head .caption { white-space: nowrap; }
.section__more { color: var(--brand); font: 700 14px/1.5 var(--font-sans); text-underline-offset: 3px; }
.section__lead { max-width: 56ch; margin: var(--space-2) 0 var(--space-6); color: var(--text-muted); }
.mo-promise { margin-block: 0 var(--space-8); text-align: center; color: var(--text-muted); font: 500 14px/1.5 var(--font-sans); }

/* ============================================================ offers and strip: neutral frames, photos never above native size */
.section--tight-top { padding-top: 0; }
.offers { display: grid; gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); margin: 0; padding: 0; list-style: none; }
.mo-offer a { color: inherit; text-decoration: none; }
.mo-offer__media { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; padding: var(--space-6); background: var(--bg-sunken); border-radius: var(--radius-card); overflow: hidden; }
.mo-offer__media img { width: auto; height: auto; max-width: min(78%, var(--nw, 78%)); max-height: min(82%, var(--nh, 82%)); object-fit: contain; transition: transform .25s ease; }
.mo-offer__media img.mo-card-img--photo { mix-blend-mode: multiply; border-radius: var(--radius-md); }
.mo-offer:hover .mo-offer__media img { transform: scale(1.03); }
.mo-offer__media .mo-badge { position: absolute; top: var(--space-3); left: var(--space-3); }
.mo-offer__body { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-4); padding-top: var(--space-3); }
.mo-offer__body h3 { margin: 0; }
.mo-offer__body h3 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.mo-offer__cat { margin: 0 0 var(--space-1); color: var(--text-muted); }
.mo-offer__price { margin: 0; text-align: right; font-family: var(--font-display); font-variant-numeric: tabular-nums; }
.mo-offer__price ins { display: block; text-decoration: none; font-size: 24px; font-weight: 800; line-height: 1.1; letter-spacing: -.02em; }
.mo-offer__price del { display: block; color: var(--urgent-text); font: 500 14px/1.3 var(--font-sans); text-decoration-color: var(--flash-fill); text-decoration-thickness: 2px; }
.mo-instock { margin: var(--space-1) 0 0; display: inline-flex; align-items: center; gap: var(--space-2); color: var(--success-text); font: 700 12px/1.5 var(--font-sans); }
.mo-instock::before { content: ""; width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--success-text); }

.strip { display: flex; gap: var(--space-4); margin: 0; padding: 0 0 var(--space-3); list-style: none; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
.strip li { flex: none; width: 176px; scroll-snap-align: start; }
.mo-mini { display: grid; gap: var(--space-2); color: inherit; text-decoration: none; }
.mo-mini__media { position: relative; display: grid; place-items: center; aspect-ratio: 1; padding: var(--space-4); background: var(--bg-sunken); border-radius: var(--radius-card); overflow: hidden; }
.mo-mini__media img { width: auto; height: auto; max-width: min(84%, var(--nw, 84%)); max-height: min(84%, var(--nh, 84%)); object-fit: contain; }
.mo-mini__media img.mo-card-img--photo { mix-blend-mode: multiply; }
.mo-mini__media .mo-badge { position: absolute; top: var(--space-2); left: var(--space-2); padding: 4px 8px; }
.mo-mini__name { font: 500 14px/1.4 var(--font-sans); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mo-mini__price { font: 800 16px/1.2 var(--font-display); }
.mo-mini:hover .mo-mini__name { text-decoration: underline; text-underline-offset: 3px; }
.mo-mini:focus-visible { outline: 3px solid transparent; box-shadow: var(--focus-ring); }

/* ============================================================ footer */
.site-footer { margin-top: var(--space-16); padding-block: var(--space-12) var(--space-6); background: var(--brand-fill); color: var(--on-brand-fill); }
.site-footer a { color: var(--on-brand-fill); }
.site-footer__top { display: grid; gap: var(--space-8); grid-template-columns: 1fr; }
@media (min-width: 800px) { .site-footer__top { grid-template-columns: 2fr 1fr 1fr; } }
.site-footer__brand img { display: block; height: 56px; width: auto; margin-bottom: var(--space-2); }
.site-footer__brand p { max-width: 36ch; margin: 0; font: 400 14px/1.6 var(--font-sans); }
.site-footer h2 { margin: 0 0 var(--space-3); color: var(--primary-200); }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin: 0; }
.site-footer li a { display: inline-block; padding: var(--space-2) 0; font: 400 14px/1.5 var(--font-sans); text-decoration: none; }
.site-footer li a:hover { text-decoration: underline; text-underline-offset: 3px; }
.site-footer__legal { margin: var(--space-10) 0 0; padding-top: var(--space-4); border-top: 2px solid var(--primary-600); color: var(--primary-200); font: 400 12px/1.4 var(--font-sans); }

/* ============================================================ archive: filters */
.page-head { margin-bottom: var(--space-6); }
.page-head h1 { margin: 0 0 var(--space-2); }
.mo-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-4); margin-bottom: var(--space-6); padding: var(--space-4); background: var(--bg-raised); border: 2px solid var(--border-soft); border-radius: var(--radius-card); }
.mo-filters .mo-field { flex: 1 1 200px; max-width: 280px; }
.mo-filters select.mo-input { appearance: auto; }
.mo-filters__checks { display: grid; gap: var(--space-2); margin: 0; padding: 0; border: 0; }
.mo-filters .mo-check input { width: 24px; height: 24px; }
.woocommerce-pagination ul { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-8) 0 0; padding: 0; list-style: none; border: 0; }
.woocommerce-pagination ul li { border: 0; }
.woocommerce-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 var(--space-3); border: 2px solid var(--border-strong); border-radius: var(--radius-sticker); background: var(--bg-raised); color: var(--text); font: 700 16px/1 var(--font-display); text-decoration: none; }
.woocommerce-pagination .page-numbers.current { background: var(--brand-fill); color: var(--on-brand-fill); }

/* ============================================================ single product */
.single-product div.product { display: grid; gap: var(--space-8); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 800px) { .single-product div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.single-product.woocommerce-page div.product div.summary.entry-summary { float: none; width: auto; clear: none; display: grid; gap: var(--space-4); }  /* beats WC's `.woocommerce-page div.product div.summary` (float:right; 48%) */
.single-product div.product > .woocommerce-tabs, .single-product div.product > .related, .single-product div.product > .up-sells { grid-column: 1 / -1; }
.mo-crumbs { margin: 0 0 var(--space-4); color: var(--text-muted); font: 500 12px/1.4 var(--font-sans); }
.mo-crumbs a { color: inherit; }
.mo-gallery { display: grid; gap: var(--space-3); }
.mo-gallery__main { display: grid; place-items: center; aspect-ratio: 1; padding: var(--space-4); background: var(--bg-sunken); border: 2px solid var(--border-soft); border-radius: var(--radius-card); overflow: hidden; position: relative; }
.mo-gallery__main img { width: auto; height: auto; max-width: min(100%, var(--nw, 100%)); max-height: min(100%, var(--nh, 100%)); object-fit: contain; }
.mo-gallery__main img.mo-card-img--photo { filter: none; }
.mo-gallery__thumbs { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.mo-gallery__thumb { width: 56px; height: 56px; padding: var(--space-1); border: 2px solid var(--border-soft); border-radius: var(--radius-sticker); background: var(--bg-raised); cursor: pointer; }
.mo-gallery__thumb[aria-pressed="true"] { border-color: var(--border-strong); box-shadow: var(--shadow-sticker-sm); }
.mo-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; }
.mo-gallery .mo-card-badges { top: var(--space-4); left: var(--space-4); }
.single-product .product_title { margin: 0; }
.single-product .woocommerce-product-details__short-description { margin: 0; }
.single-product .woocommerce-product-details__short-description p { margin: 0; font: 400 18px/1.6 var(--font-sans); }
.mo-buybox { display: grid; gap: var(--space-4); }
.mo-buybox form.cart { display: grid; gap: var(--space-3); margin: 0; }
.mo-buybox .quantity { display: flex; align-items: center; gap: var(--space-3); }
.mo-buybox .quantity label { font: 700 14px/1 var(--font-sans); }
.mo-buybox .qty { width: 88px; min-height: 48px; padding: 0 var(--space-3); border: 2px solid var(--border-strong); border-radius: var(--radius-sticker); background: var(--bg-raised); color: var(--text); font: 700 16px/1 var(--font-display); text-align: center; }
.mo-buybox__buttons { display: grid; gap: var(--space-3); }
@media (min-width: 520px) { .mo-buybox__buttons { grid-template-columns: 1fr 1fr; } }
.mo-trust-line { margin: 0; color: var(--text-muted); font: 500 14px/1.5 var(--font-sans); }
.mo-details { border-top: 2px solid var(--border-soft); padding-top: var(--space-3); }
.mo-details summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font: 700 16px/1.5 var(--font-sans); }
.mo-details .body { max-width: 65ch; color: var(--text-muted); }
.single-product .product_meta { color: var(--text-muted); font: 400 14px/1.5 var(--font-sans); }
.woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-4); padding: 0; list-style: none; overflow: visible; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 2px solid var(--border-strong); border-radius: var(--radius-pill); background: var(--bg-raised); }
.woocommerce-tabs ul.tabs li a { display: block; min-height: 44px; padding: var(--space-3) var(--space-4); color: var(--text); font: 700 14px/1.5 var(--font-sans); text-decoration: none; }
.woocommerce-tabs ul.tabs li.active { background: var(--brand-fill); }
.woocommerce-tabs ul.tabs li.active a { color: var(--on-brand-fill); }
.woocommerce-Tabs-panel { max-width: 75ch; }  /* kit: reading lines of 45-75 characters */
.woocommerce-Tabs-panel h2 { font: inherit; font-family: var(--font-display); font-size: 24px; }
.related.products > h2 { margin: var(--space-12) 0 var(--space-6); }

/* ============================================================ WooCommerce notices -> kit Toast */
.woocommerce-notices-wrapper { margin-bottom: var(--space-4); }
.woocommerce-checkout .woocommerce-NoticeGroup { grid-column: 1 / -1; }
/* the kit's Toast makes <strong> a block title; inside Woo messages it is just emphasis */
.mo-toast p strong:not(:only-child), .woocommerce-error.mo-toast p strong, .woocommerce-message.mo-toast p strong, .woocommerce-info.mo-toast p strong { display: inline; font-family: inherit; }
.mo-toast > svg { flex: none; }
.woocommerce-notices-wrapper .mo-toast, .woocommerce .mo-toast { max-width: none; margin-bottom: var(--space-3); animation: none; }
.woocommerce-notices-wrapper .mo-toast .button { margin-left: auto; }
.mo-toast ul { margin: 0; padding-left: var(--space-4); }
.woocommerce-info.mo-toast::before, .woocommerce-message.mo-toast::before, .woocommerce-error.mo-toast::before { display: none; }

/* ============================================================ forms (kit Input) */
.woocommerce form .form-row { margin: 0 0 var(--space-4); padding: 0; }
.woocommerce form .form-row label { display: block; margin: 0 0 6px; font: 700 14px/1.5 var(--font-sans); color: var(--text); }
.woocommerce form .form-row .required { color: var(--urgent-text); text-decoration: none; }
.woocommerce form .form-row .optional { color: var(--text-muted); font-weight: 400; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-cart table.cart td.actions .coupon .input-text, .select2-container--default .select2-selection--single {
  box-sizing: border-box; width: 100%; min-height: 48px; padding: var(--space-2) var(--space-4); border: 2px solid var(--border-strong); border-radius: var(--radius-sticker);
  background: var(--bg-raised); color: var(--text); font: 500 16px/1.5 var(--font-sans);
}
.select2-container--default .select2-selection--single { display: flex; align-items: center; padding: 0 var(--space-4); }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; color: var(--text); line-height: 1.5; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: var(--space-2); }
.select2-dropdown { border: 2px solid var(--border-strong); border-radius: var(--radius-sticker); background: var(--bg-raised); color: var(--text); }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--brand-fill); color: var(--on-brand-fill); }
.woocommerce form .form-row input.input-text::placeholder { color: var(--text-muted); opacity: 1; }
.woocommerce form .form-row input.input-text:focus-visible, .woocommerce form .form-row select:focus-visible, .woocommerce form .form-row textarea:focus-visible { box-shadow: var(--focus-ring); outline: 3px solid transparent; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--urgent-text); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--success-text); }
.woocommerce form .form-row.mo-consent label { display: flex; gap: var(--space-2); align-items: flex-start; font-weight: 400; line-height: 1.5; }
.woocommerce form .form-row.mo-consent .optional { display: none; }
.woocommerce form .form-row.mo-consent input[type="checkbox"] { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--brand-fill); }
.woocommerce form .form-row input[type="checkbox"], .woocommerce form .form-row input[type="radio"] { accent-color: var(--brand-fill); }
.woocommerce-form-coupon-toggle .mo-toast a { color: inherit; }
.woocommerce form.checkout_coupon, .woocommerce form.woocommerce-form-login { padding: var(--space-4); background: var(--bg-raised); border: 2px solid var(--border-strong); border-radius: var(--radius-card); }

/* ============================================================ cart */
.woocommerce-cart table.cart { border: 2px solid var(--border-soft); border-radius: var(--radius-card); background: var(--bg-raised); border-collapse: separate; overflow: hidden; }
.woocommerce-cart table.cart th { font: 700 13px/1.4 var(--font-sans); letter-spacing: .08em; text-transform: uppercase; }
.woocommerce-cart table.cart td, .woocommerce-cart table.cart th { border-color: var(--border-soft); color: var(--text); }
.woocommerce-cart table.cart img { width: 72px; border-radius: var(--radius-md); background: var(--primary-100); }
.woocommerce-cart table.cart td.product-name a { color: var(--text); font-weight: 700; text-decoration: none; }
.woocommerce-cart table.cart a.remove { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 2px solid var(--border-strong); border-radius: var(--radius-pill); background: var(--bg-raised); color: var(--text) !important; font: 800 20px/1 var(--font-display); text-decoration: none; }
.woocommerce-cart table.cart a.remove:hover { background: var(--flash-fill); color: var(--on-flash-fill) !important; }
.woocommerce-cart .quantity .qty { min-height: 44px; width: 72px; border: 2px solid var(--border-strong); border-radius: var(--radius-sticker); background: var(--bg-raised); color: var(--text); text-align: center; font: 700 16px/1 var(--font-display); }
.woocommerce-cart table.cart td.actions { background: var(--bg-sunken); }
.woocommerce-cart table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: min(100%, 240px); }
.woocommerce-cart button[name="update_cart"][disabled], .woocommerce-cart button[name="update_cart"][aria-disabled="true"] { display: none; }
.woocommerce-cart .cart_totals { padding: var(--space-6); background: var(--bg-raised); border: 2px solid var(--border-soft); border-radius: var(--radius-card); }
.woocommerce-cart .cart_totals h2 { margin: 0 0 var(--space-4); font-size: 24px; }
.woocommerce-cart .cart_totals table { border: 0; }
.woocommerce-cart .cart_totals th, .woocommerce-cart .cart_totals td { border-color: var(--border-soft); color: var(--text); padding: var(--space-3) 0; }
.woocommerce-cart .cart_totals .order-total .amount { font: 800 24px/1 var(--font-display); }
.woocommerce-cart .wc-proceed-to-checkout { padding-bottom: 0; }
.mo-luca-section { margin: var(--space-8) 0; padding: var(--space-6); border: 2px solid var(--border-soft); border-radius: var(--radius-card); }
.mo-luca-section h2 { margin: 0 0 var(--space-2); }
.mo-luca-section[hidden] { display: none; }

/* ============================================================ checkout */
.woocommerce-checkout form.checkout { display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 900px) {
  .woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); grid-template-areas: "notice notice" "cust head" "cust review"; column-gap: var(--space-8); row-gap: var(--space-3); }
  .woocommerce-checkout .woocommerce-NoticeGroup { grid-area: notice; }
  .woocommerce-checkout #customer_details { grid-area: cust; }
  .woocommerce-checkout #order_review_heading { grid-area: head; align-self: end; }
  .woocommerce-checkout #order_review { grid-area: review; }
}
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { float: none; width: auto; padding: var(--space-6); background: var(--bg-raised); border: 2px solid var(--border-soft); border-radius: var(--radius-card); }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float: none; width: auto; }
.woocommerce-checkout #order_review_heading { margin: 0; font-size: 24px; }
.woocommerce-checkout h3 { font-size: 24px; margin: 0 0 var(--space-4); }
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { padding: var(--space-6) var(--space-6); }
.woocommerce-checkout table.shop_table { border: 0; margin: 0 0 var(--space-4); }
.woocommerce-checkout table.shop_table th, .woocommerce-checkout table.shop_table td { padding: var(--space-3) 0; border-color: var(--border-soft); color: var(--text); background: none; }
.woocommerce-checkout table.shop_table .order-total .amount { font: 800 24px/1 var(--font-display); }
.woocommerce-checkout #payment { background: var(--bg-sunken); color: var(--text); border: 2px solid var(--border-soft); border-radius: var(--radius-card); }
.woocommerce-checkout #payment ul.payment_methods { padding: var(--space-4); border-color: var(--border-soft); }
.woocommerce-checkout #payment div.payment_box { background: var(--bg-raised); color: var(--text); border-radius: var(--radius-sticker); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { padding: var(--space-4); }
.woocommerce-checkout #payment #place_order { float: none; width: 100%; }
.woocommerce-privacy-policy-text { font: 400 14px/1.5 var(--font-sans); }
.woocommerce-privacy-policy-text a { color: inherit; }
.woocommerce ul.order_details { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); margin: 0 0 var(--space-6); padding: 0; list-style: none; }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li { float: none; margin: 0; padding: var(--space-4); border: 2px solid var(--border-soft); border-radius: var(--radius-card); background: var(--bg-raised); font: 700 14px/1.4 var(--font-sans); text-transform: none; }
.woocommerce ul.order_details li strong { display: block; margin-top: var(--space-1); font: 800 20px/1.25 var(--font-display); text-transform: none; }
.woocommerce-bacs-bank-details h3, .woocommerce-order-details h2, .woocommerce-customer-details h2 { font-size: 24px; }
.woocommerce-order-details table.shop_table, .woocommerce-account table.shop_table { border: 2px solid var(--border-soft); border-radius: var(--radius-card); border-collapse: separate; background: var(--bg-raised); }

/* ============================================================ generic WooCommerce buttons -> kit buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 var(--space-6); border: 2px solid var(--border-strong); border-radius: var(--radius-sticker);
  background: var(--bg-raised); color: var(--text); font: 800 16px/1 var(--font-display); text-decoration: none; box-shadow: var(--shadow-sticker); cursor: pointer;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { transform: translate(-1px, -1px); box-shadow: var(--shadow-sticker-lg); background: var(--bg-raised); color: var(--text); }
.woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--brand-fill); color: var(--on-brand-fill); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--primary-600); color: var(--on-brand-fill); }
.woocommerce a.button:disabled, .woocommerce button.button:disabled, .woocommerce button.button.disabled { background: var(--bg-sunken); color: var(--text-muted); box-shadow: none; cursor: not-allowed; }
.woocommerce button.button[name="apply_coupon"] { background: var(--ink-900); color: var(--ink-50); }

/* ============================================================ phones */
@media (max-width: 640px) {
  .banner__text { padding: var(--space-8) var(--space-5); }
  .banner__media { min-height: 220px; padding: var(--space-6); }
  .strip li { width: 152px; }
  .trustbar { grid-template-columns: 1fr 1fr; }
  .section { padding-block: var(--space-12); }
  .woocommerce-cart table.cart td.actions .coupon { display: grid; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { width: 100%; }
}
@media (max-width: 768px) {
  /* each cart line becomes a card: photo | name + qty | remove + subtotal */
  .woocommerce table.shop_table_responsive.cart tr.cart_item { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-areas: "img name rm" "img qty sub"; gap: var(--space-2) var(--space-3); align-items: center; padding: var(--space-3); border-bottom: 2px solid var(--border-strong); background: var(--bg-raised); }
  .woocommerce table.shop_table_responsive.cart tr.cart_item td { display: block; padding: 0; border: 0; background: transparent; text-align: left !important; }
  .woocommerce table.shop_table_responsive.cart tr.cart_item td::before { display: none; }
  .woocommerce table.shop_table_responsive.cart td.product-thumbnail { grid-area: img; }
  .woocommerce table.shop_table_responsive.cart td.product-name { grid-area: name; line-height: 1.25; }
  .woocommerce table.shop_table_responsive.cart td.product-remove { grid-area: rm; text-align: right !important; }
  .woocommerce table.shop_table_responsive.cart tr.cart_item td.product-price { display: none; }
  .woocommerce table.shop_table_responsive.cart td.product-quantity { grid-area: qty; }
  .woocommerce table.shop_table_responsive.cart td.product-subtotal { grid-area: sub; text-align: right !important; font: 800 17px/1.35 var(--font-display); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .woocommerce a.button:hover, .woocommerce button.button:hover { transform: none; }
}
@media (forced-colors: active) {
  .mo-filters, .mo-luca-section, .mo-gallery__main { border: 2px solid CanvasText; }
}

/* Mobile menu: hamburger + full-height drawer (native <dialog>: focus trap and Esc for free) */
.mo-burger { display: none; flex: none; width: 48px; height: 48px; place-items: center; border: 0; border-radius: var(--radius-sticker); background: transparent; color: var(--on-brand-fill); cursor: pointer; }
.mo-burger svg, .mo-drawer__close svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.mo-burger:hover { background: var(--primary-700); }
.mo-drawer { margin: 0; padding: 0; width: min(88vw, 380px); height: 100dvh; max-height: none; border: 0; background: var(--bg-raised); color: var(--text); inset: 0 auto 0 0; overflow-y: auto; }
.mo-drawer::backdrop { background: var(--ink-900); opacity: .5; }
.mo-drawer[open] { display: flex; flex-direction: column; animation: mo-drawer-in .2s ease-out; }
@keyframes mo-drawer-in { from { transform: translateX(-24px); opacity: 0; } }
.mo-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--border-soft); }
.mo-drawer__head .mo-drawer__logo { height: 48px; width: auto; max-width: none; }
.mo-drawer__close { width: 48px; height: 48px; display: grid; place-items: center; border: 0; background: transparent; color: var(--text); cursor: pointer; border-radius: var(--radius-sticker); }
.mo-drawer__search { display: flex; margin: var(--space-4); border: 2px solid var(--ink-900); border-radius: var(--radius-sticker); overflow: hidden; min-height: 48px; }
.mo-drawer__search input[type="search"] { flex: 1; min-width: 0; border: 0; padding: 0 var(--space-4); font: 500 16px/1.5 var(--font-sans); background: transparent; outline: none; }
.mo-drawer__search button { width: 52px; border: 0; background: var(--ink-900); color: var(--ink-50); display: grid; place-items: center; cursor: pointer; }
.mo-drawer__search button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.mo-drawer__nav { display: flex; flex-direction: column; padding: 0 var(--space-4); }
.mo-drawer__nav a { display: flex; align-items: center; min-height: 56px; border-bottom: 1px solid var(--border-soft); color: var(--text); font: 600 16px/1.3 var(--font-sans); text-decoration: none; }
.mo-drawer__nav a.is-sale { color: var(--urgent-text); font-weight: 700; }
.mo-drawer__foot { margin-top: auto; padding: var(--space-4); display: grid; gap: var(--space-3); }
.mo-drawer__foot a { color: var(--text-muted); font: 500 14px/1.4 var(--font-sans); }
.mo-drawer__foot p { margin: 0; color: var(--text-muted); font: 500 13px/1.4 var(--font-sans); }
@media (max-width: 1279px) {
  .mo-burger { display: grid; }
  .mo-nav { display: none; }
  .mo-header__in { gap: var(--space-2); }
  .mo-header .mo-header-full { display: block; height: 52px; }
  .mo-header .mo-header-mark { display: none; }
  .site-header.is-scrolled .mo-search { display: none; }
  .mo-header__logo { margin-right: auto; }
  .mo-header__in { flex-wrap: wrap; }
  .mo-search { order: 5; flex: 1 0 100%; max-width: none; }
  .mo-header .mo-cart-btn { margin-left: 0; }
}
@media (min-width: 1280px) { .mo-header .mo-header-mark { display: none; } .mo-drawer { display: none !important; } }

/* Phones: buy buttons pinned to the thumb zone on product pages */
@media (max-width: 640px) {
  .single-product .mo-buybox__buttons { position: fixed; inset: auto 0 0 0; z-index: 30; grid-template-columns: 1fr 1fr; gap: var(--space-2); padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom)); background: var(--bg-raised); border-top: 1px solid var(--border-soft); }
  .single-product .mo-buybox__buttons .mo-btn { min-height: 48px; padding-inline: var(--space-2); font-size: 14px; }
  .single-product .site-footer { padding-bottom: 88px; }
}

/* Phones: only the logo/cart row stays pinned; the search row scrolls away to give the page its height back */
@media (max-width: 800px) {
  .mo-header__in { padding-block: var(--space-3); }
  .woocommerce-cart-form .coupon .button { white-space: nowrap; }
}

/* Quiet notices: flat, thin border, no offset shadow */
.mo-toast { box-shadow: none; border: 1px solid var(--border-soft); border-radius: var(--radius-sticker); background: var(--bg-raised); }
.mo-toast p { font: 500 14px/1.5 var(--font-sans); }
.mo-toast a { font-weight: 700; }

/* Checkout summary: quieter shipping note and compact A Luca tag */
.mo-ship-note td { font: 500 13px/1.5 var(--font-sans) !important; color: var(--text-muted); }
.woocommerce-checkout-review-order-table .mo-badge { box-shadow: none; padding: 2px var(--space-2); font-size: 12px; }
.woocommerce-cart-form .mo-badge { box-shadow: none; }

/* Flat controls: no offset shadows or heavy outlines on buttons, badges and cards */
.mo-btn { box-shadow: none !important; border: 0; border-radius: var(--radius-sticker); transform: none !important; transition: background-color .15s ease; }
.mo-btn-secondary { border: 1px solid var(--border-strong); background: var(--bg-raised); }
.mo-badge { box-shadow: none; border: 0; animation: none; }
.mo-btn:focus-visible { box-shadow: var(--focus-ring) !important; }

/* Phones: products in two columns */
@media (max-width: 640px) {
  .mo-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  .mo-products .mo-card { padding: var(--space-2); gap: var(--space-2); }
  .mo-products .mo-card .mo-btn { min-height: 44px; padding-inline: var(--space-2); font-size: 13px; }
  .mo-products .mo-badge { font-size: 12px; padding: 2px var(--space-2); }
  .mo-products .mo-card-badges { gap: var(--space-1); }
}
@media (max-width: 640px) { .mo-products .mo-card .mo-btn svg { display: none; } .mo-products .mo-card .mo-btn { white-space: nowrap; } }

/* Category icons (purple) and the current-page state in the nav and the drawer */
.mo-nav a, .mo-drawer__nav a { gap: var(--space-2); }
.mo-nav .mo-cat-ico, .mo-nav .mo-icon, .mo-nav a > svg, .mo-drawer__nav a > svg { flex: none; width: 20px; height: 20px; color: var(--brand); }
.mo-nav a > svg:not(.mo-cat-ico), .mo-drawer__nav a > svg:not(.mo-cat-ico) { fill: none; stroke: currentColor; stroke-width: 2; }
.mo-nav .mo-nav__sale > svg, .mo-drawer__nav .is-sale > svg { color: var(--urgent-text); fill: currentColor; stroke: none; }
.mo-nav a[aria-current], .mo-drawer__nav a[aria-current] { color: var(--brand); font-weight: 700; }
.mo-nav a[aria-current] { box-shadow: inset 0 -3px 0 var(--brand); border-radius: 0; text-decoration: none; }
.mo-drawer__nav a[aria-current] { background: var(--bg-sunken); margin-inline: calc(-1 * var(--space-4)); padding-inline: var(--space-4); box-shadow: inset 3px 0 0 var(--brand); }
.mo-drawer__head .mo-drawer__logo { height: 40px; }
.strip { scrollbar-width: none; }
.strip::-webkit-scrollbar { display: none; }

/* Receipt upload: the native file control, quietly */
.mo-receipt input[type="file"] { width: 100%; padding: var(--space-3); border: 1px dashed var(--border-strong); border-radius: var(--radius-sticker); background: var(--bg-raised); font: 500 14px/1.4 var(--font-sans); color: var(--text-muted); }
.mo-receipt input[type="file"]::file-selector-button { margin-right: var(--space-3); padding: var(--space-2) var(--space-4); border: 0; border-radius: var(--radius-sticker); background: var(--ink-900); color: var(--ink-50); font: 700 14px/1 var(--font-sans); cursor: pointer; }
.woocommerce-table--order-details a, .woocommerce-order-details a { color: inherit; text-decoration: none; font-weight: 600; }
.woocommerce-table--order-details a:hover { text-decoration: underline; }

/* Short pages keep the footer at the bottom */
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body > main { flex: 1 0 auto; }
.mo-empty, .mo-empty-cats { margin-block: var(--space-4); }
.mo-empty .mo-cat-strip, .mo-empty-cats .mo-cat-strip { margin-block: var(--space-6); }
.woocommerce-order-overview li, .woocommerce-order-overview li:last-child { border: 2px solid var(--border-soft); }
.woocommerce-order-overview li strong { font-size: 18px; }

/* Offer tiles and mini tiles follow the same left line and weights as cards */
.mo-offer__body { flex-direction: column; gap: var(--space-2); }
.mo-offer__body h3 { font: 600 16px/1.4 var(--font-sans); }
.mo-offer__price { text-align: left; display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: baseline; gap: var(--space-2); }
.mo-offer__price ins { font: 700 20px/1.1 var(--font-display); letter-spacing: -.01em; }
.mo-offer__price del { color: var(--text-muted); font: 500 13px/1 var(--font-sans); text-decoration-thickness: 1px; text-decoration-color: currentColor; }
.mo-mini__name { font: 600 14px/1.4 var(--font-sans); min-height: calc(2 * 1.4em); }
.mo-mini__price { font: 700 16px/1.2 var(--font-display); }
.mo-nav a.mo-nav__sale > svg, .mo-drawer__nav a.is-sale > svg { fill: currentColor; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; color: var(--urgent-text); }

/* ===== Cart, round 2: items left, summary right; light borders, ghost remove, inline coupon ===== */
@media (min-width: 1000px) {
  .woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-8); align-items: start; }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
  .woocommerce-cart .woocommerce-cart-form { grid-column: 1; }
  .woocommerce-cart .cart-collaterals { grid-column: 2; position: sticky; top: calc(var(--space-8) + 72px); }
  .woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; }
}
.woocommerce-cart table.cart { border-width: 1px; }
.woocommerce-cart table.cart th { padding: var(--space-3) var(--space-4); color: var(--text-muted); font-size: 12px; font-weight: 600; letter-spacing: .06em; border-bottom: 1px solid var(--border-soft); }
.woocommerce-cart table.cart td { padding: var(--space-4); vertical-align: middle; border-top: 1px solid var(--border-soft); }
.woocommerce-cart table.cart th.product-remove, .woocommerce-cart table.cart td.product-remove { width: 56px; padding-right: 0; }
.woocommerce-cart table.cart th.product-thumbnail, .woocommerce-cart table.cart td.product-thumbnail { width: 96px; padding-right: 0; }
.woocommerce-cart table.cart img { width: 72px; height: 72px; object-fit: contain; background: var(--bg-sunken); padding: var(--space-1); }
.woocommerce-cart table.cart td.product-name a { font-weight: 600; font-size: 16px; }
.woocommerce-cart table.cart td.product-price, .woocommerce-cart table.cart td.product-subtotal { font: 500 15px/1.2 var(--font-sans); font-variant-numeric: tabular-nums; }
.woocommerce-cart table.cart td.product-subtotal { font-weight: 700; }
.woocommerce-cart table.cart a.remove { border: 0 !important; background: transparent !important; color: var(--text-muted) !important; width: 40px; height: 40px; font-size: 20px; }
.woocommerce-cart table.cart a.remove:hover { background: var(--bg-sunken) !important; color: var(--urgent-text) !important; }
.woocommerce-cart .quantity .qty { border: 1px solid var(--border-strong); width: 64px; font: 600 15px/1 var(--font-sans); }
.woocommerce-cart table.cart td.product-name .mo-badge { margin-left: var(--space-2); padding: 2px var(--space-2); font-size: 12px; vertical-align: middle; }
.woocommerce-cart table.cart td.actions { padding: var(--space-4); border-top: 1px solid var(--border-soft); }
.woocommerce-cart table.cart td.actions .coupon { display: flex; flex-wrap: nowrap; gap: var(--space-2); align-items: stretch; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 240px; min-height: 44px; border: 1px solid var(--border-strong); font-size: 14px; }
.woocommerce-cart table.cart td.actions .coupon .button { min-height: 44px; padding: 0 var(--space-4); background: transparent; color: var(--text); border: 0; box-shadow: inset 0 0 0 1.5px var(--ink-900); border-radius: var(--radius-sticker); font: 600 14px/1 var(--font-sans); white-space: nowrap; cursor: pointer; }
.woocommerce-cart table.cart td.actions .coupon .button:hover { background: var(--ink-900); color: var(--ink-50); }
.woocommerce-cart .cart_totals { border-width: 1px; padding: var(--space-5, var(--space-6)); }
.woocommerce-cart .cart_totals h2 { font: 700 20px/1.2 var(--font-display); }
.woocommerce-cart .cart_totals .order-total .amount { font: 700 22px/1 var(--font-display); }
.woocommerce-cart .wc-proceed-to-checkout .checkout-button { display: flex; width: 100%; box-shadow: none; }
/* "Volver a la tienda" and other plain WooCommerce buttons: flat, not sticker */
.woocommerce a.button.wc-backward, .woocommerce .return-to-shop a.button { background: var(--ink-900); color: var(--ink-50); border: 0; box-shadow: none; border-radius: var(--radius-sticker); min-height: 44px; display: inline-flex; align-items: center; padding: 0 var(--space-5, var(--space-6)); font: 600 14px/1 var(--font-sans); text-decoration: none; }
.woocommerce a.button.wc-backward:hover { background: var(--ink-700); }
@media (max-width: 640px) { .woocommerce-cart table.cart td.actions .coupon { flex-wrap: wrap; } .woocommerce-cart table.cart td.actions .coupon .input-text { width: 100%; } }
.woocommerce-cart .woocommerce-shipping-destination, .woocommerce-cart .shipping-calculator-button, .woocommerce-cart .woocommerce-shipping-calculator { display: none; }
@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive.cart tr.cart_item { border-bottom: 1px solid var(--border-soft); }
  .woocommerce-cart table.cart td.product-subtotal { font-size: 16px; }
  .woocommerce-cart .quantity .qty { width: 64px; min-height: 44px; }
}

/* Ofertas flash: the one live item in the menu. Coral pill with a slow heartbeat */
.mo-nav a.mo-nav__sale, .mo-drawer__nav a.is-sale { background: var(--coral-fill); color: var(--on-coral-fill); border-radius: var(--radius-pill); padding-inline: var(--space-4); font-weight: 700; box-shadow: none; text-decoration: none; animation: mo-beat 1.6s ease-in-out infinite; }
.mo-nav a.mo-nav__sale > svg, .mo-drawer__nav a.is-sale > svg { color: var(--on-coral-fill); }
.mo-nav a.mo-nav__sale:hover { color: var(--on-coral-fill); text-decoration: none; filter: brightness(.95); }
.mo-drawer__nav a.is-sale { margin-block: var(--space-2); min-height: 48px; border-bottom: 0; }
.mo-drawer__nav a.is-sale[aria-current] { box-shadow: none; margin-inline: 0; padding-inline: var(--space-4); background: var(--coral-fill); }
@keyframes mo-beat { 0%, 100% { transform: scale(1); } 14% { transform: scale(1.06); } 28% { transform: scale(1); } 42% { transform: scale(1.04); } 56% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .mo-nav a.mo-nav__sale, .mo-drawer__nav a.is-sale { animation: none; } }

/* Ofertas flash pill: fits the row (no clipping), pulses by colour instead of scaling */
.mo-nav a.mo-nav__sale { min-height: 32px; padding-inline: var(--space-3); margin-block: 6px; animation: mo-glow 1.8s ease-in-out infinite; transform: none; }
@keyframes mo-glow { 0%, 100% { background-color: var(--coral-fill); } 50% { background-color: var(--flash-fill); } }
.mo-drawer__nav a.is-sale { animation: mo-glow 1.8s ease-in-out infinite; }

@media (min-width: 1280px) { .mo-nav ul { max-width: 1320px; } .mo-nav a, .mo-nav__wheel { padding-inline: 10px; } }

/* ===== Mobile header, rebuilt: slim top strip · [menu | logo | cart] · soft white search ===== */
.mo-tb-short { display: none; }
@media (max-width: 800px) {
  .mo-topbar { position: relative; flex-wrap: nowrap; gap: var(--space-2); padding: var(--space-2) var(--space-3); min-height: 36px; font-size: 13px; }
  .mo-tb-long { display: none; }
  .mo-tb-short { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 600; }
  .mo-tb-short svg { width: 14px; height: 14px; fill: currentColor; stroke: none; color: var(--flash-fill); }
  .mo-topbar .mo-countdown--inline { gap: 2px; }
  .mo-tb-cta { font-size: 13px; }
  .mo-tb-cta::after { content: ""; position: absolute; inset: 0; }
}
@media (max-width: 1279px) {
  .mo-header__in { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; grid-template-areas: "menu logo cart" "search search search"; align-items: center; column-gap: var(--space-2); row-gap: var(--space-3); padding-block: var(--space-2) var(--space-3); width: min(100% - 2 * var(--space-3), 1200px); }
  .mo-burger { grid-area: menu; justify-self: start; margin-left: calc(-1 * var(--space-2)); }
  .mo-header__logo { grid-area: logo; justify-self: center; margin: 0; }
  .mo-header .mo-header-full { height: 44px; }
  .mo-header .mo-cart-btn { grid-area: cart; justify-self: end; position: relative; width: 48px; height: 48px; padding: 0; margin: 0 calc(-1 * var(--space-2)) 0 0; background: transparent; box-shadow: none; color: var(--on-brand-fill); justify-content: center; }
  .mo-header .mo-cart-btn:hover { background: var(--primary-700); }
  .mo-header .mo-cart-btn svg { width: 26px; height: 26px; }
  .mo-header .mo-cart-btn__txt { display: none; }
  .mo-header .mo-cart-count { position: absolute; top: 2px; right: 0; }
  .mo-search { grid-area: search; order: 0; min-height: 44px; border: 0; border-radius: var(--radius-sticker); }
  .mo-search__q { font-size: 16px; padding-left: var(--space-4); }
  .mo-search__go { width: 48px; background: transparent; color: var(--text); }
  .mo-search__go:hover { background: var(--bg-sunken); }
  .site-header .mo-header { border-bottom: 0; }
  .site-header.is-scrolled .mo-header__in { row-gap: 0; padding-bottom: var(--space-2); }
}
@media (max-width: 1279px) { .mo-header .mo-cart-btn { border: 0; outline: 0; } .mo-header .mo-cart-btn:focus-visible { box-shadow: inset 0 0 0 2px var(--on-brand-fill); } }

/* ===== Quantity stepper ===== */
.mo-qty { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.mo-qty__label { font: 600 14px/1 var(--font-sans); color: var(--text-muted); }
.mo-qty__ctl { display: inline-flex; align-items: stretch; height: 48px; border: 1px solid var(--border-strong); border-radius: var(--radius-sticker); background: var(--bg-raised); overflow: hidden; }
.mo-qty__btn { width: 44px; border: 0; background: transparent; color: var(--text); font: 500 22px/1 var(--font-sans); cursor: pointer; transition: background-color .15s ease; }
.mo-qty__btn:hover { background: var(--bg-sunken); }
.mo-qty__btn:active { background: var(--border-soft); }
.mo-qty__btn:focus-visible { outline: 0; box-shadow: inset 0 0 0 3px var(--primary-300); }
.mo-qty .qty { width: 52px; height: auto; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: center; font: 700 16px/1 var(--font-display); -moz-appearance: textfield; appearance: textfield; }
.mo-qty .qty::-webkit-outer-spin-button, .mo-qty .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mo-qty__hint { color: var(--text-muted); font: 500 13px/1 var(--font-sans); }
.woocommerce-cart .mo-qty__ctl { height: 40px; }
.woocommerce-cart .mo-qty__btn { width: 36px; }
.woocommerce-cart .mo-qty .qty { width: 40px; border: 0; min-height: 0; }

/* ===== Product page: calmer summary ===== */
.single-product .mo-price-now.is-xl { font: 700 40px/1 var(--font-display); letter-spacing: -.02em; }
.mo-flash-line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); padding: var(--space-3) var(--space-4); background: var(--bg-sunken); border-radius: var(--radius-md); font: 600 14px/1.3 var(--font-sans); }
.mo-flash-line__lbl { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--urgent-text); }
.mo-flash-line__lbl svg { width: 16px; height: 16px; fill: currentColor; stroke: none; }
.mo-flash-line__date { flex-basis: 100%; color: var(--text-muted); font-weight: 500; font-size: 13px; }
.mo-flash-line .mo-countdown--inline { margin: 0; }
.single-product .woocommerce-product-details__short-description p { font: 400 16px/1.6 var(--font-sans); color: var(--text-muted); }
.mo-assure { display: grid; gap: var(--space-3); margin: 0; padding: var(--space-4) 0 0; list-style: none; border-top: 1px solid var(--border-soft); }
.mo-assure li { display: flex; align-items: center; gap: var(--space-3); font: 400 14px/1.4 var(--font-sans); color: var(--text-muted); }
.mo-assure strong { color: var(--text); font-weight: 600; }
.mo-assure svg { flex: none; width: 22px; height: 22px; color: var(--brand); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mo-details { border-top: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); padding: 0; }
.mo-details summary { list-style: none; justify-content: space-between; padding-block: var(--space-2); font: 600 16px/1.4 var(--font-sans); cursor: pointer; }
.mo-details summary::-webkit-details-marker { display: none; }
.mo-details summary svg { width: 22px; height: 22px; fill: none; stroke: var(--brand); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.mo-details[open] summary svg { transform: rotate(180deg); }
.mo-details summary:hover span { color: var(--brand); }
.mo-details .body { padding-bottom: var(--space-4); font-size: 15px; line-height: 1.6; }
.mo-buybox form.cart { gap: var(--space-4); }
@media (prefers-reduced-motion: reduce) { .mo-details summary svg { transition: none; } }
@media (max-width: 1279px) { .mo-header .mo-header-full { height: 56px; } .mo-header__in { padding-block: var(--space-1) var(--space-3); } }
@media (max-width: 640px) { .single-product .mo-buybox__buttons .mo-btn { white-space: nowrap; } .single-product .mo-buybox__buttons .mo-btn svg { display: none; } }

/* ===== Hero slider ===== */
.hero-slides { position: relative; display: grid; place-items: center; }
.hero-slide { grid-area: 1 / 1; display: grid; place-items: center; gap: var(--space-4); width: 100%; color: inherit; text-decoration: none; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
.hero-slide.is-active { opacity: 1; visibility: visible; transition: opacity .6s ease; }
.hero-slide img { width: auto; height: auto; max-width: min(340px, var(--nw, 340px)); max-height: min(260px, var(--nh, 260px)); }
.hero-slide__cap { display: grid; justify-items: center; gap: 2px; text-align: center; font: 500 14px/1.3 var(--font-sans); color: var(--primary-200); }
.hero-slide__cap b { color: var(--on-brand-fill); font: 600 16px/1.3 var(--font-sans); }
.hero-dots { position: absolute; left: 0; right: 0; bottom: var(--space-3); display: flex; justify-content: center; gap: var(--space-1); }
.hero-dot { position: relative; width: 28px; height: 28px; border: 0; background: transparent; cursor: pointer; }
.hero-dot::after { content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--primary-300); opacity: .5; transform: translate(-50%, -50%); transition: width .25s ease, opacity .25s ease; }
.hero-dot[aria-pressed="true"]::after { width: 24px; opacity: 1; background: var(--on-brand-fill); }
.hero-dot:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px var(--on-brand-fill); border-radius: var(--radius-sm); }
.banner__media.hero-slides { padding-bottom: var(--space-12); }
@media (prefers-reduced-motion: reduce) { .hero-slide, .hero-slide.is-active, .hero-dot::after { transition: none; } }

/* ===== Gira y Gana band (home) ===== */
.spin-band { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-6); padding: var(--space-6) var(--space-8); border-radius: var(--radius-card); background: var(--primary-100); }
.spin-band__wheel { width: 112px; height: 112px; border-radius: 50%; background: conic-gradient(var(--brand-fill) 0 60deg, var(--cta-fill) 60deg 120deg, var(--flash-fill) 120deg 180deg, var(--brand-fill) 180deg 240deg, var(--coral-fill) 240deg 300deg, var(--cta-fill) 300deg 360deg); box-shadow: 0 0 0 6px var(--bg-raised), 0 0 0 8px var(--ink-900); position: relative; animation: mo-spin 18s linear infinite; }
.spin-band__wheel::after { content: ""; position: absolute; inset: 40%; border-radius: 50%; background: var(--bg-raised); box-shadow: 0 0 0 2px var(--ink-900); }
@keyframes mo-spin { to { transform: rotate(360deg); } }
.spin-band__text { display: grid; gap: var(--space-2); justify-items: start; }
.spin-band__text h2 { margin: 0; }
.spin-band__text .body { margin: 0; color: var(--text-muted); max-width: 52ch; }
@media (max-width: 800px) { .spin-band { grid-template-columns: 1fr; justify-items: start; padding: var(--space-6) var(--space-4); gap: var(--space-4); } .spin-band__wheel { width: 88px; height: 88px; } .spin-band__cta { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .spin-band__wheel { animation: none; } }
.mo-nav__end { display: none; }

/* ===== Productos a Luca: the signature mechanic gets its own loud band ===== */
.luca-band { display: grid; gap: var(--space-6); padding: var(--space-8); border-radius: var(--radius-card); background: var(--ink-900); color: var(--ink-50); }
.luca-band__head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-6); }
.luca-band__price { font: 800 clamp(48px, 7vw, 72px)/1 var(--font-display); letter-spacing: -.03em; color: var(--flash-fill); }
.luca-band h2 { margin: 0 0 var(--space-2); color: var(--ink-50); }
.luca-band__lead { margin: 0; max-width: 56ch; color: var(--ink-200); font: 400 16px/1.5 var(--font-sans); }
.luca-band__cta { background: var(--flash-fill); color: var(--on-flash-fill); }
.luca-band__cta:hover:not(:disabled) { background: var(--flash-fill); filter: brightness(1.08); color: var(--on-flash-fill); }
.luca-band .mo-luca-ticket { margin: 0; }
.luca-band .mo-luca-shelf, .luca-band .mo-luca-grid { margin: 0; }
@media (max-width: 800px) { .luca-band { padding: var(--space-5, var(--space-6)) var(--space-4); } .luca-band__head { grid-template-columns: 1fr; gap: var(--space-3); } .luca-band__cta { width: 100%; } }
/* nav: A Luca as a dark chip with the price in orange */
.mo-nav a[href*="mo_luca"] { background: var(--ink-900); color: var(--ink-50); border-radius: var(--radius-pill); min-height: 32px; margin-block: 6px; padding-inline: var(--space-3); }
.mo-nav a[href*="mo_luca"] > svg { color: var(--flash-fill); }
.mo-nav a[href*="mo_luca"]:hover { color: var(--ink-50); text-decoration: none; background: var(--ink-800); }
.mo-nav a[href*="mo_luca"][aria-current] { box-shadow: inset 0 0 0 2px var(--flash-fill); }

/* One container for header, nav and page: same left and right edge everywhere */
.mo-nav ul { width: min(100% - 2 * var(--space-4), 1200px); max-width: none; padding: 0; margin-inline: auto; justify-content: space-between; gap: 0; }
@media (min-width: 1280px) { .mo-nav ul { max-width: none; } .mo-nav a { padding-inline: 8px; } }
.banner.hero-slides { grid-template-columns: minmax(0, 1fr) !important; min-height: 0; }
.banner.hero-slides > .hero-slide { width: 100%; }

/* ===== Hero: every slide is a whole banner (copy + product), cross-fading ===== */
.banner.hero-slides { position: relative; display: grid; background: var(--primary-900); }
.banner.hero-slides > .hero-slide { grid-area: 1 / 1; display: grid; width: 100%; gap: 0; place-items: stretch; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
.banner.hero-slides > .hero-slide.is-active { opacity: 1; visibility: visible; transition: opacity .6s ease; }
@media (min-width: 800px) { .banner.hero-slides > .hero-slide { grid-template-columns: 1.05fr .95fr; min-height: 400px; } }
.hero-slide .banner__text h1, .hero-slide .banner__text .hero-h { margin: 0; max-width: 14ch; color: var(--on-brand-fill); font: 800 clamp(34px, 4.4vw, 52px)/1.05 var(--font-display); letter-spacing: -.02em; }
.hero-slide .hero-media { position: relative; display: grid; place-items: center; align-content: center; gap: var(--space-3); padding: var(--space-8) var(--space-8) var(--space-12); color: inherit; text-decoration: none; }
.hero-slide .hero-media img { width: auto; height: auto; max-width: min(340px, var(--nw, 340px)); max-height: min(270px, var(--nh, 270px)); }
.hero-slide--flash { background: var(--primary-900); } .hero-slide--flash .hero-media { background: var(--primary-800); }
.hero-slide--luca { background: var(--ink-900); } .hero-slide--luca .hero-media { background: var(--ink-800); }
.hero-slide--luca .banner__text .body-lg { color: var(--ink-200); }
.hero-slide--ship { background: var(--primary-700); } .hero-slide--ship .hero-media { background: var(--primary-600); }
.hero-slide--ship .banner__text .body-lg { color: var(--primary-100); }
.hero-slide--luca .mo-btn-cart { background: var(--flash-fill); color: var(--on-flash-fill); }
.banner.hero-slides > .hero-dots { position: absolute; left: 0; right: 0; bottom: var(--space-3); z-index: 2; }
@media (max-width: 799px) { .hero-slide .hero-media { padding: var(--space-6) var(--space-4) var(--space-12); min-height: 260px; } .hero-slide .banner__text { padding: var(--space-8) var(--space-5) var(--space-6); } }
@media (max-width: 799px) {
  .hero-slide .hero-media { min-height: 0; padding: var(--space-4) var(--space-4) var(--space-10, 40px); }
  .hero-slide .hero-media img { max-width: min(220px, var(--nw, 220px)); max-height: min(170px, var(--nh, 170px)); }
  .hero-slide .banner__text { gap: var(--space-3); padding: var(--space-6) var(--space-5) var(--space-5); }
}

/* A Luca explainer on the product page */
.mo-luca-offer { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3) var(--space-4); align-items: center; padding: var(--space-4); border-radius: var(--radius-md); background: var(--bg-sunken); }
.mo-luca-offer p { margin: 0; font: 400 14px/1.5 var(--font-sans); color: var(--text-muted); }
.mo-luca-offer p strong { color: var(--text); font-weight: 600; }
.mo-luca-offer p a { color: var(--brand); font-weight: 600; }
.mo-luca-offer .js-luca-add { grid-column: 1 / -1; background: var(--flash-fill); color: var(--on-flash-fill); min-height: 48px; }
.mo-luca-offer .js-luca-add:hover:not(:disabled) { background: var(--flash-fill); filter: brightness(1.08); color: var(--on-flash-fill); }
.mo-luca-offer.is-open { background: var(--bg-raised); box-shadow: inset 0 0 0 2px var(--flash-fill); }

/* ===== Palette round 3: graphite + red on white ===== */
.mo-topbar a, .mo-tb-short svg { color: var(--coral-fill); }
.mo-tb-short svg { color: var(--coral-fill); }
@keyframes mo-glow { 0%, 100% { background-color: var(--coral-fill); } 50% { background-color: var(--flash-400); } }
.luca-band__price, .luca-band__cta + * { color: var(--coral-fill); }
.luca-band__cta, .luca-band__cta:hover:not(:disabled) { background: var(--flash-fill); color: var(--on-flash-fill); }
body { background: var(--bg); }
.mo-price-save { background: var(--flash-100); color: var(--flash-800); }
