/* ── Fonts ─────────────────────────────────────────────────────────────────── */
@font-face { font-family:'Instrument Sans'; src:url('../fonts/InstrumentSans-VariableFont_wdth,wght.ttf') format('truetype'); font-weight:100 900; font-style:normal; font-display:swap; }
@font-face { font-family:'Instrument Sans'; src:url('../fonts/InstrumentSans-Italic-VariableFont_wdth,wght.ttf') format('truetype'); font-weight:100 900; font-style:italic; font-display:swap; }
@font-face { font-family:'Gooper'; src:url('../fonts/Gooper-Light.otf') format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Gooper'; src:url('../fonts/Gooper-LightItalic.otf') format('opentype'); font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:'Gooper'; src:url('../fonts/Gooper-Regular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Gooper'; src:url('../fonts/Gooper-SemiBold.otf') format('opentype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Gooper'; src:url('../fonts/Gooper-Bold.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }

/* ── Variables ──────────────────────────────────────────────────────────────── */
:root {
    --font-display: 'Gooper', Georgia, serif;
    --font-body: 'Instrument Sans', system-ui, sans-serif;
    --color-dark:   #40361F;
    --color-body:   #2A2320;
    --color-bg:     #F4EFE8;
    --color-bg2:    #EBEBEA;
    --color-muted:  #B5AFA8;
    --color-accent: #D3C4AE;
    --color-look:   #B9A78D;
    --color-sale:   #913232;
    --color-border: #DBD3C8;
    --color-border2: #E5DED5;
    --color-badge-rebajas-bg: #fdeaf2;
    --ease: cubic-bezier(.25,.46,.45,.94);
}

/* ── Reset ──────────────────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:16px; -webkit-text-size-adjust:100%; }
body { font-family:var(--font-body); color:var(--color-body); background:#fff; line-height:1.5; -webkit-font-smoothing:antialiased; overflow-x:clip; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
button { font-family:inherit; }
input,button,textarea,select { font-family:inherit; font-size:inherit; }
[hidden] { display:none !important; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* Neutralize WordPress wrapper divs */
.wp-site-blocks, .is-layout-flow, .entry-content,
#page, #content, #primary, #main, .site, .site-content { all:unset; display:block; }

/* ── Navbar ─────────────────────────────────────────────────────────────────── */
/* top se desplaza con --store-notice-h (ver JS) para dejar sitio al aviso de
   tienda de WooCommerce cuando está activo — si no, el header (flotante,
   fuera del flujo normal para poder ir encima del hero de la home) lo tapaba. */
.site-header { position:absolute; top:var(--store-notice-h, 0px); left:0; right:0; z-index:100; transition:top .25s var(--ease); }

/* ── Aviso de tienda de WooCommerce (Ajustes → General → Anuncio de tienda) ──
   Sin esto sale sin estilo (le quitamos el CSS por defecto de WooCommerce) y
   se queda detrás del header flotante, cortado. */
.woocommerce-store-notice {
    position:relative; z-index:150;
    background:var(--color-dark); color:#F5F0E8;
    text-align:center; font-size:13px; line-height:1.6;
    padding:12px 60px 12px 20px; margin:0;
}
.woocommerce-store-notice__dismiss-link {
    position:absolute; top:50%; right:20px; transform:translateY(-50%);
    color:inherit; text-decoration:underline; text-underline-offset:2px;
    opacity:.8; transition:opacity .2s;
}
.woocommerce-store-notice__dismiss-link:hover { opacity:1; }

.navbar { padding:8px 2em; }

.navbar__pill {
    display:flex; align-items:center; max-width:1900px; margin:0 auto;
    height:72px; background:#fff; border-radius:999px; padding:0 36px;
}

.navbar__left,.navbar__right { display:flex; align-items:center; gap:26px; flex:1; }
.navbar__right { justify-content:flex-end; }

.navbar__logo { flex-shrink:0; padding:0 36px; text-decoration:none; }
.navbar__logo img { height:56px; width:auto; }

.navbar__icons { display:flex; align-items:center; gap:18px; margin-left:8px; }

.icon-btn,.cart-btn {
    background:none; border:none; cursor:pointer; padding:0;
    display:flex; align-items:center; transition:opacity .2s; text-decoration:none; position:relative;
}
.icon-btn:hover,.cart-btn:hover { opacity:.55; }

.cart-count {
    position:absolute; top:-4px; right:-6px;
    background:var(--color-dark); color:#fff;
    font-size:10px; font-weight:600; border-radius:999px;
    padding:1px 5px; line-height:1.4;
}

/* Nav items */
.nav-item { position:relative; }
.nav-item__link {
    display:flex; align-items:center; gap:5px;
    font-size:18px; color:var(--color-dark); text-decoration:none;
    white-space:nowrap; transition:opacity .2s; cursor:pointer;
}
.nav-item__link:hover { opacity:.55; }
.nav-chevron { transition:transform .2s var(--ease); flex-shrink:0; }
.nav-item.open .nav-chevron { transform:rotate(180deg); }

/* Dropdown panel */
.nav-panel {
    position:absolute; top:calc(100% + 32px); left:0;
    background:#fff; border:1px solid #EDE8E1; border-radius:16px;
    box-shadow:0 12px 40px rgba(0,0,0,.10); z-index:200;
    opacity:0; pointer-events:none; transform:translateY(-6px);
    transition:opacity .18s var(--ease), transform .18s var(--ease);
}
.nav-item.open .nav-panel { opacity:1; pointer-events:auto; transform:none; }
.nav-panel--dropdown { min-width:220px; }
.navbar__right .nav-panel--dropdown { left:auto; right:0; }

.dropdown-panel { padding:20px 24px; }
.dropdown-panel__label { font-size:10px; letter-spacing:.15em; font-weight:600; color:var(--color-dark); margin-bottom:10px; }
.dropdown-panel__sep { height:1px; background:var(--color-border); margin-bottom:14px; }
.dropdown-panel__list { display:flex; flex-direction:column; gap:9px; align-items:flex-start; }
.dropdown-panel__item { font-size:15px; color:var(--color-dark); text-decoration:none; white-space:nowrap; transition:opacity .15s; }
.dropdown-panel__item:hover { opacity:.55; }
.dropdown-panel__item--look { color:var(--color-look); font-weight:600; }

/* Mega overlay (ancho ajustado al contenido, igual que los demás desplegables) */
.mega-overlay {
    position:absolute; top:100%; left:2em; margin-top:2px;
    background:#fff; border:1px solid #EDE8E1; border-radius:16px;
    box-shadow:0 12px 40px rgba(0,0,0,.10); z-index:200;
    opacity:0; pointer-events:none; transform:translateY(-6px);
    transition:opacity .18s var(--ease), transform .18s var(--ease);
}
.mega-overlay.open { opacity:1; pointer-events:auto; transform:none; }
.mega-content { display:none; }
.mega-content.active { display:block; }

/* Mega panel layout (solo "Colecciones": lista con círculo de estampado) */
.mega-panel { padding:24px 28px; }
.mega-panel--collections { max-width:760px; margin:0 auto; padding:32px 40px; }
.mega-panel__label { font-size:10px; letter-spacing:.15em; font-weight:600; color:var(--color-dark); margin-bottom:10px; }
.mega-panel__sep { height:1px; width:180px; background:var(--color-border); margin-bottom:14px; }
/* Grid (no flex-wrap): así las columnas quedan alineadas entre filas — con
   flex-wrap cada fila cuadraba distinto según lo largo del texto y se veía
   descolocado. */
.mega-panel__list { display:grid; grid-template-columns:repeat(3, auto); align-items:start; gap:18px 40px; }
.mega-panel__item { font-size:15px; color:var(--color-dark); text-decoration:none; white-space:nowrap; transition:opacity .15s; }
.mega-panel__item:hover { opacity:.55; }
.mega-panel__item.is-sale { color:var(--color-sale); font-weight:600; }
.mega-panel__item.is-featured { color:var(--color-accent); font-weight:600; }
.mega-panel__item--look { color:var(--color-look); font-weight:600; }
.mega-panel__item--swatch { display:inline-flex; align-items:center; gap:10px; white-space:normal; max-width:210px; }
.mega-panel__swatch {
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    background-size:cover; background-position:center; background-color:var(--color-bg);
    border:1px solid var(--color-border);
}

/* ── Mobile menu toggle (hamburger) ──────────────────────────────────────────── */
.mobile-menu-toggle {
    display:none; flex-direction:column; justify-content:center; gap:4px;
    width:44px; height:44px; padding:0; margin-right:4px;
    background:none; border:none; cursor:pointer; flex-shrink:0;
}
.mobile-menu-toggle span { display:block; width:20px; height:2px; background:var(--color-dark); border-radius:2px; transition:opacity .2s, transform .2s; }

/* ── Mobile nav drawer ───────────────────────────────────────────────────────── */
.mobile-menu-backdrop {
    position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:299;
}
.mobile-menu-drawer {
    position:fixed; top:0; left:0; bottom:0; width:min(340px,86vw);
    background:#fff; z-index:300; overflow-y:auto;
    transform:translateX(-100%); transition:transform .3s var(--ease);
    display:flex; flex-direction:column;
}
.mobile-menu-drawer.open { transform:none; }
.mobile-menu-drawer__header {
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 20px; border-bottom:1px solid var(--color-border2); flex-shrink:0;
}
.mobile-menu-drawer__close {
    width:44px; height:44px; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.mobile-menu-drawer__nav { padding:8px 4px 32px; }

.mobile-nav-item { border-bottom:1px solid var(--color-border2); }
.mobile-nav-item__row { display:flex; align-items:stretch; }
.mobile-nav-item__link {
    flex:1; padding:16px 20px; font-size:17px; color:var(--color-dark); text-decoration:none;
}
.mobile-nav-item__toggle {
    width:52px; flex-shrink:0; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
}
.mobile-nav-item__toggle svg { transition:transform .2s var(--ease); }
.mobile-nav-item__toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.mobile-nav-item__panel {
    display:flex; flex-direction:column; padding:0 20px 16px 32px;
}
.mobile-nav-item__sublink {
    padding:10px 0; font-size:15px; color:var(--color-dark); opacity:.7; text-decoration:none;
}
.mobile-nav-item__sublink:hover { opacity:1; }
.mobile-nav-item__sublink--look { color:var(--color-look); opacity:1; font-weight:600; }

/* ── Hero ───────────────────────────────────────────────────────────────────── */
.hero { position:relative; height:calc(100vh - 48px); min-height:600px; overflow:hidden; }
.hero__slides { position:absolute; inset:0; }
.hero__slide {
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:0; transition:opacity 1.2s ease;
    animation:kenburns 8s ease-in-out forwards;
}
.hero__slide.active { opacity:1; }
.hero__overlay { position:absolute; inset:0; background:rgba(0,0,0,.1); pointer-events:none; }

@keyframes kenburns {
    from { transform:scale(1); }
    to   { transform:scale(1.08); }
}

/* ── Hero text overlay ──────────────────────────────────────────────────────── */
.hero__text {
    position:absolute; bottom:64px; left:0; right:0;
    max-width:1900px; margin:0 auto; padding:0 40px; z-index:11;
}
.hero__label {
    font-size:11px; letter-spacing:.22em; color:rgba(255,255,255,.92);
    margin-bottom:12px; text-transform:uppercase;
}
.hero__title {
    font-family:var(--font-display); font-size:clamp(32px,4.4vw,44px);
    font-weight:300; color:#fff; line-height:47px; margin-bottom:28px;
    max-width:480px; text-shadow:0 1px 8px rgba(0,0,0,.15);
}
.hero__btn {
    display:inline-flex; align-items:center; justify-content:center;
    width:176px; height:58px; border-radius:50px;
    background:var(--color-accent); color:#845C22;
    font-size:15px; font-weight:500; text-decoration:none;
    font-family:var(--font-body);
    position:relative; overflow:hidden;
    transition:color .35s var(--ease);
}
.hero__btn > * { position:relative; z-index:1; }

/* ── Hero gradient overlay ───────────────────────────────────────────────────── */
.hero__overlay {
    background:linear-gradient(45deg, rgba(64,54,31,.6) 0%, rgba(0,0,0,0) 55%);
}

/* ── FeaturesBar ────────────────────────────────────────────────────────────── */
.features-bar { background:var(--color-bg); border-bottom:1px solid var(--color-border2); }
.features-bar__inner {
    max-width:1000px; margin:0 auto; padding:0 40px;
    display:flex; align-items:center; height:48px;
}
.features-bar__item { display:flex; flex:1; align-items:center; justify-content:center; gap:8px; }
.features-bar__item span { font-size:14px; color:var(--color-dark); }

/* ── Home: categorías principales (grid estático, destacado) ─────────────────── */
.home-cats-grid { padding:60px 0 48px; background:#FAFAF8; border-bottom:1px solid var(--color-border); }
.home-cats-grid__header { max-width:1900px; margin:0 auto; padding:0 40px; margin-bottom:32px; }
.home-cats-grid__title { font-family:var(--font-body); font-size:26px; font-weight:600; color:var(--color-dark); }

.home-cats-grid__grid {
    max-width:1900px; margin:0 auto; padding:0 40px;
    display:grid; grid-template-columns:repeat(6, 1fr); gap:32px 24px;
}
.cat-grid-item { text-decoration:none; display:block; transition:transform .2s var(--ease); }
.cat-grid-item:hover { transform:translateY(-4px); }
.cat-grid-item__img { width:100%; aspect-ratio:296/440; overflow:hidden; margin-bottom:10px; }
.cat-grid-item__img img { width:100%; height:100%; object-fit:cover; }
.cat-grid-item__name { font-family:var(--font-display); font-size:17px; font-weight:300; color:var(--color-dark); }

/* ── Home: featured products ────────────────────────────────────────────────── */
.home-products { background:var(--color-bg); padding:56px 0 64px; }
.home-products__inner { max-width:1900px; margin:0 auto; padding:0 40px; }
.home-products__header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:36px; }
.home-products__title { font-size:24px; font-weight:600; color:var(--color-dark); font-family:var(--font-body); }
.home-products__all {
    display:inline-flex; align-items:center; flex-shrink:0;
    padding:11px 26px; border-radius:99px; border:1.5px solid #40361F;
    font-size:13px; font-weight:600; letter-spacing:.06em; color:#40361F;
    font-family:var(--font-body); text-decoration:none;
    position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.home-products__all > * { position:relative; z-index:1; }
.product-grid--5col { grid-template-columns:repeat(5,1fr) !important; gap:20px !important; }

/* ── Gender Banners (solo imagen, sin marco ni texto) ────────────────────────── */
.gender-banners { display:flex; gap:40px; padding:40px; }
.gender-card { flex:1; position:relative; height:720px; overflow:hidden; display:block; transition:transform .2s var(--ease); }
.gender-card:hover { transform:translateY(-4px); }
.gender-card__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.gender-card__overlay {
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,16,10,0) 45%, rgba(20,16,10,.55) 100%);
}
.gender-card__text { position:absolute; left:0; right:0; bottom:0; z-index:1; padding:36px 40px; }
.gender-card__title {
    font-family:var(--font-display); font-size:48px; font-weight:300;
    color:#fff; line-height:1; margin-bottom:4px;
}
.gender-card__subtitle { font-size:19px; color:#fff; font-weight:400; }

/* ── Colecciones (text + photos) ────────────────────────────────────────────── */
.home-colecciones { padding:40px; }
.home-colecciones__inner {
    max-width:1900px; margin:0 auto;
    display:flex; background:var(--color-bg);
    gap:40px; overflow:hidden;
}
.home-colecciones__text {
    flex:0 0 42%; padding:40px 0 40px 40px;
    display:flex; flex-direction:column; justify-content:center;
    position:relative;
}
.home-colecciones__label {
    font-size:15px; letter-spacing:.2em; color:var(--color-dark);
    margin-bottom:16px; font-weight:500;
}
.home-colecciones__title {
    font-family:var(--font-display); font-size:clamp(32px,3.2vw,44px);
    font-weight:300; color:var(--color-dark); line-height:1.1; margin-bottom:18px;
}
.home-colecciones__desc {
    font-size:16px; color:var(--color-dark); line-height:1.6;
    max-width:340px; margin-bottom:28px;
}
.home-colecciones__btn {
    display:inline-flex; align-items:center;
    padding:11px 28px; border-radius:99px; border:1.5px solid var(--color-dark);
    font-size:13px; letter-spacing:.06em; color:var(--color-dark);
    text-decoration:none; font-family:var(--font-body); align-self:flex-start;
    position:relative; overflow:hidden;
    transition:color .35s var(--ease);
}
.home-colecciones__btn > * { position:relative; z-index:1; }
.home-colecciones__photos { flex:1; display:flex; gap:16px; align-self:stretch; }
.home-colecciones__photo-wrap { flex:1; height:420px; overflow:hidden; display:block; align-self:stretch; }
.home-colecciones__photo-wrap img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }

