/* ==========================================================================
   Tienda, categoría y ficha de producto
   ========================================================================== */

/* ---------- cabecera de página ---------- */
.page-head{background:var(--ivory);border-bottom:1px solid var(--line);padding-block:clamp(1.6rem,3vw,2.6rem) clamp(1.2rem,2vw,2rem)}
.page-head h1{font-size:clamp(2rem,1.4rem + 2.4vw,3.2rem);margin:.4rem 0 .6rem}
.page-head p{color:var(--muted);font-size:var(--t-sm);max-width:70ch;margin:0}
.page-head__meta{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:1rem;font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* ---------- layout tienda ---------- */
.shop{display:grid;grid-template-columns:264px 1fr;gap:clamp(1.2rem,3vw,2.6rem);align-items:start;padding-block:clamp(1.4rem,3vw,2.4rem) var(--section)}
.filters{position:sticky;top:calc(var(--header-h) + 12px);display:grid;gap:1.2rem;font-size:var(--t-sm)}
.filters__group{border-bottom:1px solid var(--line);padding-bottom:1.1rem}
.filters__group h3{font-family:var(--sans);font-size:var(--t-xs);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:.8rem}
.filters__list{display:grid;gap:.1rem;max-height:290px;overflow:auto;padding-right:.2rem}
.fopt{display:flex;align-items:center;gap:.55rem;min-height:38px;padding:.2rem .1rem;cursor:pointer;color:var(--muted);transition:color var(--dur) var(--ease)}
.fopt:hover{color:var(--ink)}
.fopt input{width:16px;height:16px;min-height:0;accent-color:var(--wine);margin:0;flex:none}
.fopt span{flex:1;line-height:1.3}
.fopt em{font-style:normal;font-size:var(--t-xs);color:var(--muted);opacity:.7}
.fopt input:checked ~ span{color:var(--ink);font-weight:500}
.range{display:flex;align-items:center;gap:.5rem}
.range input{min-height:44px}
.filters__reset{font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--wine);text-decoration:underline;min-height:38px;display:inline-flex;align-items:center}

.shop__bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.shop__count{font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.shop__count b{color:var(--ink);font-weight:600}
.shop__tools{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.shop__tools select{min-height:44px;width:auto;padding:.5rem 2rem .5rem .9rem;font-size:var(--t-xs);background-image:none}
.filter-toggle{display:none}

.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;background:var(--rose-soft);color:var(--wine-deep);border-radius:var(--r-pill);padding:.4rem .5rem .4rem .8rem;font-size:var(--t-xs);letter-spacing:.04em}
.chip button{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(110,31,51,.12);color:var(--wine-deep);font-size:14px;line-height:1}
.chip button:hover{background:var(--wine);color:#fff}

.empty{padding:3rem 1rem;text-align:center;border:1px dashed var(--line);border-radius:var(--r-md)}
.empty h3{margin-bottom:.5rem}
.empty p{color:var(--muted);font-size:var(--t-sm)}

/* ---------- ficha de producto ---------- */
.pdp{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.4rem,4vw,3.6rem);align-items:start;padding-block:clamp(1rem,2vw,1.6rem) clamp(2rem,4vw,3.4rem)}
.pdp__gallery{position:sticky;top:calc(var(--header-h) + 16px);display:grid;gap:.7rem}
.pdp__stage{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--paper);aspect-ratio:4/5}
.pdp__stage img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pdp__stage:hover img{transform:scale(1.06)}
.pdp__zoom{position:absolute;right:.8rem;bottom:.8rem;background:rgba(251,247,241,.92);border-radius:var(--r-pill);padding:.45rem .8rem;font-size:10px;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;gap:.4rem;align-items:center}
.pdp__zoom svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.6}
.pdp__thumbs{display:flex;gap:.5rem}
.pdp__thumbs button{width:64px;height:76px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line);opacity:.7;transition:all var(--dur) var(--ease)}
.pdp__thumbs button[aria-pressed="true"],.pdp__thumbs button:hover{opacity:1;border-color:var(--wine)}

