/* ============================================================
   BRIOX BAKER · /mayorista  ·  estilos propios de la página B2B
   Piggyback sobre styles.css (tokens, botones, badges, marquee,
   FAQ, rejilla). Aquí SOLO lo que no existe ya. Todo dark+oro,
   móvil primero, solo transform/opacity, nada <12px, unidad ≥0.8em.
   ============================================================ */

/* Reveal seguro: sin JS los elementos se ven SIEMPRE. app-propio (mayorista.js)
   marca <body class="m-anim"> y solo entonces se ocultan para entrar al hacer
   scroll. Si el JS falla, no hay página invisible. */
body.m-anim .reveal { opacity: 0; transform: translateY(16px);
  transition: opacity .6s var(--ease), transform .6s var(--ease); }
body.m-anim .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  body.m-anim .reveal { opacity: 1 !important; transform: none !important; transition: none; }
}

/* Número tabular + unidad a la baseline (regla de Juan): la unidad NUNCA enana. */
.m-num { font-variant-numeric: tabular-nums; font-weight: var(--fw-black); color: var(--gold); }
.m-unit { font-size: .8em; font-weight: var(--fw-semi); color: var(--gold-2); margin-left: .12em;
  align-self: baseline; }
.m-gold { color: var(--gold); }

/* Grid de fondo MÁS suave en /mayorista (Juan: "el grid está demasiado fuerte"). */
.m-page .grid-bg { opacity: .45; }

/* Skip-link accesible */
.m-skip { position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--gold); color: var(--ink-invert); padding: .7rem 1.1rem; border-radius: 0 0 8px 0;
  font-weight: var(--fw-semi); }
.m-skip:focus { left: 0; }

/* ---------- Header ----------
   La cabecera es la MISMA en toda la web (assets/css/header.css): una rejilla de
   tres pistas con el logo clavado en el eje. Aquí NO se toca su layout.

   Lo que había antes era un `display:flex` con `space-between`, herencia de
   cuando esta página tenía su propio header con un CTA a la derecha. Con la
   cabecera nueva, ese `space-between` estiraba los enlaces contra los bordes y
   descentraba el logo 9 px — así que el header BAILABA al pasar de la home a
   esta página (Juan, 30-jul: "se mueve el header al entrar ahí"). Medido: los
   enlaces arrancaban en x=201 aquí y en x=387 en el resto.

   Regla: si una página necesita algo del header, se resuelve en header.css para
   todas. Nunca en el CSS de una página suelta. */
.m-header__cta { font-weight: var(--fw-semi); font-size: var(--fs-small, .9rem); color: var(--gold);
  border: 1px solid var(--line-gold); border-radius: 999px; padding: .5rem 1rem; white-space: nowrap;
  transition: background-color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease); }
.m-header__cta:hover { background: rgba(255, 181, 0, .1); border-color: var(--gold); }
.m-header__cta:active { transform: scale(.97); }
@media (max-width: 560px) { .m-header__cta { display: none; } }

/* ---------- Ritmo de secciones ---------- */
.m-hero, .m-why, .m-range, .m-ops, .m-calc, .m-how, .m-close { position: relative; }
.m-why, .m-range, .m-ops, .m-calc, .m-how { padding: var(--gap-m) 0; }
.m-close { padding: var(--gap-m) 0 var(--gap-s); }
/* Los saltos de ancla (#pedir, #calculadora) no quedan bajo el header pegajoso. */
.m-page section[id] { scroll-margin-top: 90px; }

/* ============================================================
   1 · HERO
   ============================================================ */
.m-hero { padding: clamp(6.5rem, 12vh, 9rem) 0 var(--gap-s); overflow: hidden; }
.m-hero__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center;
  gap: clamp(1rem, 2.6vw, 2.6rem); }
.m-eyebrow { font-family: var(--font); text-transform: uppercase; letter-spacing: .1em;
  /* .72rem son 11,5px en el móvil: por debajo del suelo de 12. El mínimo sube a .75rem. */
  font-size: clamp(.75rem, 1.4vw, .82rem); font-weight: var(--fw-semi); color: var(--gold);
  margin: 0 0 1rem; }