/* ── Home: Puericultura (banner final) ───────────────────────────────────────── */
.home-puericultura { padding:40px 40px 64px; }
.home-puericultura__banner {
    position:relative; display:flex; align-items:center; justify-content:center;
    min-height:340px; overflow:hidden; text-decoration:none; background:var(--color-bg);
}
.home-puericultura__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.home-puericultura__overlay { position:absolute; inset:0; background:rgba(30,25,18,.38); }
.home-puericultura__text { position:relative; z-index:1; text-align:center; padding:0 24px; }
.home-puericultura__title {
    font-family:var(--font-display); font-size:clamp(24px,3vw,36px); font-weight:300;
    color:#fff; line-height:1.25; margin:0 auto 22px; max-width:560px;
}
.home-puericultura__btn {
    display:inline-flex; align-items:center; padding:12px 30px; border-radius:99px;
    border:1.5px solid #fff; font-size:13px; font-weight:600; letter-spacing:.08em;
    color:#fff; text-transform:uppercase;
    position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.home-puericultura__btn > * { position:relative; z-index:1; }

/* ── Home: collections slider (old — kept for other pages) ──────────────────── */
.home-collections { padding:0 0 64px; }
.home-collections__header { display:flex; align-items:baseline; justify-content:space-between; padding:0 40px; margin-bottom:24px; }
.home-collections__title { font-family:var(--font-display); font-size:28px; font-weight:300; color:var(--color-dark); }
.home-collections__link { font-size:14px; color:var(--color-dark); opacity:.6; text-decoration:underline; transition:opacity .15s; }
.home-collections__link:hover { opacity:1; }

/* ── Horizontal scroll ─────────────────────────────────────────────────────── */
.h-scroll {
    display:flex; gap:16px; overflow-x:auto; scroll-behavior:smooth;
    padding-left:40px; padding-right:0; padding-top:4px; padding-bottom:12px;
    scrollbar-width:none; -ms-overflow-style:none;
}
.h-scroll::-webkit-scrollbar { display:none; }
.h-scroll__spacer { flex-shrink:0; width:24px; }

.h-scroll-track-wrap { padding:4px 40px 10px; }
.h-scroll-track {
    height:7px; background:#fff; border-radius:30px;
    position:relative; cursor:pointer;
}
.h-scroll-thumb {
    position:absolute; height:100%; background:var(--color-accent);
    border-radius:30px; cursor:grab; transition:left .08s;
}
.h-scroll-thumb:active { cursor:grabbing; }

/* Collection slides (viejo, sin uso actualmente — se conserva por si se retoma) */
.collection-slide {
    flex-shrink:0; width:296px; text-decoration:none; display:block;
    transition:transform .2s var(--ease);
}
.collection-slide:hover { transform:translateY(-4px); }
.collection-slide__img { width:100%; overflow:hidden; margin-bottom:10px; aspect-ratio:4/5; }
.collection-slide__img img { width:100%; height:100%; object-fit:cover; }
.collection-slide__name {
    font-family:var(--font-display); font-size:19px; font-weight:300;
    color:var(--color-dark); line-height:27px;
}

.cat-slide {
    flex-shrink:0; width:320px; background:#fff; border:1px solid var(--color-border2);
    border-radius:8px; padding:16px; transition:transform .2s var(--ease);
}
.cat-slide:hover { transform:translateY(-4px); }
.cat-slide__header { margin-bottom:12px; }
.cat-slide__name {
    font-family:var(--font-display); font-size:19px; font-weight:300;
    color:var(--color-dark); line-height:1.2;
}
.cat-slide__products { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:14px; }
.cat-slide__product { display:block; aspect-ratio:3/4; overflow:hidden; border-radius:4px; background:var(--color-bg); }
.cat-slide__product img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s var(--ease); }
.cat-slide__product:hover img { transform:scale(1.04); }
.cat-slide__view-all {
    display:block; text-align:center; padding:11px; border:1.5px solid var(--color-dark);
    border-radius:99px; font-size:12px; font-weight:600; letter-spacing:.06em;
    color:var(--color-dark); text-decoration:none; transition:background .2s var(--ease), color .2s var(--ease);
}
.cat-slide__view-all:hover { background:var(--color-dark); color:#fff; }

/* ── Category hero (parent) ────────────────────────────────────────────────── */
.cat-hero { background:var(--color-bg); padding:130px 40px 24px; text-align:center; }
.cat-hero__title { font-family:var(--font-display); font-size:40px; font-weight:300; color:var(--color-dark); line-height:43.5px; }

/* ── Subcategory hero (child) ───────────────────────────────────────────────── */
.subcat-hero {
    background:var(--color-bg);
    padding:140px 40px 56px; text-align:center;
}
.subcat-hero__label { font-size:14px; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--color-dark); margin-bottom:14px; }
.subcat-hero__label a { text-decoration:none; color:inherit; transition:opacity .15s; }
.subcat-hero__label a:hover { opacity:.6; }
.subcat-hero__title { font-family:var(--font-display); font-size:40px; font-weight:300; color:var(--color-dark); line-height:43.5px; margin-bottom:20px; }
.subcat-hero__desc { font-size:16px; font-weight:400; color:var(--color-dark); max-width:420px; margin:0 auto; line-height:1.6; }

/* ── Category slider wrap ─────────────────────────────────────────────────── */
.cat-slider-wrap { background:var(--color-bg); padding-top:0; }

/* ── Filter bar ─────────────────────────────────────────────────────────────── */
.filter-bar { border-bottom:none; }
.filter-bar__inner {
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 40px 4px;
}
.filter-bar__inner--single { justify-content:space-between; }

.filter-toggle {
    display:flex; align-items:center; gap:8px;
    background:none; border:none; cursor:pointer; padding:0;
    font-size:16px; color:var(--color-dark);
}
.filter-toggle img { width:16px; height:auto; }

.filter-count {
    font-size:11px; font-weight:500; background:var(--color-dark); color:var(--color-bg);
    border-radius:99px; padding:2px 7px; line-height:1.4;
}

/* Sort */
.sort-wrap { display:flex; align-items:center; gap:8px; position:relative; }
.sort-label { font-size:16px; font-weight:400; color:var(--color-dark); }
.sort-btn {
    display:flex; align-items:center; gap:6px;
    background:none; border:none; cursor:pointer; padding:4px 0;
    font-size:16px; color:var(--color-dark);
}
.sort-btn svg { transition:transform .2s; }
.sort-btn[aria-expanded="true"] svg { transform:rotate(180deg); }
.sort-dropdown {
    position:absolute; top:calc(100% + 8px); right:0;
    background:#fff; border:1px solid #EDE8E1; border-radius:12px;
    box-shadow:0 8px 32px rgba(0,0,0,.09); z-index:100; min-width:220px; padding:8px 0;
}
.sort-dropdown__item {
    display:block; width:100%; padding:10px 18px;
    font-size:14px; color:rgba(64,54,31,.65); text-decoration:none;
    transition:color .15s;
}
.sort-dropdown__item:hover,.sort-dropdown__item.active { color:var(--color-dark); font-weight:500; }

/* Filter panel */
.filter-panel {
    padding:28px 40px 32px; border-bottom:1px solid var(--color-border2);
    animation:slideDown .35s var(--ease) both;
}
.filter-panel[hidden] { display:none; }
@keyframes slideDown {
    from { opacity:0; transform:translateY(-8px); }
    to   { opacity:1; transform:none; }
}
.filter-panel__inner { display:grid; gap:48px; }
.filter-panel__inner--2col { grid-template-columns:1fr 1fr; max-width:600px; }
.filter-panel__inner--3col { grid-template-columns:1fr 1fr 1fr; }
.filter-panel__clear { padding-top:10px; display:flex; justify-content:flex-end; }
.clear-filters { font-size:13px; color:var(--color-sale); text-decoration:underline; }

.filter-group__title { font-size:10px; letter-spacing:.15em; font-weight:600; text-transform:uppercase; color:var(--color-dark); margin-bottom:10px; }
.filter-group__sep { height:1px; background:var(--color-border2); margin-bottom:14px; }

/* Checkboxes */
.filter-checkboxes { display:flex; flex-direction:column; gap:11px; max-height:220px; overflow-y:auto; }
.checkbox-label { display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; font-size:14px; }
.checkbox {
    width:16px; height:16px; flex-shrink:0; border-radius:3px;
    border:1.5px solid #C8BDB0; background:transparent; display:flex; align-items:center; justify-content:center;
    transition:background .15s, border-color .15s;
}
.checkbox--checked { background:var(--color-dark); border-color:var(--color-dark); }
.checkbox__input { display:none; }
.checkbox__check { display:none; }
.checkbox--checked .checkbox__check { display:block; }

/* Variante para el checkbox de productos del look: más grande, cuadrada, en --color-border */
.checkbox--look { width:20px; height:20px; border-radius:0; border-color:var(--color-border); }
.checkbox--look.checkbox--checked { background:var(--color-border); border-color:var(--color-border); }

