/* =========================================================
   CIRCULAR ECO-TIENDA — sistema de diseño del rediseño
   Paleta derivada del isotipo real (verde olivo #898C32);
   verde bosque como acento oscuro para botones/CTA/footer.
   ========================================================= */

:root{
  --bg:        #F7F3E9;   /* fondo general, crema cálido */
  --bg-alt:    #EFE7D6;   /* paneles, hero, franjas secundarias */
  --bg-card:   #FFFFFF;   /* tarjetas de producto */
  --ink:       #383A0E;   /* texto principal, verde oscuro (no negro) */
  --ink-soft:  #696A44;   /* texto secundario, etiquetas */
  --line:      #E1D9C4;   /* bordes sutiles */
  --olive:     #898C32;   /* acento de marca (isotipo) */
  --olive-dark:#6E7128;
  --forest:    #494B18;   /* botones, CTA, footer */
  --forest-dark:#2F3010;
  --cream-on-forest: #F3EEDD;
  --danger:    #8A3B2B;

  --font-display: "Gowun Batang", Georgia, "Times New Roman", serif; /* acento, uso puntual */
  --font-body: "Geist", "Helvetica Neue", Arial, sans-serif;

  --radius: 2px;
  --shadow-card: 0 1px 2px rgba(42,42,32,0.06), 0 6px 20px rgba(42,42,32,0.05);
  --maxw: 1280px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust:100%; background:var(--bg); }
body{
  margin:0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ list-style:none; margin:0; padding:0; }
.wrap{ max-width: var(--maxw); margin:0 auto; padding: 0 32px; }
@media (max-width: 720px){ .wrap{ padding: 0 20px; } }

h1,h2,h3{ font-family: var(--font-body); font-weight:700; margin:0; text-wrap: balance; }
.serif-accent{ font-family: var(--font-display); font-weight:700; }
.eyebrow{
  font-family: var(--font-body); font-weight:600; font-size:11px;
  letter-spacing:.14em; text-transform:uppercase; color: var(--olive-dark);
}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 13px 26px; border-radius: var(--radius); border:1px solid transparent;
  font-weight:600; font-size:14px; letter-spacing:.01em; transition: background .15s, color .15s, border-color .15s;
}
.btn-forest{ background: var(--forest); color: var(--cream-on-forest); }
.btn-forest:hover{ background: var(--forest-dark); }
.btn-olive{ background: var(--olive); color: var(--cream-on-forest); }
.btn-olive:hover{ background: var(--olive-dark); }
.btn-outline{ background:transparent; border-color: var(--ink); color: var(--ink); }
.btn-outline:hover{ background: var(--ink); color: var(--bg); }
.btn-sm{ padding: 9px 16px; font-size: 13px; }

/* ---------- Header ---------- */
.site-header{
  position: sticky; top:0; z-index: 40;
  background: var(--bg); border-bottom: 1px solid var(--line);
}

.site-header > .wrap{ position:relative; display:flex; align-items:center; gap:28px; height:120px; }
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ height:56px; width:auto; }
.brand-word{ font-family: var(--font-body); font-weight:800; letter-spacing:.06em; font-size:19px; }
.brand-sub{ display:block; font-size:9px; letter-spacing:.18em; color: var(--ink-soft); font-weight:600; }

