/* ==========================================================================
   Semper — estilos del tema (hijo de GeneratePress)
   Índice: 1 Fuentes · 2 Variables · 3 Base · 4 GeneratePress · 5 Botones y textos · 6 Avisos y cabecera
           7 Paneles, menú móvil y buscador · 8 Portada · 9 Tarjetas y rejillas · 10 Tienda y filtros
           11 Ficha de producto · 12 Cesta lateral · 13 Carrito, pago y cuenta · 14 Páginas · 15 Pie
           16 WhatsApp, avisos emergentes y visor · 17 Utilidades
   ========================================================================== */

/* 1 · Fuentes (alojadas en el propio servidor; variables: un fichero para todos los pesos) ---------------- */
@font-face { font-family: "Jost"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/jost-latin.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 300 700; font-display: swap; src: url(../fonts/jost-latin-ext.woff2) format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/cormorant-garamond-latin.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/cormorant-garamond-latin-ext.woff2) format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+20A0-20AB, U+20AD-20C4, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 400 700; font-display: swap; src: url(../fonts/cormorant-garamond-italic-latin.woff2) format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 400 700; font-display: swap; src: url(../fonts/cormorant-garamond-italic-latin-ext.woff2) format("woff2");
	unicode-range: U+0100-02BA, U+1E00-1E9F; }

/* 2 · Variables (colores del logo + neutros cálidos) ----------------------------------------------------- */
:root {
	--rosa: #e5b3b4;          /* «s» del logo */
	--rosa-palo: #fbe9e5;     /* fondo del logo */
	--rosa-hondo: #b9787b;    /* rosa con contraste para textos y ofertas */
	--dorado: #c9a13a;        /* «e» del logo */
	--dorado-suave: #efe2c1;
	--oliva: #90845e;         /* «m» del logo */
	--nude: #dbb8a2;          /* «p» del logo */
	--malva: #906b65;         /* «r» del logo */
	--topo: #726252;          /* «SHOP» del logo */
	--salvia: #e7ebe1;        /* acento suave nuevo: fondos de secciones */
	--tinta: #2b2521;         /* casi negro cálido para textos y botones */
	--texto: #3d3530;
	--gris: #7a706a;
	--linea: #e8e0d8;
	--crema: #fbf7f3;         /* fondo general */
	--blanco: #ffffff;
	--ok: #4f7a5a;
	--error: #a33a3a;

	--f-titulo: "Cormorant Garamond", "Times New Roman", Georgia, serif;
	--f-texto: "Jost", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--ancho: 1360px;
	--margen: clamp(16px, 4vw, 40px);
	--radio: 2px;
	--radio-grande: 14px;
	--sombra: 0 10px 30px -12px rgba(43, 37, 33, .25);
	--transicion: .25s cubic-bezier(.2, .7, .3, 1);
	--alto-cabecera: 64px;
}
@media (min-width: 1024px) { :root { --alto-cabecera: 84px; } }
@media (prefers-reduced-motion: reduce) { :root { --transicion: 0s; } html { scroll-behavior: auto; } }