.m-hero__title { font-size: clamp(2.2rem, 5.4vw, 4.6rem); font-weight: var(--fw-black);
  line-height: 1.02; letter-spacing: -.02em; text-wrap: balance; margin: 0; }
.m-hero__sub { color: var(--muted); font-size: var(--fs-lead); max-width: 46ch;
  margin: clamp(1.1rem, 2vw, 1.6rem) 0 0; line-height: 1.5; }

.m-hero__object { position: relative; justify-self: center; }
.m-hero__burger { display: block; width: 100%; height: auto; max-width: clamp(22rem, 46vw, 38rem);
  margin-inline: auto;
  /* MANDA EL ANCHO (height:auto) → la foto NUNCA se deforma, respete su proporción real.
     Antes tenía altura fija y al toparse con el hueco se aplastaba (Juan, 18-jul). */
  filter: drop-shadow(0 20px 22px rgba(0, 0, 0, .72)) drop-shadow(0 5px 10px rgba(0, 0, 0, .5)); }
.m-award { position: absolute; top: clamp(.5rem, 2vw, 1.5rem); left: 0; z-index: 2; }
.m-award img { width: clamp(150px, 22vw, 230px); height: auto; display: block; }

/* CTA (badges + reaseguro) — .app__stores y .storebadge vienen de styles.css */
.m-cta { margin-top: clamp(1.6rem, 2.6vw, 2.2rem); }
.m-cta--center { display: grid; justify-items: center; text-align: center; }
.m-cta--center .app__stores { justify-content: center; }
.m-cta__reassure { color: var(--muted); font-size: var(--fs-small, .92rem); margin: .3rem 0 0; font-weight: var(--fw-med); }

/* WhatsApp secundario */
.m-wa { display: inline-flex; align-items: center; gap: .5rem; margin-top: .9rem;
  color: var(--cream); font-weight: var(--fw-semi); font-size: var(--fs-small, .95rem);
  border: 1px solid var(--line); border-radius: 999px; padding: .6rem 1.1rem;
  transition: border-color .2s var(--ease), background-color .2s var(--ease), transform .2s var(--ease); }
.m-wa svg { width: 18px; height: 18px; color: #25d366; }
.m-wa:hover { border-color: rgba(255, 255, 255, .4); background: rgba(255, 255, 255, .04); }
.m-wa:active { transform: scale(.97); }

/* ============================================================
   2 · MURO DE CLIENTES
   ============================================================ */
.m-proof { padding: var(--gap-s) 0; }
.m-proof__title { text-align: center; font-size: clamp(1.1rem, 2.2vw, 1.5rem); font-weight: var(--fw-semi);
  color: var(--cream); margin: 0 0 clamp(1.2rem, 2.5vw, 2rem); text-wrap: balance; }

/* ============================================================
   3 · PILARES
   ============================================================ */
.m-pillars { list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem); }
.m-pill { background: #0c0a08;
  border: 1px solid var(--line); border-radius: var(--r-media);
  padding: clamp(1.2rem, 2vw, 1.6rem); }
.m-pill__ico { width: clamp(26px, 3vw, 34px); height: auto; color: var(--gold); display: block; margin-bottom: .9rem; }
.m-pill__t { font-size: 1.05rem; font-weight: var(--fw-black); color: var(--cream); margin: 0 0 .45rem;
  line-height: 1.2; letter-spacing: -.01em; }
.m-pill__d { color: var(--muted); font-size: var(--fs-small, .95rem); margin: 0; line-height: 1.5; }
.m-pill__d strong { color: var(--cream); font-weight: var(--fw-semi); }

/* ============================================================
   4 · GAMA
   ============================================================ */
.m-fam { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem);
  margin-top: clamp(1.4rem, 3vw, 2rem); }