/* Toggle */
.toggle-label { display:flex; align-items:center; gap:12px; cursor:pointer; user-select:none; font-size:14px; }
.toggle {
    width:40px; height:22px; border-radius:11px;
    background:#D8D0C8; position:relative; transition:background .2s; flex-shrink:0;
}
.toggle--on { background:var(--color-dark); }
.toggle__input { display:none; }
.toggle__thumb {
    position:absolute; top:3px; left:3px;
    width:16px; height:16px; border-radius:50%; background:#fff;
    transition:left .2s; box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.toggle--on .toggle__thumb { left:21px; }

/* Price inputs */
.price-inputs { display:flex; align-items:center; gap:10px; }
.price-input {
    width:80px; height:36px; border:1px solid #D8D0C8; border-radius:6px;
    padding:0 10px; font-size:14px; color:var(--color-dark); background:#FAFAF8;
    outline:none;
}
.price-input:focus { border-color:var(--color-dark); }
.price-currency { font-size:13px; color:#B5AFA8; }

/* ── Product grid ───────────────────────────────────────────────────────────── */
.archive-products { max-width:1900px; margin:0 auto; padding:16px 40px 64px; opacity:1 !important; transform:none !important; }
.product-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }

@keyframes mhFadeUp {
    from { opacity:0; transform:translateY(14px); }
    to   { opacity:1; transform:none; }
}

/* ── Product card ───────────────────────────────────────────────────────────── */
.product-card { display:block; min-width:0; text-decoration:none; transition:transform .2s ease; }
.product-card:hover { transform:translateY(-4px); }

.archive-products .product-card {
    animation: mhFadeUp .45s ease-out backwards;
}
.archive-products .product-card:nth-child(4n+2) { animation-delay: 70ms; }
.archive-products .product-card:nth-child(4n+3) { animation-delay: 140ms; }
.archive-products .product-card:nth-child(4n+4) { animation-delay: 210ms; }

.product-card__img {
    position:relative; aspect-ratio:3/4; margin-bottom:12px; overflow:hidden;
}
.product-card__img img {
    width:100%; height:100%; object-fit:cover;
}

.product-card__badge {
    position:absolute; top:6px; right:6px;
    display:flex; align-items:center; pointer-events:none;
}
.product-card__badge span {
    padding:7px 10px 7px 12px; font-size:11px; letter-spacing:.12em; line-height:1;
    font-family:var(--font-display); font-weight:400; border-radius:4px 0 0 4px; white-space:nowrap;
    color:var(--color-dark);
}
.badge--rebajas span { background:var(--color-badge-rebajas-bg); }
.badge-tag { height:46px; width:auto; flex-shrink:0; margin-left:-14px; }

.product-card__name { font-size:16px; font-weight:500; color:var(--color-body); line-height:1.4; margin-bottom:7px; text-align:center; }
/* Página de colección: títulos de producto más grandes */
.archive-products .product-card__name { font-size:19px; }
.product-card__price { display:flex; align-items:baseline; gap:8px; justify-content:center; }
.price-orig { font-size:15px; font-weight:400; color:#913232; text-decoration:line-through; }
.price-cur  { font-size:19px; font-weight:400; color:var(--color-body); }
.price-cur--sale { color:var(--color-body); }

/* Woo price override */
.price-cur .woocommerce-Price-amount,
.price-orig .woocommerce-Price-amount { font-size:inherit; font-weight:inherit; color:inherit; }

/* ── No products ─────────────────────────────────────────────────────────────── */
.no-products { text-align:center; color:rgba(64,54,31,.5); font-size:15px; padding:60px 0; }

/* ── Pagination ─────────────────────────────────────────────────────────────── */
.archive-pagination {
    display:flex; justify-content:center; align-items:center; gap:8px; margin-top:56px;
}
.page-btn {
    width:48px; height:48px; border-radius:50%; border:none;
    background:var(--color-bg); color:var(--color-dark);
    cursor:pointer; font-size:15px; font-family:var(--font-body); font-weight:400;
    display:flex; align-items:center; justify-content:center;
    text-decoration:none; transition:background .2s, opacity .15s; flex-shrink:0;
}
.page-btn.active { background:var(--color-accent); }
.page-btn.disabled { opacity:.35; pointer-events:none; }
.page-btn:hover:not(.active):not(.disabled) { background:var(--color-border); }
.page-btn--ellipsis { cursor:default; pointer-events:none; }

/* ── Single product ──────────────────────────────────────────────────────────── */
.single-product { background:#fff; min-height:100vh; }

/* Breadcrumb bar — above the two-column layout */
.single-product__breadcrumb-bar { padding:104px 0 20px 48px; }
.single-product__breadcrumb-bar .breadcrumb { margin-bottom:0; }
.single-product__breadcrumb-bar .breadcrumb a,
.single-product__breadcrumb-bar .breadcrumb span {
    font-size:16px; color:#DBD3C8; opacity:1; white-space:nowrap;
}
.single-product__breadcrumb-bar .breadcrumb a:hover { color:var(--color-dark); }
/* Current page item gets a slightly different tone */
.single-product__breadcrumb-bar .breadcrumb span[aria-current] { color:#B1C1B4; }

.single-product__main { display:flex; align-items:flex-start; max-width:1900px; margin:0 auto; }

/* Columna de imagen: ocupa el espacio que sobra (antes era 50% fijo igual que
   la de info, que en realidad solo usa 520px — eso dejaba un hueco en blanco
   grande a la derecha en pantallas anchas). */
.single-product__images { flex:1 1 auto; min-width:0; padding-left:48px; padding-right:80px; }
.single-product__img-wrap { position:relative; width:100%; aspect-ratio:3/4; }
.single-product__img-wrap--gallery { margin-top:42px; }
.single-product__img-main { width:100%; height:100%; object-fit:cover; }
/* Exclude the badge-tag from the fill rule — it has its own height:46px */
.single-product__img-wrap img:not(.badge-tag) { width:100%; height:100%; object-fit:cover; display:block; }

/* Clickable image wraps (solo cuando hay galería, +2 fotos) */
.single-product__img-wrap--clickable { cursor:pointer; }

/* ── Gallery lightbox ────────────────────────────────────────────────────────── */
.gallery-modal {
    position:fixed; inset:0; z-index:800;
    background:rgba(0,0,0,.9);
    display:flex; align-items:center; justify-content:center;
}
.gallery-modal[hidden] { display:none !important; }

.gallery-modal__stage {
    max-width:80vw; max-height:90vh;
    display:flex; align-items:center; justify-content:center;
}
.gallery-modal__img {
    max-width:80vw; max-height:88vh;
    object-fit:contain; display:block; cursor:default;
}

.gallery-modal__close {
    position:fixed; top:20px; right:28px;
    background:rgba(255,255,255,.12); border:none; cursor:pointer;
    border-radius:50%; width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s; z-index:801;
}
.gallery-modal__close:hover { background:rgba(255,255,255,.24); }

.gallery-modal__nav {
    position:fixed; top:50%; transform:translateY(-50%);
    background:rgba(255,255,255,.12); border:none; cursor:pointer;
    border-radius:4px; width:48px; height:72px;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s; z-index:801;
}
.gallery-modal__nav:hover { background:rgba(255,255,255,.24); }
.gallery-modal__prev { left:24px; }
.gallery-modal__next { right:24px; }

.gallery-modal__counter {
    position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
    color:rgba(255,255,255,.55); font-size:13px; letter-spacing:.08em;
    font-family:var(--font-body);
}

/* ── Notify modal ("Te avisamos") ─────────────────────────────────────────── */
.notify-trigger {
    background:none; border:none; padding:0; margin:0; cursor:pointer;
    font-size:inherit; font-family:inherit; color:inherit;
    text-decoration:underline; transition:opacity .15s;
}
.notify-trigger:hover { opacity:.7; }

.notify-modal {
    position:fixed; inset:0; z-index:900;
    display:flex; align-items:center; justify-content:center; padding:20px;
}
.notify-modal[hidden] { display:none !important; }
.notify-modal__backdrop { position:absolute; inset:0; background:rgba(42,35,29,.55); }
.notify-modal__box {
    position:relative; z-index:1; width:100%; max-width:420px;
    background:#fff; border-radius:12px; padding:36px 32px;
    box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.notify-modal__close {
    position:absolute; top:16px; right:16px; width:36px; height:36px;
    background:none; border:none; cursor:pointer; border-radius:50%;
    display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.notify-modal__close:hover { background:var(--color-bg); }
.notify-modal__title {
    font-family:var(--font-display); font-size:26px; font-weight:300;
    color:var(--color-dark); margin-bottom:10px;
}
.notify-modal__desc { font-size:14px; color:var(--color-dark); opacity:.75; line-height:1.6; margin-bottom:22px; }
.notify-modal__form { display:flex; flex-direction:column; gap:12px; }
.notify-modal__input {
    width:100%; height:50px; padding:0 16px;
    border:1px solid var(--color-border); border-radius:4px;
    font-size:15px; font-family:var(--font-body); color:var(--color-dark);
    background:#FCFCFB; outline:none; transition:border-color .2s var(--ease);
}
.notify-modal__input:focus { border-color:var(--color-dark); }
.notify-modal__submit {
    width:100%; height:50px; background:#2A1D08; color:#F5F0E8;
    border:none; border-radius:4px; font-size:13px; letter-spacing:.14em; font-weight:500;
    cursor:pointer; font-family:var(--font-body);
    position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.notify-modal__submit > * { position:relative; z-index:1; }
.notify-modal__submit:disabled { opacity:.5; cursor:not-allowed; }
.notify-modal__success { font-size:15px; color:var(--color-dark); line-height:1.6; }
.notify-modal__error { font-size:13px; color:var(--color-sale); margin-top:4px; }

@media (max-width:480px) {
    .notify-modal__box { padding:28px 22px; }
    .notify-modal__title { font-size:22px; }
}

/* ── Búsqueda flotante ────────────────────────────────────────────────────── */
.search-overlay {
    position:fixed; inset:0; z-index:900;
    display:flex; align-items:flex-start; justify-content:center;
    padding:120px 20px 20px;
}
.search-overlay[hidden] { display:none !important; }
.search-overlay__backdrop { position:absolute; inset:0; background:rgba(42,35,29,.55); }
.search-panel {
    position:relative; z-index:1; width:100%; max-width:640px;
    background:#fff; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.25);
    max-height:calc(100vh - 140px); display:flex; flex-direction:column; overflow:hidden;
}
.search-panel__bar { display:flex; align-items:center; gap:14px; padding:20px 24px; border-bottom:1px solid var(--color-border2); flex-shrink:0; }
.search-panel__icon { flex-shrink:0; }
.search-panel__input {
    flex:1; border:none; outline:none; font-size:17px; font-family:var(--font-body);
    color:var(--color-dark); background:none;
}
.search-panel__input::placeholder { color:var(--color-dark); opacity:.4; }
.search-panel__close {
    flex-shrink:0; width:32px; height:32px; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; border-radius:50%; transition:background .15s;
}
.search-panel__close:hover { background:var(--color-bg); }
.search-panel__results { overflow-y:auto; padding:8px 0; }
.search-panel__empty { padding:24px; font-size:14px; color:var(--color-dark); opacity:.6; text-align:center; }
.search-panel__list { display:flex; flex-direction:column; }
.search-panel__item-link {
    display:flex; align-items:center; gap:14px; padding:10px 24px;
    text-decoration:none; transition:background .15s;
}
.search-panel__item-link:hover { background:var(--color-bg); }
.search-panel__item-img { flex-shrink:0; width:52px; height:65px; border-radius:4px; overflow:hidden; background:var(--color-bg); }
.search-panel__item-img img { width:100%; height:100%; object-fit:cover; display:block; }
.search-panel__item-info { display:flex; flex-direction:column; gap:3px; min-width:0; }
.search-panel__item-name {
    font-size:14.5px; color:var(--color-dark); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.search-panel__item-price { font-size:13px; color:var(--color-dark); opacity:.6; }
.search-panel__all {
    display:block; text-align:center; padding:14px; margin:4px 24px 12px;
    border-top:1px solid var(--color-border2); font-size:13px; font-weight:600;
    letter-spacing:.06em; color:var(--color-dark); text-decoration:none; text-transform:uppercase;
}
.search-panel__all:hover { opacity:.7; }

@media (max-width:600px) {
    .search-overlay { padding:80px 12px 12px; }
    .search-panel { max-height:calc(100vh - 100px); }
    .search-panel__bar { padding:16px 18px; }
    .search-panel__item-link { padding:10px 18px; }
}

/* Info column: ancho fijo (antes era 50% con max-width:520px — en pantallas
   anchas eso dejaba mucho hueco vacío dentro de su propia columna) */
.single-product__info {
    flex:0 0 520px; max-width:520px; min-width:0; padding:24px 56px 80px 40px;
    position:sticky; top:0; align-self:flex-start;
}

/* Breadcrumb (generic fallback, used elsewhere) */
.breadcrumb { display:flex; align-items:center; gap:6px; margin-bottom:24px; flex-wrap:wrap; }
.breadcrumb a,.breadcrumb span { font-size:12px; color:var(--color-dark); text-decoration:none; opacity:.6; white-space:nowrap; }
.breadcrumb a:hover { opacity:1; }
.breadcrumb span[aria-current] { opacity:.6; }

/* Title */
.single-product__title { font-family:var(--font-display); font-size:40px; font-weight:300; color:var(--color-dark); line-height:46px; margin-bottom:14px; }

/* Price */
.single-product__price { display:flex; align-items:baseline; gap:12px; margin-bottom:28px; }
.single-product__price-cur { font-size:22px; font-weight:400; color:var(--color-dark); }
.single-product__price-orig { font-size:14px; font-weight:400; color:var(--color-sale); text-decoration:line-through; }
.single-product__price-cur .woocommerce-Price-amount,
.single-product__price-orig .woocommerce-Price-amount { font-size:inherit; font-weight:inherit; color:inherit; }

/* Attribute groups */
.attr-group { margin-bottom:28px; }
.attr-group__label {
    font-size:11px; letter-spacing:.15em; font-weight:600;
    color:var(--color-dark); text-transform:uppercase; margin-bottom:12px;
}

/* Color swatches */
.color-swatches { display:flex; gap:10px; }
.color-swatch {
    width:48px; height:48px; border-radius:50%; cursor:pointer; padding:0;
    border:2px solid transparent; outline:2px solid transparent; outline-offset:2px;
    transition:outline .15s, border .15s; flex-shrink:0;
}
.color-swatch.active { border-color:var(--color-dark); outline-color:var(--color-dark); }
/* Image swatch (uses variation thumbnail) */
.color-swatch--img {
    width:52px; height:52px; border-radius:50%; overflow:hidden; cursor:pointer; padding:0;
    border:2px solid transparent; outline:2px solid transparent; outline-offset:3px;
    transition:outline .15s, border .15s; flex-shrink:0; background:none;
}
.color-swatch--img img { width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.color-swatch--img.active { outline-color:var(--color-dark); }

/* Size buttons */
.size-buttons {
    display:grid; grid-template-columns:repeat(4, 1fr);
}
.size-btn {
    padding:16px 8px; border:1px solid var(--color-border); border-radius:0;
    margin:0 -1px -1px 0;
    background:transparent; color:var(--color-dark); font-size:14px; cursor:pointer;
    transition:background .15s, color .15s;
}
.size-btn.active { background:var(--color-dark); color:#fff; }

/* Hidden variation selects */
.variation-select { display:none; }

/* Quantity */
.qty-row { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:24px; }
.qty-wrap {}
.qty-control {
    display:inline-flex; align-items:center;
    border:1px solid var(--color-border); border-radius:8px; overflow:hidden;
}
.qty-btn {
    width:40px; height:40px; background:none; border:none; cursor:pointer;
    font-size:20px; color:var(--color-dark);
    display:flex; align-items:center; justify-content:center;
    transition:background .15s;
}
.qty-btn:hover { background:var(--color-bg); }
.qty-input {
    width:40px; height:40px; text-align:center; border:none; font-size:15px;
    color:var(--color-dark); background:transparent; outline:none;
    -moz-appearance:textfield;
}
.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button { -webkit-appearance:none; }
.tallas-link {
    font-size:14px; font-weight:600; color:var(--color-dark);
    text-decoration:underline; text-underline-offset:3px;
    opacity:1; letter-spacing:.05em; padding-bottom:10px;
}
.tallas-link:hover { opacity:.65; }

/* Add to cart */
.add-to-cart-btn {
    width:100%; height:90px; padding:0; background:#40361F; color:#F2EEEA;
    border:none; border-radius:0; font-size:15.71px; letter-spacing:0; font-weight:500;
    text-transform:uppercase; cursor:pointer; font-family:var(--font-body); margin-bottom:0;
    position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.add-to-cart-btn > * { position:relative; z-index:1; }
.add-to-cart-btn.is-disabled,
.add-to-cart-btn:disabled { opacity:.4; cursor:not-allowed; }
.add-to-cart-btn.is-disabled:hover { opacity:.4; }

/* Notify */
.notify-wrap { display:flex; align-items:center; gap:8px; margin-bottom:18px; flex-wrap:wrap; }
.notify-wrap svg, .notify-wrap img { flex-shrink:0; }
.notify-wrap span,.notify-wrap a,.notify-wrap button { font-size:14px; line-height:1; color:var(--color-dark); }
.notify-wrap span { opacity:.7; }
.notify-wrap a { text-decoration:underline; }
.notify-wrap a:hover { opacity:.7; }

/* Accordions */
.accordions { margin-top:32px; }
.accordion__sep { height:1px; background:#E8E0D8; }
.accordion__toggle {
    width:100%; display:flex; justify-content:space-between; align-items:center;
    padding:18px 0; background:none; border:none; cursor:pointer;
}
.accordion__toggle span { font-size:15.71px; line-height:27px; font-weight:400; color:var(--color-dark); }
.accordion__icon { flex-shrink:0; transition:transform .35s var(--ease); }
.accordion__toggle[aria-expanded="true"] .accordion__icon { transform:rotate(45deg); }
.accordion__body {
    max-height:0; padding-bottom:0; overflow:hidden;
    transition:max-height .38s var(--ease), padding-bottom .38s var(--ease);
}
.accordion__body.is-open { padding-bottom:20px; }
.accordion__body,
.accordion__body p { font-size:14px; color:var(--color-dark); line-height:1.7; opacity:.85; }

/* Te puede interesar */
.tambien-interesa { padding:56px 40px 80px; }
.tambien-interesa__title { font-family:var(--font-display); font-size:28px; font-weight:300; color:var(--color-dark); line-height:34px; margin-bottom:40px; }

/* ── Look (bundle de productos) ────────────────────────────────────────────── */
.look-description { font-size:16px; color:var(--color-dark); opacity:.75; line-height:1.6; margin-bottom:28px; }

.look-items { display:flex; flex-direction:column; gap:20px; margin-bottom:24px; }
.look-item { display:flex; align-items:flex-start; gap:14px; }
.look-item__checkbox-wrap { flex-shrink:0; padding-top:8px; display:flex; }
.look-item__thumb { flex-shrink:0; width:96px; height:128px; overflow:hidden; display:block; background:var(--color-bg); }
.look-item__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.look-item__info { flex:1; min-width:0; }
.look-item__name {
    display:block; font-family:var(--font-display); font-size:22px; font-weight:300;
    line-height:24px; color:var(--color-dark); text-decoration:none; margin-bottom:6px;
}
.look-item__name:hover { text-decoration:underline; }
.look-item__price { font-size:19px; font-weight:500; color:var(--color-dark); margin-bottom:10px; }
.look-item__size-wrap { display:flex; align-items:center; gap:10px; }
.look-item__size-label { font-size:13px; font-weight:400; color:var(--color-dark); }
.look-item__size-select {
    padding:8px 10px; border:1px solid var(--color-border); border-radius:6px;
    font-size:14px; color:var(--color-dark); background:#fff; font-family:var(--font-body); outline:none;
}
.look-item__size-select:focus { border-color:var(--color-dark); }
.look-item.is-excluded { opacity:.45; }

.look-total-row {
    display:flex; align-items:baseline; justify-content:space-between;
    padding:16px 0; border-top:1px solid var(--color-border2); border-bottom:1px solid var(--color-border2);
    margin-bottom:20px;
}
.look-total-label { font-size:13px; letter-spacing:.1em; font-weight:600; color:var(--color-dark); text-transform:uppercase; }
.look-total { font-size:34px; font-weight:500; color:var(--color-dark); }
.look-guide-link { margin-left:auto; }

/* ── Generic page ────────────────────────────────────────────────────────────── */
.page-content { max-width:800px; margin:120px auto 80px; padding:0 40px; }
.page-content__title { font-family:var(--font-display); font-size:36px; font-weight:300; color:var(--color-dark); margin-bottom:32px; }
.page-content__body { font-size:16px; line-height:1.7; color:var(--color-dark); }
.page-content__body h2 { font-family:var(--font-display); font-size:24px; font-weight:300; margin:32px 0 16px; }

/* ── InfoBar ─────────────────────────────────────────────────────────────────── */
.infobar { background:var(--color-bg); }
.infobar__inner {
    max-width:1900px; margin:0 auto;
    padding:32px 40px;
    display:flex; align-items:stretch; gap:0;
}
.infobar__col {
    flex:1; display:flex; align-items:flex-start; gap:16px;
}
.infobar__col--newsletter {
    flex:0 0 auto; padding-right:60px;
}
.infobar__text { flex-shrink:0; }
.infobar__title { font-family:var(--font-display); font-size:22px; font-weight:300; color:var(--color-dark); margin-bottom:2px; }
.infobar__sub   { font-size:14px; color:var(--color-dark); line-height:1.5; }
.infobar__divider { width:1px; background:#B9A78D; margin:0 32px; align-self:center; height:70px; flex-shrink:0; }
.infobar__form-wrap { margin-left:32px; }
.infobar__form { display:flex; gap:0; }
.infobar__input {
    height:50px; padding:0 20px;
    border:1px solid rgba(64,54,31,.7); border-right:none;
    border-radius:99px 0 0 99px; font-size:15px;
    color:rgba(64,54,31,.4); background:transparent; outline:none; width:260px;
    font-family:var(--font-body);
}
.infobar__submit {
    height:50px; padding:0 24px;
    border-radius:0 99px 99px 0;
    background:#2A1D08; color:#F5F0E8; border:none;
    font-size:15px; font-family:var(--font-body); font-weight:500;
    letter-spacing:.02em; cursor:pointer; white-space:nowrap;
    position:relative; overflow:hidden;
    transition:color .35s var(--ease);
}
.infobar__submit > * { position:relative; z-index:1; }

/* ── Footer ──────────────────────────────────────────────────────────────────── */
.site-footer { background:#FFFFFF; }
.footer__inner {
    max-width:1900px; margin:0 auto;
    padding:60px 40px 48px;
    display:flex; gap:64px;
}
.footer__brand { flex:1; min-width:0; }
/* Más aire entre el logo y el grupo de columnas de enlaces (sin tocar el
   espacio entre las columnas de enlaces entre sí, que usan el gap normal) */
.footer__brand + .footer__col { margin-left:56px; }
.footer__brand img { display:block; }
.footer__brand-text { font-size:16px; color:rgba(64,54,31,.4); line-height:17px; max-width:280px; }
.footer__col-title {
    font-size:14px; letter-spacing:.2em; font-weight:500;
    color:var(--color-dark); margin-bottom:20px;
}
/* min-width:0 es necesario: por defecto un flex item no encoge por debajo del
   ancho de su contenido (p. ej. una palabra larga sin espacios como
   "Puericultura"), así que aunque todas las columnas tengan flex:1 la que
   tenga el enlace más largo se queda más ancha y las demás se estrechan de más. */
.footer__col { flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
.footer__col a {
    font-size:16px; color:rgba(64,54,31,.4); text-decoration:none;
    line-height:27px; transition:color .15s; overflow-wrap:break-word;
}
.footer__col a:hover { color:var(--color-dark); }


/* ── Animations ─────────────────────────────────────────────────────────────── */
.animate-in { opacity:0; transform:translateY(28px); transition:opacity .65s var(--ease) var(--anim-delay,0ms), transform .65s var(--ease) var(--anim-delay,0ms); }
.animate-in[data-anim-type="scale"] { transform:scale(0.97); }
.animate-in[data-anim-type="left"]  { transform:translateX(-20px); }
.animate-in.visible { opacity:1; transform:none; }

/* ── Woo notices ─────────────────────────────────────────────────────────────── */
.woocommerce-notices-wrapper { padding:0 40px; max-width:1900px; margin:0 auto; }
.woocommerce-message,.woocommerce-info,.woocommerce-error {
    padding:14px 20px; border-radius:8px; font-size:14px; margin-bottom:16px;
    border-left:4px solid var(--color-accent);
}

/* ── Página de contacto ──────────────────────────────────────────────────────── */
.contact-hero {
    background:var(--color-bg); padding:100px 40px 32px; text-align:center;
}
.contact-hero__label {
    font-size:11px; letter-spacing:.20em; font-weight:500; text-transform:uppercase;
    color:var(--color-dark); opacity:.7; margin-bottom:12px;
}
.contact-hero__title {
    font-family:var(--font-display); font-size:40px; font-weight:300;
    color:var(--color-dark); line-height:1.1; margin-bottom:12px;
}
.contact-hero__sub {
    font-size:16px; color:var(--color-dark); opacity:.7; line-height:1.6;
    max-width:360px; margin:0 auto;
}

/* Map section wrapper — same horizontal padding as the rest of the page */
.contact-map-section {
    padding:40px 40px 56px;
}
/* Map container — aspect ratio fijo igual que la imagen, sin recorte */
.contact-map {
    position:relative; border-radius:18px; overflow:hidden;
    width:100%; aspect-ratio:1822/805;
}
.contact-map__img {
    position:absolute; inset:0;
    width:100%; height:100%; object-fit:fill;
    display:block;
}

/* Pins */
.map-pin {
    position:absolute; transform:translate(-50%,-50%);
    background:none; border:none; cursor:pointer; padding:0;
    z-index:2;
    transition:left .25s var(--ease), top .25s var(--ease);
}
.map-pin--grouped { z-index:4; }
.map-pin__circle {
    width:38px; height:38px; border-radius:50%;
    background:#fff; border:1px solid #DBD3C8;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
    box-shadow:0 2px 8px rgba(0,0,0,.16);
    transition:transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.map-pin__circle img { width:26px; height:26px; object-fit:contain; }
.map-pin:hover .map-pin__circle,
.map-pin--active .map-pin__circle {
    transform:scale(1.2);
    border-color:var(--color-dark);
    box-shadow:0 4px 14px rgba(0,0,0,.24);
}

/* Panel — flotando dentro del mapa con el mismo margen que el padding exterior */
.contact-map__panel {
    position:absolute; top:40px; right:40px; bottom:40px;
    width:480px; background:#fff; border-radius:0;
    border:1px solid #DBD3C8;
    overflow:hidden; padding:24px;
    box-shadow:0 4px 24px rgba(0,0,0,.10);
    display:flex; flex-direction:column; gap:12px;
    z-index:3;
}
.panel-scroll-wrap {
    flex:1; min-height:0;
    display:flex; flex-direction:row; gap:10px; overflow:hidden;
}
.panel-scroll {
    flex:1; overflow-y:auto; min-height:0;
    display:flex; flex-direction:column; gap:10px;
    scrollbar-width:none; -ms-overflow-style:none;
}
.panel-scroll::-webkit-scrollbar { display:none; }
.panel-scroll-track-wrap { display:flex; padding:2px 0; }
.panel-scroll-track {
    width:7px; flex:1; background:#F2EDE7; border-radius:30px;
    position:relative; cursor:pointer;
}
.panel-scroll-thumb {
    position:absolute; width:100%; min-height:40px;
    background:#D3C4AE; border-radius:30px;
    cursor:grab; transition:top .08s;
}
.panel-scroll-thumb:active { cursor:grabbing; }
.contact-map__panel-title {
    font-family:var(--font-display); font-size:31px; font-weight:300;
    color:#B9A78D; margin-bottom:8px; flex-shrink:0; line-height:1.1;
}
.store-card {
    border:1px solid #B9A78D; border-radius:0;
    display:flex; flex-direction:row;
    overflow:hidden;
    cursor:pointer; transition:border-color .2s var(--ease);
    flex-shrink:0;
}
.store-card--active { border-color:var(--color-dark); }
.store-card__thumb {
    width:110px; flex-shrink:0; background:#F2EDE7; align-self:stretch;
    display:flex; flex-direction:column; padding:12px 14px;
}
.store-card__img {
    flex:1; min-height:0; background:#fff;
}
.store-card__info {
    flex:1; padding:12px 14px; background:#F2EDE7;
    display:flex; flex-direction:column; gap:6px;
}
.store-card__region { display:none; }
.store-card__name {
    font-size:18px; font-weight:500; color:var(--color-dark); line-height:1.3;
}
.store-card__row {
    display:flex; align-items:flex-start; gap:7px;
    font-size:14px; color:var(--color-dark); line-height:1.5;
}
.store-card__row img { flex-shrink:0; margin-top:2px; }
.store-card__hours {
    display:flex; align-items:flex-start; gap:7px;
    font-size:14px; color:var(--color-dark);
}
.store-card__hours img { flex-shrink:0; margin-top:2px; }
.store-card__hours-row { line-height:1.6; }
.store-card__hours-days { display:block; font-weight:500; }
.store-card__hours-time { display:block; opacity:.75; }

/* Contact form section */
.contact-form-section {
    padding:88px 40px 100px; background:#fff;
}
.contact-form-layout {
    display:grid; grid-template-columns:1fr 0.85fr 1.5fr; gap:60px; align-items:start;
}
.contact-form__title {
    font-family:var(--font-display); font-size:40px; font-weight:300;
    color:var(--color-dark); line-height:1.0; margin-bottom:28px;
}
.contact-form__desc {
    font-size:15.71px; color:var(--color-dark); line-height:21px;
    margin-bottom:16px;
}
.contact-form__email {
    display:inline-flex; align-items:center; gap:8px;
    font-size:15.71px; color:var(--color-dark); text-decoration:none;
    background:#DBD3C8; border:none; border-radius:0;
    padding:7px 18px; margin-top:8px; margin-bottom:40px;
    opacity:.7; transition:opacity .2s var(--ease);
}
.contact-form__email:hover { opacity:1; }

/* Decorative illustration — columna central */
.contact-form__deco {
    position:relative; width:100%; aspect-ratio:1/1;
}
.contact-form__deco-arches {
    position:absolute; left:0; top:4%;
    width:56%; height:auto;
}
.contact-form__deco-dots {
    position:absolute; right:2%; top:36%;
    width:28%; height:auto;
}
.contact-form__deco-star {
    position:absolute; left:6%; top:60%;
    width:34%; height:auto;
}

/* Form fields */
.contact-form { display:flex; flex-direction:column; gap:20px; }
.contact-form__row-2 {
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
}
.contact-form__field {
    display:flex; flex-direction:column; gap:6px;
}
.contact-form__field label {
    font-size:12px; font-weight:400;
    color:var(--color-dark); opacity:.4;
}
.contact-form__field input,
.contact-form__field textarea {
    width:100%; padding:12px 14px;
    border:1px solid #DBD3C8; border-radius:0;
    font-size:15.71px; font-family:var(--font-body); color:var(--color-dark);
    background:#FCFCFB; outline:none;
    transition:border-color .2s var(--ease);
}
.contact-form__field input:focus,
.contact-form__field textarea:focus {
    border-color:var(--color-dark);
}
.contact-form__field textarea { resize:vertical; min-height:130px; }
.contact-form__submit-wrap { display:flex; justify-content:flex-end; }
.contact-form__submit {
    padding:0 40px; height:58px;
    background:#40361F; color:#F2EEEA;
    border:none; border-radius:0;
    font-size:15.71px; font-weight:500;
    font-family:var(--font-body); cursor:pointer;
    transition:opacity .2s var(--ease);
}
.contact-form__submit:hover { opacity:.85; }
.contact-form__success {
    background:var(--color-bg); border-radius:6px; padding:32px;
    font-size:16px; color:var(--color-dark); line-height:1.6;
}
.contact-form__msg-error {
    font-size:14px; color:var(--color-sale); margin-bottom:16px;
}

@media (max-width:900px) {
    .contact-map-section { padding:24px 16px 40px; }
    .contact-map { height:auto; border-radius:12px; }
    .contact-map__img { position:relative; height:320px; }
    .contact-map__panel {
        position:relative; top:auto; right:auto; bottom:auto;
        width:100%; border-radius:0; box-shadow:none;
        border-top:1px solid var(--color-border2);
        max-height:none;
    }
    .contact-form-layout { grid-template-columns:1fr; gap:48px; }
    .contact-form__deco { display:none; }
    .contact-form__right { order:2; }
}
@media (max-width:600px) {
    .contact-hero { padding:64px 24px 40px; }
    .contact-hero__title { font-size:38px; }
    .contact-form-section { padding:56px 24px 72px; }
    .contact-form__row-2 { grid-template-columns:1fr; }
}

/* ── Tarjeta regalo — página de producto ─────────────────────────────────────── */
.gift-card-page {
    padding:140px 40px 100px; background:#fff;
}
.gift-card-layout {
    display:grid; grid-template-columns:0.75fr 1fr; gap:72px; align-items:start;
}
.gift-card-layout > * { min-width:0; }
.gift-card__img { width:100%; height:auto; display:block; }
.gift-card__col-info { padding-top:4px; max-width:480px; }

/* Título — Gooper Light 33px */
.gift-card__title {
    font-family:var(--font-display); font-size:33px; font-weight:300;
    color:var(--color-dark); line-height:1.05; margin-bottom:12px;
}

/* Precio — Instrument Sans Medium 34px */
.gift-card__price { margin:0 0 14px; }
.gift-card__price .price,
.gift-card__price .woocommerce-Price-amount {
    font-size:34px; font-weight:500; font-family:var(--font-body); color:var(--color-dark);
}
.gift-card__price ins { text-decoration:none; }
.gift-card__price del { display:none; }

/* Descripción — Regular 15.71px / 21px */
.gift-card__desc {
    font-size:15.71px; line-height:21px; color:var(--color-dark); margin:14px 0 20px;
}
.gift-card__desc p { margin-bottom:16px; }
.gift-card__desc p:last-child { margin-bottom:0; }

/* Formulario */
.gc-form { margin:0; }

/* Etiqueta SELECCIONA */
.gc-amounts__label {
    font-size:11px; font-weight:500; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--color-dark); opacity:0.55;
    margin:0 0 14px;
}

/* Grid 4 × 2 */
.gc-amounts__grid {
    display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:24px;
}

/* Cada botón de importe */
.gc-amount-btn {
    display:block; cursor:pointer;
}
.gc-amount-btn input[type="radio"] {
    position:absolute; opacity:0; width:0; height:0;
}
.gc-amount-btn span {
    display:block; text-align:center; padding:18px 8px;
    border:1px solid #DBD3C8; font-size:15.71px;
    font-family:var(--font-body); color:var(--color-dark);
    background:#fff; cursor:pointer; line-height:1;
    transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
}
.gc-amount-btn:hover span { border-color:var(--color-dark); }
.gc-amount-btn input[type="radio"]:checked + span {
    background:var(--color-dark); border-color:var(--color-dark); color:#F2EEEA;
}

/* Botón AÑADIR */
.gc-add-btn {
    display:block; width:100%; height:58px; padding:0;
    background:#2A1D08; color:#F5F0E8;
    border:none; border-radius:0;
    font-size:15.71px; font-weight:500; font-family:var(--font-body);
    letter-spacing:0.12em; text-transform:uppercase;
    cursor:pointer; position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.gc-add-btn > * { position:relative; z-index:1; }

/* ── Formulario real de tarjeta regalo (lo pinta el plugin YITH; solo se le
   da estilo aquí, con sus clases reales, para que se vea como la rejilla
   de antes) ──────────────────────────────────────────────────────────── */
.gc-form-wrap { margin-top:4px; }
.gc-form-wrap input[type="hidden"] { display:none; }
/* "SELECCIONA" — al moverlo por JS puede llegar con la etiqueta <h3> original
   del plugin (negrita, tamaño de encabezado), así que se le fija la
   tipografía aquí explícitamente en vez de depender de dónde acabe. */
.gc-select-label {
    font-family:var(--font-body); font-size:15.71px; font-weight:400; line-height:27px;
    letter-spacing:0; color:#40361F; text-transform:uppercase; margin:0 0 12px;
}

/* Rejilla 4×2, cajas pegadas (sin hueco, bordes compartidos) — el contenedor
   real de los botones no tiene una clase propia fiable, así que se detecta
   por "el div que contiene directamente estos botones" en vez de adivinar
   un nombre. La etiqueta "Selecciona..." la mueve el JS delante de esta
   caja (ver .gc-select-label), no vive dentro de la rejilla. */
.gc-form-wrap div:has(> button.ywgc-predefined-amount-button) {
    display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-bottom:16px;
}
.gc-form-wrap div:has(> button.ywgc-predefined-amount-button) input[type="hidden"] { display:none; }
button.ywgc-predefined-amount-button {
    display:flex; align-items:center; justify-content:center;
    height:56px; padding:0 10px; margin:0 0 -1px -1px;
    border:1px solid #DBD3C8; border-radius:0; background:#fff;
    font-size:15.71px; font-family:var(--font-body); color:var(--color-dark); cursor:pointer;
    position:relative; transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
}
button.ywgc-predefined-amount-button:hover { border-color:var(--color-dark); z-index:1; }
button.ywgc-predefined-amount-button.selected_button {
    background:#40361F !important; border-color:#40361F !important; color:#F2EEEA !important;
    z-index:2;
}
button.ywgc-predefined-amount-button .woocommerce-Price-amount { color:inherit; }

/* Importe personalizado (si está activado en el producto) */
#ywgc-manual-amount, input[name="ywgc_manual_amount"] {
    display:block; width:100%; height:56px; margin:0 0 20px; padding:0 16px;
    border:1px solid #DBD3C8; border-radius:0; background:#fff;
    font-size:15px; font-family:var(--font-body); color:var(--color-dark); outline:none;
}
#ywgc-manual-amount:focus, input[name="ywgc_manual_amount"]:focus { border-color:#40361F; }

.ywgc-message { display:none; } /* Campo "Mensaje" — no se usa */
.ywgc-message label {
    display:block; margin-bottom:8px; font-size:11px; font-weight:500; letter-spacing:.12em;
    text-transform:uppercase; color:var(--color-dark); opacity:.55;
}
#ywgc-edit-message {
    width:100%; min-height:110px; padding:12px 14px; border:1px solid var(--color-border); border-radius:4px;
    font-size:14px; font-family:var(--font-body); color:var(--color-dark); resize:vertical; outline:none;
}
#ywgc-edit-message:focus { border-color:var(--color-dark); }

.gift_card_template_button .quantity { margin-bottom:16px; }
.gift_card_template_button .qty {
    height:52px; width:88px; padding:0 14px; border:1px solid var(--color-border); border-radius:4px;
    font-size:15px; font-family:var(--font-body); color:var(--color-dark); outline:none;
}
.gift_card_template_button .qty:focus { border-color:var(--color-dark); }

.gift_card_add_to_cart_button {
    display:block; width:100%; height:90px; padding:0;
    background:#40361F !important; color:#F2EEEA !important; border:none !important; border-radius:0;
    font-size:15.71px; font-weight:500; font-family:var(--font-body);
    letter-spacing:0; text-transform:uppercase;
    cursor:pointer; position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.gift_card_add_to_cart_button > * { position:relative; z-index:1; }

/* Aviso disponibilidad */
.gift-card__notify {
    display:flex; align-items:center; gap:7px;
    font-size:15.71px; color:var(--color-dark); opacity:0.55;
    margin-top:12px; transition:opacity .2s;
}
.gift-card__notify:hover { opacity:1; }
.gift-card__notify a { color:inherit; text-decoration:underline; }

/* ── Página Mi cuenta ────────────────────────────────────────────────────────── */
.account-hero {
    background:var(--color-bg); padding:88px 40px 56px; text-align:center;
}
.account-hero__label {
    font-size:11px; letter-spacing:.22em; font-weight:600; text-transform:uppercase;
    color:var(--color-dark); opacity:.6; margin-bottom:14px;
}
.account-hero__title {
    font-family:var(--font-display); font-size:48px; font-weight:300;
    color:var(--color-dark); line-height:1.05; margin-bottom:14px;
}
.account-hero__sub {
    font-size:15px; color:var(--color-dark); opacity:.7; max-width:380px; margin:0 auto;
}

/* Notices (WooCommerce) */
.woocommerce-notices-wrapper { padding:0 40px; max-width:640px; margin:24px auto 0; }
ul.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
    list-style:none; padding:14px 20px; border-radius:6px; font-size:14px; margin-bottom:12px;
    border-left:3px solid var(--color-accent); background:var(--color-bg); color:var(--color-dark);
}
ul.woocommerce-error { border-color:var(--color-sale); }

/* ── Login / Register tabs (logged out) ─────────────────────────────────────── */
.account-login-wrap {
    max-width:560px; margin:56px auto 96px; padding:0 24px;
}
.account-tabs-wrap {
    background:#fff; border:1px solid var(--color-border2); border-radius:8px;
    overflow:hidden;
}
.account-tabs {
    display:flex; border-bottom:1px solid var(--color-border2);
}
.account-tab-btn {
    flex:1; padding:18px 24px; background:none; border:none; cursor:pointer;
    font-size:14px; font-family:var(--font-body); font-weight:500; letter-spacing:.04em;
    color:var(--color-dark); opacity:.45; transition:opacity .2s var(--ease);
    border-bottom:2px solid transparent; margin-bottom:-1px;
}
.account-tab-btn--active {
    opacity:1; border-bottom-color:var(--color-dark);
}
.account-tab-panel { display:none; padding:32px; }
.account-tab-panel--active { display:block; }

/* Form shared */
.account-form { display:flex; flex-direction:column; gap:18px; }
.account-form__field { display:flex; flex-direction:column; gap:6px; }
.account-form__field label {
    font-size:11px; letter-spacing:.08em; font-weight:600; text-transform:uppercase;
    color:var(--color-dark); opacity:.55;
}
.account-form__field label .required { color:var(--color-sale); }
.account-form__field input {
    width:100%; padding:13px 14px;
    border:1px solid var(--color-border); border-radius:4px;
    font-size:15px; font-family:var(--font-body); color:var(--color-dark);
    background:#fff; outline:none;
    transition:border-color .2s var(--ease);
}
.account-form__field input:focus { border-color:var(--color-dark); }
.account-form__row {
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    margin-top:-4px;
}
.account-form__remember {
    display:flex; align-items:center; gap:8px;
    font-size:13px; color:var(--color-dark); opacity:.7; cursor:pointer;
}
.account-form__remember input { width:auto; }
.account-form__forgot {
    font-size:13px; color:var(--color-dark); opacity:.6; text-decoration:underline;
    text-underline-offset:2px; transition:opacity .2s;
}
.account-form__forgot:hover { opacity:1; }
.account-form__submit {
    width:100%; padding:16px; margin-top:8px;
    background:#2A1D08; color:#F5F0E8; border:none; border-radius:4px;
    font-size:12px; letter-spacing:.18em; font-weight:600;
    font-family:var(--font-body); cursor:pointer;
    position:relative; overflow:hidden;
    transition:opacity .2s var(--ease), color .35s var(--ease);
}
.account-form__submit > * { position:relative; z-index:1; }
.account-form__submit:hover { opacity:.86; }
.account-form__note {
    font-size:13px; color:var(--color-dark); opacity:.65; line-height:1.6;
}

/* ── Account layout (logged in) ──────────────────────────────────────────────── */
.account-layout {
    display:grid; grid-template-columns:220px 1fr;
    max-width:1100px; margin:48px auto 96px; padding:0 40px; gap:56px; align-items:start;
}
.account-layout__nav .woocommerce-MyAccount-navigation ul {
    list-style:none; display:flex; flex-direction:column; gap:2px;
}
.account-layout__nav .woocommerce-MyAccount-navigation a {
    display:block; padding:10px 14px; border-radius:4px;
    font-size:14px; color:var(--color-dark); text-decoration:none;
    transition:background .15s var(--ease);
}
.account-layout__nav .woocommerce-MyAccount-navigation a:hover,
.account-layout__nav .woocommerce-MyAccount-navigation li.is-active a {
    background:var(--color-bg);
}
.account-layout__nav .woocommerce-MyAccount-navigation li.is-active a {
    font-weight:600;
}

/* Account content */
.account-layout__content .woocommerce-MyAccount-content { font-size:15px; line-height:1.7; }
.account-layout__content h2 {
    font-family:var(--font-display); font-size:28px; font-weight:300;
    color:var(--color-dark); margin-bottom:24px; line-height:1.2;
}
.account-layout__content table.shop_table {
    width:100%; border-collapse:collapse; font-size:14px;
}
.account-layout__content table.shop_table th {
    text-align:left; padding:10px 12px; font-size:11px; letter-spacing:.1em;
    font-weight:600; text-transform:uppercase; border-bottom:1px solid var(--color-border);
    color:var(--color-dark); opacity:.6;
}
.account-layout__content table.shop_table td {
    padding:14px 12px; border-bottom:1px solid var(--color-border2); vertical-align:middle;
}
.account-layout__content .button,
.account-layout__content button[type="submit"] {
    display:inline-block; padding:10px 24px;
    background:#2A1D08; color:#F5F0E8; border:none; border-radius:4px;
    font-size:12px; letter-spacing:.14em; font-weight:600;
    font-family:var(--font-body); cursor:pointer; text-decoration:none;
    transition:opacity .2s var(--ease);
}
.account-layout__content .button:hover,
.account-layout__content button[type="submit"]:hover { opacity:.85; }
.account-layout__content .woocommerce-Address { margin-bottom:32px; }
.account-layout__content .woocommerce-Address h3 {
    font-size:13px; letter-spacing:.12em; font-weight:600; text-transform:uppercase;
    margin-bottom:12px; color:var(--color-dark);
}
.account-layout__content .woocommerce-form-row {
    display:flex; flex-direction:column; gap:6px; margin-bottom:16px;
}
.account-layout__content .woocommerce-form-row label {
    font-size:11px; letter-spacing:.08em; font-weight:600; text-transform:uppercase;
    color:var(--color-dark); opacity:.55;
}
.account-layout__content .woocommerce-form-row input,
.account-layout__content .woocommerce-form-row select {
    padding:12px 14px; border:1px solid var(--color-border); border-radius:4px;
    font-size:15px; font-family:var(--font-body); color:var(--color-dark);
    background:#fff; outline:none; transition:border-color .2s var(--ease);
}
.account-layout__content .woocommerce-form-row input:focus { border-color:var(--color-dark); }

/* Order status badge (mark.order-status) */
.account-layout__content mark.order-status {
    display:inline-block; padding:4px 12px; border-radius:99px;
    font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
    background:var(--color-bg); color:var(--color-dark);
}

/* Order actions cell (Ver / Pagar / Cancelar) */
.account-layout__content .woocommerce-orders-table__cell-order-actions {
    display:flex; flex-wrap:wrap; gap:8px;
}
.account-layout__content .woocommerce-orders-table__cell-order-actions .button {
    padding:8px 16px; font-size:11px;
}

/* Pagination (orders list) */
.account-layout__content .woocommerce-pagination { margin-top:24px; }
.account-layout__content .woocommerce-pagination .page-numbers {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:36px; height:36px; padding:0 8px; margin-right:6px;
    border:1px solid var(--color-border); border-radius:4px;
    font-size:13px; color:var(--color-dark); text-decoration:none;
    transition:border-color .15s var(--ease);
}
.account-layout__content .woocommerce-pagination .page-numbers.current {
    background:var(--color-dark); color:#fff; border-color:var(--color-dark);
}
.account-layout__content .woocommerce-pagination .page-numbers:hover:not(.current) { border-color:var(--color-dark); }

/* ── Cart page ────────────────────────────────────────────────────────────────── */
.cart-page { max-width:1900px; margin:0 auto; padding:40px; }
.cart-layout { display:grid; grid-template-columns:1fr 380px; gap:56px; align-items:start; }

.cart-table { width:100%; border-collapse:collapse; }
.cart-table thead th {
    text-align:left; padding:0 12px 16px; font-size:11px; letter-spacing:.1em;
    font-weight:600; text-transform:uppercase; color:var(--color-dark); opacity:.55;
    border-bottom:1px solid var(--color-border);
}
.cart-table tbody td {
    padding:20px 12px; border-bottom:1px solid var(--color-border2); vertical-align:middle;
}
.cart-table .product-remove { width:32px; }
.cart-table .product-remove a.remove {
    display:flex; align-items:center; justify-content:center;
    width:28px; height:28px; border-radius:50%; font-size:18px; line-height:1;
    color:var(--color-dark); opacity:.5; text-decoration:none; transition:opacity .15s, background .15s;
}
.cart-table .product-remove a.remove:hover { opacity:1; background:var(--color-bg); }
.cart-table .product-thumbnail { width:90px; }
.cart-table .product-thumbnail img { width:72px; height:96px; object-fit:cover; display:block; }
.cart-table .product-name a { color:var(--color-dark); text-decoration:none; font-size:15px; }
.cart-table .product-name a:hover { opacity:.7; }
.cart-table .product-name dl.variation { font-size:12px; opacity:.6; margin-top:4px; }
.cart-table .product-price,
.cart-table .product-subtotal { font-size:14px; color:var(--color-dark); white-space:nowrap; }
.cart-table .product-subtotal { font-weight:600; }
.cart-table .qty {
    width:60px; height:40px; padding:0 8px; border:1px solid var(--color-border); border-radius:4px;
    font-size:14px; text-align:center; color:var(--color-dark); background:#fff;
}
.cart-table .qty:focus { outline:none; border-color:var(--color-dark); }

.cart-table .actions { padding-top:24px; }
.cart-table .actions .coupon { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.cart-table .actions .coupon label { display:none; }
.cart-table .actions .coupon #coupon_code {
    height:44px; padding:0 16px; border:1px solid var(--color-border); border-radius:4px;
    font-size:14px; min-width:200px; background:#FAFAF8;
}
.cart-table .actions .coupon #coupon_code:focus { outline:none; border-color:var(--color-dark); }
.cart-table .actions button.button {
    height:44px; padding:0 24px; background:#2A1D08; color:#F5F0E8; border:none; border-radius:4px;
    font-size:12px; letter-spacing:.1em; font-weight:600; cursor:pointer;
    position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.cart-table .actions button.button > * { position:relative; z-index:1; }
.cart-table .actions button.button:disabled { opacity:.4; cursor:not-allowed; }

/* Totales (cart/cart-totals.php, plantilla nativa de WooCommerce) */
.cart-collaterals .cart_totals { background:var(--color-bg); padding:32px; }
.cart-collaterals .cart_totals h2 {
    font-family:var(--font-display); font-size:24px; font-weight:300; color:var(--color-dark); margin-bottom:20px;
}
.cart-collaterals table.shop_table { width:100%; border-collapse:collapse; font-size:14px; }
.cart-collaterals table.shop_table th {
    text-align:left; padding:12px 0; font-weight:500; color:var(--color-dark); opacity:.7;
    border-bottom:1px solid var(--color-border); width:40%;
}
.cart-collaterals table.shop_table td { padding:12px 0; text-align:right; border-bottom:1px solid var(--color-border); color:var(--color-dark); }
.cart-collaterals table.shop_table tr:last-child th,
.cart-collaterals table.shop_table tr:last-child td { border-bottom:none; }
.cart-collaterals .order-total th,
.cart-collaterals .order-total td { font-weight:600; font-size:17px; padding-top:16px; }
.cart-collaterals .woocommerce-shipping-calculator { margin-top:8px; }
.cart-collaterals .shipping-calculator-button { font-size:12px; text-decoration:underline; color:var(--color-dark); opacity:.7; background:none; border:none; cursor:pointer; padding:0; }
.cart-collaterals .shipping-calculator-form { margin-top:12px; display:flex; flex-direction:column; gap:10px; }
.cart-collaterals .shipping-calculator-form p { margin:0; }
.cart-collaterals .shipping-calculator-form label { display:block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; opacity:.55; margin-bottom:4px; }
.cart-collaterals .shipping-calculator-form select,
.cart-collaterals .shipping-calculator-form input[type="text"] {
    width:100%; padding:10px 12px; border:1px solid var(--color-border); border-radius:4px; font-size:14px; background:#fff;
}
.cart-collaterals .shipping-calculator-form button { margin-top:4px; }
.cart-collaterals .wc-proceed-to-checkout { margin-top:20px; }
.cart-collaterals .checkout-button {
    display:block; width:100%; text-align:center; padding:18px; background:#2A1D08; color:#F5F0E8;
    border-radius:0; font-size:13px; letter-spacing:.18em; font-weight:500; text-decoration:none;
    position:relative; overflow:hidden;
    transition:opacity .2s var(--ease), color .35s var(--ease);
}
.cart-collaterals .checkout-button > * { position:relative; z-index:1; }

/* ── Aviso de "tienes una tarjeta regalo" + formulario de canje (plugin de
   tarjetas regalo, ajenos a nuestras plantillas — solo se les da estilo) ── */
.ywgc_have_code { padding:0 40px; max-width:1900px; margin:24px auto 0; }
.ywgc_have_code .woocommerce-info { margin-bottom:0; }
.ywgc-show-giftcard { color:var(--color-dark); font-weight:600; text-decoration:underline; text-underline-offset:2px; }

.ywgc_enter_code { padding:0 40px; max-width:1900px; margin:16px auto 0; }
.ywgc_enter_code, .ywgc_enter_code div { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px 16px; }
.ywgc_enter_code p { margin:0; flex:0 0 auto; }
.ywgc_enter_code p:first-of-type { flex-basis:100%; font-size:14px; color:var(--color-dark); opacity:.75; }
.ywgc_enter_code input.input-text {
    height:44px; padding:0 16px; border:1px solid var(--color-border); border-radius:4px;
    font-size:14px; min-width:220px; background:#FAFAF8; font-family:var(--font-body); color:var(--color-dark); outline:none;
}
.ywgc_enter_code input.input-text:focus { border-color:var(--color-dark); }
.ywgc_enter_code button.ywgc_apply_gift_card_button {
    height:44px; padding:0 24px; background:#2A1D08 !important; color:#F5F0E8 !important; border:none !important; border-radius:4px;
    font-size:12px; letter-spacing:.1em; font-weight:600; cursor:pointer; text-transform:uppercase;
    font-family:var(--font-body); position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.ywgc_enter_code .clear { display:none; }
.ywgc_apply_gift_card_button > * { position:relative; z-index:1; }

/* ── Formulario de cupón del checkout (nativo de WooCommerce) — mismo
   patrón que el bloque de tarjeta regalo, para que se vean iguales ────── */
.checkout-coupon-toggle { padding:0 40px; max-width:1900px; margin:24px auto 0; }
.checkout-coupon-toggle p {
    margin:0; font-size:14px; color:var(--color-dark);
    background:var(--color-bg); padding:14px 20px; border-radius:6px; border-left:3px solid var(--color-accent);
}
.checkout-coupon-toggle .showcoupon { color:var(--color-dark); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
/* Espaciado entre el aviso de cupón y el de tarjeta regalo cuando van seguidos (checkout) */
.checkout-coupon-toggle + .ywgc_have_code { margin-top:16px; }

.checkout-coupon-form { padding:0 40px; max-width:1900px; margin:16px auto 0; display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 16px; }
.checkout-coupon-form > p:first-child { width:100%; margin:0; font-size:14px; color:var(--color-dark); opacity:.75; }
.checkout-coupon-form .form-row { margin:0; }
.checkout-coupon-form input.input-text {
    height:44px; padding:0 16px; border:1px solid var(--color-border); border-radius:4px;
    font-size:14px; min-width:220px; background:#FAFAF8; font-family:var(--font-body); color:var(--color-dark); outline:none;
}
.checkout-coupon-form input.input-text:focus { border-color:var(--color-dark); }
.checkout-coupon-form button.button {
    height:44px; padding:0 24px; background:#2A1D08; color:#F5F0E8; border:none; border-radius:4px;
    font-size:12px; letter-spacing:.1em; font-weight:600; cursor:pointer; text-transform:uppercase;
    font-family:var(--font-body); position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.checkout-coupon-form button.button > * { position:relative; z-index:1; }
.checkout-coupon-form .clear { display:none; }
.cart-collaterals .checkout-button:hover { opacity:.88; }

/* "Combina con" (cross-sells) debajo del carrito */
.cart-cross-sells { padding:56px 0 0; }

/* Carrito vacío */
.cart-empty-state { max-width:640px; margin:0 auto; padding:60px 40px 100px; text-align:center; }
.cart-empty-state__msg { font-size:16px; color:var(--color-dark); opacity:.7; margin-bottom:28px; }
.cart-empty-state__btn {
    display:inline-flex; align-items:center; padding:16px 36px;
    background:#2A1D08; color:#F5F0E8; border-radius:0;
    font-size:13px; letter-spacing:.14em; font-weight:500; text-decoration:none;
    position:relative; overflow:hidden; transition:color .35s var(--ease);
}
.cart-empty-state__btn > * { position:relative; z-index:1; }

/* ── Mini-carrito flotante ────────────────────────────────────────────────────── */
.mini-cart-overlay { position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:899; }
.mini-cart-overlay[hidden] { display:none; }
.mini-cart {
    position:fixed; top:0; right:0; bottom:0; width:min(420px, 92vw);
    background:#fff; z-index:900; overflow-y:auto;
    transform:translateX(100%); transition:transform .3s var(--ease);
    display:flex; flex-direction:column;
}
.mini-cart--open { transform:none; }
.mini-cart__header {
    display:flex; align-items:center; justify-content:space-between;
    padding:24px 24px 16px; border-bottom:1px solid var(--color-border); flex-shrink:0;
}
.mini-cart__header h3 { font-family:var(--font-display); font-size:22px; font-weight:300; color:var(--color-dark); }
.mini-cart__close { background:none; border:none; font-size:26px; line-height:1; cursor:pointer; color:var(--color-dark); padding:4px; }
.mini-cart__body { padding:24px; flex:1; display:flex; flex-direction:column; }
.mini-cart__empty { font-size:14px; color:var(--color-dark); opacity:.6; text-align:center; padding:40px 0; }

.mini-cart__items { list-style:none; margin:0 0 20px; padding:0; display:flex; flex-direction:column; gap:18px; }
.mini-cart__item { display:flex; gap:14px; position:relative; }
.mini-cart__item-img { flex-shrink:0; width:64px; height:84px; overflow:hidden; display:block; background:var(--color-bg); }
.mini-cart__item-img img { width:100%; height:100%; object-fit:cover; display:block; }
.mini-cart__item-info { flex:1; min-width:0; padding-right:20px; }
.mini-cart__item-name { display:block; font-size:14px; color:var(--color-dark); text-decoration:none; margin-bottom:4px; }
.mini-cart__item-name:hover { opacity:.7; }
.mini-cart__item-info dl.variation { font-size:12px; opacity:.6; margin:0 0 4px; }
.mini-cart__item-qty { font-size:13px; color:var(--color-dark); opacity:.8; }
.mini-cart__item-remove {
    position:absolute; top:0; right:0; width:22px; height:22px; display:flex; align-items:center; justify-content:center;
    font-size:16px; line-height:1; color:var(--color-dark); opacity:.4; text-decoration:none;
}
.mini-cart__item-remove:hover { opacity:1; }

.mini-cart__subtotal {
    display:flex; justify-content:space-between; align-items:baseline;
    padding-top:16px; margin-top:auto; border-top:1px solid var(--color-border);
    font-size:15px; color:var(--color-dark); font-weight:600;
}
.mini-cart__btn {
    display:block; width:100%; text-align:center; padding:16px; margin-top:12px;
    font-size:13px; letter-spacing:.12em; font-weight:500; text-decoration:none;
    border-radius:0; transition:opacity .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
}
.mini-cart__btn--outline {
    border:1.5px solid var(--color-dark); color:var(--color-dark);
    position:relative; overflow:hidden;
}
.mini-cart__btn--outline > * { position:relative; z-index:1; }
.mini-cart__btn--dark { background:#2A1D08; color:#F5F0E8; position:relative; overflow:hidden; }
.mini-cart__btn--dark > * { position:relative; z-index:1; }

/* Error de validación al añadir (p. ej. talla sin elegir) */
.add-to-cart-error {
    font-size:13px; color:var(--color-sale); margin:0 0 12px; padding:10px 14px;
    background:rgba(145,50,50,.08); border-radius:4px;
}

/* Botón "Añadir" mientras se envía por AJAX */
.add-to-cart-btn.is-loading,
.gc-add-btn.is-loading { opacity:.6; cursor:wait; }

@media (max-width:480px) {
    .mini-cart__header { padding:20px 20px 14px; }
    .mini-cart__body { padding:20px; }
}

/* ── Checkout page ────────────────────────────────────────────────────────────── */
.checkout-page { max-width:1900px; margin:0 auto; padding:16px 40px 80px; }
.checkout-layout { display:grid; grid-template-columns:1fr 420px; gap:56px; align-items:start; }

/* Campos de facturación / envío (checkout/form-billing.php, form-shipping.php) */
.checkout-layout__fields .col2-set { display:flex; flex-wrap:wrap; gap:0 40px; }
.checkout-layout__fields .col-1,
.checkout-layout__fields .col-2 { flex:1 1 320px; min-width:280px; }
.checkout-layout__fields h3 {
    font-family:var(--font-display); font-size:22px; font-weight:300; color:var(--color-dark); margin-bottom:20px;
}
.checkout-layout__fields .woocommerce-billing-fields__field-wrapper,
.checkout-layout__fields .woocommerce-shipping-fields__field-wrapper,
.checkout-layout__fields .woocommerce-additional-fields__field-wrapper { display:flex; flex-wrap:wrap; gap:0 16px; }
.checkout-layout__fields .form-row { width:100%; margin-bottom:16px; }
.checkout-layout__fields .form-row-first,
.checkout-layout__fields .form-row-last { width:calc(50% - 8px); }
.checkout-layout__fields label {
    display:block; font-size:11px; letter-spacing:.08em; font-weight:600; text-transform:uppercase;
    color:var(--color-dark); opacity:.55; margin-bottom:6px;
}
.checkout-layout__fields label .required { color:var(--color-sale); text-decoration:none; }
.checkout-layout__fields label .optional { opacity:.6; text-transform:none; letter-spacing:0; font-weight:400; }
.checkout-layout__fields input.input-text,
.checkout-layout__fields select,
.checkout-layout__fields textarea,
.checkout-layout__fields .select2-selection {
    width:100%; padding:13px 14px; border:1px solid var(--color-border); border-radius:4px;
    font-size:15px; font-family:var(--font-body); color:var(--color-dark);
    background:#fff; outline:none; transition:border-color .2s var(--ease);
}
.checkout-layout__fields input.input-text:focus,
.checkout-layout__fields select:focus,
.checkout-layout__fields textarea:focus { border-color:var(--color-dark); }
.checkout-layout__fields .select2-container--default .select2-selection--single { height:auto; }
.checkout-layout__fields .select2-selection__arrow { top:10px !important; }
.checkout-layout__fields #ship-to-different-address { margin:8px 0 20px; }
.checkout-layout__fields #ship-to-different-address label {
    display:flex; align-items:center; gap:10px; text-transform:none; letter-spacing:0;
    font-weight:400; font-size:14px; opacity:1; cursor:pointer;
}
.checkout-layout__fields #ship-to-different-address input { width:auto; }
.checkout-layout__fields .woocommerce-additional-fields { margin-top:8px; }
.checkout-layout__fields .woocommerce-account-fields { margin-top:8px; }

/* Resumen del pedido, sticky (checkout/review-order.php + payment.php) */
.checkout-layout__review { position:sticky; top:24px; }
.checkout-summary-box { background:var(--color-bg); padding:32px; }
.checkout-summary-box h3 {
    font-family:var(--font-display); font-size:22px; font-weight:300; color:var(--color-dark); margin-bottom:20px;
}
.woocommerce-checkout-review-order-table { width:100%; border-collapse:collapse; font-size:14px; }
.woocommerce-checkout-review-order-table thead th {
    text-align:left; padding:0 0 10px; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
    font-weight:600; color:var(--color-dark); opacity:.55; border-bottom:1px solid var(--color-border);
}
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table th {
    padding:12px 0; border-bottom:1px solid var(--color-border); color:var(--color-dark); text-align:right;
}
.woocommerce-checkout-review-order-table thead th:first-child,
.woocommerce-checkout-review-order-table .product-name,
.woocommerce-checkout-review-order-table tfoot th { text-align:left; }
.woocommerce-checkout-review-order-table .product-name .product-quantity { opacity:.55; font-size:13px; }
.woocommerce-checkout-review-order-table .amount { white-space:nowrap; }
.woocommerce-checkout-review-order-table tr:last-child td,
.woocommerce-checkout-review-order-table tr:last-child th { border-bottom:none; }
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td { font-weight:600; font-size:18px; padding-top:16px; }

/* Métodos de pago (checkout/payment.php) */
ul.wc_payment_methods { list-style:none; margin:24px 0 0; padding:0; border-top:1px solid var(--color-border); }
li.wc_payment_method { padding:16px 0; border-bottom:1px solid var(--color-border); }
li.wc_payment_method label { font-size:14px; font-weight:500; color:var(--color-dark); cursor:pointer; display:flex; align-items:center; gap:10px; }
li.wc_payment_method label img { height:20px; width:auto; margin-left:6px; }
li.wc_payment_method input.input-radio { width:auto; }
.payment_box {
    margin-top:12px; padding:16px; background:#fff; border-radius:4px;
    font-size:13px; color:var(--color-dark); opacity:.8; line-height:1.6;
}
.payment_box p:last-child { margin-bottom:0; }
.woocommerce-terms-and-conditions-wrapper { margin-top:20px; font-size:13px; }
.woocommerce-form__label-for-checkbox { display:flex; align-items:flex-start; gap:8px; cursor:pointer; }
.woocommerce-form__input-checkbox { margin-top:3px; width:auto; }
#place_order {
    width:100%; padding:20px; margin-top:20px; background:#2A1D08; color:#F5F0E8;
    border:none; border-radius:0; font-size:13px; letter-spacing:.18em; font-weight:500;
    cursor:pointer; font-family:var(--font-body);
    position:relative; overflow:hidden;
    transition:opacity .2s var(--ease), color .35s var(--ease);
}
#place_order > * { position:relative; z-index:1; }
#place_order:hover { opacity:.88; }
#payment .place-order { padding-top:0; }

@media (max-width:800px) {
    .checkout-layout { grid-template-columns:1fr; gap:32px; }
    .checkout-layout__review { position:static; }

    .account-layout {
        grid-template-columns:1fr; gap:32px; padding:0 24px; margin-top:32px;
    }
    .account-layout__nav .woocommerce-MyAccount-navigation ul {
        flex-direction:row; flex-wrap:wrap; gap:4px;
    }
    .account-login-wrap { margin:40px auto 72px; }

    .cart-page { padding:24px; }
    .cart-layout { grid-template-columns:1fr; gap:32px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — portátil estrecho (1025–1220px): justo por encima del punto
   donde aparece la hamburguesa, el menú completo (9 categorías + logo +
   iconos) con la fuente y separación de escritorio no cabe y "Baño" (el
   último item) queda cortado por el overflow-x:clip del body. Se aprieta
   un poco tipografía/gaps solo en esta franja estrecha.
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width:1025px) and (max-width:1220px) {
    .navbar__left,.navbar__right { gap:14px; }
    .nav-item__link { font-size:15px; }
    .navbar__pill { padding:0 20px; }
    .navbar__logo { padding:0 20px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — tablet / portátil pequeño (≤1024px)
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
    /* Navbar → hamburguesa a la derecha, iconos (buscar+cuenta+cesta) a la
       izquierda, logo centrado. El orden visual se controla con `order` (el
       DOM se mantiene igual porque estos mismos elementos se usan en desktop).
       Para centrar el logo de verdad, el botón hamburguesa lleva un margin-left
       igual al ancho del grupo de iconos menos su propio ancho, así ambos
       "lados" pesan lo mismo y no hay overlap ni overflow. */
    .navbar__pill { justify-content:space-between; padding:0 24px; height:60px; }
    .navbar__right { order:1; flex:0 0 auto; gap:12px; }
    .navbar__logo { order:2; padding:0 14px; }
    .mobile-menu-toggle { order:3; display:flex; margin-left:40px; margin-right:0; }
    .navbar__left { display:none; }
    .navbar__right .nav-item { display:none; }
    .navbar { padding:8px 14px; }
    .navbar__logo img { height:40px; }
    .navbar__icons { margin-left:0; gap:18px; }
    .icon-btn, .cart-btn { padding:12px; margin:-12px; }
    .mega-overlay { display:none; }

    /* Hero */
    .hero { min-height:520px; }
    .hero__text { padding:0 24px; }

    /* Home: grids reducen columnas */
    .product-grid--5col { grid-template-columns:repeat(3,1fr) !important; gap:16px !important; }
    .product-grid { grid-template-columns:repeat(3,1fr); gap:16px; }
    .home-cats-grid__grid { grid-template-columns:repeat(3,1fr); gap:24px 16px; }
    .archive-products .product-card__name { font-size:17px; }

    /* Gender banners */
    .gender-banners { gap:20px; padding:20px; }
    .gender-card { height:620px; }
    .gender-card__title { font-size:40px; }

    /* Colecciones */
    .home-colecciones { padding:24px; }
    .home-colecciones__inner { gap:24px; }
    .home-colecciones__text { padding:28px 0 28px 28px; }
    .home-colecciones__photos { gap:20px; }

    /* Puericultura */
    .home-puericultura { padding:24px 24px 48px; }
    .home-puericultura__banner { min-height:280px; }

    /* Single product: reduce holgura entre columnas */
    .single-product__images { padding-right:48px; }
    .single-product__info { flex:0 0 420px; max-width:420px; padding:24px 32px 60px 32px; }

    /* Gift card page */
    .gift-card-page { padding:110px 24px 64px; }
    .gift-card-layout { gap:32px; }
    .gift-card__col-info { max-width:none; }
    .ywgc_have_code, .ywgc_enter_code,
    .checkout-coupon-toggle, .checkout-coupon-form { padding:0 24px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — tablet vertical / móvil grande (≤768px)
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width:768px) {
    /* Evita el zoom automático de iOS al enfocar inputs */
    input[type="text"], input[type="email"], input[type="tel"],
    input[type="password"], input[type="number"], input[type="search"],
    textarea, select { font-size:16px; }

    /* Carrito: la tabla pasa a "tarjetas" apiladas (patrón shop_table_responsive) */
    .cart-table thead { display:none; }
    .cart-table, .cart-table tbody, .cart-table tr, .cart-table td { display:block; width:100%; }
    .cart-table tr { position:relative; padding:16px 0; border-bottom:1px solid var(--color-border2); }
    .cart-table td { border-bottom:none; padding:4px 0; display:flex; justify-content:space-between; align-items:center; gap:12px; }
    .cart-table td::before { content:attr(data-title); font-size:11px; letter-spacing:.08em; text-transform:uppercase; opacity:.5; flex-shrink:0; }
    .cart-table .product-remove { position:absolute; top:16px; right:0; width:auto; padding:0; }
    .cart-table .product-remove::before { content:none; }
    .cart-table .product-thumbnail { justify-content:flex-start; padding-right:40px; }
    .cart-table .product-thumbnail::before { content:none; }
    .cart-table .product-name { justify-content:flex-start; }
    .cart-table .product-name::before { content:none; }
    .cart-table .actions .coupon { flex-direction:column; align-items:stretch; }
    .cart-table .actions .coupon #coupon_code { min-width:0; }

    /* Checkout: los campos "first/last" pasan a ocupar todo el ancho */
    .checkout-page { padding:0 20px 60px; }
    .checkout-layout__fields .form-row-first,
    .checkout-layout__fields .form-row-last { width:100%; }

    /* Hero — pantalla completa en móvil, descontando la franja de envíos (50px)
       para que se vea también en la primera pantalla. 100svh evita el salto
       al aparecer/ocultarse la barra del navegador; sin soporte, usa 100vh. */
    .hero { height:calc(100vh - 50px); height:calc(100svh - 50px); min-height:0; aspect-ratio:auto; }
    .hero__text { bottom:28px; padding:0 20px; }
    .hero__label { font-size:10px; margin-bottom:8px; }
    .hero__title { font-size:clamp(26px,7vw,34px); line-height:1.2; max-width:100%; margin-bottom:20px; }
    .hero__btn { height:52px; font-size:14px; }

    /* FeaturesBar → scroll horizontal */
    .features-bar__inner {
        height:auto; overflow-x:auto; justify-content:flex-start;
        gap:28px; padding:14px 20px; scrollbar-width:none;
    }
    .features-bar__inner::-webkit-scrollbar { display:none; }
    .features-bar__item { flex:0 0 auto; white-space:nowrap; }

    /* Home: categorías */
    .home-cats-grid { padding:32px 0 24px; }
    .home-cats-grid__header { padding:0 20px; margin-bottom:20px; }
    .home-cats-grid__title { font-size:20px; }
    .home-cats-grid__grid { padding:0 20px; grid-template-columns:repeat(2,1fr); gap:20px 14px; }
    .h-scroll { padding-left:20px; }
    .h-scroll-track-wrap { padding:4px 20px 10px; }
    .cat-slide { width:260px; padding:12px; }

    /* Home: productos destacados */
    .home-products { padding:32px 0 40px; }
    .home-products__inner { padding:0 20px; }
    .home-products__header { flex-wrap:wrap; gap:12px; margin-bottom:24px; }
    .home-products__title { font-size:18px; }
    .product-grid--5col { grid-template-columns:repeat(2,1fr) !important; gap:14px !important; }
    .product-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
    .archive-products .product-card__name { font-size:16px; }

    /* Gender banners */
    .gender-banners { flex-direction:column; padding:16px; gap:16px; }
    /* flex:none anula el flex-basis:0% heredado de la regla de escritorio:
       en modo columna, ese flex-basis (que aplica al alto) ignoraría el height. */
    .gender-card { flex:none; height:440px; }
    .gender-card__title { font-size:38px; }
    .gender-card__text { padding:28px; }

    /* Colecciones */
    .home-colecciones { padding:16px; }
    .home-colecciones__inner { flex-direction:column; padding:24px; gap:28px; min-height:0; }
    .home-colecciones__text { flex:none; padding:0; }
    .home-colecciones__desc { max-width:100%; }
    .home-colecciones__photos { width:100%; }
    .home-colecciones__photo-wrap { height:300px; }

    /* Puericultura */
    .home-puericultura { padding:16px 16px 32px; }
    .home-puericultura__banner { min-height:240px; }
    .home-puericultura__title { margin-bottom:16px; }
    .home-puericultura__btn { padding:10px 24px; font-size:12px; }

    /* Category hero / subcategory hero */
    .cat-hero { padding:100px 20px 20px; }
    .cat-hero__title { font-size:30px; line-height:1.15; }
    .subcat-hero { padding:104px 20px 36px; }
    .subcat-hero__title { font-size:30px; line-height:1.15; }
    .subcat-hero__desc { max-width:100%; }

    /* Filter bar */
    .filter-bar__inner { padding:12px 20px 4px; flex-wrap:wrap; gap:12px; }
    .filter-toggle, .sort-btn { padding:10px 0; }
    .filter-panel { padding:20px 20px 24px; }
    .filter-panel__inner--2col,
    .filter-panel__inner--3col { grid-template-columns:1fr; gap:24px; max-width:none; }
    .checkbox-label { padding:6px 0; }
    .qty-btn { width:44px; height:44px; }
    .qty-input { width:44px; height:44px; }

    /* Product grid + archive */
    .archive-products { padding:12px 20px 40px; }

    /* Single product */
    .single-product__breadcrumb-bar { padding:88px 20px 16px; }
    .single-product__main { flex-direction:column; }
    .single-product__images { flex:1 1 100%; padding:0 20px; }
    .single-product__info {
        flex:1 1 100%; max-width:100%; padding:24px 20px 56px;
        position:static; max-height:none; overflow-y:visible;
    }
    .single-product__title { font-size:28px; line-height:1.15; }
    .look-item__thumb { width:72px; height:96px; }
    .look-item__name { font-size:19px; line-height:21px; }
    .look-total { font-size:26px; }
    .tambien-interesa { padding:40px 20px 8px; }
    .tambien-interesa__title { font-size:22px; margin-bottom:24px; }
    .gallery-modal__stage, .gallery-modal__img { max-width:92vw; max-height:78vh; }
    .gallery-modal__nav { width:44px; height:56px; }
    .gallery-modal__prev { left:8px; }
    .gallery-modal__next { right:8px; }
    .gallery-modal__close { top:12px; right:12px; }

    /* Generic page */
    .page-content { margin:100px auto 56px; padding:0 20px; }
    .page-content__title { font-size:28px; }

    /* InfoBar */
    .infobar__inner { flex-direction:column; align-items:stretch; gap:24px; padding:28px 20px; }
    /* row-gap más pequeño que el column-gap: el salto de línea del formulario
       queda pegado al texto, sin heredar el mismo hueco que separa icono/texto */
    .infobar__col--newsletter { padding-right:0; flex-wrap:wrap; row-gap:6px; }
    .infobar__divider { display:none; }
    /* flex-basis:100% fuerza que el formulario salte a su propia línea,
       debajo del icono+texto, en vez de quedar apretado a su lado */
    .infobar__form-wrap { flex:1 1 100%; margin-left:0; margin-top:0; width:100%; }
    .infobar__form { width:100%; }
    .infobar__input { width:auto; flex:1; min-width:0; }

    /* Footer — una columna a lo ancho en vez de parejas de 2: emparejar
       "Guía de compra" (9 enlaces) con "Tienda Online" (6) forzaba la fila
       a la altura de la más larga, dejando un hueco en blanco debajo de la corta. */
    .footer__inner { flex-direction:column; gap:28px; padding:40px 20px 32px; }
    .footer__brand { flex:none; }
    .footer__col { flex:none; }
    .footer__brand + .footer__col { margin-left:0; }

    /* Gift card page */
    .gift-card-page { padding:100px 20px 56px; }
    .gift-card-layout { grid-template-columns:1fr; gap:32px; }
    .gift-card__title { font-size:28px; }
    .gift-card__col-info { max-width:none; }
    .gift_card_add_to_cart_button,
    .add-to-cart-btn { height:72px; }
    .ywgc_have_code, .ywgc_enter_code,
    .checkout-coupon-toggle, .checkout-coupon-form { padding:0 20px; }

    /* Account */
    .account-hero { padding:64px 20px 40px; }
    .account-hero__title { font-size:36px; }
    .account-login-wrap { padding:0 16px; margin:40px auto 64px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE — móvil pequeño (≤480px)
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width:480px) {
    .navbar { padding:6px 10px; }
    .navbar__pill { padding:0 16px; height:56px; }
    .navbar__logo { padding:0 8px; }
    .navbar__logo img { height:32px; }
    .navbar__icons { gap:10px; }
    .icon-btn, .cart-btn { padding:9px; margin:-9px; }
    .mobile-menu-toggle { margin-left:24px; margin-right:0; }

    .hero__title { font-size:clamp(24px,7.5vw,30px); }
    .hero__btn { width:100%; max-width:240px; }

    .cat-slide { width:220px; padding:10px; }
    .cat-slide__products { gap:6px; }

    .product-grid--5col,
    .product-grid { grid-template-columns:repeat(2,1fr) !important; gap:10px !important; }
    .product-card__name { font-size:14px; }
    .archive-products .product-card__name { font-size:15px; }
    .price-cur { font-size:17px; }

    .gender-card { height:360px; }
    .gender-card__title { font-size:32px; }
    .gender-card__subtitle { font-size:16px; }
    .gender-card__text { padding:24px; }

    .contact-form__row-2 { grid-template-columns:1fr; }
    .gift-card-layout { gap:24px; }
    .gc-amounts__grid { gap:6px; }
    .gc-amount-btn span { padding:14px 4px; font-size:14px; }
    .gc-form-wrap div:has(> button.ywgc-predefined-amount-button) { grid-template-columns:repeat(2,1fr); }
    button.ywgc-predefined-amount-button { height:48px; font-size:14px; }
    .gift_card_add_to_cart_button,
    .add-to-cart-btn { height:64px; font-size:14px; }

    .account-hero__title { font-size:30px; }
    .account-tab-panel { padding:24px 20px; }
}