/* 3 · Base ------------------------------------------------------------------------------------------------ */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--alto-cabecera) + 20px); }
body {
	background: var(--crema);
	color: var(--texto);
	font-family: var(--f-texto);
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--f-titulo); font-weight: 500; color: var(--tinta); line-height: 1.15; letter-spacing: -.005em; margin: 0 0 .5em; }
h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.6rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1em; }
a { color: var(--tinta); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--transicion), opacity var(--transicion); }
a:hover { color: var(--malva); }
img { max-width: 100%; height: auto; display: block; }
::selection { background: var(--rosa); color: var(--tinta); }
:focus-visible { outline: 2px solid var(--dorado); outline-offset: 3px; }
input, select, textarea, button { font: inherit; color: inherit; }
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], input[type="url"], select, textarea, .select2-container .select2-selection--single {
	width: 100%;
	background: var(--blanco);
	border: 1px solid var(--linea);
	border-radius: var(--radio);
	padding: 12px 14px;
	min-height: 48px;
	color: var(--tinta);
	transition: border-color var(--transicion), box-shadow var(--transicion);
}
input:focus, select:focus, textarea:focus { border-color: var(--topo); outline: none; box-shadow: 0 0 0 3px rgba(201, 161, 58, .18); }
select { appearance: none; background: var(--blanco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%232b2521' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; padding-right: 40px; }
label { font-size: .875rem; color: var(--texto); }
table { border-collapse: collapse; width: 100%; }
.contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--margen); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* 4 · GeneratePress: quitar márgenes y cajas que no usa el diseño -------------------------------------- */
.site.grid-container, .grid-container { max-width: none; }
.one-container .site-content, .separate-containers .site-content { padding: 0; }
.site-content { display: block; }
.one-container .container, .separate-containers .inside-article, .one-container .inside-article, .inside-page-header { background: transparent; padding: 0; }
.content-area { width: 100%; }
.site-main { margin: 0 !important; }
.entry-content:not(:first-child), .entry-summary:not(:first-child), .page-content:not(:first-child) { margin-top: 0; }
body .site, body .site-content, body .inside-article { background: transparent; }
.site-footer { background: var(--tinta); color: #d9d0c8; }
.woocommerce .site-main, .woocommerce-page .site-main, .page:not(.es-portada) .site-main, .single-post .site-main, .search .site-main, .archive .site-main, .blog .site-main, .error404 .site-main {
	max-width: var(--ancho); margin-inline: auto !important; padding: 0 var(--margen) clamp(40px, 6vw, 80px);
}
.page .entry-header, .single .entry-header { text-align: center; padding-block: clamp(32px, 6vw, 64px) 8px; }
.page .entry-title { font-size: clamp(2.2rem, 5vw, 3.2rem); }
.woocommerce-cart .entry-header, .woocommerce-checkout .entry-header, .woocommerce-account .entry-header { padding-bottom: 24px; }

/* 5 · Botones y textos comunes ------------------------------------------------------------------------- */
.boton, .button, button.button, a.button, input[type="submit"], .wc-block-components-button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	background: var(--tinta); color: var(--blanco); border: 1px solid var(--tinta); border-radius: var(--radio);
	padding: 14px 28px; min-height: 48px; font-family: var(--f-texto); font-size: .82rem; font-weight: 500;
	letter-spacing: .14em; text-transform: uppercase; text-decoration: none; line-height: 1.2; cursor: pointer;
	transition: background var(--transicion), color var(--transicion), border-color var(--transicion), transform var(--transicion);
}
.boton, a.boton, .button, a.button { color: var(--blanco); }
a.boton-claro, .boton-claro, a.boton-borde, .boton-borde { color: var(--tinta); }
a.boton-borde:hover, .boton-borde:hover { color: var(--blanco); }
.boton:hover, .button:hover, input[type="submit"]:hover { background: var(--malva); border-color: var(--malva); color: var(--blanco); }
.boton:active, .button:active { transform: translateY(1px); }
.boton .icono, .button .icono { width: 18px; height: 18px; }
.boton-claro { background: var(--blanco); color: var(--tinta); border-color: var(--blanco); }
.boton-claro:hover { background: var(--rosa-palo); border-color: var(--rosa-palo); color: var(--tinta); }
.boton-borde { background: transparent; color: var(--tinta); }
.boton-borde:hover { background: var(--tinta); color: var(--blanco); }
.boton-bloque { width: 100%; }
.button.alt, .checkout-button, #place_order, .single_add_to_cart_button { background: var(--tinta); }
.button.disabled, .button:disabled, .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }
.cargando { position: relative; color: transparent !important; pointer-events: none; }
.cargando::after { content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%; animation: girar .7s linear infinite; }
.tarjeta__anadir.cargando::after { border-color: rgba(43, 37, 33, .25); border-top-color: var(--tinta); }
@keyframes girar { to { transform: rotate(360deg); } }
.boton-texto { background: none; border: 0; padding: 6px 0; font-size: .85rem; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; color: var(--tinta); }
.boton-icono { display: inline-flex; align-items: center; justify-content: center; position: relative; width: 44px; height: 44px; padding: 0; background: none; border: 0; border-radius: 50%; color: var(--tinta); cursor: pointer; transition: background var(--transicion); }
.boton-icono:hover { background: rgba(43, 37, 33, .06); color: var(--tinta); }
.enlace-flecha { display: inline-flex; align-items: center; gap: .5em; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; font-weight: 500; white-space: nowrap; }
.enlace-flecha .icono { width: 18px; transition: transform var(--transicion); }
.enlace-flecha:hover .icono { transform: translateX(4px); }
.enlace-icono { display: inline-flex; align-items: center; gap: .5em; background: none; border: 0; padding: 0; font-size: .85rem; color: var(--texto); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.enlace-icono .icono { width: 18px; height: 18px; }
.antetitulo { font-family: var(--f-texto); font-size: .72rem; font-weight: 500; letter-spacing: .28em; text-transform: uppercase; color: var(--malva); margin-bottom: .8em; }
.botones { display: flex; flex-wrap: wrap; gap: 12px; }
.contador { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--rosa-hondo); color: #fff; font-size: .65rem; font-weight: 600; line-height: 18px; text-align: center; }
.contador.vacio { display: none; }
.lista-iconos { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.lista-iconos li { display: flex; gap: 12px; align-items: flex-start; }
.lista-iconos .icono { flex: none; width: 20px; height: 20px; margin-top: 2px; color: var(--dorado); }
.redes { display: flex; gap: 6px; }
.redes a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid currentColor; border-radius: 50%; opacity: .85; }
.redes a:hover { opacity: 1; background: var(--rosa); border-color: var(--rosa); color: var(--tinta); }
.redes .icono { width: 18px; height: 18px; }
.aviso { display: flex; gap: 10px; align-items: center; padding: 14px 16px; border-radius: var(--radio); margin-bottom: 20px; font-size: .95rem; }
.aviso-ok { background: #e9f1ea; color: var(--ok); }
.aviso-error { background: #f8e9e9; color: var(--error); }
.pildoras { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.pildoras::-webkit-scrollbar { display: none; }
.pildora { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border: 1px solid var(--linea); border-radius: 999px; background: var(--blanco); font-size: .85rem; text-decoration: none; white-space: nowrap; }
.pildora:hover, .pildora.activa { border-color: var(--tinta); background: var(--tinta); color: var(--blanco); }
.pildora-quitar .icono { width: 14px; height: 14px; }

/* 6 · Barra de avisos y cabecera --------------------------------------------------------------------- */
.avisos { background: var(--tinta); color: #f3ece5; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; text-align: center; }
.avisos__pista { position: relative; height: 36px; overflow: hidden; }
.aviso-barra { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; padding-inline: 16px; opacity: 0; transform: translateY(8px); transition: opacity .5s, transform .5s; }
.aviso-barra.activo { opacity: 1; transform: none; }
.cabecera { position: sticky; top: 0; z-index: 50; background: rgba(251, 247, 243, .96); backdrop-filter: saturate(1.2) blur(8px); border-bottom: 1px solid var(--linea); transition: box-shadow var(--transicion); }
.admin-bar .cabecera { top: 32px; }
@media (max-width: 782px) { .admin-bar .cabecera { top: 0; } }
.cabecera.con-sombra { box-shadow: 0 6px 20px -14px rgba(43, 37, 33, .35); }
.cabecera__fila { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: var(--alto-cabecera); }
.cabecera__izq { display: flex; gap: 2px; margin-left: -10px; }
.cabecera__der { display: flex; gap: 2px; justify-content: flex-end; margin-right: -10px; }
.cabecera__logo { display: block; line-height: 0; }
.cabecera__logo .logo { width: auto; height: 44px; }
@media (min-width: 1024px) { .cabecera__logo .logo { height: 58px; } }
.nav-principal { border-top: 1px solid var(--linea); }
.nav-principal .menu { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; gap: clamp(16px, 3vw, 44px); }
.nav-principal .menu > li { position: relative; }
.nav-principal .menu > li > a { display: block; padding: 14px 0; font-size: .78rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; color: var(--tinta); position: relative; }
.nav-principal .menu > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 1px; background: var(--dorado); transform: scaleX(0); transition: transform var(--transicion); }
.nav-principal .menu > li:hover > a::after, .nav-principal .current-menu-item > a::after, .nav-principal .current-menu-ancestor > a::after { transform: scaleX(1); }
.nav-principal .sub-menu { position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px); min-width: 220px; list-style: none; margin: 0; padding: 12px 0; background: var(--blanco); border: 1px solid var(--linea); box-shadow: var(--sombra); opacity: 0; visibility: hidden; transition: opacity var(--transicion), transform var(--transicion), visibility var(--transicion); z-index: 10; }
.nav-principal li:hover > .sub-menu, .nav-principal li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-principal .sub-menu a { display: block; padding: 8px 22px; font-size: .92rem; text-decoration: none; white-space: nowrap; }
.nav-principal .sub-menu a:hover { background: var(--crema); }
.solo-escritorio { display: none !important; }
@media (min-width: 1024px) {
	.solo-escritorio { display: inline-flex !important; }
	nav.solo-escritorio { display: block !important; }
	.solo-movil { display: none !important; }
}

/* 7 · Paneles laterales, menú móvil y buscador -------------------------------------------------------- */
.velo { position: fixed; inset: 0; z-index: 90; background: rgba(43, 37, 33, .45); opacity: 0; transition: opacity var(--transicion); }
.velo.visible { opacity: 1; }
html.panel-abierto { overflow: hidden; }
.panel[hidden], .buscador[hidden], .velo[hidden], .tostada[hidden] { display: none !important; }
body { overflow-x: clip; }
.panel { position: fixed; top: 0; bottom: 0; z-index: 100; width: min(420px, 92vw); background: var(--crema); display: flex; flex-direction: column; box-shadow: var(--sombra); transition: transform .35s cubic-bezier(.2, .7, .3, 1); }
.panel-izq { left: 0; transform: translateX(-100%); }
.panel-der { right: 0; transform: translateX(100%); }
.panel.abierto { transform: none; }
.panel__cabecera { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 22px; border-bottom: 1px solid var(--linea); min-height: 64px; }
.panel__cabecera h2 { font-size: 1.6rem; margin: 0; }
.panel__cabecera .logo { height: 38px; width: auto; }
.panel__cuerpo { flex: 1; overflow-y: auto; padding: 18px 22px 28px; overscroll-behavior: contain; }
.menu-movil .menu { list-style: none; margin: 0 0 24px; padding: 0; }
.menu-movil .menu > li { border-bottom: 1px solid var(--linea); display: flex; flex-wrap: wrap; align-items: center; }
.menu-movil .menu > li > a { flex: 1; display: flex; align-items: center; gap: 12px; padding: 15px 0; font-family: var(--f-titulo); font-size: 1.45rem; text-decoration: none; }
.menu-movil .menu-secundario > li > a { font-family: var(--f-texto); font-size: .95rem; }
.menu-movil .menu-secundario .icono { width: 20px; color: var(--malva); }
.desplegar-submenu svg { width: 20px; height: 20px; stroke-width: 1.8; }
.desplegar-submenu { width: 44px; height: 44px; background: none !important; color: var(--tinta) !important; border: 0; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: transform var(--transicion); }
.desplegar-submenu[aria-expanded="true"] { transform: rotate(180deg); }
.menu-movil .sub-menu { flex-basis: 100%; list-style: none; margin: 0 0 12px; padding: 0 0 0 14px; border-left: 1px solid var(--dorado); }
.menu-movil .sub-menu a { display: block; padding: 8px 0; text-decoration: none; }
.menu-movil .redes { margin-top: 8px; color: var(--tinta); }
.buscador { position: fixed; inset: 0 0 auto 0; z-index: 100; background: var(--crema); padding-block: 18px 28px; box-shadow: var(--sombra); transform: translateY(-100%); transition: transform .35s cubic-bezier(.2, .7, .3, 1); max-height: 90vh; overflow-y: auto; }
.buscador.abierto { transform: none; }
.buscador__form { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--tinta); }
.buscador__form input[type="search"]::-webkit-search-cancel-button { display: none; }
.buscador__form input[type="search"] { border: 0; background: transparent; font-family: var(--f-titulo); font-size: clamp(1.5rem, 4vw, 2.2rem); padding: 10px 0; min-height: 0; box-shadow: none; }
.buscador__lista { list-style: none; margin: 18px 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.buscador__lista a { display: flex; gap: 14px; align-items: center; text-decoration: none; }
.buscador__lista img { width: 64px; height: 85px; object-fit: cover; background: var(--rosa-palo); }
.buscador__lista strong { display: block; font-weight: 500; }
.buscador__vacio { margin-top: 18px; color: var(--gris); }

/* 8 · Portada ---------------------------------------------------------------------------------------- */
.seccion { padding-block: clamp(48px, 8vw, 96px); }
.seccion__cabecera { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(22px, 4vw, 40px); }
.seccion__cabecera.centrada { flex-direction: column; align-items: center; text-align: center; }
.seccion__titulo { margin: 0; }
.seccion__titulo a { text-decoration: none; }
.hero { position: relative; min-height: min(86vh, 780px); display: flex; align-items: flex-end; color: var(--blanco); overflow: hidden; background: var(--topo); }
.hero__media, .hero__media picture { position: absolute; inset: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; animation: acercar 14s ease-out both; }
@keyframes acercar { from { transform: scale(1.06); } to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .hero__media img { animation: none; } }
.hero--mosaico .hero__media { display: grid; grid-template-columns: 1fr; }
.hero--mosaico .hero__foto { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.hero--mosaico .hero__foto:not(.hero__foto--movil) { display: none; }
@media (min-width: 768px) {
	.hero--2 .hero__media { grid-template-columns: 1fr 1fr; }
	.hero--3 .hero__media { grid-template-columns: repeat(3, 1fr); gap: 4px; }
	.hero--mosaico .hero__foto:not(.hero__foto--movil) { display: block; }
	.hero--mosaico .hero__media img { animation: none; }
}
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(43, 37, 33, 0) 35%, rgba(43, 37, 33, .62) 100%); }
.hero__texto { position: relative; z-index: 1; padding-block: 60px clamp(44px, 8vw, 90px); max-width: var(--ancho); }
.hero .antetitulo { color: var(--rosa-palo); }
.hero__titulo { color: var(--blanco); font-size: clamp(2.8rem, 8vw, 5.6rem); font-weight: 500; line-height: 1; max-width: 12ch; margin-bottom: .3em; }
.hero__parrafo { font-size: clamp(1rem, 1.6vw, 1.15rem); max-width: 46ch; color: #f6efe9; margin-bottom: 1.6em; }
.categorias { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 70%; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(var(--margen) * -1); padding-inline: var(--margen); }
.categorias::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .categorias { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; margin: 0; padding: 0; gap: 20px; } }
.categoria { scroll-snap-align: start; }
.categoria a { display: block; position: relative; text-decoration: none; color: var(--blanco); overflow: hidden; border-radius: var(--radio); }
.categoria__foto { display: block; aspect-ratio: 3 / 4; background: var(--rosa-palo); }
.categoria__foto img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .8s cubic-bezier(.2, .7, .3, 1); }
.categoria a:hover img { transform: scale(1.05); }
.categoria a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(43, 37, 33, .55)); }
.categoria__nombre { position: absolute; left: 20px; right: 20px; bottom: 44px; z-index: 1; font-family: var(--f-titulo); font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1; }
.categoria__ver { position: absolute; left: 20px; bottom: 18px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; }
.categoria__ver .icono { width: 16px; transition: transform var(--transicion); }
.categoria a:hover .categoria__ver .icono { transform: translateX(4px); }
.seccion-productos:nth-of-type(even) { background: var(--blanco); }
.carrusel { position: relative; }
.carrusel__pista { display: grid !important; grid-template-columns: none !important; grid-auto-flow: column; grid-auto-columns: calc((100% - 14px) / 2); gap: 14px !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 !important; padding: 0; }
.carrusel__pista::-webkit-scrollbar { display: none; }
.carrusel__pista > li { scroll-snap-align: start; }
@media (min-width: 768px) { .carrusel__pista { grid-auto-columns: calc((100% - 40px) / 3); gap: 20px !important; } }
@media (min-width: 1100px) { .carrusel__pista { grid-auto-columns: calc((100% - 60px) / 4); } }
.carrusel__flecha { display: none; position: absolute; top: 38%; z-index: 2; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--linea); background: var(--blanco); box-shadow: var(--sombra); align-items: center; justify-content: center; cursor: pointer; transition: opacity var(--transicion); }
.carrusel__flecha.anterior { left: -23px; }
.carrusel__flecha.siguiente { right: -23px; }
@media (min-width: 1024px) { .carrusel__flecha { display: inline-flex; } }
.carrusel.al-inicio .anterior, .carrusel.al-final .siguiente { opacity: 0; pointer-events: none; }
.banner { display: grid; background: var(--rosa-palo); }
@media (min-width: 900px) { .banner { grid-template-columns: 1.15fr 1fr; min-height: 640px; } }
.banner__media { min-height: 420px; position: relative; }
.banner__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.banner__texto { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(36px, 7vw, 100px); }
.banner__titulo { font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.02; font-style: italic; }
.banner__texto p:not(.antetitulo) { max-width: 40ch; margin-bottom: 1.6em; }
.visita { display: grid; background: var(--salvia); }
@media (min-width: 900px) { .visita { grid-template-columns: 1fr 1fr; } .visita__media { order: 2; } }
.visita__media { min-height: 360px; position: relative; background: var(--nude); }
.visita__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.visita__texto { padding: clamp(36px, 7vw, 96px); display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.visita__texto .lista-iconos { margin: 10px 0 26px; }
.instagram__fotos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
@media (min-width: 900px) { .instagram__fotos { grid-template-columns: repeat(6, 1fr); gap: 10px; } }
.instagram__fotos a { position: relative; display: block; aspect-ratio: 1; overflow: hidden; color: #fff; }
.instagram__fotos img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .6s, filter .3s; }
.instagram__fotos .icono { position: absolute; inset: 0; margin: auto; width: 30px; height: 30px; opacity: 0; transition: opacity var(--transicion); }
.instagram__fotos a:hover img { transform: scale(1.06); filter: brightness(.8); }
.instagram__fotos a:hover .icono { opacity: 1; }

/* 9 · Rejillas y tarjetas de producto ---------------------------------------------------------------- */
ul.products { list-style: none; margin: 0 0 40px !important; padding: 0 !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
@media (min-width: 768px) { ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 20px; } }
@media (min-width: 1100px) { ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
ul.products::before, ul.products::after { display: none; }
ul.products li.product { width: auto; margin: 0; float: none; padding: 0; text-align: left; position: relative; } /* relative: el texto oculto de los precios no se escapa del carrusel */
.tarjeta__media { position: relative; overflow: hidden; background: var(--rosa-palo); border-radius: var(--radio); }
.tarjeta__fotos { display: block; aspect-ratio: 2 / 3; position: relative; } /* fotos altas: la prenda entera */
.tarjeta__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: opacity .45s ease, transform .9s cubic-bezier(.2, .7, .3, 1); }
.tarjeta__foto-2 { opacity: 0; }
@media (hover: hover) {
	.tarjeta:hover .tarjeta__foto-2 { opacity: 1; }
	.tarjeta:hover .tarjeta__foto { transform: scale(1.03); }
}
.etiquetas { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; gap: 6px; z-index: 2; }
.etiqueta { display: inline-block; padding: 4px 10px; font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; background: var(--blanco); color: var(--tinta); border-radius: 999px; }
.etiqueta-oferta { background: var(--rosa-hondo); color: #fff; }
.etiqueta-nuevo { background: var(--dorado-suave); }
.etiqueta-agotado { background: var(--tinta); color: #fff; }
.boton-favorito { position: absolute; top: 8px; right: 8px; z-index: 2; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .72); backdrop-filter: blur(4px); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--tinta); transition: transform var(--transicion), background var(--transicion), color var(--transicion), box-shadow var(--transicion); }
.boton-favorito .icono { width: 17px; height: 17px; transition: fill var(--transicion), color var(--transicion); }
@media (hover: hover) { .boton-favorito:hover { background: var(--blanco); color: var(--rosa-hondo); transform: scale(1.06); box-shadow: 0 4px 12px -6px rgba(43, 37, 33, .35); } }
.boton-favorito.activo .icono { fill: var(--rosa-hondo); color: var(--rosa-hondo); }
.boton-favorito.activo { animation: latido .35s ease; }
@keyframes latido { 50% { transform: scale(1.18); } }
.tarjeta__ver { position: absolute; left: 50%; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; background: rgba(255, 255, 255, .9); backdrop-filter: blur(6px); color: var(--tinta); border-radius: 999px; font-size: .66rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; white-space: nowrap; opacity: 0; transform: translate(-50%, 8px); transition: opacity var(--transicion), transform var(--transicion), background var(--transicion), color var(--transicion); }
.tarjeta__ver .icono { width: 14px; height: 14px; transition: transform var(--transicion); }
.tarjeta__ver:hover { background: var(--tinta); color: var(--blanco); }
.tarjeta__ver:hover .icono { transform: translateX(3px); }
@media (hover: hover) { .tarjeta:hover .tarjeta__ver { opacity: 1; transform: translate(-50%, 0); } }
@media (hover: none) { .tarjeta__ver { display: none; } }
.tarjeta__info { padding-top: 12px; display: grid; gap: 4px; }
.tarjeta__titulo { font-family: var(--f-texto); font-size: .92rem; font-weight: 400; line-height: 1.35; margin: 0; letter-spacing: .01em; }
.tarjeta__titulo a { text-decoration: none; }
.price { font-size: .95rem; font-weight: 500; color: var(--tinta); display: flex; flex-wrap: wrap; gap: 0 8px; align-items: baseline; }
.price del { color: var(--gris); font-weight: 400; font-size: .85em; opacity: 1; }
.price ins { text-decoration: none; color: var(--rosa-hondo); }
.colores { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.punto-color { display: inline-block; width: 14px; height: 14px; border-radius: 50%; background: var(--color, #ddd); box-shadow: inset 0 0 0 1px rgba(43, 37, 33, .15); }
.punto-mas { font-size: .75rem; color: var(--gris); }
.agotado-texto { font-size: .8rem; color: var(--gris); }
.related, .upsells, .cross-sells { padding-top: clamp(40px, 7vw, 80px); }
.related > h2, .upsells > h2, .cross-sells > h2 { text-align: center; margin-bottom: 32px; }

/* 10 · Tienda y filtros --------------------------------------------------------------------------- */
.migas { font-size: .78rem; color: var(--gris); padding-block: 18px 6px; display: flex; flex-wrap: wrap; gap: 6px; }
.migas a { color: var(--gris); text-decoration: none; }
.migas a:hover { color: var(--tinta); }
.tienda-cabecera { text-align: center; padding-block: clamp(14px, 3vw, 30px) clamp(20px, 3vw, 32px); display: grid; justify-items: center; gap: 14px; }
.tienda-cabecera__titulo { margin: 0; }
.tienda-cabecera .term-description, .tienda-cabecera .page-description { max-width: 62ch; color: var(--gris); }
.tienda-cabecera .term-description p:last-child { margin: 0; }
.tienda-cabecera .pildoras { max-width: 100%; justify-content: flex-start; }
@media (min-width: 768px) { .tienda-cabecera .pildoras { justify-content: center; flex-wrap: wrap; } }
.barra-tienda { position: sticky; top: var(--alto-cabecera); z-index: 20; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 10px 0; margin-bottom: 24px; background: var(--crema); border-block: 1px solid var(--linea); }
@media (min-width: 1024px) { .barra-tienda { top: calc(var(--alto-cabecera) + 47px); } }
.boton-filtros { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 10px 0; background: none; border: 0; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; cursor: pointer; }
.boton-filtros .contador { position: static; display: inline-block; }
.barra-tienda__total { margin: 0; text-align: center; font-size: .82rem; color: var(--gris); white-space: nowrap; }
.orden select { min-height: 40px; padding: 6px 36px 6px 12px; border-color: transparent; background-color: transparent; font-size: .85rem; width: auto; }
.filtros-activos { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: -8px 0 24px; }
.filtros { display: flex; flex-direction: column; gap: 6px; }
.filtro { border: 0; border-bottom: 1px solid var(--linea); margin: 0; padding: 0 0 22px; }
.filtro legend { font-family: var(--f-titulo); font-size: 1.35rem; color: var(--tinta); padding: 18px 0 12px; }
.opciones-talla { display: flex; flex-wrap: wrap; gap: 8px; }
.opcion-talla input, .opcion-color input { position: absolute; opacity: 0; }
.opcion-talla span { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 44px; padding: 0 12px; border: 1px solid var(--linea); background: var(--blanco); font-size: .85rem; cursor: pointer; transition: all var(--transicion); }
.opcion-talla input:checked + span { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.opcion-talla input:focus-visible + span, .opcion-color input:focus-visible + .punto-color { outline: 2px solid var(--dorado); outline-offset: 2px; }
.opciones-color { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.opcion-color { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: .9rem; }
.opcion-color .punto-color { width: 26px; height: 26px; transition: box-shadow var(--transicion); }
.opcion-color input:checked + .punto-color { box-shadow: 0 0 0 2px var(--crema), 0 0 0 3px var(--tinta); }
.rango-precio { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rango-precio label { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rango-precio label span { flex-basis: 100%; font-size: .8rem; color: var(--gris); }
.rango-precio input { width: calc(100% - 22px); }
.interruptor { display: flex; align-items: center; gap: 12px; padding: 8px 0; cursor: pointer; font-size: .95rem; }
.interruptor input { appearance: none; width: 42px; height: 24px; border-radius: 12px; background: var(--linea); position: relative; cursor: pointer; transition: background var(--transicion); flex: none; }
.interruptor input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform var(--transicion); box-shadow: 0 1px 3px rgba(0, 0, 0, .2); }
.interruptor input:checked { background: var(--tinta); }
.interruptor input:checked::after { transform: translateX(18px); }
.filtros__botones { position: sticky; bottom: -28px; display: grid; grid-template-columns: 1fr 2fr; gap: 10px; padding: 16px 0 28px; background: var(--crema); margin-top: auto; }
.woocommerce-pagination { display: flex; justify-content: center; }
.woocommerce-pagination ul.page-numbers { list-style: none; display: flex; gap: 6px; padding: 0; margin: 0; border: 0; }
.woocommerce-pagination .page-numbers li { border: 0; }
.woocommerce-pagination a.page-numbers, .woocommerce-pagination span.page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; border: 1px solid var(--linea); text-decoration: none; background: var(--blanco); }
.woocommerce-pagination span.current { background: var(--tinta); color: #fff; border-color: var(--tinta); }
.woocommerce-pagination .icono { width: 18px; }
.woocommerce-info, .woocommerce-message, .woocommerce-error, .woocommerce-noreviews, p.no-comments { list-style: none; margin: 0 0 24px; padding: 16px 18px; background: var(--blanco); border: 1px solid var(--linea); border-left: 3px solid var(--dorado); font-size: .95rem; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.woocommerce-error { border-left-color: var(--error); }
.woocommerce-message { border-left-color: var(--ok); }
.woocommerce-info .button, .woocommerce-message .button { min-height: 40px; padding: 10px 18px; order: 2; }
.woocommerce-no-products-found .woocommerce-info { justify-content: center; }
.sin-resultados { text-align: center; }

/* 11 · Ficha de producto ------------------------------------------------------------------------- */
.single-product div.product { display: grid; gap: 24px; position: relative; }
@media (min-width: 1024px) { .single-product div.product { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; align-items: start; } }
.single-product div.product > .galeria { grid-column: 1; }
.single-product div.product > .summary { grid-column: auto; }
@media (min-width: 1024px) { .single-product div.product > .summary { position: sticky; top: calc(var(--alto-cabecera) + 70px); } }
.single-product div.product > .related, .single-product div.product > .upsells, .single-product div.product > section { grid-column: 1 / -1; }
.galeria { position: relative; margin-inline: calc(var(--margen) * -1); }
@media (min-width: 1024px) { .galeria { margin: 0; display: grid; grid-template-columns: 76px 1fr; gap: 14px; align-items: start; } }
.galeria__fotos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; background: var(--rosa-palo); }
.galeria__fotos::-webkit-scrollbar { display: none; }
.galeria__foto { flex: 0 0 100%; scroll-snap-align: center; margin: 0; aspect-ratio: 3 / 4; }
.galeria__foto a { display: block; height: 100%; cursor: zoom-in; }
.galeria__foto img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
@media (min-width: 1024px) {
	.galeria__fotos { grid-column: 2; grid-row: 1; flex-direction: column; overflow: visible; gap: 14px; background: none; }
	.galeria__foto { flex: none; background: var(--rosa-palo); }
	.galeria__miniaturas { grid-column: 1; grid-row: 1; position: sticky; top: calc(var(--alto-cabecera) + 70px); display: flex; flex-direction: column; gap: 10px; }
	.galeria__miniaturas button { padding: 0; border: 1px solid transparent; background: var(--rosa-palo); cursor: pointer; aspect-ratio: 3 / 4; overflow: hidden; opacity: .6; transition: opacity var(--transicion), border-color var(--transicion); }
	.galeria__miniaturas button.activo, .galeria__miniaturas button:hover { opacity: 1; border-color: var(--tinta); }
	.galeria__miniaturas img { width: 100%; height: 100%; object-fit: cover; }
	.galeria__puntos { display: none; }
	.galeria .etiquetas { left: calc(76px + 26px); }
}
@media (max-width: 1023px) { .galeria__miniaturas { display: none; } }
.galeria__puntos { position: absolute; bottom: 14px; left: 0; right: 0; display: flex; justify-content: center; gap: 6px; pointer-events: none; }
.galeria__puntos span { width: 6px; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .7); box-shadow: 0 0 2px rgba(0, 0, 0, .3); transition: width var(--transicion), background var(--transicion); }
.galeria__puntos span.activo { width: 20px; background: #fff; }
.galeria__vacia img { width: 100%; }
.summary { display: flex; flex-direction: column; gap: 14px; }
.ficha__categoria { font-size: .72rem; letter-spacing: .26em; text-transform: uppercase; color: var(--malva); text-decoration: none; }
.product_title { font-size: clamp(2rem, 4vw, 2.8rem); margin: 0; }
.summary > .price { font-size: 1.35rem; }
.woocommerce-product-details__short-description { color: var(--texto); }
.woocommerce-product-details__short-description p:last-child { margin: 0; }
.summary form.cart { display: grid; gap: 16px; margin: 6px 0 0; }
.summary form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: stretch; }
.summary .single_add_to_cart_button { width: 100%; min-height: 54px; font-size: .85rem; }
table.variations { margin: 0; }
table.variations tr { display: block; margin-bottom: 18px; }
table.variations th, table.variations td { display: block; padding: 0; text-align: left; border: 0; }
table.variations th.label label { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; color: var(--tinta); }
table.variations .valor-elegido { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--texto); }
table.variations td.value { padding-top: 10px; }
.select-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.muestras { display: flex; flex-wrap: wrap; gap: 8px; }
.muestras[data-para="attribute_gift-card-amount"] { display: grid; grid-template-columns: repeat(5, 1fr); } /* importes de la tarjeta regalo en una línea */
.muestras[data-para="attribute_gift-card-amount"] .muestra { min-width: 0; padding: 0 6px; }
.muestra { min-width: 52px; height: 46px; padding: 0 14px; white-space: nowrap; border: 1px solid var(--linea); background: var(--blanco); font-size: .9rem; cursor: pointer; transition: all var(--transicion); }
.muestra:hover { border-color: var(--tinta); }
.muestra[aria-pressed="true"] { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.muestra.no-disponible { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.muestra-color { min-width: 0; width: 38px; height: 38px; padding: 0; border-radius: 50%; background: var(--color); border: 0; box-shadow: inset 0 0 0 1px rgba(43, 37, 33, .15), 0 0 0 2px var(--crema), 0 0 0 3px transparent; }
.muestra-color[aria-pressed="true"] { background: var(--color); box-shadow: inset 0 0 0 1px rgba(43, 37, 33, .15), 0 0 0 2px var(--crema), 0 0 0 3px var(--tinta); }
.muestra-color.no-disponible { text-decoration: none; opacity: .3; }
.limpiar-variaciones { font-size: .8rem; color: var(--gris); }
.woocommerce-variation-price .price { font-size: 1.2rem; }
.stock { font-size: .85rem; margin: 0; }
.stock.in-stock { color: var(--malva); font-weight: 500; }
.stock.out-of-stock { color: var(--error); }
.quantity { display: inline-flex; align-items: stretch; border: 1px solid var(--linea); background: var(--blanco); }
.quantity input.qty { width: 46px; min-height: 52px; border: 0; padding: 0; text-align: center; appearance: textfield; -moz-appearance: textfield; background: transparent; }
.quantity input.qty::-webkit-inner-spin-button, .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; }
.cantidad-boton { width: 38px; border: 0; background: none; font-size: 1.2rem; cursor: pointer; color: var(--tinta); }
.cantidad-boton:hover { background: var(--crema); }
.ficha__acciones { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; padding-top: 4px; }
.boton-favorito.con-texto { position: static; width: auto; height: auto; padding: 0; background: none; gap: 8px; font-size: .85rem; text-decoration: underline; text-underline-offset: 4px; }
.boton-favorito.con-texto::after { content: attr(data-texto-guardar); }
.boton-favorito.con-texto.activo::after { content: attr(data-texto-guardado); }
.boton-favorito.con-texto .icono { width: 18px; height: 18px; }
.desplegables { border-top: 1px solid var(--linea); margin-top: 6px; }
.desplegable { border-bottom: 1px solid var(--linea); }
.desplegable summary { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; cursor: pointer; list-style: none; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; color: var(--tinta); }
.desplegable summary::-webkit-details-marker { display: none; }
.desplegable summary .icono { width: 18px; transition: transform var(--transicion); }
.desplegable[open] summary .icono { transform: rotate(45deg); }
.desplegable__cuerpo { padding-bottom: 20px; font-size: .95rem; }
.desplegable__cuerpo table th, .desplegable__cuerpo table td { padding: 8px 0; border-bottom: 1px solid var(--linea); text-align: left; font-weight: 400; vertical-align: top; }
.desplegable__cuerpo table th { width: 40%; color: var(--gris); }
.desplegable__cuerpo table p { margin: 0; }
.ficha__ventajas { list-style: none; margin: 4px 0 0; padding: 18px; display: grid; gap: 12px; background: var(--blanco); border: 1px solid var(--linea); }
.ficha__ventajas li { display: flex; align-items: center; gap: 12px; font-size: .9rem; }
.ficha__ventajas .icono { color: var(--dorado); flex: none; }
.barra-compra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; align-items: center; gap: 12px; padding: 10px var(--margen) calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--linea); box-shadow: 0 -8px 24px -18px rgba(43, 37, 33, .4); transform: translateY(110%); transition: transform var(--transicion); }
.barra-compra.visible { transform: none; }
.barra-compra__info { flex: 1; min-width: 0; }
.barra-compra__info strong { display: block; font-weight: 500; font-size: .85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-compra .price { font-size: .9rem; }
.barra-compra .boton { padding-inline: 18px; }
@media (min-width: 1024px) { .barra-compra { display: none; } }
.ventana { border: 0; padding: 0; width: min(640px, 94vw); max-height: 86vh; background: var(--crema); box-shadow: var(--sombra); }
.ventana::backdrop { background: rgba(43, 37, 33, .5); }
.ventana__cabecera { display: flex; justify-content: space-between; align-items: center; padding: 14px 14px 14px 24px; border-bottom: 1px solid var(--linea); }
.ventana__cabecera h2 { margin: 0; font-size: 1.7rem; }
.ventana__cuerpo { padding: 24px; overflow: auto; }
.tabla-tallas { overflow-x: auto; }
.tabla-tallas table { min-width: 360px; background: var(--blanco); }
.tabla-tallas th, .tabla-tallas td { padding: 10px 12px; border: 1px solid var(--linea); text-align: center; font-size: .9rem; }
.tabla-tallas thead th { background: var(--rosa-palo); font-weight: 500; }
.nota-tallas { font-size: .85rem; color: var(--gris); margin: 12px 0 0; }

/* 12 · Cesta lateral y envío gratis -------------------------------------------------------------- */
.envio-gratis { padding: 14px 16px; background: var(--blanco); border: 1px solid var(--linea); margin-bottom: 18px; }
.envio-gratis p { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: .9rem; }
.envio-gratis .icono { color: var(--dorado); flex: none; }
.envio-gratis__barra { height: 4px; background: var(--linea); border-radius: 2px; overflow: hidden; }
.envio-gratis__barra span { display: block; height: 100%; background: linear-gradient(90deg, var(--rosa), var(--dorado)); transition: width .6s cubic-bezier(.2, .7, .3, 1); }
.envio-gratis.conseguido .envio-gratis__barra span { background: var(--oliva); }
.cesta-lateral__contenido { display: flex; flex-direction: column; min-height: 100%; }
.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 4px 14px; padding: 14px 32px 14px 0; border-bottom: 1px solid var(--linea); font-size: .9rem; transition: opacity var(--transicion); }
.woocommerce-mini-cart-item.quitando { opacity: .35; }
.woocommerce-mini-cart-item > a:not(.remove) { display: contents; text-decoration: none; font-weight: 500; }
.woocommerce-mini-cart-item img { grid-row: span 3; width: 76px; height: 100px; object-fit: cover; background: var(--rosa-palo); }
.woocommerce-mini-cart-item .variation { display: flex; gap: 4px; margin: 0; font-size: .8rem; color: var(--gris); }
.woocommerce-mini-cart-item .variation dd, .woocommerce-mini-cart-item .variation p { margin: 0; }
.woocommerce-mini-cart-item .quantity { border: 0; background: none; font-size: .85rem; color: var(--gris); display: block; }
.woocommerce-mini-cart-item .remove { position: absolute; top: 12px; right: 0; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-size: 1.3rem; color: var(--gris); border-radius: 50%; }
.woocommerce-mini-cart-item .remove:hover { background: var(--linea); color: var(--tinta); }
.woocommerce-mini-cart__total { display: flex; justify-content: space-between; align-items: baseline; margin: 20px 0 14px; padding-top: 4px; font-size: 1.05rem; }
.woocommerce-mini-cart__total strong { font-weight: 500; }
.woocommerce-mini-cart__buttons { display: grid; gap: 8px; justify-items: center; margin: 0; }
.woocommerce-mini-cart__empty-message { text-align: center; padding: 40px 0; color: var(--gris); }

/* 13 · Carrito, finalizar compra y mi cuenta ---------------------------------------------------- */
.password-input { position: relative; display: block; }
.show-password-input { position: absolute; top: 0; right: 0; width: 48px; height: 48px; padding: 0; border: 0; background: none !important; cursor: pointer; }
.show-password-input::after { content: ""; position: absolute; inset: 0; margin: auto; width: 20px; height: 20px; background: var(--gris); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; }
.show-password-input.display-password::after { background: var(--tinta); }
.woocommerce-cart-form { margin-bottom: 32px; }
table.shop_table { background: var(--blanco); border: 1px solid var(--linea); font-size: .95rem; }
table.shop_table th, table.shop_table td { padding: 14px 16px; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: middle; }
table.shop_table thead th { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--gris); }
table.cart img { width: 72px; height: 96px; object-fit: cover; }
table.cart .product-remove a { font-size: 1.4rem; text-decoration: none; color: var(--gris); }
table.cart .product-name a { text-decoration: none; font-weight: 500; }
table.cart td.actions { background: var(--crema); }
.coupon { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.coupon input { max-width: 240px; }
.coupon label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
td.actions > .button { float: right; background: transparent; color: var(--tinta); }
@media (max-width: 767px) {
	table.shop_table_responsive thead { display: none; }
	table.cart tr { display: grid; grid-template-columns: 80px 1fr; gap: 4px 14px; padding: 14px; border-bottom: 1px solid var(--linea); position: relative; }
	table.cart td { display: block; padding: 0; border: 0; text-align: left !important; }
	table.cart td::before { content: attr(data-title) ": "; font-size: .78rem; color: var(--gris); }
	.cart_totals table.shop_table_responsive th { display: none; }
	.cart_totals table.shop_table_responsive td { display: block; text-align: left; }
	.cart_totals table.shop_table_responsive td::before { content: attr(data-title); display: block; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gris); margin-bottom: 4px; }
	table.cart td.product-thumbnail { grid-row: span 4; }
	table.cart td.product-thumbnail::before, table.cart td.product-remove::before, table.cart td.product-name::before, table.cart td.actions::before { display: none; }
	table.cart td.product-remove { position: absolute; top: 8px; right: 10px; }
	table.cart td.actions { grid-column: 1 / -1; }
	td.actions > .button { float: none; width: 100%; margin-top: 8px; }
}
.cart-collaterals { display: grid; gap: 32px; }
@media (min-width: 900px) { .cart-collaterals { grid-template-columns: 1fr 420px; } .cart-collaterals .cart_totals { grid-column: 2; } }
.cart_totals h2 { font-size: 1.7rem; }
.cart_totals table.shop_table th { width: 40%; font-weight: 400; color: var(--gris); }
.wc-proceed-to-checkout { padding-top: 16px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 56px; }
#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
#shipping_method li { display: flex; gap: 8px; align-items: center; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: .85rem; color: var(--gris); }
.cart-empty.woocommerce-info { justify-content: center; font-size: 1.1rem; }
.return-to-shop { text-align: center; }
form.checkout { display: grid; gap: 32px; }
@media (min-width: 1000px) { form.checkout { grid-template-columns: minmax(0, 1fr) 440px; align-items: start; } #order_review_heading, #order_review { grid-column: 2; } #customer_details { grid-column: 1; grid-row: 1 / span 2; } #order_review_heading { margin: 0; } #order_review { position: sticky; top: calc(var(--alto-cabecera) + 20px); } }
#customer_details { display: grid; gap: 24px; }
#customer_details .col-1, #customer_details .col-2 { width: auto; float: none; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3, #order_review_heading { font-size: 1.6rem; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.form-row { margin: 0 0 16px; padding: 0; grid-column: 1 / -1; }
.form-row-first { grid-column: 1; }
.form-row-last { grid-column: 2; }
@media (max-width: 599px) { .form-row-first, .form-row-last { grid-column: 1 / -1; } }
.form-row label { display: block; margin-bottom: 6px; font-weight: 500; }
.form-row .required { color: var(--rosa-hondo); text-decoration: none; }
.form-row .optional { color: var(--gris); font-weight: 400; }
.woocommerce-invalid input { border-color: var(--error); }
.select2-container .select2-selection--single { height: 48px; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
#order_review { background: var(--blanco); border: 1px solid var(--linea); padding: 22px; }
#order_review table.shop_table { border: 0; background: transparent; }
#ship-to-different-address { font-family: var(--f-texto); font-size: 1rem; margin: 8px 0 16px; }
#ship-to-different-address label { display: flex; gap: 10px; align-items: center; cursor: pointer; }
#order_review table.shop_table th, #order_review table.shop_table td { padding: 10px 0; }
.woocommerce-checkout-review-order-table .order-total td, .woocommerce-checkout-review-order-table .order-total th, .cart_totals .order-total td { font-size: 1.15rem; font-weight: 500; color: var(--tinta); }
#payment ul.payment_methods { list-style: none; margin: 18px 0; padding: 0; display: grid; gap: 10px; }
#payment ul.payment_methods li { padding: 14px 16px; border: 1px solid var(--linea); background: var(--crema); }
#payment ul.payment_methods li label { font-weight: 500; font-size: .95rem; display: inline; }
#payment ul.payment_methods li img { display: inline-block; max-height: 26px; width: auto; vertical-align: middle; margin-left: 8px; }
#payment .payment_box { font-size: .88rem; color: var(--gris); padding-top: 8px; }
#payment .payment_box p:last-child { margin: 0; }
#place_order { width: 100%; min-height: 58px; }
.woocommerce-terms-and-conditions-wrapper, .woocommerce-privacy-policy-text { font-size: .8rem; color: var(--gris); }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { justify-content: flex-start; }
form.checkout_coupon, form.woocommerce-form-login { padding: 18px; border: 1px solid var(--linea); background: var(--blanco); margin-bottom: 24px; }
.woocommerce-order { max-width: 860px; margin-inline: auto; }
.woocommerce-order-overview { list-style: none; padding: 20px; margin: 0 0 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; background: var(--blanco); border: 1px solid var(--linea); }
.woocommerce-order-overview li { font-size: .8rem; color: var(--gris); text-transform: uppercase; letter-spacing: .1em; }
.woocommerce-order-overview strong { display: block; color: var(--tinta); font-size: 1rem; text-transform: none; letter-spacing: 0; font-weight: 500; }
.woocommerce-thankyou-order-received { font-family: var(--f-titulo); font-size: clamp(1.7rem, 4vw, 2.3rem); line-height: 1.15; text-align: center; color: var(--tinta); margin: 8px auto 32px; max-width: 640px; }
.woocommerce-thankyou-order-received .gracias-texto { display: block; margin-top: 12px; font-family: var(--f-texto); font-size: 1rem; line-height: 1.6; color: var(--gris); }
.comprobante-pago { background: var(--blanco); border: 1px solid var(--linea); padding: 18px 20px; margin: 0 0 32px; }
.comprobante-pago h2 { font-family: var(--f-texto); font-size: .8rem; font-weight: 500; text-transform: uppercase; letter-spacing: .1em; color: var(--gris); margin: 0 0 12px; }
.comprobante-pago dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 0; }
.comprobante-pago dt { font-size: .75rem; color: var(--gris); }
.comprobante-pago dd { margin: 0; color: var(--tinta); }
.woocommerce-account .woocommerce { display: grid; gap: 32px; }
@media (min-width: 900px) { .woocommerce-account .woocommerce { grid-template-columns: 240px 1fr; } }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--linea); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--linea); text-decoration: none; font-size: .95rem; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--malva); font-weight: 500; }
.woocommerce-account:not(.logged-in) .woocommerce { grid-template-columns: 1fr; max-width: 980px; margin-inline: auto; }
.u-columns.col2-set { display: grid; gap: 32px; }
@media (min-width: 800px) { .u-columns.col2-set { grid-template-columns: 1fr 1fr; } }
.u-columns .col-1, .u-columns .col-2 { width: auto; float: none; }
.woocommerce-form-login, .woocommerce-form-register { padding: 26px; background: var(--blanco); border: 1px solid var(--linea); }
.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; }
.woocommerce-Addresses { display: grid; gap: 24px; }
@media (min-width: 800px) { .woocommerce-Addresses { grid-template-columns: 1fr 1fr; } }

