/* ==========================================================================
   Fragancias Factory 3.13.0 — Layout Editor Pro

   Misma arquitectura que 3.12: los componentes consumen custom properties
   cuyo valor por defecto es el aprobado. El Personalizador solo imprime lo
   que cambia (inc/design-system.php → ff_ds_print_css).

   · Header, barra promocional, 3×2 (iconos) y footer: tokens sobre las clases
     existentes, con la misma especificidad y los mismos tramos que 3.12.
   · Hero configurable (.ff-hx) y 3×2 con productos (.ff-p32): componentes
     nuevos que no heredan ninguna regla !important anterior.
   · Carrusel de «Fragancias para explorar»: motor 3.11 sin cambios.
   ========================================================================== */

/* Tokens 3.13 (default = aspecto aprobado). Generado desde el registro. */
:root {
  --ff-hero-img-ratio:4 / 5;
  --ff-hero-ratio-w:5;
  --ff-hero-ratio-h:6;
  --ff-hero-img-fit:cover;
  --ff-hero-img-x:50%;
  --ff-hero-img-y:50%;
  --ff-hero-overlay-on:1;
  --ff-hero-overlay:#0f1f18;
  --ff-hero-overlay-op:45;
  --ff-hero-min-h:560px;
  --ff-hero-max-h:none;
  --ff-hero-content-w:1400px;
  --ff-hero-text-col:48%;
  --ff-hero-img-max-w:100%;
  --ff-hero-pad-t:48px;
  --ff-hero-pad-b:56px;
  --ff-hero-gap:56px;
  --ff-hero-m-min-h:0px;
  --ff-hero-m-pad-t:16px;
  --ff-hero-m-pad-b:28px;
  --ff-hero-m-gap:18px;
  --ff-hero-m-img-w:100%;
  --ff-hero-m-img-h:300px;
  --ff-hero-t-d:60px;
  --ff-hero-t-lh-d:1.03;
  --ff-hero-t-mw-d:13ch;
  --ff-hero-align-d:left;
  --ff-hero-t-m:34px;
  --ff-hero-t-lh-m:1.05;
  --ff-hero-t-mw-m:12ch;
  --ff-hero-align-m:left;
  --ff-hero-s-d:17px;
  --ff-hero-s-lh-d:1.6;
  --ff-hero-s-mw-d:50ch;
  --ff-hero-s-m:14px;
  --ff-hero-s-lh-m:1.5;
  --ff-hero-s-mw-m:40ch;
  --ff-hero-b-size:10px;
  --ff-hero-b-px:14px;
  --ff-hero-b-py:8px;
  --ff-hero-b-radius:0px;
  --ff-hero-img-h:100%;
  --ff-hero-justify-d:flex-start;
  --ff-hero-justify-m:flex-start;
  --ff-hero-mi-d:0 auto;
  --ff-hero-mi-m:0 auto;
  --ff-hdr-h:76px;
  --ff-hdr-pad-y:0px;
  --ff-hdr-gap:20px;
  --ff-hdr-logo-w:210px;
  --ff-hdr-logo-h:45px;
  --ff-hdr-brand-size:25px;
  --ff-hdr-menu-size:10.5px;
  --ff-hdr-menu-gap:18px;
  --ff-hdr-menu-ls:0.105em;
  --ff-hdr-search-w:520px;
  --ff-hdr-search-h:48px;
  --ff-hdr-search-r:999px;
  --ff-hdr-search-font:11.5px;
  --ff-hdr-account-icon:21px;
  --ff-hdr-cart-icon:21px;
  --ff-hdr-actions-gap:4px;
  --ff-hdr-m-h:52px;
  --ff-hdr-m-pad:12px;
  --ff-hdr-m-gap:6px;
  --ff-hdr-m-logo-w:160px;
  --ff-hdr-m-logo-h:34px;
  --ff-hdr-m-brand-size:19px;
  --ff-hdr-m-icon:21px;
  --ff-hdr-m-search-h:42px;
  --ff-hdr-m-search-w:100%;
  --ff-topbar-color:#fff;
  --ff-topbar-accent:#d9c28d;
  --ff-topbar-pad-d:8px;
  --ff-topbar-pad-m:6px;
  --ff-topbar-font-d:9.5px;
  --ff-topbar-font-m:8.5px;
  --ff-topbar-gap-d:34px;
  --ff-topbar-gap-m:22px;
  --ff-promo-radius-d:18px;
  --ff-promo-radius-m:10px;
  --ff-explore-cols-d:4;
  --ff-explore-cols-m:2;
  --ff-explore-c-radius:0px;
  --ff-explore-c-gap:18px;
  --ff-explore-c-ratio:1 / 1;
  --ff-footer-cols-d:4;
  --ff-footer-cols-m:2;
  --ff-footer-gap:28px;
  --ff-footer-pad-b:34px;
  --ff-footer-bg:#18251f;
  --ff-footer-heading:#dfca8a;
  --ff-footer-text:#b9c0bc;
  --ff-footer-link:#c2c8c4;
  --ff-footer-hover:#fff;
  --ff-footer-sep:rgba(255,255,255,.12);
  --ff-footer-copy:#9fa9a3;
  --ff-footer-heading-d:10px;
  --ff-footer-heading-m:10px;
  --ff-footer-text-d:12px;
  --ff-footer-text-m:12px;
  --ff-footer-link-d:12px;
  --ff-footer-link-m:12px;
  --ff-footer-copy-d:11px;
  --ff-footer-copy-m:11px;
  --ff-footer-col1-order:0;
  --ff-footer-col2-order:0;
  --ff-footer-col3-order:0;
  --ff-footer-col4-order:0;
}