.pdp__info h1{font-size:clamp(1.7rem,1.3rem + 2vw,2.8rem);margin:.5rem 0 .7rem}
.pdp__brand{font-size:var(--t-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pdp__price{display:flex;align-items:baseline;gap:.7rem;margin:.4rem 0 .2rem}
.pdp__price strong{font-family:var(--serif);font-size:clamp(1.7rem,1.3rem + 1.6vw,2.3rem);font-weight:500}
.pdp__price s{color:var(--muted);font-size:var(--t-sm)}
.pdp__price .badge-soft{margin-left:.2rem}
.pdp__tax{font-size:var(--t-xs);color:var(--muted);margin-bottom:1.2rem}
.pdp__stock{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--wine);background:var(--rose-soft);padding:.4rem .7rem;border-radius:var(--r-pill);margin-bottom:1.1rem}
.pdp__stock i{width:7px;height:7px;border-radius:50%;background:var(--wine);display:block}
.pdp__actions{display:grid;gap:.6rem;margin:1.2rem 0 1rem}
.pdp__actions .btn{min-height:56px}
.pdp__secondary{display:flex;gap:.6rem;flex-wrap:wrap}
.pdp__secondary .btn{flex:1;min-height:46px;font-size:10px;letter-spacing:.08em}
.pdp__ship{display:grid;gap:.55rem;background:var(--ivory);border-radius:var(--r-md);padding:1rem 1.1rem;margin:1.2rem 0;font-size:var(--t-sm)}
.pdp__ship div{display:flex;gap:.65rem;align-items:flex-start;color:var(--muted)}
.pdp__ship svg{width:17px;height:17px;flex:none;stroke:var(--wine);fill:none;stroke-width:1.5;margin-top:.15rem}
.pdp__ship b{color:var(--ink);font-weight:600}
.pdp__facts{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.2rem;font-size:var(--t-xs);color:var(--muted);border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}
.pdp__facts dt{letter-spacing:.1em;text-transform:uppercase;font-size:10px;margin-bottom:.15rem}
.pdp__facts dd{margin:0;color:var(--ink);font-size:var(--t-sm)}

/* acordeones */
.acc{border-top:1px solid var(--line);margin-top:1.4rem}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;cursor:pointer;font-size:var(--t-sm);font-weight:500;list-style:none;min-height:48px}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";color:var(--wine);font-size:1.2rem;transition:transform .3s var(--ease)}
.acc details[open] summary::after{transform:rotate(45deg)}
.acc__body{padding-bottom:1.1rem;font-size:var(--t-sm);color:var(--muted);line-height:1.65}
.acc__body ul{display:grid;gap:.4rem;margin:.6rem 0}
.acc__body li{display:flex;gap:.55rem;align-items:flex-start}
.acc__body li::before{content:"·";color:var(--wine);font-weight:700}

/* barra móvil fija */
.pdp-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:65;display:none;gap:.6rem;align-items:center;
  background:rgba(251,247,241,.97);backdrop-filter:blur(12px);border-top:1px solid var(--line);
  padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));
}
.pdp-bar__price{font-family:var(--serif);font-size:1.2rem;font-weight:500;white-space:nowrap}
.pdp-bar .btn{flex:1;min-height:48px}

/* relacionados */
.related{padding-block:var(--section) 0}

/* guía / contenido */
.prose{max-width:72ch;margin-inline:auto;font-size:var(--t-base);line-height:1.72;color:var(--ink)}
.prose h2{font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem);margin:2.4rem 0 .8rem}
.prose h3{font-size:var(--t-lg);margin:1.8rem 0 .6rem}
.prose p,.prose ul,.prose ol{margin-bottom:1.1rem;color:var(--muted)}
.prose ul{display:grid;gap:.5rem}
.prose ul li{display:flex;gap:.6rem;align-items:flex-start}
.prose ul li::before{content:"—";color:var(--rose-deep);flex:none}
.prose a{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.prose table{width:100%;border-collapse:collapse;font-size:var(--t-sm);margin:1.2rem 0}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:.6rem .7rem;text-align:left}
.prose th{font-size:var(--t-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.prose blockquote{margin:1.6rem 0;padding:1.2rem 1.4rem;background:var(--ivory);border-left:3px solid var(--wine);border-radius:0 var(--r-sm) var(--r-sm) 0;font-family:var(--serif);font-size:var(--t-lg);font-style:italic;color:var(--ink)}

/* pasos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);counter-reset:s}
.step{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:1.4rem;counter-increment:s}
.step::before{content:counter(s,decimal-leading-zero);font-family:var(--serif);font-size:1.6rem;color:var(--rose-deep);display:block;margin-bottom:.5rem}
.step h3{font-size:var(--t-lg);margin-bottom:.4rem}
.step p{font-size:var(--t-sm);color:var(--muted)}

@media(max-width:1080px){
  .shop{grid-template-columns:1fr}
  .filters{position:fixed;inset:auto 0 0 0;z-index:95;background:var(--cream);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:1.2rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom));max-height:86vh;overflow:auto;transform:translateY(102%);transition:transform .45s var(--ease);box-shadow:0 -20px 60px -30px rgba(20,16,15,.5)}
  .filters[data-open="true"]{transform:translateY(0)}
  .filters__apply{position:sticky;bottom:0;background:var(--cream);padding-top:.8rem}
  .filter-toggle{display:inline-flex}
  .pdp{grid-template-columns:1fr}
  .pdp__gallery{position:static}
  .pdp__stage{aspect-ratio:1/1}
  .pdp__info{padding-bottom:74px}
  .pdp-bar{display:flex}
  .steps{grid-template-columns:1fr}
}