.m-fam__card { border: 1px solid var(--line); border-radius: var(--r-media);
  padding: 0; background: #0c0a08; overflow: hidden; display: flex; flex-direction: column; }
/* La foto es un pack-shot oficial de Briox (fondo negro): 'contain' para NO recortar
   el pan ni el rótulo de marca. El media es negro puro y funde con la card. */
.m-fam__media { position: relative; aspect-ratio: 5 / 4; background: #000;
  border-bottom: 1px solid var(--line); overflow: hidden; }
.m-fam__media img { width: 100%; height: 100%; object-fit: contain; display: block;
  transition: transform .5s var(--ease); }
.m-fam__card:hover .m-fam__media img { transform: scale(1.035); }
.m-fam__body { padding: clamp(1.3rem, 2.2vw, 1.8rem); }
.m-fam__t { font-size: 1.3rem; font-weight: var(--fw-black); color: var(--gold); margin: 0 0 .4rem; }
.m-fam__d { color: var(--muted); font-size: var(--fs-body); margin: 0; line-height: 1.5; }
.m-fam__d strong { color: var(--cream); font-weight: var(--fw-semi); }

.m-range__cap { text-align: center; color: var(--muted); font-weight: var(--fw-semi);
  text-transform: uppercase; letter-spacing: .08em; font-size: .82rem; margin: clamp(2rem, 3.5vw, 2.8rem) 0 1.2rem; }
.m-editions { list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(.6rem, 1.4vw, 1rem); }
.m-editions li { display: grid; justify-items: center; gap: .5rem; }
.m-editions img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain;
  border-radius: var(--r-media); }
.m-editions span { font-size: .82rem; font-weight: var(--fw-med); color: var(--muted); text-align: center; }
.m-range__nudge { text-align: center; color: var(--cream); font-size: var(--fs-lead);
  margin: clamp(1.6rem, 3vw, 2.4rem) 0 0; font-weight: var(--fw-med); }
.m-range__nudge strong { color: var(--gold); font-weight: var(--fw-semi); }

/* ============================================================
   5 · OPERACIÓN (bento)
   ============================================================ */
.m-ops__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: clamp(.8rem, 1.6vw, 1.2rem);
  margin-top: clamp(1.4rem, 3vw, 2rem); align-items: stretch; }
.m-ops__card { border: 1px solid var(--line); border-radius: var(--r-media);
  background: #0c0a08;
  padding: clamp(1.4rem, 2.4vw, 2rem); display: flex; flex-direction: column; }
/* --big: solo más ancha (grid 1.4fr) — MISMO estilo de card que el resto (Juan: una sola card). */
.m-ops__k { color: var(--gold); font-weight: var(--fw-semi); text-transform: uppercase;
  letter-spacing: .06em; font-size: .78rem; margin: 0 0 .6rem; }
.m-ops__hero { display: flex; align-items: baseline; gap: .1em; margin: 0;
  font-size: clamp(2.6rem, 6vw, 4.4rem); font-weight: var(--fw-black); line-height: .95; color: var(--cream); }
.m-ops__hero .m-num { color: var(--cream); }
.m-ops__hero--sm { font-size: clamp(1.5rem, 3vw, 2.1rem); color: var(--gold); }
.m-ops__sub { color: var(--muted); font-size: var(--fs-small, .95rem); margin: .5rem 0 0; line-height: 1.45; }
.m-ops__line { color: var(--cream); font-size: var(--fs-small, .95rem); margin: auto 0 0;
  padding-top: 1rem; font-weight: var(--fw-med); }

/* ============================================================
   6 · FORMATO + CALCULADORA
   ============================================================ */
.m-format { display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: clamp(.6rem, 2vw, 1.4rem); margin: clamp(1.4rem, 3vw, 2rem) 0 clamp(1.8rem, 3.5vw, 2.6rem); }
.m-format__step { display: grid; justify-items: center; gap: .1rem; min-width: 84px;
  border: 1px solid var(--line); border-radius: var(--r-media); padding: 1rem 1.2rem;
  background: var(--surface-1); }
.m-format__step .m-num { font-size: clamp(1.6rem, 3.4vw, 2.4rem); line-height: 1; }
.m-format__lb { font-size: .8rem; color: var(--muted); font-weight: var(--fw-med); text-align: center; }
.m-format__sub { font-size: max(12px, .72rem); color: var(--gold-2); font-weight: var(--fw-semi); }
.m-format__arrow { color: var(--gold); font-size: 1.4rem; font-weight: var(--fw-black); }

