/* ============================================================
   ALL IN-GT — Light Modern Minimal
   Blanco + negro + gris, rojo de marca como único acento
   Tipografía Outfit (según el diseño de Figma "All in GT")
   La fuente se carga desde el <head><meta charset="utf-8"> del layout (link a Google Fonts).
   ============================================================ */

:root {
  /* Base — grises FRÍOS de Tailwind (exactos del diseño Figma) */
  --bg:      #FFFFFF;
  --bg-2:    #F9FAFB;   /* gray-50 */
  --bg-3:    #F3F4F6;   /* gray-100 */
  --surface: #FFFFFF;
  --line:    #F3F4F6;   /* gray-100 (bordes) */
  --line-2:  #E5E7EB;   /* gray-200 */
  --ink:     #111111;   /* negro del diseño */
  --ink-2:   #6B7280;   /* gray-500 — texto secundario */
  --ink-3:   #9CA3AF;   /* gray-400 — texto tenue */

  /* Paleta de marca (del logo) */
  --amber:   #F9B147;
  --orange:  #F58816;
  --tomato:  #F14726;
  --red:     #EF2F33;
  --accent:  #F14726;   /* acento principal */
  --accent-d:#DE2E17;

  /* Gradiente de marca — naranja cálido/tangerina (según estudios, más atractivo y de acción) */
  --grad-brand: linear-gradient(120deg, #F9B24A 0%, #F5871A 45%, #F14726 100%);
  --grad-brand-r: linear-gradient(120deg, #F1432A 0%, #F5731A 52%, #F9A63F 100%);

  --sans: 'Outfit', system-ui, -apple-system, 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;

  /* Radios moderados */
  --r-xs: 8px;
  --r-sm: 12px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-pill: 999px;

  /* Sombras */
  --sh-sm: 0 1px 2px rgba(14,13,12,0.04);
  --sh-md: 0 6px 22px rgba(14,13,12,0.07);
  --sh-lg: 0 20px 50px rgba(14,13,12,0.10);
  --glow: 0 10px 30px rgba(241,71,38,0.32);   /* glow de marca */
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; background: var(--bg); }
body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--bg);
  margin: 0; padding: 0;
  font-size: 15px; line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { font-family: var(--sans); cursor: pointer; }
::selection { background: var(--ink); color: #fff; }

h1,h2,h3,h4,h5,h6 {
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--ink);
  margin: 0;
}

/* Wordmark + logo mark */
.logo { gap: 10px; }
.logo-mark { flex-shrink: 0; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg,#FBA43A 0%,#F14726 55%,#DC2626 100%); box-shadow: 0 4px 12px -4px rgba(241,71,38,0.45); }
.logo-mark svg { width: 20px; height: 20px; }
.logo-text { display: flex; flex-direction: column; line-height: 1; }
.wordmark { font-size: 16px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); }
.wordmark-accent { color: #F14726; }
.logo-tagline { margin-top: 3px; font-size: 8px; font-weight: 600; letter-spacing: 0.34em; color: var(--ink-3); }

/* ── HEADER (fila única compacta) ── */
#header {
  background: #ffffff;
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 100;
  padding: 10px 18px;
}
.header-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.logo { order: 1; display: inline-flex; align-items: center; }
.header-nav { order: 2; display: none; }
.header-actions { order: 2; margin-left: auto; display: flex; gap: 6px; }
.header-search {
  order: 3; flex-basis: 100%;
  display: flex; flex-wrap: nowrap; align-items: center; gap: 9px;
  background: #fff; border: 1px solid var(--line-2); border-radius: var(--r-pill);
  padding: 0 16px; height: 42px; min-height: 42px; box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s; color: var(--ink-2);
}
.header-search:hover { border-color: var(--ink-3); }
.header-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(241,71,38,0.10); }
.header-search > svg { flex: 0 0 auto; }
.header-search input {
  flex: 1 1 auto; width: 100%; min-width: 0; height: 100%;
  border: none !important; background: transparent !important; box-shadow: none !important;
  font-size: 14px; color: var(--ink); outline: none; font-family: var(--sans); padding: 0; margin: 0;
}
.header-search input::placeholder { color: var(--ink-3); }
.header-action-btn {
  width: 40px; height: 40px; background: transparent; border: none; border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center; color: var(--ink); text-decoration: none;
  transition: all 0.16s; position: relative;
}
.header-action-btn:hover { background: var(--bg-2); }
.cart-count {
  position: absolute; top: 0; right: 0;
  min-width: 17px; height: 17px; background: var(--accent); color: #fff;
  border-radius: var(--r-pill); font-size: 10px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; padding: 0 5px; border: 2px solid #fff;
}

/* Header de una sola fila (desktop/tablet ≥768) — idéntico al Figma: logo · nav · buscador · acciones */
@media (min-width: 768px) {
  #header { padding: 0 24px; }
  .header-bar { flex-wrap: nowrap; height: 60px; gap: 14px; }
  .header-nav {
    order: 2; display: flex; gap: 1px; flex-shrink: 0; min-width: 0;
  }
  .header-nav a {
    padding: 6px 10px; border-radius: 8px; font-size: 13.5px; font-weight: 500; color: var(--ink-2);
    transition: color 0.16s, background 0.16s; white-space: nowrap;
  }
  .header-nav a:hover { color: var(--ink); background: var(--bg-2); }
  .header-search { order: 3; flex: 1 1 0; min-width: 0; max-width: 280px; height: 40px; margin-left: auto; }
  .header-actions { order: 4; margin-left: 0; flex-shrink: 0; }
  .logo { flex-shrink: 0; }
}
/* En pantallas anchas el buscador respira más */
@media (min-width: 1180px) {
  .header-nav a { padding: 6px 13px; font-size: 14px; }
  .header-search { max-width: 300px; }
}

/* ── TIRA DE CATEGORÍAS (solo móvil) — pills tech ── */
#allingt-nav {
  display: flex; gap: 8px; overflow-x: auto;
  background: #fff; border-bottom: 1px solid var(--line);
  padding: 10px 14px; scrollbar-width: none;
}
#allingt-nav::-webkit-scrollbar { display: none; }
#allingt-nav a {
  flex-shrink: 0; padding: 8px 15px; font-size: 13px; font-weight: 600; color: var(--ink-2);
  white-space: nowrap; transition: all 0.18s;
  background: var(--bg-2); border: 1px solid transparent; border-radius: var(--r-pill);
}
#allingt-nav a:hover { color: var(--ink); border-color: var(--line-2); }
#allingt-nav a.current { color: #fff; background: var(--grad-brand); border-color: transparent; box-shadow: var(--glow); }
@media (min-width: 768px) { #allingt-nav { display: none; } }

/* ── MENÚ DESPLEGABLE DE CATEGORÍAS (solo móvil) ── */
.allingt-cat-btn { display: none; }
.allingt-cat-drawer { display: none; }
@media (max-width: 767px) {
  .allingt-cat-btn { display: flex; }
  .allingt-cat-btn.is-open { background: var(--bg-2); }
  .allingt-cat-drawer.is-open {
    display: flex; flex-direction: column;
    background: #fff; border-bottom: 1px solid var(--line);
    padding: 4px 14px 8px;
  }
  .allingt-cat-drawer a {
    padding: 13px 4px; font-size: 14.5px; font-weight: 600; color: var(--ink);
    border-bottom: 1px solid var(--line);
  }
  .allingt-cat-drawer a:last-child { border-bottom: none; }
  .allingt-cat-drawer a:active { background: var(--bg-2); }
}

/* ── HERO BANNER (editorial, alto contraste) ── */
.allingt-banner { position: relative; padding: 18px 16px 0; }
.banner-track {
  display: flex; gap: 14px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.banner-track::-webkit-scrollbar { display: none; }
.banner-slide {
  flex: 0 0 100%; scroll-snap-align: center;
  height: 360px; position: relative; overflow: hidden;
  border-radius: var(--r-lg);
  background: #fff;   /* base blanca: el producto siempre queda sobre blanco */
  display: block;
}
/* panel de color con borde diagonal — extensión MÁX 52% (el producto arranca en 58%) */
.banner-slide::before {
  content: ''; position: absolute; inset: 0; z-index: 0;
  background: var(--grad-brand-r);
  clip-path: polygon(0 0, 52% 0, 44% 100%, 0 100%);
}
/* brillo suave para profundidad */
.banner-slide::after {
  content: ''; position: absolute; left: 6%; top: -20%;
  width: 40%; height: 140%; z-index: 0;
  background: radial-gradient(circle, rgba(255,255,255,0.28), transparent 62%);
  pointer-events: none;
}
.banner-media {
  position: absolute; right: 1.5%; top: 50%; transform: translateY(-50%);
  width: 44%; height: 92%; z-index: 1;
  display: flex; align-items: center; justify-content: center;
}
.banner-media img { width: 100%; height: 100%; object-fit: contain; }
.banner-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 34px 30px; z-index: 2; }
.banner-tag {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.22); color: #fff;
  border: 1px solid rgba(255,255,255,0.35); backdrop-filter: blur(4px);
  font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 6px 12px; border-radius: var(--r-pill); margin-bottom: 16px; align-self: flex-start;
}
.banner-title {
  font-size: 30px; font-weight: 800; color: #fff;
  line-height: 1.02; letter-spacing: -0.045em; margin-bottom: 22px; max-width: 46%;
  text-shadow: 0 2px 20px rgba(0,0,0,0.18);
}
.banner-cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; color: var(--ink); border-radius: var(--r-pill);
  padding: 13px 24px; font-size: 14px; font-weight: 700; align-self: flex-start;
  transition: transform 0.18s, box-shadow 0.18s; box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}
.banner-cta svg { stroke: currentColor !important; }
.banner-slide:hover .banner-cta { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,0.25); }
.banner-dots { display: flex; justify-content: center; gap: 7px; padding: 18px 0 2px; }
.banner-dot { width: 7px; height: 7px; background: var(--line-2); border-radius: 50%; cursor: pointer; transition: all 0.25s; border: none; }
.banner-dot.active { width: 26px; background: var(--grad-brand); border-radius: var(--r-pill); }

