/*
 * Fergar Descanso - tema hijo "celebrand" sobre Hummingbird 2.1 (PrestaShop 9.2).
 * Composicion de Fergar Descanso (plana, esquinas rectas, fotos grandes, textos pequenos) con los colores
 * y tipografias de Fergar Descanso. Disenado primero para movil.
 *
 * Hummingbird declara su CSS en capas (@layer); estas reglas van fuera de capa y por eso ganan sin subir la
 * especificidad ni usar !important. Ojo: tambien ganan a las utilidades de Bootstrap (.d-none, .mb-0...), asi
 * que no se fija display en elementos que el tema muestra u oculta con utilidades. Las utilidades de orden
 * (order-*) si llevan !important.
 *
 * Indice: 1. Fuentes  2. Tokens y Bootstrap  3. Base  4. Componentes  5. Cabecera  6. Pie  7. Portada
 *         8. Listados  9. Miniatura  10. Ficha  11. Otras paginas
 */

/* 1. Fuentes ------------------------------------------------------------------------------------------------ */
/* Source Serif 4 (SIL OFL) autoalojada; Inter ya la sirve Hummingbird. */
@font-face {
  font-family: "Source Serif 4";
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url("../fonts/source-serif-4-latin-opsz-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* 2. Tokens y Bootstrap ------------------------------------------------------------------------------------- */
:root,
[data-bs-theme=light] {
  --fd-bg: #faf7f2;
  --fd-surface: #f3eee7;
  --fd-card: #fffdf9;
  --fd-line: #e6ded3;
  --fd-ink: #1e1915;
  --fd-text: #3f3832;
  --fd-muted: #776d64;
  --fd-accent: #c2552b;
  --fd-accent-hover: #a5461f;
  --fd-accent-soft: #f7e7de;
  --fd-ochre: #d6861a;
  --fd-green: #3e6a48;
  --fd-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --fd-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --fd-gutter: clamp(1rem, 3.4vw, 3rem);
  --fd-header-h: 3.5rem;

  --bs-primary: var(--fd-accent);
  --bs-primary-rgb: 194, 85, 43;
  --bs-primary-text-emphasis: var(--fd-accent-hover);
  --bs-primary-bg-subtle: var(--fd-accent-soft);
  --bs-primary-border-subtle: #e9b9a3;
  --bs-success: var(--fd-green);
  --bs-success-rgb: 62, 106, 72;
  --bs-body-bg: var(--fd-card);
  --bs-body-bg-rgb: 255, 253, 249;
  --bs-body-color: var(--fd-text);
  --bs-body-color-rgb: 63, 56, 50;
  --bs-body-font-family: var(--fd-sans);
  --bs-body-font-size: .9375rem;
  --bs-emphasis-color: var(--fd-ink);
  --bs-heading-color: var(--fd-ink);
  --bs-secondary-color: rgba(63, 56, 50, .78);
  --bs-tertiary-color: rgba(63, 56, 50, .62);
  --bs-secondary-bg: #ebe4da;
  --bs-tertiary-bg: var(--fd-surface);
  --bs-tertiary-bg-rgb: 243, 238, 231;
  --bs-link-color: var(--fd-ink);
  --bs-link-color-rgb: 30, 25, 21;
  --bs-link-hover-color: var(--fd-accent-hover);
  --bs-link-hover-color-rgb: 165, 70, 31;
  --bs-border-color: var(--fd-line);
  --bs-border-radius: 0;
  --bs-border-radius-sm: 0;
  --bs-border-radius-lg: 0;
  --bs-border-radius-xl: 0;
  --bs-focus-ring-color: rgba(194, 85, 43, .3);
  --bs-box-shadow-md: 0 10px 30px rgba(30, 25, 21, .08);
}

/* 3. Base --------------------------------------------------------------------------------------------------- */
body {
  background-color: var(--fd-card);
  color: var(--fd-text);
  font-size: .9375rem;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4,
.h1, .h2, .h3, .h4 {
  color: var(--fd-ink);
  font-family: var(--fd-serif);
  font-weight: 500;
  letter-spacing: -0.015em;
}

h5, h6, .h5, .h6 { color: var(--fd-ink); }
a { text-underline-offset: 3px; }
::selection { background: var(--fd-accent-soft); color: var(--fd-ink); }

.columns-container { max-width: 1680px; padding-inline: var(--fd-gutter); }

.breadcrumb__wrapper { background-color: transparent; border: 0; }
.breadcrumb__wrapper .container { max-width: 1680px; padding-inline: var(--fd-gutter); }
.breadcrumb { font-size: .8125rem; padding-block: .875rem .25rem; }
.breadcrumb a { color: var(--fd-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--fd-ink); }

/* 4. Componentes -------------------------------------------------------------------------------------------- */
.btn { border-radius: 0; font-weight: 500; }

.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--fd-accent);
  --bs-btn-border-color: var(--fd-accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--fd-accent-hover);
  --bs-btn-hover-border-color: var(--fd-accent-hover);
  --bs-btn-focus-shadow-rgb: 194, 85, 43;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #8f3c1b;
  --bs-btn-active-border-color: #8f3c1b;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #d99a80;
  --bs-btn-disabled-border-color: #d99a80;
}

.btn-outline-primary {
  --bs-btn-color: var(--fd-ink);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--fd-line);
  --bs-btn-hover-color: var(--fd-ink);
  --bs-btn-hover-bg: transparent;
  --bs-btn-hover-border-color: var(--fd-ink);
  --bs-btn-focus-shadow-rgb: 30, 25, 21;
  --bs-btn-active-color: var(--fd-ink);
  --bs-btn-active-bg: var(--fd-surface);
  --bs-btn-active-border-color: var(--fd-ink);
}

.btn-secondary,
.btn-dark {
  --bs-btn-bg: var(--fd-ink);
  --bs-btn-border-color: var(--fd-ink);
  --bs-btn-hover-bg: #3a322c;
  --bs-btn-hover-border-color: #3a322c;
}

