/* =============================================================================
   PRODUCTOS — interfaz de catálogo
   Las reglas compartidas de header/footer que venían en la hoja original se
   conservan sin cambios; el rediseño empieza después de este bloque.
   ============================================================================= */
/* Header compartido — sin cambios */
.site-header { background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid #e8e7e3; position: sticky; top: 0; z-index: 20; }
.header-inner { align-items: center; display: grid; grid-template-columns: 1fr auto 1fr; min-height: 72px; }
.brand { font-size: 1.35rem; font-weight: 800; letter-spacing: 0.2em; }
.brand span { color: var(--gold, #b89a5b); }
.header-actions { align-items: center; display: flex; gap: 18px; }
.header-actions a { align-items: center; display: flex; font-size: 0.68rem; gap: 6px; letter-spacing: 0.06em; text-transform: uppercase; }
.header-actions .icon { border: 1px solid var(--ink, #30332f); border-radius: 50%; display: grid; font-size: 0.65rem; height: 20px; place-items: center; width: 20px; }
.shipping-tag { color: var(--gold-dark, #97793f); font-weight: 700; }
.menu-toggle { background: none; border: 0; display: none; font-size: 1.3rem; justify-self: end; }
.main-nav { display: flex; gap: 34px; justify-content: center; min-height: 41px; }
.main-nav a { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; padding-top: 7px; text-transform: uppercase; color: #30332f; text-decoration: none; }
.main-nav a:hover { color: var(--gold-dark, #97793f); }
/* Footer compartido — sin cambios */
.benefits-strip { background: var(--ink, #30332f); color: #ffffff; padding-block: 38px; }
.benefits-grid { display: grid; gap: 45px; grid-template-columns: repeat(3, 1fr); }
.benefits-grid article { align-items: center; display: flex; gap: 16px; }
.benefit-icon { border: 1px solid var(--gold, #b89a5b); border-radius: 50%; color: #dfc588; display: grid; flex: 0 0 auto; font-size: 1.4rem; height: 46px; place-items: center; width: 46px; }
.benefits-grid h3 { font-family: var(--serif, 'Playfair Display', serif); font-size: 1.2rem; font-weight: 400; margin: 0; }
.benefits-grid p { color: #cdcfca; font-size: 0.78rem; margin: 2px 0 0; }
.site-footer { background: #262925; color: #e5e6e0; padding-top: 75px; }
.footer-grid { display: grid; gap: 48px; grid-template-columns: 1.45fr 0.75fr 1fr 1.2fr; }
.footer-brand .brand { display: inline-block; margin-bottom: 24px; }
.site-footer h2 { color: #fff; font-family: var(--sans, sans-serif); font-size: 0.76rem; font-weight: 700; letter-spacing: 0.1em; margin: 0 0 17px; text-transform: uppercase; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li, .site-footer p { color: #c7c9c4; font-size: 0.8rem; margin-bottom: 9px; }
.site-footer a { color: #c7c9c4; text-decoration: none; }
.site-footer a:hover { color: #e2c78c; }
.contact-list { margin-bottom: 19px !important; }
.social-links { display: flex; gap: 10px; }
.social-links a { border: 1px solid #70736b; border-radius: 50%; display: grid; font-size: 0.85rem; height: 28px; place-items: center; width: 28px; }
.footer-notice-title { margin-top: 30px !important; }
.legal-notice { color: #ddc489 !important; font-size: 0.65rem !important; line-height: 1.6; }
.footer-bottom { border-top: 1px solid #484b46; color: #a7aaa3; font-size: 0.7rem; margin-top: 58px; padding-block: 18px; }
.products-hero,
.products-hero *,
.lines-section *,
.products-section *,
.yx-cart-drawer *,
.yx-modal-overlay * { box-sizing: border-box; }
/* -----------------------------------------------------------------------------
   Hero
   ----------------------------------------------------------------------------- */
.products-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: 290px;
  padding: clamp(3.5rem, 8vw, 6.5rem) 0;
  color: #1e241f;
  background:
    radial-gradient(circle at 88% 8%, rgba(244, 217, 143, .58), transparent 29rem),
    radial-gradient(circle at 6% 100%, rgba(109, 151, 113, .16), transparent 25rem),
    #f8f6ef;
}
.products-hero::before,
.products-hero::after {
  position: absolute;
  z-index: -1;
  content: '';
  border: 1px solid rgba(184, 154, 91, .24);
  border-radius: 50%;
  pointer-events: none;
}
.products-hero::before {
  width: clamp(27rem, 52vw, 47rem);
  aspect-ratio: 1;
  top: -66%;
  right: -13%;
}
.products-hero::after {
  width: clamp(16rem, 30vw, 28rem);
  aspect-ratio: 1;
  bottom: -72%;
  left: 19%;
}
.products-hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.5rem, 6vw, 6rem);
}
.products-hero-copy { max-width: 42rem; }
.eyebrow {
  margin: 0 0 .65rem;
  color: #97793f;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .16em;
  line-height: 1.2;
  text-transform: uppercase;
}
.products-hero h1 {
  margin: 0;
  color: #1e241f;
  font-family: var(--serif, 'Playfair Display', Georgia, serif);
  font-size: clamp(3rem, 6.2vw, 5.8rem);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: .98;
}
.products-hero p:not(.eyebrow) {
  max-width: 34rem;
  margin: 1.25rem 0 0;
  color: #51594f;
  font-size: clamp(1rem, 1.35vw, 1.15rem);
  line-height: 1.65;
}
.products-hero-badge {
  display: grid;
  width: clamp(8rem, 17vw, 12.5rem);
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(184, 154, 91, .34);
  border-radius: 50%;
  background: rgba(255, 255, 255, .52);
  box-shadow: 0 1.25rem 3rem rgba(67, 73, 60, .12);
  backdrop-filter: blur(7px);
}
.hero-logo-circle { display: grid; width: 77%; aspect-ratio: 1; place-items: center; border-radius: 50%; background: #fffdf8; }
.hero-logo-img { display: block; width: 78%; height: 78%; object-fit: contain; }
/* -----------------------------------------------------------------------------
   Líneas
   ----------------------------------------------------------------------------- */
.lines-section { padding-block: clamp(3.75rem, 8vw, 6.5rem) 1.25rem; }
.section-heading { max-width: 40rem; margin-bottom: clamp(1.75rem, 4vw, 3rem); }
.section-heading h2 {
  margin: 0 0 .7rem;
  color: #1e241f;
  font-family: var(--serif, 'Playfair Display', Georgia, serif);
  font-size: clamp(2.1rem, 4vw, 3.65rem);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.06;
}
.section-heading > p:last-child { margin: 0; color: #687068; line-height: 1.7; }
.lines-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.65rem, 1.6vw, 1.2rem);
}
.line-card {
  position: relative;
  display: flex;
  min-height: clamp(11rem, 19vw, 18rem);
  overflow: hidden;
  border: 1px solid #e9e7df;
  border-radius: 1.1rem;
  background: #f0f0ed;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 .5rem 1.4rem rgba(38, 46, 38, .04);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.line-card.has-image { background-position: center; background-repeat: no-repeat; background-size: cover; }
.line-card.has-image::after { position: absolute; inset: 0; content: ''; background: linear-gradient(180deg, transparent 34%, rgba(23, 30, 24, .67) 100%); }
.line-card.no-image {
  align-items: center;
  justify-content: center;
  border-style: dashed;
  background:
    radial-gradient(circle at 50% 10%, rgba(184, 154, 91, .22), transparent 45%),
    #f6f5f0;
}
.line-card:hover { transform: translateY(-.35rem); border-color: rgba(184, 154, 91, .62); box-shadow: 0 1.15rem 2.4rem rgba(38, 46, 38, .13); }
.line-card:focus-visible { outline: 3px solid #b89a5b; outline-offset: 4px; }
.line-card:nth-child(1),
.line-card:nth-child(2) { grid-column: span 2; min-height: clamp(14rem, 25vw, 22rem); }
.line-image-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  color: #72756f;
  font-size: .65rem;
  letter-spacing: .12em;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
}
/* -----------------------------------------------------------------------------
   Descubrimiento y filtros
   ----------------------------------------------------------------------------- */
.products-section { padding-block: clamp(3.75rem, 8vw, 6.5rem) 7rem; }
.products-search-bar {
  position: relative;
  width: 100%;
  max-width: 51rem;
  margin-bottom: 1.4rem;
}
.products-search-bar input {
  width: 100%;
  height: 3.45rem;
  padding: 0 1.35rem 0 3.45rem;
  border: 1px solid #dedfd8;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 .35rem 1.4rem rgba(41, 48, 40, .045);
  color: #30332f;
  font-family: var(--sans, system-ui, sans-serif);
  font-size: .95rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.products-search-bar input::placeholder { color: #92978d; }
.products-search-bar input:focus { outline: 0; border-color: #b89a5b; box-shadow: 0 0 0 4px rgba(184, 154, 91, .16); }
.products-search-bar .search-icon { position: absolute; top: 50%; left: 1.2rem; width: 1.1rem; height: 1.1rem; transform: translateY(-50%); color: #79816f; pointer-events: none; }
.products-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: clamp(1.6rem, 3vw, 2.5rem);
  padding: .7rem 0 1.2rem;
  border-bottom: 1px solid #e9e8e2;
}
.filter-list {
  display: flex;
  flex: 1 1 auto;
  gap: .55rem;
  min-width: 0;
  padding: .1rem 0 .6rem;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #b89a5b transparent;
}
.filter-list::-webkit-scrollbar { height: .35rem; }
.filter-list::-webkit-scrollbar-thumb { border-radius: 99px; background: #b89a5b; }
.filter-button {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 2.25rem;
  padding: .45rem .85rem;
  border: 0;
  border-radius: 99px;
  color: #fff;
  cursor: pointer;
  font-family: var(--sans, system-ui, sans-serif);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .055em;
  line-height: 1;
  text-transform: uppercase;
  opacity: .62;
  box-shadow: none;
  transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}
.filter-button:hover,
.filter-button:focus-visible,
.filter-button.is-active { opacity: 1; transform: translateY(-1px); box-shadow: 0 .4rem .9rem rgba(35, 42, 35, .16); }
.filter-button:focus-visible { outline: 3px solid rgba(184, 154, 91, .46); outline-offset: 2px; }
.filter-button .cat-dot { display: none; }
.products-count { flex: 0 0 auto; margin: 0; color: #737970; font-size: .8rem; font-weight: 600; white-space: nowrap; }
/* -----------------------------------------------------------------------------
   Tarjetas de producto
   ----------------------------------------------------------------------------- */
.products-grid,
.products-grid[data-products-grid] {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: start;
  gap: clamp(1rem, 2.2vw, 1.65rem);
  margin-bottom: 3.75rem;
}
.store-product {
  position: relative;
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e8e8e2;
  border-radius: 1.1rem;
  background: #fff;
  box-shadow: 0 .45rem 1.5rem rgba(42, 49, 42, .045);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.store-product:not(.is-expanded):hover { transform: translateY(-.35rem); border-color: #d8cfbd; box-shadow: 0 1.15rem 2.3rem rgba(42, 49, 42, .12); }
.store-product:focus-within { border-color: rgba(184, 154, 91, .68); }
.store-product-gallery {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / .94;
  overflow: hidden;
  border-bottom: 1px solid #f0efe9;
  background: linear-gradient(145deg, #fcfcfa, #f4f4f0);
  cursor: zoom-in;
}
.store-product:not(.is-expanded) .carousel-track { pointer-events: none; }
.carousel-track { display: flex; width: 100%; height: 100%; overflow-x: auto; scrollbar-width: none; }
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-slide {
  width: 100%;
  height: 100%;
  flex: 0 0 100%;
  background-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.store-product-image-placeholder { display: flex; align-items: center; justify-content: center; color: #9fa19d; font-size: .76rem; text-align: center; }
.store-product:not(.is-expanded) .carousel-btn,
.store-product:not(.is-expanded) .carousel-hint { display: none; }
.store-product-info { display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 1.1rem; }
.product-category-tag {
  display: inline-flex;
  align-self: flex-start;
  max-width: 100%;
  margin: 0 0 .7rem !important;
  padding: .3rem .5rem;
  overflow: hidden;
  border-radius: .4rem;
  color: #fff !important;
  font-size: .57rem !important;
  font-weight: 800 !important;
  letter-spacing: .09em;
  line-height: 1.1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.store-product-rating { display: flex; align-items: center; gap: .35rem; min-height: 1.1rem; margin: 0 0 .65rem; }
.store-product-rating .stars { display: flex; gap: 1px; font-size: 1rem; line-height: 1; }
.star-wrapper { position: relative; display: inline-block; }
.star-empty { display: block; color: #e5e7eb; text-shadow: none; }
.star-filled { position: absolute; top: 0; left: 0; overflow: hidden; color: var(--gold-dark, #97793f); text-shadow: none; white-space: nowrap; }
.stars.is-interactive .star-wrapper { cursor: pointer; transition: transform .18s ease; }
.stars.is-interactive .star-wrapper:hover { z-index: 1; transform: scale(1.16); }
.stars.is-interactive .star-wrapper:hover .star-filled { width: 100% !important; color: #d97706; }
.rating-count { color: #6b7280; font-size: .72rem; font-weight: 600; }
.voted-badge { margin-left: .1rem; padding: .13rem .38rem; border-radius: 99px; background: #15803d; color: #fff; font-size: .62rem; font-weight: 700; }
.store-product-info h2 {
  display: -webkit-box;
  margin: 0 0 .55rem;
  overflow: hidden;
  color: #252b25;
  font-family: var(--serif, 'Playfair Display', Georgia, serif);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.store-product-info > strong { display: block; margin: 0 0 .35rem; color: #2c372f; font-size: .97rem; line-height: 1.2; }
.yx-precio-embajador { color: #3d7a3f !important; }
.yx-precio-lista { display: inline-block; margin-left: .35rem; color: #a0a0a0; font-size: .78em; font-weight: 500; text-decoration: line-through; }
.stock-status { display: block; margin: 0 0 1rem; color: #6d756c; font-size: .61rem; font-weight: 800; letter-spacing: .075em; line-height: 1.2; text-transform: uppercase; }
.stock-status::first-letter { color: #15803d; }
.add-to-cart {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.65rem;
  margin-top: auto;
  padding: .65rem .8rem .65rem 1rem;
  border: 0;
  border-radius: .65rem;
  background: #2c372f;
  color: #fff;
  cursor: pointer;
  font-family: var(--sans, system-ui, sans-serif);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .055em;
  line-height: 1;
  text-transform: uppercase;
  transition: background .2s ease, transform .2s ease;
}
.add-to-cart span { font-size: 1.15rem; font-weight: 400; line-height: .7; }
.add-to-cart:hover:not([disabled]) { transform: translateY(-1px); background: #1e241f; }
.add-to-cart:focus-visible { outline: 3px solid rgba(184, 154, 91, .52); outline-offset: 3px; }
.add-to-cart[disabled] { background: #d6d8d3; color: #8a9188; cursor: not-allowed; }
.store-product-description { display: none; margin: 0 0 1.2rem; padding: 0 0 1.2rem; border-bottom: 1px solid #edece7; color: #5e665e; font-size: .9rem; line-height: 1.65; }
.store-product-description h4 { margin: 0 0 .4rem; color: #97793f; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.store-product-description p { margin: 0; }
/* La apertura conserva el comportamiento actual, pero lo presenta como detalle. */
.store-product.is-expanded {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .92fr);
  overflow: visible;
  border-color: #cbb477;
  box-shadow: 0 1.4rem 3.5rem rgba(42, 49, 42, .16);
}
.store-product-minimize {
  position: absolute;
  z-index: 4;
  top: .8rem;
  left: .8rem;
  display: none;
  width: 2.2rem;
  height: 2.2rem;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #2c372f;
  box-shadow: 0 .3rem .8rem rgba(0, 0, 0, .18);
  color: #fff;
  cursor: pointer;
  font-size: 1.4rem;
  line-height: 1;
}
.store-product-minimize:hover { background: #9b3f36; }
.store-product.is-expanded .store-product-minimize { display: flex; }
.store-product.is-expanded .store-product-gallery { min-height: 28rem; aspect-ratio: auto; border-right: 1px solid #edece7; border-bottom: 0; cursor: default; }
.store-product.is-expanded .carousel-track { overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; pointer-events: auto; }
.store-product.is-expanded .carousel-slide { scroll-snap-align: start; }
.store-product.is-expanded .carousel-btn {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  padding: 0;
  transform: translateY(-50%);
  border: 1px solid #ece8dd;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 .4rem 1rem rgba(28, 34, 28, .15);
  color: #1e241f;
  cursor: pointer;
  font-size: .85rem;
}
.store-product.is-expanded .carousel-btn:hover { transform: translateY(-50%) scale(1.06); background: #fff; }
.carousel-btn.prev { left: 1rem; }
.carousel-btn.next { right: 1rem; }
.store-product.is-expanded .store-product-info { padding: clamp(1.5rem, 3vw, 2.6rem); }
.store-product.is-expanded .store-product-description { display: block; }
.store-product.is-expanded .store-product-info h2 { font-size: clamp(1.65rem, 2.8vw, 2.35rem); -webkit-line-clamp: unset; }
.store-product.is-expanded .store-product-rating .stars { font-size: 1.2rem; }
.store-product.is-expanded .add-to-cart { max-width: 19rem; }
.load-more { display: flex; gap: .7rem; align-items: center; justify-content: center; margin-inline: auto; padding: .8rem 1.25rem; border: 1px solid #2c372f; border-radius: .6rem; background: #fff; color: #2c372f; cursor: pointer; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; transition: background .2s ease, color .2s ease; }
.load-more:hover { background: #2c372f; color: #fff; }
/* -----------------------------------------------------------------------------
   Carrito y retroalimentación
   ----------------------------------------------------------------------------- */
.yx-cart-trigger { position: fixed; right: max(1.2rem, env(safe-area-inset-right)); bottom: max(1.2rem, env(safe-area-inset-bottom)); z-index: 60; display: flex; width: 3.6rem; height: 3.6rem; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: #2c372f; box-shadow: 0 .8rem 1.8rem rgba(25, 31, 25, .28); color: #fff; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.yx-cart-trigger:hover { transform: translateY(-.18rem); background: #1e241f; }
.yx-cart-trigger:focus-visible { outline: 3px solid #b89a5b; outline-offset: 3px; }
.yx-cart-trigger svg { width: 1.45rem; height: 1.45rem; }
.yx-cart-trigger .yx-cart-badge { position: absolute; top: -.18rem; right: -.18rem; display: flex; min-width: 1.25rem; height: 1.25rem; align-items: center; justify-content: center; padding: 0 .25rem; transform: scale(.6); border-radius: 99px; background: #b89a5b; color: #fff; font-size: .68rem; font-weight: 800; opacity: 0; transition: opacity .15s ease, transform .15s ease; }
.yx-cart-trigger .yx-cart-badge.has-items { transform: scale(1); opacity: 1; }
.yx-cart-overlay { position: fixed; z-index: 70; inset: 0; background: rgba(23, 29, 24, .48); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.yx-cart-overlay.is-visible { opacity: 1; pointer-events: auto; }
.yx-cart-drawer { position: fixed; z-index: 80; top: 0; right: 0; display: flex; width: min(26.5rem, 92vw); height: 100dvh; flex-direction: column; transform: translateX(100%); background: #fff; box-shadow: -1rem 0 2.8rem rgba(20, 25, 20, .16); transition: transform .3s ease; }
.yx-cart-drawer.is-open { transform: translateX(0); }
.yx-cart-drawer-header { display: flex; align-items: center; justify-content: space-between; padding: 1.3rem 1.4rem; border-bottom: 1px solid #ecebe6; }
.yx-cart-drawer-header h2 { margin: 0; color: #1e241f; font-family: var(--serif, 'Playfair Display', Georgia, serif); font-size: 1.55rem; }
.yx-cart-close-btn { padding: .15rem .45rem; border: 0; background: transparent; color: #737970; cursor: pointer; font-size: 1.8rem; line-height: 1; }
.yx-cart-close-btn:hover { color: #1e241f; }
.yx-cart-drawer-body { flex: 1; padding: .6rem 1.4rem; overflow-y: auto; }
.yx-cart-empty { padding: 3rem .5rem; color: #9fa19d; text-align: center; }
.yx-cart-list { margin: 0; padding: 0; list-style: none; }
.yx-cart-item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: .55rem; padding: .95rem 0; border-bottom: 1px solid #f0efe9; }
.yx-cart-item-name { margin: 0 0 .2rem; color: #1e241f; font-size: .9rem; font-weight: 700; }
.yx-cart-item-price { margin: 0; color: #8b9088; font-size: .75rem; }
.yx-cart-item-controls { display: flex; align-items: center; gap: .35rem; }
.yx-qty-btn { display: grid; width: 1.6rem; height: 1.6rem; place-items: center; border: 1px solid #e3e4e0; border-radius: 50%; background: #fff; color: #2c372f; cursor: pointer; font-size: 1rem; line-height: 1; }
.yx-qty-btn:hover { background: #f8f6ef; }
.yx-cart-item-qty { min-width: 1.1rem; text-align: center; font-size: .84rem; }
.yx-cart-item-total { margin: 0; color: #2c372f; font-size: .85rem; font-weight: 800; white-space: nowrap; }
.yx-cart-item-remove { padding: .1rem .3rem; border: 0; background: transparent; color: #b3564a; cursor: pointer; font-size: 1.15rem; line-height: 1; }
.yx-cart-drawer-footer { padding: 1.1rem 1.4rem 1.35rem; border-top: 1px solid #ecebe6; }
.yx-shipping-message { margin: 0 0 .5rem; color: #6d756c; font-size: .78rem; }
.yx-shipping-bar { height: .4rem; margin-bottom: 1rem; overflow: hidden; border-radius: 99px; background: #efe9db; }
.yx-shipping-bar-fill { width: 0; height: 100%; border-radius: inherit; background: #b89a5b; transition: width .3s ease; }
.yx-cart-totals-row { display: flex; justify-content: space-between; margin-bottom: .4rem; color: #4a4d47; font-size: .84rem; }
.yx-cart-totals-row.yx-total-final { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #ecebe6; color: #1e241f; font-size: 1.05rem; font-weight: 800; }
.yx-cart-checkout-btn { width: 100%; margin-top: 1rem; padding: .9rem; border: 0; border-radius: .65rem; background: #2c372f; color: #fff; cursor: pointer; font-size: .85rem; font-weight: 800; }
.yx-cart-checkout-btn:hover { background: #1e241f; }
body.yx-cart-open { overflow: hidden; }
.yx-modal-overlay { position: fixed; z-index: 9999; inset: 0; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(17, 22, 17, .62); backdrop-filter: blur(4px); }
.yx-modal-box { width: min(25rem, 100%); padding: 1.6rem; border-radius: 1rem; background: #fff; box-shadow: 0 1.25rem 2.5rem rgba(0, 0, 0, .22); text-align: center; }
.yx-modal-box h3 { margin: 0 0 .55rem; color: #1e241f; font-size: 1.35rem; }
.yx-modal-box p { margin: 0 0 1rem; color: #596158; font-size: .9rem; line-height: 1.55; }
.yx-modal-box textarea { width: 100%; margin-bottom: 1rem; padding: .75rem; border: 1px solid #dfe1db; border-radius: .6rem; font: inherit; resize: vertical; }
.yx-modal-box textarea:focus { outline: 0; border-color: #b89a5b; box-shadow: 0 0 0 3px rgba(184, 154, 91, .14); }
.yx-modal-actions { display: flex; justify-content: flex-end; gap: .6rem; }
.yx-modal-actions button { padding: .65rem .85rem; border: 0; border-radius: .5rem; cursor: pointer; font-size: .82rem; font-weight: 700; }
.btn-cancel { background: #f0f1ee; color: #4b5563; }
.btn-submit { background: #b89a5b; color: #fff; }
.btn-submit:hover { background: #97793f; }
/* -----------------------------------------------------------------------------
   Adaptación
   ----------------------------------------------------------------------------- */
@media (max-width: 1050px) {
  .products-grid,
  .products-grid[data-products-grid] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .store-product.is-expanded { grid-template-columns: minmax(0, 1fr) minmax(18rem, .9fr); }
}
@media (max-width: 760px) {
  .products-hero { min-height: 0; padding-block: 3.4rem; }
  .products-hero-grid { grid-template-columns: minmax(0, 1fr) auto; gap: 1.25rem; }
  .products-hero h1 { font-size: clamp(2.55rem, 12vw, 4rem); }
  .products-hero p:not(.eyebrow) { margin-top: .8rem; font-size: .93rem; }
  .products-hero-badge { width: 6.65rem; }
  .products-hero::before { top: -58%; right: -42%; }
  .products-hero::after { left: -22%; }
  .lines-section { padding-top: 3.6rem; }
  .lines-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .line-card,
  .line-card:nth-child(1),
  .line-card:nth-child(2) { min-height: 8.6rem; grid-column: auto; }
  .products-section { padding-top: 3.8rem; }
  .products-toolbar { align-items: stretch; flex-direction: column; gap: .4rem; }
  .products-count { padding-left: .1rem; }
  /* En cualquier celular se conservan dos productos por hilera. */
  .products-grid,
  .products-grid[data-products-grid] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .8rem; }
  .store-product { border-radius: .9rem; }
  .store-product-info { padding: .8rem; }
  .product-category-tag { margin-bottom: .5rem !important; padding: .25rem .4rem; font-size: .5rem !important; }
  .store-product-rating { margin-bottom: .45rem; gap: .22rem; }
  .store-product-rating .stars { font-size: .8rem; }
  .rating-count { font-size: .62rem; }
  .store-product-info h2 { margin-bottom: .38rem; font-size: clamp(.98rem, 4.3vw, 1.15rem); }
  .store-product-info > strong { margin-bottom: .3rem; font-size: .83rem; }
  .stock-status { min-height: 1.35rem; margin-bottom: .7rem; font-size: .51rem; }
  .add-to-cart { min-height: 2.35rem; padding: .55rem .58rem .55rem .7rem; border-radius: .55rem; font-size: .55rem; letter-spacing: .035em; }
  .add-to-cart span { font-size: 1rem; }
  .store-product.is-expanded { grid-template-columns: 1fr; grid-column: 1 / -1; overflow: hidden; }
  .store-product.is-expanded .store-product-gallery { min-height: min(92vw, 27rem); border-right: 0; border-bottom: 1px solid #edece7; }
  .store-product.is-expanded .store-product-info { padding: 1.3rem; }
  .store-product.is-expanded .store-product-info h2 { font-size: 1.75rem; }
  .store-product.is-expanded .add-to-cart { max-width: none; font-size: .7rem; }
}
@media (max-width: 390px) {
  .products-hero-grid { grid-template-columns: 1fr; text-align: center; }
  .products-hero-copy { margin-inline: auto; }
  .products-hero p:not(.eyebrow) { margin-inline: auto; }
  .products-hero-badge { display: none; }
  .products-search-bar input { height: 3.15rem; font-size: .84rem; }
  .filter-button { min-height: 2rem; padding-inline: .7rem; font-size: .61rem; }
  .products-grid,
  .products-grid[data-products-grid] { gap: .55rem; }
  .store-product-info { padding: .62rem; }
  .store-product-rating .stars { font-size: .72rem; }
  .rating-count { font-size: .55rem; }
  .store-product-info h2 { font-size: .91rem; }
  .store-product-info > strong { font-size: .76rem; }
  .stock-status { font-size: .46rem; }
  .add-to-cart { justify-content: center; padding-inline: .45rem; font-size: 0; }
  .add-to-cart span { font-size: 1.15rem; }
  .yx-cart-trigger { width: 3.2rem; height: 3.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  .line-card,
  .store-product,
  .filter-button,
  .add-to-cart,
  .yx-cart-trigger,
  .yx-cart-drawer,
  .yx-cart-overlay { transition: none; }
}
/* Adaptación del header y footer compartidos — sin cambios */
@media (max-width: 850px) {
  .shipping-tag { display: none; }
  .benefits-grid { gap: 25px; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .header-inner { grid-template-columns: 1fr auto 1fr; }
  .header-actions a span:last-child { display: none; }
  .header-actions { gap: 10px; }
  .menu-toggle { display: block; }
  .main-nav { display: none; }
  .site-header:has(.menu-toggle[aria-expanded='true']) .main-nav { display: flex; flex-direction: column; gap: 0; padding: 0 16px 16px; }
  .main-nav a { padding: 10px 0; }
  .benefits-grid { grid-template-columns: 1fr; }
  .footer-grid { gap: 32px; grid-template-columns: 1fr; }
  .site-footer { padding-top: 55px; }
}
/* =============================================================================
   AJUSTE FINAL DE MÓVIL
   Este bloque queda al final para que no compita con reglas anteriores.
   ============================================================================= */
@media (max-width: 768px) {
  /* La página ocupa el ancho real del teléfono, sin una franja blanca lateral. */
  html,
  body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
  }
  .lines-section.container,
  .products-section.container {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 16px;
  }
  /* Líneas superiores: 1, 1, 2, 2 y una última a todo lo ancho si sobra. */
  .lines-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .line-card,
  .line-card:nth-child(1),
  .line-card:nth-child(2) {
    grid-column: auto;
    min-height: 0;
    aspect-ratio: 1 / 1;
  }
  .line-card:nth-child(1),
  .line-card:nth-child(2),
  .line-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 9;
  }
  .line-card.has-image {
    background-color: #fff;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  /* Catálogo cerrado: siempre dos productos por fila. */
  .products-grid,
  .products-grid[data-products-grid] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px;
  }
  .store-product,
  .store-product-info {
    min-width: 0;
  }
  .store-product-info h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }
  /*
     Al abrir una tarjeta, la foto va arriba y toda la información debajo.
     Nunca quedan dos columnas comprimidas dentro de un celular.
  */
  .products-grid .store-product.is-expanded,
  .products-grid[data-products-grid] .store-product.is-expanded {
    display: flex !important;
    grid-column: 1 / -1;
    grid-template-columns: 1fr !important;
    flex-direction: column;
    width: 100%;
  }
  .products-grid .store-product.is-expanded .store-product-gallery,
  .products-grid[data-products-grid] .store-product.is-expanded .store-product-gallery {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    border-right: 0 !important;
    border-bottom: 1px solid #ecebe6;
  }
  .products-grid .store-product.is-expanded .store-product-info,
  .products-grid[data-products-grid] .store-product.is-expanded .store-product-info {
    width: 100%;
    padding: 20px 16px 18px;
  }
  .store-product.is-expanded .store-product-info h2 {
    display: block;
    font-size: 1.45rem;
    line-height: 1.2;
    -webkit-line-clamp: unset;
  }
  .store-product.is-expanded .add-to-cart {
    width: 100%;
    max-width: none;
  }
}
@media (max-width: 390px) {
  .lines-section.container,
  .products-section.container {
    padding-inline: 10px;
  }
  .lines-grid,
  .products-grid,
  .products-grid[data-products-grid] {
    gap: 8px;
  }
  .products-grid,
  .products-grid[data-products-grid] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
/* =============================================================================
   AJUSTES FINALES SOLICITADOS
   ============================================================================= */
/* En escritorio, la última línea (Compuestos) tiene el mismo tamaño grande
   que Nutraceuticos y Vitaminas. */
@media (min-width: 769px) {
  .line-card:last-child {
    grid-column: span 2;
    grid-column: 2 / 4;
    min-height: clamp(14rem, 25vw, 22rem);
  }
}
/* Sección 2: se restaura el hero original de “Productos”. */
.products-hero {
  position: relative;
  display: block;
  width: 100%;
  min-height: 240px;
  padding: 45px 0;
  overflow: hidden;
  background-color: #f9f7f2;
  background-image:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.5) 0%, rgba(246, 241, 230, 0.85) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='242.487' viewBox='0 0 140 242.487'%3E%3Cdefs%3E%3ClinearGradient id='gold' x1='0%25' y1='0%25' x2='100%25' y2='100%25'%3E%3Cstop offset='0%25' stop-color='%23b8882d' stop-opacity='0.65'/%3E%3Cstop offset='50%25' stop-color='%23fae19c' stop-opacity='0.85'/%3E%3Cstop offset='100%25' stop-color='%23c59a3f' stop-opacity='0.65'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='none' stroke='url(%23gold)' stroke-width='1.8'%3E%3Ccircle cx='-70' cy='-121.243' r='140'/%3E%3Ccircle cx='70' cy='-121.243' r='140'/%3E%3Ccircle cx='210' cy='-121.243' r='140'/%3E%3Ccircle cx='-140' cy='0' r='140'/%3E%3Ccircle cx='0' cy='0' r='140'/%3E%3Ccircle cx='140' cy='0' r='140'/%3E%3Ccircle cx='280' cy='0' r='140'/%3E%3Ccircle cx='-70' cy='121.243' r='140'/%3E%3Ccircle cx='70' cy='121.243' r='140'/%3E%3Ccircle cx='210' cy='121.243' r='140'/%3E%3Ccircle cx='-140' cy='242.487' r='140'/%3E%3Ccircle cx='0' cy='242.487' r='140'/%3E%3Ccircle cx='140' cy='242.487' r='140'/%3E%3Ccircle cx='280' cy='242.487' r='140'/%3E%3Ccircle cx='-70' cy='363.73' r='140'/%3E%3Ccircle cx='70' cy='363.73' r='140'/%3E%3Ccircle cx='210' cy='363.73' r='140'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: no-repeat, repeat;
  background-position: center center, center center;
  background-size: cover, 140px 242.487px;
}
.products-hero::before,
.products-hero::after { content: none; }
.products-hero-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 30px;
  position: relative;
  z-index: 2;
}
.products-hero-copy { max-width: 620px; }
.products-hero h1 {
  margin-bottom: 14px;
  color: #1e241f;
  font-family: var(--serif, 'Playfair Display', serif);
  font-size: clamp(2.8rem, 4.8vw, 4.8rem);
  letter-spacing: normal;
  line-height: 1.1;
  text-shadow: 0 1px 3px rgba(255, 255, 255, 0.95);
}
.products-hero p:not(.eyebrow) {
  max-width: none;
  margin: 0;
  color: #3f443e;
  font-size: 1.05rem;
  line-height: 1.6;
}
.products-hero-badge {
  display: flex;
  width: auto;
  aspect-ratio: auto;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.hero-logo-circle { display: block; width: auto; aspect-ratio: auto; background: transparent; }
.hero-logo-img { display: block; width: auto; height: auto; max-width: 200px; max-height: 120px; object-fit: contain; }
.hero-logo-img { display: block; width: auto; height: auto; max-width: 200px; max-height: 200px; object-fit: contain; }
@media (max-width: 700px) {
  .products-hero-grid { grid-template-columns: 1fr; text-align: center; }
  .products-hero-badge { display: flex; margin-top: 20px; }
}
@media (max-width: 500px) {
  .products-hero h1 { font-size: 2.8rem; }
  .products-hero { min-height: 220px; padding: 40px 0; }
}