.m-calc__panel { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(1rem, 2.4vw, 2rem); border: 1px solid var(--line); border-radius: var(--r-media);
  background: #0c0a08;
  padding: clamp(1.3rem, 2.6vw, 2.2rem); }

/* --- Formulario --- */
.m-calc__form { display: grid; gap: clamp(1rem, 2vw, 1.3rem); align-content: start; }
.m-field { display: grid; gap: .5rem; }
.m-field label, .m-field__lb { font-weight: var(--fw-semi); font-size: var(--fs-small, .95rem); color: var(--cream); }
.m-field input[type="number"] { font: inherit; font-weight: var(--fw-semi); font-size: 1.15rem;
  color: var(--cream); background: var(--black); border: 1px solid var(--line);
  border-radius: 10px; padding: .7rem .9rem; width: 100%; -moz-appearance: textfield;
  transition: border-color .2s var(--ease); }
.m-field input[type="number"]::-webkit-outer-spin-button,
.m-field input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.m-field input:focus-visible { outline: none; border-color: var(--gold); }
.m-field--adv label { color: var(--muted); font-size: .85rem; }

/* --- Volumen: cifra + slider + botones rápidos (se arrastra, no se escribe) --- */
.m-field--vol { gap: .35rem; }
.m-vol { display: flex; align-items: baseline; gap: .35em; margin: .1rem 0 .2rem; }
.m-vol .m-num { font-size: clamp(1.9rem, 4vw, 2.6rem); line-height: 1; }
.m-vol__u { font-size: .92rem; color: var(--muted); font-weight: var(--fw-med); }

/* El wrap lleva el margen negativo (sin hueco muerto) y sirve de lienzo a las muescas:
   con altura fija 44px, el centro (50%) ES el centro de la pista → las marcas cuadran. */
.m-slider__wrap { position: relative; margin-block: -.5rem; }
.m-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 44px; /* área táctil */
  display: block; background: transparent; cursor: pointer; }

/* Muescas = metas del arrastre (1 palet · entra el camión · camión lleno).
   Se encienden en oro al alcanzarlas. El 13px/26px es el radio del pulgar: así la
   muesca cae justo donde se para el centro del pulgar, no desviada en los extremos. */
.m-marks { position: absolute; left: 0; right: 0; top: 50%; margin-top: 5px; height: 9px;
  pointer-events: none; }
/* Crece con scaleY (no con height): así no recoloca nada al encenderse. */
.m-mark { position: absolute; top: 0; width: 2px; height: 9px; border-radius: 1px;
  background: rgba(255, 255, 255, .2);
  left: calc(13px + var(--p) * (100% - 26px));
  transform: translateX(-50%) scaleY(.62); transform-origin: 50% 0;
  transition: background-color .25s var(--ease), transform .25s var(--ease); }
.m-mark.on { background: var(--gold); transform: translateX(-50%) scaleY(1); }
.m-slider::-webkit-slider-runnable-track { height: 6px; border-radius: 999px;
  background: linear-gradient(90deg, var(--gold) var(--fill, 0%), rgba(255, 255, 255, .1) var(--fill, 0%)); }