/* Barra de categorías, debajo de la línea del logo */
.subnav{ background:#F0EDDC; }
.subnav .wrap{ display:flex; align-items:center; min-height:46px; padding-top:4px; padding-bottom:4px; }

.mainnav{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; row-gap:6px; column-gap:26px; width:100%; }
.mainnav > li{ position:relative; display:flex; align-items:center; }
.mainnav > li > a, .mainnav > li > button.navtop{
  background:none; border:none; font-size:13.5px; font-weight:500; letter-spacing:.01em; color: var(--ink-soft);
  padding: 8px 2px; display:flex; align-items:center; gap:6px; white-space:nowrap;
}
.mainnav > li > a.icon-link{ padding: 8px 2px; color: var(--ink-soft); }
.mainnav > li > a.icon-link:hover{ color: var(--olive-dark); }
.mainnav > li > button.navtop svg{ transition: transform .15s; }
.mainnav > li.has-mega:hover > button.navtop svg,
.mainnav > li.has-mega.open > button.navtop svg{ transform: rotate(180deg); }
.mainnav > li > a:hover, .mainnav > li > button.navtop:hover,
.mainnav > li.has-mega.open > button.navtop{ color: var(--olive-dark); }

.mega{
  position:absolute; top:100%; left:0; transform:none;
  background: var(--bg-card); border:1px solid var(--line); box-shadow: var(--shadow-card);
  padding: 20px 22px; display:none; gap:30px; min-width:320px; max-width: calc(100vw - 64px);
}
.mainnav > li.has-mega:hover .mega,
.mainnav > li.has-mega.open .mega{ display:flex; }
.mega-col h4{
  font-family: var(--font-body); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color: var(--olive-dark); margin: 0 0 9px; font-weight:700;
}
.mega-col ul{ display:flex; flex-direction:column; gap:7px; }
.mega-col a{ font-size:14px; color: var(--ink); }
.mega-col a:hover{ color: var(--olive-dark); text-decoration: underline; text-underline-offset:3px; }
/* Escritorio: menú más ancho, cada categoría en una sola línea y una
   separación clara entre Mujer y Hombre */
@media (min-width: 901px){
  .mega{ width:max-content; padding:22px 30px; gap:0; }
  .mega-col{ padding:0 40px; }
  .mega-col:first-child{ padding-left:0; }
  .mega-col:last-child{ padding-right:0; }
  .mega-col + .mega-col{ border-left:1px solid var(--line); }
  .mega-col a{ white-space:nowrap; }
}

.head-icons{ display:flex; align-items:center; gap:18px; margin-left:auto; }
.head-icons button{ background:none; border:none; color: var(--ink); position:relative; }
.nav-toggle{ display:none; background:none; border:none; }

.search-wrap{ position:relative; display:flex; align-items:center; }
.search-form{
  position:absolute; top:50%; right:calc(100% + 10px); transform:translateY(-50%);
  display:flex; justify-content:flex-end; align-items:center;
  width:0; overflow:hidden; opacity:0; pointer-events:none;
  transition: width .3s cubic-bezier(.4,0,.2,1), opacity .2s ease;
  z-index:50;
}
.search-form.is-open{ width:260px; max-width:calc(100vw - 90px); opacity:1; pointer-events:auto; }
.search-form input{
  width:260px; max-width:calc(100vw - 90px); flex:none; border:none; border-radius:999px;
  background: var(--bg-card); box-shadow: var(--shadow-card); padding:10px 18px;
  font-family:inherit; font-size:13.5px; color: var(--ink);
}
.search-form input:focus{ outline:none; box-shadow: inset 0 0 0 2px var(--olive-dark); }
/* Celular: el buscador se abre debajo de la lupa, ancho y alineado al borde derecho */
@media (max-width: 560px){
  .search-form{
    top:calc(100% + 12px); right:-42px; transform:translateY(-6px);
    width:min(340px, calc(100vw - 32px)); transition: opacity .2s ease, transform .2s ease;
  }
  .search-form.is-open{ width:min(340px, calc(100vw - 32px)); max-width:none; transform:none; }
  .search-form input{ width:100%; max-width:none; font-size:16px; padding:12px 18px; }
}

.cart-btn-wrap{ position:relative; }
.cart-btn{ position:relative; display:flex; color: var(--ink); }
.cart-count{
  position:absolute; top:-7px; right:-9px; min-width:16px; height:16px; padding:0 3px;
  background: var(--olive-dark); color: var(--cream-on-forest); border-radius:999px;
  font-size:10px; font-weight:700; line-height:16px; text-align:center;
}

/* Panel del carrito: bandeja completa anclada a la derecha, con fondo oscuro detrás */
.cart-backdrop{ position:fixed; inset:0; background: rgba(41,34,17,.42); z-index:70; }

.cart-panel{
  position:fixed; top:0; right:0; height:100vh; height:100dvh; width:420px; max-width:92vw;
  background: var(--bg); z-index:80; box-shadow: -10px 0 32px rgba(42,42,32,.2);
  display:flex; flex-direction:column; overflow:hidden;
}
.cart-panel[hidden]{ display:none; }
.cart-panel-head{
  flex:none; display:flex; align-items:center; justify-content:space-between;
  padding:22px 24px; border-bottom:1px solid rgba(41,34,17,.14);
}
.cart-panel-head h3{ font-size:19px; font-weight:600; margin:0; }
.cart-panel-close{
  background:none; border:none; font-size:26px; line-height:1; color: var(--ink-soft); padding:2px 4px;
}
.cart-panel-close:hover{ color: var(--ink); }
.cart-scroll{ flex:1; overflow-y:auto; padding:0 24px; }
.cart-panel .cart-item{ padding:16px 0; gap:12px; }
.cart-panel .cart-item img{ width:52px; height:65px; }
.cart-panel .cart-empty{ flex:1; padding:0 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.cart-footer{
  flex:none; padding:14px 24px 18px; border-top:1px solid rgba(41,34,17,.14); background: var(--bg-alt);
}
.cart-footer .cart-delivery{ margin-top:0; }
.cart-footer .cart-summary{ margin-top:0; padding-top:0; border-top:0; }
.cart-footer .cart-summary-actions .btn{ min-width:0; }
.cart-add-more{
  display:block; text-align:center; font-size:12.5px; color: var(--ink-soft);
  text-decoration:underline; text-underline-offset:3px; margin:10px 0 2px;
}
.cart-add-more:hover{ color: var(--ink); }
.cart-wa-btn{ width:100%; justify-content:center; margin-top:6px; }
@media (max-width: 480px){ .cart-panel{ width:100vw; max-width:100vw; } }

/* Botón "+" de agregar rápido sobre la miniatura de la tarjeta de producto */
.addbtn{
  position:absolute; right:8px; bottom:8px; width:30px; height:30px; border-radius:999px;
  background: var(--bg-card); color: var(--ink); border:1px solid var(--line);
  font-size:18px; line-height:1; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 1px 4px rgba(0,0,0,.12); transition: background .15s, color .15s, transform .15s;
}
.addbtn:hover{ background: var(--olive-dark); color: var(--cream-on-forest); border-color: var(--olive-dark); }
.addbtn.added{
  background: var(--olive-dark); color: var(--cream-on-forest); border-color: var(--olive-dark);
  animation: addbtnPop .4s ease;
}
@keyframes addbtnPop{
  0%{ transform: scale(1); }
  40%{ transform: scale(1.35); }
  100%{ transform: scale(1.08); }
}

/* Botón "Agregar al carrito" del producto: dos estados via CSS, sin JS de texto */
.pdp-actions .btn-label-added{ display:none; }
.pdp-actions button[data-add-cart].added .btn-label{ display:none; }
.pdp-actions button[data-add-cart].added .btn-label-added{ display:inline; }

@media (max-width: 900px){
  .subnav{
    display:none; position:absolute; top:100%; left:0; right:0; z-index:45;
    background: var(--bg); border-top:1px solid rgba(41,34,17,.14);
    box-shadow: var(--shadow-card); max-height: calc(100vh - 100px); overflow-y:auto;
  }
  .site-header.mobile-nav-open .subnav{ display:block; }
  .nav-toggle{ display:block; }
  .subnav .wrap{ display:block; padding-top:10px; padding-bottom:14px; }
  .mainnav{ flex-direction:column; align-items:stretch; row-gap:0; }
  .mainnav > li{ display:block; border-bottom:1px solid rgba(41,34,17,.1); }
  .mainnav > li > a, .mainnav > li > button.navtop{ width:100%; justify-content:space-between; padding:13px 2px; }
  .mega{ position:static; transform:none; width:100%; padding:6px 2px 16px 14px; box-shadow:none; border:none; }
}

/* ---------- Hero ---------- */
.hero{
  /* sin franjas de color: la imagen va pegada al menú y a la sección siguiente */
  background: none; border-bottom: none;
  padding: 0;
}
/* Ancho de pantalla completo hasta el límite de --maxw, siempre centrada:
   .hero no tiene padding lateral, así que el 100% ya es el ancho completo
   de la pantalla, y el margin:auto la centra en cuanto llega al tope. */
.hero-media{
  position:relative; width:100%; max-width: var(--maxw); margin:0 auto;
  border-radius:0; overflow:hidden;
  background: var(--bg-card);
}
.hero-media img{ display:block; width:100%; height:auto; }
.hero-copy{
  position:absolute; left:44px; top:50%; transform: translateY(-50%); z-index:2; max-width:420px;
}
.hero-copy .eyebrow{
  margin-bottom:10px; color: var(--olive-dark); font-size:12px;
}
.hero-copy h1{
  font-size: 34px; line-height:1.1;
}
.hero-copy h1 em{
  font-style:normal; font-weight:700;
  color: var(--olive-dark);
}
.hero-copy p{
  margin: 14px 0 34px; color: var(--ink-soft); font-size:15px; max-width:38ch;
}
.hero-copy .btn{ padding:14px 28px; font-size:14.5px; }

@media (max-width: 860px){
  .hero-copy{ left:24px; max-width:280px; }
  .hero-copy h1{ font-size:24px; }
  .hero-copy p{ font-size:13px; margin:10px 0 22px; }
  .hero-copy .btn{ padding:12px 22px; font-size:13px; }
}
@media (max-width: 560px){
  .hero-copy{ left:18px; max-width:210px; }
  .hero-copy h1{ font-size:19px; }
  .hero-copy p{ display:none; }
  /* sin el párrafo, el botón necesita su propio espacio bajo el título */
  .hero-copy .btn{ padding:9px 16px; font-size:12.5px; margin-top:16px; }
  /* Celular: la imagen ocupa todo el ancho y mucho más alto (recortada hacia
     el lado de los productos) y el texto pasa debajo, sin tapar la foto. */
  .hero-media{ background: var(--bg); }
  .hero-media img{ aspect-ratio: 4 / 5; height:auto; object-fit:cover; object-position: 98% center; }
  .hero-copy{ position:static; transform:none; max-width:none; padding:16px 18px 6px; }
  .hero-copy h1{ font-size:23px; }
  .hero-link{ font-size:14px; }
}

/* ---------- Secciones home ---------- */
.section{ padding: 64px 0; }
.section-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  margin-bottom: 30px; border-bottom:1px solid var(--line); padding-bottom:18px;
}
.section-head h2{ font-size:24px; font-weight:500; text-transform:uppercase; letter-spacing:.03em; }
.section-head .see-all{ font-size:13px; font-weight:600; color: var(--olive-dark); white-space:nowrap; }

.see-more-wrap{ display:flex; justify-content:center; margin-top:36px; }

/* Categorías del home: una fila que se desliza (dedo, rueda, arrastre con
   el mouse o flechas), con el nombre dentro de la imagen. */
.section-cats{ padding-top:28px; padding-bottom:44px; }
.section-head-plain{ border-bottom:none; padding-bottom:0; margin-bottom:16px; }
.cat-scroller{ position:relative; }
.cat-row{
  display:flex; gap:8px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x proximity; scrollbar-width:none; -webkit-overflow-scrolling:touch;
  cursor:grab; user-select:none; -webkit-user-select:none;
}
.cat-row::-webkit-scrollbar{ display:none; }
.cat-row.dragging{ cursor:grabbing; scroll-snap-type:none; }
.cat-row.dragging .cat-tile{ pointer-events:none; }
.cat-tile{ flex:0 0 160px; scroll-snap-align:start; display:block; -webkit-user-drag:none; }
.cat-tile .thumb{
  position:relative; aspect-ratio:4/5; background: var(--bg-card); border:1px solid var(--line);
  overflow:hidden; line-height:0;
}
.cat-tile img{ display:block; width:100%; height:100%; object-fit:cover; -webkit-user-drag:none; user-select:none; pointer-events:none; transition: transform .3s; }
.cat-tile:hover img{ transform: scale(1.04); }
.cat-name{
  position:absolute; left:0; right:0; bottom:0; padding:28px 10px 11px; line-height:1.2;
  background:linear-gradient(to top, rgba(30,30,14,.72), rgba(30,30,14,0));
  color:#fff; text-align:center; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.06em;
}
.cat-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:38px; height:38px; border-radius:999px;
  background: rgba(255,255,255,.92); border:1px solid var(--line); color: var(--ink);
  display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow: var(--shadow-card);
}
.cat-arrow[hidden]{ display:none; }
.cat-arrow-prev{ left:-12px; }
.cat-arrow-next{ right:-12px; }
@media (hover: none){ .cat-arrow{ display:none; } }
@media (max-width: 720px){
  .cat-tile{ flex-basis:33vw; max-width:150px; }
  .section-cats{ padding-top:20px; padding-bottom:34px; }
}

/* Grilla de productos: caja blanca continua (foto + info), todas las fotos
   en proporción vertical uniforme, líneas finas entre tarjetas. */
/* Las líneas divisorias van en cada card (box-shadow interno), no en el
   fondo del contenedor: así una celda vacía al final de una fila incompleta
   no queda pintada — se ve el fondo de la página, como corresponde. */
/* Cada tarjeta lleva su propio borde completo (no box-shadow): así el
   rectángulo siempre queda entero alrededor del producto, sin cortes, sin
   depender de bordes del contenedor que se pierden en filas incompletas. */
.prod-grid{ display:grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap:0; align-items:stretch; }
.catalog-body > *{ min-width:0; }
.prod-card{ position:relative; display:flex; flex-direction:column; background: var(--bg-card); border:1px solid rgba(137,140,50,.28); }

.prod-card .photo{ background: var(--bg-card); padding: 16px 16px 0; flex:none; }
.prod-card .thumb{
  aspect-ratio: 4/5; background: var(--bg-card);
  overflow:hidden; position:relative;
}
.prod-card .thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .3s; }
.prod-card:hover .thumb img{ transform: scale(1.035); }

/* El nombre ocupa el espacio que sobre (así cards con nombres cortos o
   largos en la misma fila terminan con el mismo alto), y precio/talla/marca
   quedan siempre a la misma altura, pegados abajo de la tarjeta. */
.prod-card .info{ background: var(--bg-card); padding: 22px 16px 18px; flex:1; display:flex; flex-direction:column; }
.prod-card .name{ flex:1 0 auto; font-size:13.5px; font-weight:400; margin:0 0 2px; color: var(--ink); line-height:1.3; }
.prod-card .price{ font-size:13.5px; font-weight:500; margin:0 0 4px; color: var(--ink); }
.prod-card .price .old{ font-weight:400; color: var(--ink-soft); text-decoration:line-through; margin-right:6px; font-size:12px; }
.prod-card .meta{ font-size:11px; color: var(--ink-soft); opacity:.8; line-height:1.4; margin:0; }
.prod-card .meta-brand{ font-size:11px; color: var(--ink-soft); opacity:.8; line-height:1.4; margin:0; }

@media (max-width: 900px){ .prod-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); } }

/* ---------- Banda de marca (verde bosque) ---------- */
/* La foto va sin márgenes, del mismo alto que la sección completa; el
   color de fondo queda solo del lado del texto. */
