/* Auditoría de legibilidad 2026 · capa final no destructiva */
:root {
  --es-readable-body: clamp(1rem, .96rem + .12vw, 1.08rem);
  --es-readable-secondary: clamp(.875rem, .84rem + .08vw, .98rem);
  --es-readable-micro: clamp(.75rem, .72rem + .06vw, .82rem);
  --es-readable-control: clamp(.9375rem, .9rem + .08vw, 1rem);
}

body { font-size: var(--es-readable-body); }

.es-polished header > .container { width: min(96vw, 1680px) !important; }
.es-polished header nav { gap: clamp(1rem, 1.4vw, 1.5rem) !important; }
.es-polished header nav a { font-size: clamp(.9375rem, .9rem + .08vw, 1rem); white-space: nowrap; }

.filter-btn,
.es-special-toggle,
.es-product-add,
.es-product-links a,
.es-game-card__btn,
#consultorio button,
#ruleta-arcade button {
  min-height: 44px;
  font-size: var(--es-readable-control);
}

.es-catalog-toolbar input,
.es-catalog-toolbar select { font-size: 1rem !important; }

.tooltip-text-filtro,
.empanada-tooltip-v2 span { font-size: .8125rem !important; line-height: 1.35; }

.es-hero-visual::after,
.es-hero .empanada-trust-item small,
.es-stock-card small,
.es-special-toggle small,
.es-product-badge,
.es-game-card__badge { font-size: .75rem; line-height: 1.35; }

.es-product-meta > span,
.es-product-meta small,
.es-product-price small { font-size: var(--es-readable-micro); }

.product-card h3,
html.dark .product-card h3 { font-size: clamp(1.125rem, 1.04rem + .22vw, 1.31rem) !important; }

.es-product-description,
html.dark .es-product-description { font-size: clamp(.9375rem, .9rem + .08vw, 1rem) !important; line-height: 1.62 !important; }

.es-product-price strong { font-size: clamp(1.2rem, 1.08rem + .2vw, 1.38rem); }

.es-minijuegos-pill,
.es-games-banner__label,
.empanada-pro-pill,
.arcade-sarcasm-badge { font-size: .8125rem; }

.es-game-card__desc,
.es-minijuegos-subtitle,
.es-games-banner__desc { font-size: var(--es-readable-secondary); line-height: 1.6; }

/* Carrito: toda información operativa queda entre 12 y 16 px. */
.es-cart__identity p { font-size: .75rem; }
.es-cart__identity span:not(.es-cart__mascot) { font-size: .8125rem; }
.es-cart-item__body h3 { font-size: clamp(.875rem, .84rem + .08vw, 1rem); line-height: 1.4; }
.es-cart-item__unit { font-size: .8125rem !important; }
.es-cart-item__subtotal { font-size: .9375rem; }
.es-cart-quantity { grid-template-columns: 44px 34px 44px; min-height: 44px; }
.es-cart-quantity button,
.es-cart-item__remove { min-width: 44px; min-height: 44px; }
.es-cart-quantity output { font-size: .875rem; }
.es-cart__assurance strong { font-size: .8125rem; }
.es-cart__assurance small { font-size: .75rem; line-height: 1.4; }
.es-cart__total { font-size: 1rem; }
.es-cart__total small { font-size: .75rem; }
#btnRealizarCompra { min-height: 54px; font-size: 1rem !important; }
.es-cart__clear { min-height: 44px; font-size: .8125rem; }
.es-cart-empty p { font-size: .9375rem; }
.es-cart-empty a { min-height: 44px; font-size: .9375rem; }
.es-cart-toast strong { font-size: .875rem; }
.es-cart-toast span { font-size: .75rem; line-height: 1.4; }
.es-cart-toast button { min-height: 44px; font-size: .8125rem; }

/* Checkout y modal: botones tocables y microtexto legible. */
#checkoutModal .text-xs,
#serviceModal .text-xs { font-size: .8125rem !important; }
#checkoutModal .text-sm,
#serviceModal .text-sm { font-size: .9375rem !important; line-height: 1.55; }
#checkoutModal button,
#checkoutModal a,
#serviceModal button,
#serviceModal a { min-height: 44px; }

#footer-nosotros .text-sm,
footer .text-sm { font-size: .875rem; line-height: 1.55; }

@media (max-width: 640px) {
  input, select, textarea { font-size: 16px !important; }
  .es-floating-dock > button,
  .es-floating-dock > a { width: 46px !important; height: 46px !important; min-width: 46px; min-height: 46px; }
  .es-cart-item__actions { justify-content: space-between; }
}

/* Entre laptop y desktop ancho, el menú compacto evita enlaces partidos. */
@media (min-width: 1024px) and (max-width: 1399px) {
  .es-polished header .container > div > nav.hidden,
  .es-polished header .container > div > div.hidden.lg\:flex { display: none !important; }
  .es-polished header .container > div > div.lg\:hidden { display: flex !important; }
}

@media (min-width: 1400px) and (max-width: 1599px) {
  .es-polished header .container > div > div.hidden.lg\:flex > div:first-child { display: none; }
  .es-polished header .container > div > div.hidden.lg\:flex { gap: .6rem !important; }
  .es-polished header .container > div > div.hidden.lg\:flex > a:last-child { padding-inline: 1rem; }
}