.form-control,
.form-select { background-color: #fff; border-color: var(--fd-line); border-radius: 0; }

.form-control:focus,
.form-select:focus,
.form-check-input:focus { border-color: var(--fd-ink); box-shadow: none; }

.form-check-input { border-radius: 0; }
.form-check-input:checked { background-color: var(--fd-ink); border-color: var(--fd-ink); }

.fd-btn {
  align-items: center;
  border: 1px solid transparent;
  display: inline-flex;
  font-size: .875rem;
  font-weight: 500;
  gap: .5rem;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 1.5rem;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}

.fd-btn--light { background-color: #fff; color: var(--fd-ink); }
.fd-btn--light:hover { background-color: var(--fd-ink); color: #fff; }
.fd-btn--dark { background-color: var(--fd-ink); color: #fff; }
.fd-btn--dark:hover { background-color: var(--fd-accent); color: #fff; }

.fd-link {
  background: none;
  border: 0;
  color: var(--fd-ink);
  font-size: .875rem;
  padding: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.fd-link:hover { color: var(--fd-accent-hover); }

/* Carrusel horizontal nativo (scroll-snap), usado en portada, subcategorias y productos relacionados. */
.fd-carousel {
  display: grid;
  gap: .5rem;
  grid-auto-columns: 72%;
  grid-auto-flow: column;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-padding-inline: var(--fd-gutter);
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.fd-carousel::-webkit-scrollbar { display: none; }
.fd-carousel > * { scroll-snap-align: start; }

.fd-carousel-nav { display: none; gap: .75rem; }

.fd-carousel-nav__btn {
  background: none;
  border: 0;
  color: var(--fd-ink);
  font-size: 1.25rem;
  line-height: 1;
  padding: .25rem;
}

.fd-carousel-nav__btn:disabled { color: var(--fd-line); }

.fd-tags { display: flex; flex-wrap: wrap; gap: .375rem; list-style: none; margin: 0; padding: 0; }

.fd-tag,
.product-miniature__tag {
  background-color: var(--fd-surface);
  color: var(--fd-ink);
  font-size: .625rem;
  font-weight: 600;
  letter-spacing: .06em;
  line-height: 1;
  padding: .3125rem .4375rem;
  text-transform: uppercase;
}

.fd-tag--plain { background: none; color: var(--fd-muted); padding-inline: 0; }
.fd-tag--discount, .fd-tag--discount-percentage, .fd-tag--discount-amount,
.product-miniature__tag--discount, .product-miniature__tag--discount-percentage, .product-miniature__tag--discount-amount { background-color: var(--fd-accent); color: #fff; }
.fd-tag--out_of_stock, .product-miniature__tag--out_of_stock { background-color: var(--fd-ink); color: #fff; }

.fd-plain-list { list-style: none; margin: 0; padding: 0; }
.fd-plain-list li + li { margin-top: .5rem; }

/* 5. Cabecera ----------------------------------------------------------------------------------------------- */
.header { background-color: #fff; box-shadow: none; }

.fd-promo { background-color: var(--fd-surface); color: var(--fd-ink); font-size: .8125rem; }

.fd-promo__inner {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1680px;
  min-height: 2.5rem;
  padding-inline: var(--fd-gutter);
}

.fd-promo__text { margin: 0; }
.fd-promo__text a { color: inherit; }
.fd-promo__sep { margin-inline: .375rem; }
.fd-promo__links { display: none; gap: 1.25rem; }
.fd-promo__links a { color: var(--fd-ink); text-decoration: none; }
.fd-promo__links a:hover { text-decoration: underline; }

.fd-header { background-color: #fff; border-bottom: 1px solid var(--fd-line); position: relative; }

.fd-header__inner {
  align-items: center;
  display: flex;
  gap: .25rem;
  margin-inline: auto;
  max-width: 1680px;
  min-height: var(--fd-header-h);
  padding-inline: calc(var(--fd-gutter) - .5rem);
}

.fd-icon-btn {
  align-items: center;
  background: none;
  border: 0;
  color: var(--fd-ink);
  display: inline-flex;
  height: 2.5rem;
  justify-content: center;
  padding: 0;
  position: relative;
  width: 2.5rem;
}

.fd-icon-btn:hover { color: var(--fd-accent-hover); }

.fd-header__logo { flex: none; margin-right: auto; }
.fd-header__h1 { font-size: inherit; line-height: 0; margin: 0; }
.fd-header__logo-link { display: block; line-height: 0; }
.fd-header__logo img { height: auto; width: 8.25rem; }

.fd-header__tools { align-items: center; display: flex; flex: none; }

.fd-cart__count {
  align-items: center;
  background-color: var(--fd-accent);
  border-radius: 999px;
  color: #fff;
  display: flex;
  font-size: .625rem;
  font-weight: 700;
  height: 1rem;
  justify-content: center;
  min-width: 1rem;
  padding: 0 .25rem;
  position: absolute;
  right: .125rem;
  top: .25rem;
}

/* Buscador (widget ps_searchbar): en movil solo el icono; desde 768 px, campo subrayado. */
.fd-header #_desktop_ps_searchbar { margin: 0 1rem 0 0; padding: 0; }

.fd-header #ps_searchbar { min-width: 0; }
.fd-header .ps-searchbar__form { position: relative; }

.fd-header .ps-searchbar__form .ps-searchbar__input {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--fd-ink);
  border-radius: 0;
  font-size: .9375rem;
  height: 2.25rem;
  padding-left: 1.875rem;
  width: 10.5rem;
}

.fd-header .ps-searchbar__form .ps-searchbar__input::placeholder { color: var(--fd-ink); opacity: .75; }

.fd-header .ps-searchbar__magnifier { color: var(--fd-ink); font-size: 1.25rem; left: 0; }
.fd-header .ps-searchbar--mobile .header-block__action-btn { color: var(--fd-ink); padding: .5rem; }

/* Menu de categorias (escritorio) */
.fd-menu { display: none; }

.fd-menu__list { align-items: stretch; display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.fd-menu__item { display: flex; }

.fd-menu__link {
  align-items: center;
  border-bottom: 1px solid transparent;
  color: var(--fd-ink);
  display: flex;
  font-size: 1.0625rem;
  font-weight: 500;
  padding: 0 .75rem;
  text-decoration: none;
  white-space: nowrap;
}

.fd-menu__item:hover > .fd-menu__link,
.fd-menu__item.is-open > .fd-menu__link,
.fd-menu__link.is-current { border-bottom-color: var(--fd-ink); color: var(--fd-ink); }
.fd-menu__link--accent { color: var(--fd-accent); font-weight: 600; }
.fd-menu__item:hover > .fd-menu__link--accent,
.fd-menu__link--accent.is-current { border-bottom-color: var(--fd-accent); color: var(--fd-accent); }

.fd-mega {
  background-color: #fff;
  border-top: 1px solid var(--fd-line);
  box-shadow: 0 20px 30px -20px rgba(30, 25, 21, .25);
  display: none;
  left: 0;
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 1040;
}

/* Como en la referencia: el panel no se abre al pasar el cursor, solo al clicar (custom.js pone .is-open) */
.fd-menu__item--parent.is-open .fd-mega { display: block; }

.fd-mega__inner {
  display: flex;
  gap: 3rem;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1680px;
  padding: 2rem var(--fd-gutter) 2.5rem;
}

.fd-mega__links > ul { columns: 2; column-gap: 3rem; list-style: none; margin: 0; padding: 0; }
.fd-mega__links > ul > li { break-inside: avoid; }
.fd-mega__links a { color: var(--fd-ink); display: inline-block; font-size: .9375rem; padding: .3125rem 0; text-decoration: none; }
.fd-mega__links a:hover { text-decoration: underline; }
.fd-mega__links .fd-mega__sub { columns: auto; list-style: none; margin: 0 0 .25rem; padding: 0 0 0 1rem; }
.fd-mega__links .fd-mega__sub a { color: var(--fd-text); font-size: .875rem; padding: .1875rem 0; }
.fd-mega__title { display: block; font-family: var(--fd-serif); font-size: 1.375rem !important; margin-bottom: .75rem; }
.fd-mega__image { flex: none; width: 22rem; }
.fd-mega__image img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }

/* Menu movil */
.fd-mobile-menu { --bs-offcanvas-width: 100vw; background-color: #fff; }
.fd-mobile-menu .offcanvas-header { border-bottom: 1px solid var(--fd-line); min-height: var(--fd-header-h); padding: 0 var(--fd-gutter); }
.fd-mobile-menu__logo { height: auto; width: 8.25rem; }
.fd-mobile-menu .offcanvas-body { padding: .5rem var(--fd-gutter) 2rem; }

.fd-mm__row {
  align-items: center;
  border-bottom: 1px solid var(--fd-line);
  color: var(--fd-ink);
  cursor: pointer;
  display: flex;
  font-size: 1.125rem;
  justify-content: space-between;
  list-style: none;
  min-height: 3.5rem;
  text-decoration: none;
}

.fd-mm__row::-webkit-details-marker { display: none; }
.fd-mm__group > .fd-mm__row::after { content: ""; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; height: .5rem; transform: rotate(45deg); transition: transform .2s ease; width: .5rem; }
.fd-mm__group[open] > .fd-mm__row::after { transform: rotate(-135deg); }
.fd-mm__row--accent { color: var(--fd-accent); font-weight: 600; }
.fd-mm__sub .fd-mm__sub-deep a { font-size: .875rem; padding: .375rem 0 .375rem 1rem; }
.fd-mm__sub { border-bottom: 1px solid var(--fd-line); list-style: none; margin: 0; padding: .5rem 0 1rem; }
.fd-mm__sub a { color: var(--fd-text); display: block; padding: .5rem 0; text-decoration: none; }

.fd-mm-secondary { display: flex; flex-direction: column; margin-top: 1.5rem; }
.fd-mm-secondary a { color: var(--fd-muted); font-size: .875rem; padding: .5rem 0; text-decoration: none; }
.fd-mm__call { align-items: center; display: flex; gap: .5rem; justify-content: center; margin-top: 1.5rem; min-height: 3rem; width: 100%; }

/* 6. Pie ---------------------------------------------------------------------------------------------------- */
.fd-footer { background-color: var(--fd-surface); color: var(--fd-ink); font-size: .875rem; margin-top: 4rem; }
.fd-footer a { color: var(--fd-ink); text-decoration: none; }
.fd-footer a:hover { text-decoration: underline; }

.fd-footer__newsletter { border-bottom: 1px solid var(--fd-line); }
.fd-footer__newsletter .ps-emailsubscription { background: none; padding-block: 2.5rem; }
.fd-footer__newsletter .container { max-width: 1680px; padding-inline: var(--fd-gutter); }
.fd-footer__newsletter .row { --bs-gutter-x: 0; gap: 1rem; justify-content: space-between; }
.fd-footer__newsletter .h3 { font-size: 1.625rem; margin: 0; max-width: 22rem; }
.fd-footer__newsletter form { max-width: 34rem; }
.fd-footer__newsletter .form-control { background: transparent; border: 0; border-bottom: 1px solid var(--fd-ink); padding-inline: 0; }
.fd-footer__newsletter .btn { background-color: var(--fd-ink); border-color: var(--fd-ink); }
.fd-footer__newsletter .btn:hover { background-color: var(--fd-accent); border-color: var(--fd-accent); }

.fd-footer__grid {
  display: grid;
  gap: 2rem 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-inline: auto;
  max-width: 1680px;
  padding: 2.5rem var(--fd-gutter);
}

.fd-footer__col { display: flex; flex-direction: column; gap: .5rem; }
.fd-footer__title { color: var(--fd-ink); font-size: .8125rem; font-weight: 600; margin: 0 0 .25rem; }
.fd-footer__store { grid-column: 1 / -1; }
.fd-footer address { font-style: normal; margin: 0; }
.fd-footer__hours { column-gap: 1rem; display: grid; grid-template-columns: auto 1fr; margin: .5rem 0 0; row-gap: .25rem; }
.fd-footer__hours dt { font-weight: 400; color: var(--fd-muted); }
.fd-footer__hours dd { margin: 0; }

.fd-footer__bottom {
  align-items: center;
  border-top: 1px solid var(--fd-line);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin-inline: auto;
  max-width: 1680px;
  padding: 1.5rem var(--fd-gutter) 2rem;
}

.fd-footer__logo img { height: auto; width: 8.25rem; }
.fd-footer__social { display: flex; gap: .25rem; }
.fd-footer__social a { align-items: center; display: inline-flex; height: 2.5rem; justify-content: center; width: 2.5rem; }
.fd-footer__copy { color: var(--fd-muted); font-size: .75rem; margin: 0; width: 100%; }
.fd-footer__copy a { color: var(--fd-muted); text-decoration: underline; }

/* 7. Portada ------------------------------------------------------------------------------------------------ */
.fd-home { display: block; overflow-x: clip; }

.fd-hero { color: #fff; height: min(82svh, 46rem); min-height: 30rem; position: relative; }
.fd-hero picture, .fd-hero__image { display: block; height: 100%; width: 100%; }
.fd-hero__image { object-fit: cover; }
.fd-hero::after { background: linear-gradient(180deg, rgba(30, 25, 21, 0) 35%, rgba(30, 25, 21, .55) 100%); content: ""; inset: 0; position: absolute; }

.fd-hero__content {
  align-items: center;
  bottom: 0;
  display: flex;
  flex-direction: column;
  left: 0;
  padding: 0 var(--fd-gutter) 3rem;
  position: absolute;
  right: 0;
  text-align: center;
  z-index: 1;
}

.fd-hero__kicker { font-size: .75rem; letter-spacing: .14em; margin: 0 0 .75rem; text-transform: uppercase; }
.fd-hero__title { color: #fff; font-size: clamp(2.5rem, 1.6rem + 4.2vw, 5rem); line-height: 1.02; margin: 0; text-wrap: balance; }
.fd-hero__text { font-family: var(--fd-serif); font-size: 1.125rem; margin: .75rem 0 1.5rem; }

.fd-section { margin: 3.5rem auto 0; max-width: 1680px; }
.fd-section--tight { padding-inline: var(--fd-gutter); }

.fd-section__header {
  align-items: flex-end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1.25rem;
  padding-inline: var(--fd-gutter);
}

.fd-section__title { font-size: 1.375rem; margin: 0; }
.fd-section__actions { align-items: flex-end; display: flex; flex-direction: column; gap: .5rem; }
.fd-section__title--large { font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem); max-width: 18ch; }
.fd-section .fd-carousel { padding-inline: var(--fd-gutter); }

.fd-catcard { color: var(--fd-ink); text-decoration: none; }
.fd-catcard img { aspect-ratio: 4 / 5; display: block; height: auto; object-fit: cover; width: 100%; }
.fd-catcard span { display: block; font-size: .9375rem; font-weight: 500; margin-top: .625rem; }
.fd-catcard:hover span { text-decoration: underline; }

.fd-split { display: grid; gap: .5rem; margin-top: 3.5rem; }

.fd-banner { color: #fff; display: block; overflow: hidden; position: relative; text-decoration: none; }
.fd-banner img { aspect-ratio: 4 / 5; display: block; height: auto; object-fit: cover; transition: transform .6s ease; width: 100%; }
.fd-banner:hover img { transform: scale(1.03); }
.fd-banner::after { background: linear-gradient(180deg, rgba(30, 25, 21, .05) 20%, rgba(30, 25, 21, .4) 100%); content: ""; inset: 0; position: absolute; }

.fd-banner__content {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: .625rem;
  left: 0;
  padding: 0 1.5rem;
  position: absolute;
  right: 0;
  text-align: center;
  top: 64%;
  transform: translateY(-50%);
  z-index: 1;
}

.fd-banner__title { font-family: var(--fd-serif); font-size: clamp(2.75rem, 2rem + 3vw, 4.5rem); line-height: 1.02; text-shadow: 0 1px 12px rgba(30, 25, 21, .25); }
.fd-banner__text { font-size: clamp(1rem, .9rem + .35vw, 1.1875rem); margin-bottom: 1rem; text-shadow: 0 1px 8px rgba(30, 25, 21, .3); }
.fd-banner .fd-btn { font-size: 1rem; min-height: 3.25rem; padding-inline: 2.25rem; }
.fd-banner:hover .fd-btn--light { background-color: var(--fd-ink); color: #fff; }

.fd-wide { margin-top: 3.5rem; }

.fd-carousel--products .products { display: grid; gap: .5rem; grid-auto-columns: 72%; grid-auto-flow: column; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--fd-gutter); padding-inline: var(--fd-gutter); scrollbar-width: none; }
.fd-carousel--products .products::-webkit-scrollbar { display: none; }
.fd-carousel--products .product-miniature { scroll-snap-align: start; }

.fd-steps { grid-auto-columns: 80%; }
.fd-step img { aspect-ratio: 4 / 5; display: block; height: auto; object-fit: cover; width: 100%; }
.fd-step__title { font-family: var(--fd-sans); font-size: 1.0625rem; font-weight: 500; letter-spacing: 0; margin: 1rem 0 .375rem; }

.fd-catlinks { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: 1rem; }
.fd-catlinks a { color: var(--fd-ink); font-size: .8125rem; text-decoration: none; }
.fd-catlinks a:hover { text-decoration: underline; }

.fd-seo { background-color: var(--fd-surface); margin-top: 3.5rem; }
.fd-seo .js-fd-clamp.is-clamped .rich-text { -webkit-line-clamp: 6; }
.fd-seo__inner { color: var(--fd-muted); font-size: .8125rem; line-height: 1.7; margin-inline: auto; max-width: 1680px; padding: 2.5rem var(--fd-gutter); }
.fd-seo__inner h1, .fd-seo__inner h2, .fd-seo__inner h3 { color: var(--fd-ink); font-size: 1.125rem; margin: 1.5rem 0 .5rem; }
.fd-seo__inner > :first-child { margin-top: 0; }
.fd-seo + * { margin-top: 0; }
.page-index .fd-footer { margin-top: 0; }

/* 8. Listados ----------------------------------------------------------------------------------------------- */
.fd-listing-container { margin-inline: auto; }
.fd-listing-header { padding-top: 1.25rem; }

.fd-back { align-items: center; color: var(--fd-muted); display: inline-flex; font-size: .8125rem; gap: .375rem; text-decoration: none; }
.fd-back:hover { color: var(--fd-ink); }

.fd-listing-header__title { font-size: clamp(2.125rem, 1.4rem + 3vw, 3.5rem); line-height: 1.05; margin: .75rem 0 .75rem; }

.fd-listing-header__desc { max-width: 42rem; }
.fd-listing-header__desc-text { color: var(--fd-text); font-family: var(--fd-serif); font-size: 1rem; line-height: 1.55; }
.fd-listing-header__desc-text p:last-child { margin-bottom: 0; }

.js-fd-clamp.is-clamped .rich-text { -webkit-box-orient: vertical; -webkit-line-clamp: 3; display: -webkit-box; overflow: hidden; }
.js-fd-clamp .fd-link { margin-top: .375rem; }

.fd-carousel.fd-subcats { gap: .5rem; grid-auto-columns: 8.5rem; margin: 1.5rem calc(-1 * var(--fd-gutter)) 0; padding-inline: var(--fd-gutter); }
.fd-subcat { color: var(--fd-ink); text-decoration: none; }
.fd-subcat__image { aspect-ratio: 4 / 5; background-color: var(--fd-surface); display: block; overflow: hidden; }
.fd-subcat__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.fd-subcat__name { display: block; font-size: .75rem; margin-top: .5rem; }
.fd-subcat:hover .fd-subcat__name { text-decoration: underline; }

.fd-toolbar {
  align-items: center;
  background-color: #fff;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: 1.5rem 0 .75rem;
  min-height: 3rem;
}

.fd-toolbar__left, .fd-toolbar__right { align-items: center; display: flex; gap: 1rem; }

.fd-toolbar__filters {
  align-items: center;
  background: none;
  border: 0;
  color: var(--fd-ink);
  display: inline-flex;
  font-size: .8125rem;
  font-weight: 600;
  gap: .5rem;
  letter-spacing: .06em;
  padding: 0;
  text-transform: uppercase;
}

.fd-toolbar__count { color: var(--fd-muted); font-size: .8125rem; }

.fd-sort__button {
  background: none;
  border: 0;
  color: var(--fd-ink);
  font-size: .8125rem;
  padding: 0;
}

.fd-sort .dropdown-menu { border-color: var(--fd-line); border-radius: 0; font-size: .875rem; }
.fd-sort .dropdown-item.current { font-weight: 600; }

.fd-density { display: flex; gap: .25rem; }
.fd-density__btn { background: none; border: 0; color: var(--fd-line); line-height: 0; padding: .25rem; }
.fd-density__btn.is-active { color: var(--fd-ink); }

/* Rejilla: movil 1 columna a todo el ancho ("large", por defecto) o 2 ("small"); escritorio 4 (por defecto)
   o 3 ("large"). La densidad la guarda custom.js en <html data-fd-density>. */
.fd-listing .products {
  display: grid;
  gap: 2rem .5rem;
  grid-template-columns: minmax(0, 1fr);
  margin-inline: calc(-1 * var(--fd-gutter));
}

html[data-fd-density="small"] .fd-listing .products { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-inline: 0; }
.fd-listing .products .product-miniature__bottom { padding-inline: var(--fd-gutter); }
html[data-fd-density="small"] .fd-listing .products .product-miniature__bottom { padding-inline: 0; }

.fd-filters { --bs-offcanvas-width: min(26rem, 100vw); background-color: #fff; }
.fd-filters__title { font-family: var(--fd-serif); font-size: 1.5rem; margin: 0; }
.fd-filters .offcanvas-header { border-bottom: 1px solid var(--fd-line); }
.fd-filters__footer { border-top: 1px solid var(--fd-line); padding: 1rem; }
.fd-filters .ps-facetedsearch, .fd-filters #search_filters { background: none; border: 0; padding: 0; }

.products__pagination { margin-top: 3rem; }
.pagination { --bs-pagination-color: var(--fd-ink); --bs-pagination-active-bg: var(--fd-ink); --bs-pagination-active-border-color: var(--fd-ink); justify-content: center; }

/* 9. Miniatura de producto ----------------------------------------------------------------------------------- */
.product-miniature__inner { background: none; border: 0; border-radius: 0; box-shadow: none !important; }
.product-miniature__inner:hover { box-shadow: none; }

.product-miniature__top {
  align-items: center;
  aspect-ratio: 1 / 1;
  background-color: var(--fd-surface);
  border-radius: 0;
  display: flex;
  justify-content: center;
  overflow: hidden;
}

.product-miniature__image {
  height: 100%;
  mix-blend-mode: multiply;
  object-fit: contain;
  transition: transform .5s ease;
  width: 100%;
}

.product-miniature__top picture { display: block; height: 100%; width: 100%; }
.fd-gallery__zoom picture { display: block; height: 100%; width: 100%; }

.product-miniature__inner:hover .product-miniature__image { transform: scale(1.04); }

.product-miniature__bottom { display: flex; flex-direction: column; gap: .3125rem; padding: .75rem 0 0; }
.product-miniature__head { align-items: flex-start; display: flex; gap: .75rem; justify-content: space-between; }

.product-miniature__title {
  color: var(--fd-ink);
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
}

.product-miniature__title:hover { text-decoration: underline; }

.product-miniature__variants { align-items: center; display: flex; flex: none; gap: .25rem; padding-top: .1875rem; }
.product-miniature__variants a { background-size: cover; border: 1px solid rgba(30, 25, 21, .2); display: block; height: .75rem; width: .75rem; }
.product-miniature__variants-more { color: var(--fd-muted); font-size: .6875rem; }

.product-miniature__prices { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem; }
.product-miniature__price { color: var(--fd-ink); font-size: .875rem; font-weight: 600; }
.product-miniature__regular-price { color: var(--fd-muted); font-size: .8125rem; text-decoration: line-through; }
.product-miniature__quote { color: var(--fd-muted); font-size: .8125rem; margin: 0; }
.product-miniature__tags { display: flex; flex-wrap: wrap; gap: .25rem; list-style: none; margin: .25rem 0 0; padding: 0; }

/* Valoraciones de colchon (1-10): anillo con la nota y nombre + nivel; se adapta al ancho de la tarjeta.
   La tarjeta ocupa toda la fila de la rejilla y las valoraciones van al pie, para que queden a la misma altura
   aunque el nombre ocupe mas lineas. */
.product-miniature { display: flex; flex-direction: column; }
.product-miniature__inner { display: flex; flex: 1 0 auto; flex-direction: column; }
.product-miniature__bottom { container-type: inline-size; flex: 1 0 auto; }

.product-miniature__scores {
  background-color: var(--fd-surface);
  border-radius: .75rem;
  display: grid;
  gap: .5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  margin: auto 0 0;
  padding: .875rem .5rem;
}

.product-miniature__bottom > :has(+ .product-miniature__scores) { margin-bottom: .5rem; }

.product-miniature__score { align-items: center; display: flex; flex-direction: column; gap: .375rem; min-width: 0; text-align: center; }

.product-miniature__score-ring {
  color: var(--fd-ink);
  display: grid;
  flex: none;
  font-size: .75rem;
  font-weight: 600;
  height: 2rem;
  place-items: center;
  position: relative;
  width: 2rem;
}

.product-miniature__score-ring svg { fill: none; height: 100%; inset: 0; position: absolute; stroke-width: 2.5; transform: rotate(-90deg); width: 100%; }
.product-miniature__score-ring circle { stroke: #e2d8cb; }
.product-miniature__score-ring circle + circle { stroke: var(--fd-accent); stroke-dasharray: 10; }
.product-miniature__score-text { display: flex; flex-direction: column; line-height: 1.3; max-width: 100%; min-width: 0; }
.product-miniature__score-name { color: var(--fd-muted); font-size: .6875rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-miniature__score-level { color: var(--fd-ink); font-size: .75rem; font-weight: 600; }

@container (min-width: 25rem) {
  .product-miniature__score { flex-direction: row; gap: .5rem; text-align: left; }
}

@container (max-width: 17.99rem) {
  .product-miniature__scores { gap: .375rem; grid-template-columns: minmax(0, 1fr); padding: .75rem; }
  .product-miniature__score { flex-direction: row; gap: .5rem; text-align: left; }
  .product-miniature__score-ring { font-size: .6875rem; height: 1.75rem; width: 1.75rem; }
  .product-miniature__score-level { white-space: nowrap; }
}

/* 10. Ficha de producto ------------------------------------------------------------------------------------- */
.page-product .columns-container { max-width: 1680px; }
.fd-product { display: block; }

/* Galeria: movil a todo el ancho y deslizable */
.fd-gallery { margin-inline: calc(-1 * var(--fd-gutter)); position: relative; scroll-margin-top: calc(var(--fd-header-h) + 1rem); }

/* Fotos nuevas al cambiar de color o acabado (custom.js) */
.fd-gallery--changed .fd-gallery__item { animation: fd-gallery-in .5s ease both; }
@keyframes fd-gallery-in { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }

.fd-gallery__track {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.fd-gallery__track::-webkit-scrollbar { display: none; }
.fd-gallery__item { flex: 0 0 100%; margin: 0; scroll-snap-align: start; }

.fd-gallery__zoom {
  aspect-ratio: 1 / 1;
  background-color: var(--fd-surface);
  border: 0;
  cursor: zoom-in;
  display: block;
  padding: 0;
  width: 100%;
}

.fd-gallery__zoom img, .fd-gallery__item > img { display: block; height: 100%; mix-blend-mode: multiply; object-fit: contain; width: 100%; }

.fd-gallery__progress { background-color: var(--fd-line); height: 2px; overflow: hidden; }
.fd-gallery__progress span { background-color: var(--fd-ink); display: block; height: 100%; transition: transform .25s ease; }
.fd-gallery__counter { display: none; }

/* Variante 4 grandes + tira: en movil la tira no existe, sus imagenes siguen en el carrusel unico */
.fd-gallery__more, .fd-gallery__strip { display: contents; }
.fd-gallery__nav { display: none; }

/* Panel de compra */
.fd-product__panel { padding-top: 1.25rem; }
.fd-product__sticky { display: flex; flex-direction: column; gap: 1rem; }

.fd-product__name { font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); line-height: 1.1; margin: 0; overflow-wrap: anywhere; text-wrap: balance; }
/* Nombres con barras sin espacios ("Chaiselongue/Rinconera/Lineal"): se pueden partir tras la barra */
.product-miniature__title, .fd-product__name { overflow-wrap: anywhere; }

.page-product .product__prices { margin: 0; }
.page-product .product__prices-block { gap: .25rem; }
.page-product .product__price { color: var(--fd-ink); font-size: 1.375rem; font-weight: 500; }
.page-product .product__regular-price { color: var(--fd-muted); text-decoration: line-through; }
.page-product .product__discount-percentage, .page-product .product__discount-amount { color: var(--fd-accent); font-size: .875rem; }
.page-product .product__tax-infos { color: var(--fd-muted); font-size: .75rem; }

.fd-product__short-text { color: var(--fd-text); font-size: .875rem; line-height: 1.6; }
.fd-product__short-text p { margin-bottom: .375rem; }
.fd-product__short-text strong { color: var(--fd-ink); font-weight: 600; }
/* Como en "Sobre el producto": sin fondos, anchos ni fuentes en linea pegados de otras webs */
.fd-product__short-text :where(p, span, div, li, a, font, h1, h2, h3, h4, ul, ol) {
  background: transparent !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  max-width: 100%;
  width: auto !important;
}
.fd-product__short-text :where(h1, h2, h3, h4) { color: var(--fd-ink); font-weight: 600; margin: 0 0 .375rem; }
.fd-product__short-text img { height: auto; max-width: 100%; }

/* Variantes */
.page-product .product__variants { display: flex; flex-direction: column; gap: 1.125rem; margin: 0; }
.page-product .product-variant { margin: 0; min-width: 0; }
.page-product .product-variant__legend { color: var(--fd-ink); font-size: .8125rem; font-weight: 600; margin-bottom: .5rem; }
.page-product .product-variant__attributes { margin: 0; }

.page-product .product-variant__radios { display: flex; flex-wrap: wrap; gap: .375rem; }

.page-product .product-variant__radio .btn {
  border-color: var(--fd-line);
  border-radius: .5rem;
  font-size: .8125rem;
  min-height: 2.5rem;
  min-width: 3.5rem;
  padding: .5rem .875rem;
}

.page-product .product-variant__radio .btn-check:checked + .btn { background-color: #fff; border-color: var(--fd-ink); box-shadow: inset 0 0 0 1px var(--fd-ink); color: var(--fd-ink); }

.page-product .product-variant__colors { display: flex; flex-wrap: wrap; gap: .375rem; }

.page-product .input-color .color {
  border: 1px solid rgba(30, 25, 21, .15);
  border-radius: 0;
  box-shadow: none;
  height: 2.75rem;
  outline: 0;
  width: 2.75rem;
}

.page-product .input-color .color.texture { background-position: center; background-size: cover; }

.page-product .input-color__label { border-bottom: 2px solid transparent; padding-bottom: .25rem; }
.page-product .input-color__label--active, .page-product .input-color__input:checked + .input-color__label { border-bottom-color: var(--fd-ink); }
/* Opcion sin combinacion con lo ya elegido (custom.js) */
.page-product .input-color__input:disabled + .input-color__label { cursor: not-allowed; opacity: .3; }
.page-product .input-color .color.active, .page-product .input-color .color:hover { outline: 0; }
.product-variant__selected-name { color: var(--fd-muted); font-size: .75rem; margin: .375rem 0 0; }

.page-product .product-variant .form-select { border: 0; border-bottom: 1px solid var(--fd-ink); font-size: .875rem; padding-left: 0; }

/* Compra */
.page-product .product__add-to-cart-container { margin: 0; }
.page-product .product__actions-qty-add { align-items: stretch; display: flex; flex-wrap: nowrap; gap: .5rem; margin-top: .25rem; }
.page-product .product__quantity { flex: none; width: auto; }
.page-product .product__add-to-cart { flex: 1 1 auto; min-width: 0; }
.page-product .product__add-to-cart-button { white-space: nowrap; width: 100%; }
.page-product .product__quantity .quantity-button__group { border-radius: .5rem; flex-wrap: nowrap; height: 3.25rem; overflow: hidden; }
.page-product .product__quantity input, .page-product .product__quantity button { background-color: #fff; border-color: var(--fd-line); border-radius: 0; }
.page-product .product__quantity .quantity-button__group > :first-child { border-radius: .5rem 0 0 .5rem; }
.page-product .product__quantity .quantity-button__group > :last-child { border-radius: 0 .5rem .5rem 0; }
.page-product .btn, .page-product .fd-cta { border-radius: .5rem; }
.page-product .product__quantity input { max-width: 2.75rem; }

.fd-cta { align-items: center; display: inline-flex; font-size: .9375rem; font-weight: 500; gap: .625rem; justify-content: center; min-height: 3.25rem; padding-inline: 1.25rem; }

.fd-availability { align-items: center; display: flex; font-size: .8125rem; gap: .5rem; margin-bottom: .5rem; }
.fd-availability__dot { background-color: currentColor; border-radius: 50%; flex: none; height: .5rem; width: .5rem; }
.fd-availability.is-success { color: var(--fd-green); }
.fd-availability.is-warning { color: #9a6200; }
.fd-availability.is-danger { color: #b3261e; }

.fd-quote { margin-top: .75rem; }
.fd-quote__title { color: var(--fd-ink); font-size: 1rem; font-weight: 600; margin: 0 0 .25rem; }
.fd-quote__text { color: var(--fd-muted); font-size: .8125rem; line-height: 1.55; margin: 0 0 .875rem; }
.fd-quote__actions { display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr); }
.fd-cta--ghost { font-size: .9375rem; }

/* Ventajas y filas */
.fd-perks { display: flex; flex-direction: column; gap: .5rem; list-style: none; margin: .5rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--fd-line); }
.fd-perks li { align-items: center; color: var(--fd-ink); display: flex; font-size: .8125rem; gap: .625rem; }
.fd-perks a { color: inherit; }

.fd-rows { border-top: 1px solid var(--fd-line); }

.fd-row {
  align-items: center;
  border-bottom: 1px solid var(--fd-line);
  color: var(--fd-ink);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: .875rem 0;
  text-decoration: none;
}

.fd-row small { color: var(--fd-muted); display: block; font-size: .75rem; }
.fd-row span { font-size: .8125rem; }
.fd-row:hover { color: var(--fd-accent-hover); }

.page-product .product__additional-info { color: var(--fd-muted); font-size: .8125rem; margin: 0; }

/* Informacion inferior */
.fd-product__info { display: block; margin: 3rem 0 0; max-width: 56rem; }

.fd-accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: var(--fd-ink);
  --bs-accordion-active-bg: transparent;
  --bs-accordion-active-color: var(--fd-ink);
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-btn-padding-x: 0;
  --bs-accordion-body-padding-x: 0;
  border-top: 1px solid var(--fd-ink);
}

.fd-accordion .accordion-item { border-bottom: 1px solid var(--fd-ink); }
.fd-accordion .accordion-button { color: var(--fd-ink); font-family: var(--fd-sans); font-size: .9375rem; font-weight: 500; letter-spacing: 0; min-height: 3.5rem; }
.fd-accordion .accordion-body { color: var(--fd-text); font-size: .9375rem; line-height: 1.7; padding-top: 0; }
.fd-accordion .product__description { max-width: 70ch; }

/* "Sobre el producto": el texto pegado de otras webs se integra con la pagina aunque traiga estilos en linea */
.product__description :where(p, span, div, li, td, th, strong, b, em, i, a, font, h2, h3, h4, ul, ol, table, tbody, tr) {
  background: transparent !important;
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
.product__description :where(h2, h3, h4) { color: var(--fd-ink) !important; font-family: var(--fd-serif) !important; font-weight: 400; line-height: 1.25 !important; margin: 1.5rem 0 .75rem; }
.product__description h2 { font-size: 1.375rem !important; }
.product__description :where(h3, h4) { font-size: 1.125rem !important; }
.product__description > :first-child { margin-top: 0; }
.product__description p { margin: 0 0 1rem; }
.product__description :where(ul, ol) { margin: 0 0 1rem; padding-left: 1.25rem; }
.product__description li { margin-bottom: .25rem; }
.product__description a { text-decoration: underline; }
.product__description img { display: inline-block; height: auto; max-width: 100%; }
.product__description iframe { aspect-ratio: 16 / 9; height: auto; max-width: 100%; width: 100%; }
.product__description table { background: var(--fd-surface) !important; border-collapse: collapse; margin: 1rem 0 1.5rem; max-width: 100%; width: 100% !important; }
.product__description :where(th, td) { border: 0; border-bottom: 1px solid var(--fd-line); padding: .75rem; text-align: left; vertical-align: top; }
.product__description :where(th, tr > td:first-child:not(:only-child)) { color: var(--fd-ink) !important; font-weight: 600; }
.product__description caption { caption-side: top; color: var(--fd-ink); font-weight: 600; padding: 0 0 .5rem; }
/* Imagenes pequenas consecutivas de las descripciones, en fila (scripts/descripciones-imagenes) */
.fd-desc-imgs { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin: 1.25rem 0; }
.fd-desc-imgs img { flex: 0 1 auto; height: auto; max-width: 100%; min-width: 0; }
.fd-desc-img--sello { width: 7.5rem; }
@media (min-width: 576px) {
  .fd-desc-imgs img { max-width: calc(50% - .75rem); }
  .fd-desc-img--sello { width: 9rem; }
}
.fd-accordion .details__list { font-size: .875rem; }

/* Ficha editorial (2026-10-21, como mueblesfergar.es): envio gratuito, subtitulo por familia y cuatro ventajas */
.fd-tag--shipping { align-items: center; background-color: var(--fd-sand, #f1e3da); color: var(--fd-ink); display: inline-flex; gap: .3125rem; }
.fd-product__subtitle { color: var(--fd-muted); font-size: .875rem; margin: -.5rem 0 0; }

.fd-benefits { border-top: 1px solid var(--fd-line); display: grid; gap: 1rem .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; margin: .5rem 0 0; padding: 1rem 0 0; }
.fd-benefits li { align-items: flex-start; color: var(--fd-ink); display: flex; gap: .625rem; min-width: 0; }
.fd-benefits .fd-icon { flex: none; margin-top: .0625rem; }
.fd-benefits strong { display: block; font-size: .8125rem; font-weight: 600; line-height: 1.3; }
.fd-benefits small { color: var(--fd-muted); display: block; font-size: .75rem; line-height: 1.35; }
.fd-advice { align-items: center; color: var(--fd-ink); display: flex; font-size: .8125rem; gap: .5rem; margin: 0; }
.fd-advice a { color: inherit; }

/* Argumentos de venta guardados en la descripcion corta (ul.fergar-product-highlights) */
.fd-product__panel .fergar-product-highlights { display: grid; gap: .375rem; list-style: none; margin: 0; padding: 0; }
.fd-product__panel .fergar-product-highlights li { padding-left: 1.375rem; position: relative; }
.fd-product__panel .fergar-product-highlights li::before { color: var(--fd-accent); content: "✓"; font-weight: 700; left: 0; position: absolute; top: 0; }
.fd-sales-points { color: var(--fd-text); font-size: .875rem; line-height: 1.6; }
.fd-sales-points strong { color: var(--fd-ink); font-weight: 600; }

/* Sillas por lotes y validacion de cantidad */
.fd-lot__price-label { color: var(--fd-muted); font-size: .75rem; font-weight: 600; letter-spacing: .04em; margin: 0 0 -.75rem; text-transform: uppercase; }
.fd-lot__qty-label { color: var(--fd-ink); font-size: .8125rem; font-weight: 600; margin: .75rem 0 .375rem; }
.fd-lot__qty-label span { color: var(--fd-muted); font-weight: 400; }
.fd-lot__total { background-color: var(--fd-surface); border-left: 3px solid var(--fd-ink); border-radius: 1rem; color: var(--fd-ink); font-size: .875rem; margin: .5rem 0 0; padding: .625rem .75rem; }
.fd-qty-error { color: #b3261e; font-size: .8125rem; margin: .375rem 0 0; }
.fd-lot-line { color: var(--fd-muted); font-size: .8125rem; }

/* Configurador de sofas (modulo fergarproductconfigurator) */
.page-product .fd-scores__list { background-color: var(--fd-surface); }
.fd-config { background-color: var(--fd-surface); border: 1px solid var(--fd-line); border-radius: 1rem; display: flex; flex-direction: column; gap: 1rem; padding: 1rem; }
.fd-config__head { align-items: baseline; display: flex; flex-wrap: wrap; gap: .25rem 1rem; justify-content: space-between; }
.fd-config__title { font-size: 1.25rem; margin: 0; }
.fd-config__eyebrow { color: var(--fd-muted); font-size: .75rem; }
.fd-config__groups { display: grid; gap: .875rem 1rem; grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); }
.fd-config__group { min-width: 0; }
.fd-config__label { color: var(--fd-ink); font-size: .8125rem; font-weight: 600; margin-bottom: .375rem; }
.fd-config__select { background-color: #fff; border-color: var(--fd-line); border-radius: .5rem; font-size: .875rem; min-height: 2.75rem; }
.fd-config__select:focus { border-color: var(--fd-ink); box-shadow: 0 0 0 1px var(--fd-ink); }
.fd-config__fixed { border: 1px solid var(--fd-line); color: var(--fd-text); font-size: .875rem; margin: 0; padding: .625rem .75rem; }
.fd-config__consult { border-top: 1px solid var(--fd-line); padding-top: .875rem; }
.fd-config__consult-title { color: var(--fd-ink); font-size: .875rem; font-weight: 600; margin: 0 0 .25rem; }
.fd-config__consult-text { color: var(--fd-muted); font-size: .8125rem; line-height: 1.55; margin: 0 0 .375rem; }
.fd-config__consult-link { font-size: .8125rem; }

/* Descripciones: listas con viñetas iguales y tablas que no desbordan en movil */
.product__description ul { list-style: disc !important; }
.product__description ol { list-style: decimal !important; }
.product__description li { display: list-item !important; list-style: inherit !important; margin-left: 0 !important; padding-left: 0 !important; }
.product__description table { table-layout: auto; }
.product__description :where(th, td) { overflow-wrap: anywhere; white-space: normal !important; width: auto !important; }
@media (max-width: 575.98px) {
  .product__description table { table-layout: fixed; }
  .product__description :where(th, td) { padding: .625rem .375rem; }
  .product__description :where(th, tr > td:first-child:not(:only-child)) { width: 42% !important; }
}

/* Modulos bajo la ficha (misma categoria, vistos, relacionados): carruseles */
.fd-product__footer { margin-top: 3.5rem; }
.fd-product__footer section, .page-product .product-accessories { margin-top: 3rem; }
.fd-product__footer .container, .fd-product__footer .module-products { max-width: none; padding: 0; }
.fd-product__footer .section-title, .fd-product__footer h2 { font-size: 1.375rem; margin-bottom: 1.25rem; }

.fd-product__footer .products,
.page-product .product-accessories .products {
  display: grid;
  gap: .5rem;
  grid-auto-columns: 60%;
  grid-auto-flow: column;
  grid-template-columns: none;
  margin-inline: calc(-1 * var(--fd-gutter));
  overflow-x: auto;
  padding-inline: var(--fd-gutter);
  scroll-padding-inline: var(--fd-gutter);
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}

.fd-product__footer .products::-webkit-scrollbar { display: none; }
.fd-product__footer .product-miniature { scroll-snap-align: start; }
/* Los carruseles con scroll deben ser el bloque contenedor: si no, los textos .visually-hidden (absolutos) de
   las miniaturas se salen de ellos y la pagina gana desplazamiento horizontal. */
.fd-carousel--products .products,
.fd-product__footer .products,
.product__accessories .products,
.page-product .product-accessories .products { position: relative; }
.fd-product__footer .module-products__buttons { display: none; }

/* 11. Otras paginas ------------------------------------------------------------------------------------------ */
.page-header h1, .page-title-section { font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem); }
.modal-content { border-radius: 0; }
.product-images-modal .modal-content { background-color: #fff; }

/* Paginas legales (templates/cms/page.tpl, CMS 2, 3, 6 y 7): composicion de El Fallero con la estetica de la marca */
.fd-legal { color: var(--fd-text); display: grid; gap: 1.75rem; margin: 0 auto; max-width: 1006px; padding: 2.5rem 0 4rem; }
.fd-legal__main { min-width: 0; }
.fd-legal__hero { min-width: 0; }
.fd-legal__hero h1 { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem); line-height: 1.05; margin: 0; text-wrap: balance; }
.fd-legal-section { margin-bottom: 1.875rem; }
.fd-legal-section:first-of-type { background-color: #fff; border: 1px solid var(--fd-line); padding: 1.25rem; }
.fd-legal-section h2 { font-size: 1.5rem; line-height: 1.2; margin: 0 0 1rem; scroll-margin-top: 7.5rem; }
.fd-legal-section h3 { font-size: 1.125rem; margin: 1.375rem 0 .625rem; }
.fd-legal-section p, .fd-legal-section li { font-size: 1rem; line-height: 1.72; }
.fd-legal-section p { margin: 0 0 .875rem; }
.fd-legal-section ul, .fd-legal-section ol { display: grid; gap: .5rem; margin: 0 0 .875rem; padding-left: 1.25rem; }
.fd-legal-section li > ul { margin: .5rem 0 0; }
.fd-legal-section li::marker { color: var(--fd-accent); }
.fd-legal-section a { color: var(--fd-ink); overflow-wrap: anywhere; text-decoration: underline; }
.fd-legal-section a:hover { color: var(--fd-accent-hover); }
.fd-legal-section strong { color: var(--fd-ink); font-weight: 600; }
.fd-legal-data { border: 1px solid var(--fd-line); display: grid; grid-template-columns: minmax(0, 1fr); margin: 1.125rem 0 0; }
.fd-legal-data dt, .fd-legal-data dd { margin: 0; padding: .875rem 1rem; }
.fd-legal-data dt { background-color: var(--fd-surface); color: var(--fd-ink); font-size: .75rem; font-weight: 600; letter-spacing: .08em; padding-bottom: .25rem; text-transform: uppercase; }
.fd-legal-data dd { background-color: #fff; border-bottom: 1px solid var(--fd-line); }
.fd-legal-data dd:last-of-type { border-bottom: 0; }
.fd-legal-updated { border-top: 1px solid var(--fd-line); color: var(--fd-muted); font-size: .875rem; padding-top: 1.125rem; }
.fd-legal__toc { border-left: 3px solid var(--fd-accent); padding: .5rem 0 .5rem 1.125rem; }
.fd-legal__toc strong { color: var(--fd-muted); display: block; font-size: .6875rem; font-weight: 600; letter-spacing: .12em; margin-bottom: .75rem; text-transform: uppercase; }
.fd-legal__toc nav { display: grid; gap: .25rem; }
.fd-legal__toc a { color: var(--fd-muted); display: block; font-size: .8125rem; font-weight: 500; line-height: 1.36; padding: .375rem 0; text-decoration: none; }
.fd-legal__toc a:hover, .fd-legal__toc a.is-active { color: var(--fd-ink); }
.fd-legal__toc a.is-active { font-weight: 600; }

@media (min-width: 576px) {
  .fd-legal-section:first-of-type { padding: 1.875rem; }
  .fd-legal-data { grid-template-columns: 11.25rem minmax(0, 1fr); }
  .fd-legal-data dt { border-bottom: 1px solid var(--fd-line); padding-bottom: .875rem; }
  .fd-legal-data dt:last-of-type { border-bottom: 0; }
}

@media (min-width: 992px) {
  .fd-legal { align-items: start; column-gap: 3.5rem; grid-template-areas: "hero toc" "main toc"; grid-template-columns: minmax(0, 720px) 230px; justify-content: center; padding-top: 3.25rem; row-gap: 3.75rem; }
  .fd-legal__hero { grid-area: hero; }
  .fd-legal__main { grid-area: main; }
  /* La cabecera es fija (js-sticky-header, unos 97 px con la barra superior) */
  .fd-legal__toc { grid-area: toc; position: sticky; top: 7.5rem; }
}

/* Contacto (templates/contact.tpl y modules/contactform): composicion de El Fallero con la estetica de la marca */
.page-contact .fd-footer { margin-top: 0; }
.fd-contact { background-color: var(--fd-bg); }

.fd-contact__hero { background-color: var(--fd-ink); color: #fff; }
.fd-contact__hero-inner { margin: 0 auto; max-width: 1680px; padding: 3rem var(--fd-gutter) 2.75rem; }
.fd-contact__eyebrow { align-items: center; color: rgba(255, 255, 255, .78); display: flex; font-size: .75rem; gap: .75rem; letter-spacing: .14em; margin: 0; text-transform: uppercase; }
.fd-contact__eyebrow span { background-color: var(--fd-accent); height: 1px; width: 1.5rem; }
.fd-contact__hero h1 { color: #fff; font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.75rem); line-height: 1.05; margin: 1rem 0 0; max-width: 24ch; text-wrap: balance; }

.fd-contact__wrap { display: grid; gap: 2.5rem; margin: 0 auto; max-width: 1680px; padding: 2.5rem var(--fd-gutter) 4rem; }
.fd-contact__info, .fd-contact__card { min-width: 0; }
.fd-contact__kicker { color: var(--fd-accent); font-size: .75rem; font-weight: 600; letter-spacing: .14em; margin: 0 0 .75rem; text-transform: uppercase; }
.fd-contact__info h2, .fd-contact__form-head h2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); line-height: 1.15; margin: 0; }
.fd-contact__lead, .fd-contact__form-head p:last-child { color: var(--fd-text); font-family: var(--fd-serif); font-size: 1.0625rem; line-height: 1.6; margin: .875rem 0 0; }

.fd-contact__list { display: grid; margin-top: 1.75rem; }
.fd-contact__item { align-items: center; border-bottom: 1px solid var(--fd-line); color: var(--fd-text); display: grid; gap: 1rem; grid-template-columns: 2.5rem minmax(0, 1fr); line-height: 1.5; padding: .875rem 0; text-decoration: none; }
.fd-contact__item:first-child { border-top: 1px solid var(--fd-line); }
a.fd-contact__item:hover { color: var(--fd-accent-hover); }
.fd-contact__icon { align-items: center; background-color: var(--fd-accent-soft); color: var(--fd-accent); display: flex; height: 2.5rem; justify-content: center; width: 2.5rem; }
.fd-contact__icon svg { height: 1.25rem; width: 1.25rem; }
.fd-contact__item strong { color: var(--fd-ink); display: block; font-size: .6875rem; font-weight: 600; letter-spacing: .1em; margin-bottom: .125rem; text-transform: uppercase; }

.fd-contact__map { background-color: var(--fd-surface); border: 1px solid var(--fd-line); margin-top: 1.5rem; }
.fd-contact__map iframe { border: 0; display: block; height: 18rem; width: 100%; }

.fd-contact__card { align-self: start; background-color: #fff; border: 1px solid var(--fd-line); box-shadow: var(--bs-box-shadow-md); padding: 1.75rem 1.25rem; }
.fd-contact__form-head { margin-bottom: 1.5rem; }

.fd-contact-form .form-fields { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
.fd-contact-form .mb-3 { margin: 0; }
.fd-contact-form .form-label { color: var(--fd-muted); font-size: .6875rem; font-weight: 600; letter-spacing: .1em; margin-bottom: .5rem; text-transform: uppercase; }
.fd-contact-form .form-control, .fd-contact-form .form-select { min-height: 3rem; padding: .75rem .875rem; }
.fd-contact-form textarea.form-control { min-height: 9rem; resize: vertical; }
.fd-contact-form input[type="file"].form-control { min-height: 0; padding: .5rem; }
.fd-contact-form .form-text { color: var(--fd-muted); display: block; font-size: .75rem; margin-top: .375rem; }
.fd-contact-form__consent { color: var(--fd-muted); font-size: .8125rem; line-height: 1.45; }
.fd-contact-form__consent label { align-items: flex-start; display: flex; gap: .625rem; margin: 0; }
.fd-contact-form__consent .form-check-input { flex: 0 0 auto; margin-top: .125rem; }
.fd-contact-form__consent a { color: var(--fd-ink); text-decoration: underline; }
.fd-contact-form .buttons-wrapper { display: flex; margin-top: 1.5rem; }
.fd-contact-form .buttons-wrapper .btn { gap: .5rem; letter-spacing: .06em; min-height: 3rem; padding-inline: 1.75rem; text-transform: uppercase; font-size: .8125rem; }
.fd-contact .contact-form .alert { margin-bottom: 1.25rem; }

/* 12. Carrito, pedido y cuenta (estilo Fergar Descanso) ------------------------------------------------------------ */
/* Titulos de pagina en la tipografia de titulares */
.page-cart .page-title-section, .page-order .page-title-section, .page-customer-account .page-title-section,
.page-authentication .page-title-section, .page-registration .page-title-section, .page-password .page-title-section,
.page-my-account .page-title-section, .page-addresses .page-title-section, .page-address .page-title-section,
.page-history .page-title-section, .page-order-detail .page-title-section, .page-identity .page-title-section {
  font-family: var(--fd-serif);
  font-weight: 400;
}

/* Carrito: lista de productos */
.cart-grid { row-gap: 2.5rem; }
.cart__overview > hr { border-color: var(--fd-line); margin: 0; opacity: 1; }
.cart__item { border-bottom: 1px solid var(--fd-line); padding: 1.25rem 0; }
.cart__item:last-child { border-bottom: 0; }
.cart__item .product-line { align-items: start; display: grid; gap: 1rem; grid-template-columns: 6rem minmax(0, 1fr); }
.cart__item .product-line__image { background-color: var(--fd-surface); }
.cart__item .product-line__image img { aspect-ratio: 1 / 1; display: block; mix-blend-mode: multiply; object-fit: contain; width: 100%; }
.cart__item .product-line__content { display: grid; gap: .75rem 1.5rem; grid-template-columns: minmax(0, 1fr); }
.cart__item .product-line__title { color: var(--fd-ink); font-size: .9375rem; font-weight: 500; text-decoration: none; }
.cart__item .product-line__title:hover { text-decoration: underline; }
.cart__item .product-line__item--info { color: var(--fd-muted); font-size: .8125rem; margin: .125rem 0 0; }
.cart__item .product-line__item--prices { align-items: baseline; display: flex; flex-wrap: wrap; gap: .375rem; margin-top: .375rem; }
.cart__item .product-line__item-price { color: var(--fd-ink); font-weight: 600; }
.cart__item .product-line__item-regular-price { color: var(--fd-muted); font-size: .8125rem; text-decoration: line-through; }
.cart__item .product-line__item-discount { background-color: var(--fd-accent) !important; font-weight: 500; }
.cart__item .product-line .product-line__content-right { align-items: center; display: flex; flex-direction: row; gap: 1rem; justify-content: space-between; margin: 0; text-align: left; }
.cart__item .product-line .product-line__actions { margin: 0; text-align: left; }
.cart__item .product-line__price { color: var(--fd-ink); font-weight: 600; white-space: nowrap; }
.cart__item .product-line__actions a { color: var(--fd-muted); font-size: .8125rem; text-decoration: underline; }
.cart__item .product-line__quantity-button { flex: none; width: auto; }
.cart__item .quantity-button__group { display: inline-flex; flex-wrap: nowrap; height: 2.5rem; width: auto; }
.cart__item .quantity-button__group .btn { flex: none; width: 2.5rem; }
.cart__item .quantity-button__group .btn, .cart__item .quantity-button__group input { background-color: #fff; border-color: var(--fd-line); }
.cart__item .quantity-button__group input { flex: 0 0 3rem; text-align: center; width: 3rem; }
.cart__continue-shopping { display: inline-block; font-size: .875rem; margin-top: 1.25rem; }
.cart__empty { color: var(--fd-muted); padding: 2rem 0; }
@media (min-width: 768px) {
  .cart__item .product-line { grid-template-columns: 8rem minmax(0, 1fr); gap: 1.5rem; }
  .cart__item .product-line__content { grid-template-columns: minmax(0, 1fr) auto; }
  .cart__item .product-line .product-line__content-right { align-items: flex-end; flex-direction: column; justify-content: flex-start; }
}

/* Resumen del carrito y del pedido: caja crema, fija al desplazarse en escritorio */
.cart-grid__aside-wrapper, .checkout-grid__aside-wrapper { background-color: var(--fd-surface); padding: 1.5rem; }
.cart-grid__aside-wrapper > h2 { font-family: var(--fd-serif); font-size: 1.375rem; font-weight: 400; margin: 0 0 1rem; }
.cart-grid__aside-wrapper > hr { display: none; }
.cart-summary__line { align-items: baseline; display: flex; font-size: .875rem; gap: 1rem; justify-content: space-between; padding: .375rem 0; }
.cart-summary__line--bold { border-top: 1px solid var(--fd-ink); color: var(--fd-ink); font-size: 1rem; font-weight: 600; margin-top: .5rem; padding-top: .875rem; }
.cart-summary__actions { margin-top: 1rem; }
.cart-summary__actions .btn { font-weight: 500; min-height: 3.25rem; }
.cart-voucher .accordion-item, .cart-voucher .accordion-button { background-color: transparent; }
.cart-voucher .accordion-button { font-size: .875rem; padding-left: 0; padding-right: 0; }
.cart-voucher__form { display: flex; gap: .5rem; }
.cart-voucher__form .form-control { background-color: #fff; }
@media (min-width: 992px) {
  .cart-grid__aside-wrapper, .checkout-grid__aside-wrapper { position: sticky; top: calc(var(--fd-header-h) + 3.5rem); }
}

.fd-cart-perks { border-top: 1px solid var(--fd-line); display: grid; gap: .875rem; list-style: none; margin: 1.25rem 0 0; padding: 1.25rem 0 0; }
.fd-cart-perks li { align-items: flex-start; color: var(--fd-ink); display: flex; gap: .75rem; }
.fd-cart-perks .fd-icon { flex: none; margin-top: .125rem; }
.fd-cart-perks strong { display: block; font-size: .8125rem; font-weight: 600; }
.fd-cart-perks small { color: var(--fd-muted); display: block; font-size: .75rem; }
.fd-cart-perks a { color: inherit; }

/* Pedido: pasos, formularios y opciones */
.checkout-steps { background-color: var(--fd-surface); border-bottom: 1px solid var(--fd-line); }
.checkout-steps__number { background-color: transparent !important; border: 1px solid var(--fd-line) !important; border-radius: 0 !important; color: var(--fd-muted) !important; }
.checkout-steps__step--current .checkout-steps__number,
.checkout-steps__step--complete .checkout-steps__number { background-color: var(--fd-ink) !important; border-color: var(--fd-ink) !important; color: #fff !important; }
.checkout-steps__btn { color: var(--fd-muted); font-size: .875rem; text-decoration: none; }
.checkout-steps__step--current .checkout-steps__btn { color: var(--fd-ink); font-weight: 600; }
.checkout-grid .step__title hr { border-color: var(--fd-line); opacity: 1; }
.checkout-grid .step:not(.step--current) .step__title .page-title-section { color: var(--fd-muted); font-size: 1.25rem; }
.checkout-grid .nav-underline .nav-link { color: var(--fd-muted); font-size: .875rem; }
.checkout-grid .nav-underline .nav-link.active { color: var(--fd-ink); font-weight: 600; }
.checkout__summary-accordion .accordion-item, .checkout__summary-accordion .accordion-button { background-color: transparent; }
.checkout__summary-accordion-header .accordion-button { font-family: var(--fd-serif); font-size: 1.25rem; padding: 0 0 .75rem; }
.checkout__summary-accordion .cart-summary .accordion-button { background-color: transparent; font-family: var(--fd-sans); font-size: .875rem; font-weight: 500; padding-left: 0; padding-right: 0; }
.delivery-options .delivery-option, .payment-options .payment-option {
  background-color: #fff;
  border: 1px solid var(--fd-line);
  margin-bottom: .5rem;
  padding: .875rem 1rem;
}
.delivery-options .delivery-option:has(input:checked), .payment-options .payment-option:has(input:checked) { border-color: var(--fd-ink); box-shadow: inset 0 0 0 1px var(--fd-ink); }
#checkout-payment-step .payment-option__label, #conditions-to-approve .form-check-label { font-size: 1.125rem; }
#checkout-payment-step .payment-option__input[type="radio"] { border-radius: 50%; }
#conditions-to-approve { margin-top: 3.5rem !important; }
#conditions-to-approve .form-check { padding-left: 1.75rem; }
#conditions-to-approve .form-check-input { margin-left: -1.75rem; }
#conditions-to-approve a { color: inherit; font-weight: 700; text-decoration: underline; }
.checkout-grid .btn-primary, .page-customer-account .btn-primary, .page-authentication .btn-primary, .page-registration .btn-primary, .page-password .btn-primary { font-weight: 500; min-height: 3rem; padding-inline: 1.5rem; }

/* Campos de formulario del pedido y de la cuenta */
.checkout-grid .form-control, .checkout-grid .form-select,
.page-customer-account .form-control, .page-customer-account .form-select,
.page-authentication .form-control, .page-registration .form-control, .page-registration .form-select,
.page-password .form-control { background-color: #fff; border-color: var(--fd-line); min-height: 3rem; }
.checkout-grid .form-control:focus, .checkout-grid .form-select:focus,
.page-customer-account .form-control:focus, .page-customer-account .form-select:focus,
.page-authentication .form-control:focus, .page-registration .form-control:focus,
.page-password .form-control:focus { border-color: var(--fd-ink); box-shadow: 0 0 0 1px var(--fd-ink); }
.checkout-grid .form-label, .page-customer-account .form-label, .page-authentication .form-label,
.page-registration .form-label { color: var(--fd-ink); font-size: .8125rem; font-weight: 600; }
.checkout-grid .form-text, .page-registration .form-text, .page-customer-account .form-text { color: var(--fd-muted); font-size: .75rem; }
.checkout-grid .form-check-input:checked, .page-registration .form-check-input:checked, .page-customer-account .form-check-input:checked {
  background-color: var(--fd-ink);
  border-color: var(--fd-ink);
}

/* Acceso: dos columnas */
.fd-auth { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); margin: 0 auto 3rem; max-width: 64rem; }
.fd-auth__col { min-width: 0; }
.fd-auth__title { font-family: var(--fd-serif); font-size: 1.5rem; font-weight: 400; margin: 0 0 1.25rem; }
.fd-auth__col--register { border-top: 1px solid var(--fd-line); padding-top: 2rem; }
.fd-auth__benefits { display: grid; gap: .875rem; list-style: none; margin: 0 0 1.5rem; padding: 0; }
.fd-auth__benefits li { align-items: center; color: var(--fd-ink); display: flex; font-size: .9375rem; gap: .75rem; }
.fd-auth__cta { width: 100%; }
.fd-auth__guest { color: var(--fd-muted); font-size: .8125rem; margin: 1rem 0 0; }
.fd-auth .buttons-wrapper { align-items: center; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin-top: 1rem; }
.fd-auth .buttons-wrapper .btn-basic { font-size: .875rem; padding: 0; text-decoration: underline; }
.fd-auth #submit-login { min-width: 12rem; }
@media (min-width: 992px) {
  .fd-auth { gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd-auth__col { padding: 0 3rem; }
  .fd-auth__col--login { padding-left: 0; }
  .fd-auth__col--register { border-left: 1px solid var(--fd-line); border-top: 0; padding-right: 0; padding-top: 0; }
}
.page-registration .register-form, .page-password .page-content { margin-inline: auto; max-width: 40rem; }
.page-registration .register-form__login-prompt { color: var(--fd-muted); font-size: .875rem; }

/* Cuenta: portada con tarjetas, menu lateral, tablas */
.account-menu--main { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); }
.account-menu--main .account-menu__link {
  align-items: center;
  background-color: #fff;
  border: 1px solid var(--fd-line);
  color: var(--fd-ink);
  display: flex;
  font-size: .9375rem;
  gap: .875rem;
  min-height: 5rem;
  padding: 1.25rem;
  text-decoration: none;
}
.account-menu--main .account-menu__link:hover { border-color: var(--fd-ink); }
.account-menu__icon { color: var(--fd-accent); }
.account-menu--sidebar .account-menu__title { font-family: var(--fd-serif); font-size: 1.375rem; font-weight: 400; }
.account-menu--sidebar .account-menu__nav { border-top: 1px solid var(--fd-line); display: flex; flex-direction: column; }
.account-menu--sidebar .account-menu__link { align-items: center; border-bottom: 1px solid var(--fd-line); color: var(--fd-text); display: flex; font-size: .875rem; gap: .625rem; padding: .75rem 0; text-decoration: none; }
.account-menu--sidebar .account-menu__link--active, .account-menu--sidebar .account-menu__link:hover { color: var(--fd-ink); font-weight: 600; }
.account-menu__back { font-size: .875rem; margin-bottom: 1.25rem; }
.page-customer-account .table { font-size: .875rem; }
.page-customer-account .table thead th { border-bottom: 1px solid var(--fd-ink); color: var(--fd-ink); font-weight: 600; }
.page-customer-account .table td { border-color: var(--fd-line); vertical-align: middle; }
.page-customer-account .address, .page-customer-account .card { background-color: #fff; border: 1px solid var(--fd-line); }
/* Portada de la cuenta: las tarjetas ya son el menu, el lateral sobra */
.page-my-account .account-menu--sidebar { display: none; }
.page-my-account #content-wrapper .row > .col-lg-9, .page-my-account .account-menu--sidebar ~ * { flex: 0 0 100%; max-width: 100%; }
.page-my-account .row:has(> .col-lg-3 > .account-menu--sidebar) > .col-lg-3 { display: none; }
.page-my-account .row:has(> .col-lg-3 > .account-menu--sidebar) > .col-lg-9 { flex: 0 0 100%; max-width: 100%; width: 100%; }
/* Historial: acciones como enlaces y estados que se parten en pantallas estrechas */
.order-history__header { border-bottom: 1px solid var(--fd-ink); color: var(--fd-ink); font-weight: 600; }
.order-history__row { border-bottom: 1px solid var(--fd-line); }
.order-history__cell--actions { align-items: flex-start; display: flex; flex-direction: column; gap: .25rem; }
.order-history__cell--actions .btn { background: none; border: 0; color: var(--fd-ink); font-size: .8125rem; min-height: 0; padding: 0; text-decoration: underline; }
.order-history__cell--actions .btn:hover { background: none; color: var(--fd-accent-hover); }
.order-history__cell--actions .btn .material-icons { display: none; }
.order-history__status, .order-status__badge { font-weight: 500; line-height: 1.3; max-width: 100%; text-align: left; white-space: normal; }
.page-order-detail .grid-table__cell { min-width: 0; overflow-wrap: anywhere; }
.page-order-detail .btn-outline-primary, .page-customer-account .address .btn-outline-primary { min-height: 2.5rem; }
/* RGPD */
.fd-gdpr .psgdprinfo17 { border-bottom: 1px solid var(--fd-line); padding: 0 0 1.5rem; margin-bottom: 1.5rem; }
.fd-gdpr h2 { font-family: var(--fd-serif); font-size: 1.25rem; font-weight: 400; }
.fd-gdpr__actions { display: flex; flex-wrap: wrap; gap: .5rem; }

/* Responsive --------------------------------------------------------------------------------------------------- */
@media (min-width: 576px) {
  .fd-contact-form .form-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd-contact-form__full { grid-column: 1 / -1; }
  .fd-contact__card { padding: 2rem; }
  .fd-carousel { grid-auto-columns: 42%; }
  .fd-carousel--products .products { grid-auto-columns: 42%; }
  .fd-steps { grid-auto-columns: 46%; }
  .fd-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fd-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fd-footer__store { grid-column: auto; }
  .fd-product__footer .products, .page-product .product-accessories .products { grid-auto-columns: 40%; }
}

@media (min-width: 768px) {
  .fd-promo { font-size: .75rem; }
  .fd-promo__inner { justify-content: space-between; }
  .fd-promo__links { display: flex; }
  .fd-header__inner { padding-inline: var(--fd-gutter); }
  .fd-header__logo img { width: 9.5rem; }

  .fd-listing .products { gap: 2.5rem .5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-inline: 0; }
  .fd-listing .products .product-miniature__bottom { padding-inline: 0; }
  html[data-fd-density="small"] .fd-listing .products { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .fd-banner--wide img { aspect-ratio: 16 / 7; }
  .fd-hero__content { padding-bottom: 4.5rem; }
  .fd-carousel.fd-subcats { grid-auto-columns: 9.5rem; }
}

@media (min-width: 992px) {
  .fd-contact__hero-inner { padding-block: 4rem 3.5rem; }
  .fd-contact__wrap { gap: 3.5rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); padding-block: 4rem 5rem; }
  .fd-contact__card { padding: 2.5rem; }
  .fd-carousel { grid-auto-columns: calc((100% - 4 * .5rem - 2 * var(--fd-gutter)) / 4.4); }
  .fd-carousel--products .products { grid-auto-columns: calc((100% - 3 * .5rem - 2 * var(--fd-gutter)) / 4); }
  .fd-carousel-nav { display: flex; }
  .fd-steps { grid-auto-columns: calc((100% - 2 * .5rem - 2 * var(--fd-gutter)) / 3); grid-auto-flow: column; overflow: visible; }
  .fd-footer__grid { gap: 2rem; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 3.5rem; }
  .fd-footer__newsletter .row { align-items: center; flex-wrap: nowrap; }
  .fd-footer__copy { margin-left: auto; text-align: right; width: auto; }

  /* Listado: 4 columnas por defecto y 3 con la vista grande */
  .fd-listing .products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  html[data-fd-density="large"] .fd-listing .products { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  /* Ficha: galeria en mosaico y panel fijo */
  .fd-product { align-items: start; display: grid; gap: 3rem; grid-template-columns: minmax(0, 1.75fr) minmax(22rem, 1fr); }
  .fd-gallery { margin-inline: 0; }
  .fd-gallery__track { display: grid; gap: .25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }  .fd-gallery__progress, .fd-gallery__counter { display: none; }
  .fd-gallery--extended .fd-gallery__more { display: block; grid-column: 1 / -1; position: relative; }
  .fd-gallery--extended .fd-gallery__strip {
    display: grid;
    gap: .25rem;
    grid-auto-columns: calc((100% - 3 * .25rem) / 4);
    grid-auto-flow: column;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .fd-gallery--extended .fd-gallery__strip::-webkit-scrollbar { display: none; }
  .fd-gallery--extended .fd-gallery__nav { display: flex; inset: 50% .75rem auto; justify-content: space-between; pointer-events: none; position: absolute; transform: translateY(-50%); }
  .fd-gallery__nav .fd-carousel-nav__btn { align-items: center; background-color: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgb(0 0 0 / .15); display: flex; height: 2.5rem; justify-content: center; pointer-events: auto; transition: opacity .2s ease; width: 2.5rem; }
  .fd-gallery__nav .fd-carousel-nav__btn:disabled { opacity: 0; pointer-events: none; }
  .fd-product__panel { padding-top: 0; }
  .fd-product__sticky { position: sticky; top: calc(var(--fd-header-h) + 1.5rem); }
  .fd-product__footer .products, .page-product .product-accessories .products { grid-auto-columns: calc((100% - 3 * .5rem - 2 * var(--fd-gutter)) / 4); }
}

@media (min-width: 1200px) {
  .fd-header__burger { display: none; }
  /* Logo y herramientas reparten el sobrante a partes iguales para que el menu quede centrado en la cabecera */
  .fd-header__logo { flex: 1 1 0; margin-right: 0; }
  .fd-header__tools { flex: 1 1 0; justify-content: flex-end; }
  .fd-menu { align-self: stretch; display: flex; flex: none; justify-content: center; margin-inline: 1.5rem; }
  .fd-menu__list { align-self: stretch; }
  .fd-mobile-menu { display: none; }
}

/* Entre 1200 y 1400 px el menu se compacta para que quepa junto al buscador */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .fd-menu { margin-inline: .5rem; }
  .fd-menu__list { gap: 0; }
  .fd-menu__link { font-size: .9375rem; padding-inline: .5rem; }
  .fd-header .ps-searchbar__form .ps-searchbar__input { width: 7.5rem; }
}

@media (max-width: 767.98px) {
  .fd-promo__text { font-size: .8125rem; }
  .fd-promo__sep, .fd-promo__text a { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .product-miniature__inner:hover .product-miniature__image, .fd-banner:hover img { transform: none; }
  .fd-gallery--changed .fd-gallery__item { animation: none; }
}

/* 14. Sobre nosotros: editorial de marca, CMS 4. */
body#cms:has(.fd-about) #wrapper { padding-top: 0; }
body#cms:has(.fd-about) .columns-container { max-width: none; padding: 0; }
.fd-about { color: var(--fd-text); background: var(--fd-bg); overflow: clip; }
.fd-about figure, .fd-about p { margin: 0; }
.fd-about h1, .fd-about h2, .fd-about h3 { font-weight: 400; }
.fd-about em { color: var(--fd-accent); font-weight: 400; }
.fd-about__eyebrow { font-size: .65rem; font-weight: 600; letter-spacing: .17em; line-height: 1.7; }
.fd-about__hero { display: grid; grid-template-columns: 1fr 1.05fr; min-height: 640px; }
.fd-about__intro { padding: clamp(3rem,6vw,7rem) clamp(1.5rem,5vw,6rem); align-self: center; }
.fd-about h1 { font-size: clamp(3rem,4.8vw,5.5rem); line-height: 1.06; letter-spacing: -.045em; margin: 2rem 0; }
.fd-about__intro p:not(.fd-about__eyebrow) { max-width: 31rem; line-height: 1.85; }
.fd-about__intro .fd-about__lead { font-size: 1.1rem; margin-bottom: 1rem; }
.fd-about__textlink { display: inline-flex; align-items: center; gap: 1.5rem; font-size: .8rem; border-bottom: 1px solid currentColor; padding-bottom: .4rem; text-decoration: none; }
.fd-about__intro .fd-about__textlink { margin-top: 2rem; }
.fd-about__cover { position: relative; min-width: 0; }
.fd-about__cover img { width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: 53% center; }
.fd-about__cover figcaption { position: absolute; bottom: 1.5rem; left: 1.5rem; color: #fff; font-size: .75rem; padding: .55rem .85rem; background: #1e1915b8; }
.fd-about__story { padding: clamp(4rem,7vw,8rem) clamp(1.5rem,7vw,8rem); display: grid; grid-template-columns: 1fr 3fr; gap: 2rem; scroll-margin-top: 7rem; }
.fd-about__story > .fd-about__eyebrow { padding-top: .8rem; }
.fd-about h2 { font-size: clamp(2.3rem,3.7vw,4.2rem); line-height: 1.12; letter-spacing: -.035em; margin: 0 0 2rem; }
.fd-about__storycopy { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; max-width: 850px; }
.fd-about__storycopy p, .fd-about__valuegrid p, .fd-about__visitcopy > p:not(.fd-about__eyebrow) { line-height: 1.9; }
.fd-about__values { padding: clamp(3rem,6vw,6rem) clamp(1.5rem,7vw,8rem); background: #eee7dd; }
.fd-about__sectionhead .fd-about__eyebrow { margin-bottom: 1rem; }
.fd-about__valuegrid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(2rem,4vw,5rem); margin-top: 3rem; }
.fd-about__valuegrid article { border-top: 1px solid #c9bcac; padding-top: 1.5rem; }
.fd-about__number { color: var(--fd-accent); font-family: var(--fd-serif); font-size: 1.2rem; }
.fd-about__valuegrid h3 { font-size: 1.7rem; margin: 1.8rem 0 1rem; letter-spacing: -.02em; }
.fd-about__visit { display: grid; grid-template-columns: 1fr 1fr; padding: clamp(3rem,7vw,8rem); gap: clamp(2rem,7vw,8rem); align-items: center; }
.fd-about__visit figure { position: relative; }
.fd-about__visit img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.fd-about__visit figcaption { font-size: .7rem; color: var(--fd-muted); margin-top: .8rem; }
.fd-about__visitcopy > .fd-about__eyebrow { margin-bottom: 1.5rem; }
.fd-about__visitcopy address { font-style: normal; font-size: .85rem; line-height: 1.9; border-top: 1px solid var(--fd-line); padding-top: 1.5rem; margin: 1.5rem 0; }
.fd-about__visitcopy address strong { font-weight: 600; }
.fd-about__visitcopy dl { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1.5rem; font-size: .78rem; margin-bottom: 2rem; }
.fd-about__visitcopy dt { font-weight: 500; }
.fd-about__visitcopy dd { margin: 0; }
.fd-about__visitcopy .fd-btn { display: inline-flex; gap: 2rem; }
.fd-about__visitcopy .fd-about__textlink { display: table; margin-top: 1.5rem; }
.fd-about__closing { background: #302b25; color: #f6f0e8; padding: clamp(4rem,7vw,8rem) 1.5rem; text-align: center; }
.fd-about__closing h2 { color: inherit; margin: 1.5rem 0; font-size: clamp(2.6rem,4.8vw,5.5rem); }
.fd-about__closing em { color: #e7ae8c; }
.fd-about__closing > p:not(.fd-about__eyebrow) { color: #d5c9bb; }
.fd-about__closing > div { display: flex; justify-content: center; align-items: center; gap: 2rem; flex-wrap: wrap; margin-top: 2.5rem; }
.fd-about__closing .fd-about__textlink { color: inherit; }
.fd-about a:focus-visible { outline: 2px solid var(--fd-accent); outline-offset: 6px; }
@media (min-width: 1600px) { .fd-about__hero { min-height: 760px; } }
@media (max-width: 991.98px) {
  .fd-about__hero { min-height: 540px; }
  .fd-about__story { grid-template-columns: 1fr; }
  .fd-about__visit { gap: 2.5rem; }
}
@media (max-width: 767.98px) {
  .fd-about__hero, .fd-about__storycopy, .fd-about__valuegrid, .fd-about__visit { grid-template-columns: 1fr; }
  .fd-about__intro { padding: 3rem 1.5rem; }
  .fd-about h1 { font-size: clamp(2.9rem,10vw,4rem); }
  .fd-about__cover { min-height: 370px; }
  .fd-about__cover img { object-position: center; }
  .fd-about__storycopy { gap: 1rem; }
  .fd-about__valuegrid { gap: 2.5rem; }
  .fd-about__valuegrid h3 { margin-top: 1rem; }
  .fd-about__visit { padding: 3rem 1.5rem; }
  .fd-about__visit img { aspect-ratio: 5/4; }
  .fd-about__visitcopy dl { gap: .5rem .75rem; }
}
.fd-about__visit img { height: auto; }

/* 14b. Sobre nosotros en movimiento. templates/cms/page.tpl pone .fd-about--motion (salvo prefers-reduced-motion)
 * y custom.js (initAbout) marca .is-in al entrar cada pieza en pantalla, parte h1/h2 en lineas (.fd-line), envuelve
 * la foto de la tienda (.fd-about__media) y mueve --fd-par (parallax) y la barra de lectura. Sin JS se ve todo quieto.
 * La lista de piezas que entran desde abajo es la misma que ABOUT_REVEAL en custom.js. */
.fd-about { --fd-about-ease: cubic-bezier(.16, 1, .3, 1); }
.fd-about--motion :is(.fd-about__eyebrow, .fd-about__intro > p, .fd-about__textlink, .fd-about__storycopy p,
  .fd-about__valuegrid article, .fd-about__visitcopy > p, .fd-about__visitcopy address, .fd-about__visitcopy dl,
  .fd-btn, .fd-about__closing > p) {
  opacity: 0;
  transform: translate3d(0, 1.75rem, 0);
  transition: opacity .9s ease var(--fd-delay, 0ms), transform 1.1s var(--fd-about-ease) var(--fd-delay, 0ms), background-color .2s ease, color .2s ease;
}
.fd-about--motion :is(.fd-about__eyebrow, .fd-about__intro > p, .fd-about__textlink, .fd-about__storycopy p,
  .fd-about__valuegrid article, .fd-about__visitcopy > p, .fd-about__visitcopy address, .fd-about__visitcopy dl,
  .fd-btn, .fd-about__closing > p).is-in { opacity: 1; transform: none; }
.fd-about--motion :is(h1, h2):not(.fd-split) { opacity: 0; }
.fd-about :is(h1, h2).fd-split { display: block; }
.fd-about .fd-line { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.fd-about .fd-line > span { display: block; transform: translate3d(0, 110%, 0); transition: transform 1.2s var(--fd-about-ease) calc(var(--fd-delay, 0ms) + var(--fd-i, 0) * 130ms); }
.fd-about .is-in .fd-line > span { transform: none; }
/* Fotos: se descubren con una cortina y se asientan con un zoom lento; luego parallax al hacer scroll */
.fd-about__cover, .fd-about__media { overflow: hidden; }
.fd-about--motion :is(.fd-about__cover, .fd-about__media) { clip-path: inset(0 0 0 100%); transition: clip-path 1.5s var(--fd-about-ease) var(--fd-delay, 0ms); }
.fd-about--motion .fd-about__media { clip-path: inset(100% 0 0 0); }
.fd-about--motion :is(.fd-about__cover, .fd-about__media).is-in { clip-path: inset(0); }
.fd-about--motion :is(.fd-about__cover, .fd-about__media) img { scale: 1.3; transform: translate3d(0, var(--fd-par, 0), 0); transition: scale 2.4s var(--fd-about-ease) var(--fd-delay, 0ms); will-change: transform; }
.fd-about--motion :is(.fd-about__cover, .fd-about__media).is-in img { scale: 1.1; }
.fd-about--motion .fd-about__media.is-in:hover img { scale: 1.15; transition-duration: 1.2s; transition-delay: 0ms; }
.fd-about--motion .fd-about__cover figcaption { opacity: 0; transform: translate3d(-1rem, 0, 0); transition: opacity .8s ease 1.1s, transform 1s var(--fd-about-ease) 1.1s; }
.fd-about--motion .fd-about__cover.is-in figcaption { opacity: 1; transform: none; }
/* Detalles al pasar el raton */
.fd-about__valuegrid article { position: relative; }
.fd-about__valuegrid article::before { background: var(--fd-accent); content: ""; height: 2px; left: 0; position: absolute; right: 0; top: -1px; transform: scaleX(0); transform-origin: left; transition: transform .7s var(--fd-about-ease); }
.fd-about__valuegrid article:hover::before { transform: scaleX(1); }
.fd-about__valuegrid article .fd-about__number { display: inline-block; transition: transform .5s var(--fd-about-ease); }
.fd-about__valuegrid article:hover .fd-about__number { transform: translate3d(.5rem, 0, 0); }
.fd-about :is(.fd-btn, .fd-about__textlink) span { display: inline-block; transition: transform .35s var(--fd-about-ease); }
.fd-about :is(.fd-btn, .fd-about__textlink):hover span { transform: translate3d(.3rem, 0, 0); }
.fd-about :is(.fd-btn, .fd-about__textlink)[target="_blank"]:hover span { transform: translate3d(.2rem, -.2rem, 0); }
.fd-about__intro .fd-about__textlink span { animation: fd-about-bob 2.2s ease-in-out infinite; }
@keyframes fd-about-bob { 50% { transform: translate3d(0, .3rem, 0); } }
/* Cierre: luz calida que respira detras del titular */
.fd-about__closing { isolation: isolate; overflow: hidden; position: relative; }
.fd-about__closing::before { animation: fd-about-glow 16s ease-in-out infinite alternate; background: radial-gradient(circle at 30% 45%, #c2552b4d, transparent 38%), radial-gradient(circle at 72% 60%, #e7ae8c2e, transparent 34%); content: ""; inset: -30%; position: absolute; z-index: -1; }
@keyframes fd-about-glow { to { transform: translate3d(6%, -4%, 0) rotate(12deg) scale(1.1); } }
/* Barra de lectura (la crea custom.js) */
.fd-about__progress { background: var(--fd-accent); height: 3px; left: 0; pointer-events: none; position: fixed; right: 0; top: 0; transform: scaleX(0); transform-origin: left; z-index: 1090; }
@media (prefers-reduced-motion: reduce) {
  .fd-about__intro .fd-about__textlink span, .fd-about__closing::before { animation: none; }
}