.brandband{
  background: var(--forest); color: var(--cream-on-forest);
}
.brandband .wrap{
  display:grid; grid-template-columns: 1fr 1fr; gap:0; align-items:stretch; padding:0;
}
.brandband .eyebrow{ color:#C7CC8E; }
.brandband h2{ font-size:34px; color:#fff; margin:14px 0 20px; }
.brandband .btn-outline{ border-color: rgba(243,238,221,.5); color: var(--cream-on-forest); }
.brandband .btn-outline:hover{ background: var(--cream-on-forest); color: var(--forest-dark); }
.brandband-photo{ overflow:hidden; height:100%; }
.brandband-photo img{ display:block; width:100%; height:100%; object-fit:cover; }
.brandband-text{ padding: 48px 48px 48px 44px; }
@media (max-width: 860px){
  .brandband .wrap{ grid-template-columns:1fr; }
  .brandband-photo{ aspect-ratio: 4/3; height:auto; }
  .brandband-photo img{ height:100%; }
  .brandband-text{ padding:28px 20px; }
}

.values{ display:grid; grid-template-columns: repeat(4,1fr); gap:26px; padding-top:46px; padding-bottom:46px; }
.value-item{ display:flex; gap:12px; align-items:flex-start; }
.value-item .ico{ color: var(--olive-dark); flex:none; }
.value-item b{ display:block; font-size:14px; }
.value-item span{ font-size:13px; color: var(--ink-soft); }
@media (max-width: 860px){ .values{ grid-template-columns: repeat(2,1fr); } }

/* ---------- Footer ---------- */
.site-footer{ border-top:1px solid var(--line); padding-top: 40px; padding-bottom: 40px; }
.site-footer .wrap{ display:flex; flex-direction:column; gap:22px; }
.footer-top{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-footer .brand{ margin:0; }
.site-footer .brand-word{ font-size:16px; }
.footer-links{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px; font-size:13px; color: var(--ink-soft); border-top:1px solid rgba(41,34,17,.14); padding-top:22px; }
.footer-links a:hover{ color: var(--ink); }
.footer-social{ display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.footer-social .icons{ display:flex; gap:14px; }
.footer-social .icons a{ color: var(--ink-soft); }
.footer-social .icons a:hover{ color: var(--olive-dark); }
.footer-tag{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-soft); text-align:right; }

@media (max-width: 720px){
  .footer-top{ flex-direction:column; align-items:center; text-align:center; }
  .footer-social{ align-items:center; }
  .footer-links{ justify-content:center; text-align:center; }
}

/* ---------- Catálogo ---------- */
.catalog-head{ padding-top: 32px; padding-bottom: 30px; border-bottom:1px solid var(--line); }
.catalog-head h1{ font-size:30px; font-weight:500; text-transform:uppercase; letter-spacing:.03em; margin:14px 0 22px; }
.catalog-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-top:0; }
.catalog-count{ font-size:13px; color: var(--ink-soft); }
.sortbox{ font-size:13px; display:flex; align-items:center; gap:8px; color: var(--ink-soft); }
.sortbox select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  border:none; border-bottom:1px solid var(--ink); background:transparent;
  padding:2px 18px 4px 0; font-family:inherit; font-size:13px; color: var(--ink); cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23383A0E' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right center; background-size:12px;
  border-radius:0;
}

.catalog-body{ display:grid; grid-template-columns: 240px minmax(0,1fr); gap:36px; padding-top: 28px; padding-bottom: 70px; align-items:start; }
/* Sticky, pero con su propio scroll: si los acordeones abiertos la hacen más
   alta que la pantalla, se desplaza sola en vez de "atrapar" el scroll de
   toda la página hasta que aparezca el final de los productos. */
.filters{
  position:sticky; top:138px; display:flex; flex-direction:column; gap:0;
  max-height: calc(100vh - 154px); overflow-y:auto;
}
.filter-group{ border-bottom:1px solid var(--line); padding: 16px 0; }
.filter-group summary{
  list-style:none; display:flex; justify-content:space-between; align-items:center;
  font-size:11.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color: var(--ink); cursor:pointer;
}
.filter-group summary::-webkit-details-marker{ display:none; }
.filter-group[open] summary{ margin-bottom:12px; }
/* Marca que avisa que el acordeón tiene un filtro activo, aunque esté plegado */
.filter-group summary::after{
  content:''; width:7px; height:7px; border-radius:50%; flex:none; margin-left:10px;
  background: var(--olive-dark); opacity:0; transform: scale(.4);
  transition: opacity .15s, transform .15s;
}
.filter-group.has-active summary::after{ opacity:1; transform:scale(1); }
.filter-opt{ display:flex; align-items:center; gap:9px; font-size:13.5px; padding:5px 0; color: var(--ink-soft); }
.filter-opt input{ accent-color: var(--olive); }
.filter-opt:hover{ color: var(--ink); }
.filter-opt .n{ margin-left:auto; font-size:11.5px; color: var(--ink-soft); }
.filter-opt.is-zero{ opacity:.4; }

.filters-panel{ display:flex; flex-direction:column; gap:0; }
button.filters-toggle-btn{ display:none; }

.active-filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.active-filters[hidden]{ display:none; }
.active-filter-chip{
  display:inline-flex; align-items:center; gap:7px; padding:6px 10px 6px 13px;
  border:1px solid var(--line); border-radius:999px; background: var(--bg-card);
  font-family:inherit; font-size:12.5px; color: var(--ink); cursor:pointer;
}
.active-filter-chip:hover{ border-color: var(--ink); }
.active-filter-chip .x{ font-size:14px; line-height:1; color: var(--ink-soft); }

.filter-opt.cat-parent .chev-btn{
  background:none; border:none; padding:2px; margin-left:2px; color: var(--ink-soft);
  display:flex; align-items:center; flex:none;
}
.filter-opt.cat-parent .chev{ transition: transform .15s; }
.filter-opt.cat-parent.open .chev{ transform: rotate(180deg); }
.subcat-list{ display:none; }
.filter-opt.cat-parent.open + .subcat-list{ display:block; }

.pagination{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin-top:44px; }
.pagination .dots{ width:auto; cursor:default; color: var(--ink-soft); }
@media (max-width: 560px){
  .pagination{ gap:4px; }
  .pagination .pn-txt{ display:none; }
  .pagination button.prevnext{ padding:0 10px; }
}
.pagination a, .pagination span, .pagination button{
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  font-size:13px; border-radius:50%; background:none; border:none; font-family:inherit;
  color: var(--ink); cursor:pointer;
}
.pagination button.prevnext{ width:auto; padding:0 14px; border-radius:20px; gap:4px; }
.pagination button:disabled{ opacity:.35; cursor:default; }
.pagination .current{ background: var(--forest); color: var(--cream-on-forest); font-weight:700; }
.pagination a:hover, .pagination button:not(:disabled):not(.current):hover{ background: var(--bg-alt); }

@media (max-width: 900px){
  .catalog-body{ grid-template-columns: minmax(0,1fr); }
  .filters{ position:static; }
  button.filters-toggle-btn{
    display:inline-flex; width:100%; margin-bottom:14px;
  }
  .filters-toggle-btn .chev{ margin-left:auto; transition: transform .15s; }
  .filters-toggle-btn[aria-expanded="true"] .chev{ transform: rotate(180deg); }
  .filters-panel{ display:none; }
  .filters-panel.is-open{ display:flex; }
}

.back-to-top{
  position:fixed; right:24px; bottom:24px; width:46px; height:46px; border-radius:50%;
  background: var(--forest); color: var(--cream-on-forest); border:none;
  display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-card);
  opacity:0; visibility:hidden; transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease, background .15s;
  z-index: 30;
}
.back-to-top.visible{ opacity:1; visibility:visible; transform:none; }
.back-to-top:hover{ background: var(--forest-dark); }

/* ---------- Ficha de producto ---------- */
.pdp{ padding-top: 40px; padding-bottom: 70px; }
.pdp-crumb{ font-size:12.5px; color: var(--ink-soft); margin-bottom:22px; }
.pdp-crumb a:hover{ text-decoration:underline; }
.pdp-grid{ display:grid; grid-template-columns: minmax(0,1fr) 440px; gap:56px; align-items:start; }
/* Ninguna columna puede ensancharse más que la pantalla (ej. muchas fotos) */
.pdp-grid > *, .pdp-tabs > *{ min-width:0; }