.m-slider::-webkit-slider-thumb { -webkit-appearance: none; margin-top: -10px;
  width: 26px; height: 26px; border-radius: 50%; border: 2px solid #0c0a08;
  background: linear-gradient(180deg, #ffd97a, #e0a020);
  box-shadow: 0 2px 9px rgba(0, 0, 0, .6); cursor: grab;
  transition: transform .18s var(--ease); }
.m-slider:active::-webkit-slider-thumb { transform: scale(1.14); cursor: grabbing; }
.m-slider::-moz-range-track { height: 6px; border-radius: 999px; background: rgba(255, 255, 255, .1); }
.m-slider::-moz-range-progress { height: 6px; border-radius: 999px; background: var(--gold); }
.m-slider::-moz-range-thumb { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #0c0a08;
  background: linear-gradient(180deg, #ffd97a, #e0a020); box-shadow: 0 2px 9px rgba(0, 0, 0, .6); }
.m-slider:focus-visible { outline: none; }
.m-slider:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px rgba(255, 181, 0, .45); }
.m-slider:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px rgba(255, 181, 0, .45); }

.m-quick { display: flex; gap: .4rem; }
.m-quick__b { flex: 1; min-height: 44px; font: inherit; font-weight: var(--fw-semi); font-size: .9rem;
  color: var(--gold); background: rgba(255, 181, 0, .07); border: 1px solid var(--line-gold);
  border-radius: 999px; cursor: pointer;
  transition: background-color .2s var(--ease), transform .15s var(--ease); }
.m-quick__b:hover { background: rgba(255, 181, 0, .15); }
.m-quick__b:active { transform: scale(.96); }

/* Segmented control */
.m-seg { display: inline-flex; background: var(--black); border: 1px solid var(--line);
  border-radius: 999px; padding: 3px; gap: 3px; }
.m-seg__b { flex: 1; font: inherit; font-weight: var(--fw-semi); font-size: .9rem; color: var(--muted);
  background: none; border: 0; border-radius: 999px; padding: .55rem .9rem; cursor: pointer; white-space: nowrap;
  min-height: 44px;
  transition: background-color .2s var(--ease), color .2s var(--ease); }
.m-seg__b.is-on { background: var(--gold); color: var(--ink-invert); }
.m-seg__b:not(.is-on):hover { color: var(--cream); }
.m-seg__b:active { transform: scale(.98); }

/* --- Salidas --- */
.m-calc__out { display: grid; gap: 1rem; align-content: start;
  border-left: 1px solid var(--line); padding-left: clamp(1rem, 2.4vw, 2rem); }
.m-res--hero { }
.m-res__k { color: var(--gold); font-weight: var(--fw-semi); text-transform: uppercase;
  letter-spacing: .06em; font-size: .78rem; margin: 0 0 .3rem; }
.m-res__v { display: flex; align-items: baseline; gap: .15em; margin: 0;
  font-size: clamp(2.6rem, 6vw, 4rem); font-weight: var(--fw-black); line-height: .95; color: var(--cream); }
.m-res__v .m-num { color: var(--gold); min-width: 1.6ch; }
.m-res__note { color: var(--muted); font-size: var(--fs-small, .95rem); margin: .5rem 0 0; line-height: 1.5; }
.m-res__note strong { color: var(--cream); font-weight: var(--fw-semi); }
.m-res__list { list-style: none; margin: .3rem 0 0; padding: 0; display: grid; gap: .7rem; }
.m-res__list li { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  border-top: 1px solid var(--line); padding-top: .7rem; }
.m-res__lk { color: var(--muted); font-size: var(--fs-small, .92rem); font-weight: var(--fw-med); }
.m-res__lv { color: var(--cream); font-size: var(--fs-small, .95rem); font-weight: var(--fw-med); text-align: right; }

/* --- Palet que se llena (física de juego) ---
   40 cajas = 1 palet. Las cajas se encienden de abajo arriba según el volumen;
   una insignia cuenta los palets ya llenos. Decorativo (aria-hidden): el detalle
   exacto lo dan los números de al lado. */
.m-palet { display: grid; justify-items: center; gap: .55rem; margin: 0 0 1.1rem;
  padding-bottom: 1.1rem; border-bottom: 1px solid var(--line); }
.m-palet__badge { justify-self: center; font-size: .75rem; font-weight: var(--fw-semi);
  letter-spacing: .02em; color: var(--gold); background: rgba(255, 181, 0, .1);
  border: 1px solid var(--line-gold); border-radius: 999px; padding: .28rem .7rem;
  transition: opacity .3s var(--ease), transform .3s var(--ease); }
.m-palet__badge[hidden] { display: none; }
.m-palet__view { display: grid; justify-items: center; gap: .55rem; width: 100%; }
.m-palet__view[hidden] { display: none; }
.m-palet__stack { display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px;
  width: min(100%, 236px); }
/* Celda = caja del palet, o palet dentro del tráiler. Mismo material, distinta forma:
   la caja es cuadrada; el palet del camión va DE CANTO (alto), como se carga de verdad. */
.m-palet__box, .m-truck__slot { position: relative; border-radius: 3px;
  border: 1px solid rgba(255, 181, 0, .12); background: rgba(255, 255, 255, .02);
  transform: scale(.55); opacity: .3;
  transition: transform .34s cubic-bezier(.34, 1.56, .64, 1), opacity .28s var(--ease),
    background-color .28s var(--ease), border-color .28s var(--ease); }
.m-palet__box { aspect-ratio: 1; }
.m-truck__slot { height: 46px; border-radius: 2px; }
.m-palet__box.on, .m-truck__slot.on { transform: none; opacity: 1;
  background: linear-gradient(180deg, #f7c657, #c8860f);
  border-color: rgba(0, 0, 0, .32);
  box-shadow: inset 0 1.5px 0 rgba(255, 255, 255, .3), inset 0 -2px 3px rgba(0, 0, 0, .28); }
/* El palet cargado se lee como CAJAS APILADAS, no como una barra lisa. */
.m-truck__slot.on::after { content: ""; position: absolute; inset: 0; border-radius: 2px;
  background: repeating-linear-gradient(180deg, transparent 0 10px, rgba(0, 0, 0, .18) 10px 11px); }

/* --- Camión (gran volumen): el tráiler se llena de palets --- */
.m-truck__rig { position: relative; display: flex; align-items: stretch; gap: 4px;
  width: min(100%, 330px); margin-bottom: 6px; }
.m-truck__cab { position: relative; width: 40px; align-self: flex-end; height: 76%;
  border: 1px solid var(--line-gold); border-radius: 5px 12px 3px 3px; background: #0c0a08; }
.m-truck__cab::before { content: ""; position: absolute; top: 5px; left: 5px; right: 7px; height: 34%;
  background: rgba(255, 181, 0, .16); border-radius: 2px 6px 0 0; }
.m-truck__trailer { flex: 1; border: 1px solid var(--line-gold); border-radius: 4px;
  background: #0c0a08; padding: 5px; }
.m-truck__slots { display: grid; grid-template-columns: repeat(15, 1fr); gap: 2px; }
/* Rueda con radio visible: así se NOTA que gira cuando el camión arranca. */
.m-truck__wheel { position: absolute; bottom: -7px; left: var(--wx); transform: translateX(-50%);
  width: 14px; height: 14px; border-radius: 50%; border: 1px solid #5a4630;
  background: radial-gradient(circle at 50% 38%, #4a3826, #1c150d); }
/* curva-ok: no es un halo, es el RADIO de la rueda (una pieza sólida). Su canto es la
   forma misma: si se difumina desaparece el radio y no se percibe el giro al arrancar. */
.m-truck__wheel::after { content: ""; position: absolute; inset: 3px; border-radius: 50%;
  background: linear-gradient(90deg, transparent 44%, rgba(255, 181, 0, .5) 44% 56%, transparent 56%); }

/* --- Flota: los camiones YA despachados, en fila bajo el tráiler ---
   Van en oro APAGADO a propósito: el que brilla es el que se está cargando
   ahora (lo vivo); estos ya salieron y solo cuentan. */
.m-fleet { display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 5px; margin-top: 9px; }
.m-fleet[hidden] { display: none; }
.m-fleet__t { display: block; line-height: 0; }
.m-fleet__ico { display: block; width: 22px; height: 11px; fill: rgba(255, 181, 0, .58); }
.m-fleet__mas { font-size: .78rem; font-weight: var(--fw-semi); color: var(--gold-2);
  margin-left: .1rem; }

/* Base de palet de madera: 3 pies + tablero */
.m-palet__base { width: min(100%, 236px); display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 8px; height: 12px; }
.m-palet__base span { background: linear-gradient(180deg, #6b4f31, #43301c);
  border-radius: 1px 1px 2px 2px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08); }
.m-palet__cap { font-size: .76rem; color: var(--muted); font-weight: var(--fw-med);
  text-align: center; margin: .1rem 0 0; }
@media (prefers-reduced-motion: reduce) {
  .m-palet__box, .m-truck__slot { transition: opacity .2s, background-color .2s; transform: none; }
}

.m-calc__foot { text-align: center; color: var(--muted); font-size: .82rem; line-height: 1.5;
  max-width: 60ch; margin: clamp(1.2rem, 2.4vw, 1.8rem) auto 0; }

/* ============================================================
   7 · CÓMO PEDIR
   ============================================================ */
.m-steps { list-style: none; margin: clamp(1.4rem, 3vw, 2rem) 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.8rem, 1.6vw, 1.2rem); }
.m-step { border: 1px solid var(--line); border-radius: var(--r-media);
  background: #0c0a08; padding: clamp(1.2rem, 2vw, 1.6rem); }
.m-step__no { font-family: var(--font); font-size: 1.4rem; font-weight: var(--fw-black);
  color: var(--gold); display: block; margin-bottom: .5rem; }
.m-step__t { font-size: 1rem; font-weight: var(--fw-semi); color: var(--cream); margin: 0 0 .35rem; line-height: 1.25; }
.m-step__d { color: var(--muted); font-size: var(--fs-small, .92rem); margin: 0; line-height: 1.45; }

.m-samples { margin-top: clamp(1.6rem, 3vw, 2.4rem);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.4rem;
  border: 1px solid var(--line); border-radius: var(--r-media);
  background: #0c0a08;
  padding: clamp(1.4rem, 2.6vw, 2.2rem); }
.m-samples__t { font-size: clamp(1.2rem, 2.4vw, 1.6rem); font-weight: var(--fw-black); color: var(--cream);
  margin: 0 0 .4rem; letter-spacing: -.01em; }
.m-samples__d { color: var(--muted); font-size: var(--fs-body); margin: 0; max-width: 46ch; line-height: 1.5; }
.m-samples__d strong { color: var(--gold); font-weight: var(--fw-semi); }
.m-samples .m-cta { margin-top: 0; }

/* ============================================================
   9 · CIERRE
   ============================================================ */
.m-close { text-align: center; }
.m-close__slogan { margin: 0 0 clamp(1.6rem, 3vw, 2.2rem); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 960px) {
  .m-hero__grid { grid-template-columns: 1fr; text-align: center; }
  .m-hero__copy { order: 2; }
  .m-hero__object { order: 1; margin-bottom: 1rem; }
  .m-hero__sub { margin-inline: auto; }
  .m-cta { display: grid; justify-items: center; }
  .m-cta .app__stores { justify-content: center; }
  .m-award { position: static; margin: 0 auto .8rem; }
  .m-award img { margin-inline: auto; }
  .m-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .m-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .m-ops__grid { grid-template-columns: 1fr; }
  .m-calc__panel { grid-template-columns: 1fr; }
  .m-calc__out { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 1.4rem; }
}
@media (max-width: 560px) {
  .m-hero__burger { max-width: min(84vw, 25rem); }
  .m-pillars { grid-template-columns: 1fr; }
  .m-fam { grid-template-columns: 1fr; }
  .m-editions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .m-steps { grid-template-columns: 1fr; }
  /* La infografía se apila en vertical (la flecha apunta hacia abajo): sin
     flechas colgando cuando el palet baja de línea. */
  .m-format { flex-direction: column; }
  .m-format__arrow { transform: rotate(90deg); }
  .m-format__step { min-width: 0; width: 100%; max-width: 240px; padding: .9rem 1rem; }
  .app__stores { justify-content: center; }
  .m-samples { flex-direction: column; align-items: flex-start; text-align: left; }
  .m-samples .m-cta { justify-items: flex-start; }
}

/* Las ediciones especiales llevan a su ficha (3-ago-2026). El enlace hereda la
   rejilla del <li> para que no cambie ni un píxel de como estaba. */
.m-editions li a.m-ed__l{ display:grid; justify-items:center; gap:.5rem; color:inherit; text-decoration:none;
  border-radius:14px; transition:transform .25s cubic-bezier(.16,1,.3,1), color .25s }
.m-editions li a.m-ed__l:hover{ transform:translateY(-3px); color:#ffb500 }
.m-editions li a.m-ed__l:active{ transform:scale(.97) }
.m-editions li a.m-ed__l:focus-visible{ outline:2px solid #ffb500; outline-offset:4px }
@media (prefers-reduced-motion:reduce){ .m-editions li a.m-ed__l{ transition:none } }
