/* ===== Ficha de producto (DOGBOX) ===== */
.prod-page{padding-bottom:40px}
.prod{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
@media(min-width:900px){.prod{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px}}
@media(min-width:1400px){.prod{gap:72px}}

/* Galería: una sola imagen grande y las miniaturas justo debajo */
.gal{min-width:0}
.gal__main{position:relative;aspect-ratio:1/1;background:linear-gradient(#f4f4f2,#e8e8e4);border-radius:12px;overflow:hidden}
.gal__main img{width:100%;height:100%;object-fit:contain;display:block;animation:galIn .25s ease}
@keyframes galIn{from{opacity:.4}to{opacity:1}}
.gal__vacia{position:absolute;inset:0;display:grid;place-items:center;color:#8d8d7d;font:600 20px var(--font-head);text-transform:uppercase;letter-spacing:1px}
.gal__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(0,0,0,.18);font-size:28px;line-height:1;cursor:pointer;color:var(--olive-900);display:grid;place-items:center;padding:0 0 4px}
.gal__nav:hover{background:#fff;color:var(--olive-600)}
.gal__nav--prev{left:12px}.gal__nav--next{right:12px}
.gal__thumbs{list-style:none;display:flex;gap:10px;margin:12px 0 0;padding:2px;overflow-x:auto;scrollbar-width:thin}
.gal__thumbs li{flex:none}
.gal__thumbs button{display:block;width:84px;height:84px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#eceae0;cursor:pointer;opacity:.7;transition:opacity .2s,border-color .2s}
.gal__thumbs button:hover{opacity:1}
.gal__thumbs button.is-on{border-color:var(--olive-700);opacity:1}
.gal__thumbs img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:560px){.gal__thumbs button{width:68px;height:68px}}

/* Información */
@media(min-width:900px){.info{position:sticky;top:20px}}
.info__tag{display:inline-block;margin:0 0 8px;padding:3px 12px;border-radius:999px;background:var(--olive-700);color:#fff;font:600 13px var(--font-body);letter-spacing:.5px;text-transform:uppercase}
.info h1{font:800 clamp(30px,4.5vw,46px)/1.02 var(--font-head);text-transform:uppercase;color:var(--olive-900);margin:0 0 8px}
.info__ref{margin:0 0 14px;color:#6b6e5e;font-size:15px}
.info__price{display:flex;align-items:baseline;gap:12px;margin:0;font-family:var(--font-head)}
.info__price strong{font-size:34px;font-weight:700;color:var(--ink)}
.info__price del{font-size:22px;font-weight:500;color:var(--olive-300);text-decoration:line-through}
.info__iva{margin:0 0 22px;font-size:13px;color:#6b6e5e}

/* Opciones como botones */
.opt{border:0;margin:0 0 20px;padding:0;min-width:0}
.opt legend{padding:0;margin-bottom:10px;font-size:15px;color:#4a4a3c}
.opt legend b{color:var(--ink);font-weight:600}
.opt__list{display:flex;flex-wrap:wrap;gap:10px}
.opt__btn{min-width:56px;padding:12px 18px;border:1.5px solid #b9b9a8;border-radius:8px;background:#fff;color:var(--ink);font:600 16px var(--font-body);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .05s}
.opt__btn:hover{border-color:var(--olive-700)}
.opt__btn:active{transform:scale(.97)}
.opt__btn.is-on{border-color:var(--olive-900);box-shadow:0 0 0 2px var(--olive-900)}
.opt__btn--color{min-width:92px;border-color:rgba(0,0,0,.25)}
.opt__btn--color.is-blanco{border-color:#b9b9a8}
.opt__btn--color.is-on{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--olive-900);border-color:var(--olive-900)}
.opt__btn:focus-visible{outline:3px solid var(--olive-300);outline-offset:3px}

/* Compra */
.buy{display:flex;gap:12px;align-items:stretch;margin:6px 0 10px}
.qty-sel{display:flex;align-items:center;border:1.5px solid #b9b9a8;border-radius:8px;background:#fff;flex:none}
.qty-sel button{width:44px;border:0;background:none;font-size:24px;cursor:pointer;color:var(--olive-900)}
.qty-sel button:hover{color:var(--olive-600)}
.qty-sel output{min-width:34px;text-align:center;font:600 18px var(--font-body)}
.buy__add{flex:1;cursor:pointer;border:0}
.buy__add:disabled{opacity:.7;cursor:wait}
.buy__msg{margin:0 0 6px;padding:10px 14px;border-radius:8px;background:#e5ecd3;color:var(--olive-900);font-size:15px}
.buy__msg.is-error{background:#f6dedb;color:#8a2b22}
.buy__msg a{font-weight:600;color:inherit;text-decoration:underline}
.info__agotado{padding:14px 16px;border-radius:8px;background:#eceae0;font-weight:600}
.info__notes{list-style:none;margin:14px 0 22px;padding:0;display:grid;gap:6px;font-size:15px;color:#4a4a3c}
.info__notes li::before{content:"✓";margin-right:8px;color:var(--olive-600);font-weight:700}
.info__notes .warn{color:#8a2b22;font-weight:600}
.info__notes .warn::before{content:"!";color:#8a2b22}

/* Acordeones */
.acc{border-top:1px solid var(--line)}
.acc:last-of-type{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:16px 2px;font:700 20px var(--font-head);text-transform:uppercase;letter-spacing:.5px;color:var(--olive-900)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font:400 26px/1 var(--font-body);transition:transform .2s}
.acc[open] summary::after{content:"−"}
.acc__body{padding:0 2px 18px;color:#3b3d30;line-height:1.6;font-size:16px}
.desc p{margin:0 0 .8em}.desc ul,.desc ol{padding-left:1.3em;margin:0 0 .8em}.desc img{max-width:100%;height:auto}

/* Relacionados */
.prod-rel{margin-top:48px}
.prod-rel h2{font:800 clamp(26px,3.5vw,34px)/1 var(--font-head);text-transform:uppercase;color:var(--olive-900);margin:0 0 18px}
