/*
Theme Name: ILM — Ideas Locas y Miradas
Theme URI: https://ideaslocas.com.ar
Author: Ideas Locas y Miradas
Description: Theme de ecommerce para Ideas Locas y Miradas: kiosco, despensa y librería con catálogo filtrable, carrito, puntos, retiro o delivery e impresiones online.
Version: 4.0.4
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: ilm
*/

/* ═══ Tokens ═══════════════════════════════════════════ */
:root {
	--v: #2E0F52;          /* violeta institucional */
	--v2: #7C3FE4;         /* violeta secundario / acción */
	--v2-h: #6A2FD0;
	--lila: #F0EAFC;
	--am: #FFC531;
	--am-h: #F5B400;
	--tx: #1B1523;
	--tx2: #625B70;
	--bd: #E4E0EB;
	--bd2: #D5D0DE;
	--fondo: #F6F5F9;
	--sup: #FFFFFF;
	--ok: #0F7A60;
	--alerta: #B45309;
	--wa: #0B7A3E;
	--r-sm: 6px; --r: 10px; --r-lg: 14px;
	--sombra: 0 1px 2px rgba(27,21,35,.06);
	--sombra-hover: 0 6px 16px rgba(27,21,35,.08);
	--t: .15s ease;
	--ancho: 1280px;
	--acento: var(--v2);
	--acento-suave: var(--lila);
}
.ilm-acento-kiosco   { --acento: #C2410C; --acento-suave: #FDEEE6; }
.ilm-acento-despensa { --acento: #0F7A60; --acento-suave: #E4F4EE; }
.ilm-acento-libreria { --acento: #1D5FD1; --acento-suave: #E6EEFC; }

/* ═══ Base ═════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fondo); color: var(--tx); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--v2); }
h1, h2, h3, h4 { color: var(--v); margin: 0; }
p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
.price, .amount, .ilm-precio { font-variant-numeric: tabular-nums; }
.ilm-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ilm-saltar { position: absolute; left: -9999px; z-index: 1000; padding: .75rem 1rem; background: var(--v); color: #fff; }
.ilm-saltar:focus { left: .5rem; top: .5rem; }
:where(a, button, input, select, textarea, summary, label):focus-visible { outline: 2px solid var(--v2); outline-offset: 2px; }
html.ilm-sin-scroll { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

.ilm-contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: 1rem; }
@media (min-width: 782px) { .ilm-contenedor { padding-inline: 1.5rem; } }
.ilm-main { min-height: 50vh; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Íconos: el tamaño lo define el contexto; siempre bloque para centrar sin ajustes de línea. */
.ilm-i { width: 20px; height: 20px; flex: none; display: block; }

/* ═══ Botones ══════════════════════════════════════════ */
.ilm-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 44px; padding: .625rem 1.125rem; border: 1px solid transparent; border-radius: var(--r);
	font-size: .9375rem; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: background-color var(--t), border-color var(--t), color var(--t);
}
.ilm-btn .ilm-i { width: 18px; height: 18px; }
.ilm-btn--grande { min-height: 50px; padding-inline: 1.5rem; font-size: 1rem; }
.ilm-btn--bloque { width: 100%; }
.ilm-btn--primario { background: var(--v2); color: #fff; }
.ilm-btn--primario:hover { background: var(--v2-h); color: #fff; }
.ilm-btn--secundario { background: var(--sup); color: var(--v); border-color: var(--bd2); }
.ilm-btn--secundario:hover { border-color: var(--v2); color: var(--v2); }
.ilm-btn--amarillo { background: var(--am); color: var(--tx); }
.ilm-btn--amarillo:hover { background: var(--am-h); color: var(--tx); }
.ilm-btn--contorno-claro { background: transparent; color: #fff; border-color: rgba(255,255,255,.45); }
.ilm-btn--contorno-claro:hover { border-color: #fff; color: #fff; }
.ilm-btn--whatsapp { background: var(--wa); color: #fff; }
.ilm-btn--whatsapp:hover { background: #096834; color: #fff; }
.ilm-btn--texto { background: none; color: var(--tx2); padding-inline: .5rem; }
.ilm-btn--texto:hover { color: var(--v2); }
.ilm-btn[disabled], .ilm-btn:disabled { background: var(--bd); color: var(--tx2); cursor: not-allowed; border-color: transparent; }

.ilm-btn-icono {
	display: inline-flex; align-items: center; justify-content: center; flex: none;
	width: 40px; height: 40px; padding: 0; border: 0; border-radius: var(--r);
	background: transparent; color: var(--tx); cursor: pointer; transition: background-color var(--t), color var(--t);
}
.ilm-btn-icono:hover { background: var(--fondo); color: var(--v2); }

.ilm-enlace-flecha { display: inline-flex; align-items: center; gap: .375rem; font-weight: 700; font-size: .9375rem; color: var(--v2); text-decoration: none; white-space: nowrap; }
.ilm-enlace-flecha .ilm-i { width: 16px; height: 16px; transition: transform var(--t); }
.ilm-enlace-flecha:hover .ilm-i { transform: translateX(2px); }
.ilm-enlace-flecha--atras:hover .ilm-i { transform: translateX(-2px); }

.ilm-badge {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px;
	background: var(--am); color: var(--tx); font-size: .75rem; font-weight: 800; line-height: 1;
}
.ilm-badge[hidden] { display: none; }
.ilm-badge--oscuro { background: var(--v); color: #fff; }

.ilm-cuadro-ico { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: var(--r); background: var(--lila); color: var(--v2); }
.ilm-cuadro-ico .ilm-i { width: 22px; height: 22px; }
.ilm-cuadro-ico--amarillo { background: #FFF4D1; color: #8A5A00; }
.ilm-cuadro-ico--grande { width: 64px; height: 64px; border-radius: var(--r-lg); }
.ilm-cuadro-ico--grande .ilm-i { width: 30px; height: 30px; }

.ilm-rotulo { display: inline-flex; align-items: center; gap: .375rem; margin-bottom: .5rem; font-size: .8125rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--v2); }
.ilm-rotulo .ilm-i { width: 16px; height: 16px; }

.ilm-alerta { display: flex; gap: .625rem; align-items: flex-start; padding: .875rem 1rem; margin-bottom: 1.25rem; background: #FFF8E6; border: 1px solid #F5DC9A; border-radius: var(--r); color: #6B4700; font-size: .9375rem; }
.ilm-alerta .ilm-i { width: 18px; height: 18px; margin-top: 2px; }

/* Imagen o panel vacío que reserva su lugar. */
.ilm-foto { position: relative; overflow: hidden; background: var(--acento-suave); }
.ilm-foto picture { display: contents; }
.ilm-foto__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ilm-foto__vacia { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; color: var(--acento); }
.ilm-foto__vacia .ilm-i { width: 40px; height: 40px; opacity: .55; stroke-width: 1.5; }
.ilm-foto__aviso { max-width: 90%; padding: .25rem .5rem; border-radius: var(--r-sm); background: rgba(255,255,255,.9); color: var(--tx2); font-size: .75rem; font-weight: 600; text-align: center; }

/* Precio: amarillo institucional, sin efectos. */
.ilm-precio { display: inline-flex; align-items: baseline; gap: .25rem; padding: .125rem .5rem; border-radius: var(--r-sm); background: var(--am); color: var(--tx); font-weight: 800; font-size: 1.1875rem; line-height: 1.35; letter-spacing: -.01em; white-space: nowrap; }
.ilm-precio small { font-size: .75rem; font-weight: 700; }

/* ═══ Cabecera ═════════════════════════════════════════
 * Sin JS: sticky. Con JS: fija, dentro de un contenedor que conserva la altura
 * completa para que compactarla no desplace el contenido. */
.ilm-cab-wrap { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 60; }
.ilm-cab-js .ilm-cab-wrap { position: relative; top: auto; }
.ilm-cab-js .ilm-cab-fijo { position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 60; }

.ilm-anuncio { background: var(--v2); color: #fff; font-size: .8125rem; font-weight: 700; overflow: hidden; transition: margin-top .2s ease; }
.ilm-anuncio__lista { display: flex; justify-content: center; align-items: center; min-height: 32px; margin: 0; padding: 0 1rem; list-style: none; }
.ilm-anuncio__lista li { display: inline-flex; align-items: center; gap: .5rem; text-align: center; }
.ilm-anuncio__lista li[hidden] { display: none; }
.ilm-anuncio .ilm-i { width: 16px; height: 16px; color: var(--am); }

.ilm-cab { background: var(--v); color: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.08); }
.ilm-cab__fila { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem 2rem; min-height: 72px; }
.ilm-cab__menu { display: none; color: #fff; }
.ilm-cab__menu:hover { background: rgba(255,255,255,.1); color: #fff; }
.ilm-logo, .custom-logo-link { display: block; flex: none; }
.ilm-logo img, .custom-logo { height: 46px; width: auto; }

.ilm-busca { position: relative; display: flex; align-items: center; height: 46px; border-radius: var(--r); background: var(--sup); color: var(--tx); overflow: hidden; }
.ilm-busca:focus-within { box-shadow: 0 0 0 3px var(--am); }
.ilm-busca__rubro { flex: none; height: 100%; max-width: 128px; padding: 0 2rem 0 .875rem; border: 0; border-right: 1px solid var(--bd); background: var(--fondo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23625B70' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center; font-size: .875rem; font-weight: 600; appearance: none; cursor: pointer; }
.ilm-busca__rubro:focus { outline: none; }
.ilm-busca__lupa { display: flex; padding-left: .875rem; color: var(--tx2); }
.ilm-busca__campo { flex: 1; min-width: 0; height: 100%; padding: 0 .75rem; border: 0; background: transparent; font-size: 16px; outline: none; }
.ilm-busca__campo::-webkit-search-cancel-button { display: none; }
.ilm-busca__lista { display: inline-flex; align-items: center; gap: .375rem; flex: none; margin-right: .375rem; padding: .5rem .75rem; border-radius: var(--r-sm); color: var(--v); font-size: .875rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ilm-busca__lista:hover { background: var(--lila); color: var(--v); }
.ilm-busca__lista .ilm-i { width: 18px; height: 18px; color: var(--v2); }

.ilm-acciones { display: flex; align-items: center; gap: .25rem; }
.ilm-accion { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 .75rem; border-radius: var(--r); color: #fff; font-size: .9375rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.ilm-accion:hover { background: rgba(255,255,255,.1); color: #fff; }
.ilm-accion .ilm-i { width: 22px; height: 22px; }
.ilm-accion--puntos .ilm-i { color: var(--am); fill: var(--am); }
.ilm-accion__ico { position: relative; display: flex; }
.ilm-accion__ico .ilm-badge { position: absolute; top: -8px; right: -10px; height: 20px; min-width: 20px; border: 2px solid var(--v); }

.ilm-cab__nav { display: flex; align-items: center; gap: 1rem; min-height: 52px; transition: margin-top .2s ease, opacity .2s ease; }
.ilm-cats { position: relative; flex: none; }
.ilm-cats__btn { display: inline-flex; align-items: center; gap: .5rem; height: 36px; padding: 0 .875rem 0 .625rem; border: 0; border-radius: var(--r); background: transparent; color: #fff; font-size: .9375rem; font-weight: 700; cursor: pointer; }
.ilm-cats__btn:hover, .ilm-cats__btn[aria-expanded="true"] { background: rgba(255,255,255,.12); }
.ilm-cats__panel { position: absolute; top: calc(100% + 8px); left: 0; z-index: 80; width: 300px; max-height: 70vh; overflow-y: auto; padding: .5rem; border-radius: var(--r-lg); background: var(--sup); color: var(--tx); box-shadow: 0 16px 40px rgba(27,21,35,.18); }
.ilm-cats__panel[hidden] { display: none; }

.ilm-acordeon summary { display: flex; align-items: center; gap: .625rem; padding: .5rem .5rem; border-radius: var(--r); color: var(--v); font-weight: 800; cursor: pointer; list-style: none; }
.ilm-acordeon summary::-webkit-details-marker { display: none; }
.ilm-acordeon summary:hover { background: var(--fondo); }
.ilm-acordeon[open] summary { background: var(--acento-suave); }
.ilm-acordeon__ico { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--r-sm); background: var(--acento-suave); color: var(--acento); }
.ilm-acordeon__ico .ilm-i { width: 18px; height: 18px; }
.ilm-acordeon__flecha { margin-left: auto; width: 18px !important; height: 18px !important; color: var(--tx2); transition: transform var(--t); }
.ilm-acordeon[open] .ilm-acordeon__flecha { transform: rotate(180deg); }
.ilm-acordeon ul { margin: .25rem 0 .5rem; padding: 0 0 0 3rem; list-style: none; }
.ilm-acordeon li a { display: block; padding: .375rem .5rem; border-radius: var(--r-sm); color: var(--tx); font-size: .9375rem; text-decoration: none; }
.ilm-acordeon li a:hover { background: var(--fondo); color: var(--v2); }
.ilm-acordeon__todo { font-weight: 700; color: var(--acento) !important; }

.ilm-pildoras { display: flex; align-items: center; gap: .5rem; flex: 1; min-width: 0; margin: 0; padding: .375rem 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.ilm-pildoras::-webkit-scrollbar { display: none; }
.ilm-pildora { display: inline-flex; align-items: center; gap: .375rem; flex: none; height: 34px; padding: 0 1rem; border-radius: 999px; background: var(--sup); color: var(--v); font-size: .875rem; font-weight: 700; text-decoration: none; white-space: nowrap; transition: background-color var(--t), color var(--t); }
.ilm-pildora:hover { background: var(--lila); color: var(--v); }
.ilm-pildora .ilm-i { width: 16px; height: 16px; }
.ilm-pildora--rubro .ilm-i { color: var(--acento); }
.ilm-pildora--oferta { background: var(--am); color: var(--tx); }
.ilm-pildora--oferta:hover { background: var(--am-h); color: var(--tx); }
.ilm-cab__entrega { display: inline-flex; align-items: center; gap: .375rem; flex: none; color: rgba(255,255,255,.9); font-size: .875rem; font-weight: 600; text-decoration: none; }
.ilm-cab__entrega:hover { color: #fff; text-decoration: underline; }
.ilm-cab__entrega .ilm-i { width: 16px; height: 16px; color: var(--am); }

/* Compacta: se ocultan la franja y la segunda fila. */
.ilm-compacto .ilm-anuncio { margin-top: -32px; }
.ilm-compacto .ilm-cab__nav { margin-top: -52px; opacity: 0; pointer-events: none; }
.ilm-compacto .ilm-cab { overflow: hidden; }

@media (max-width: 1023px) {
	.ilm-cab__fila { grid-template-columns: auto 1fr auto; min-height: 58px; padding-block: .375rem; gap: .25rem .5rem; }
	.ilm-cab__menu { display: inline-flex; }
	.ilm-logo img, .custom-logo { height: 36px; }
	.ilm-busca { grid-column: 1 / -1; grid-row: 2; height: 44px; margin-bottom: .5rem; }
	.ilm-busca__rubro { display: none; }
	.ilm-busca__lista span { display: none; }
	.ilm-busca__lista { padding: .5rem; }
	.ilm-accion { padding: 0 .5rem; }
	.ilm-accion__txt, .ilm-accion--cuenta { display: none; }
	.ilm-cats, .ilm-cab__entrega { display: none; }
	.ilm-cab__nav { min-height: 48px; padding-inline: 0; }
	.ilm-pildoras { padding: .25rem 1rem .5rem; }
	.ilm-compacto .ilm-cab__nav { margin-top: -48px; }
}

/* Menú lateral móvil */
.ilm-drawer { position: fixed; inset: 0; z-index: 100; }
.ilm-drawer[hidden] { display: none; }
.ilm-drawer__fondo { position: absolute; inset: 0; background: rgba(27,21,35,.45); opacity: 0; transition: opacity .2s; }
.ilm-drawer__panel { position: absolute; top: 0; bottom: 0; left: 0; width: min(88vw, 360px); display: flex; flex-direction: column; background: var(--sup); transform: translateX(-100%); transition: transform .2s ease; }
.ilm-drawer.is-abierto .ilm-drawer__fondo { opacity: 1; }
.ilm-drawer.is-abierto .ilm-drawer__panel { transform: none; }
.ilm-drawer__cab { display: flex; align-items: center; justify-content: space-between; padding: .75rem 1rem; border-bottom: 1px solid var(--bd); }
.ilm-drawer__cab .ilm-logo img { height: 36px; }
.ilm-drawer__cuerpo { flex: 1; overflow-y: auto; padding: .5rem 0 1.5rem; }
.ilm-drawer__rotulo { padding: 1rem 1rem .5rem; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--tx2); }
.ilm-drawer__rubro summary { display: flex; align-items: center; gap: .75rem; padding: .625rem 1rem; font-weight: 700; cursor: pointer; list-style: none; }
.ilm-drawer__rubro summary::-webkit-details-marker { display: none; }
.ilm-drawer__ico { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--r); background: var(--acento-suave); color: var(--acento); }
.ilm-drawer__flecha { margin-left: auto; width: 18px !important; height: 18px !important; color: var(--tx2); transition: transform var(--t); }
.ilm-drawer__rubro[open] .ilm-drawer__flecha { transform: rotate(180deg); }
.ilm-drawer__rubro ul { margin: 0 0 .5rem; padding: 0 1rem 0 4rem; list-style: none; }
.ilm-drawer__rubro li a { display: block; padding: .5rem 0; color: var(--tx); text-decoration: none; }
.ilm-drawer__todo { font-weight: 700; color: var(--acento) !important; }
.ilm-drawer__links { margin: 0; padding: 0; list-style: none; }
.ilm-drawer__links a { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; color: var(--tx); font-weight: 600; text-decoration: none; }
.ilm-drawer__links .ilm-i { color: var(--v2); }

/* Barra inferior móvil */
.ilm-inferior { display: none; }
@media (max-width: 781px) {
	body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
	.ilm-inferior { position: fixed; z-index: 55; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, 1fr); padding-bottom: env(safe-area-inset-bottom); background: var(--sup); border-top: 1px solid var(--bd); }
	.ilm-inferior a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 60px; color: var(--tx2); font-size: .6875rem; font-weight: 700; text-decoration: none; }
	.ilm-inferior a[aria-current="page"] { color: var(--v2); }
	.ilm-inferior__ico { position: relative; display: flex; }
	.ilm-inferior__ico .ilm-i { width: 22px; height: 22px; }
	.ilm-inferior__ico .ilm-badge { position: absolute; top: -6px; left: 14px; height: 18px; min-width: 18px; font-size: .6875rem; border: 2px solid var(--sup); }
}

/* ═══ Secciones de portada ═════════════════════════════ */
.ilm-sec { padding-block: 2.5rem 0; }
@media (min-width: 782px) { .ilm-sec { padding-block: 3.5rem 0; } }
.ilm-main > .ilm-sec:last-child, .ilm-main > *:last-child { padding-bottom: 3.5rem; }
.ilm-sec__cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.ilm-sec__titulo { font-size: clamp(1.375rem, 2.5vw, 1.75rem); }
.ilm-sec__bajada { margin-top: .25rem; color: var(--tx2); }

/* Hero de texto (sin banners cargados) */
.ilm-hero { padding-top: 1.25rem; }
.ilm-hero__caja { display: grid; overflow: hidden; border-radius: var(--r-lg); background: var(--v); }
@media (min-width: 900px) { .ilm-hero__caja { grid-template-columns: 1.1fr 1fr; min-height: 340px; } }
.ilm-hero__txt { display: flex; flex-direction: column; justify-content: center; padding: 2rem 1.5rem; color: #fff; }
@media (min-width: 900px) { .ilm-hero__txt { padding: 3rem; } }
.ilm-hero__lugar { display: inline-flex; align-items: center; gap: .375rem; margin-bottom: 1rem; font-size: .875rem; font-weight: 700; color: var(--am); }
.ilm-hero__lugar .ilm-i { width: 16px; height: 16px; }
.ilm-hero__titulo { color: #fff; font-size: clamp(1.875rem, 4vw, 2.75rem); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; max-width: 18ch; }
.ilm-hero__bajada { margin-top: .875rem; max-width: 44ch; font-size: 1.0625rem; color: rgba(255,255,255,.85); }
.ilm-hero__acciones { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.ilm-hero__foto { min-height: 200px; background: #3E1A6B; }
.ilm-hero__foto .ilm-foto__vacia { color: rgba(255,255,255,.7); }
@media (max-width: 599px) { .ilm-hero__acciones .ilm-btn { width: 100%; } }

/* Carrusel de banners: el siguiente asoma para indicar que hay más. */
.ilm-banners { padding-top: 1.25rem; }
.ilm-banners__pista { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--r-lg); }
.ilm-banners__pista::-webkit-scrollbar { display: none; }
.ilm-banners__slide { flex: 0 0 94%; scroll-snap-align: start; display: block; aspect-ratio: 3 / 1; border-radius: var(--r-lg); overflow: hidden; background: var(--lila); }
.ilm-banners__slide:only-child { flex-basis: 100%; }
.ilm-banners__img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) { .ilm-banners__slide { flex-basis: 90%; aspect-ratio: 16 / 9; } }
.ilm-banners__puntos { display: flex; justify-content: center; gap: .375rem; margin-top: .75rem; }
.ilm-banners__puntos button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 4px; background: var(--bd2); cursor: pointer; transition: width var(--t), background-color var(--t); }
.ilm-banners__puntos button[aria-current="true"] { width: 24px; background: var(--v2); }

/* Encabezado de posicionamiento y beneficios */
.ilm-sec--beneficios { padding-top: 1.75rem !important; }
.ilm-inicio__h1 { margin-bottom: 1rem; font-size: clamp(1.25rem, 2.4vw, 1.625rem); color: var(--v); }
.ilm-beneficios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ilm-beneficios li { display: flex; align-items: center; gap: .875rem; padding: .75rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r); }
.ilm-beneficios__ico { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; flex: none; border-radius: var(--r); background: var(--v); color: var(--am); }
.ilm-beneficios__ico .ilm-i { width: 26px; height: 26px; }
.ilm-beneficios__txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.ilm-beneficios__txt strong { color: var(--v); font-size: .9375rem; }
.ilm-beneficios__txt span { font-size: .8125rem; color: var(--tx2); }
.ilm-beneficios__txt a { margin-top: .125rem; font-size: .75rem; font-weight: 600; color: var(--v2); }
@media (max-width: 1023px) {
	.ilm-beneficios { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: -1rem; padding-inline: 1rem; }
	.ilm-beneficios::-webkit-scrollbar { display: none; }
	.ilm-beneficios li { flex: 0 0 78%; max-width: 300px; scroll-snap-align: start; }
}

/* Rubros como mosaicos cuadrados */
.ilm-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.ilm-tile { display: flex; flex-direction: column; height: 100%; overflow: hidden; border-radius: var(--r-lg); background: var(--sup); border: 1px solid var(--bd); text-decoration: none; transition: box-shadow var(--t); }
.ilm-tile:hover { box-shadow: var(--sombra-hover); }
.ilm-tile__foto { display: block; aspect-ratio: 1; }
.ilm-tile__foto .ilm-foto__img { transition: transform .3s ease; }
.ilm-tile:hover .ilm-tile__foto .ilm-foto__img { transform: scale(1.03); }
.ilm-tile__pie { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .875rem 1rem; border-top: 4px solid var(--acento); }
.ilm-tile__pie > span { display: flex; flex-direction: column; min-width: 0; }
.ilm-tile__pie strong { color: var(--v); font-size: 1.125rem; font-weight: 800; }
.ilm-tile__pie small { color: var(--tx2); font-size: .8125rem; }
.ilm-tile__pie > .ilm-i { width: 20px; height: 20px; color: var(--acento); transition: transform var(--t); }
.ilm-tile:hover .ilm-tile__pie > .ilm-i { transform: translateX(3px); }
.ilm-acento-impresion { --acento: var(--v2); --acento-suave: var(--lila); }
@media (max-width: 781px) {
	.ilm-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
	.ilm-tile__pie { padding: .625rem .75rem; }
	.ilm-tile__pie strong { font-size: 1rem; }
	.ilm-tile__pie small { display: none; }
}

/* Carruseles horizontales de productos y marcas */
.ilm-fila { position: relative; }
div.ilm-fila ul.products, .ilm-fila ul.ilm-marcas { display: flex !important; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .25rem .125rem .5rem !important; }
.ilm-fila ul::-webkit-scrollbar { display: none; }
div.ilm-fila ul.products > li.product { flex: 0 0 calc((100% - 4rem) / 5); scroll-snap-align: start; }
@media (max-width: 1099px) { div.ilm-fila ul.products > li.product { flex-basis: calc((100% - 2rem) / 3); } }
@media (max-width: 699px) {
	.ilm-fila { margin-inline: -1rem; }
	div.ilm-fila ul.products, .ilm-fila ul.ilm-marcas { gap: .75rem; padding-inline: 1rem !important; scroll-padding-inline: 1rem; }
	div.ilm-fila ul.products > li.product { flex-basis: 46%; }
}
.ilm-fila__flecha { position: absolute; top: 40%; z-index: 3; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--bd); border-radius: 50%; background: var(--sup); color: var(--v); box-shadow: 0 2px 8px rgba(27,21,35,.12); cursor: pointer; transition: background-color var(--t), opacity var(--t); }
.ilm-fila__flecha:hover { background: var(--lila); }
.ilm-fila__flecha:disabled { opacity: 0; pointer-events: none; }
.ilm-fila__flecha[hidden] { display: none; }
.ilm-fila__flecha--ant { left: -20px; }
.ilm-fila__flecha--sig { right: -20px; }
@media (max-width: 699px), (hover: none) { .ilm-fila__flecha { display: none; } }

.ilm-banner-medio { display: block; overflow: hidden; border-radius: var(--r-lg); aspect-ratio: 24 / 5; background: var(--lila); }
.ilm-banner-medio img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) { .ilm-banner-medio { aspect-ratio: 3 / 1; } }

.ilm-marcas { margin: 0; list-style: none; }
.ilm-marcas li { flex: 0 0 150px; scroll-snap-align: start; }
.ilm-marcas a { display: flex; align-items: center; justify-content: center; height: 84px; padding: .75rem 1rem; border: 1px solid var(--bd); border-radius: var(--r-lg); background: var(--sup); text-decoration: none; transition: border-color var(--t); }
.ilm-marcas a:hover { border-color: var(--v2); }
.ilm-marcas img { max-height: 56px; width: auto; object-fit: contain; }
.ilm-marcas__texto { color: var(--v); font-weight: 800; font-size: 1rem; text-align: center; line-height: 1.2; }

/* Retiro y delivery */
.ilm-entrega { display: grid; gap: 1rem; }
@media (min-width: 700px) { .ilm-entrega { grid-template-columns: 1fr 1fr; gap: 1.25rem; } }
.ilm-entrega__op { display: flex; gap: 1rem; padding: 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
.ilm-entrega__op h3 { font-size: 1.125rem; margin-bottom: .25rem; }
.ilm-entrega__op p { color: var(--tx2); }
.ilm-entrega__dato { margin-top: .625rem !important; font-size: .875rem; }
.ilm-entrega__dato strong { color: var(--ok); }

/* Puntos: banda compacta para no competir con la compra */
.ilm-puntos { display: grid; gap: 1.25rem; align-items: center; padding: 1.5rem; border-radius: var(--r-lg); background: var(--v); color: #fff; }
@media (min-width: 1024px) { .ilm-puntos { grid-template-columns: 1.1fr 1.4fr auto; gap: 2rem; padding: 1.75rem 2rem; } }
.ilm-puntos h2 { color: #fff; font-size: clamp(1.375rem, 2.6vw, 1.75rem); margin-bottom: .375rem; }
.ilm-puntos__txt > p { color: rgba(255,255,255,.8); font-size: .9375rem; }
.ilm-puntos .ilm-rotulo { color: var(--am); }
.ilm-puntos .ilm-rotulo .ilm-i { fill: var(--am); }
.ilm-puntos__beneficios { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; list-style: none; }
.ilm-puntos__beneficios li { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: .875rem .5rem; border-radius: var(--r); background: rgba(255,255,255,.08); font-size: .875rem; font-weight: 700; text-align: center; line-height: 1.25; }
.ilm-puntos__cta { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; }
.ilm-puntos__saldo { color: rgba(255,255,255,.85); }
.ilm-puntos__saldo strong { color: var(--am); }
@media (max-width: 599px) { .ilm-puntos__beneficios { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ilm-puntos__cta, .ilm-puntos__cta .ilm-btn { width: 100%; } }

/* Impresiones (portada) */
.ilm-imp-promo { display: grid; overflow: hidden; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
@media (min-width: 900px) { .ilm-imp-promo { grid-template-columns: 1.3fr 1fr; } }
.ilm-imp-promo__txt { padding: 1.5rem; }
@media (min-width: 900px) { .ilm-imp-promo__txt { padding: 2.25rem; } }
.ilm-imp-promo h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: .5rem; }
.ilm-imp-promo__txt > p { color: var(--tx2); max-width: 52ch; }
.ilm-imp-promo__foto { min-height: 220px; }
.ilm-flujo { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin: 1.5rem 0; padding: 0; list-style: none; }
.ilm-flujo li { position: relative; display: flex; flex-direction: column; gap: .125rem; }
.ilm-flujo__ico { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-bottom: .5rem; border-radius: var(--r); background: var(--lila); color: var(--v2); }
.ilm-flujo li:not(:last-child)::after { content: ""; position: absolute; top: 20px; left: 48px; right: -4px; height: 1px; background: var(--bd2); }
.ilm-flujo strong { font-size: .9375rem; color: var(--v); }
.ilm-flujo span { font-size: .8125rem; color: var(--tx2); line-height: 1.35; }
@media (max-width: 599px) {
	.ilm-flujo { grid-template-columns: 1fr; gap: .5rem; }
	.ilm-flujo li { display: grid; grid-template-columns: 40px 1fr; column-gap: .75rem; align-items: center; }
	.ilm-flujo__ico { grid-row: span 2; margin: 0; }
	.ilm-flujo li::after { display: none; }
	.ilm-imp-promo .ilm-btn { width: 100%; }
}

/* Contacto */
.ilm-contacto { display: grid; gap: 1.25rem; align-items: center; padding: 1.5rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
@media (min-width: 900px) { .ilm-contacto { grid-template-columns: 1fr auto; padding: 1.75rem 2.25rem; } }
.ilm-contacto h2 { font-size: 1.375rem; margin-bottom: .25rem; }
.ilm-contacto p { color: var(--tx2); }
.ilm-contacto__datos { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; font-size: .9375rem; }
.ilm-contacto__datos li { display: flex; gap: .5rem; align-items: center; }
.ilm-contacto__datos .ilm-i { width: 18px; height: 18px; color: var(--am); }

/* ═══ Tarjeta de producto ══════════════════════════════ */
.woocommerce ul.products, ul.products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0 !important; padding: 0 !important; list-style: none; }
@media (min-width: 700px) { ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 1100px) { ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
ul.products::before, ul.products::after { display: none !important; }

.ilm-prod { position: relative; display: flex; flex-direction: column; margin: 0 !important; width: auto !important; float: none !important; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); overflow: hidden; text-align: center; transition: box-shadow var(--t), border-color var(--t); }
.ilm-prod:hover { border-color: var(--bd2); box-shadow: var(--sombra-hover); }
.ilm-prod__cinta { display: block; padding: .25rem .5rem; background: var(--am); color: var(--tx); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ilm-prod__img { position: relative; display: block; aspect-ratio: 1; margin: .75rem .75rem 0; }
.ilm-prod:not(:has(.ilm-prod__cinta)) .ilm-prod__img { margin-top: calc(.75rem + 1.5rem); }
.ilm-prod__img img { width: 100%; height: 100%; object-fit: contain; margin: 0 !important; }
.ilm-prod__sin-foto { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; border-radius: var(--r); background: #F8F7FA; color: var(--acento); }
.ilm-prod__sin-foto .ilm-i { width: 40px; height: 40px; stroke-width: 1.5; opacity: .35; }
.ilm-prod__agotado { position: absolute; left: 50%; bottom: .5rem; transform: translateX(-50%); padding: .125rem .5rem; border-radius: var(--r-sm); background: var(--tx); color: #fff; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.ilm-prod__info { display: flex; flex-direction: column; align-items: center; gap: .25rem; flex: 1; padding: .75rem .875rem 0; }
.ilm-prod__cat { font-size: .6875rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--acento); }
.ilm-prod__nombre { margin: 0; font-size: .9375rem !important; font-weight: 700; line-height: 1.3; letter-spacing: 0; color: var(--v); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.ilm-prod__nombre a { color: inherit; text-decoration: none; }
.ilm-prod__nombre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ilm-prod__nombre a:hover { color: var(--v2); }
.ilm-prod__marca { font-size: .8125rem; color: var(--tx2); }
.ilm-prod__precios { display: flex; flex-direction: column; align-items: center; gap: .25rem; margin-top: auto; padding-top: .5rem; }
.ilm-prod__antes { display: inline-flex; align-items: center; gap: .375rem; font-size: .8125rem; color: var(--tx2); }
.ilm-prod__pct { padding: 0 .375rem; border-radius: var(--r-sm); background: var(--am); color: var(--tx); font-size: .75rem; font-weight: 800; }
.ilm-prod__pocas { font-size: .75rem; font-weight: 700; color: var(--alerta); }
.ilm-prod__accion { position: relative; z-index: 2; padding: .75rem .875rem .875rem; }
.ilm-prod__accion .button, .ilm-prod__accion .added_to_cart {
	display: flex !important; align-items: center; justify-content: center; gap: .5rem; width: 100%; min-height: 42px; margin: 0 !important; padding: .5rem .75rem !important;
	border: 0 !important; border-radius: 999px !important; background: var(--v2) !important; color: #fff !important; font-size: .875rem !important; font-weight: 800 !important; letter-spacing: .03em; text-transform: uppercase; line-height: 1.2 !important; text-decoration: none; transition: background-color var(--t);
}
.ilm-prod__accion .button:hover { background: var(--v2-h) !important; }
.ilm-prod__accion .button .ilm-i { width: 18px; height: 18px; }
.ilm-prod__accion .button.loading { opacity: .7; }
.ilm-prod__accion .button.loading::after, .ilm-prod__accion .button.added::after { display: none; }
.ilm-prod__accion .added_to_cart { margin-top: .375rem !important; min-height: 34px; background: var(--lila) !important; color: var(--v) !important; text-transform: none; letter-spacing: 0; }
.ilm-prod.outofstock .ilm-prod__accion .button { background: var(--sup) !important; color: var(--v) !important; box-shadow: inset 0 0 0 1px var(--bd2); }
@media (max-width: 599px) {
	.ilm-prod__info { padding: .625rem .5rem 0; }
	.ilm-prod__accion { padding: .625rem; }
	.ilm-precio { font-size: 1.0625rem; }
}

/* ═══ Catálogo ═════════════════════════════════════════ */
.ilm-cat { padding-top: 1rem; }
.ilm-migas { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin-bottom: 1rem; font-size: .8125rem; color: var(--tx2); }
.ilm-migas a { color: var(--tx2); text-decoration: none; }
.ilm-migas a:hover { color: var(--v2); text-decoration: underline; }
.ilm-migas .ilm-i { width: 14px; height: 14px; opacity: .6; }
.ilm-cat__cab { margin-bottom: 1.25rem; }
.ilm-cat__cab h1 { font-size: clamp(1.5rem, 3vw, 2rem); display: flex; align-items: center; gap: .625rem; }
.ilm-cat.ilm-acento-kiosco .ilm-cat__cab h1::before, .ilm-cat.ilm-acento-despensa .ilm-cat__cab h1::before, .ilm-cat.ilm-acento-libreria .ilm-cat__cab h1::before { content: ""; width: 6px; align-self: stretch; border-radius: 3px; background: var(--acento); }
.ilm-cat__desc { margin-top: .375rem; color: var(--tx2); max-width: 70ch; }
.ilm-subcats { display: flex; gap: .5rem; margin: 1rem 0 0; padding: 0 0 .25rem; list-style: none; overflow-x: auto; scrollbar-width: none; }
.ilm-subcats::-webkit-scrollbar { display: none; }
.ilm-subcats a { display: inline-flex; align-items: center; gap: .5rem; flex: none; padding: .5rem .875rem; border: 1px solid var(--bd); border-radius: var(--r); background: var(--sup); color: var(--tx); font-size: .875rem; font-weight: 700; text-decoration: none; white-space: nowrap; transition: border-color var(--t), color var(--t); }
.ilm-subcats a:hover { border-color: var(--acento); color: var(--acento); }
.ilm-subcats span { font-size: .75rem; font-weight: 600; color: var(--tx2); }

.ilm-cat__layout { display: grid; gap: 1.5rem; align-items: start; padding-bottom: 3.5rem; }
@media (min-width: 1024px) { .ilm-cat__layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 2rem; } }
.ilm-cat__barra { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--bd); }
.ilm-cat__total { margin-right: auto; color: var(--tx2); font-size: .9375rem; }
.ilm-cat__filtrar { display: none; }
.ilm-orden { display: flex; align-items: center; gap: .5rem; }
.ilm-orden label { font-size: .875rem; color: var(--tx2); white-space: nowrap; }
.ilm-orden select, .woocommerce-ordering select { height: 42px; padding: 0 2.25rem 0 .875rem; border: 1px solid var(--bd2); border-radius: var(--r); background: var(--sup) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23625B70' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .75rem center; font-size: .9375rem; font-weight: 600; appearance: none; cursor: pointer; }

.ilm-activos { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.ilm-activos a { display: inline-flex; align-items: center; gap: .375rem; padding: .375rem .5rem .375rem .75rem; border-radius: var(--r-sm); background: var(--lila); color: var(--v); font-size: .8125rem; font-weight: 700; text-decoration: none; }
.ilm-activos a .ilm-i { width: 14px; height: 14px; }
.ilm-activos a:hover { background: #E3D7FA; }
.ilm-activos .ilm-activos__limpiar { background: none; color: var(--tx2); text-decoration: underline; }

/* Filtros: columna derecha en escritorio, panel deslizable en móvil */
.ilm-filtros__panel { background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
@media (min-width: 1024px) {
	.ilm-filtros { position: sticky; top: calc(1rem + 72px + var(--wp-admin--admin-bar--height, 0px)); }
	.ilm-filtros__fondo, .ilm-filtros__cerrar { display: none; }
	.ilm-filtros__panel { display: flex; flex-direction: column; max-height: calc(100vh - 72px - 2rem); }
	.ilm-filtros__cuerpo { overflow-y: auto; }
}
.ilm-filtros__cab { display: flex; align-items: center; justify-content: space-between; padding: .875rem 1.125rem; border-bottom: 1px solid var(--bd); }
.ilm-filtros__cab h2 { font-size: 1.0625rem; }
.ilm-filtros__cuerpo { padding: 0 1.125rem; }
.ilm-filtro { margin: 0; padding: 1rem 0; border: 0; border-bottom: 1px solid var(--bd); min-width: 0; }
.ilm-filtro:last-child { border-bottom: 0; }
.ilm-filtro legend { float: left; width: 100%; margin-bottom: .625rem; padding: 0; font-size: .875rem; font-weight: 800; color: var(--v); }
.ilm-filtro legend + * { clear: both; }
.ilm-filtros__pie { display: flex; gap: .5rem; justify-content: space-between; padding: .875rem 1.125rem; border-top: 1px solid var(--bd); }
.ilm-filtros__pie .ilm-btn--primario { flex: 1; }

.ilm-arbol { margin: 0; padding: 0; list-style: none; }
.ilm-arbol .ilm-arbol { padding-left: .875rem; border-left: 1px solid var(--bd); margin: .125rem 0 .25rem .375rem; }
.ilm-arbol a { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .3125rem .5rem; border-radius: var(--r-sm); color: var(--tx); font-size: .9375rem; text-decoration: none; }
.ilm-arbol a:hover { background: var(--fondo); color: var(--v2); }
.ilm-arbol a[aria-current="page"] { background: var(--lila); color: var(--v); font-weight: 700; }
.ilm-arbol small, .ilm-checks small { font-size: .75rem; color: var(--tx2); }

.ilm-checks { display: grid; gap: .125rem; margin: 0; padding: 0; list-style: none; }
.ilm-checks--scroll { max-height: 220px; overflow-y: auto; padding-right: .25rem; }
.ilm-checks label { display: flex; align-items: center; gap: .625rem; padding: .3125rem 0; font-size: .9375rem; cursor: pointer; }
.ilm-checks label span { flex: 1; }
.ilm-checks input { width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--v2); cursor: pointer; }

.ilm-rango { display: flex; align-items: flex-end; gap: .5rem; }
.ilm-rango > span { padding-bottom: .625rem; color: var(--tx2); }
.ilm-rango label { flex: 1; min-width: 0; }
.ilm-rango label span { display: block; margin-bottom: .25rem; font-size: .75rem; color: var(--tx2); }
.ilm-rango input { width: 100%; height: 40px; padding: 0 .625rem; border: 1px solid var(--bd2); border-radius: var(--r-sm); font-size: 16px; }

@media (max-width: 1023px) {
	.ilm-cat__filtrar { display: inline-flex; min-height: 42px; }
	.ilm-cat__total { order: 3; width: 100%; margin: 0; font-size: .875rem; }
	.ilm-cat__barra { flex-wrap: wrap; }
	.ilm-orden { margin-left: auto; }
	.ilm-orden label { display: none; }
	.ilm-filtros { position: fixed; inset: 0; z-index: 100; visibility: hidden; }
	.ilm-filtros.is-abierto { visibility: visible; }
	.ilm-filtros__fondo { position: absolute; inset: 0; background: rgba(27,21,35,.45); opacity: 0; transition: opacity .2s; }
	.ilm-filtros.is-abierto .ilm-filtros__fondo { opacity: 1; }
	.ilm-filtros__panel { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; max-height: 88vh; border-radius: var(--r-lg) var(--r-lg) 0 0; border: 0; transform: translateY(100%); transition: transform .22s ease; }
	.ilm-filtros.is-abierto .ilm-filtros__panel { transform: none; }
	.ilm-filtros__cuerpo { flex: 1; overflow-y: auto; }
	.ilm-filtros__pie { padding-bottom: calc(.875rem + env(safe-area-inset-bottom)); }
	.ilm-checks--scroll { max-height: none; }
}

.ilm-vacio { display: flex; flex-direction: column; align-items: center; gap: .75rem; padding: 3rem 1rem; text-align: center; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
.ilm-vacio h2, .ilm-vacio h1 { font-size: 1.25rem; }
.ilm-vacio p { color: var(--tx2); max-width: 44ch; }
.ilm-vacio--pagina { margin-block: 3rem; }

.woocommerce-pagination { margin-top: 2rem; }
.woocommerce-pagination ul.page-numbers { display: flex; justify-content: center; gap: .375rem; margin: 0; padding: 0; list-style: none; border: 0 !important; }
.woocommerce-pagination ul.page-numbers li { border: 0 !important; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span { display: flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 .75rem; border: 1px solid var(--bd); border-radius: var(--r); background: var(--sup); color: var(--tx); font-weight: 700; text-decoration: none; }
.woocommerce-pagination .page-numbers span.current { background: var(--v); border-color: var(--v); color: #fff; }

/* ═══ Carrito ══════════════════════════════════════════ */
.ilm-pagina-tienda .wp-block-post-content > *, .ilm-pagina .woocommerce { max-width: none !important; }
.ilm-pagina-checkout > .wp-block-post-title { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 1.25rem; }
.ilm-pagina-tienda { padding-block: 1.5rem 3.5rem; }
.ilm-carrito__cab { display: flex; align-items: baseline; gap: .75rem; margin-bottom: 1.25rem; }
.ilm-carrito__cab h1 { font-size: clamp(1.5rem, 3vw, 2rem); }
.ilm-carrito__cab p { color: var(--tx2); }
.ilm-carrito__grid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .ilm-carrito__grid { grid-template-columns: minmax(0, 1fr) 380px; gap: 2rem; } }
.ilm-carrito__form { container-type: inline-size; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); overflow: hidden; }

/* Una sola grilla para cabecera y filas: columnas siempre alineadas. */
.ilm-items__cab, .ilm-item { display: grid; grid-template-columns: 72px minmax(0, 1fr) 110px 132px 110px 40px; align-items: center; column-gap: 1rem; padding: 1rem 1.25rem; }
.ilm-items__cab { padding-block: .75rem; border-bottom: 1px solid var(--bd); background: var(--fondo); font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--tx2); }
.ilm-items__cab span:first-child { grid-column: 1 / 3; }
.ilm-items__cab span:nth-child(n+2) { text-align: right; }
.ilm-items__cab span:nth-child(3) { text-align: center; }
.ilm-items { margin: 0; padding: 0; list-style: none; border: 0 !important; }
.ilm-item + .ilm-item { border-top: 1px solid var(--bd); }
.ilm-item__img { width: 72px; height: 72px; border: 1px solid var(--bd); border-radius: var(--r); overflow: hidden; background: var(--sup); }
.ilm-item__img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.ilm-item__sin-foto { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: var(--acento-suave); color: var(--acento); }
.ilm-item__sin-foto .ilm-i { width: 28px; height: 28px; stroke-width: 1.5; }
.ilm-item__info { min-width: 0; }
.ilm-item__nombre { display: block; color: var(--tx); font-weight: 700; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
a.ilm-item__nombre:hover { color: var(--v2); }
.ilm-item__info dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 0 .375rem; margin: .375rem 0 0; font-size: .8125rem; color: var(--tx2); }
.ilm-item__info dl.variation dt { font-weight: 700; margin: 0; }
.ilm-item__info dl.variation dd { margin: 0; }
.ilm-item__info dl.variation p { margin: 0; }
.ilm-item__unit { display: none; font-size: .8125rem; color: var(--tx2); }
.ilm-item__precio { text-align: right; color: var(--tx2); font-size: .9375rem; }
.ilm-item__cant { display: flex; justify-content: center; }
.ilm-item__subtotal { text-align: right; font-weight: 800; font-size: 1rem; color: var(--tx); white-space: nowrap; }
.ilm-item__fijo { font-size: .875rem; color: var(--tx2); }
.ilm-item__quitar .remove { width: 40px; height: 40px; border-radius: var(--r) !important; color: var(--tx2) !important; font-size: 0 !important; }
.ilm-item__quitar .remove:hover { background: #FDECEC !important; color: #B42318 !important; }
.ilm-item__quitar .remove .ilm-i { width: 18px; height: 18px; }

.ilm-stepper { display: inline-flex; align-items: center; height: 40px; border: 1px solid var(--bd2); border-radius: var(--r); background: var(--sup); overflow: hidden; }
.ilm-stepper__btn { display: flex; align-items: center; justify-content: center; width: 36px; height: 100%; padding: 0; border: 0; background: none; color: var(--v); cursor: pointer; transition: background-color var(--t); }
.ilm-stepper__btn:hover { background: var(--fondo); }
.ilm-stepper__btn .ilm-i { width: 16px; height: 16px; }
.ilm-stepper .quantity { margin: 0 !important; }
.ilm-stepper .quantity label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.ilm-stepper input.qty, .ilm-stepper input[type="number"] { width: 44px; height: 38px; padding: 0; border: 0; border-inline: 1px solid var(--bd); background: none; text-align: center; font-size: 16px; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.ilm-stepper input::-webkit-outer-spin-button, .ilm-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ilm-stepper--grande { height: 46px; }
.ilm-stepper--grande .ilm-stepper__btn { width: 46px; }
.ilm-stepper--grande input[type="number"] { width: 64px; height: 44px; }

.ilm-carrito__acciones { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.25rem; border-top: 1px solid var(--bd); background: var(--fondo); }
.ilm-carrito__actualizar { display: none; }
.no-js .ilm-carrito__actualizar { display: inline-flex; }
.ilm-cupon summary { display: inline-flex; align-items: center; gap: .375rem; font-size: .9375rem; font-weight: 700; color: var(--v2); cursor: pointer; list-style: none; }
.ilm-cupon summary::-webkit-details-marker { display: none; }
.ilm-cupon summary .ilm-i { width: 16px; height: 16px; }
.ilm-cupon__campo { display: flex; gap: .5rem; margin-top: .625rem; }
.ilm-cupon__campo input { height: 44px; padding: 0 .75rem; border: 1px solid var(--bd2); border-radius: var(--r); font-size: 16px; width: 180px; }

@container (max-width: 700px) {
	.ilm-items__cab { display: none; }
	.ilm-item { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "img info quitar" "img cant subtotal"; row-gap: .75rem; column-gap: .75rem; padding: 1rem; align-items: start; }
	.ilm-item__img { grid-area: img; width: 64px; height: 64px; }
	.ilm-item__info { grid-area: info; }
	.ilm-item__quitar { grid-area: quitar; margin: -.5rem -.5rem 0 0; }
	.ilm-item__cant { grid-area: cant; justify-content: flex-start; }
	.ilm-item__subtotal { grid-area: subtotal; align-self: center; }
	.ilm-item__precio { display: none; }
	.ilm-item__unit { display: block; margin-top: .25rem; }
}
@media (max-width: 781px) { .ilm-carrito__acciones { flex-direction: column-reverse; align-items: stretch; } .ilm-cupon__campo input { flex: 1; width: auto; } }

/* Resumen */
.ilm-resumen { padding: 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
@media (min-width: 1024px) { .ilm-carrito__lateral { position: sticky; top: calc(1rem + 72px + var(--wp-admin--admin-bar--height, 0px)); } }
.ilm-resumen__titulo { font-size: 1.125rem; margin-bottom: .75rem; }
.ilm-resumen__tabla, .ilm-resumen__tabla tbody, .ilm-resumen__tabla tr, .ilm-resumen__tabla th, .ilm-resumen__tabla td { display: block; border: 0 !important; padding: 0; background: none !important; }
.ilm-resumen__tabla { width: 100%; margin: 0 !important; }
.ilm-resumen__tabla tr { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .5rem 0; }
.ilm-resumen__tabla th { width: auto !important; font-weight: 500; color: var(--tx2); text-align: left; }
.ilm-resumen__tabla td { text-align: right; font-weight: 700; }
.ilm-resumen__tabla td::before { display: none !important; }
.ilm-resumen__tabla tr.woocommerce-shipping-totals { flex-direction: column; align-items: stretch; margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--bd) !important; }
.ilm-resumen__tabla tr.woocommerce-shipping-totals th { font-weight: 800; color: var(--v); margin-bottom: .5rem; }
.ilm-resumen__tabla tr.woocommerce-shipping-totals td { text-align: left; font-weight: 500; }
.ilm-resumen__tabla tr.order-total { margin-top: .5rem; padding-top: 1rem; border-top: 1px solid var(--bd) !important; }
.ilm-resumen__tabla tr.order-total th { color: var(--tx); font-weight: 800; font-size: 1.0625rem; }
.ilm-resumen__tabla tr.order-total td { font-size: 1.5rem; font-weight: 800; color: var(--v); }
.ilm-resumen .woocommerce-shipping-destination, .ilm-resumen .woocommerce-shipping-calculator { font-size: .8125rem; color: var(--tx2); margin-top: .5rem; }
.ilm-resumen .shipping-calculator-button { color: var(--v2); font-weight: 600; }
.wc-proceed-to-checkout { margin-top: 1rem; padding: 0 !important; }
.wc-proceed-to-checkout a.checkout-button.ilm-btn { display: flex; margin: 0; padding: .75rem 1.25rem; font-size: 1.0625rem; }
.ilm-resumen .woocommerce-shipping-destination, .ilm-resumen .woocommerce-shipping-calculator { display: none; }
.ilm-resumen__confianza { display: grid; gap: .375rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: .8125rem; color: var(--tx2); }
.ilm-resumen__confianza li { display: flex; align-items: center; gap: .5rem; }
.ilm-resumen__confianza .ilm-i { width: 16px; height: 16px; color: var(--ok); }
.ilm-aviso-puntos { display: flex; align-items: center; gap: .625rem; margin-top: 1rem; padding: .75rem .875rem; border-radius: var(--r); background: #FFF8E1; color: #5C3D00; font-size: .875rem; }
.ilm-aviso-puntos .ilm-i { width: 18px; height: 18px; fill: var(--am); stroke: #8A5A00; }

/* Modalidades de entrega como opciones grandes (carrito y checkout) */
#shipping_method { display: grid; gap: .5rem; margin: 0 !important; padding: 0 !important; list-style: none !important; }
#shipping_method li { position: relative; margin: 0 !important; padding: 0 !important; text-indent: 0 !important; }
#shipping_method li input[type="radio"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0 !important; }
#shipping_method li label { display: flex !important; align-items: center; gap: .75rem; margin: 0 !important; padding: .75rem .875rem; border: 1px solid var(--bd2); border-radius: var(--r); background: var(--sup); cursor: pointer; transition: border-color var(--t), background-color var(--t); }
#shipping_method li label:hover { border-color: var(--v2); }
#shipping_method li input:checked + label { border-color: var(--v2); background: #FAF7FF; box-shadow: inset 0 0 0 1px var(--v2); }
#shipping_method li input:focus-visible + label { outline: 2px solid var(--v2); outline-offset: 2px; }
#shipping_method li:only-child label { cursor: default; }
.ilm-envio__ico { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; flex: none; border-radius: var(--r); background: var(--lila); color: var(--v2); }
.ilm-envio__txt { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ilm-envio__nombre { font-weight: 700; color: var(--tx); }
.ilm-envio__desc { font-size: .8125rem; color: var(--tx2); line-height: 1.35; }
.ilm-envio__costo { font-weight: 800; white-space: nowrap; }
.ilm-gratis { color: var(--ok); }

/* Carrito vacío */
.ilm-carrito-vacio { display: flex; flex-direction: column; align-items: center; gap: .875rem; padding: 3rem 1rem; text-align: center; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
.ilm-carrito-vacio h1 { font-size: 1.5rem; }
.ilm-carrito-vacio p { color: var(--tx2); }
.ilm-carrito-vacio__rubros { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: .5rem 0; padding: 0; list-style: none; }
.ilm-carrito-vacio__rubros a { display: inline-flex; align-items: center; gap: .5rem; padding: .375rem .875rem .375rem .375rem; border: 1px solid var(--bd); border-radius: var(--r); color: var(--tx); font-weight: 700; text-decoration: none; }
.ilm-carrito-vacio__rubros a:hover { border-color: var(--acento); }
.ilm-carrito-vacio__rubros .ilm-rubro__ico { width: 32px; height: 32px; }

/* Avisos de WooCommerce */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin: 0 0 1.25rem !important; padding: .875rem 1rem !important; border: 1px solid var(--bd) !important; border-left: 4px solid var(--v2) !important; border-radius: var(--r) !important; background: var(--sup) !important; color: var(--tx) !important; list-style: none; font-size: .9375rem; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-error { border-left-color: #B42318 !important; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus { outline: none; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin: 0 !important; padding: .5rem .875rem !important; border-radius: var(--r) !important; background: var(--v2) !important; color: #fff !important; font-weight: 700; font-size: .875rem; text-decoration: none; }
.woocommerce-error li { margin: 0; }

/* ═══ Checkout ═════════════════════════════════════════ */
.ilm-pagina { padding-block: 1.5rem 3.5rem; }
.ilm-pagina > .wp-block-post-title { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 1.25rem; }
.ilm-pagina--angosta { max-width: 800px; }
.woocommerce-checkout .woocommerce { display: block; }
form.checkout { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { form.checkout { grid-template-columns: minmax(0, 1fr) 420px; gap: 2rem; } form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; } form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; } form.checkout #order_review_heading { grid-row: 1; } form.checkout #order_review { grid-row: 2; } }
#customer_details { display: grid; gap: 1.25rem; }
#customer_details .col-1, #customer_details .col-2 { width: 100% !important; float: none !important; padding: 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
#customer_details h3, #order_review_heading { font-size: 1.125rem; margin: 0 0 1rem; }
#order_review_heading { margin: 0 !important; padding: 1.25rem 1.25rem 0; background: var(--sup); border: 1px solid var(--bd); border-bottom: 0; border-radius: var(--r-lg) var(--r-lg) 0 0; }
#order_review { padding: .75rem 1.25rem 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-top: 0; border-radius: 0 0 var(--r-lg) var(--r-lg); }
.woocommerce form .form-row { display: flex; flex-direction: column; margin: 0 0 1rem !important; padding: 0 !important; }
.woocommerce form .form-row label { margin-bottom: .375rem; font-size: .875rem; font-weight: 700; color: var(--tx); }
.woocommerce form .form-row .required { color: #B42318; text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container .select2-selection--single { width: 100%; min-height: 46px; padding: .625rem .75rem; border: 1px solid var(--bd2) !important; border-radius: var(--r) !important; background: var(--sup); font-size: 16px; line-height: 1.4; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 44px; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color: var(--v2) !important; outline: none; box-shadow: 0 0 0 3px rgba(124,63,228,.15); }
.woocommerce form .form-row .description { margin-top: .375rem; font-size: .8125rem; color: var(--tx2); }
@media (min-width: 600px) { .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - .5rem) !important; } .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { display: flex; flex-wrap: wrap; justify-content: space-between; } .woocommerce form .form-row-wide { width: 100%; } }
.woocommerce-page table.shop_table, .woocommerce table.shop_table { width: 100% !important; }
table.woocommerce-checkout-review-order-table { display: block; width: 100%; margin: 0 0 1rem; font-size: .9375rem; }
table.woocommerce-checkout-review-order-table thead { display: none; }
table.woocommerce-checkout-review-order-table tbody, table.woocommerce-checkout-review-order-table tfoot { display: block; }
table.woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; gap: 1rem; padding: .625rem 0; border-bottom: 1px solid var(--bd); }
table.woocommerce-checkout-review-order-table th, table.woocommerce-checkout-review-order-table td { display: block; padding: 0; border: 0; text-align: left; }
table.woocommerce-checkout-review-order-table td:last-child { text-align: right; white-space: nowrap; }
table.woocommerce-checkout-review-order-table td.product-name { white-space: normal; text-align: left; }
table.woocommerce-checkout-review-order-table tfoot th { font-weight: 500; color: var(--tx2); }
table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { flex-direction: column; gap: .5rem; }
table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th { font-weight: 800; color: var(--v); }
table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { text-align: left; white-space: normal; }
table.woocommerce-checkout-review-order-table tr.order-total { border-bottom: 0; padding-top: 1rem; }
table.woocommerce-checkout-review-order-table tr.order-total th { color: var(--tx); font-weight: 800; }
table.woocommerce-checkout-review-order-table tr.order-total td { font-size: 1.375rem; font-weight: 800; color: var(--v); }
table.woocommerce-checkout-review-order-table dl.variation { margin: .25rem 0 0; font-size: .8125rem; color: var(--tx2); }
#payment { background: none !important; border-radius: 0 !important; }
#payment ul.payment_methods { display: grid; gap: .5rem; margin: 0 0 1rem !important; padding: 0 !important; border: 0 !important; list-style: none; }
#payment ul.payment_methods li { padding: .75rem .875rem !important; border: 1px solid var(--bd2); border-radius: var(--r); }
#payment ul.payment_methods li label { font-weight: 700; cursor: pointer; }
#payment ul.payment_methods li input { margin-right: .5rem; accent-color: var(--v2); }
#payment div.payment_box { margin: .5rem 0 0 !important; padding: .625rem .75rem !important; border-radius: var(--r-sm); background: var(--fondo) !important; color: var(--tx2) !important; font-size: .875rem; }
#payment div.payment_box::before { display: none !important; }
#payment .place-order { padding: 0 !important; }
.woocommerce-terms-and-conditions-wrapper { font-size: .8125rem; color: var(--tx2); margin-bottom: 1rem; }
.woocommerce-form-coupon-toggle .woocommerce-info { border-left-color: var(--am) !important; }

/* ═══ Ficha de producto ════════════════════════════════ */
.ilm-ficha { padding-block: 1rem 3.5rem; }
.ilm-ficha .woocommerce-breadcrumb { margin-bottom: 1.25rem; font-size: .8125rem; color: var(--tx2); }
.ilm-ficha .woocommerce-breadcrumb a { color: var(--tx2); }
.ilm-ficha div.product { display: grid; gap: 1.5rem 2.5rem; position: relative; }
@media (min-width: 900px) { .ilm-ficha div.product { grid-template-columns: 1fr 1fr; } }
.ilm-ficha div.product .woocommerce-product-gallery, .ilm-ficha div.product .summary { width: 100% !important; float: none !important; margin: 0 !important; }
.ilm-ficha .woocommerce-product-gallery { background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); overflow: hidden; padding: 1rem; }
.ilm-ficha .woocommerce-product-gallery__image--placeholder { aspect-ratio: 1; }
.ilm-ficha .summary { display: flex; flex-direction: column; gap: 1rem; }
.ilm-ficha .product_title { font-size: clamp(1.5rem, 3vw, 2.125rem); }
.ilm-ficha p.price, .ilm-ficha span.price { align-self: flex-start; margin: 0 !important; padding: .125rem .625rem; border-radius: var(--r-sm); background: var(--am); color: var(--tx) !important; font-size: 1.75rem !important; font-weight: 800; }
.ilm-ficha p.price del { font-size: .55em; opacity: .6; font-weight: 600; }
.ilm-ficha p.price ins { text-decoration: none; }
.ilm-ficha .woocommerce-product-details__short-description { color: var(--tx2); }
.ilm-ficha .stock { font-weight: 700; color: var(--ok); }
.ilm-ficha .stock.out-of-stock { color: #B42318; }
.ilm-ficha form.cart { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 !important; }
.ilm-ficha form.cart .quantity input.qty { width: 80px; height: 50px; border: 1px solid var(--bd2); border-radius: var(--r); text-align: center; font-size: 16px; font-weight: 700; }
.ilm-ficha .single_add_to_cart_button { flex: 1; min-height: 50px; border: 0; border-radius: var(--r) !important; background: var(--v2) !important; color: #fff !important; font-size: 1rem !important; font-weight: 700 !important; cursor: pointer; }
.ilm-ficha .single_add_to_cart_button:hover { background: var(--v2-h) !important; }
.ilm-ficha .product_meta { font-size: .875rem; color: var(--tx2); display: grid; gap: .25rem; }
.ilm-ficha .product_meta a { color: var(--v2); }
.ilm-ficha span.onsale { position: absolute; top: 1.5rem; left: 1.5rem; z-index: 2; min-height: 0; min-width: 0; padding: .125rem .5rem; border-radius: var(--r-sm); background: var(--am); color: var(--tx); font-size: .875rem; font-weight: 800; line-height: 1.5; }
.ilm-ficha .woocommerce-tabs { grid-column: 1 / -1; margin-top: 1rem; padding: 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
.ilm-ficha .woocommerce-tabs ul.tabs { display: flex; gap: .25rem; margin: 0 0 1rem !important; padding: 0 !important; border-bottom: 1px solid var(--bd); list-style: none; }
.ilm-ficha .woocommerce-tabs ul.tabs::before, .ilm-ficha .woocommerce-tabs ul.tabs li::before, .ilm-ficha .woocommerce-tabs ul.tabs li::after { display: none !important; }
.ilm-ficha .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.ilm-ficha .woocommerce-tabs ul.tabs li a { display: block; padding: .625rem 1rem; color: var(--tx2); font-weight: 700; text-decoration: none; border-bottom: 2px solid transparent; }
.ilm-ficha .woocommerce-tabs ul.tabs li.active a { color: var(--v); border-bottom-color: var(--v2); }
.ilm-ficha .woocommerce-tabs h2 { display: none; }
.ilm-ficha .related, .ilm-ficha .upsells { grid-column: 1 / -1; margin-top: 1.5rem; }
.ilm-ficha .related > h2, .ilm-ficha .upsells > h2 { font-size: 1.375rem; margin-bottom: 1rem; }
.ilm-ficha table.shop_attributes { width: 100%; border-collapse: collapse; }
.ilm-ficha table.shop_attributes th, .ilm-ficha table.shop_attributes td { padding: .5rem 0; border-bottom: 1px solid var(--bd); text-align: left; font-style: normal; }
.ilm-ficha table.shop_attributes td p { margin: 0; }

/* ═══ Impresiones (página) ═════════════════════════════ */
.ilm-imp { padding-block: 1.5rem 3.5rem; }
.ilm-imp__cab { margin-bottom: 1.5rem; }
.ilm-imp__cab h1 { font-size: clamp(1.5rem, 3.5vw, 2.25rem); }
.ilm-imp__cab > p { margin-top: .375rem; color: var(--tx2); }
.ilm-progreso { display: flex; gap: .5rem; margin: 1.25rem 0 0; padding: 0; list-style: none; counter-reset: none; }
.ilm-progreso li { display: flex; align-items: center; gap: .5rem; flex: 1; padding: .625rem .75rem; border-radius: var(--r); background: var(--sup); border: 1px solid var(--bd); font-size: .875rem; font-weight: 700; color: var(--tx2); }
.ilm-progreso li span { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; flex: none; border-radius: 50%; background: var(--fondo); font-size: .75rem; }
.ilm-progreso li[aria-current="step"] { border-color: var(--v2); color: var(--v); }
.ilm-progreso li[aria-current="step"] span { background: var(--v2); color: #fff; }
.ilm-progreso li.is-hecho span { background: var(--ok); color: #fff; }
@media (max-width: 781px) { .ilm-progreso li { flex-direction: column; gap: .25rem; padding: .5rem .25rem; font-size: .6875rem; text-align: center; } }

.ilm-imp__grid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .ilm-imp__grid { grid-template-columns: minmax(0, 1fr) 360px; gap: 2rem; } }
.ilm-imp__pasos { display: grid; gap: 1.25rem; }
.ilm-imp__paso, .ilm-imp__resumen { padding: 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
@media (min-width: 782px) { .ilm-imp__paso { padding: 1.5rem; } }
.ilm-imp__paso h2, .ilm-imp__resumen h2 { display: flex; align-items: center; gap: .625rem; margin-bottom: 1rem; font-size: 1.125rem; }
.ilm-imp__num { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: none; border-radius: 50%; background: var(--v); color: #fff; font-size: .8125rem; font-weight: 800; }
@media (min-width: 1024px) { .ilm-imp__resumen { position: sticky; top: calc(1rem + 72px + var(--wp-admin--admin-bar--height, 0px)); } }

.ilm-drop { display: flex; flex-direction: column; align-items: center; gap: .375rem; padding: 2rem 1rem; border: 2px dashed var(--bd2); border-radius: var(--r-lg); background: var(--fondo); text-align: center; cursor: pointer; transition: border-color var(--t), background-color var(--t); }
.ilm-drop:hover, .ilm-drop.is-arrastrando { border-color: var(--v2); background: #FAF7FF; }
.ilm-drop:focus-within { outline: 2px solid var(--v2); outline-offset: 2px; }
.ilm-drop .ilm-cuadro-ico { margin-bottom: .375rem; }
.ilm-drop strong { color: var(--v); }
.ilm-drop > span:not(.ilm-cuadro-ico) { font-size: .8125rem; color: var(--tx2); }
.ilm-archivos { display: grid; gap: .5rem; margin: .75rem 0 0; padding: 0; list-style: none; }
.ilm-archivos:empty { display: none; }
.ilm-archivos li { display: flex; align-items: center; gap: .75rem; padding: .625rem .75rem; border: 1px solid var(--bd); border-radius: var(--r); font-size: .9375rem; }
.ilm-archivos li::before { content: ""; width: 20px; height: 20px; flex: none; background: var(--v2); -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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%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='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3C/svg%3E") center / contain no-repeat; }
.ilm-archivos__nombre { flex: 1; min-width: 0; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ilm-archivos__estado { font-size: .8125rem; color: var(--tx2); white-space: nowrap; }
.ilm-archivos__pags { width: 64px; height: 32px; margin-left: .25rem; padding: 0 .375rem; border: 1px solid var(--bd2); border-radius: var(--r-sm); font-size: 16px; }
.ilm-archivos li.is-error { border-color: #F3C6C6; background: #FFF6F6; }
.ilm-archivos li.is-error .ilm-archivos__estado { color: #B42318; }
.ilm-archivos__quitar { width: 32px; height: 32px; font-size: 1.25rem; color: var(--tx2); }

.ilm-opcion { margin: 0 0 1.25rem; padding: 0; border: 0; min-width: 0; }
.ilm-opcion:last-child { margin-bottom: 0; }
.ilm-opcion legend, .ilm-opcion__lbl { display: block; margin-bottom: .5rem; padding: 0; font-size: .875rem; font-weight: 800; color: var(--v); }
.ilm-opcion__lbl small { font-weight: 500; color: var(--tx2); }
.ilm-tarjetas { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.ilm-tarjetas--3 { grid-template-columns: repeat(3, 1fr); }
.ilm-tarjeta { position: relative; display: flex; cursor: pointer; }
.ilm-tarjeta input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ilm-tarjeta__txt { display: flex; flex-direction: column; justify-content: center; gap: .125rem; width: 100%; min-height: 56px; padding: .625rem .875rem; border: 1px solid var(--bd2); border-radius: var(--r); transition: border-color var(--t), background-color var(--t); }
.ilm-tarjeta__txt strong { font-size: .9375rem; }
.ilm-tarjeta__txt small { font-size: .8125rem; color: var(--tx2); }
.ilm-tarjeta:hover .ilm-tarjeta__txt { border-color: var(--v2); }
.ilm-tarjeta input:checked + .ilm-tarjeta__txt { border-color: var(--v2); background: #FAF7FF; box-shadow: inset 0 0 0 1px var(--v2); }
.ilm-tarjeta input:focus-visible + .ilm-tarjeta__txt { outline: 2px solid var(--v2); outline-offset: 2px; }
.ilm-tarjeta.is-deshabilitada { opacity: .45; cursor: not-allowed; }
.ilm-imp textarea { width: 100%; padding: .625rem .75rem; border: 1px solid var(--bd2); border-radius: var(--r); font-size: 16px; resize: vertical; }

.ilm-imp__datos { display: grid; gap: .5rem; margin: 0 0 1rem; }
.ilm-imp__datos div { display: flex; justify-content: space-between; gap: 1rem; }
.ilm-imp__datos dt { color: var(--tx2); }
.ilm-imp__datos dd { margin: 0; font-weight: 700; }
.ilm-imp__total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1rem; padding-top: 1rem; border-top: 1px solid var(--bd); }
.ilm-imp__total span { font-weight: 800; }
.ilm-imp__total strong { font-size: 1.625rem; color: var(--v); }
.ilm-imp__nota { margin-top: .75rem; font-size: .8125rem; color: var(--tx2); }

/* ═══ Pie ══════════════════════════════════════════════ */
.ilm-pie { margin-top: 3rem; background: var(--v); color: rgba(255,255,255,.8); }
.ilm-pie__grid { display: grid; gap: 2rem; padding-block: 2.5rem 2rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 1024px) { .ilm-pie__grid { grid-template-columns: 1.2fr 1fr 1fr 1fr 1.1fr; padding-block: 3rem 2.5rem; } }
.ilm-pie__marca { grid-column: 1 / -1; }
@media (min-width: 1024px) { .ilm-pie__marca { grid-column: auto; } }
.ilm-pie .ilm-logo img { height: 56px; margin-bottom: 1rem; }
.ilm-pie__titulo { margin-bottom: .875rem; color: #fff; font-size: .9375rem; font-weight: 800; }
.ilm-pie ul { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; font-size: .875rem; }
.ilm-pie a { color: rgba(255,255,255,.8); text-decoration: none; }
.ilm-pie a:hover { color: #fff; text-decoration: underline; }
.ilm-pie__datos li { display: flex; gap: .5rem; align-items: flex-start; }
.ilm-pie__datos .ilm-i { width: 18px; height: 18px; margin-top: 1px; color: var(--am); }
.ilm-pie__col--acciones { display: flex; flex-direction: column; gap: .625rem; grid-column: 1 / -1; }
@media (min-width: 1024px) { .ilm-pie__col--acciones { grid-column: auto; } }
.ilm-pie__col--acciones .ilm-pie__titulo { margin-bottom: .25rem; }
.ilm-pie__col--acciones .ilm-btn { min-height: 42px; font-size: .875rem; }
.ilm-pie__col--acciones .ilm-btn:hover { text-decoration: none; }
.ilm-pie__redes { display: flex !important; gap: 1rem !important; }
.ilm-pie__legal { padding-block: 1rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .75rem; color: rgba(255,255,255,.6); text-align: center; }
.ilm-pie__base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; padding-block: 1rem 1.5rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .8125rem; }
.ilm-pie__sellos { display: flex; align-items: center; gap: 1rem; }
.ilm-pie__df { width: 48px; height: auto; border-radius: 4px; background: #fff; }
@media (max-width: 781px) { .ilm-pie { margin-top: 2rem; } }

/* ═══ Buscar por lista ═════════════════════════════════ */
.ilm-lista { padding-block: 1.5rem 3.5rem; }
.ilm-lista__cab h1 { font-size: clamp(1.5rem, 3.5vw, 2.25rem); }
.ilm-lista__cab > p:last-child { margin-top: .375rem; color: var(--tx2); max-width: 64ch; }
.ilm-lista__form { margin-top: 1.25rem; padding: 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
.ilm-lista__form textarea { width: 100%; padding: .875rem 1rem; border: 1px solid var(--bd2); border-radius: var(--r); font-size: 16px; line-height: 1.6; resize: vertical; }
.ilm-lista__form textarea:focus { border-color: var(--v2); outline: none; box-shadow: 0 0 0 3px rgba(124,63,228,.15); }
.ilm-lista__acciones { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .875rem; }
.ilm-lista__nota { font-size: .8125rem; color: var(--tx2); }
@media (max-width: 599px) { .ilm-lista__acciones .ilm-btn { width: 100%; } }
.ilm-lista__resumen { margin: 1.75rem 0 .75rem; font-weight: 700; color: var(--tx2); }
.ilm-lista__resultados { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ilm-renglon { padding: 1rem 1.25rem 1.25rem; background: var(--sup); border: 1px solid var(--bd); border-radius: var(--r-lg); }
.ilm-renglon__cab { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-bottom: .875rem; }
.ilm-renglon__num { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: none; border-radius: 50%; background: var(--v); color: #fff; font-size: .8125rem; font-weight: 800; }
.ilm-renglon__cab h2 { font-size: 1.0625rem; }
.ilm-renglon__cant { padding: .125rem .5rem; border-radius: var(--r-sm); background: var(--am); font-size: .8125rem; font-weight: 800; }
.ilm-renglon__cab .ilm-enlace-flecha { margin-left: auto; font-size: .875rem; }
.ilm-renglon--vacio .ilm-renglon__cab { margin-bottom: .375rem; }
.ilm-renglon__nada { padding-left: 2.25rem; color: var(--tx2); font-size: .9375rem; }
.ilm-renglon div.ilm-fila ul.products > li.product { flex-basis: calc((100% - 4rem) / 5); }
@media (max-width: 1099px) { .ilm-renglon div.ilm-fila ul.products > li.product { flex-basis: calc((100% - 2rem) / 3); } }
@media (max-width: 699px) { .ilm-renglon { padding-inline: 1rem; } .ilm-renglon div.ilm-fila ul.products > li.product { flex-basis: 46%; } }
.ilm-drawer__cuerpo .ilm-acordeon { margin: 0 .5rem; }
.ilm-drawer__cuerpo .ilm-acordeon summary { padding: .625rem .5rem; }