/* Imagen móvil del hero actual: el <picture> no altera el layout 3D. */
.ff-hero-v32 .ff-hx-picture { display:contents; }

/* ==========================================================================
   HERO configurable
   ========================================================================== */
.ff-hx {
  position:relative;
  overflow:hidden;
  background:var(--ff-hero-bg, transparent);
  color:var(--ff-hero-text, var(--ff-ink));
}
.ff-hx__inner {
  position:relative;
  z-index:1;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  gap:var(--ff-hero-gap);
  width:min(100%, var(--ff-hero-content-w));
  min-height:var(--ff-hero-min-h);
  margin-inline:auto;
  padding:var(--ff-hero-pad-t) var(--ff-pad) var(--ff-hero-pad-b);
}
.ff-hx__copy {
  display:flex;
  flex-direction:column;
  align-items:var(--ff-hero-justify-d);
  text-align:var(--ff-hero-align-d);
  min-width:0;
}
.ff-hx__badge {
  display:inline-block;
  margin:0 0 20px;
  padding:var(--ff-hero-b-py) var(--ff-hero-b-px);
  border-radius:var(--ff-hero-b-radius);
  background:var(--ff-hero-b-bg, var(--ff-gold));
  color:var(--ff-hero-b-color, var(--ff-ink));
  font-size:var(--ff-hero-b-size);
  font-weight:600;
  line-height:1.2;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.ff-hx__title {
  margin:0;
  max-width:var(--ff-hero-t-mw-d);
  font-family:var(--ff-display);
  font-weight:400;
  font-size:var(--ff-hero-t-d);
  line-height:var(--ff-hero-t-lh-d);
  letter-spacing:-.02em;
  color:inherit;
  text-wrap:balance;
}
.ff-hx__lead {
  margin:20px 0 0;
  max-width:var(--ff-hero-s-mw-d);
  font-size:var(--ff-hero-s-d);
  line-height:var(--ff-hero-s-lh-d);
  color:var(--ff-hero-subtext, #4e5b55);
  text-wrap:pretty;
}
.ff-hx__facts, .ff-hx__actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:var(--ff-hero-justify-d);
}
.ff-hx__facts { gap:9px; margin-top:24px; }
.ff-hx__facts span {
  padding:10px 14px;
  border:1px solid var(--ff-hero-border, var(--ff-border-strong));
  font-size:12px;
  letter-spacing:.02em;
}
.ff-hx__facts .ff-hx__shipping { border-color:var(--ff-hero-border, #b69e5d); color:var(--ff-hero-text, #665b35); }
.ff-hx__actions { gap:10px; margin-top:26px; }
.ff-hx .ff-hx__cta {
  background:var(--ff-hero-cta-bg, var(--ff-btn-bg, var(--ff-ink)));
  border-color:var(--ff-hero-cta-bg, var(--ff-btn-bg, var(--ff-ink)));
  color:var(--ff-hero-cta-text, var(--ff-btn-text, #fff));
}
.ff-hx__media {
  position:relative;
  justify-self:center;
  width:100%;
  max-width:var(--ff-hero-img-max-w);
  max-height:var(--ff-hero-max-h);
  min-width:0;
  margin:0;
  overflow:hidden;
  aspect-ratio:var(--ff-hero-img-ratio);
  background:linear-gradient(145deg,#eef2e9,#e5ebe2);
}
.ff-hx picture { display:block; height:100%; }
.ff-hx__media-link { display:block; height:100%; }
.ff-hx__img {
  display:block;
  width:100%;
  height:var(--ff-hero-img-h);
  object-fit:var(--ff-hero-img-fit);
  object-position:var(--ff-hero-img-x) var(--ff-hero-img-y);
}
.ff-hx__caption {
  position:absolute;
  left:16px;
  bottom:16px;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:10px 13px;
  border:1px solid rgba(29,42,36,.12);
  background:rgba(246,247,240,.9);
  color:var(--ff-ink);
}
.ff-hx__caption span { font-family:var(--ff-display); font-size:15px; }
.ff-hx__caption small { font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:#66746c; }

/* Distribuciones (tablet y escritorio) */
@media (min-width:768px) {
  .ff-hx--text_right .ff-hx__inner { grid-template-columns:minmax(0, var(--ff-hero-text-col)) minmax(0,1fr); }
  .ff-hx--image_left .ff-hx__inner { grid-template-columns:minmax(0,1fr) minmax(0, var(--ff-hero-text-col)); }
  .ff-hx--image_left .ff-hx__media { order:-1; }
  .ff-hx--split .ff-hx__inner    { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .ff-hx--ed_40_60 .ff-hx__inner { grid-template-columns:minmax(0,4fr) minmax(0,6fr); }
  .ff-hx--ed_60_40 .ff-hx__inner { grid-template-columns:minmax(0,6fr) minmax(0,4fr); }
  .ff-hx--no-media .ff-hx__inner { grid-template-columns:minmax(0,1fr); }
}
.ff-hx--text_only .ff-hx__copy,
.ff-hx--no-media .ff-hx__copy,
.ff-hx--stack .ff-hx__copy,
.ff-hx--background .ff-hx__copy { justify-self:var(--ff-hero-justify-d); max-width:min(100%, 880px); }
.ff-hx--stack .ff-hx__media { order:-1; }

/* Imagen de fondo + texto: capa de contraste para garantizar legibilidad */
.ff-hx--background { color:var(--ff-hero-text, #fff); }
.ff-hx__bg, .ff-hx__overlay { position:absolute; inset:0; z-index:0; }
.ff-hx__bg .ff-hx__img { height:100%; }
.ff-hx__overlay { background:var(--ff-hero-overlay); opacity:calc(var(--ff-hero-overlay-on) * var(--ff-hero-overlay-op) / 100); }
.ff-hx--background .ff-hx__lead { color:var(--ff-hero-subtext, rgba(255,255,255,.88)); }
.ff-hx--background .ff-hx__facts span { border-color:var(--ff-hero-border, rgba(255,255,255,.45)); color:inherit; }

@media (min-width:768px) and (max-width:1023px) {
  .ff-hx__title { font-size:calc((var(--ff-hero-t-d) + var(--ff-hero-t-m)) / 2); }
  .ff-hx__lead { font-size:calc((var(--ff-hero-s-d) + var(--ff-hero-s-m)) / 2); }
}

/* Móvil ≤767 */
@media (max-width:767px) {
  .ff-hx .ff-hx__inner {
    grid-template-columns:minmax(0,1fr);
    gap:var(--ff-hero-m-gap);
    min-height:var(--ff-hero-m-min-h);
    padding-top:var(--ff-hero-m-pad-t);
    padding-bottom:var(--ff-hero-m-pad-b);
  }
  .ff-hx .ff-hx__copy { align-items:var(--ff-hero-justify-m); text-align:var(--ff-hero-align-m); justify-self:stretch; }
  .ff-hx__badge { margin-bottom:14px; }
  .ff-hx__title { font-size:var(--ff-hero-t-m); line-height:var(--ff-hero-t-lh-m); max-width:var(--ff-hero-t-mw-m); }
  .ff-hx__lead { margin-top:12px; font-size:var(--ff-hero-s-m); line-height:var(--ff-hero-s-lh-m); max-width:var(--ff-hero-s-mw-m); }
  .ff-hx__facts { gap:5px; margin-top:14px; justify-content:var(--ff-hero-justify-m); }
  .ff-hx__facts span { padding:7px 9px; font-size:10px; }
  .ff-hx__actions { margin-top:16px; justify-content:var(--ff-hero-justify-m); }
  .ff-hx .ff-hx__media {
    order:0;
    width:var(--ff-hero-m-img-w);
    height:var(--ff-hero-m-img-h);
    max-width:100%;
    max-height:none;
    aspect-ratio:auto;
  }
  .ff-hx .ff-hx__media .ff-hx__img { height:100%; }
  .ff-hx--m-stack_top .ff-hx__media { order:-1; }
  .ff-hx--m-stack_bottom .ff-hx__media { order:2; }
  .ff-hx--m-side:not(.ff-hx--no-media):not(.ff-hx--image_only):not(.ff-hx--background) .ff-hx__inner { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
  .ff-hx--m-side .ff-hx__media { order:2; }
  .ff-hx--image_only .ff-hx__media { order:0; }
  .ff-hx__caption { display:none; }
}

/* ==========================================================================
   HEADER — tokens sobre el header 3.12 (motor de scroll intacto)
   ========================================================================== */
@media (min-width:1200px) {
  .ff-header-v31__main {
    width:min(100%, var(--ff-hdr-max, var(--ff-shell)));
    min-height:var(--ff-hdr-h);
    gap:var(--ff-hdr-gap);
    padding-block:var(--ff-hdr-pad-y);
    padding-inline:var(--ff-hdr-pad-x, var(--ff-pad));
  }
  .ff-header-compact .ff-header-v31__main { min-height:max(44px, calc(var(--ff-hdr-h) - 18px)); }
  .ff-brand-v31 { min-width:var(--ff-hdr-logo-w); }
  .ff-brand-v31 .custom-logo { max-height:var(--ff-hdr-logo-h); }
  .ff-brand-v31 .ff-brand__text { font-size:var(--ff-hdr-brand-size); }
  .ff-menu-v31 { gap:var(--ff-hdr-menu-gap); font-size:var(--ff-hdr-menu-size); letter-spacing:var(--ff-hdr-menu-ls); }
  .ff-header-search-trigger {
    min-width:min(340px, var(--ff-hdr-search-w));
    max-width:var(--ff-hdr-search-w);
    min-height:var(--ff-hdr-search-h);
    border-radius:var(--ff-hdr-search-r);
  }
  .ff-header-search-trigger span { font-size:var(--ff-hdr-search-font); }
  .ff-header-actions-v31 { gap:var(--ff-hdr-actions-gap); }
  .ff-header-actions-v31 > a.ff-icon-btn svg { width:var(--ff-hdr-account-icon); height:var(--ff-hdr-account-icon); }
  .ff-header-actions-v31 .ff-cart-open svg { width:var(--ff-hdr-cart-icon); height:var(--ff-hdr-cart-icon); }
}
@media (max-width:1199px) {
  .ff-header-v31__main { padding-inline:var(--ff-hdr-m-pad); }
  .ff-brand-v31 .custom-logo { max-height:var(--ff-hdr-m-logo-h); max-width:var(--ff-hdr-m-logo-w); }
  .ff-header-v31 .ff-icon-btn svg { width:var(--ff-hdr-m-icon); height:var(--ff-hdr-m-icon); }
  .ff-mobile-search-trigger { width:calc(var(--ff-hdr-m-search-w) - 24px); min-height:var(--ff-hdr-m-search-h); margin-left:auto; margin-right:auto; }
  .ff-header-compact .ff-mobile-search-trigger { min-height:calc(var(--ff-hdr-m-search-h) - 4px); }
}
@media (max-width:900px) {
  .ff-header-v31__main { min-height:var(--ff-hdr-m-h); gap:var(--ff-hdr-m-gap); }
  .ff-header-compact .ff-header-v31__main { min-height:calc(var(--ff-hdr-m-h) - 4px); }
  .ff-brand-v31 .ff-brand__text { font-size:var(--ff-hdr-m-brand-size); }
}
@media (max-width:430px) {
  .ff-brand-v31 .custom-logo { max-width:calc(var(--ff-hdr-m-logo-w) - 18px); }
  .ff-brand-v31 .ff-brand__text { font-size:calc(var(--ff-hdr-m-brand-size) - 2px); }
  .ff-mobile-search-trigger { width:calc(var(--ff-hdr-m-search-w) - 20px); }
}

/* Barra promocional */
.ff-topbar-v31 {
  color:var(--ff-topbar-color);
  max-height:calc(var(--ff-topbar-pad-d) * 2 + 26px + env(safe-area-inset-top));
}
.ff-topbar-v31 .ff-topbar__accent { color:var(--ff-topbar-accent); }
.ff-topbar-v31 .ff-topbar__set {
  padding-top:var(--ff-topbar-pad-d);
  padding-bottom:var(--ff-topbar-pad-d);
  font-size:var(--ff-topbar-font-d);
  gap:var(--ff-topbar-gap-d);
}
@media (max-width:719px) {
  .ff-topbar-v31 { max-height:calc(var(--ff-topbar-pad-m) * 2 + 30px + env(safe-area-inset-top)); }
  .ff-topbar-v31 .ff-topbar__set {
    padding-top:var(--ff-topbar-pad-m);
    padding-bottom:var(--ff-topbar-pad-m);
    font-size:var(--ff-topbar-font-m);
    gap:var(--ff-topbar-gap-m);
  }
}

/* ==========================================================================
   3×2 — tokens sobre la sección 3.12 + tarjetas de producto (.ff-p32)
   ========================================================================== */
.ff-promo-v33 {
  padding-top:var(--ff-promo-pad-d, clamp(38px,5vw,72px));
  padding-bottom:var(--ff-promo-pad-d, clamp(38px,5vw,72px));
}
.ff-promo-v33__grid { gap:var(--ff-promo-gap-d, clamp(28px,5vw,80px)); }
.ff-promo-bottle { border-radius:var(--ff-promo-radius-d); }
@media (max-width:719px) {
  .ff-promo-v33 { padding-top:var(--ff-promo-pad-m, 30px); padding-bottom:var(--ff-promo-pad-m, 42px); }
  .ff-promo-v33__grid { gap:var(--ff-promo-gap-m, 24px); }
  .ff-promo-bottle { border-radius:var(--ff-promo-radius-m); }
}

.ff-p32 { position:relative; min-width:0; color:var(--ff-p32-text, #fff); }
.ff-p32__cards {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  align-items:stretch;
  gap:10px;
}
.ff-p32__plus { align-self:center; font-family:var(--ff-display); font-size:22px; line-height:1; color:var(--ff-p32-free, #d7c18e); }
.ff-p32-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:12px 12px 14px;
  border:1px solid var(--ff-p32-border, rgba(255,255,255,.16));
  border-radius:var(--ff-promo-radius-d);
  background:var(--ff-p32-card, rgba(255,255,255,.07));
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}
.ff-p32-card__num { margin-bottom:8px; font-size:9px; letter-spacing:.16em; color:#d7c18e; }
.ff-p32-card__media {
  display:block;
  aspect-ratio:1 / 1;
  overflow:hidden;
  border-radius:max(0px, calc(var(--ff-promo-radius-d) - 8px));
  background:radial-gradient(circle at 50% 38%, rgba(255,255,255,.24), rgba(255,255,255,.05) 72%);
}
.ff-p32-card__media img { display:block; width:100%; height:100%; object-fit:cover; }
.ff-p32-card__media--icon { display:grid; place-items:center; }
.ff-p32-card__media--icon img { width:46%; height:auto; object-fit:contain; }
.ff-p32-card__bottle {
  position:relative;
  display:block;
  width:30%;
  aspect-ratio:48 / 86;
  border:1px solid rgba(255,255,255,.26);
  border-radius:9px 9px 14px 14px;
  background:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.02));
}
.ff-p32-card__bottle::before {
  content:"";
  position:absolute;
  left:50%;
  bottom:100%;
  width:46%;
  height:18%;
  margin-bottom:2px;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.22);
  border-radius:3px 3px 0 0;
}
.ff-p32-card__body { display:flex; flex-direction:column; gap:3px; min-width:0; margin-top:10px; }
.ff-p32-card__name {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  font-family:var(--ff-display);
  font-size:16px;
  font-weight:400;
  line-height:1.15;
  color:inherit;
}
.ff-p32-card__insp { overflow:hidden; font-size:10px; font-style:italic; white-space:nowrap; text-overflow:ellipsis; color:rgba(255,255,255,.68); }
.ff-p32-card__price { margin-top:4px; font-size:13px; font-weight:600; }
.ff-p32-card__price .ff-price-prefix { font-size:9px; font-weight:400; opacity:.72; }
.ff-p32-card__price del { opacity:.6; font-weight:400; }
.ff-p32-card__price ins { text-decoration:none; }
.ff-p32-card__quick {
  display:grid;
  place-items:center;
  align-self:flex-start;
  width:34px;
  height:34px;
  margin-top:10px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:50%;
  background:transparent;
  color:inherit;
  cursor:pointer;
}
.ff-p32-card__quick svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.7; }
.ff-p32-card__quick:hover { background:#fff; color:#17392f; }
.ff-p32-card > .added_to_cart { display:none; }

/* Tercer perfume: acento dorado, número y badge */
.ff-p32-card.is-free {
  border-color:var(--ff-p32-free, #d9c28d);
  background:linear-gradient(180deg, rgba(217,194,141,.24), rgba(255,255,255,.05));
  box-shadow:inset 0 0 0 1px var(--ff-p32-free, #d9c28d), 0 20px 44px -22px rgba(217,194,141,.6);
}
.ff-p32-card.is-free .ff-p32-card__num { color:var(--ff-p32-free, #e5cd88); font-weight:600; }
.ff-p32-card__free {
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  padding:5px 9px;
  border-radius:999px;
  background:var(--ff-p32-free, #d9c28d);
  color:#1d2a24;
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.ff-p32-card__free sup { margin-left:1px; font-size:.85em; line-height:0; }
.ff-p32__foot { margin-top:16px; text-align:center; }
.ff-p32__equals { margin:0; font-size:10px; letter-spacing:.13em; text-transform:uppercase; color:#dcc99b; }
.ff-p32__note { margin:6px auto 0; max-width:52ch; font-size:11px; line-height:1.45; color:rgba(255,255,255,.72); }
.ff-p32__figure { margin:0; }
.ff-p32__figure img { display:block; width:100%; height:auto; border-radius:var(--ff-promo-radius-d); }

@media (max-width:719px) {
  .ff-p32-card { border-radius:var(--ff-promo-radius-m); }
  .ff-p32-card__media { border-radius:max(0px, calc(var(--ff-promo-radius-m) - 4px)); }
  .ff-p32__figure img { border-radius:var(--ff-promo-radius-m); }
  .ff-p32--m-stack .ff-p32__cards { grid-template-columns:minmax(0,1fr); gap:6px; }
  .ff-p32--m-stack .ff-p32__plus { justify-self:center; font-size:15px; }
  .ff-p32--m-stack .ff-p32-card { flex-direction:row; align-items:center; gap:12px; padding:10px 12px; }
  .ff-p32--m-stack .ff-p32-card__num { margin:0; flex:0 0 auto; }
  .ff-p32--m-stack .ff-p32-card__media { flex:0 0 68px; width:68px; }
  .ff-p32--m-stack .ff-p32-card__body { flex:1 1 auto; margin:0; padding-right:52px; }
  .ff-p32--m-stack .ff-p32-card:not(.is-free) .ff-p32-card__body { padding-right:0; }
  .ff-p32--m-stack .ff-p32-card__name { font-size:15px; }
  .ff-p32--m-stack .ff-p32-card__quick { margin:0 0 0 auto; align-self:center; flex:0 0 auto; }
  .ff-p32--m-stack .ff-p32-card__free { top:50%; transform:translateY(-50%); }
  .ff-p32--m-stack .is-free .ff-p32-card__quick { margin-right:62px; }
  .ff-p32--m-row .ff-p32__cards { gap:5px; }
  .ff-p32--m-row .ff-p32__plus { font-size:14px; }
  .ff-p32--m-row .ff-p32-card { padding:8px 7px 9px; }
  .ff-p32--m-row .ff-p32-card__num { margin-bottom:5px; font-size:7px; }
  .ff-p32--m-row .ff-p32-card__free { top:6px; right:6px; padding:3px 5px; font-size:6.5px; letter-spacing:.1em; }
  .ff-p32--m-row .ff-p32-card__body { margin-top:6px; }
  .ff-p32--m-row .ff-p32-card__name { font-size:11px; }
  .ff-p32--m-row .ff-p32-card__insp { display:none; }
  .ff-p32--m-row .ff-p32-card__price { font-size:10px; }
  .ff-p32--m-row .ff-p32-card__quick { width:28px; height:28px; margin-top:6px; }
  .ff-p32__foot { margin-top:12px; }
  .ff-p32__equals { font-size:8.5px; }
  .ff-p32__note { font-size:10px; }
}

/* ==========================================================================
   FRAGANCIAS PARA EXPLORAR · carrusel (motor 3.11, tarjeta del Design System)
   ========================================================================== */
.ff-mini-rail--explore {
  --_vd:var(--ff-explore-cols-d, 4);
  --_vm:calc(var(--ff-explore-cols-m, 2) + .25);
}
@media (max-width:767px)                        { .ff-mini-rail--explore { --ff-visible:var(--_vm); } }
@media (min-width:768px) and (max-width:1023px) { .ff-mini-rail--explore { --ff-visible:max(1.2, calc(min(var(--_vd), 4) - 0.7)); } }
@media (min-width:1024px) and (max-width:1279px){ .ff-mini-rail--explore { --ff-visible:max(1.2, calc(var(--_vd) - 0.7)); } }
@media (min-width:1280px) and (max-width:1599px){ .ff-mini-rail--explore { --ff-visible:calc(var(--_vd) + 0.3); } }
@media (min-width:1600px)                       { .ff-mini-rail--explore { --ff-visible:calc(var(--_vd) + 0.4); } }

/* ==========================================================================
   FOOTER — tokens sobre el footer 3.12
   ========================================================================== */
.ff-footer { background:var(--ff-footer-bg); }
.ff-footer__main {
  width:min(100%, var(--ff-footer-max, var(--ff-shell)));
  padding-top:var(--ff-footer-pad-t, clamp(40px,5vw,72px));
}
.ff-footer__menus { gap:var(--ff-footer-gap); }
.ff-footer__menus > [data-col="1"] { order:var(--ff-footer-col1-order); }
.ff-footer__menus > [data-col="2"] { order:var(--ff-footer-col2-order); }
.ff-footer__menus > [data-col="3"] { order:var(--ff-footer-col3-order); }
.ff-footer__menus > [data-col="4"] { order:var(--ff-footer-col4-order); }
.ff-footer__title { color:var(--ff-footer-heading); font-size:var(--ff-footer-heading-d); }
.ff-footer__brand p { color:var(--ff-footer-text); font-size:var(--ff-footer-text-d); }
.ff-footer__menus a { color:var(--ff-footer-link); font-size:var(--ff-footer-link-d); }
.ff-footer__menus a:hover { color:var(--ff-footer-hover); }
.ff-footer__bottom {
  width:min(100%, var(--ff-footer-max, var(--ff-shell)));
  padding-bottom:var(--ff-footer-pad-b);
  border-top-color:var(--ff-footer-sep);
  color:var(--ff-footer-copy);
  font-size:var(--ff-footer-copy-d);
}
@media (min-width:1200px) {
  .ff-footer__menus { grid-template-columns:repeat(var(--ff-footer-cols-d), minmax(0,1fr)); }
}
@media (max-width:719px) {
  .ff-footer__menus { grid-template-columns:repeat(var(--ff-footer-cols-m), minmax(0,1fr)); }
  .ff-footer__title { font-size:var(--ff-footer-heading-m); }
  .ff-footer__brand p { font-size:var(--ff-footer-text-m); }
  .ff-footer__menus a { font-size:var(--ff-footer-link-m); }
  .ff-footer__bottom { font-size:var(--ff-footer-copy-m); }
}
.ff-footer__brand .ff-footer__desc { margin-top:14px; max-width:36ch; }
.ff-footer__social { display:flex; flex-wrap:wrap; gap:6px; margin:16px 0 0; padding:0; list-style:none; }
.ff-footer__social a {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid var(--ff-footer-sep);
  border-radius:50%;
  color:var(--ff-footer-link);
}
.ff-footer__social a:hover { color:var(--ff-footer-hover); border-color:currentColor; }
.ff-footer__pay { padding-bottom:22px; }
.ff-footer__pay .ff-paymarquee__label { color:var(--ff-footer-heading); }