.pdp-gallery{ display:flex; flex-direction:column-reverse; gap:14px; }
.pdp-thumbs{
  display:flex; flex-direction:row; gap:10px; width:100%; max-width:100%;
  overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; padding-bottom:4px;
}
.pdp-thumbs button{
  border:1px solid var(--line); padding:0; background: var(--bg-card); width:78px; aspect-ratio:1;
  overflow:hidden; flex:none;
}
.pdp-thumbs button.active{ border-color: var(--forest); }
.pdp-main{
  aspect-ratio: 4/5; background: var(--bg-card); border:1px solid var(--line);
  overflow:hidden; position:relative;
}
.pdp-main img{ width:100%; height:100%; object-fit:cover; }
.pdp-count{
  position:absolute; right:12px; bottom:12px; background: rgba(42,42,32,.75); color:#fff;
  font-size:11px; padding:4px 9px; border-radius: 20px;
}
.pdp-arrow{
  position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:999px;
  background: rgba(255,255,255,.85); border:1px solid var(--line); color: var(--ink);
  display:flex; align-items:center; justify-content:center; transition: background .15s;
}
.pdp-arrow:hover{ background: #fff; }
.pdp-arrow-prev{ left:12px; }
.pdp-arrow-next{ right:12px; }

.pdp-info .cat-label{ font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color: var(--ink-soft); font-weight:600; }
.pdp-info h1{
  font-family: var(--font-body); font-weight:500; font-size:22px; letter-spacing:-.01em;
  margin: 7px 0 6px; text-transform: none;
}
.pdp-info .price{ font-size:19px; font-weight:500; margin-bottom:8px; font-family: var(--font-body); letter-spacing:.01em; }
.pdp-info .subline{ font-size:12.5px; color: var(--ink-soft); margin-bottom:4px; letter-spacing:.02em; }
.pdp-info .sku-line{ font-size:12px; color: var(--ink-soft); margin-bottom:16px; letter-spacing:.06em; opacity:.85; }
.pdp-info .price .old{ font-size:14px; font-weight:500; color: var(--ink-soft); text-decoration:line-through; margin-right:10px; }
.pdp-actions{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.pdp-actions .btn{ width:100%; font-size:13px; padding:12px 24px; }

.pdp-badges{ display:flex; gap:18px; padding:14px 0; border-top:1px solid var(--line); }
.pdp-badges .b{ flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; font-size:10.5px; letter-spacing:.01em; color: var(--ink-soft); }
.pdp-badges .b svg{ color: var(--olive-dark); width:17px; height:17px; }

/* Atributos: etiqueta y valor juntos en la misma línea, alineados a la
   izquierda, con una línea suave entre filas para no perderse al leer. */
.spec-list{ margin:12px 0 0; border-top:1px solid var(--line); font-size:14px; line-height:1.4; }
.spec-list .spec-row{
  display:grid; grid-template-columns: minmax(7.5em, max-content) minmax(0,1fr); column-gap:14px;
  padding:9px 0; border-bottom:1px solid var(--line);
}
.spec-list dt{ color: var(--ink-soft); }
.spec-list dd{ margin:0; font-weight:600; color: var(--ink); overflow-wrap:anywhere; }
@media (max-width: 380px){
  .spec-list .spec-row{ grid-template-columns:1fr; row-gap:2px; }
}
/* Medidas (pestaña): mantiene su formato propio */
.pdp-tabs .content .measures-list{
  display:grid; grid-template-columns: max-content auto; gap:8px 20px;
  max-width:360px; margin-top:18px; padding-top:0; border-top:none;
}
.pdp-tabs .content .measures-list dd{ text-align:left; }

/* Etiquetas de la ficha ("Búsquedas relacionadas") */
.pdp-tags{ margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }
.pdp-tags-title{ font-family: var(--font-body); font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color: var(--ink-soft); margin:0 0 10px; }
.pdp-tags ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.pdp-tags a{
  display:inline-block; padding:5px 12px; border:1px solid var(--line); border-radius:999px;
  font-size:13px; line-height:1.3; color: var(--ink); text-decoration:none; background: var(--bg-card);
}
.pdp-tabs .content .pdp-tags a{ color: var(--ink); text-decoration:none; }
.pdp-tags a:hover{ border-color: var(--olive-dark); color: var(--olive-dark); }

.pdp-tabs{ margin-top:56px; display:grid; grid-template-columns:200px 1fr; gap:40px; }
.pdp-tabs nav{ display:flex; flex-direction:column; gap:2px; }
.pdp-tabs nav a{ padding:11px 0; font-size:14px; border-bottom:1px solid var(--line); }
.pdp-tabs nav a.active{ font-weight:700; border-bottom-color: var(--ink); }
.pdp-tabs .content p{ margin:0 0 16px; color: var(--ink); font-size:14.5px; line-height:1.7; }
.pdp-tabs .content h3{ font-size:16px; margin: 22px 0 10px; }
.pdp-tabs .content a{ color: var(--olive-dark); text-decoration:underline; text-underline-offset:3px; }

@media (max-width: 980px){
  .pdp-grid{ grid-template-columns:minmax(0,1fr); }
  .pdp-tabs{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 560px){
  .pdp-thumbs button{ width:64px; }
}

/* ---------- Páginas de contenido (Nosotros, Envíos, políticas, Contacto) ---------- */
.static-page{ max-width:720px; padding-top:48px; padding-bottom:90px; }
.static-page .pdp-crumb{ margin-bottom:18px; }
.static-page h1{
  font-family: var(--font-body); font-weight:500; font-size:30px; letter-spacing:-.01em;
  margin: 0 0 10px;
}
.static-page .lede{ font-size:15px; color: var(--ink-soft); margin:0 0 36px; line-height:1.6; }
.static-content h2{ font-family: var(--font-body); font-size:17px; font-weight:600; margin: 34px 0 12px; }
.static-content h2:first-child{ margin-top:0; }
.static-content p{ margin:0 0 15px; color: var(--ink); font-size:14.5px; line-height:1.75; }
.static-content ul{ margin:0 0 15px; padding-left:20px; color: var(--ink); font-size:14.5px; line-height:1.75; }
.static-content li{ margin-bottom:6px; }
.static-content a{ color: var(--olive-dark); text-decoration:underline; text-underline-offset:3px; }
.static-content .fine{ font-size:12.5px; color: var(--ink-soft); margin-top:36px; padding-top:18px; border-top:1px solid var(--line); }

.contact-cards{ display:grid; grid-template-columns: repeat(2,1fr); gap:16px; margin: 28px 0 8px; }
.contact-card{
  display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:22px 20px;
  border:1px solid var(--line); background: var(--bg-card); font-size:13.5px; color: var(--ink-soft);
}
.contact-card svg{ color: var(--olive-dark); }
.contact-card strong{ color: var(--ink); font-size:14.5px; font-weight:600; }
.contact-card a{ color: var(--olive-dark); text-decoration:underline; text-underline-offset:3px; }
@media (max-width: 480px){ .contact-cards{ grid-template-columns:1fr; } }
.tabla-envios table{ width:100%; border-collapse:collapse; font-size:14px; margin: 4px 0 14px; }
.tabla-envios th, .tabla-envios td{ text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
.tabla-envios th{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color: var(--ink-soft); font-weight:600; }
.tabla-envios td:last-child{ white-space:nowrap; font-weight:600; text-align:right; }
.tabla-envios th:last-child{ text-align:right; }
.fine-inline{ font-size:12px; color: var(--ink-soft); }
#tablaBx td:not(:first-child), #tablaBx th:not(:first-child){ text-align:right; white-space:nowrap; }
#tablaBx td:last-child{ font-weight:400; }
.nota-gratis{ color: var(--olive-dark); font-weight:500; }
.envio-plazo{ margin:0; font-size:13.5px; color: var(--olive-dark); font-weight:600; }
.contact-wa{ display:inline-flex; align-items:center; gap:12px; margin: 4px 0 8px; text-decoration:none !important; color: var(--ink) !important; font-size:16px; }
.contact-wa svg{ flex:none; color: var(--olive); transition: transform .15s; }
.contact-wa:hover svg{ transform: scale(1.08); }
.contact-wa strong{ color: var(--olive-dark); font-weight:600; }
.contact-form{ display:flex; flex-direction:column; gap:14px; margin: 0 0 36px; }
.contact-form label{ display:flex; flex-direction:column; gap:6px; font-size:13.5px; font-weight:600; color: var(--ink); }
.contact-form input, .contact-form textarea{
  font: inherit; font-size:15px; font-weight:400; color: var(--ink); background: var(--bg-card);
  border:1px solid var(--line); border-radius: var(--radius); padding:11px 12px; width:100%;
}
.contact-form textarea{ resize:vertical; min-height:130px; }
.contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color: var(--olive); box-shadow: 0 0 0 3px rgba(137,140,50,.18); }
.contact-form .btn{ align-self:flex-start; }
.contact-form .btn:disabled{ opacity:.6; cursor:default; }
.contact-form .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-msg{ font-size:14px; padding:10px 12px; border-radius: var(--radius); }
.form-msg.ok{ background: rgba(137,140,50,.14); color: var(--olive-dark); }
.form-msg.err{ background: rgba(138,59,43,.1); color: var(--danger); }

/* ---------- Carrito (canasta de selección → WhatsApp) ---------- */
.cart-envio .envio-campos{ margin:4px 0 12px 26px; display:grid; gap:10px; max-width:420px; }
.cart-envio .envio-campos[hidden]{ display:none; }
.cart-envio .envio-campos label{ display:flex; flex-direction:column; gap:5px; font-size:13px; font-weight:600; color: var(--ink); }
.cart-envio .envio-campos input, .cart-envio .envio-campos select{
  font: inherit; font-size:15px; font-weight:400; color: var(--ink); background: var(--bg-card);
  border:1px solid var(--line); border-radius: var(--radius); padding:10px 11px; width:100%;
}
.cart-envio .envio-campos input:focus, .cart-envio .envio-campos select:focus{ outline:none; border-color: var(--olive); box-shadow:0 0 0 3px rgba(137,140,50,.18); }
.cart-envio .envio-campos .btn{ justify-self:start; }
.envio-dir{ position:relative; }
.envio-link{ background:none; border:none; padding:0; font: inherit; font-size:13px; color: var(--olive-dark); text-decoration:underline; text-underline-offset:3px; cursor:pointer; justify-self:start; text-align:left; }
.envio-link[hidden]{ display:none; }
.envio-pin{ font-size:13.5px; color: var(--ink); }
.envio-pin[hidden]{ display:none; }
.envio-mapa{ display:grid; gap:8px; }
.envio-mapa[hidden]{ display:none; }
.envio-mapa-canvas{ height:300px; border:1px solid var(--line); background: var(--bg-alt); z-index:0; }
.envio-mapa-acciones{ display:flex; gap:8px; flex-wrap:wrap; }
.envio-mapa-acciones .btn:disabled{ opacity:.5; cursor:default; }
.envio-marcador span{ display:block; width:26px; height:26px; border-radius:50% 50% 50% 0; background: var(--olive-dark); border:3px solid #fff; transform: rotate(-45deg); box-shadow:0 2px 6px rgba(0,0,0,.35); }
.envio-sug{ position:absolute; z-index:30; left:0; right:0; top:100%; margin:2px 0 0; padding:4px 0; list-style:none;
  background: var(--bg-card); border:1px solid var(--line); box-shadow: var(--shadow-card); max-height:260px; overflow-y:auto; }
.envio-sug[hidden]{ display:none; }
.envio-sug li{ padding:9px 12px; font-size:14px; cursor:pointer; color: var(--ink); line-height:1.35; }
.envio-sug li:hover, .envio-sug li.is-activa{ background: rgba(137,140,50,.14); }
.envio-sug li small{ color: var(--ink-soft); }
.envio-ayuda{ font-size:12px; color: var(--ink-soft); margin:0; }
.envio-tag{ font-size:11px; font-weight:600; color: var(--ink-soft); letter-spacing:.02em; margin-left:2px; }
.envio-tag.is-precio{ color: var(--olive-dark); font-size:12.5px; }
.envio-resultado .cart-nudge{ margin-top:4px; }
.envio-resultado .cart-nudge span{ font-size:12.5px; color: var(--ink-soft); }
.cart-line{ display:flex; justify-content:space-between; font-size:14px; color: var(--ink-soft); margin-bottom:6px; }
@media (max-width:560px){ .cart-envio .envio-campos{ margin-left:0; } }
.cart-page{ max-width:760px; padding-top:48px; padding-bottom:90px; }
.cart-page .pdp-crumb{ margin-bottom:18px; }
.cart-page h1{ font-family: var(--font-body); font-weight:500; font-size:30px; letter-spacing:-.01em; margin:0 0 10px; }
.cart-page .lede{ font-size:13px; color: var(--ink-soft); margin:0 0 30px; line-height:1.6; }

.cart-empty{ padding:50px 0; text-align:center; color: var(--ink-soft); }
.cart-empty p{ margin:0 0 18px; font-size:15px; }

.cart-list{ display:flex; flex-direction:column; border-top:1px solid rgba(41,34,17,.14); }
.cart-item{
  display:flex; align-items:center; gap:16px; padding:18px 4px; box-shadow: inset 0 -1px 0 rgba(41,34,17,.14);
}
.cart-item img{
  width:64px; height:80px; object-fit:cover; background: var(--bg-card); flex:none;
  border:1px solid rgba(41,34,17,.14);
}
.cart-item-info{ flex:1; min-width:0; }
.cart-item-title{ font-size:13.5px; color: var(--ink); margin-bottom:2px; font-weight:400; }
.cart-item-price{ font-size:13.5px; color: var(--ink); margin-bottom:8px; }
.cart-item-qty{ display:inline-flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:999px; padding:4px 14px; }
.cart-item-qty button{ background:none; border:none; font-size:15px; color: var(--ink); line-height:1; width:16px; }
.cart-item-qty span{ font-size:13.5px; min-width:14px; text-align:center; font-variant-numeric: tabular-nums; }
.cart-item-remove{
  background:none; border:none; color: var(--ink-soft); font-size:20px; line-height:1; padding:6px; flex:none;
}
.cart-item-remove:hover{ color: var(--ink); }

.cart-nudge{
  margin-top:16px; padding:10px 14px; background: rgba(137,140,50,.12); border:1px solid rgba(137,140,50,.3);
  font-size:12.5px; color: var(--olive-dark); line-height:1.5;
}
.cart-nudge-ok{ color: var(--olive-dark); background: rgba(137,140,50,.18); border-color: var(--olive-dark); }

.cart-delivery{ margin-top:16px; }
.cart-delivery-label{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:4px; font-weight:600; }
.cart-radio{
  display:flex; align-items:center; gap:8px; font-size:13.5px; color: var(--ink);
  padding:6px 0; cursor:pointer;
}
.cart-radio input{ accent-color: var(--olive-dark); }
.cart-radio .tag-free{ font-size:10.5px; color: var(--olive-dark); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }

.cart-summary{ margin-top:22px; padding-top:20px; border-top:1px solid rgba(41,34,17,.14); }
.cart-total{ display:flex; justify-content:space-between; align-items:baseline; font-size:15px; margin-bottom:12px; }
.cart-total strong{ font-size:19px; font-weight:600; }
.cart-summary-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.cart-summary-actions .btn{ flex:1; min-width:200px; justify-content:center; }

/* Página completa del carrito: bloques blancos con el borde de las tarjetas del catálogo */
.cart-page{ max-width:1080px; }
.cart-page #cartRoot{ display:grid; grid-template-columns: minmax(0,1fr) 340px; gap:22px; align-items:start; }
.cart-page .cart-empty{ grid-column: 1 / -1; }
.cart-main{ display:grid; gap:18px; min-width:0; }
.cart-side{ position:sticky; top:138px; }
.cart-box{ background: var(--bg-card); border:1px solid rgba(137,140,50,.28); padding:20px 22px; }
.cart-box-head{
  display:flex; align-items:center; gap:8px; margin:0 0 10px;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color: var(--ink-soft);
}
.cart-box-head span{ background: rgba(137,140,50,.16); color: var(--olive-dark); border-radius:999px; padding:1px 8px; font-size:11px; letter-spacing:0; }
.cart-page .cart-list{ border-top:1px solid rgba(137,140,50,.22); }
.cart-page .cart-item{ box-shadow: inset 0 -1px 0 rgba(137,140,50,.22); padding:16px 2px; }
.cart-page .cart-item img{ border-color: rgba(137,140,50,.28); }
.cart-page .cart-nudge{ margin-top:14px; }
.cart-page .cart-delivery{ margin-top:0; }
.cart-page .cart-delivery-label{ font-size:11px; letter-spacing:.1em; margin-bottom:8px; }
.cart-page .cart-envio .envio-campos input, .cart-page .cart-envio .envio-campos select{ background: var(--bg); }
.cart-page .cart-summary{ margin-top:0; padding-top:20px; border-top:1px solid rgba(137,140,50,.28); }
.cart-page .cart-summary .cart-total{ padding-top:12px; margin-top:6px; border-top:1px solid rgba(137,140,50,.22); }
.cart-page .cart-summary-actions .btn{ min-width:0; }
@media (max-width: 900px){
  .cart-page #cartRoot{ grid-template-columns: 1fr; }
  .cart-side{ position:static; }
}
@media (max-width: 560px){
  .cart-box{ padding:16px 14px; }
  .cart-item img{ width:52px; height:65px; }
  .cart-summary-actions .btn{ min-width:100%; }
}

/* ---------- Loader de carga (isotipo girando) ---------- */
.page-loader{
  position:fixed; inset:0; z-index:9999; background: var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition: opacity .2s ease, visibility .2s ease;
}
.page-loader img{ width:42px; height:42px; animation: loader-spin 1s linear infinite; }
.page-loader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
@keyframes loader-spin{ to{ transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .page-loader img{ animation: none; } }

/* ---------- Productos vendidos (visibles 5 días con etiqueta) ---------- */
.sold-badge{
  position:absolute; left:8px; top:8px; z-index:2;
  background: var(--forest); color: var(--cream-on-forest);
  font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 9px; border-radius: var(--radius);
}
.sold-badge-lg{ left:14px; top:14px; font-size:12px; padding:7px 12px; }
.prod-card.is-sold .thumb img{ filter: grayscale(.85); opacity:.6; }
.price-sold{ display:inline-block; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.85em; color: var(--forest); }
.pdp-actions .btn[disabled]{ opacity:.55; cursor:not-allowed; }

/* ---------- Productos reservados (2 días; si no se venden vuelven solos) ---------- */
.reserved-badge{ background: var(--forest); color: var(--cream-on-forest); }
.prod-card.is-reserved .thumb img{ opacity:.75; }
/* En la tarjeta del catálogo la etiqueta va centrada arriba; en la ficha queda a la izquierda */
.prod-card .reserved-badge{ left:50%; transform:translateX(-50%); white-space:nowrap; }
.price-reserved{ display:inline-block; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.85em; color:#B07F00; margin-right:10px; }

/* ---------- Catálogo: sin resultados ---------- */
.catalog-empty{ padding:40px 0; text-align:center; color: var(--ink-soft); }

/* ---------- Categoría "A mil" ---------- */
/* Va en el menú principal; en los filtros queda oculta (solo la usa el link del menú) */
.filter-opt-amil{ display:none !important; }
.mainnav > li > a.nav-amil{
  background:#E0A200; color:#fff; font-weight:800; padding:6px 14px;
  border-radius: var(--radius); text-shadow:0 1px 1px rgba(0,0,0,.12);
}
.mainnav > li > a.nav-amil:hover{ background:#C98E00; color:#fff; }

/* ---------- Compartir búsqueda (al final de los filtros) ---------- */
.share-search{ margin-top:18px; }
.share-search[hidden]{ display:none; }
.share-search-btn{ width:100%; justify-content:center; gap:8px; display:inline-flex; align-items:center; }
.share-search-msg{
  font-size:12.5px; color: var(--olive-dark); margin-top:8px; min-height:1em;
  opacity:0; transition: opacity .2s;
}
.share-search-msg.is-visible{ opacity:1; }

/* ---------- Carrito: compra mínima ---------- */
.cart-min{ font-size:12.5px; color: var(--ink-soft); margin:-4px 0 12px; text-align:right; }
.cart-min-warn{
  text-align:left; color: var(--danger); background: rgba(138,59,43,.07);
  border:1px solid rgba(138,59,43,.25); padding:9px 12px; margin:0 0 12px;
}
.cart-nudge-warn{ color: var(--danger); background: rgba(138,59,43,.07); border-color: rgba(138,59,43,.25); }
.cart-wa-btn.is-disabled{ opacity:.45; cursor:not-allowed; pointer-events:auto; }

/* ---------- Botones redondeados de los filtros ---------- */
.pill-btn{ border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.clear-filters-btn{ width:100%; margin:0 0 14px; }
.clear-filters-btn[hidden]{ display:none; }
.clear-filters-btn .x{ font-size:17px; line-height:1; margin-top:-2px; }

/* ---------- "×" para borrar la búsqueda de la lupa ---------- */
.head-icons .search-form .search-clear{
  position:absolute; left:8px; top:50%; transform:translateY(-50%); z-index:2;
  width:24px; height:24px; border:none; border-radius:999px; background: var(--bg-alt);
  color: var(--ink); font-size:16px; line-height:1; cursor:pointer;
  display:none; align-items:center; justify-content:center; padding:0;
}
.head-icons .search-form .search-clear:hover{ background: var(--line); }
.head-icons .search-form.has-text .search-clear{ display:flex; }
.search-form.has-text input{ padding-left:40px; }

/* Carrito: descuento por mayor */
.cart-line-desc{ color: var(--olive-dark); font-weight:600; }
.cart-item-price s{ color: var(--ink-soft); font-weight:400; margin-right:4px; }

/* Resumen de compra compartido (pedido.php) */
.pedido{ max-width:720px; padding-top:40px; padding-bottom:80px; }
.pedido h1{ font-family: var(--font-body); font-weight:500; font-size:26px; margin:6px 0 8px; }
.pedido-lista{ list-style:none; margin:18px 0 0; padding:0; border-top:1px solid var(--line); }
.pedido-item{ display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); color: var(--ink); }
.pedido-item:hover .pedido-titulo{ text-decoration:underline; }
.pedido-item img{ width:64px; height:80px; object-fit:cover; background: var(--bg-card); flex:none; }
.pedido-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.pedido-titulo{ font-weight:500; }
.pedido-meta{ font-size:12.5px; color: var(--ink-soft); }
.pedido-precio{ text-align:right; font-weight:600; white-space:nowrap; }
.pedido-precio s{ display:block; font-weight:400; font-size:12.5px; color: var(--ink-soft); }
.pedido-totales{ max-width:340px; margin:18px 0 22px auto; }

/* Texto del home para buscadores (visible, discreto) */
.seo-intro{ max-width:760px; padding-top:8px; padding-bottom:48px; color: var(--ink-soft); }
.seo-intro h2{ font-size:16px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; color: var(--ink); margin:0 0 10px; }
.seo-intro p{ font-size:14.5px; line-height:1.7; margin:0 0 10px; }
.seo-intro a{ color: var(--olive-dark); text-decoration:underline; text-underline-offset:3px; }

/* ---------- Favoritos (corazón) ---------- */
.favbtn{
  position:absolute; top:8px; right:8px; z-index:3; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0;
  background:rgba(255,255,255,.92); border:1px solid var(--line); color:var(--ink);
}
.favbtn svg{ pointer-events:none; }
.favbtn.is-on, .pdp-fav.is-on{ color:#B23A48; }
.favbtn.is-on svg, .pdp-fav.is-on svg{ fill:currentColor; }
.pdp-fav{ gap:8px; }
.fav-btn{ position:relative; display:flex; color:var(--ink); margin-right:14px; }
.fav-count{
  position:absolute; top:-7px; right:-9px; min-width:17px; height:17px; padding:0 4px; border-radius:9px;
  background:var(--olive-dark,#494B18); color:#fff; font-size:11px; line-height:17px; text-align:center; font-weight:600;
}
.fav-page{ padding-top:24px; padding-bottom:56px; }
.fav-page h1{ margin:6px 0 8px; }
.fav-page .prod-grid{ margin-top:22px; }

/* ---------- Notificaciones push ---------- */
.push-invita{
  position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:300; max-width:440px; margin:0 auto;
  background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 8px 30px rgba(41,34,17,.22); padding:16px 18px;
  display:flex; flex-direction:column; gap:6px;
}
.push-invita span{ font-size:14px; color:var(--ink-soft); }
.push-invita-btns{ display:flex; align-items:center; gap:14px; margin-top:8px; }
.push-ahora{ background:none; border:0; color:var(--ink-soft); font-size:14px; cursor:pointer; text-decoration:underline; padding:6px; }
.push-overlay{ position:fixed; inset:0; z-index:400; background:rgba(41,34,17,.5); display:flex; align-items:flex-end; justify-content:center; }
.push-card{
  position:relative; width:100%; max-width:460px; background:var(--bg,#F7F3E9); border-radius:18px 18px 0 0; padding:22px 20px calc(22px + env(safe-area-inset-bottom));
  max-height:90vh; overflow:auto;
}
@media (min-width:600px){ .push-overlay{ align-items:center; } .push-card{ border-radius:18px; } }
.push-card h3{ margin:0 0 6px; font-size:20px; }
.push-x{ position:absolute; top:10px; right:14px; background:none; border:0; font-size:28px; line-height:1; cursor:pointer; color:var(--ink); }
.push-txt{ font-size:14.5px; color:var(--ink-soft); margin:0 0 14px; }
.push-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid var(--line); cursor:pointer; }
.push-row b{ display:block; font-size:15px; }
.push-row small{ display:block; color:var(--ink-soft); font-size:13px; margin-top:2px; }
.push-row input{ width:22px; height:22px; accent-color:var(--olive,#898C32); flex:none; }
.push-off{ margin-top:12px; background:none; border:0; color:var(--ink-soft); text-decoration:underline; cursor:pointer; font-size:14px; padding:6px 0; }

/* Hero: solo la frase del día y un enlace pequeño al catálogo */
.hero-frase{ font-size:34px; line-height:1.15; font-weight:700; color:var(--ink); max-width:15em; }
.hero-link{
  display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:14px; font-weight:600;
  color:var(--olive-dark); text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1.5px;
}
.hero-link:hover{ color:var(--forest); }
.hero-link svg{ flex:none; }
/* Banda de marca: ahora lleva el mensaje "Objetos con historia" */
.brandband h2 em{ font-style:normal; color:#C7CC8E; }
.brandband-text p{ color:rgba(243,238,221,.82); margin:0 0 22px; max-width:42ch; font-size:15px; }

/* Categorías del inicio: cuadrados más chicos, caben más por fila */
.cat-tile{ flex:0 0 124px; }
.cat-name{ font-size:11px; padding:22px 6px 9px; }
@media (max-width: 720px){
  .cat-tile{ flex-basis:25vw; max-width:100px; }
  .cat-name{ font-size:9.5px; letter-spacing:.04em; padding:18px 4px 7px; }
}

/* Ajustes: más aire entre la frase y el enlace del hero, categorías más chicas, texto de la banda */
.hero-link{ margin-top:28px; }
.cat-tile{ flex-basis:96px; }
.cat-name{ font-size:10px; padding:16px 4px 7px; }
@media (max-width: 720px){
  .cat-tile{ flex-basis:20vw; max-width:80px; }
  .cat-name{ font-size:8.5px; letter-spacing:.02em; padding:14px 3px 5px; }
}
.brandband-sub{ margin:0 0 10px; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:#C7CC8E; }
.brandband-text p{ max-width:54ch; }
.brandband-text p a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }

/* v41: hero con fotos rotativas (texto debajo de la foto), categorías 4 por fila en móvil, título de la banda */
.hero-media{ background:var(--bg); }
.hero-media img{ aspect-ratio:12 / 5; height:auto; object-fit:cover; object-position:50% 45%; }
.hero-copy{ position:static; transform:none; max-width:none; padding:32px 24px 8px; text-align:center; }
.hero-copy .hero-frase{ margin-left:auto; margin-right:auto; }
.hero-copy .hero-link{ margin-top:40px; }
.hero-media img.hp1{ object-position:50% 40%; }
.hero-media img.hp2{ object-position:50% 40%; }
.hero-media img.hp3{ object-position:50% 40%; }
.hero-media img.hp4{ object-position:50% 38%; }
.hero-media img.hp5{ object-position:60% 50%; }
@media (max-width:560px){
  .hero-media img{ aspect-ratio:3 / 4; }
  .hero-media img.hp1{ object-position:48% center; }
  .hero-media img.hp2{ object-position:47% center; }
  .hero-media img.hp3{ object-position:33% center; }
  .hero-media img.hp4{ object-position:55% center; }
  .hero-media img.hp5{ object-position:98% center; }
  .hero-copy{ padding:26px 18px 6px; }
  .hero-copy h1{ font-size:24px; }
  .hero-copy .hero-link{ margin-top:36px; }
}
.brandband-title{ font-size:26px; line-height:1.2; margin:0 0 16px; color:#fff; }
@media (max-width:720px){
  .cat-row{ gap:6px; }
  .cat-tile{ flex:0 0 calc((100% - 18px) / 4); max-width:none; }
  .cat-tile .thumb{ aspect-ratio:1 / 1; }
  .cat-name{ font-size:9px; letter-spacing:.02em; padding:12px 2px 5px; }
}

/* v43: frase sobre la foto, a la izquierda, con un fondo por línea */
.hero-copy{ position:absolute; left:44px; top:50%; transform:translateY(-50%); max-width:min(600px,58%); padding:0; text-align:left; z-index:2; }
.hero-frase{ margin:0; font-size:38px; line-height:1.8; max-width:none; }
.hero-frase .hl{ background:rgba(245,241,230,.82); color:var(--ink); padding:.1em .45em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
@media (max-width:560px){
  .hero-copy{ left:14px; right:14px; top:auto; bottom:18px; transform:none; max-width:none; padding:0; }
  .hero-copy h1, .hero-frase{ font-size:20px; line-height:1.75; }
}

/* v44: más aire entre líneas en escritorio, hero mobile un poco más bajo con el texto al centro, imagen estable */
.hero-copy .hero-frase{ line-height:1.95; }
.hero-media{ contain:paint; }
@media (max-width:560px){
  .hero-media img{ aspect-ratio:4 / 5; }
  .hero-copy{ top:50%; bottom:auto; transform:translateY(-50%); }
  .hero-copy .hero-frase{ line-height:1.75; }
}

/* v45: logo sin deformarse; hero mobile más bajo y títulos más compactos para ver las categorías completas */
.brand img{ flex:0 1 auto; min-width:0; max-width:100%; object-fit:contain; }
@media (max-width:560px){
  .hero-media img{ aspect-ratio:1 / 1; }
  .hero-copy .hero-frase{ font-size:18px; }
  .section-head h2{ font-size:20px; }
  .section-head{ margin-bottom:10px; padding-bottom:6px; }
  .section-head-plain{ margin-bottom:10px; }
  .section-cats{ padding-top:16px; padding-bottom:26px; }
}

/* v46: mobile un poco más grande; en la primera pantalla solo header, hero y categorías */
@media (max-width:560px){
  .cat-tile .thumb{ aspect-ratio:4 / 5; }
  .cat-name{ font-size:9.5px; padding:14px 2px 6px; }
  .section-head h2{ font-size:22px; }
  .hero-copy .hero-frase{ font-size:20px; }
  .section-cats{ padding-top:20px; padding-bottom:72px; }
}

/* v47: categorías en mobile, 3 y media por pantalla */
@media (max-width:560px){
  .hero-media img{ aspect-ratio:12 / 11; }
  .cat-tile{ flex:0 0 calc((100% - 18px) / 3.5); }
  .cat-name{ font-size:10px; }
  .section-cats{ padding-bottom:60px; }
}

/* v48: categorías mobile un poco más grandes, menos espacio antes de Productos destacados */
@media (max-width:560px){
  .cat-tile{ flex:0 0 calc((100% - 18px) / 3.2); }
  .cat-tile .thumb{ aspect-ratio:3 / 4; }
  .section-cats{ padding-bottom:44px; }
}

/* filtros: solo los que sirven; aviso de resultados parecidos */
.filter-opt.is-hidden{ display:none; }
.filter-group.is-empty{ display:none; }
.catalog-note{ margin:0 0 14px; padding:10px 14px; background:var(--bg-alt); border-radius:8px; font-size:14px; color:var(--ink-soft); }
.catalog-note[hidden]{ display:none; }
.pdp-back{ display:inline-block; margin:0 0 10px; font-size:14px; font-weight:600; color:var(--olive-dark); }

.pdp-back[hidden]{ display:none; }
.pdp-garantias{ list-style:none; margin:14px 0 4px; padding:0; display:grid; gap:6px; font-size:14.5px; color:var(--ink); }
.pdp-garantias li{ display:flex; align-items:center; gap:8px; }

.mainnav > li > a.nav-ofertas{ color:#B3261E; font-weight:700; }
.mainnav > li > a.nav-ofertas:hover{ color:#8C1D18; }

/* Reels de Instagram */
.section-reels{ padding-top:56px; padding-bottom:56px; }
.reels-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px; align-items:start; }
.reel-card{ min-width:0; }
@media (max-width:1000px){ .reels-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){ .reels-grid{ grid-template-columns:1fr; gap:36px; } .section-reels{ padding-top:36px; padding-bottom:36px; } }

/* v51: reels sin barras negras ni pie de Instagram; lista de looks */
.reel-frame{ position:relative; aspect-ratio:9 / 16; background:#000; border:0; overflow:hidden; }
/* El reproductor de Instagram muestra el video en un recuadro 4:5 con barras negras, cabecera (~54px) y pie:
   se agranda para llenar el ancho (x1,4222) y se recortan la cabecera y el pie. */
.reel-frame iframe{ position:absolute; display:block; border:0; left:-21.11%; top:-77px; width:100%; height:calc(70.31% + 300px); transform:scale(1.4222); transform-origin:0 0; }
.reel-title{ margin:14px 0 8px; font-size:22px; font-weight:600; line-height:1.2; }
.reel-prods{ margin:0; font-size:15px; }
.reel-prods-head{ display:flex; justify-content:space-between; gap:8px; padding-bottom:6px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--olive-dark); }
.reel-lista{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); column-gap:16px; }
.reel-lista li{ border-bottom:1px solid var(--line); min-width:0; }
.reel-item{ position:relative; display:block; padding:8px 16px 8px 0; color:var(--ink); text-decoration:none; line-height:1.25; }
.reel-item .n{ display:block; font-size:11px; color:var(--olive-dark); letter-spacing:.04em; margin-bottom:1px; }
.reel-item .t{ display:block; font-size:15px; overflow-wrap:anywhere; }
.reel-item svg{ position:absolute; right:0; top:11px; color:var(--olive-dark); }
a.reel-item:hover .t{ color:var(--olive-dark); }
.reel-item em{ position:absolute; right:0; top:9px; font-style:normal; font-size:11px; color:var(--ink-soft); }
.reel-lista li.is-vendido .t{ color:var(--ink-soft); text-decoration:line-through; }
.reel-lista li.is-vendido .reel-item{ padding-right:52px; }

.pdp-medidas{ margin-top:18px; }
.pdp-medidas-t{ font-size:15px; font-weight:700; margin:0 0 6px; }

/* v53: carrito minimalista, fotos más grandes y caja blanca */
.cart-item img{ width:96px; height:120px; border:0; background:#fff; border-radius:6px; }
.cart-page .cart-item img{ border:0; }
.cart-panel .cart-item img{ width:76px; height:95px; border:0; border-radius:6px; }
.cart-item{ gap:18px; }
.cart-box, .cart-page .cart-box{ background:#fff; border:1px solid rgba(41,34,17,.08); border-radius:10px; }
.cart-page .cart-list{ border-top:1px solid rgba(41,34,17,.08); }
.cart-page .cart-item{ box-shadow: inset 0 -1px 0 rgba(41,34,17,.08); padding:20px 2px; }
.cart-item-title{ font-size:14.5px; }
.cart-item-price{ font-size:14.5px; }
@media (max-width: 480px){
  .cart-item img{ width:76px; height:95px; }
  .cart-panel .cart-item img{ width:70px; height:88px; }
}

/* v54: carrito lateral, zona de productos en blanco */
.cart-panel .cart-list{ background:#fff; border:0; border-radius:10px; padding:2px 14px; margin:0 16px; }
.cart-panel .cart-item:last-child{ box-shadow:none; }

/* v55: botón "Ver más productos" al final de una búsqueda compartida */
.catalog-more{ text-align:center; margin:28px 0 8px; }
.catalog-more[hidden]{ display:none; }

/* v56: pago con Mercado Pago */
.btn-line{ background:transparent; border-color: var(--olive); color: var(--olive-dark); }
.btn-line:hover{ background: rgba(137,140,50,.12); }
.cart-pay-btn{ width:100%; justify-content:center; margin-top:6px; border:0; cursor:pointer; font:inherit; font-weight:600; }
.cart-pay-btn.is-disabled{ opacity:.45; cursor:not-allowed; }
.cart-summary-actions .cart-pay-btn{ flex:1 1 100%; }
.cart-datos-t{ margin-top:18px; }
.cart-datos{ display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; margin:4px 0 4px 0; }
.cart-datos label:last-child{ grid-column:1 / -1; }
.cart-datos input{ width:100%; min-width:0; box-sizing:border-box; }
@media (max-width:420px){ .cart-datos{ grid-template-columns:1fr; } }
.cart-datos label{ display:flex; flex-direction:column; gap:5px; font-size:13px; font-weight:600; color: var(--ink); }
.cart-datos input{ font:inherit; font-size:15px; padding:11px 14px; border:1px solid var(--line); border-radius:8px; background: var(--bg); color: var(--ink); }
.cart-datos input:focus{ outline:none; border-color: var(--olive); box-shadow:0 0 0 3px rgba(137,140,50,.18); }

/* v57: ficha, garantías y envío con el mismo formato de íconos */
.pdp-badges{ flex-wrap:wrap; justify-content:center; row-gap:16px; }
.pdp-badges .b{ flex:0 0 calc(33.333% - 12px); font-size:11.5px; }
.pdp-badges .b svg{ width:20px; height:20px; }
@media (max-width: 480px){ .pdp-badges{ gap:10px; } .pdp-badges .b{ flex:0 0 calc(33.333% - 7px); font-size:11px; } }

/* v58: Comunidad Circular */
.contact-form .opt{ color:var(--soft, #7a7a66); font-weight:400; font-size:.9em; }
.contact-form label.check{ flex-direction:row; align-items:flex-start; gap:10px; font-size:14px; font-weight:400; line-height:1.45; }
.contact-form label.check input{ width:auto; margin:3px 0 0; flex:none; }
.tarjeta-res{ margin-top:8px; }
.tarjeta-res img{ display:block; width:100%; max-width:560px; height:auto; border-radius:18px; box-shadow:0 8px 24px rgba(60,45,20,.18); margin:14px 0 18px; }
.tarjeta-res .btn, .static-content .tarjeta-res a.btn{ color:#fff !important; text-decoration:none; display:inline-block; }

/* v65: footer en una fila: logo · mensaje al centro · redes */
.footer-top{ display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:24px; text-align:left; }
.footer-social{ align-items:flex-end; }
.footer-tag{ text-align:right; }
.footer-comunidad{ flex:1; text-align:center; font-size:14px; color:var(--olive-dark); text-decoration:underline; text-underline-offset:3px; }
.footer-comunidad:hover{ color:var(--ink); }
@media (max-width:720px){
  .footer-top{ flex-direction:column; align-items:center; text-align:center; gap:14px; }
  .footer-social{ align-items:center; }
  .footer-tag{ text-align:center; }
  .footer-comunidad{ flex:none; order:3; }
}
.cart-miembro{ margin-top:10px; font-size:12.5px; color:var(--ink-soft); }
.cart-miembro label{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; font-weight:400; }
.cart-miembro input{ width:90px; padding:4px 8px; font-size:13px; border:1px solid rgba(41,34,17,.2); border-radius:8px; background:transparent; }
.miembro-estado{ display:block; min-height:1em; margin-top:2px; font-size:12px; }
.miembro-estado.ok{ color:var(--olive-dark); }
.miembro-estado.no{ color:#a33; }
.cart-reserva{ display:flex; align-items:flex-start; gap:8px; margin:12px 0 4px; font-size:13.5px; line-height:1.4; color:var(--ink); cursor:pointer; }
.cart-reserva input{ margin-top:3px; flex:none; }
.cart-reserva small{ color:var(--ink-soft); font-size:12px; }
.cart-reserva-nota{ margin:4px 0 8px; padding:10px 12px; border-radius:10px; background:#f4efe3; border:1px solid var(--line); font-size:13px; line-height:1.45; color:var(--ink); }
.pdp-nav{ display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 10px; }
.pdp-nav .pdp-back{ margin:0; }
.pdp-next{ margin-left:auto; font-size:14px; font-weight:600; color:var(--olive-dark); }
.pdp-next:hover{ text-decoration:underline; }
.cart-box-comunidad{ padding:12px 16px; }
.cart-box-comunidad .cart-miembro{ margin:0; }
.miembro-t{ font-size:12.5px; color:var(--ink-soft); margin-bottom:8px; }
.miembro-campos{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.miembro-campos input{ width:110px; padding:6px 8px; font-size:13px; border:1px solid rgba(41,34,17,.2); border-radius:8px; background:transparent; }
.miembro-link-btn{ background:none; border:0; padding:0; color:var(--olive-dark); text-decoration:underline; text-underline-offset:3px; font-size:13px; cursor:pointer; }
.miembro-hecho{ font-size:13px; color:var(--olive-dark); }
.cart-side .cart-box + .cart-box{ margin-top:14px; }
.cart-side{ position:static; }
.miembro-olvido{ display:inline-block; margin-top:8px; font-size:12px; color:var(--ink-soft); text-decoration:underline; text-underline-offset:3px; }
/* v63: acceso de socias estilo cuenta: una casilla por fila, a todo el ancho */
.miembro-campos{ display:flex; flex-direction:column; gap:10px; align-items:stretch; }
.miembro-campos input{ width:100%; box-sizing:border-box; padding:10px 12px; font-size:14px; border:1px solid rgba(41,34,17,.2); border-radius:8px; background:#fff; }
.miembro-campos .miembro-btn{ width:100%; padding:10px 12px; }
.miembro-olvido{ display:block; margin-top:10px; text-align:center; }
.miembro-estado{ margin-top:8px; }

.miembro-puntos{margin-top:4px;font-size:.82rem;color:var(--muted,#6b6b5f)}

.reel-frame video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; cursor:pointer; }
.reel-frame:has(video){ cursor:pointer; }
.reel-play{ position:absolute; left:50%; top:50%; width:84px; height:84px; margin:-42px 0 0 -42px; border:0; border-radius:50%; background:rgba(0,0,0,.38) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5.5v13a1 1 0 001.5.86l10.5-6.5a1 1 0 000-1.72L9.5 4.64A1 1 0 008 5.5z'/%3E%3C/svg%3E") 54% 50% / 46% no-repeat; pointer-events:none; }
.reel-reproduciendo .reel-play{ display:none; }
.reel-sonido{ position:absolute; right:12px; bottom:12px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(0,0,0,.5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 9v6h4l5 4V5L8 9H4z' fill='white'/%3E%3Cpath d='M17 9l4 6M21 9l-4 6'/%3E%3C/svg%3E") center / 55% no-repeat; cursor:pointer; }
.reel-sonido.on{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 9v6h4l5 4V5L8 9H4z' fill='white'/%3E%3Cpath d='M16.5 8.5a5 5 0 010 7M19 6a8.5 8.5 0 010 12'/%3E%3C/svg%3E"); }

/* v66: franja de perfil sobre cada reel */
.reel-perfil{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; background:#fff; border:1px solid var(--line); border-bottom:0; }
.reel-perfil-id{ display:flex; align-items:center; gap:8px; min-width:0; color:var(--ink); font-weight:600; font-size:14px; text-decoration:none; }
.reel-perfil-id img{ width:32px; height:32px; border-radius:50%; object-fit:cover; flex:none; }
.reel-perfil-id span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reel-seguir{ flex:none; padding:6px 16px; border-radius:8px; background:var(--forest); color:#fff; font-size:13px; font-weight:600; text-decoration:none; }
.reel-seguir:hover{ background:var(--olive-dark); }

/* v70: aviso flotante antes de abrir WhatsApp */
.wa-aviso{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(41,34,17,.5); }
.wa-aviso-caja{ width:100%; max-width:460px; background:var(--bg,#F5F1E6); border-radius:14px; padding:24px 22px 20px; box-shadow:0 18px 50px rgba(0,0,0,.3); }
.wa-aviso-caja h3{ margin:0 0 8px; font-size:20px; }
.wa-aviso-caja p{ margin:0 0 18px; font-size:15px; line-height:1.5; color:var(--ink-soft); }
.wa-aviso-acc{ display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; }

/* v70: "Me invitaron" + ID de quien refirió, en la misma fila */
.contact-form .invitacion{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.contact-form .invitacion label.check{ margin:0; flex:none; align-items:center; }
.contact-form .invitacion label.check input{ margin:0; }
.contact-form .invitacion input[type=text]{ flex:1 1 200px; min-width:0; }
.contact-form .invitacion input[type=text]:disabled{ opacity:.45; background:transparent; }

/* Escritorio: solo la barra de arriba (logo, buscador, carrito) queda fija; el menú de categorías se va al bajar */
@media (min-width: 901px){
  .site-header{ display:contents; }
  .site-header > .wrap{
    position:sticky; top:0; z-index:40; max-width:none;
    padding-left:max(32px, calc((100% - var(--maxw)) / 2 + 32px)); padding-right:max(32px, calc((100% - var(--maxw)) / 2 + 32px));
    background:var(--bg); border-bottom:1px solid var(--line);
  }
  .subnav{ position:relative; z-index:39; }
}
.wa-aviso-acc .btn{ flex:1 1 auto; white-space:nowrap; }


/* ---- Perfiles de vendedoras ---- */
.pdp-vendedora{display:flex;align-items:center;gap:12px;margin:14px 0 4px;padding:10px 12px;border:1px solid var(--line,#e3dccb);border-radius:14px;text-decoration:none;color:inherit;background:rgba(255,255,255,.5)}
.pdp-vendedora img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:#fff}
.pdp-vendedora span{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.pdp-vendedora small{font-size:.75rem;opacity:.7}
.pdp-vendedora b{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.pdp-vendedora .pdp-vend-ver{margin-left:auto;font-size:.85rem;white-space:nowrap;text-decoration:underline}
.perfil-cab{display:flex;align-items:center;gap:18px;margin-bottom:6px}
.perfil-foto{width:96px;height:96px;border-radius:50%;object-fit:cover;background:#fff;border:1px solid var(--line,#e3dccb);flex:none}
.perfil-cab h1{margin:0 0 4px}
.perfil-comuna{margin:0;opacity:.8}
.perfiles-page{padding-bottom:48px}
.perfiles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px;margin-top:22px}
.perfil-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:22px 14px;border:1px solid var(--line,#e3dccb);border-radius:18px;background:rgba(255,255,255,.55);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.perfil-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(73,75,24,.12)}
.perfil-card img{width:96px;height:96px;border-radius:50%;object-fit:cover;background:#fff;margin-bottom:8px}
.perfil-card span{font-size:.9rem;opacity:.8}
.perfil-card .perfil-n{margin-top:6px;font-size:.82rem;font-weight:600;opacity:1}
.perfiles-home{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-top:0}
@media(max-width:600px){.perfiles-home{grid-template-columns:repeat(2,1fr);gap:12px}}

.perfiles-vender{margin:34px 0 0;padding:22px 20px;border:1px dashed var(--line,#e3dccb);border-radius:18px;text-align:center;background:rgba(255,255,255,.45)}
.perfiles-vender h2{margin:0 0 6px}
.perfiles-vender p{margin:0 0 14px}
.vender-cats{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 14px}
.vender-cats legend{padding:0;margin-bottom:8px;font-size:13.5px;font-weight:600}
.contact-form .vender-cat{flex-direction:row;align-items:center;gap:8px;font-weight:400}
.contact-form .vender-cat input{width:auto}
.contact-form select{padding:12px 14px;border:1px solid var(--line,#e3dccb);border-radius:var(--radius,10px);background:#fff;font:inherit}