/* 14 · Páginas -------------------------------------------------------------------------------------- */
.pagina-cabecera { text-align: center; padding-block: clamp(36px, 7vw, 80px) clamp(24px, 4vw, 40px); max-width: 720px; margin-inline: auto; }
.pagina-cabecera p:not(.antetitulo) { color: var(--gris); font-size: 1.05rem; }
.entry-content { font-size: 1.02rem; }
.page .entry-content, .single-post .entry-content { max-width: 760px; margin-inline: auto; }
.woocommerce-cart .entry-content, .woocommerce-checkout .entry-content, .woocommerce-account .entry-content { max-width: none; }
:where(body:not(.woocommerce):not(.woocommerce-page)) .entry-content h2 { font-size: 1.9rem; margin-top: 1.6em; }
:where(body:not(.woocommerce):not(.woocommerce-page)) .entry-content h3 { margin-top: 1.4em; }
:where(body:not(.woocommerce):not(.woocommerce-page)) .entry-content :where(ul, ol) { padding-left: 1.2em; }
:where(body:not(.woocommerce):not(.woocommerce-page)) .entry-content li { margin-bottom: .4em; }
:where(body:not(.woocommerce):not(.woocommerce-page)) .entry-content a:not(.button):not(.boton) { color: var(--malva); }
.entry-content a.button, .entry-content a.boton { color: var(--blanco); }
.entry-content a.boton-borde, .entry-content a.boton-claro { color: var(--tinta); }
.contacto { display: grid; gap: 40px; padding-bottom: 20px; }
@media (min-width: 900px) { .contacto { grid-template-columns: 1fr 1.2fr; gap: 64px; } }
.contacto__datos { display: grid; gap: 12px; align-content: start; }
.tarjeta-contacto { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: var(--blanco); border: 1px solid var(--linea); text-decoration: none; transition: border-color var(--transicion), transform var(--transicion); }
a.tarjeta-contacto:hover { border-color: var(--tinta); color: inherit; transform: translateY(-2px); }
.tarjeta-contacto .icono { flex: none; width: 26px; height: 26px; color: var(--dorado); }
.tarjeta-contacto span { display: grid; gap: 2px; font-size: .95rem; }
.tarjeta-contacto strong { font-family: var(--f-titulo); font-size: 1.35rem; font-weight: 500; color: var(--tinta); }
.tarjeta-contacto em { font-style: normal; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--malva); margin-top: 4px; }
.tarjeta-contacto.destacada { background: var(--salvia); border-color: var(--salvia); }
.contacto__datos .redes { color: var(--tinta); margin-top: 8px; }
.contacto__formulario { background: var(--blanco); border: 1px solid var(--linea); padding: clamp(22px, 4vw, 40px); }
.formulario-contacto .campo { margin: 0 0 16px; }
.formulario-contacto label { display: block; margin-bottom: 6px; font-weight: 500; }
.campos-2 { display: grid; gap: 0 16px; }
@media (min-width: 600px) { .campos-2 { grid-template-columns: 1fr 1fr; } }
.campo-trampa { position: absolute; left: -9999px; }
.campo-check label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.campo-check input { margin-top: 4px; }
.historia { display: grid; gap: 32px; align-items: center; padding-bottom: clamp(40px, 6vw, 72px); }
@media (min-width: 900px) { .historia { grid-template-columns: 1fr 1fr; gap: 72px; } }
.historia__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.historia__texto { font-size: 1.1rem; }
.historia__texto p:first-child::first-letter { font-family: var(--f-titulo); font-size: 3.4em; float: left; line-height: .9; margin: .05em .08em 0 0; color: var(--malva); }
.valores { background: var(--rosa-palo); padding-block: clamp(40px, 7vw, 80px); margin-inline: calc(var(--margen) * -1); }
.valores ul { list-style: none; margin: 0 auto; display: grid; gap: 32px; text-align: center; }
@media (min-width: 800px) { .valores ul { grid-template-columns: repeat(3, 1fr); } }
.valores .icono { width: 34px; height: 34px; color: var(--malva); margin: 0 auto 12px; }
.valores h2 { font-size: 1.6rem; }
.valores p { color: var(--texto); max-width: 34ch; margin-inline: auto; }
.pagina-nosotros__cta, .pagina-favoritos__volver { text-align: center; padding-top: 40px; }
.vacio-mensaje, .cargando { text-align: center; color: var(--gris); padding: 40px 0; }
.error404 .site-main, .search-no-results .site-main { text-align: center; }
.busqueda-simple { display: flex; max-width: 520px; margin: 24px auto 0; }
.busqueda-simple input { border-right: 0; }
.busqueda-simple .boton { padding-inline: 18px; }
.pildoras-centradas { justify-content: center; flex-wrap: wrap; padding-bottom: 60px; }