/* ── BENEFICIOS ── */
.allingt-benefits {
  display: flex; gap: 12px; overflow-x: auto; scrollbar-width: none;
  padding: 20px 16px 4px; margin: 22px 16px 0;
}
@media (min-width: 768px) { .allingt-benefits { margin: 26px auto 0; max-width: 1160px; padding: 0 18px; justify-content: space-between; } }
.allingt-benefits::-webkit-scrollbar { display: none; }
.benefit-item {
  flex: 1 0 auto; display: flex; align-items: center; gap: 12px;
  padding: 14px 18px; white-space: nowrap;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.benefit-item:hover { border-color: var(--line-2); box-shadow: var(--sh-sm); }
.benefit-icon {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center; color: #fff;
}
.benefit-item:nth-child(1) .benefit-icon { background: var(--amber); }
.benefit-item:nth-child(2) .benefit-icon { background: var(--orange); }
.benefit-item:nth-child(3) .benefit-icon { background: var(--tomato); }
.benefit-item:nth-child(4) .benefit-icon { background: #25D366; }
.benefit-title { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.benefit-sub { font-size: 12px; color: var(--ink-2); }

/* ── SECCIÓN ── */
.allingt-section { padding: 48px 0 0; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; padding: 0 18px; margin-bottom: 22px; gap: 12px; }
.section-title { font-size: 25px; font-weight: 800; color: var(--ink); letter-spacing: -0.045em; position: relative; padding-left: 16px; }
.section-title::before { content: ''; position: absolute; left: 0; top: 8%; bottom: 8%; width: 5px; border-radius: var(--r-pill); background: var(--grad-brand); }
.section-link { font-size: 14px; font-weight: 700; color: var(--accent); white-space: nowrap; transition: opacity 0.18s; }
.section-link:hover { opacity: 0.7; }

/* ── CATEGORÍAS (tarjetas horizontales) ── */
.cat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 18px; }
.cat-item {
  display: flex; align-items: center; gap: 14px;
  color: var(--ink); text-decoration: none;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: 16px 16px;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.cat-item:hover { transform: translateY(-3px); border-color: transparent; box-shadow: var(--glow); }
.cat-item > div:not(.cat-icon) { min-width: 0; flex: 1; }
.cat-label { overflow-wrap: anywhere; }
.cat-icon {
  width: 48px; height: 48px; flex-shrink: 0;
  border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center; color: #fff; transition: all 0.2s;
}
/* cada categoría con un color de la marca */
.cat-item:nth-child(1) .cat-icon { background: var(--amber); }
.cat-item:nth-child(2) .cat-icon { background: var(--orange); }
.cat-item:nth-child(3) .cat-icon { background: var(--tomato); }
.cat-item:nth-child(4) .cat-icon { background: var(--red); }
.cat-item:nth-child(5) .cat-icon { background: var(--orange); }
.cat-item:nth-child(6) .cat-icon { background: var(--tomato); }
.cat-item:hover .cat-icon { transform: scale(1.08) rotate(-4deg); }
.cat-label { font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: -0.015em; }
.cat-sub { font-size: 12px; font-weight: 500; color: var(--ink-2); margin-top: 2px; }
.cat-arrow { margin-left: auto; color: var(--ink-3); flex-shrink: 0; transition: transform 0.2s, color 0.2s; }
.cat-item:hover .cat-arrow { color: var(--ink); transform: translateX(4px); }

/* ── MARCAS ── */
.brands-scroll { display: flex; gap: 10px; overflow-x: auto; padding: 0 18px 4px; scrollbar-width: none; }
.brands-scroll::-webkit-scrollbar { display: none; }
.brand-pill {
  flex-shrink: 0; background: var(--surface);
  border-radius: var(--r-md); padding: 14px 20px 14px 14px;
  display: flex; align-items: center; gap: 12px; text-decoration: none;
  box-shadow: inset 0 0 0 1px var(--line);   /* borde estable (no parpadea al presionar) */
  transition: transform 0.2s, box-shadow 0.2s;
}
.brand-pill:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px transparent, 0 12px 26px rgba(241,71,38,0.16); }
.brand-badge {
  width: 40px; height: 40px; flex-shrink: 0; border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 800; font-size: 14px; letter-spacing: -0.02em;
}
.brand-amber  .brand-badge { background: var(--amber); }
.brand-orange .brand-badge { background: var(--orange); }
.brand-tomato .brand-badge { background: var(--tomato); }
.brand-red    .brand-badge { background: var(--red); }
.brand-name { font-size: 15px; font-weight: 700; color: var(--ink); }
.brand-count { font-size: 12px; color: var(--ink-2); }

/* ── TABS (home) ── */
.allingt-tabs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 0 18px; margin-bottom: 6px; }
.allingt-tabs::-webkit-scrollbar { display: none; }
.tab-btn {
  flex-shrink: 0; padding: 10px 16px; font-size: 14px; font-weight: 600;
  color: var(--ink-2); background: none; border: none; border-radius: 0; cursor: pointer;
  white-space: nowrap; font-family: var(--sans); transition: color 0.18s; border-bottom: 2px solid transparent;
}
.tab-btn.active { color: var(--ink); border-bottom-color: var(--ink); }
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fadeIn 0.25s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ── PRODUCTO DESTACADO (hero, si se usa) ── */
.hero-product { margin: 16px 18px 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; text-decoration: none; display: flex; align-items: stretch; min-height: 160px; }
.hero-product-img { width: 160px; flex-shrink: 0; background: var(--bg-2); display: flex; align-items: center; justify-content: center; padding: 16px; }
.hero-product-img img { width: 100%; object-fit: contain; }
.hero-product-body { flex: 1; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; }
.hero-product-badge { display: inline-flex; gap: 5px; background: var(--accent); border-radius: var(--r-pill); padding: 4px 10px; font-size: 10px; font-weight: 700; text-transform: uppercase; color: #fff; align-self: flex-start; margin-bottom: 8px; }
.hero-product-brand { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 4px; }
.hero-product-name { font-size: 15px; font-weight: 700; color: var(--ink); line-height: 1.3; margin-bottom: 8px; }
.hero-product-price { font-size: 24px; font-weight: 800; color: var(--ink); letter-spacing: -0.03em; }
.hero-product-price small { font-size: 11px; font-weight: 500; color: var(--ink-3); }

/* ── GRID PRODUCTOS ── */
.products-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 18px 18px 0; }
.product-card {
  background: var(--surface); border-radius: var(--r-md); overflow: hidden;
  border: 1px solid var(--line); text-decoration: none; color: var(--ink);
  display: flex; flex-direction: column; position: relative;
  transition: transform 0.22s cubic-bezier(0.16,1,0.3,1), box-shadow 0.22s, border-color 0.22s;
}
.product-card:hover { transform: translateY(-6px); box-shadow: 0 26px 50px rgba(241,71,38,0.18); border-color: rgba(241,71,38,0.35); }
.product-thumbnail {
  background: linear-gradient(180deg, #FFFFFF 0%, #FCFAF7 100%);
  border-bottom: 1px solid var(--line);
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative;
}
/* Brillo suave de marca detrás del producto (aparece al hover) */
.product-thumbnail::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 0.35s;
  background: radial-gradient(60% 60% at 50% 42%, rgba(241,71,38,0.12) 0%, rgba(249,177,71,0.06) 45%, rgba(255,255,255,0) 72%);
}
.product-card:hover .product-thumbnail::before { opacity: 1; }
.product-thumbnail img { position: relative; z-index: 1; width: 84%; object-fit: contain; transition: transform 0.45s cubic-bezier(0.16,1,0.3,1); }
.product-card:hover .product-thumbnail img { transform: scale(1.07) translateY(-2px); }
.product-flag {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  background: rgba(14,13,12,0.92); color: #fff;
  font-size: 9.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  padding: 5px 10px; border-radius: var(--r-pill);
  box-shadow: 0 4px 12px rgba(0,0,0,0.16); backdrop-filter: blur(2px);
}
.product-flag.new { background: rgba(14,13,12,0.92); }
.product-flag.sale { background: var(--grad-brand); font-size: 11px; padding: 5px 11px; box-shadow: 0 5px 14px rgba(241,71,38,0.42); }
.product-body { padding: 14px 14px 16px; flex: 1; display: flex; flex-direction: column; }
.product-brand { font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 5px; }
.product-name { font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.35; flex: 1; margin-bottom: 10px; }

.stock-bar-wrap { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.stock-bar { flex: 1; height: 3px; background: var(--bg-3); border-radius: var(--r-pill); overflow: hidden; }
.stock-fill { height: 100%; border-radius: var(--r-pill); background: var(--accent); }
.stock-fill.medium { background: var(--ink-2); }
.stock-fill.ok { background: var(--ink); }
.stock-label { font-size: 10px; font-weight: 600; color: var(--accent); white-space: nowrap; flex-shrink: 0; }
.stock-label.medium { color: var(--ink-2); }
.stock-label.ok { color: var(--ink-2); }

.product-price-row { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.product-price-group { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.product-price { font-size: 18px; font-weight: 800; color: var(--ink); letter-spacing: -0.03em; }
.product-price small { font-size: 10px; font-weight: 500; color: var(--ink-3); }
.product-price-group.is-discounted .product-price { color: var(--accent); }
.product-price-old { font-size: 12px; color: var(--ink-3); text-decoration: line-through; }
.product-add-btn {
  position: relative; width: 38px; height: 38px; background: var(--grad-brand); border: none; border-radius: var(--r-sm);
  color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer;
  flex-shrink: 0; font-size: 20px; line-height: 1; transition: transform 0.16s, box-shadow 0.16s; box-shadow: var(--glow);
}
.product-add-btn:hover { transform: scale(1.08); box-shadow: 0 8px 22px rgba(241,71,38,0.5); }
.product-add-btn:active { transform: scale(0.94); }

/* ── STRIP DESTACADO ── */
.brand-strip {
  margin: 0 18px; border-radius: var(--r-lg); padding: 44px 32px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  background: #14100C; color: #fff; position: relative; overflow: hidden;
}
/* glow de marca */
.brand-strip::before { content: ''; position: absolute; right: -80px; bottom: -120px; width: 380px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(241,71,38,0.55), rgba(245,136,22,0.2) 45%, transparent 70%); filter: blur(20px); pointer-events: none; }
.brand-strip-content { flex: 1; position: relative; z-index: 1; }
.brand-strip-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.1); border-radius: var(--r-pill); padding: 5px 12px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: #fff; margin-bottom: 14px;
}
.brand-strip-title { font-size: 26px; font-weight: 800; color: #fff; letter-spacing: -0.04em; margin-bottom: 6px; }
.brand-strip-sub { font-size: 13px; color: rgba(255,255,255,0.65); max-width: 280px; }
.brand-strip-btn {
  background: #fff; color: var(--ink); border-radius: var(--r-pill);
  padding: 13px 22px; font-size: 14px; font-weight: 700; text-decoration: none;
  flex-shrink: 0; white-space: nowrap; position: relative; z-index: 1; transition: transform 0.18s;
}
.brand-strip-btn:hover { transform: translateX(3px); }

/* ── ACORDEÓN ── */
.accord-list { padding: 0 18px; display: flex; flex-direction: column; gap: 10px; }
.accord-item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; transition: border-color 0.2s; }
.accord-item.open { border-color: var(--ink); }
.accord-head { padding: 17px 18px; display: flex; align-items: center; gap: 14px; cursor: pointer; }
.accord-icon { width: 40px; height: 40px; background: var(--bg-2); border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; color: var(--ink); flex-shrink: 0; }
.accord-title { font-size: 15px; font-weight: 700; color: var(--ink); }
.accord-sub { font-size: 12px; color: var(--ink-2); margin-top: 1px; }
.accord-chev { color: var(--ink-3); margin-left: auto; transition: transform 0.3s; }
.accord-item.open .accord-chev { transform: rotate(180deg); color: var(--ink); }
.accord-body { max-height: 0; overflow: hidden; transition: max-height 0.35s cubic-bezier(0.16,1,0.3,1); }
.accord-item.open .accord-body { max-height: 180px; }
.accord-inner { padding: 0 18px 18px 72px; font-size: 13px; color: var(--ink-2); line-height: 1.65; }

/* ── NEWSLETTER ── */
.allingt-newsletter { margin: 0 18px; border-radius: var(--r-lg); padding: 40px 28px; background: var(--bg-2); border: 1px solid var(--line); text-align: center; }
.newsletter-title { font-size: 26px; font-weight: 800; color: var(--ink); letter-spacing: -0.04em; margin-bottom: 6px; }
.newsletter-sub { font-size: 14px; color: var(--ink-2); margin-bottom: 20px; }
.newsletter-form { display: flex; gap: 10px; max-width: 440px; margin: 0 auto; }
.newsletter-input { flex: 1; background: #fff; border: 1px solid var(--line-2); border-radius: var(--r-sm); padding: 0 18px; height: 50px; font-size: 14px; color: var(--ink); outline: none; font-family: var(--sans); }
.newsletter-input::placeholder { color: var(--ink-3); }
.newsletter-input:focus { border-color: var(--ink); }
.newsletter-btn { background: var(--grad-brand); border: none; border-radius: var(--r-sm); padding: 0 26px; height: 50px; font-size: 14px; font-weight: 700; color: #fff; font-family: var(--sans); cursor: pointer; transition: transform 0.18s, box-shadow 0.18s; box-shadow: var(--glow); }
.newsletter-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(241,71,38,0.45); }

/* ── FOOTER ── */
#footer { background: #fff; border-top: 1px solid var(--line); padding: 28px 18px 30px; margin-top: 36px; }
@media (max-width: 767px) { #footer { padding-bottom: 92px; } } /* espacio para el bottom-nav móvil */
.footer-logo { display: inline-flex; align-items: center; margin-bottom: 16px; background: #FEFAF1; border-radius: var(--r-md); padding: 8px 14px; overflow: hidden; transition: box-shadow 0.25s, transform 0.25s; }
.footer-logo img { width: 108px; height: auto; display: block; transition: transform 0.35s cubic-bezier(0.16,1,0.3,1); }
.footer-logo:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(241,71,38,0.18); }
.footer-logo:hover img { transform: scale(1.08) rotate(-1.5deg); }
.footer-desc { font-size: 12.5px; color: var(--ink-2); line-height: 1.6; margin-bottom: 14px; max-width: 300px; }
.footer-social { display: flex; gap: 8px; margin-bottom: 18px; }
.footer-soc { width: 42px; height: 42px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-sm); display: flex; align-items: center; justify-content: center; text-decoration: none; color: var(--ink-2); transition: all 0.16s; }
.footer-soc:hover { color: #fff; background: var(--ink); border-color: var(--ink); }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding-top: 18px; border-top: 1px solid var(--line); margin-bottom: 16px; }
.footer-col h5 { font-size: 10px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 10px; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 8px; padding: 0; margin: 0; }
.footer-col ul a { font-size: 14px; color: var(--ink-2); font-weight: 500; transition: color 0.15s; }
.footer-col ul a:hover { color: var(--ink); }
.footer-copy { font-size: 12px; color: var(--ink-3); padding-top: 14px; border-top: 1px solid var(--line); text-align: center; }
/* Footer compacto en desktop: marca a la izquierda, enlaces a la derecha */
@media (min-width: 768px) {
  #footer { max-width: 1160px; margin: 36px auto 0; display: grid; grid-template-columns: 1.5fr 1fr; column-gap: 48px; align-items: start; }
  .footer-logo { grid-column: 1; grid-row: 1; }
  .footer-desc { grid-column: 1; grid-row: 2; }
  .footer-social { grid-column: 1; grid-row: 3; margin-bottom: 0; }
  .footer-links { grid-column: 2; grid-row: 1 / span 3; border-top: none; padding-top: 4px; margin-bottom: 0; }
  .footer-copy { grid-column: 1 / -1; grid-row: 4; margin-top: 22px; }
}

/* ── BOTTOM NAV ── */
#allingt-bottom-nav {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: rgba(255,255,255,0.92); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid var(--line); display: flex; z-index: 200; padding: 8px 0 20px;
}
.bnav-item { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; color: var(--ink-3); font-size: 10px; font-weight: 600; padding: 4px 0; position: relative; transition: color 0.15s; }
.bnav-item.active { color: var(--ink); }
.bnav-item.active::before { content: ''; position: absolute; top: 0; left: 50%; width: 22px; height: 2.5px; background: var(--ink); border-radius: 0 0 3px 3px; transform: translateX(-50%); }

/* ── WA FLOAT ── */
.wa-float { position: fixed; bottom: 84px; right: 18px; width: 56px; height: 56px; background: #25D366; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; color: #fff; box-shadow: 0 10px 26px -6px rgba(37,211,102,0.6); z-index: 198; transition: transform 0.18s; }
.wa-float:hover { transform: scale(1.06); }

/* ── UTILIDADES ── */
.text-muted { color: var(--ink-2); }

/* ── RESPONSIVE ── */
@media (min-width: 768px) {
  .products-grid { grid-template-columns: repeat(3, 1fr); }
  .cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #header { padding: 16px 30px; }
  #allingt-bottom-nav { display: none; }
  .wa-float { bottom: 28px; }
  .banner-slide { height: 480px; }
  .banner-title { font-size: 44px; max-width: 44%; }
  .banner-overlay { padding: 56px 60px; }
  .banner-media { width: 44%; }
  .allingt-benefits { justify-content: center; }
  .allingt-section { padding-top: 64px; }
  .section-title { font-size: 30px; }
}
@media (min-width: 1100px) {
  .products-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ============================================================
   PÁGINAS INTERNAS
   ============================================================ */
main#main { display: block; }
@media (min-width: 992px) {
  main#main { max-width: 1260px; margin: 0 auto; width: 100%; }
  main#main.allingt-product, main#main.allingt-listing, main#main.allingt-cart, main#main.allingt-page { padding: 0 30px 56px; }
}

/* Botones */
.btn-primary-allingt, .btn-secondary-allingt {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--sans); font-weight: 700; font-size: 14px; border-radius: var(--r-sm);
  padding: 14px 26px; cursor: pointer; border: none; text-decoration: none; transition: all 0.18s; line-height: 1;
}
.btn-primary-allingt { background: var(--grad-brand); color: #fff; box-shadow: var(--glow); }
.btn-primary-allingt:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(241,71,38,0.45); }
.btn-secondary-allingt { background: #fff; color: var(--ink); border: 1px solid var(--line-2); }
.btn-secondary-allingt:hover { border-color: var(--ink); }

/* Cabeceras */
.listing-header { padding: 32px 18px 8px; }
.listing-title { font-size: 34px; font-weight: 800; letter-spacing: -0.05em; color: var(--ink); }
.listing-desc { font-size: 14px; color: var(--ink-2); line-height: 1.6; margin-top: 10px; max-width: 660px; }

/* ── HERO DE CATEGORÍA ── */
.cat-hero { margin: 18px 0 6px; }
.cat-hero-inner {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 34px 34px; border-radius: var(--r-lg);
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(241,71,38,0.10) 0%, rgba(249,177,71,0.06) 34%, rgba(255,255,255,0) 62%),
    linear-gradient(180deg, #FFF7F1 0%, #FFFFFF 100%);
  border: 1px solid var(--line);
}
.cat-hero-inner::before {
  content: ""; position: absolute; top: -60px; right: -40px; width: 260px; height: 260px;
  background: var(--grad-brand); filter: blur(70px); opacity: 0.16; pointer-events: none; border-radius: 50%;
}
.cat-hero-inner::after {
  content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 4px;
  background: var(--grad-brand); border-radius: 0 4px 4px 0;
}
.cat-hero-text { position: relative; z-index: 1; }
.cat-hero-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 12px;
}
.cat-hero-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--grad-brand); box-shadow: 0 0 0 4px rgba(241,71,38,0.12); }
.cat-hero-title { font-size: 40px; font-weight: 800; letter-spacing: -0.055em; line-height: 1.02; color: var(--ink); }
.cat-hero-desc { font-size: 14.5px; color: var(--ink-2); line-height: 1.65; margin-top: 12px; max-width: 620px; }
.cat-hero-badge {
  position: relative; z-index: 1; flex-shrink: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 108px; height: 108px; border-radius: 24px; background: #fff;
  border: 1px solid var(--line); box-shadow: var(--shadow-sm);
}
.cat-hero-count { font-size: 38px; font-weight: 800; letter-spacing: -0.05em; line-height: 1; background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cat-hero-count-label { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); margin-top: 6px; }
@media (max-width: 700px) {
  .cat-hero { padding: 0 14px; }
  .cat-hero-inner { flex-direction: column; align-items: flex-start; padding: 24px 20px; }
  .cat-hero-title { font-size: 28px; }
  .cat-hero-badge { flex-direction: row; gap: 8px; width: auto; height: auto; padding: 10px 16px; border-radius: var(--r-pill); }
  .cat-hero-count { font-size: 22px; }
  .cat-hero-count-label { margin-top: 0; }
}
/* El hero ya muestra el conteo: evitar duplicado en la barra de orden */
#category .listing-toolbar .listing-count,
#manufacturer .listing-toolbar .listing-count { display: none; }
#category .listing-toolbar,
#manufacturer .listing-toolbar { justify-content: flex-end; }

/* ── LISTADO DE MARCAS (grid con monograma) ── */
.brands-grid { list-style: none; margin: 0; padding: 10px 0 44px; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.brand-card { display: flex; }
.brand-card-link {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%;
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px 20px 20px;
  text-decoration: none; transition: transform 0.2s cubic-bezier(0.16,1,0.3,1), box-shadow 0.2s, border-color 0.2s;
}
.brand-card-link:hover { transform: translateY(-5px); border-color: rgba(241,71,38,0.35); box-shadow: 0 20px 42px rgba(241,71,38,0.15); }
.brand-card-mono {
  width: 58px; height: 58px; border-radius: 16px; display: flex; align-items: center; justify-content: center;
  font-size: 23px; font-weight: 800; letter-spacing: -0.03em; color: #fff; background: var(--grad-brand);
  box-shadow: 0 8px 20px rgba(241,71,38,0.28); margin-bottom: 4px;
}
.brand-card-name { font-size: 16px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); line-height: 1.2; }
.brand-card-count { font-size: 12.5px; font-weight: 600; color: var(--ink-3); margin-top: -4px; }
.brand-card-cta { margin-top: 10px; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--accent); }
.brand-card-cta svg { width: 15px; height: 15px; transition: transform 0.18s; }
.brand-card-link:hover .brand-card-cta svg { transform: translateX(3px); }
/* Monograma multicolor según posición (vivo pero de marca) */
.brands-grid .brand-card:nth-child(4n+1) .brand-card-mono { background: linear-gradient(135deg, #F9B147, #F58816); box-shadow: 0 8px 20px rgba(245,136,22,0.28); }
.brands-grid .brand-card:nth-child(4n+2) .brand-card-mono { background: linear-gradient(135deg, #F58816, #F14726); box-shadow: 0 8px 20px rgba(241,71,38,0.28); }
.brands-grid .brand-card:nth-child(4n+3) .brand-card-mono { background: linear-gradient(135deg, #F14726, #EF2F33); box-shadow: 0 8px 20px rgba(239,47,51,0.28); }
.brands-grid .brand-card:nth-child(4n)   .brand-card-mono { background: linear-gradient(135deg, #EF2F33, #F9B147); box-shadow: 0 8px 20px rgba(239,47,51,0.24); }
@media (max-width: 700px) {
  .brands-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 10px 14px 40px; }
  .brand-card-link { padding: 18px 15px 16px; }
  .brand-card-mono { width: 50px; height: 50px; font-size: 20px; }
  .brand-card-name { font-size: 14.5px; }
}

/* ── HERO DE MARCA (monograma) ── */
.brand-hero-lead { position: relative; z-index: 1; display: flex; align-items: center; gap: 20px; }
.brand-mono {
  flex-shrink: 0; width: 76px; height: 76px; border-radius: 22px;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px; font-weight: 800; letter-spacing: -0.04em; color: #fff;
  background: var(--grad-brand); box-shadow: 0 12px 26px rgba(241,71,38,0.32);
}
@media (max-width: 700px) {
  .brand-hero-lead { gap: 14px; }
  .brand-mono { width: 58px; height: 58px; font-size: 23px; border-radius: 16px; }
}

/* Subcategorías — tarjetas estilo Figma (mismo lenguaje que "Categorías" del home) */
.fig-subcats-wrap { padding: 18px 18px 0; }
.fig-subcats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.fig-subcat { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; text-decoration: none; transition: border-color 0.18s, box-shadow 0.18s; }
.fig-subcat:hover { border-color: #FBCFC4; box-shadow: var(--shadow-sm); }
.fig-subcat-ico { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; transition: transform 0.18s; }
.fig-subcat-ico svg { width: 20px; height: 20px; }
.fig-subcat-ico img { width: 100%; height: 100%; object-fit: cover; }
.fig-subcat:hover .fig-subcat-ico { transform: scale(1.08); }
.fig-subcat-ico--0 { background: #FFF1EE; color: #F14726; }
.fig-subcat-ico--1 { background: #FFFBEB; color: #F59E0B; }
.fig-subcat-ico--2 { background: #FEF2F2; color: #EF4444; }
.fig-subcat-ico--3 { background: #EFF6FF; color: #3B82F6; }
.fig-subcat-txt { flex: 1; min-width: 0; }
.fig-subcat-name { font-size: 14px; font-weight: 700; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fig-subcat-sub { font-size: 11px; color: var(--ink-3); }
.fig-subcat-arrow { width: 14px; height: 14px; color: #D1D5DB; flex-shrink: 0; }
@media (max-width: 760px) { .fig-subcats { grid-template-columns: repeat(2, minmax(0,1fr)); } .fig-subcats-wrap { padding: 16px 14px 0; } }
@media (max-width: 440px) { .fig-subcats { grid-template-columns: 1fr; } }

/* Toolbar */
.listing-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px 0; flex-wrap: wrap; }
.listing-count { font-size: 13px; font-weight: 600; color: var(--ink-2); }
.listing-sort { display: flex; align-items: center; gap: 8px; }
.listing-sort label { font-size: 12px; font-weight: 600; color: var(--ink-3); }
.listing-sort select {
  font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--ink);
  background: #fff; border: 1px solid var(--line-2); border-radius: var(--r-sm);
  padding: 10px 34px 10px 14px; cursor: pointer; outline: none; appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230E0D0C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}
.listing-sort select:focus { border-color: var(--ink); }
.listing-grid { padding-top: 16px; }

/* Chips de filtro por marca (client-side, estilo Figma) */
.cat-chips {
  display: flex; align-items: center; gap: 8px;
  margin-right: auto; min-width: 0;
  overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none;
  padding: 2px 2px 4px; max-width: 100%;
}
.cat-chips::-webkit-scrollbar { display: none; }
.cat-chip {
  flex-shrink: 0; cursor: pointer; white-space: nowrap;
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 1;
  color: var(--ink-2); background: #fff;
  border: 1px solid var(--line-2); border-radius: var(--r-pill);
  padding: 9px 15px; transition: background .16s, border-color .16s, color .16s, box-shadow .16s;
}
.cat-chip:hover { border-color: var(--ink-3); color: var(--ink); }
.cat-chip.is-active {
  color: #fff; background: var(--accent); border-color: var(--accent);
  box-shadow: 0 6px 16px rgba(241,71,38,0.24);
}
.cat-chip.is-active:hover { color: #fff; }
/* Con chips presentes la toolbar alinea: chips a la izq, orden a la der */
#category .listing-toolbar:has(.cat-chips),
#manufacturer .listing-toolbar:has(.cat-chips),
.allingt-listing .listing-toolbar:has(.cat-chips) { justify-content: flex-start; }
@media (max-width: 700px) {
  .cat-chips { padding-left: 14px; }
  .listing-toolbar { padding-left: 14px; padding-right: 14px; }
}
.listing-additional-desc { padding: 28px 18px; font-size: 13px; color: var(--ink-2); line-height: 1.7; }

/* Paginación */
.allingt-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 32px 18px 8px; flex-wrap: wrap; }
.pagination-summary { font-size: 12px; color: var(--ink-3); }
.pagination-list { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0; align-items: center; }
.pagination-list .page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-sm); font-size: 14px; font-weight: 700; color: var(--ink); text-decoration: none; transition: all 0.15s; }
.pagination-list .page-link:hover { border-color: var(--ink); }
.pagination-list li.current .page-link { background: var(--ink); border-color: var(--ink); color: #fff; }
.pagination-list .page-link.disabled { opacity: 0.4; pointer-events: none; }
.pagination-list .spacer { padding: 0 4px; color: var(--ink-3); }

/* ── FICHA DE PRODUCTO ── */
.allingt-product { padding-bottom: 28px; }
.product-detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
@media (min-width: 768px) { .product-detail { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 44px; padding: 28px 18px; align-items: start; } }

.product-gallery { position: relative; padding: 20px 18px 0; }
@media (min-width: 768px) { .product-gallery { padding: 0; position: sticky; top: 100px; } }
.product-cover { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; position: relative; }
.product-cover img { width: 94%; height: 94%; object-fit: contain; margin: auto; }
.product-cover .layer { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: flex-end; padding: 14px; opacity: 0; transition: opacity 0.2s; cursor: zoom-in; }
.product-cover:hover .layer { opacity: 1; }
.product-cover .layer .zoom-in { background: var(--ink); color: #fff; border-radius: var(--r-xs); padding: 6px; font-size: 18px; }
.js-qv-mask { margin-top: 12px; overflow: hidden; }
.product-images { display: flex; gap: 8px; list-style: none; padding: 0; margin: 0; overflow-x: auto; scrollbar-width: none; }
.product-images::-webkit-scrollbar { display: none; }
.thumb-container { flex-shrink: 0; }
.product-images .thumb { width: 68px; height: 68px; object-fit: contain; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-sm); padding: 6px; cursor: pointer; transition: border-color 0.15s; }
.product-images .thumb.selected, .product-images .thumb:hover { border-color: var(--ink); }
.scroll-box-arrows { display: none; }

.product-summary { padding: 24px 18px 0; }
@media (min-width: 768px) { .product-summary { padding: 0; } }
.product-brand-tag { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); margin-bottom: 10px; }
.product-title { font-size: 32px; font-weight: 800; letter-spacing: -0.04em; line-height: 1.08; color: var(--ink); margin-bottom: 18px; }

.product-prices { margin-bottom: 24px; }
.product-price.h5, .product-prices .current-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.current-price-value { font-size: 36px; font-weight: 800; letter-spacing: -0.04em; color: var(--ink); }
.product-discount .regular-price { font-size: 15px; color: var(--ink-3); text-decoration: line-through; margin-right: 8px; }
body .discount { display: inline-block; background: var(--accent); color: #fff; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: var(--r-pill); }
/* Badge de descuento de la ficha: forzar color de marca (classic lo pinta naranja pálido) */
.allingt-product .current-price .discount,
.allingt-product .discount.discount-percentage,
.product-price .discount-percentage {
  background: var(--grad-brand) !important; color: #fff !important; font-size: 12px !important; font-weight: 800 !important;
  padding: 5px 12px !important; border-radius: var(--r-pill) !important; letter-spacing: 0.01em; box-shadow: 0 4px 12px rgba(241,71,38,0.28);
}
.tax-shipping-delivery-label { display: none !important; }
.delivery-information { display: block; margin-top: 4px; color: var(--ink-2); }
.product-desc-short { font-size: 15px; color: var(--ink-2); line-height: 1.65; margin-bottom: 24px; }
.product-desc-short p { margin: 0 0 8px; }

.product-variants { margin-bottom: 20px; }
.product-variants .product-variants-item { margin-bottom: 12px; }
.product-variants label, .product-variants .control-label { display: block; font-size: 12px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.product-variants select { font-family: var(--sans); font-size: 14px; color: var(--ink); background: #fff; border: 1px solid var(--line-2); border-radius: var(--r-sm); padding: 12px; width: 100%; max-width: 260px; outline: none; }
.product-variants ul { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.product-variants .color, .product-variants .texture { width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--line-2); cursor: pointer; display: block; }
.product-variants input:checked + span.color, .product-variants input:checked + span.texture { border-color: var(--ink); }

.product-add-to-cart { margin-bottom: 20px; }
.product-add-to-cart .control-label { display: block; font-size: 12px; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.product-quantity { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; }
.product-quantity .qty { flex-shrink: 0; }
.product-quantity .add { min-width: 0; }
.product-quantity .wishlist-button-add { flex-shrink: 0; }
.product-quantity .qty #quantity_wanted { width: 68px; height: 56px; text-align: center; font-size: 16px; font-weight: 700; font-family: var(--sans); color: var(--ink); background: #fff; border: 1px solid var(--line-2); border-radius: var(--r-sm); outline: none; }
.product-quantity .add { flex: 1; }
.product-quantity .add .btn, .btn.add-to-cart {
  width: 100%; height: 56px; background: linear-gradient(135deg,#F59E0B,#F14726,#DC2626); color: #fff; border: none; border-radius: var(--r-md);
  font-family: var(--sans); font-size: 15px; font-weight: 700; cursor: pointer; text-transform: none;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  transition: transform 0.18s, box-shadow 0.18s; box-shadow: var(--glow);
}
.product-quantity .add .btn:hover:not([disabled]), .btn.add-to-cart:hover:not([disabled]) { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(241,71,38,0.45); }
.btn.add-to-cart[disabled] { background: var(--bg-3); color: var(--ink-3); cursor: not-allowed; box-shadow: none; }
.btn.add-to-cart .material-icons { font-size: 20px; }
#product-availability { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 13px; font-weight: 600; }
.product-available { color: var(--ink); }
.product-last-items { color: var(--accent); }
.product-unavailable { color: var(--accent); }
.product-minimal-quantity { font-size: 12px; color: var(--ink-3); margin-top: 8px; }

.product-reassurance { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.product-reassurance .block-reassurance, .cart-reassurance .block-reassurance { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.product-reassurance .block-reassurance li, .cart-reassurance .block-reassurance li { display: flex; align-items: center; gap: 12px; }
.product-reassurance .block-reassurance li span, .cart-reassurance .block-reassurance li span { font-size: 13px; color: var(--ink-2); font-weight: 500; }
.product-reassurance .block-reassurance img, .cart-reassurance .block-reassurance img { width: 26px; height: 26px; opacity: 0.8; }

.product-tabs { padding: 0 18px; margin-top: 36px; }
.ptab-nav { display: flex; gap: 8px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.ptab-nav::-webkit-scrollbar { display: none; }
.ptab-btn { flex-shrink: 0; padding: 14px 18px; font-family: var(--sans); font-size: 14px; font-weight: 700; color: var(--ink-2); background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; margin-bottom: -1px; white-space: nowrap; transition: color 0.18s; }
.ptab-btn.active { color: var(--ink); border-bottom-color: var(--ink); }
.ptab-btn:focus { outline: none; }
.ptab-btn:focus-visible { color: var(--ink); border-bottom-color: var(--accent); }
.ptab-panel { display: none; padding: 24px 0; font-size: 14px; color: var(--ink-2); line-height: 1.75; }
.ptab-panel.active { display: block; animation: fadeIn 0.25s ease; }
.ptab-panel img { border-radius: var(--r-sm); margin: 12px 0; }
.ptab-panel .data-sheet { list-style: none; padding: 0; margin: 0; }
.ptab-panel .data-sheet dt, .ptab-panel .data-sheet dd { padding: 12px 14px; margin: 0; font-size: 13px; }
.ptab-panel .data-sheet dt { font-weight: 700; color: var(--ink); background: var(--bg-2); border-radius: var(--r-xs) var(--r-xs) 0 0; }
.ptab-panel .data-sheet dd { color: var(--ink-2); border: 1px solid var(--line); border-top: none; border-radius: 0 0 var(--r-xs) var(--r-xs); margin-bottom: 8px; }

.allingt-product .product-flags { list-style: none; padding: 0; margin: 0; position: absolute; top: 30px; left: 30px; right: auto; max-width: calc(100% - 60px); z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.product-flags:empty { display: none; }
.allingt-product .product-flag { position: static; background: var(--ink); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 5px 10px; border-radius: var(--r-pill); }
.allingt-product .product-flags .product-flag { background: #111 !important; box-shadow: none; border-radius: 999px; font-size: 11px; }

/* ── CARRITO ── */
.allingt-cart { padding-bottom: 28px; }
.cart-layout { display: grid; grid-template-columns: 1fr; gap: 16px; padding: 16px 18px 0; }
@media (min-width: 992px) { .cart-layout { grid-template-columns: 1fr 380px; align-items: start; } }
.cart-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px; margin-bottom: 12px; color: var(--ink); }
.cart-item { display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: center; }
.cart-item:last-child { border-bottom: none; }
.cart-item img, .cart__card-image img { width: 76px; height: 76px; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: var(--r-sm); padding: 6px; }
.cart-summary { position: static; }
@media (min-width: 992px) { .cart-summary { position: sticky; top: 100px; } }
.cart-summary .cart-summary-line { display: flex; justify-content: space-between; padding: 9px 0; font-size: 14px; color: var(--ink-2); }
.cart-summary .cart-total, .cart-summary .cart-summary-totals .cart-summary-line.cart-total { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 16px; font-size: 19px; font-weight: 800; color: var(--ink); }
.cart-summary .value { font-weight: 700; color: var(--ink); }
.checkout a.btn, .cart-detailed-actions .btn, a.btn-primary[href*="order"] { display: flex; width: 100%; height: 56px; align-items: center; justify-content: center; background: var(--grad-brand); color: #fff; border-radius: var(--r-sm); font-weight: 700; font-size: 15px; text-decoration: none; border: none; margin-top: 12px; transition: transform 0.18s, box-shadow 0.18s; box-shadow: var(--glow); }
.checkout a.btn:hover, .cart-detailed-actions .btn:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(241,71,38,0.45); }
.cart-continue { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink-2); margin: 4px 0 12px; }
.cart-continue:hover { color: var(--ink); }
.cart-reassurance { margin-top: 12px; }
.product-line-grid { display: flex; gap: 12px; align-items: center; width: 100%; flex-wrap: wrap; }
.cart-items { list-style: none; padding: 0; margin: 0; }

/* ── PÁGINAS GENÉRICAS ── */
.allingt-page { padding-bottom: 28px; }
.allingt-page .page-header { padding: 32px 20px 10px; }
/* Título de cuenta/login: cómodo y sin recorte (no la tipografía agresiva de listado) */
.allingt-page .page-header .listing-title,
.allingt-page .page-header h1 { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; padding-left: 1px; }
.allingt-page .page-content { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 26px; margin: 10px 18px 0; font-size: 14px; color: var(--ink-2); line-height: 1.7; }
@media (min-width: 992px) { .allingt-page .page-content { margin: 10px 0 0; } }
/* Páginas con formulario: recuadro cómodo (login angosto, datos/registro más ancho con 2 columnas) */
.allingt-page .page-content:has(.login-form) { max-width: 620px; }
.allingt-page .page-content:has(#customer-form) { max-width: 720px; padding: 32px 34px; }
@media (max-width: 560px) { .allingt-page .page-content:has(#customer-form) { padding: 22px 18px; } }
.allingt-page #customer-form { max-width: none; }
/* Grid de 2 columnas para el formulario de cuenta */
.account-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: start; }
.account-form-grid > * { min-width: 0; }
.allingt-page input, .allingt-page select, .allingt-page textarea, .allingt-page .input-group { max-width: 100%; }
.account-form-grid > .form-group.row:has(input[name="email"]),
.account-form-grid > .form-group.row:has(input[type="checkbox"]),
.account-form-grid > .form-group.row:has(textarea) { grid-column: 1 / -1; }
/* Los campos de contraseña (con botón "Mostrar") van a ancho completo para que el botón no se desborde */
.account-form-grid > .field-password-policy { grid-column: 1 / -1; }
@media (max-width: 640px) { .account-form-grid { grid-template-columns: 1fr; } }
.allingt-page .page-content h1, .allingt-page .page-content h2, .allingt-page .page-content h3 { color: var(--ink); margin: 16px 0 8px; }
.allingt-page .page-content a { color: var(--accent); font-weight: 600; }
.allingt-page .page-footer { padding: 18px; }

.account-links { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 560px) { .account-links { grid-template-columns: 1fr 1fr; } }
@media (min-width: 900px) { .account-links { grid-template-columns: 1fr 1fr 1fr; } }
.account-card { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; text-decoration: none; color: var(--ink); transition: border-color 0.18s, box-shadow 0.18s, transform 0.18s; }
.account-card:hover { border-color: #FBCFC4; box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.account-card-ico { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 0.18s; }
.account-card-ico svg { width: 22px; height: 22px; }
.account-card:hover .account-card-ico { transform: scale(1.08); }
.account-card-ico--0 { background: #FFF1EE; color: #F14726; }
.account-card-ico--1 { background: #FFFBEB; color: #F59E0B; }
.account-card-ico--2 { background: #EFF6FF; color: #3B82F6; }
.account-card-ico--3 { background: #FEF2F2; color: #EF4444; }
.account-card-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.account-card-name { font-size: 14px; font-weight: 700; color: var(--ink); }
.account-card-sub { font-size: 12px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-card-arrow { width: 15px; height: 15px; color: #D1D5DB; flex-shrink: 0; }
.account-logout { text-align: center; margin-top: 24px; }
.account-intro { font-size: 14px; color: var(--ink-2); margin: 0 0 18px; }
/* Estado vacío de las páginas de cuenta */
.account-empty { text-align: center; padding: 46px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--bg-2); }
.account-empty-ico { width: 56px; height: 56px; border-radius: 16px; background: #FFF1EE; color: #F14726; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.account-empty-ico svg { width: 26px; height: 26px; }
.account-empty-title { font-size: 17px; font-weight: 800; color: var(--ink); margin: 0 0 6px; }
.account-empty-text { font-size: 14px; color: var(--ink-3); margin: 0 auto 18px; max-width: 380px; }
/* Tablas de cuenta (pedidos / comprobantes) */
.account-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff; font-size: 13.5px; }
.account-table thead th { background: var(--bg-2); color: var(--ink); font-weight: 700; text-align: left; padding: 13px 16px; border-bottom: 1px solid var(--line); font-size: 12.5px; }
.account-table tbody td, .account-table tbody th { padding: 14px 16px; border-bottom: 1px solid var(--line); color: var(--ink-2); font-weight: 500; vertical-align: middle; }
.account-table tbody tr:last-child td, .account-table tbody tr:last-child th { border-bottom: none; }
.account-table tbody th { color: var(--ink); font-weight: 700; }
.account-table a { color: var(--accent); font-weight: 700; text-decoration: none; }
.account-table a:hover { text-decoration: underline; }
.account-table .label-pill { display: inline-block; padding: 4px 11px; border-radius: 999px; font-size: 11.5px; font-weight: 700; color: #fff; }
.account-table .order-actions { white-space: nowrap; }
.account-table .order-actions a { margin-right: 10px; }

.allingt-page form { max-width: 480px; }
.form-group, .allingt-page .form-group { margin-bottom: 16px; }
.allingt-page label, .form-control-label { display: block; font-size: 12px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.allingt-page input[type="text"], .allingt-page input[type="email"], .allingt-page input[type="password"],
.allingt-page input[type="tel"], .allingt-page input[type="number"], .allingt-page textarea, .allingt-page select,
.form-control, input.form-control, textarea.form-control, select.form-control {
  width: 100%; font-family: var(--sans); font-size: 14px; color: var(--ink); background: #fff;
  border: 1px solid var(--line-2); border-radius: var(--r-sm); padding: 13px 14px; outline: none; transition: border-color 0.15s;
}
.allingt-page input::placeholder, .allingt-page textarea::placeholder { color: var(--ink-3); }
.allingt-page input:focus, .allingt-page textarea:focus, .allingt-page select:focus, .form-control:focus { border-color: var(--ink); }
.allingt-page .btn, .allingt-page button[type="submit"], .btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--ink); color: #fff; border: none; border-radius: var(--r-sm);
  padding: 14px 28px; font-family: var(--sans); font-weight: 700; font-size: 14px; cursor: pointer; transition: background 0.18s;
}
.allingt-page .btn:hover, .allingt-page button[type="submit"]:hover, .btn-primary:hover { background: var(--accent); }
.allingt-page .btn-secondary { background: #fff; color: var(--ink); border: 1px solid var(--line-2); }
.no-account { margin-top: 16px; }
.no-account a { color: var(--accent); font-weight: 700; }
.login-form { max-width: 480px; }

/* Botón Cancelar (formularios de dirección) — que no sea link subrayado */
.cancel-address, a.cancel-address, a.js-cancel-address {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  text-decoration: none; padding: 13px 26px; border-radius: var(--r-sm);
  background: #fff; color: var(--ink); border: 1.5px solid var(--line-2);
  font-family: var(--sans); font-weight: 700; font-size: 14px; line-height: 1; cursor: pointer; transition: all 0.16s; margin-right: 10px;
}
.cancel-address:hover, a.cancel-address:hover { border-color: var(--ink); color: var(--ink); text-decoration: none; }

/* ── FORMULARIOS DE CUENTA: apilar label sobre input, look consistente ── */
.allingt-page form { max-width: 560px; }
.allingt-page .form-group.row { display: block; margin: 0 0 18px; } /* reset de los márgenes negativos de Bootstrap (-15px) que desbordaban */
.allingt-page .form-group.row > [class*="col-"] { width: 100%; max-width: 100%; flex: 0 0 100%; padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }
.allingt-page .form-control-label { text-align: left; padding: 0; margin-bottom: 8px; font-size: 12.5px; font-weight: 700; }
/* Ocultar hints de validación de nombre ("Solo se permiten caracteres...") — ruido */
.allingt-page span.form-control-comment { display: none; }
/* "Opcional" y demás comentarios de columna sí se muestran */
.allingt-page .col-md-3.form-control-comment, .allingt-page .form-text, .allingt-page .col-md-6 small { display: block; font-size: 12px; color: var(--ink-3); line-height: 1.5; margin-top: 6px; }
.allingt-page .input-group { display: flex; gap: 8px; }
.allingt-page .input-group .form-control { flex: 1; min-width: 0; }
.allingt-page .input-group .btn, .allingt-page [data-action="show-password"] { flex-shrink: 0; background: var(--bg-2); color: var(--ink-2); border: 1px solid var(--line-2); border-radius: var(--r-sm); padding: 0 16px; font-size: 12px; font-weight: 700; }
.allingt-page [data-link-action="save-customer"], .allingt-page .form-control-submit, .allingt-page button[data-link-action] {
  background: var(--grad-brand); color: #fff; box-shadow: var(--glow); border: none;
}
.allingt-page [data-link-action="save-customer"]:hover, .allingt-page .form-control-submit:hover { background: var(--grad-brand); transform: translateY(-2px); box-shadow: 0 14px 32px rgba(241,71,38,0.45); }
/* checkboxes / radios de cuenta */
.allingt-page .custom-checkbox, .allingt-page .custom-radio { display: inline-flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.allingt-page .custom-checkbox input, .allingt-page .custom-radio input { position: absolute; opacity: 0; }
.allingt-page .custom-checkbox span, .allingt-page .custom-radio span { flex-shrink: 0; width: 20px; height: 20px; border: 1.5px solid var(--line-2); background: #fff; display: inline-flex; align-items: center; justify-content: center; transition: all 0.15s; margin-top: 1px; }
.allingt-page .custom-checkbox span { border-radius: 6px; }
.allingt-page .custom-radio span { border-radius: 50%; }
.allingt-page .custom-checkbox input:checked + span, .allingt-page .custom-radio input:checked + span { border-color: var(--accent); background: var(--accent); }
.allingt-page .custom-checkbox span .checkbox-checked, .allingt-page .custom-checkbox input:checked + span::after { color: #fff; }
.allingt-page .custom-checkbox input:not(:checked) + span .checkbox-checked { display: none; }
.allingt-page .custom-radio input:checked + span::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #fff; }

/* ── DISEÑO PREMIUM DEL FORMULARIO DE CUENTA ── */
/* Encabezado con avatar */
.account-form-head { display: flex; align-items: center; gap: 14px; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.account-form-avatar { flex-shrink: 0; width: 52px; height: 52px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: var(--grad-brand); box-shadow: 0 8px 20px rgba(241,71,38,0.28); }
.account-form-avatar svg { width: 26px; height: 26px; }
.account-form-head-text { display: flex; flex-direction: column; gap: 3px; }
.account-form-title { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); }
.account-form-sub { font-size: 13px; color: var(--ink-3); line-height: 1.4; }
/* Inputs premium */
.allingt-page #customer-form .form-control,
.allingt-page .login-form .form-control {
  height: 52px; padding: 0 16px; font-size: 15px; border: 1.5px solid var(--line-2); border-radius: 12px;
  background-color: #FCFBFA; transition: border-color 0.16s, box-shadow 0.16s, background-color 0.16s;
}
.allingt-page #customer-form .form-control:hover { border-color: var(--ink-3); }
.allingt-page #customer-form .form-control:focus,
.allingt-page .login-form .form-control:focus { border-color: var(--accent); background-color: #fff; box-shadow: 0 0 0 4px rgba(241,71,38,0.12); }
.allingt-page #customer-form .form-group.row { margin-bottom: 20px; }
.allingt-page #customer-form .form-control-label { font-size: 12px; font-weight: 700; letter-spacing: 0.02em; color: var(--ink-2); margin-bottom: 9px; }
/* Íconos dentro de cada campo — sobre el WRAPPER (pseudo) para que el autofill de Chrome no los tape */
.allingt-page input[name="firstname"], .allingt-page input[name="lastname"],
.allingt-page input[name="email"], .allingt-page input[type="password"],
.allingt-page input[name="birthday"] { padding-left: 46px !important; }
.allingt-page .js-input-column { position: relative; }
.allingt-page .js-input-column::before {
  position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
  width: 19px; height: 19px; z-index: 3; pointer-events: none;
  background-repeat: no-repeat; background-position: center; background-size: contain;
}
.allingt-page .form-group:has(input[name="firstname"]) .js-input-column::before,
.allingt-page .form-group:has(input[name="lastname"]) .js-input-column::before {
  content: ''; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%23A29C93' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c1.5-4 4.5-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E");
}
.allingt-page .form-group:has(input[name="email"]) .js-input-column::before {
  content: ''; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%23A29C93' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}
.allingt-page .form-group:has(input[type="password"]) .js-input-column::before {
  content: ''; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%23A29C93' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
}
.allingt-page .form-group:has(input[name="birthday"]) .js-input-column::before {
  content: ''; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='19' viewBox='0 0 24 24' fill='none' stroke='%23A29C93' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='16' rx='2'/%3E%3Cpath d='M8 3v4M16 3v4M4 10h16'/%3E%3C/svg%3E");
}
/* Neutralizar el fondo azul del autocompletar de Chrome (mantiene el fondo e íconos correctos) */
.allingt-page input:-webkit-autofill,
.allingt-page input:-webkit-autofill:hover,
.allingt-page input:-webkit-autofill:focus,
.allingt-page input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
  transition: background-color 9999s ease-in-out 0s;
}
/* Botón MOSTRAR contraseña */
.allingt-page .input-group { align-items: stretch; }
.allingt-page .input-group .input-group-append { display: flex; }
.allingt-page .input-group .btn, .allingt-page [data-action="show-password"] {
  height: 52px; background: rgba(241,71,38,0.07) !important; color: var(--accent) !important; border: 1.5px solid rgba(241,71,38,0.22) !important;
  border-radius: 12px; padding: 0 18px; font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer; transition: all 0.16s; box-shadow: none;
}
.allingt-page .input-group .btn:hover, .allingt-page [data-action="show-password"]:hover { background: var(--accent) !important; color: #fff !important; border-color: var(--accent) !important; }
/* Botón guardar full-width y grande */
.allingt-page #customer-form .form-footer { margin-top: 8px; }
.allingt-page #customer-form [data-link-action="save-customer"] { width: 100%; height: 54px; border-radius: 12px; font-size: 15px; }

/* ══ PÁGINAS DE AUTENTICACIÓN (login/registro): panel de marca + formulario ══ */
#main #content.page-content:has(.auth-split) {
  max-width: 1080px; background: transparent; border: none; padding: 0; margin: 16px auto 0;
}
.auth-split { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 22px; align-items: stretch; }
.auth-aside {
  position: relative; overflow: hidden; border-radius: var(--r-lg); color: #fff;
  background: var(--grad-brand); padding: 40px 34px;
  display: flex; flex-direction: column; gap: 26px;
}
.auth-aside-glow { position: absolute; right: -60px; bottom: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.28), transparent 70%); pointer-events: none; }
.auth-aside-brand { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 11px; }
.auth-aside-logo { width: 40px; height: 40px; border-radius: 12px; background: rgba(255,255,255,0.16); display: inline-flex; align-items: center; justify-content: center; }
.auth-aside-logo svg { width: 22px; height: 22px; }
.auth-aside-word { font-size: 17px; font-weight: 800; letter-spacing: -0.01em; }
.auth-aside-body { position: relative; z-index: 1; margin-bottom: auto; }
.auth-aside-title { font-size: 28px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; margin: 0 0 10px; color: #fff; }
.auth-aside-sub { font-size: 14.5px; line-height: 1.55; color: rgba(255,255,255,0.9); margin: 0 0 24px; }
.auth-benefits { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.auth-benefits li { display: flex; align-items: flex-start; gap: 11px; font-size: 13.5px; font-weight: 500; line-height: 1.4; color: rgba(255,255,255,0.95); }
.auth-check { flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.2); display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.auth-check svg { width: 12px; height: 12px; }
.auth-aside-alt { position: relative; z-index: 1; font-size: 13.5px; color: rgba(255,255,255,0.9); margin: 0; }
.auth-aside-alt a { color: #fff; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.auth-main { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 34px; display: flex; flex-direction: column; justify-content: center; }
.auth-main .login-form, .auth-main .register-form, .auth-main form { max-width: none; }
/* En estas páginas el panel ya titula: ocultar el header interno del formulario y sobrantes */
.auth-main .account-form-head { display: none; }
.auth-main .register-form > p, .auth-main hr, .auth-main .no-account { display: none; }
@media (max-width: 880px) {
  #main #content.page-content:has(.auth-split) { margin-left: 14px; margin-right: 14px; }
  .auth-split { grid-template-columns: 1fr; gap: 0; }
  .auth-aside { border-radius: var(--r-lg) var(--r-lg) 0 0; padding: 26px 22px; gap: 18px; }
  .auth-aside-body { margin-bottom: 0; }
  .auth-aside-title { font-size: 23px; }
  .auth-main { border-radius: 0 0 var(--r-lg) var(--r-lg); border-top: none; padding: 26px 20px; }
}

.notifications-container, #notifications { padding: 0 18px; }
.alert { border-radius: var(--r-sm); padding: 14px 16px; font-size: 13px; margin: 12px 0; border: 1px solid var(--line); background: #fff; color: var(--ink-2); }
.alert-success { background: #F0FBF4; border-color: #C7EBD4; color: #14663A; }
.alert-danger, .alert-warning { background: #FEF3F1; border-color: #F8D3CB; color: #A32717; }

.error-404 { text-align: center; padding: 64px 18px 72px; max-width: 560px; margin: 0 auto; }
.error-404-badge { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); background: rgba(241,71,38,0.09); border: 1px solid rgba(241,71,38,0.20); padding: 6px 14px; border-radius: var(--r-pill); margin-bottom: 18px; }
.error-404-code {
  font-size: 128px; font-weight: 800; letter-spacing: -0.06em; line-height: 0.9;
  background: var(--grad-brand); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 12px 30px rgba(241,71,38,0.22));
}
.error-404-title { font-size: 27px; font-weight: 800; letter-spacing: -0.03em; color: var(--ink); margin: 18px 0 10px; }
.error-404-text { font-size: 14.5px; color: var(--ink-2); line-height: 1.6; margin-bottom: 26px; }
.error-404-links { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.error-404-search { position: relative; max-width: 380px; margin: 30px auto 0; }
.error-404-search svg { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--ink-3); pointer-events: none; }
.error-404-search input[type="text"] {
  width: 100%; font-family: var(--sans); font-size: 14px; color: var(--ink);
  background: var(--bg-2); border: 1px solid var(--line-2); border-radius: var(--r-md);
  padding: 13px 16px 13px 44px; outline: none; transition: border-color .16s, box-shadow .16s, background .16s;
}
.error-404-search input[type="text"]:focus { background: #fff; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(241,71,38,0.14); }
.error-404-search input[type="text"]::placeholder { color: var(--ink-3); }
.page-not-found .page-content { text-align: center; }

/* ── ESTADO VACÍO (listado / búsqueda sin resultados) ── */
.listing-empty { text-align: center; padding: 56px 18px 64px; max-width: 480px; margin: 0 auto; }
.listing-empty-icon {
  width: 76px; height: 76px; margin: 0 auto 20px; border-radius: 22px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-sm); color: var(--accent);
}
.listing-empty-icon svg { width: 34px; height: 34px; }
.listing-empty-title { font-size: 21px; font-weight: 800; letter-spacing: -0.03em; color: var(--ink); margin-bottom: 8px; }
.listing-empty-text { font-size: 14px; color: var(--ink-2); line-height: 1.6; margin-bottom: 24px; }
.search-hero { margin-bottom: 4px; }

/* ── TOGGLE NIT / CONSUMIDOR FINAL (checkout) ── */
.nit-toggle { display: flex; gap: 8px; margin-bottom: 10px; }
.nit-opt {
  flex: 1; font-family: var(--sans); font-size: 13px; font-weight: 700; cursor: pointer;
  padding: 11px 12px; border-radius: var(--r-sm); border: 1.5px solid var(--line-2);
  background: #fff; color: var(--ink-2); transition: all 0.16s; line-height: 1.1;
}
.nit-opt:hover { border-color: var(--ink); color: var(--ink); }
.nit-opt.active { border-color: var(--accent); color: var(--accent); background: rgba(241,71,38,0.06); box-shadow: 0 0 0 3px rgba(241,71,38,0.10); }
.form-group.nit-cf input[name="dni"] { display: none; }

/* ── PASO DE PAGO A NUESTRO ESTILO (checkout) ── */
.pay-block { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 22px 22px 20px; margin-bottom: 18px; }
.pay-field { margin-bottom: 16px; }
.pay-field:last-child { margin-bottom: 0; }
.pay-label { display: block; font-size: 12.5px; font-weight: 700; letter-spacing: 0.02em; color: var(--ink); margin-bottom: 8px; }
.pay-block .form-control { width: 100%; font-family: var(--sans); font-size: 14px; color: var(--ink); background: #fff; border: 1.5px solid var(--line-2); border-radius: var(--r-sm); padding: 12px 14px; outline: none; transition: border-color 0.16s, box-shadow 0.16s; }
.pay-block .form-control:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(241,71,38,0.10); }
.pay-block textarea.form-control { resize: vertical; min-height: 78px; line-height: 1.5; }
.pay-hint { font-size: 12px; color: var(--ink-3); line-height: 1.5; margin-top: 7px; }
.pay-note { font-size: 12.5px; color: var(--ink-2); margin-top: 4px; padding-top: 14px; border-top: 1px dashed var(--line-2); }
.pay-methods-title { font-size: 12.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.pay-methods { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (max-width: 560px) { .pay-methods { grid-template-columns: 1fr; } }
.pay-method {
  position: relative; display: flex; align-items: center; gap: 12px; cursor: pointer;
  border: 1.5px solid var(--line-2); border-radius: var(--r-sm); padding: 14px 15px; transition: all 0.16s; background: #fff;
}
.pay-method:hover { border-color: var(--ink-2); }
.pay-method input { position: absolute; opacity: 0; pointer-events: none; }
.pay-method-mark { flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--line-2); position: relative; transition: all 0.16s; }
.pay-method-mark::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--grad-brand); transform: scale(0); transition: transform 0.16s; }
.pay-method-info { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.pay-method-name { font-size: 13.5px; font-weight: 700; color: var(--ink); line-height: 1.2; }
.pay-method-desc { font-size: 11.5px; color: var(--ink-3); line-height: 1.3; }
.pay-method-ico { flex-shrink: 0; width: 24px; height: 24px; color: var(--ink-3); transition: color 0.16s; }
.pay-method input:checked ~ .pay-method-mark { border-color: var(--accent); }
.pay-method input:checked ~ .pay-method-mark::after { transform: scale(1); }
.pay-method input:checked ~ .pay-method-ico { color: var(--accent); }
.pay-method.is-selected,
.pay-method:has(input:checked) { border-color: var(--accent); background: rgba(241,71,38,0.04); box-shadow: 0 0 0 3px rgba(241,71,38,0.09); }
.pay-method.is-selected .pay-method-mark { border-color: var(--accent); }
.pay-method.is-selected .pay-method-mark::after { transform: scale(1); }
.pay-method.is-selected .pay-method-ico { color: var(--accent); }
.pay-preview-note { margin-top: 14px; font-size: 12px; color: var(--ink-2); background: rgba(249,177,71,0.12); border: 1px solid rgba(249,177,71,0.35); border-radius: var(--r-sm); padding: 10px 13px; }
.pay-preview-note strong { color: var(--ink); }

/* ══════════ CHECKOUT REAL (módulo manualcardpayment) — estilo All in GT ══════════ */
.allin-hidden { display: none !important; }
.allin-payment-panel { display: block; }
.allin-payment-head h4 { font-size: 17px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); margin: 4px 0 4px; }
.allin-payment-head p { font-size: 13px; color: var(--ink-3); margin: 0 0 18px; }
/* Resumen subtotal/envío/total */
.allin-summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 22px; }
.allin-summary-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.allin-summary-card span { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); }
.allin-summary-card strong { font-size: 18px; font-weight: 800; letter-spacing: -0.03em; color: var(--ink); }
.allin-summary-card.is-total { background: linear-gradient(180deg, #FFF7F1 0%, #FFFFFF 100%); border-color: rgba(241,71,38,0.30); }
.allin-summary-card.is-total strong { color: var(--accent); }
/* Campos (envío, comentario) */
.allin-payment-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; margin-bottom: 6px; }
.allin-field { display: flex; flex-direction: column; }
.allin-field-full { grid-column: 1 / -1; }
.allin-field > label { font-size: 12.5px; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.allin-pill { display: inline-flex; align-items: center; align-self: flex-start; gap: 8px; background: rgba(241,71,38,0.07); color: var(--accent); border: 1px solid rgba(241,71,38,0.20); border-radius: var(--r-pill); padding: 10px 18px; font-size: 13.5px; font-weight: 700; }
.allin-payment-panel .form-control { width: 100%; font-family: var(--sans); font-size: 14px; color: var(--ink); background: #fff; border: 1.5px solid var(--line-2); border-radius: var(--r-sm); padding: 12px 14px; outline: none; transition: border-color 0.16s, box-shadow 0.16s; }
.allin-payment-panel textarea.form-control { resize: vertical; min-height: 80px; line-height: 1.5; }
.allin-payment-panel .form-control:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(241,71,38,0.10); }
.allin-help { font-size: 12px; color: var(--ink-3); line-height: 1.5; margin: 7px 0 0; }
/* Métodos de pago (tarjetas seleccionables) */
.allin-payment-methods-block { margin-top: 20px; padding-top: 20px; border-top: 1px dashed var(--line-2); }
.allin-block-title { display: block; font-size: 12.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 14px; }
.allin-methods-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.allin-method-card { position: relative; display: flex; align-items: center; gap: 12px; cursor: pointer; border: 1.5px solid var(--line-2); border-radius: var(--r-sm); padding: 15px 16px; transition: all 0.16s; background: #fff; }
.allin-method-card:hover { border-color: var(--ink-2); }
.allin-method-card input { position: absolute; opacity: 0; pointer-events: none; }
.allin-method-card span { font-size: 13.5px; font-weight: 700; color: var(--ink); line-height: 1.25; padding-left: 30px; position: relative; }
.allin-method-card span::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--line-2); transition: all 0.16s; }
.allin-method-card span::after { content: ""; position: absolute; left: 5px; top: 50%; transform: translateY(-50%) scale(0); width: 10px; height: 10px; border-radius: 50%; background: var(--grad-brand); transition: transform 0.16s; }
.allin-method-card input:checked ~ span::before { border-color: var(--accent); }
.allin-method-card input:checked ~ span::after { transform: translateY(-50%) scale(1); }
.allin-method-card:has(input:checked) { border-color: var(--accent); background: rgba(241,71,38,0.04); box-shadow: 0 0 0 3px rgba(241,71,38,0.09); }
.allin-method-card.is-disabled { opacity: 0.5; cursor: not-allowed; }
/* Cuotas */
.allin-installments-wrap { margin-top: 16px; background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--r-md); padding: 16px 18px; }
.allin-installments-wrap > label { display: block; font-size: 12.5px; font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.allin-installment-preview { font-size: 14px; color: var(--ink); margin: 12px 0 0; }
.allin-installment-preview strong { color: var(--accent); font-weight: 800; }
.allin-payment-error, #allin-panel-error { border-radius: var(--r-sm); padding: 12px 14px; font-size: 13px; margin-top: 12px; }
@media (max-width: 620px) {
  .allin-summary-grid { grid-template-columns: 1fr; }
  .allin-payment-form-grid, .allin-methods-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   CHECKOUT MODERNO (reviste el one-page de PrestaShop)
   ============================================================ */
body.checkout, body.checkout #main, body.checkout main, body.checkout #wrapper { background: var(--bg) !important; }
body.checkout .cart-grid {
  display: grid !important; grid-template-columns: 1fr; gap: 22px;
  max-width: 1180px; margin: 0 auto; padding: 30px 16px 70px; float: none;
}
@media (min-width: 992px) { body.checkout .cart-grid { grid-template-columns: minmax(0,1fr) 400px; align-items: start; } }
body.checkout .cart-grid-body, body.checkout .cart-grid-right { width: 100% !important; max-width: 100% !important; flex: none !important; padding: 0 !important; }

/* Tarjeta de cada paso */
body.checkout .checkout-step {
  background: #fff !important; border: 1px solid var(--line) !important; border-radius: var(--r-lg) !important;
  margin-bottom: 18px !important; overflow: hidden; box-shadow: var(--sh-sm); position: relative;
  transition: border-color 0.2s, box-shadow 0.2s; list-style: none;
}
body.checkout .checkout-step::before { display: none; }
body.checkout .checkout-step.-current { border-color: transparent !important; box-shadow: var(--sh-lg); }
body.checkout .checkout-step.-current::after {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--grad-brand);
}
body.checkout .checkout-step.-unreachable { opacity: 0.55; }

/* Título del paso con badge numerado grande */
body.checkout .checkout-step .step-title {
  display: flex !important; align-items: center; gap: 16px; cursor: pointer; margin: 0 !important;
  padding: 24px 26px !important; font-size: 18px !important; font-weight: 800 !important; letter-spacing: -0.03em; color: var(--ink) !important;
  text-transform: none !important; background: none !important;
}
body.checkout .checkout-step .step-number {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex-shrink: 0; border-radius: 50%;
  background: var(--bg-2); color: var(--ink-2); font-size: 16px; font-weight: 800; box-shadow: none;
}
body.checkout .checkout-step.-current .step-number { background: var(--grad-brand); color: #fff; box-shadow: var(--glow); }
body.checkout .checkout-step.-complete .step-number, body.checkout .checkout-step.-reachable.-complete .step-number { background: var(--ink); color: #fff; }
body.checkout .checkout-step .step-edit { margin-left: auto; font-size: 13px; font-weight: 700; color: var(--accent) !important; text-transform: none; cursor: pointer; }
body.checkout .checkout-step .step-edit .material-icons { display: none; }
body.checkout .checkout-step h1 .done, body.checkout .checkout-step .material-icons.done { color: #24C06B !important; }

/* Contenido del paso */
body.checkout .checkout-step .content { padding: 0 26px 28px !important; }
body.checkout .checkout-step.-current .content { animation: fadeIn 0.25s ease; }
/* (el colapso/reapertura de pasos lo maneja PrestaShop con id="checkout") */

/* Pestañas invitado / iniciar sesión */
body.checkout #customer-form ~ .nav, body.checkout .checkout-step .nav-tabs, body.checkout #checkout-personal-information-step ul.nav {
  display: flex !important; gap: 10px; border: none !important; margin-bottom: 22px; padding: 0; list-style: none;
}
body.checkout .checkout-step .nav-tabs .nav-link, body.checkout .checkout-step .nav-item a, body.checkout .nav-inline a {
  display: inline-block; padding: 10px 20px !important; border-radius: var(--r-pill) !important; font-weight: 700; font-size: 14px;
  color: var(--ink-2) !important; background: var(--bg-2) !important; border: none !important; text-decoration: none;
}
body.checkout .checkout-step .nav-tabs .nav-link.active, body.checkout .checkout-step .nav-item a.active { background: var(--grad-brand) !important; color: #fff !important; }

/* Formularios: label arriba, input full-width */
body.checkout .form-group.row, body.checkout .form-group { display: block !important; margin: 0 0 20px !important; }
body.checkout .form-group [class*="col-md"], body.checkout .form-control-label {
  width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; padding-left: 0 !important; padding-right: 0 !important; text-align: left !important;
}
body.checkout .form-control-label { font-size: 13px !important; font-weight: 700 !important; color: var(--ink) !important; margin-bottom: 8px !important; }
body.checkout .form-control-label.required::after { content: ' *'; color: var(--accent); }
body.checkout .form-control, body.checkout input[type="text"], body.checkout input[type="email"], body.checkout input[type="password"], body.checkout input[type="tel"], body.checkout input[type="number"], body.checkout select, body.checkout textarea {
  width: 100% !important; height: 52px !important; font-family: var(--sans); font-size: 15px; color: var(--ink);
  background: #fff !important; border: 1.5px solid var(--line-2) !important; border-radius: var(--r-sm) !important; padding: 0 16px !important; outline: none; box-shadow: none !important; transition: border-color 0.15s, box-shadow 0.15s;
}
body.checkout textarea { height: auto !important; padding: 14px 16px !important; min-height: 90px; }
body.checkout .form-control:focus, body.checkout input:focus, body.checkout select:focus, body.checkout textarea:focus { border-color: var(--accent) !important; box-shadow: 0 0 0 3px rgba(241,67,42,0.12) !important; }
body.checkout .form-control-comment { font-size: 11px !important; color: var(--ink-3) !important; margin-top: 6px; }
body.checkout .input-group { display: flex !important; }
body.checkout .input-group-btn .btn { height: 52px; border-radius: 0 var(--r-sm) var(--r-sm) 0 !important; background: var(--ink) !important; color: #fff !important; border: none !important; font-weight: 700; padding: 0 18px; }
body.checkout .input-group .form-control { border-radius: var(--r-sm) 0 0 var(--r-sm) !important; }
/* FIX: el buscador del header NO debe heredar los estilos de campo del checkout
   (la regla body.checkout input[type=text] lo agrandaba y le ponía borde/caja) */
body.checkout .header-search input,
body.checkout .header-search input[type="text"] {
  height: 100% !important; min-height: 0 !important; font-size: 14px !important;
  background: transparent !important; border: 0 !important; border-radius: 0 !important;
  padding: 0 !important; box-shadow: none !important;
}

/* Radios y checkboxes */
body.checkout .custom-radio { position: relative; width: 22px; height: 22px; border: 2px solid var(--line-2) !important; border-radius: 50%; display: inline-block; vertical-align: middle; margin-right: 9px; background: #fff; }
body.checkout .custom-radio input { opacity: 0; position: absolute; inset: 0; cursor: pointer; margin: 0; }
body.checkout .custom-radio input:checked + span { position: absolute; inset: 3px; background: var(--grad-brand); border-radius: 50%; }
body.checkout .custom-checkbox { display: inline-flex; align-items: flex-start; gap: 9px; }
body.checkout .custom-checkbox input { width: 18px; height: 18px; accent-color: var(--accent); margin-top: 2px; }
body.checkout label { font-size: 14px; color: var(--ink-2); }

/* Envío y pago como tarjetas seleccionables */
body.checkout .delivery-options-list .delivery-option, body.checkout .delivery-option {
  display: flex !important; align-items: center; gap: 12px; background: #fff !important; border: 1.5px solid var(--line-2) !important;
  border-radius: var(--r-md) !important; padding: 18px !important; margin-bottom: 12px; transition: border-color 0.15s, box-shadow 0.15s; cursor: pointer;
}
body.checkout .delivery-option:hover { border-color: var(--accent) !important; box-shadow: var(--sh-sm); }
body.checkout .payment-options .payment-option, body.checkout .payment-option { background: #fff !important; border: 1.5px solid var(--line-2) !important; border-radius: var(--r-md) !important; padding: 18px !important; margin-bottom: 12px; }
body.checkout .payment-options label { font-weight: 700; color: var(--ink); }

/* Botón continuar — grande, full-width, con glow */
body.checkout .continue, body.checkout .checkout-step .btn-primary, body.checkout #payment-confirmation .btn, body.checkout button.continue, body.checkout button[type="submit"].continue, body.checkout .address-form-footer button, body.checkout button[name="confirmDeliveryOption"] {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 9px;
  background: var(--grad-brand) !important; color: #fff !important; border: none !important; border-radius: var(--r-sm) !important;
  height: 56px !important; padding: 0 40px !important; font-family: var(--sans); font-size: 16px; font-weight: 800;
  cursor: pointer; box-shadow: var(--glow) !important; transition: transform 0.18s, box-shadow 0.18s; float: none !important; text-transform: none;
}
body.checkout .continue:hover, body.checkout .checkout-step .btn-primary:hover, body.checkout #payment-confirmation .btn:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(241,71,38,0.45) !important; }
body.checkout .form-footer, body.checkout .address-form-footer { margin-top: 24px; display: flex; justify-content: flex-end; gap: 10px; }
body.checkout .btn-secondary, body.checkout .cancel-address, body.checkout .text-muted.small a { background: #fff !important; color: var(--ink) !important; border: 1.5px solid var(--line-2) !important; box-shadow: none !important; border-radius: var(--r-sm); }
@media (max-width: 767px) { body.checkout .continue, body.checkout .checkout-step .btn-primary { width: 100%; } body.checkout .form-footer { justify-content: stretch; } }

/* Resumen lateral premium */
body.checkout .cart-grid-right .cart-summary, body.checkout #js-checkout-summary, body.checkout .cart-grid-right .card {
  background: #fff !important; border: 1px solid var(--line) !important; border-radius: var(--r-lg) !important; padding: 24px !important; box-shadow: var(--sh-md); overflow: hidden;
}
@media (min-width: 992px) { body.checkout .cart-grid-right { position: sticky; top: 90px; } }
body.checkout .cart-grid-right .block-reassurance,
body.checkout .cart-grid-right .blockreassurance_product,
body.checkout #block-reassurance { display: none !important; }
body.checkout .cart-summary-line { display: flex !important; justify-content: space-between; align-items: baseline; padding: 9px 0; font-size: 14px; color: var(--ink-2); }
body.checkout .cart-total { border-top: 1px solid var(--line) !important; margin-top: 10px; padding-top: 16px !important; font-size: 20px !important; font-weight: 800 !important; color: var(--ink) !important; }
body.checkout .cart-total .value, body.checkout .cart-total .label { color: var(--ink) !important; font-weight: 800 !important; }
body.checkout .cart-summary-products { border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 10px; }
body.checkout .cart-summary-products a { color: var(--accent) !important; font-weight: 700; font-size: 13px; }
body.checkout #cart-summary-product-list img, body.checkout .media-list img { border-radius: 10px; border: 1px solid var(--line); background: #fff; }
body.checkout .step-title.h3, body.checkout h1.h3 { font-size: 18px; }

/* Confirmación de pedido */
body.checkout #content-hook_order_confirmation, .page-order-confirmation .card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 26px; }

.allingt-page table { width: 100%; border-collapse: collapse; font-size: 13px; color: var(--ink-2); }
.allingt-page table th { text-align: left; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-3); padding: 12px 14px; border-bottom: 1px solid var(--line); }
.allingt-page table td { padding: 13px 14px; border-bottom: 1px solid var(--line); }
.allingt-page .address { background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 20px; margin-bottom: 12px; }

/* ── CARRITO NATIVO EN EL HEADER (ps_shoppingcart) ── */
.header-cart { display: inline-flex; }
#_desktop_cart { display: inline-flex; }
#_desktop_cart .blockcart { display: inline-flex; }
/* Botón del carrito (abre el drawer) */
.header-cart-btn {
  display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px;
  background: transparent; border: none; border-radius: var(--r-pill); cursor: pointer;
  color: var(--ink); font-family: var(--sans); font-weight: 600; font-size: 14px; transition: background 0.16s;
}
.header-cart-btn:hover { background: var(--bg-2); }
.header-cart-btn > svg { width: 21px; height: 21px; }
.header-cart-label { display: none; }
@media (min-width: 560px) { .header-cart-label { display: inline; } }
.header-cart-btn .cart-count {
  position: static; top: auto; right: auto;
  min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--r-pill);
  background: var(--accent); color: #fff; font-size: 11px; font-weight: 800;
  border: none;
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}

/* ── DRAWER DEL CARRITO ── */
/* El drawer off-canvas se posiciona fuera de la pantalla: evitar scroll-x lateral */
html { overflow-x: hidden; }
.cart-scrim {
  position: fixed; inset: 0; z-index: 1200; background: rgba(0,0,0,0.42);
  opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;
}
body.cart-open .cart-scrim { opacity: 1 !important; visibility: visible !important; }
.cart-drawer {
  position: fixed; top: 0; right: -440px; z-index: 1210; height: 100%; width: 100%; max-width: 400px;
  background: #fff; box-shadow: -12px 0 40px rgba(0,0,0,0.16);
  display: flex; flex-direction: column;
  transition: right 0.34s cubic-bezier(0.22,1,0.36,1);
}
body.cart-open .cart-drawer { right: 0; }
.cart-drawer-head { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; height: 62px; padding: 0 20px; border-bottom: 1px solid var(--line); }
.cart-drawer-title { font-size: 18px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); margin: 0; }
.cart-drawer-close { width: 38px; height: 38px; margin-right: -8px; display: inline-flex; align-items: center; justify-content: center; background: none; border: none; border-radius: 10px; color: var(--ink-3); cursor: pointer; transition: all 0.16s; }
.cart-drawer-close svg { width: 20px; height: 20px; }
.cart-drawer-close:hover { color: var(--ink); background: var(--bg-2); }
.cart-drawer-body { flex: 1; overflow-y: auto; padding: 16px 20px; display: flex; flex-direction: column; gap: 16px; }
.cart-drawer-item { display: flex; gap: 12px; align-items: flex-start; }
.cart-drawer-img { flex-shrink: 0; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; background: var(--bg-2); border: 1px solid var(--line); }
.cart-drawer-img img { width: 100%; height: 100%; object-fit: contain; }
.cart-drawer-info { flex: 1; min-width: 0; }
.cart-drawer-brand { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }
.cart-drawer-name { font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.3; margin: 2px 0 3px; }
.cart-drawer-price { font-size: 14px; font-weight: 800; color: var(--accent); }
.cart-drawer-side { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.cart-drawer-remove { color: var(--ink-3); transition: color 0.14s; line-height: 0; }
.cart-drawer-remove svg { width: 16px; height: 16px; }
.cart-drawer-remove:hover { color: #DC2626; }
.cart-drawer-qty { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: 999px; }
.cd-qty-btn { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; color: var(--ink-2); text-decoration: none; font-size: 15px; font-weight: 600; line-height: 1; transition: color 0.14s; }
.cd-qty-btn:hover { color: var(--ink); }
.cd-qty-val { min-width: 22px; text-align: center; font-size: 13px; font-weight: 700; color: var(--ink); }
.cart-drawer-foot { flex-shrink: 0; border-top: 1px solid var(--line); padding: 18px 20px; }
.cart-drawer-total { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2px; }
.cart-drawer-total > span:first-child { font-size: 14px; color: var(--ink-2); }
.cart-drawer-total-val { font-size: 21px; font-weight: 900; letter-spacing: -0.03em; color: var(--ink); }
.cart-drawer-ship { font-size: 11.5px; color: var(--ink-3); margin: 0 0 14px; }
.cart-drawer-checkout {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 52px;
  border-radius: 999px; background: var(--grad-brand); color: #fff; font-size: 15px; font-weight: 800;
  text-decoration: none; box-shadow: 0 10px 24px rgba(241,71,38,0.34); transition: transform 0.16s, box-shadow 0.16s;
}
.cart-drawer-checkout svg { width: 18px; height: 18px; }
.cart-drawer-checkout:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(241,71,38,0.44); color: #fff; }
.cart-drawer-wa {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; margin-top: 10px;
  border-radius: 999px; background: #fff; color: var(--ink); border: 1.5px solid var(--line-2); font-size: 14px; font-weight: 700;
  text-decoration: none; transition: all 0.16s;
}
.cart-drawer-wa svg { width: 19px; height: 19px; color: #25D366; }
.cart-drawer-wa:hover { border-color: #25D366; color: #25D366; background: rgba(37,211,102,0.06); }
.cart-drawer-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 24px; gap: 6px; }
.cart-drawer-empty-ico { width: 64px; height: 64px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: rgba(241,71,38,0.09); color: var(--accent); margin-bottom: 10px; }
.cart-drawer-empty-ico svg { width: 30px; height: 30px; }
.cart-drawer-empty-title { font-size: 16px; font-weight: 700; color: var(--ink); margin: 0; }
.cart-drawer-empty-sub { font-size: 13px; color: var(--ink-3); margin: 0 0 8px; }
.cart-drawer-empty-btn { display: inline-flex; padding: 11px 22px; border-radius: 999px; background: var(--grad-brand); color: #fff; font-size: 13.5px; font-weight: 700; text-decoration: none; box-shadow: 0 8px 20px rgba(241,71,38,0.3); }
/* "+" agregar de las tarjetas — feedback al agregar */
.product-add-btn.is-adding { pointer-events: none; opacity: 0.7; }
.product-add-btn.is-adding::after { content: ""; position: absolute; width: 15px; height: 15px; border: 2px solid rgba(255,255,255,0.5); border-top-color: #fff; border-radius: 50%; animation: coSpin 0.6s linear infinite; }
.product-add-btn.is-adding { color: transparent; }
.product-add-btn.is-added { background: #16A34A !important; }
@keyframes coSpin { to { transform: rotate(360deg); } }

/* ── MODAL NATIVO "AGREGADO AL CARRITO" ── */
#blockcart-modal .modal-dialog { max-width: 640px; }
/* ── MODAL DE IMAGEN DE PRODUCTO (zoom) ── */
#product-modal { overflow-y: auto; }
#product-modal .modal-dialog { max-width: 820px; width: 94%; margin: 24px auto !important; display: block; min-height: 0; transform: none !important; top: 0 !important; }
#product-modal .modal-content { position: relative; border: none; border-radius: var(--r-lg); background: #fff; box-shadow: 0 30px 80px rgba(0,0,0,0.35); overflow: hidden; }
#product-modal .modal-body { display: flex; gap: 18px; padding: 26px; align-items: flex-start; }
#product-modal figure { margin: 0; flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; }
#product-modal .product-cover-modal { display: block; width: auto; max-width: 100%; max-height: 66vh; height: auto; object-fit: contain; border-radius: var(--r-md); background: var(--bg-2); }
#product-modal .image-caption { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13.5px; color: var(--ink-2); line-height: 1.6; text-align: left; }
#product-modal #thumbnails { flex-shrink: 0; width: 92px; }
#product-modal .thumbnails .thumb-container { list-style: none; }
#product-modal .thumbnails .thumb { width: 78px; height: 78px; object-fit: contain; background: var(--bg-2); border: 1.5px solid var(--line); border-radius: var(--r-sm); cursor: pointer; margin: 0 0 10px; padding: 5px; transition: border-color 0.15s; }
#product-modal .thumbnails .thumb:hover, #product-modal .thumbnails .thumb.selected { border-color: var(--accent); }
#product-modal .thumbnails ul { padding: 0; margin: 0; }
/* Con una sola imagen no tiene sentido la columna de miniaturas */
#product-modal .modal-body:has(.thumbnails .thumb-container:only-child) #thumbnails { display: none; }
/* Botón cerrar (X) */
.modal-close-x {
  position: absolute; top: 14px; right: 14px; z-index: 6; width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center; border-radius: 50%;
  background: #fff; border: 1px solid var(--line); color: var(--ink); cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,0.14); transition: background 0.16s, color 0.16s, transform 0.16s;
}
.modal-close-x:hover { background: var(--ink); color: #fff; border-color: var(--ink); transform: rotate(90deg); }
.modal-close-x svg { width: 20px; height: 20px; }
.modal-backdrop.show, .modal-backdrop.in { opacity: 0.62; }
@media (max-width: 680px) {
  #product-modal .modal-body { flex-direction: column-reverse; padding: 20px; gap: 12px; }
  #product-modal #thumbnails { width: 100%; }
  #product-modal .thumbnails ul { display: flex; gap: 8px; overflow-x: auto; }
  #product-modal .thumbnails .thumb { width: 60px; height: 60px; margin: 0; }
}

#blockcart-modal .modal-content { border: none; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-lg); }
#blockcart-modal .modal-header { background: #fff; border-bottom: 1px solid var(--line); padding: 18px 22px; }
#blockcart-modal .modal-title { font-size: 17px; font-weight: 800; color: var(--ink); letter-spacing: -0.02em; }
#blockcart-modal .modal-title i.material-icons { color: #24C06B; vertical-align: middle; margin-right: 6px; }
#blockcart-modal .modal-body { padding: 22px; }
#blockcart-modal .product-image, #blockcart-modal img { border-radius: var(--r-md); border: 1px solid var(--line); background: #fff; }
#blockcart-modal .product-name, #blockcart-modal h6.product-name { color: var(--ink) !important; font-weight: 700; }
#blockcart-modal .product-price { color: var(--accent); font-weight: 800; }
/* Botones del modal: Finalizar compra + Pedir por WhatsApp + Seguir comprando */
.cart-btns-allingt { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
#blockcart-modal .cart-btns-allingt .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  width: 100%; height: 50px; border-radius: 13px; font-family: var(--sans); font-size: 14.5px; font-weight: 800;
  border: none; text-decoration: none; cursor: pointer; transition: transform .16s, box-shadow .16s;
}
#blockcart-modal .cart-btn-web { background: var(--grad-brand) !important; color: #fff !important; box-shadow: 0 8px 22px rgba(241,71,38,0.34); }
#blockcart-modal .cart-btn-web:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(241,71,38,0.42); }
#blockcart-modal .cart-btn-web svg { width: 19px; height: 19px; }
#blockcart-modal .cart-btn-wa { background: #25D366 !important; color: #fff !important; box-shadow: 0 8px 22px rgba(37,211,102,0.34); }
#blockcart-modal .cart-btn-wa:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(37,211,102,0.42); }
#blockcart-modal .cart-btn-wa svg { width: 20px; height: 20px; }
#blockcart-modal .cart-btn-continue {
  background: none; border: none; color: var(--ink-3); font-family: var(--sans); font-size: 13px; font-weight: 600;
  cursor: pointer; padding: 6px; margin-top: 2px; transition: color .16s;
}
#blockcart-modal .cart-btn-continue:hover { color: var(--ink); }
#blockcart-modal .cart-products-count, #blockcart-modal .value { font-weight: 800; color: var(--ink); }

/* Ocultar módulo de "políticas" sin configurar (muestra placeholders "editar con el módulo...") */
.blockreassurance_product,
.product-reassurance,
.cart-reassurance,
#blockreassurance_product_extra_content { display: none !important; }

/* ── CONFIRMACIÓN AL AGREGAR AL CARRITO ── */
.cart-pop { position: fixed; inset: 0; z-index: 300; display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(14,13,12,0.5); opacity: 0; transition: opacity 0.26s; }
.cart-pop.is-open { opacity: 1; }
.cart-pop-panel { position: relative; width: 100%; max-width: 360px; background: #fff; border-radius: var(--r-lg);
  padding: 30px 26px 24px; text-align: center; box-shadow: var(--sh-lg);
  transform: translateY(14px) scale(0.98); transition: transform 0.28s cubic-bezier(0.16,1,0.3,1); }
.cart-pop.is-open .cart-pop-panel { transform: none; }
.cart-pop-close { position: absolute; top: 12px; right: 14px; border: none; background: none; font-size: 24px; line-height: 1; color: var(--ink-3); cursor: pointer; }
.cart-pop-check { width: 56px; height: 56px; margin: 0 auto 14px; border-radius: 50%; background: var(--grad-brand);
  display: flex; align-items: center; justify-content: center; color: #fff; box-shadow: var(--glow); }
.cart-pop-check svg { width: 28px; height: 28px; }
.cart-pop-title { font-size: 19px; font-weight: 800; color: var(--ink); letter-spacing: -0.03em; margin-bottom: 4px; }
.cart-pop-name { font-size: 13px; color: var(--ink-2); margin-bottom: 20px; }
.cart-pop-btn { display: flex; align-items: center; justify-content: center; height: 50px; border-radius: var(--r-sm); font-size: 15px; font-weight: 700; text-decoration: none; margin-bottom: 10px; transition: transform 0.16s, box-shadow 0.16s; }
.cart-pop-btn.primary { background: var(--grad-brand); color: #fff; box-shadow: var(--glow); }
.cart-pop-btn.primary:hover { transform: translateY(-2px); }
.cart-pop-btn.ghost { background: #fff; color: var(--ink); border: 1px solid var(--line-2); }
.cart-pop-btn.ghost:hover { border-color: var(--ink); }
.cart-pop-cont { border: none; background: none; color: var(--ink-2); font-size: 13px; font-weight: 600; font-family: var(--sans); cursor: pointer; padding: 6px; margin-top: 2px; }
.cart-pop-cont:hover { color: var(--accent); }

/* ── RATING (estrellas) ── */
.rating { display: flex; align-items: center; gap: 7px; margin-bottom: 9px; }
.rating-stars { position: relative; display: inline-block; font-size: 13px; line-height: 1; color: #E2DED7; letter-spacing: 2px; white-space: nowrap; }
.rating-stars::before { content: '\2605\2605\2605\2605\2605'; }
.rating-fill { position: absolute; top: 0; left: 0; overflow: hidden; color: var(--amber); white-space: nowrap; }
.rating-fill::before { content: '\2605\2605\2605\2605\2605'; }
.rating-count { font-size: 11px; font-weight: 600; color: var(--ink-3); }
.rating-lg { margin-bottom: 16px; }
.rating-lg .rating-stars { font-size: 18px; letter-spacing: 3px; }
.rating-lg .rating-count { font-size: 13px; color: var(--ink-2); }

/* ── COMPRAR POR WHATSAPP ── */
.wa-buy {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  width: 100%; height: 52px; margin-bottom: 18px;
  background: #25D366; color: #fff; border-radius: var(--r-sm);
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s; box-shadow: 0 8px 22px rgba(37,211,102,0.3);
}
.wa-buy:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(37,211,102,0.42); }
.wa-buy { margin-bottom: 12px; }

/* ── COPIAR ENLACE ── */
.copy-link-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; width: 100%;
  padding: 13px 18px; border-radius: var(--r-sm); background: #fff; color: var(--ink);
  border: 1.5px solid var(--line-2); font-family: var(--sans); font-weight: 700; font-size: 14px; cursor: pointer; transition: all 0.16s;
}
.copy-link-btn:hover { border-color: var(--ink); }
.copy-link-btn svg { width: 18px; height: 18px; }
.copy-link-btn.is-copied { border-color: #22C55E; color: #16A34A; background: #F0FBF4; }

/* ── FICHA: compartir social oculto (se usa Copiar enlace), corazón roto oculto ── */
.allingt-product .social-sharing { display: none; }
.allingt-product .wishlist-button-add, .allingt-product .wishlist-button-product,
.allingt-product .wishlist-button-container { display: none; }

/* ── CANTIDAD: stepper limpio (reemplaza el touchspin PrestaShop) ── */
.allingt-product .product-quantity .qty .bootstrap-touchspin,
.allingt-product .product-quantity .qty .input-group.bootstrap-touchspin {
  display: inline-flex; align-items: stretch; width: auto; height: 56px;
  border: 1.5px solid var(--line-2); border-radius: var(--r-sm); overflow: hidden; background: #fff;
}
.allingt-product #quantity_wanted {
  -moz-appearance: textfield; width: 54px !important; height: 100% !important; text-align: center;
  font-size: 16px; font-weight: 700; border: none !important; box-shadow: none !important;
  background: transparent !important; padding: 0 !important; border-radius: 0 !important;
}
.allingt-product #quantity_wanted::-webkit-outer-spin-button,
.allingt-product #quantity_wanted::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.allingt-product .input-group-btn-vertical { display: flex; flex-direction: column; border-left: 1.5px solid var(--line-2); }
.allingt-product .btn-touchspin {
  flex: 1; width: 36px; min-height: 0; background: var(--bg-2); border: none; color: var(--ink-2);
  display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; transition: background 0.15s, color 0.15s;
}
.allingt-product .btn-touchspin:hover { background: var(--accent); color: #fff; }
.allingt-product .bootstrap-touchspin-down { border-top: 1px solid var(--line-2); }
.allingt-product .btn-touchspin i, .allingt-product .btn-touchspin .material-icons { font-size: 17px; }

/* ── BOTÓN "Escriba su reseña" (productcomments) — sutil, no gris feo ── */
.product-reviews-lg .btn, .product-reviews-lg button:not(.grade-stars),
.product-reviews-lg .post-product-comment-button, .product-reviews-lg a.reviews {
  background: #fff !important; color: var(--ink-2) !important; border: 1.5px solid var(--line-2) !important;
  border-radius: var(--r-pill) !important; padding: 8px 16px !important; font-size: 12.5px !important;
  font-weight: 700 !important; box-shadow: none !important; text-transform: none !important;
  display: inline-flex !important; align-items: center; gap: 7px; height: auto !important; line-height: 1.2 !important;
}
.product-reviews-lg .btn:hover, .product-reviews-lg .post-product-comment-button:hover { border-color: var(--accent) !important; color: var(--accent) !important; }
.product-reviews-lg { margin: 6px 0 18px; }

/* ══ LISTA DE RESEÑAS (productcomments) — estilo All in GT ══ */
#product-comments-list-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 0 0 16px; margin: 8px 0 20px; border-bottom: 1px solid var(--line); }
#product-comments-list-header .comments-nb { font-size: 18px; font-weight: 800; color: var(--ink); display: inline-flex; align-items: center; gap: 9px; }
#product-comments-list-header .comments-nb .material-icons { color: var(--accent); font-size: 22px; }
#product-comments-list-header .grade-stars { --star-color: var(--accent); }
.post-product-comment, .post-product-comment.btn-comment-big {
  background: var(--grad-brand) !important; color: #fff !important; border: none !important;
  border-radius: 12px !important; font-weight: 800 !important; padding: 11px 20px !important;
  box-shadow: 0 8px 20px rgba(241,71,38,0.28) !important; text-transform: none !important;
  display: inline-flex !important; align-items: center; gap: 8px; height: auto !important;
}
.post-product-comment .material-icons { color: #fff !important; }
.product-comment-list-item { border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; margin: 0 0 12px; background: #fff; }
.product-comment-list-item:hover { border-color: #FBCFC4; }
.product-comment-list-item .comment-infos { color: var(--ink-3); }
.product-comment-list-item .comment-author { font-size: 13px; font-weight: 700; color: var(--ink-2); margin-top: 2px; }
.product-comment-list-item .comment-date { font-size: 12px; color: var(--ink-3); margin-top: 6px; }
.product-comment-list-item .comment-content .h4 { font-size: 15px; font-weight: 800; color: var(--ink); margin: 0 0 6px; }
.product-comment-list-item .comment-content p { font-size: 14px; color: var(--ink-2); line-height: 1.6; margin: 0; }
.product-comment-list-item .comment-buttons { margin-top: 12px; }
.product-comment-list-item .comment-buttons .material-icons { color: var(--ink-3); font-size: 18px; }
.product-comment-list-item .useful-review, .product-comment-list-item .not-useful-review,
.product-comment-list-item .report-abuse { color: var(--ink-3); font-size: 13px; font-weight: 600; }
#product-comments-list-pagination .prev, #product-comments-list-pagination .next { color: var(--accent); font-weight: 700; }

/* ── SELLOS DE CONFIANZA ── */
.trust-badges { list-style: none; padding: 16px 0 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; border-top: 1px solid var(--line); }
.trust-badges li { display: flex; align-items: center; gap: 9px; font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.trust-badges svg { width: 20px; height: 20px; color: var(--accent); flex-shrink: 0; }

/* ── BARRA DE COMPRA FIJA (móvil) ── */
.sticky-buy {
  position: fixed; left: 0; right: 0; bottom: var(--allingt-bnav-h, 0px); z-index: 201;
  display: flex; align-items: center; gap: 12px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,0.96); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-top: 1px solid var(--line);
  transform: translateY(110%); transition: transform 0.3s cubic-bezier(0.16,1,0.3,1);
}
.sticky-buy.is-shown { transform: translateY(0); }
.sticky-buy-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.sticky-buy-name { font-size: 12px; font-weight: 600; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sticky-buy-price { font-size: 18px; font-weight: 800; color: var(--ink); letter-spacing: -0.03em; }
.sticky-buy-btn {
  flex-shrink: 0; height: 46px; padding: 0 26px; border: none; border-radius: var(--r-sm);
  background: var(--grad-brand); color: #fff; font-family: var(--sans); font-size: 15px; font-weight: 700;
  cursor: pointer; box-shadow: var(--glow); transition: transform 0.15s;
}
.sticky-buy-btn:active { transform: scale(0.97); }
.sticky-buy-btn[disabled] { background: var(--bg-3); color: var(--ink-3); box-shadow: none; }
@media (min-width: 768px) { .sticky-buy { display: none; } }

/* ══════════════════════════════════════════════════════════
   HOME BENTO (traducido del diseño Figma "All in GT")
   ══════════════════════════════════════════════════════════ */
.bento-wrap { padding: 14px 24px 0; }
.bento-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); grid-auto-rows: 168px; gap: 12px; grid-auto-flow: dense; }
.bento-tile { border-radius: 24px; overflow: hidden; text-decoration: none; position: relative; display: flex; }
/* Tile grande destacado */
.bento-feature { grid-column: span 2; grid-row: span 2; }
.bento-feature-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 32%; transition: transform 0.5s cubic-bezier(0.16,1,0.3,1); }
.bento-feature:hover .bento-feature-img { transform: scale(1.05); }
.bento-feature-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,12,15,0.12) 0%, rgba(12,12,15,0) 24%, rgba(12,12,15,0.5) 52%, rgba(12,12,15,0.97) 88%); }
.bento-feature-body { position: relative; z-index: 1; width: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,0.35); }
.bento-tag { align-self: flex-start; margin-bottom: auto; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; background: rgba(255,255,255,0.15); backdrop-filter: blur(4px); border-radius: 999px; padding: 5px 13px; }
.bento-feature-title { font-size: 34px; line-height: 1.05; font-weight: 900; letter-spacing: -0.03em; max-width: 15ch; margin: 0 0 8px; color: #fff; }
.bento-tag, .bento-feature-cta { color: #fff; }
.bento-feature-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: rgba(255,255,255,0.9); }
.bento-feature-cta svg { width: 16px; height: 16px; transition: transform 0.2s; }
.bento-feature:hover .bento-feature-cta svg { transform: translateX(4px); }
/* Promo de envío */
.bento-ship { grid-column: span 2; flex-direction: column; justify-content: space-between; padding: 24px; color: #fff; background: linear-gradient(120deg,#FBA43A,#F14726 60%,#DC2626); }
.bento-ship-ico { width: 28px; height: 28px; opacity: 0.9; }
.bento-ship-title { font-size: 20px; font-weight: 900; line-height: 1.15; }
.bento-ship-sub { font-size: 13px; color: rgba(255,255,255,0.85); margin-top: 3px; }
/* Categorías mini */
.bento-cat { grid-column: span 1; flex-direction: column; justify-content: space-between; padding: 16px; background: #fff; border: 1px solid var(--line); transition: border-color 0.18s, transform 0.18s; }
.bento-cat:hover { border-color: #FBCFC4; }
.bento-cat-ico { width: 40px; height: 40px; border-radius: 16px; display: grid; place-items: center; transition: transform 0.18s; }
.bento-cat-ico svg { width: 24px; height: 24px; }
.bento-cat:hover .bento-cat-ico { transform: scale(1.1); }
.bento-cat-name { font-size: 14px; font-weight: 800; color: var(--ink); }
.bento-cat-sub { font-size: 11px; color: var(--ink-3); }
/* Oferta */
.bento-offer { grid-column: span 2; background: #fff; border: 1px solid var(--line); align-items: stretch; }
.bento-offer-text { flex: 1; padding: 20px; display: flex; flex-direction: column; justify-content: center; }
.bento-offer-badge { align-self: flex-start; font-size: 10px; font-weight: 800; color: #fff; background: var(--accent); border-radius: 999px; padding: 2px 9px; margin-bottom: 8px; }
.bento-offer-name { font-size: 14px; font-weight: 800; color: var(--ink); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bento-offer-prices { margin-top: 6px; display: flex; align-items: baseline; gap: 8px; }
.bento-offer-now { font-size: 18px; font-weight: 900; color: var(--accent); }
.bento-offer-old { font-size: 12px; color: var(--ink-3); text-decoration: line-through; }
.bento-offer-media { width: 140px; flex-shrink: 0; position: relative; }
.bento-offer-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 12px; transition: transform 0.5s cubic-bezier(0.16,1,0.3,1); }
.bento-offer:hover .bento-offer-media img { transform: scale(1.1); }
/* Tile marcas negro */
.bento-brands { grid-column: span 1; flex-direction: column; justify-content: space-between; padding: 16px; color: #fff; background: #0C0C0F; }
.bento-brands-avatars { display: flex; }
.bento-brands-avatars span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-size: 9px; font-weight: 800; box-shadow: 0 0 0 2px #0C0C0F; margin-left: -8px; }
.bento-brands-avatars span:first-child { margin-left: 0; }
.bento-brands-name { font-size: 14px; font-weight: 800; }
.bento-brands-sub { font-size: 11px; color: rgba(255,255,255,0.5); transition: color 0.18s; }
.bento-brands:hover .bento-brands-sub { color: rgba(255,255,255,0.8); }

/* ── Sellos de confianza ── */
.fig-badges-wrap { padding: 16px 24px 0; }
.fig-badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.fig-badge { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.fig-badge-ico { width: 32px; height: 32px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; background: linear-gradient(135deg,#F59E0B,#F14726); }
.fig-badge-ico svg { width: 20px; height: 20px; }
.fig-badge-t { font-size: 12px; font-weight: 700; color: var(--ink); }
.fig-badge-s { font-size: 11px; color: var(--ink-3); }

/* ── Secciones ── */
.fig-section { padding: 32px 24px 0; }
.fig-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.fig-h2 { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); display: flex; align-items: center; gap: 8px; margin: 0 0 16px; }
.fig-section-head .fig-h2 { margin: 0; }
.fig-h2-bar { width: 4px; height: 20px; border-radius: 999px; background: linear-gradient(#F59E0B,#F14726); }
.fig-link { font-size: 12px; font-weight: 600; color: var(--accent); text-decoration: none; }
.fig-link:hover { text-decoration: underline; }

/* ── Categorías grid ── */
.fig-cats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.fig-cat { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; text-decoration: none; transition: border-color 0.18s, box-shadow 0.18s; }
.fig-cat:hover { border-color: #FBCFC4; box-shadow: var(--shadow-sm); }
.fig-cat-ico { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: transform 0.18s; }
.fig-cat-ico svg { width: 20px; height: 20px; }
.fig-cat:hover .fig-cat-ico { transform: scale(1.1); }
.fig-cat-txt { flex: 1; min-width: 0; }
.fig-cat-name { font-size: 14px; font-weight: 700; color: var(--ink); }
.fig-cat-sub { font-size: 11px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fig-cat-arrow { width: 14px; height: 14px; color: #D1D5DB; flex-shrink: 0; }

/* ── Marcas ── */
.fig-brands { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.fig-brands::-webkit-scrollbar { display: none; }
.fig-brand { flex-shrink: 0; display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; text-decoration: none; transition: border-color 0.18s, box-shadow 0.18s; }
.fig-brand:hover { border-color: #FBCFC4; box-shadow: var(--shadow-sm); }
.fig-brand-mono { width: 36px; height: 36px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: 14px; flex-shrink: 0; }
.fig-brand-name { font-size: 14px; font-weight: 700; color: var(--ink); }
.fig-brand-sub { font-size: 11px; color: var(--ink-3); }

/* ── Productos destacados (hook displayHome) ── */
.fig-featured .products, .fig-featured ul.products { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; list-style: none; padding: 0; margin: 0; }
/* Ocultar el encabezado propio del módulo (ya tenemos el nuestro arriba) */
.fig-featured .section-head, .fig-featured .section-title, .fig-featured .section-link, .fig-featured > h2, .fig-featured .featured-products__header { display: none !important; }

/* ── ¿Por qué comprar? + testimonios ── */
.fig-why { border: 1px solid var(--line); border-radius: 24px; padding: 36px; background: linear-gradient(180deg,#FFFAF6,#FFF3EC); }
.fig-why-title { font-size: 24px; font-weight: 900; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 4px; }
.fig-why-sub { font-size: 14px; color: var(--ink-2); margin: 0 0 24px; max-width: 460px; }
.fig-why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 24px; }
.fig-why-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px; }
.fig-why-ico { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg,#FBA43A,#F14726); margin-bottom: 12px; }
.fig-why-ico svg { width: 16px; height: 16px; }
.fig-why-h { font-size: 14px; font-weight: 800; color: var(--ink); margin-bottom: 4px; }
.fig-why-p { font-size: 12px; color: var(--ink-2); line-height: 1.6; }
.fig-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.fig-review { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px; margin: 0; }
.fig-stars { color: #F59E0B; font-size: 13px; letter-spacing: 2px; margin-bottom: 8px; }
.fig-review blockquote { font-size: 12px; color: var(--ink-2); line-height: 1.6; margin: 0 0 12px; }
.fig-review figcaption { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; color: var(--ink); }
.fig-review-av { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 10px; font-weight: 800; }

/* ── Responsive ── */
@media (max-width: 900px) {
  .fig-cats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fig-featured .products { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fig-why-grid, .fig-reviews { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .bento-wrap, .fig-badges-wrap { padding-left: 14px; padding-right: 14px; }
  .fig-section { padding-left: 14px; padding-right: 14px; }
  .bento-grid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 132px; gap: 10px; }
  .bento-feature-title { font-size: 24px; }
  .fig-badges { grid-template-columns: repeat(2, 1fr); }
  .fig-why { padding: 24px; }
}

/* ── REVELADO AL HACER SCROLL ── */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.6s cubic-bezier(0.16,1,0.3,1), transform 0.6s cubic-bezier(0.16,1,0.3,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.cat-item.reveal, .product-card.reveal { transition-duration: 0.5s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } }

/* ══════════════════════════════════════════════════════════
   CHECKOUT A UN PASO (estilo Figma) — clases .co-*
   ══════════════════════════════════════════════════════════ */
#content.co-checkout { max-width: 1180px; margin: 0 auto; padding: 8px 18px 60px; background: transparent !important; }
.co-back { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--ink-3); text-decoration: none; margin: 8px 0 14px; transition: color .16s; }
.co-back svg { width: 16px; height: 16px; }
.co-back:hover { color: var(--ink); }
.co-title { font-size: 34px; font-weight: 800; letter-spacing: -0.04em; color: var(--ink) !important; margin: 0; }
.co-subtitle { font-size: 14.5px; color: var(--ink-2); margin: 6px 0 22px; }
.co-grid { display: grid; grid-template-columns: minmax(0,1fr) 380px; gap: 22px; align-items: start; }
.co-form { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

.co-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 26px 26px 28px; }
.co-step { display: flex; align-items: center; gap: 12px; font-size: 17px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 20px; }
.co-step-num { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--grad-brand); color: #fff; font-size: 14px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(241,71,38,0.32); }
.co-login-hint { display: flex; align-items: flex-start; gap: 10px; margin: -6px 0 20px; padding: 12px 14px; background: rgba(241,71,38,0.05); border: 1px solid rgba(241,71,38,0.16); border-radius: 12px; font-size: 13px; color: var(--ink-2); line-height: 1.45; }
.co-login-hint svg { width: 18px; height: 18px; color: var(--accent); flex-shrink: 0; margin-top: 1px; }
.co-login-hint a { color: var(--accent); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
/* Selector de direcciones guardadas en el checkout */
.co-addr-picker { margin: 0 0 18px; }
.co-addr-picker-label { font-size: 12.5px; font-weight: 700; color: var(--ink-2); margin-bottom: 8px; }
.co-addr-cards { display: flex; flex-wrap: wrap; gap: 10px; }
.co-addr-card { text-align: left; background: #fff; border: 1.5px solid var(--line-2); border-radius: 12px; padding: 11px 14px; cursor: pointer; font-family: var(--sans); transition: border-color 0.15s, box-shadow 0.15s; display: flex; flex-direction: column; gap: 2px; min-width: 190px; flex: 1 1 190px; max-width: 320px; }
.co-addr-card:hover { border-color: var(--accent); }
.co-addr-card.is-active { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(241,71,38,0.12); }
.co-addr-card-alias { font-size: 13.5px; font-weight: 800; color: var(--ink); }
.co-addr-card-line { font-size: 12px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Checkbox "guardar dirección" */
.co-save-addr { display: flex; align-items: center; gap: 9px; margin-top: 14px; font-size: 13.5px; font-weight: 600; color: var(--ink-2); cursor: pointer; }
.co-save-addr input { width: 17px; height: 17px; accent-color: var(--accent); cursor: pointer; }
.co-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.co-field { display: flex; flex-direction: column; min-width: 0; }
.co-field.co-full { grid-column: 1 / -1; }
.co-field label { font-size: 12.5px; font-weight: 700; color: var(--ink-2); margin-bottom: 8px; }
#content.co-checkout .co-field input,
#content.co-checkout .co-field select,
#content.co-checkout .co-field textarea {
  width: 100% !important; font-family: var(--sans); font-size: 14.5px !important; color: var(--ink) !important;
  background: #FCFBFA !important; border: 1.5px solid var(--line-2) !important; border-radius: 12px !important;
  padding: 0 15px !important; height: 50px !important; min-height: 50px !important; box-sizing: border-box; outline: none;
  transition: border-color .16s, box-shadow .16s, background-color .16s; -webkit-appearance: none; appearance: none;
}
#content.co-checkout .co-field textarea { height: auto !important; min-height: 80px !important; padding: 13px 15px !important; resize: vertical; line-height: 1.5; }
#content.co-checkout .co-field select {
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 14px center !important; padding-right: 40px !important;
}
#content.co-checkout .co-field input:focus,
#content.co-checkout .co-field select:focus,
#content.co-checkout .co-field textarea:focus { border-color: var(--accent) !important; background: #fff !important; box-shadow: 0 0 0 3px rgba(241,71,38,0.13) !important; }
#content.co-checkout .co-field .co-invalid,
#content.co-checkout .co-invalid { border-color: #DC2626 !important; box-shadow: 0 0 0 3px rgba(220,38,38,0.12) !important; }
#content.co-checkout .co-field input::placeholder, #content.co-checkout .co-field textarea::placeholder { color: var(--ink-3); }

/* Método de pago */
.co-pay { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.co-pay-opt { position: relative; display: flex; align-items: center; gap: 13px; padding: 16px 18px; border: 1.5px solid var(--line-2); border-radius: 14px; cursor: pointer; transition: border-color .16s, background .16s, box-shadow .16s; }
.co-pay-opt input { position: absolute; opacity: 0; pointer-events: none; }
.co-pay-ico { flex-shrink: 0; width: 42px; height: 42px; border-radius: 11px; background: var(--bg-3); color: var(--ink-2); display: inline-flex; align-items: center; justify-content: center; transition: all .16s; }
.co-pay-ico svg { width: 21px; height: 21px; }
.co-pay-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.co-pay-txt b { font-size: 14px; font-weight: 700; color: var(--ink); }
.co-pay-txt small { font-size: 12px; color: var(--ink-3); }
.co-pay-opt:has(input:checked) { border-color: var(--accent); background: rgba(241,71,38,0.05); box-shadow: 0 0 0 1px var(--accent); }
.co-pay-opt-disabled { opacity: 0.5; cursor: not-allowed; background: var(--bg-2); }
.co-pay-opt-disabled small { color: var(--accent) !important; font-weight: 600; }
.co-pay-opt:has(input:checked) .co-pay-ico { background: var(--grad-brand); color: #fff; }

/* Nº de cuotas — oculto salvo cuando "Tarjeta en cuotas" está seleccionada */
.co-cuotas { display: none; margin-top: 14px; padding: 14px 16px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; }
.co-pay:has(input[value="Tarjeta en cuotas"]:checked) + .co-cuotas { display: block; }
.co-cuotas-label { display: block; font-size: 12.5px; font-weight: 700; color: var(--ink-2); margin-bottom: 10px; }
.co-cuotas-opts { display: flex; gap: 10px; }
.co-cuota-opt { position: relative; flex: 1; display: flex; align-items: center; justify-content: center; padding: 11px 14px; border: 1.5px solid var(--line-2); border-radius: 10px; background: #fff; cursor: pointer; font-size: 14px; font-weight: 700; color: var(--ink-2); transition: border-color .16s, background .16s, color .16s; }
.co-cuota-opt input { position: absolute; opacity: 0; pointer-events: none; }
.co-cuota-opt:has(input:checked) { border-color: var(--accent); background: rgba(241,71,38,0.06); color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }

/* Resumen lateral */
.co-summary { position: sticky; top: 84px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; min-width: 0; }
.co-summary-title { font-size: 17px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 18px; }
.co-items { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.co-item { display: flex; gap: 12px; align-items: flex-start; }
.co-item-img { flex-shrink: 0; width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: var(--bg-2); border: 1px solid var(--line); }
.co-item-img img { width: 100%; height: 100%; object-fit: contain; }
.co-item-body { flex: 1; min-width: 0; }
.co-item-name { font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.co-item-qty { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.co-qty-btn { width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-2); border-radius: 8px; color: var(--ink-2); text-decoration: none; font-size: 16px; font-weight: 600; line-height: 1; transition: all .14s; }
.co-qty-btn:hover { border-color: var(--ink); color: var(--ink); }
.co-qty-val { min-width: 22px; text-align: center; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.co-item-remove { margin-left: 6px; font-size: 12px; font-weight: 600; color: var(--ink-3); text-decoration: none; transition: color .14s; }
.co-item-remove:hover { color: var(--accent); }
.co-item-price { flex-shrink: 0; font-size: 14px; font-weight: 800; color: var(--ink); white-space: nowrap; }

.co-freeship { background: linear-gradient(180deg, #FFF7F1, #FFFFFF); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin-bottom: 18px; }
.co-freeship-text { font-size: 12.5px; color: var(--ink-2); margin: 0 0 8px; }
.co-freeship-text b { color: var(--accent); }
.co-freeship-bar { height: 7px; border-radius: 999px; background: var(--line-2); overflow: hidden; }
.co-freeship-bar span { display: block; height: 100%; border-radius: 999px; background: var(--grad-brand); transition: width .3s; }

.co-totals { border-top: 1px solid var(--line); padding-top: 16px; }
.co-total-line { display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--ink-2); margin-bottom: 10px; }
.co-total-line .co-free { color: #16A34A; font-weight: 800; }
.co-total-grand { font-size: 16px; font-weight: 800; color: var(--ink); margin-top: 4px; }
.co-total-grand span:last-child { font-size: 22px; letter-spacing: -0.03em; color: var(--accent); }
.co-tax-note { font-size: 11.5px; color: var(--ink-3); margin: 2px 0 0; }

.co-confirm { width: 100%; margin-top: 18px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 54px; border: none; border-radius: 14px; background: var(--grad-brand); color: #fff; font-family: var(--sans); font-size: 15.5px; font-weight: 800; letter-spacing: -0.01em; cursor: pointer; box-shadow: 0 10px 26px rgba(241,71,38,0.38); transition: transform .16s, box-shadow .16s; }
.co-confirm:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(241,71,38,0.46); }
.co-confirm:active { transform: translateY(0); }
.co-confirm-note { font-size: 11.5px; color: var(--ink-3); text-align: center; line-height: 1.5; margin: 12px 4px 0; }
.co-reassure { display: flex; justify-content: center; gap: 20px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.co-reassure span { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--ink-3); }
.co-reassure svg { width: 15px; height: 15px; color: var(--ink-3); }

@media (max-width: 900px) {
  .co-grid { grid-template-columns: 1fr; }
  .co-summary { position: static; }
}
@media (max-width: 560px) {
  #content.co-checkout { padding: 8px 14px 48px; }
  .co-title { font-size: 27px; }
  .co-card { padding: 22px 18px 24px; }
  .co-fields, .co-pay { grid-template-columns: 1fr; }
}

/* ══════════ RGPD — Eliminar mi cuenta ══════════ */
.gdpr-erase { max-width: 560px; margin: 8px auto 0; text-align: center; padding: 8px 18px 20px; }
.gdpr-erase-avatar { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin: 0 auto 6px; }
.gdpr-erase-avatar svg { width: 30px; height: 30px; }
.gdpr-erase-title { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); margin: 6px 0 10px; }
.gdpr-erase-text { font-size: 15px; line-height: 1.6; color: var(--ink-2); margin: 0 auto 22px; max-width: 460px; }
.gdpr-erase-actions { display: flex; flex-direction: column; gap: 12px; max-width: 400px; margin: 0 auto; }
.gdpr-erase-wa { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 20px; border-radius: 14px; background: #25D366; color: #fff; font-family: var(--sans); font-size: 15.5px; font-weight: 800; letter-spacing: -0.01em; text-decoration: none; box-shadow: 0 10px 24px rgba(37,211,102,0.32); transition: transform .16s, box-shadow .16s; }
.gdpr-erase-wa:hover { transform: translateY(-2px); box-shadow: 0 16px 30px rgba(37,211,102,0.42); color: #fff; }
.gdpr-erase-contact { display: inline-flex; align-items: center; justify-content: center; padding: 13px 20px; border-radius: 14px; }
.gdpr-erase-note { font-size: 12.5px; color: var(--ink-3); line-height: 1.5; margin: 20px auto 0; max-width: 440px; }

/* ══════════ Mi información — zona Eliminar cuenta ══════════ */
.account-danger { max-width: 720px; margin: 22px auto 0; padding: 20px 22px; border: 1px solid var(--line-2); border-radius: 16px; background: var(--bg-2); }
.account-danger-head { display: flex; align-items: flex-start; gap: 14px; }
.account-danger-ico { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: #FEF2F2; color: var(--accent); }
.account-danger-ico svg { width: 22px; height: 22px; }
.account-danger-txt { min-width: 0; }
.account-danger-title { font-size: 17px; font-weight: 800; letter-spacing: -0.01em; color: var(--ink); margin: 2px 0 4px; }
.account-danger-sub { font-size: 13.5px; line-height: 1.55; color: var(--ink-2); margin: 0; }
.account-danger-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; margin-top: 16px; padding: 13px 20px; border-radius: 12px; background: #25D366; color: #fff; font-family: var(--sans); font-size: 14.5px; font-weight: 800; letter-spacing: -0.01em; text-decoration: none; box-shadow: 0 8px 20px rgba(37,211,102,0.30); transition: transform .16s, box-shadow .16s; }
.account-danger-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(37,211,102,0.4); color: #fff; }

/* ══════════ Vales ══════════ */
.account-table-wrap { overflow-x: auto; border: 1px solid var(--line-2); border-radius: 16px; }
.account-table { width: 100%; border-collapse: collapse; font-family: var(--sans); }
.account-table thead th { text-align: left; font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); padding: 14px 16px; border-bottom: 1px solid var(--line-2); background: var(--bg-2); }
.account-table tbody td { padding: 14px 16px; font-size: 14px; color: var(--ink-2); border-bottom: 1px solid var(--line); }
.account-table tbody tr:last-child td { border-bottom: none; }
.voucher-code { display: inline-block; font-weight: 800; color: var(--ink); background: var(--bg-3); border: 1px dashed var(--line-2); border-radius: 8px; padding: 3px 10px; letter-spacing: .03em; }
.voucher-value { font-weight: 800; color: var(--accent); }
.voucher-cards { display: none; }
.voucher-card { border: 1px solid var(--line-2); border-radius: 14px; padding: 16px; margin-bottom: 12px; background: #fff; }
.voucher-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.voucher-card-name { font-size: 14.5px; font-weight: 600; color: var(--ink); margin-bottom: 10px; }
.voucher-card-meta { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12.5px; color: var(--ink-3); }
@media (max-width: 620px) {
  .account-table-wrap { display: none; }
  .voucher-cards { display: block; }
  .account-danger-btn { width: 100%; }
}


/* ══════════ Mi informacion — enlace Eliminar cuenta (compacto, override) ══════════ */
.account-danger-link { max-width: 720px; margin: 20px auto 0; padding: 14px 4px 0; text-align: center; font-size: 13px; color: var(--ink-3); border-top: 1px solid var(--line); }
.account-danger-link a { color: var(--accent); font-weight: 700; text-decoration: none; margin-left: 4px; }
.account-danger-link a:hover { text-decoration: underline; }


/* ══════════ Agotado (badge + botón) ══════════ */
.product-flag.out-of-stock { background: rgba(107,114,128,0.94); }
.product-card:has(.product-flag.out-of-stock) .product-thumbnail img { opacity: 0.55; filter: grayscale(0.3); }
.product-add-btn.is-disabled { background: var(--bg-3); color: var(--ink-3); box-shadow: none; cursor: not-allowed; font-size: 15px; }


/* Fix: selects del formulario de direccion (Departamento/Municipio) se veian con color apagado y sin flecha */
.allingt-page select.form-control-select,
.address-form select,
.js-address-form select {
  color: var(--ink) !important;
  -webkit-text-fill-color: var(--ink);
  appearance: none;
  -webkit-appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230E0D0C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding: 0 36px 0 14px !important;
  height: 46px !important;
  line-height: 46px !important;
}


/* Boton secundario de WhatsApp cuando el usuario esta logueado (el primario ya es Confirmar pedido en la pagina) */
.co-confirm-alt {
  background: #fff;
  color: #25D366;
  border: 1.5px solid #25D366;
  box-shadow: none;
  margin-top: 10px;
}
.co-confirm-alt:hover { background: rgba(37,211,102,0.08); box-shadow: none; }
.co-confirm.is-loading { opacity: 0.7; pointer-events: none; }
