.top{padding:130px 0 40px;border-bottom:1px solid var(--line)}
.top .in{display:flex;justify-content:space-between;align-items:end;gap:30px}
.top h1{font:400 clamp(44px,6vw,92px)/.95 var(--serif);margin-top:16px}.top h1 em{font-style:italic}
.top p{color:var(--mute);max-width:42ch}
.shop{display:grid;grid-template-columns:260px 1fr;gap:48px;padding:40px 0 120px}
.side{position:sticky;top:100px;align-self:start;display:flex;flex-direction:column;gap:30px}
.side h4{font:600 10.5px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.srch{width:100%;height:46px;background:transparent;border:0;border-bottom:1px solid var(--line);padding:0 2px;font-size:15px;outline:0}
.srch:focus{border-color:var(--gold)}
.opts{display:flex;flex-direction:column;gap:2px}
.opts button{display:flex;justify-content:space-between;text-align:left;padding:9px 0;color:#c9bfab;font-size:14.5px;border-bottom:1px solid transparent}
.opts button span{color:var(--mute);font-size:12px}
.opts button.on{color:var(--gold2)}.opts button.on:before{content:"";width:6px;height:6px;transform:rotate(45deg);background:var(--gold);margin:7px 10px 0 0;flex:none}
.opts button.on{justify-content:flex-start}.opts button.on span{margin-left:auto}
.side select{width:100%;height:44px;background:var(--ink2);border:1px solid var(--line2);padding:0 12px}
.bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;color:var(--mute);font-size:13px}
.bar .fbtn{display:none}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.empty{padding:80px 0;text-align:center;color:var(--mute)}
/* detalle */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);z-index:70;opacity:0;pointer-events:none;transition:opacity .35s}
.ov.open{opacity:1;pointer-events:auto}
.pd{position:fixed;z-index:71;inset:5vh 50% auto auto;transform:translate(50%,20px);width:min(1080px,94vw);max-height:90vh;overflow:auto;background:var(--ink2);border:1px solid var(--line);display:grid;grid-template-columns:1.05fr 1fr;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s}
.pd.open{opacity:1;pointer-events:auto;transform:translate(50%,0)}
.pd .gal{background:#000;position:relative}.pd .gal .main{aspect-ratio:1/1;width:100%;object-fit:cover}
.pd .th{display:flex;gap:8px;padding:10px}.pd .th img{width:64px;height:64px;object-fit:cover;opacity:.5;cursor:pointer;border:1px solid transparent}.pd .th img.on{opacity:1;border-color:var(--gold)}
.pd .inf{padding:44px 40px;display:flex;flex-direction:column;gap:18px}
.pd h2{font:400 40px/1.02 var(--serif)}.pd .price{font:400 34px/1 var(--serif);color:var(--gold2)}.pd .price.q{font:600 13px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.pd .desc{color:#c9bfab}
.pd .specs{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;padding:18px 0;border-block:1px solid var(--line2);font-size:14px}.pd .specs dt{color:var(--mute);font:600 10px/2 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.vars{display:flex;flex-wrap:wrap;gap:8px}.vars button{padding:11px 14px;border:1px solid var(--line2);font-size:13px}.vars button.on{border-color:var(--gold);color:var(--gold2);background:rgba(214,178,98,.06)}.vars button:disabled{opacity:.35;text-decoration:line-through}
.pd .acts{display:flex;gap:10px;flex-wrap:wrap}.pd .acts .btn{flex:1}
.pd .x,.dr .x{position:absolute;right:14px;top:12px;width:40px;height:40px;font:300 28px/1 var(--sans);color:var(--iv);z-index:2}
.pd .stk{font-size:12.5px;color:var(--mute);letter-spacing:.06em}
/* bolsa / checkout */
.dr{position:fixed;z-index:72;top:0;right:0;bottom:0;width:min(500px,100vw);background:#0d0b08;border-left:1px solid var(--line);transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column}
.dr.open{transform:none}
.dr header{padding:26px 28px 0}.dr h3{font:400 32px/1 var(--serif)}
.stepper{display:flex;margin:22px 0 0;border-bottom:1px solid var(--line2)}
.stepper span{flex:1;padding:12px 0;font:600 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#5f584c;border-bottom:1px solid transparent;margin-bottom:-1px}
.stepper span.on{color:var(--gold2);border-color:var(--gold)}.stepper span.done{color:var(--mute)}
.dr .body{flex:1;overflow:auto;padding:22px 28px}
.dr footer{padding:20px 28px 26px;border-top:1px solid var(--line2);display:flex;flex-direction:column;gap:12px}
.dr .tot{display:flex;justify-content:space-between;align-items:baseline}.dr .tot b{font:400 30px/1 var(--serif);color:var(--gold2)}
.ln{display:grid;grid-template-columns:76px 1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line2);align-items:center}
.ln img,.ln .tm{width:76px;height:76px;object-fit:cover;background:#1a150d;display:grid;place-items:center;font:400 22px var(--serif);color:var(--gold)}
.ln b{font:400 18px/1.15 var(--serif);display:block}.ln small{color:var(--mute);font-size:12px}
.qty{display:flex;align-items:center;border:1px solid var(--line2);margin-top:8px;width:max-content}.qty button{width:30px;height:28px}.qty span{min-width:26px;text-align:center;font-size:13px}
.ln .rm{font-size:11px;color:var(--mute);letter-spacing:.12em;text-transform:uppercase;text-decoration:underline}
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.fld label{font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.fld input,.fld select,.fld textarea{height:46px;background:var(--ink2);border:1px solid var(--line2);padding:0 14px;outline:0;border-radius:var(--r)}.fld textarea{height:80px;padding:12px 14px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--gold)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg button{padding:14px 10px;border:1px solid var(--line2);font-size:13px;text-align:left}.seg button.on{border-color:var(--gold);background:rgba(214,178,98,.06);color:var(--gold2)}.seg button small{display:block;color:var(--mute);font-size:11.5px;margin-top:3px}
.sum{font-size:14px}.sum div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line2)}.sum div span:first-child{color:var(--mute)}
.ok{text-align:center;padding:30px 0}.ok .seal{width:120px;margin:0 auto 20px}.ok h4{font:400 34px/1.05 var(--serif);margin-bottom:10px}.ok p{color:var(--mute)}
.err{color:#e0a080;font-size:13px}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);background:var(--g);color:var(--ink);font:700 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:16px 22px;opacity:0;transition:.35s;z-index:90;pointer-events:none}.toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:1100px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.top{padding:100px 0 26px}.top .in{flex-direction:column;align-items:flex-start}
 .shop{grid-template-columns:1fr;gap:0;padding-top:20px}.side{position:fixed;z-index:73;inset:auto 0 0 0;top:auto;max-height:82vh;overflow:auto;background:#0d0b08;border-top:1px solid var(--line);padding:26px 20px 30px;transform:translateY(100%);transition:transform .4s}
 .side.open{transform:none}.bar .fbtn{display:inline-flex;height:40px;padding:0 16px;border:1px solid var(--line);font:600 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold2);align-items:center}
 .grid{gap:10px}.card .bd{padding:12px}.card .nm{font-size:16px}.card .pr b{font-size:15px}.card .pr b.q{font-size:9.5px;letter-spacing:.1em}.card .meta{font-size:9px}
 .pd{inset:0;transform:translateY(30px);width:100vw;max-height:100vh;height:100%;grid-template-columns:1fr}.pd.open{transform:none}.pd .inf{padding:26px 20px 40px}.pd h2{font-size:32px}}