/* 15 · Ventajas y pie --------------------------------------------------------------------------- */
.ventajas { background: var(--blanco); border-top: 1px solid var(--linea); }
.ventajas ul { list-style: none; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; padding-block: 34px; }
@media (min-width: 1000px) { .ventajas ul { grid-template-columns: repeat(4, 1fr); } }
.ventajas li { display: flex; gap: 14px; align-items: flex-start; }
.ventajas .icono { flex: none; width: 28px; height: 28px; color: var(--dorado); }
.ventajas strong { display: block; font-weight: 500; color: var(--tinta); font-size: .95rem; }
.ventajas span { font-size: .82rem; color: var(--gris); }
.site-footer .pie { display: grid; gap: 36px; padding-block: clamp(48px, 7vw, 80px) 36px; }
@media (min-width: 700px) { .site-footer .pie { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .site-footer .pie { grid-template-columns: 1.4fr 1fr 1fr 1.3fr; gap: 48px; } }
.site-footer a { color: #e9e1da; text-decoration: none; }
.site-footer a:hover { color: var(--rosa); }
.pie__logo .logo { height: 64px; width: auto; filter: brightness(1.05); background: var(--rosa-palo); padding: 10px 14px; border-radius: var(--radio); }
.pie__marca p { margin: 18px 0; max-width: 36ch; font-size: .92rem; color: #cfc4bb; }
.site-footer h2 { font-family: var(--f-texto); font-size: .75rem; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; color: var(--rosa); margin-bottom: 18px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.pie__columna li { margin-bottom: 10px; font-size: .92rem; }
.pie__visita .lista-iconos .icono { color: var(--rosa); }
.site-footer .redes a { color: #e9e1da; }
.pie__base { border-top: 1px solid rgba(255, 255, 255, .12); }
.pie__base .contenedor { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; padding-block: 20px calc(20px + env(safe-area-inset-bottom)); font-size: .8rem; color: #b8aca2; }
.pie__base p { margin: 0; }
.pagos { display: flex; flex-wrap: wrap; gap: 6px; }
.pago { padding: 4px 10px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 4px; font-size: .7rem; letter-spacing: .04em; color: #e9e1da; }
.site-info { display: none; }

/* 16 · WhatsApp, avisos emergentes y visor ----------------------------------------------------- */
.whatsapp-flotante { position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 45; width: 56px; height: 56px; border-radius: 50%; background: #25d366; color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px -8px rgba(0, 0, 0, .35); transform: scale(0); transition: transform .35s cubic-bezier(.3, 1.4, .5, 1); }
.whatsapp-flotante.visible { transform: scale(1); }
.whatsapp-flotante:hover { color: #fff; transform: scale(1.06); }
.whatsapp-flotante .icono { width: 30px; height: 30px; stroke-width: 1.6; }
.single-product .whatsapp-flotante { bottom: calc(86px + env(safe-area-inset-bottom)); }
@media (min-width: 1024px) { .single-product .whatsapp-flotante { bottom: 18px; } }
.tostada { position: fixed; left: 50%; bottom: 28px; z-index: 200; transform: translate(-50%, 20px); opacity: 0; background: var(--tinta); color: #fff; padding: 12px 22px; border-radius: 999px; font-size: .9rem; box-shadow: var(--sombra); transition: opacity var(--transicion), transform var(--transicion); pointer-events: none; }
.tostada.visible { opacity: 1; transform: translate(-50%, 0); }
.visor { border: 0; padding: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; background: #fff; }
.visor::backdrop { background: #fff; }
.visor img { width: 100%; height: 100%; object-fit: contain; }
.visor__cerrar { position: absolute; top: 12px; right: 12px; z-index: 2; background: #fff; }
.visor__flecha { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .9); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.visor__flecha.anterior { left: 12px; }
.visor__flecha.siguiente { right: 12px; }

/* 17 · Utilidades ------------------------------------------------------------------------------- */
/* En pantallas táctiles el «hover» se queda pegado al tocar: los botones claros y de borde mantienen su aspecto. */
@media (hover: none) {
	.boton-borde:hover, a.boton-borde:hover { background: transparent; color: var(--tinta); border-color: var(--tinta); }
	.boton-claro:hover, a.boton-claro:hover { background: var(--blanco); color: var(--tinta); }
	.boton:hover:not(.boton-borde):not(.boton-claro), .button:hover { background: var(--tinta); border-color: var(--tinta); color: var(--blanco); }
}
@media (max-width: 599px) {
	.visita .botones, .banner .botones { flex-direction: column; align-items: stretch; }
	.visita .botones .boton { width: 100%; }
}
.icono { flex: none; }
.woocommerce-store-notice, p.demo_store { background: var(--dorado); color: var(--tinta); }
.wc-block-components-notice-banner { border-radius: var(--radio); }
@media print { .avisos, .cabecera, .site-footer, .whatsapp-flotante, .barra-compra { display: none !important; } }

/* ==========================================================================
   18 · Ajustes tras la revisión (QA con Playwright + comentarios de Felipe, 2026-10-20)
   ========================================================================== */

/* Colores más legibles (contraste AA) */
:root { --rosa-hondo: #985a5e; --malva: #85625c; }

/* Botones propios: nunca el gris de GeneratePress al pasar el ratón, tocar o enfocar */
.boton-icono:hover, .boton-icono:focus { background: rgba(43, 37, 33, .06); color: var(--tinta); }
.boton-filtros:hover, .boton-filtros:focus, .boton-texto:hover, .boton-texto:focus, .enlace-icono:hover, .enlace-icono:focus { background: none; color: var(--tinta); }
.carrusel__flecha:hover, .carrusel__flecha:focus { background: var(--blanco); color: var(--tinta); }
.cantidad-boton:hover, .cantidad-boton:focus { background: var(--crema); color: var(--tinta); }
.muestra:hover, .muestra:focus { background: var(--blanco); color: var(--tinta); }
.muestra[aria-pressed="true"], .muestra[aria-pressed="true"]:hover, .muestra[aria-pressed="true"]:focus { background: var(--tinta); color: var(--blanco); }
.muestra-color:hover, .muestra-color:focus, .muestra-color[aria-pressed="true"]:hover { background: var(--color); }
.desplegar-submenu { padding: 0; }
.desplegar-submenu svg { flex: none; }
.boton-favorito:focus { color: var(--tinta); background: rgba(255, 255, 255, .9); }
.boton-favorito.activo:focus { color: var(--rosa-hondo); }
/* «Guardar en favoritos» de la ficha: texto siempre visible, el corazón se tiñe al pasar el ratón */
.boton-favorito.con-texto, .boton-favorito.con-texto:hover, .boton-favorito.con-texto:focus { background: none; color: var(--tinta); transform: none; box-shadow: none; backdrop-filter: none; text-decoration-color: var(--linea); }
.boton-favorito.con-texto:hover .icono, .boton-favorito.con-texto.activo .icono { color: var(--rosa-hondo); }
.boton-favorito.con-texto:hover { text-decoration-color: var(--rosa-hondo); }

/* Portada */
.portada > section { margin-bottom: 0; }
.hero::after { background: linear-gradient(90deg, rgba(43, 37, 33, .45) 0%, rgba(43, 37, 33, 0) 55%), linear-gradient(180deg, rgba(43, 37, 33, 0) 35%, rgba(43, 37, 33, .62) 100%); }
.hero__texto { text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }
.categoria__nombre { overflow-wrap: normal; font-size: clamp(1.3rem, 2.2vw, 2.1rem); }

/* Barra de avisos en móvil: una línea, sin cortes */
@media (max-width: 600px) { .avisos { letter-spacing: .06em; font-size: .66rem; } .aviso-barra { line-height: 1.3; } }

/* Tienda: barra sin desbordes a 360 px y pegada justo bajo la cabecera */
.barra-tienda { grid-template-columns: auto minmax(0, 1fr) auto; }
.barra-tienda__total { overflow: hidden; text-overflow: ellipsis; }
.orden select { padding-right: 28px; background-position: right 6px center; }
@media (max-width: 399px) { .barra-tienda__total { visibility: hidden; } }
@media (min-width: 1024px) { .barra-tienda { top: calc(var(--alto-cabecera) + 50px); } }
.filtro legend { padding: 16px 0 8px; }
.filtro { padding-bottom: 18px; }
.filtros__botones .boton { padding-inline: 12px; letter-spacing: .08em; }

/* Favoritos: el texto «Cargando…» no hereda el estado de carga de los botones */
.favoritos-cargando { text-align: center; color: var(--gris); padding: 40px 0; }

/* Contacto */
.campo-check input { width: 20px; height: 20px; accent-color: var(--tinta); flex: none; }

/* ---------- Ficha de producto ---------- */
@media (min-width: 1024px) { html { scroll-padding-top: calc(var(--alto-cabecera) + 70px); } }
/* Tableta: foto y datos en dos columnas */
@media (min-width: 768px) {
	.single-product div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
	.single-product div.product > .summary { position: sticky; top: calc(var(--alto-cabecera) + 24px); }
	.galeria { margin: 0; }
}
@media (min-width: 1024px) { .single-product div.product { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 56px; } }
/* Móvil: asoma la foto siguiente */
@media (max-width: 767px) { .galeria__fotos { gap: 4px; } .galeria__foto { flex-basis: 88%; } .galeria__foto:only-child { flex-basis: 100%; } }
/* Una sola foto en escritorio: sin la columna de miniaturas */
@media (min-width: 1024px) {
	.galeria:not(:has(.galeria__miniaturas)) { grid-template-columns: 1fr; }
	.galeria:not(:has(.galeria__miniaturas)) .galeria__fotos { grid-column: 1; }
	.galeria:not(:has(.galeria__miniaturas)) .etiquetas { left: 10px; }
	.galeria__miniaturas button { background: transparent; border: 0; border-bottom: 2px solid transparent; opacity: .55; }
	.galeria__miniaturas button.activo, .galeria__miniaturas button:hover { border: 0; border-bottom: 2px solid var(--dorado); opacity: 1; }
}
/* Sin bordes de tabla de GeneratePress en variaciones y detalles */
table.variations, table.variations th, table.variations td, .summary table, .summary th, .summary td { border: 0 !important; }
/* Cantidad oculta (productos de una sola unidad): sin recuadro vacío */
.quantity:has(> input[type="hidden"]) { display: none; }
.summary form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: flex; gap: 10px; }
.summary .single_add_to_cart_button { flex: 1; }
.single_add_to_cart_button:not(.disabled):hover { background: var(--malva); border-color: var(--malva); color: var(--blanco); }
.ficha__ahorro { margin: -6px 0 0; font-size: .85rem; color: var(--rosa-hondo); font-weight: 500; }
/* Opción única (una talla, «Talla única»): como texto, ya elegida */
.muestras--unica .muestra, .muestras--unica .muestra[aria-pressed="true"] { min-width: 0; height: auto; padding: 0; border: 0; background: none; color: var(--texto); font-size: 1rem; cursor: default; }
table.variations tr:has(.muestras--unica) .reset_variations { display: none !important; }
table.variations tr:has(.muestras--unica) td.value { padding-top: 4px; }
/* Falta elegir: se resalta el grupo */
.muestras.falta .muestra:not(.muestra-color) { border-color: var(--error); }
.muestras.falta .muestra-color { box-shadow: inset 0 0 0 1px rgba(43, 37, 33, .15), 0 0 0 2px var(--crema), 0 0 0 3px var(--error); }
.muestras.falta { animation: sacudir .4s ease; }
.muestras.falta::after { content: attr(data-elige); flex-basis: 100%; font-size: .8rem; color: var(--error); }
@keyframes sacudir { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
.reset_variations { display: inline-block; margin-top: 8px; font-size: .8rem; color: var(--gris); }

/* Desplegables (Descripción, Detalles, Envíos) con «+» y «−» */
.desplegable summary { padding: 20px 0; font-size: .76rem; letter-spacing: .2em; }
.desplegable summary:hover { color: var(--malva); }
.desplegable__signo { display: inline-flex; width: 18px; height: 18px; }
.desplegable__signo .icono { width: 18px; height: 18px; }
.desplegable .signo-menos, .desplegable[open] .signo-mas { display: none; }
.desplegable[open] .signo-menos { display: block; }
.desplegable[open] summary .icono { transform: none; }
.desplegable__cuerpo { padding-bottom: 24px; color: var(--texto); line-height: 1.7; }
/* «Detalles»: lista elegante de características */
.desplegable__cuerpo table.woocommerce-product-attributes, .desplegable__cuerpo table.woocommerce-product-attributes tbody { display: block; background: none; border: 0; }
.desplegable__cuerpo .woocommerce-product-attributes-item { display: grid; grid-template-columns: 38% 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--linea); }
.desplegable__cuerpo .woocommerce-product-attributes-item:last-child { border-bottom: 0; }
.desplegable__cuerpo table.woocommerce-product-attributes th, .desplegable__cuerpo table.woocommerce-product-attributes td { display: block; width: auto; padding: 0; border: 0 !important; background: none; }
.desplegable__cuerpo table.woocommerce-product-attributes th { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; color: var(--gris); padding-top: 3px; }
.desplegable__cuerpo table.woocommerce-product-attributes td, .desplegable__cuerpo table.woocommerce-product-attributes td a { color: var(--tinta); text-decoration: none; }
/* Ventajas de la ficha: tres iconos en fila, discretos */
.ficha__ventajas { grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 18px 8px; background: var(--rosa-palo); border: 0; border-radius: var(--radio-grande); text-align: center; }
.ficha__ventajas li { flex-direction: column; gap: 6px; font-size: .74rem; line-height: 1.3; color: var(--texto); }
.ficha__ventajas .icono { width: 22px; height: 22px; color: var(--malva); }

/* Visor: fondo crema, botones bien visibles, se cierra tocando fuera de la foto */
.visor { background: var(--crema); }
.visor::backdrop { background: var(--crema); }
.visor img { position: absolute; inset: 56px 72px; width: calc(100% - 144px); height: calc(100% - 112px); object-fit: contain; }
@media (max-width: 767px) { .visor img { inset: 56px 0; width: 100%; } .visor__flecha { top: auto; bottom: 18px; transform: none; } }
.visor__boton { position: absolute; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: var(--blanco); color: var(--tinta); box-shadow: 0 4px 16px -4px rgba(43, 37, 33, .3); cursor: pointer; }
.visor__boton svg { flex: none; }
.visor__boton:hover, .visor__boton:focus { background: var(--tinta); color: var(--blanco); }
.visor__cerrar { top: 14px; right: 14px; }
.visor__flecha.anterior { left: 14px; }
.visor__flecha.siguiente { right: 14px; }
.visor__contador { position: absolute; left: 0; right: 0; bottom: 24px; margin: 0; text-align: center; font-size: .8rem; letter-spacing: .14em; color: var(--gris); pointer-events: none; }

/* Móvil: WhatsApp flotante fuera de la ficha (ya tiene su enlace) y nada tapado por la barra de compra */
@media (max-width: 1023px) {
	.single-product .whatsapp-flotante { display: none; }
	.single-product .pie__base .contenedor { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
	body.con-barra-compra .tostada { bottom: calc(96px + env(safe-area-inset-bottom)); }
}

/* ---------- Pie en móvil: dos columnas ---------- */
@media (max-width: 699px) {
	.site-footer .pie { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
	.site-footer .pie__marca, .site-footer .pie__visita { grid-column: 1 / -1; }
	.pie__columna li { font-size: .88rem; }
	.pie__base .contenedor { justify-content: center; text-align: center; }
}

/* Talla/opción única: solo la etiqueta «Talla: 36» */
table.variations tr:has(.muestras--unica) td.value { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
table.variations tr:has(.muestras--unica) { margin-bottom: 10px; }

/* ---------- Finalizar compra: resumen del pedido y métodos de pago ---------- */
#order_review_heading { font-size: 1.9rem; }
#order_review { border-radius: var(--radio-grande); padding: clamp(18px, 3vw, 28px); }
#order_review table.shop_table, #order_review table.shop_table th, #order_review table.shop_table td { border: 0 !important; background: none; }
#order_review table.shop_table thead { display: none; }
#order_review table.shop_table td, #order_review table.shop_table th { padding: 10px 0; vertical-align: middle; }
#order_review .cart_item td { padding: 12px 0; border-bottom: 1px solid var(--linea) !important; }
#order_review .product-total, #order_review tfoot td { text-align: right; white-space: nowrap; }
#order_review .product-quantity { font-weight: 400; color: var(--gris); font-size: .85rem; }
.resumen-producto { display: inline-flex; align-items: center; gap: 12px; vertical-align: middle; }
.resumen-producto__foto { width: 52px; height: 68px; object-fit: cover; border-radius: var(--radio); background: var(--rosa-palo); flex: none; }
.resumen-producto__nombre { font-weight: 500; color: var(--tinta); }
#order_review tfoot th { font-weight: 400; color: var(--gris); text-align: left; }
#order_review tfoot tr:first-child th, #order_review tfoot tr:first-child td { padding-top: 16px; }
#order_review .order-total th, #order_review .order-total td { border-top: 1px solid var(--linea) !important; padding-top: 16px; font-size: 1.2rem; color: var(--tinta); font-weight: 500; }
#order_review .order-total .includes_tax { display: block; font-size: .75rem; font-weight: 400; color: var(--gris); }
/* Envío dentro del resumen: opciones como tarjetas */
#order_review tr.woocommerce-shipping-totals th { vertical-align: top; padding-top: 18px; }
#order_review tr.woocommerce-shipping-totals td { text-align: left; }
#shipping_method li { position: relative; padding: 10px 12px; border: 1px solid var(--linea); border-radius: var(--radio); background: var(--crema); font-size: .9rem; white-space: normal; }
#shipping_method li:has(input:checked) { border-color: var(--tinta); background: var(--blanco); }
#shipping_method input[type="radio"], #payment input[type="radio"], .woocommerce-form__input-checkbox, #ship-to-different-address-checkbox { accent-color: var(--tinta); width: 18px; height: 18px; margin: 0 8px 0 0; flex: none; vertical-align: middle; }
#shipping_method label { cursor: pointer; }
/* Métodos de pago: tarjetas seleccionables */
#payment { background: none; }
#payment ul.payment_methods { margin: 22px 0 18px; gap: 10px; }
#payment ul.payment_methods li { display: block; padding: 16px 18px; border: 1px solid var(--linea); border-radius: var(--radio-grande); background: var(--crema); transition: border-color var(--transicion), background var(--transicion), box-shadow var(--transicion); }
#payment ul.payment_methods li:has(input:checked) { border-color: var(--tinta); background: var(--blanco); box-shadow: 0 6px 18px -12px rgba(43, 37, 33, .4); }
#payment ul.payment_methods li > label { display: inline-flex !important; align-items: center; gap: 10px; flex-wrap: wrap; width: calc(100% - 30px); cursor: pointer; font-weight: 500; color: var(--tinta); }
#payment ul.payment_methods li img { max-height: 20px; margin-left: auto !important; }
#payment li.payment_method_redsys img { display: none; }
#payment li.payment_method_redsys > label::after { content: "Visa · Mastercard"; margin-left: auto; font-size: .72rem; font-weight: 500; letter-spacing: .06em; color: var(--gris); border: 1px solid var(--linea); border-radius: 4px; padding: 2px 8px; background: var(--blanco); }
#payment .payment_box { margin: 10px 0 0 28px; padding: 0; background: none; font-size: .85rem; color: var(--gris); }
#payment .payment_box::before { display: none; }
#payment .place-order { padding: 0; margin: 0; }
.woocommerce-privacy-policy-text { font-size: .78rem; line-height: 1.5; color: var(--gris); margin-bottom: 12px; }
.woocommerce-terms-and-conditions-wrapper .form-row { margin-bottom: 18px; }
.woocommerce-terms-and-conditions-wrapper label { display: flex !important; align-items: flex-start; gap: 4px; font-size: .88rem; font-weight: 400; line-height: 1.5; }
#place_order { border-radius: var(--radio); font-size: .85rem; letter-spacing: .16em; }
#place_order:hover { background: var(--malva); border-color: var(--malva); }
@media (max-width: 999px) { #order_review_heading { margin-top: 8px; } }
/* Finalizar compra: ajustes finos */
.resumen-producto__nombre { display: grid; gap: 2px; line-height: 1.35; }
.resumen-producto__cantidad { font-weight: 400; font-size: .8rem; color: var(--gris); }
#order_review tr.woocommerce-shipping-totals { display: grid; gap: 8px; padding: 10px 0 4px; }
#order_review tr.woocommerce-shipping-totals th, #order_review tr.woocommerce-shipping-totals td { display: block; padding: 0; }
#shipping_method li { display: flex; align-items: center; }
#shipping_method li label { flex: 1; }
#payment ul.payment_methods li { display: flex !important; flex-wrap: wrap; align-items: center; }
#payment ul.payment_methods li > input[type="radio"] { margin: 0 12px 0 0; }
#payment ul.payment_methods li > label { flex: 1; width: auto; }
#payment ul.payment_methods li .payment_box { flex-basis: 100%; margin: 8px 0 0 30px; }
#payment ul.payment_methods li.payment_method_redsys img { display: none !important; }
#shipping_method { width: 100%; }
/* Visor y carruseles: botones redondos con el rosa del logo al pasar el ratón (en lugar de negro) */
.visor__boton { transition: background var(--transicion), color var(--transicion), transform var(--transicion), box-shadow var(--transicion); }
.visor__boton:hover, .visor__boton:focus-visible, .carrusel__flecha:hover { background: var(--rosa); color: var(--malva); transform: scale(1.07); box-shadow: 0 8px 22px -8px rgba(185, 120, 123, .55); }
.visor__boton:focus:not(:focus-visible):not(:hover) { background: var(--blanco); color: var(--tinta); transform: none; }
.visor__flecha:hover, .visor__flecha:focus-visible { transform: translateY(-50%) scale(1.07); }
@media (max-width: 767px) { .visor__flecha:hover, .visor__flecha:focus-visible { transform: scale(1.07); } }
@media (hover: none) { .visor__boton:hover { background: var(--blanco); color: var(--tinta); transform: none; box-shadow: 0 4px 16px -4px rgba(43, 37, 33, .3); } .visor__flecha:hover { transform: translateY(-50%); } }
@media (hover: none) and (max-width: 767px) { .visor__flecha:hover { transform: none; } }

/* ---------- Carrito, pago y cuenta: ajustes de la revisión ---------- */
/* Pago en escritorio: los avisos de error ocupan las dos columnas y no descolocan el resumen */
@media (min-width: 1000px) {
	form.checkout { grid-template-rows: auto auto 1fr; grid-template-areas: "avisos avisos" "datos titulo" "datos pedido"; row-gap: 0; }
	form.checkout > .woocommerce-NoticeGroup { grid-area: avisos; margin-bottom: 24px; }
	#customer_details { grid-area: datos; }
	#order_review_heading { grid-area: titulo; margin: 0 0 16px; }
	#order_review { grid-area: pedido; }
}
.woocommerce-NoticeGroup, .woocommerce-notices-wrapper, [role="alert"], #coupon_code { scroll-margin-top: calc(var(--alto-cabecera) + 70px); }
/* Errores con estilo */
.coupon-error-notice { flex-basis: 100%; display: block; margin: 6px 0 0; color: var(--error); font-size: .85rem; }
.checkout-inline-error-message { margin: 6px 0 0; color: var(--error); font-size: .82rem; }
#coupon_code.has-error, .woocommerce-invalid input, .woocommerce-invalid .select2-selection { border-color: var(--error) !important; }
form.checkout_coupon .form-row { margin: 0; }
form.checkout_coupon .form-row-first { display: inline-block; width: min(320px, 100%); margin: 0 8px 8px 0; vertical-align: top; }
form.checkout_coupon .form-row-last { display: inline-block; vertical-align: top; }
/* Campos y botones enlace sin los grises de GeneratePress */
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, textarea:focus { background: var(--blanco); color: var(--tinta); }
.buscador__form input[type="search"], .buscador__form input[type="search"]:focus { background: transparent; box-shadow: none; -webkit-appearance: none; appearance: none; border-radius: 0; } /* el buscador va sobre el fondo crema, sin recuadro */
a.button:hover, a.button:focus-visible { background: var(--malva); border-color: var(--malva); color: var(--blanco); }
/* Desplegable de provincia (select2) con los colores de la marca */
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--tinta); color: var(--blanco); }
.select2-container--default .select2-results__option[aria-selected="true"], .select2-container--default .select2-results__option[data-selected="true"] { background: var(--rosa-palo); color: var(--tinta); }
.select2-dropdown { border-color: var(--linea); }
/* Cesta lateral: total y botones siempre a la vista */
#cesta .panel__cuerpo { padding-bottom: 0; }
.woocommerce-mini-cart__total, .woocommerce-mini-cart__buttons { position: sticky; background: var(--crema); z-index: 1; }
.woocommerce-mini-cart__total { bottom: 112px; margin-bottom: 0; padding-block: 14px; border-top: 1px solid var(--linea); }
.woocommerce-mini-cart__buttons { bottom: 0; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
.cesta-lateral__contenido > .boton-bloque { margin-top: 8px; }
/* Mi cuenta: formularios estrechos y recuperar contraseña con el mismo aspecto */
.woocommerce-account:not(.logged-in) .woocommerce { max-width: 480px; }
form.lost_reset_password { max-width: 480px; margin-inline: auto; padding: 26px; background: var(--blanco); border: 1px solid var(--linea); }
.woocommerce-account:not(.logged-in) .woocommerce::after { content: "¿Primera compra? No necesitas cuenta: puedes comprar como invitada."; display: block; margin-top: 18px; text-align: center; font-size: .9rem; color: var(--gris); }

/* Cesta lateral: sin doble línea entre el último producto y el total */
.woocommerce-mini-cart-item:last-child { border-bottom: 0; }

/* Safari del iPhone: ningún campo por debajo de 16 px en el móvil (si no, al tocarlo amplía la página y se queda descuadrada).
   Con !important porque algunos campos (orden de la tienda, precios) tienen su propio tamaño más pequeño. */
@media (max-width: 1023px) {
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="search"]), select, textarea { font-size: 16px !important; }
}

/* Gama de tallas bajo el precio de las tarjetas («Tallas 36–41», «Tallas S · M · L») */
.tarjeta__tallas { font-size: .76rem; color: var(--gris); letter-spacing: .02em; }

/* Firma del diseño de la web en el pie (Felipe, 2026-10-22): visible pero discreta */
.pie__autor { font-size: .86rem; letter-spacing: .02em; color: #ece4dd; }
.pie__autor a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.pie__autor a:hover { opacity: .8; }
