/* Tienda: carrito, ficha de compra, éxito, Mi pedido y panel del taller. Usa los tokens de styles.css. */
.demo-bar{letter-spacing:.14em;text-transform:uppercase}
.order-link,.cart-link{display:inline-flex;align-items:center;gap:8px;color:inherit;font-size:13px;letter-spacing:.04em;white-space:nowrap}
.order-link{margin-left:auto;padding:10px 6px;border-bottom:1px solid transparent}
.order-link:hover{border-color:var(--rust)}
.cart-link{padding:10px 18px;border:1px solid var(--ink);border-radius:999px;background:var(--white);transition:background .2s,color .2s}
.cart-link:hover,.cart-link.has-items{background:var(--ink);color:var(--paper)}
.cart-link b{min-width:22px;height:22px;display:inline-grid;place-items:center;padding:0 6px;border-radius:999px;background:var(--rust);color:#fff;font-size:11px}
.quote-toggle{margin-left:0}
@media(max-width:900px){.order-link{display:none}.cart-link .cart-label{display:none}.cart-link{padding:9px 12px}}

/* Tarjetas */
.product-price{display:flex;align-items:baseline;gap:10px;padding:6px 0 0;font-size:14px;color:var(--muted)}
.product-price strong{font:400 22px var(--serif);color:var(--ink);letter-spacing:-.02em}
.product-price em{font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.card-buy{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);border-bottom:1px solid currentColor;padding-bottom:2px}

/* Ficha de compra */
.buy-box{margin:26px 0 20px;padding:26px;background:var(--white);border:1px solid var(--line)}
.buy-price{display:flex;align-items:baseline;gap:14px;margin:0 0 18px}
.buy-price strong{font:400 clamp(34px,4vw,46px) var(--serif);letter-spacing:-.04em;color:var(--ink)}
.buy-price span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.size-picker{border:0;padding:0;margin:0}
.size-picker legend{display:flex;justify-content:space-between;width:100%;padding:0;margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.size-picker legend a{font-weight:400;letter-spacing:.02em;text-transform:none;text-decoration:underline;color:var(--rust)}
.sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px}
.size{position:relative;display:block}
.size input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.size span{display:grid;place-items:center;height:48px;border:1px solid var(--line);background:var(--paper);font-size:15px;transition:border-color .15s,background .15s,color .15s}
.size:hover span{border-color:var(--ink)}
.size input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.size input:focus-visible+span{outline:3px solid var(--rust);outline-offset:3px}
.size.out span{color:#a9a395;background:transparent;text-decoration:line-through;border-style:dashed}
.size.out input{cursor:not-allowed}
.buy-hint{min-height:1.6em;margin:12px 0 14px;font-size:13px;color:var(--muted)}
.buy-row{display:flex;gap:12px;align-items:stretch}
.buy-row .button{flex:1;justify-content:center}
.buy-add[aria-disabled=true]{opacity:.6}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--paper)}
.qty button{width:44px;height:48px;border:0;background:transparent;font-size:20px;color:var(--ink)}
.qty button:hover:not(:disabled){background:var(--sand)}
.qty output{min-width:34px;text-align:center;font-size:16px}
.assurances{list-style:none;margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;font-size:13px;color:var(--muted)}
.assurances li::before{content:"✓";margin-right:10px;color:var(--rust);font-weight:700}
.consult-more{margin-top:18px}
.consult-more>summary{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}

/* Mini-carrito */
.mini-cart{position:fixed;top:0;right:0;bottom:0;z-index:900;width:min(420px,100vw);display:flex;flex-direction:column;background:var(--paper);border-left:1px solid var(--line);box-shadow:-24px 0 60px #0003;transform:translateX(100%);transition:transform .28s ease}
.mini-cart.open{transform:none}
.mini-cart[hidden]{display:none}
.mini-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}
.mini-head h2{font-size:30px}
.mini-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--white);font-size:22px;line-height:1}
.mini-lines{flex:1;overflow:auto;padding:8px 24px}
.mini-line,.order-lines li{display:grid;grid-template-columns:72px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);list-style:none}
.mini-line img,.order-lines img,.cart-line>img{width:72px;height:54px;object-fit:cover;background:var(--sand)}
.mini-line div,.order-lines div{display:grid;font-size:13px;color:var(--muted)}
.mini-line strong,.order-lines strong{font:400 18px var(--serif);color:var(--ink)}
.thumb-empty{display:grid;place-items:center;width:72px;height:54px;background:var(--sand);font:14px var(--serif)}
.mini-empty{padding:40px 0;text-align:center;color:var(--muted)}
.mini-foot{padding:20px 24px 24px;border-top:1px solid var(--line);background:var(--white)}
.mini-sub{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.mini-sub strong{font:400 26px var(--serif)}

/* Páginas de tienda */
.shop-page{padding-block:30px 100px}
.shop-page .page-heading{padding-bottom:30px}
.cart-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.cart-lines{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.cart-line{display:grid;grid-template-columns:120px 1fr auto;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.cart-line>img,.cart-line>.thumb-empty{width:120px;height:90px}
.cart-line h3{font-size:24px}
.cart-line p{margin:4px 0;font-size:14px;color:var(--muted)}
.cart-line-actions{display:flex;align-items:center;gap:18px;margin-top:12px}
.cart-line-total{font:400 22px var(--serif);white-space:nowrap}
.has-problem{background:#92280f10}
.problem{color:#a02a12;font-size:14px;margin:8px 0}
.link-btn{border:0;background:none;padding:0;font-size:13px;text-decoration:underline;color:var(--muted)}
.cart-summary{position:sticky;top:110px;padding:28px;background:var(--white);border:1px solid var(--line)}
.cart-summary h2{font-size:34px;margin-bottom:18px}
.ship-options{border:0;margin:0 0 18px;padding:0;display:grid;gap:8px}
.ship-options legend{padding:0;margin-bottom:8px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ship{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:14px}
.ship:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ship input{accent-color:var(--rust)}
.ship span{display:grid;line-height:1.35}
.ship small{color:var(--muted);font-size:12px}
.totals{margin:0 0 20px;display:grid;gap:8px}
.totals div{display:flex;justify-content:space-between;gap:16px;font-size:15px}
.totals dt,.totals dd{margin:0}
.totals .grand{padding-top:12px;margin-top:4px;border-top:1px solid var(--ink);font:400 26px var(--serif);letter-spacing:-.02em}
.totals .vat{font-size:12px;color:var(--muted)}
.cart-summary .button{margin-bottom:12px}
.cart-empty{padding:70px 0;text-align:center}
.cart-empty h2{margin-bottom:14px}
@media(max-width:900px){.cart-layout{grid-template-columns:1fr}.cart-summary{position:static}.cart-line{grid-template-columns:84px 1fr;gap:14px}.cart-line>img,.cart-line>.thumb-empty{width:84px;height:63px}.cart-line-total{grid-column:2}}

/* Éxito y Mi pedido */
.success-head{text-align:center;padding:30px 0 34px}
.success-head h1{font-size:clamp(40px,6vw,64px)}
.success-head .tick{display:inline-grid;place-items:center;width:64px;height:64px;margin-bottom:18px;border-radius:50%;background:var(--green);color:var(--paper);font-size:30px}
.spinner{width:42px;height:42px;margin:0 auto 18px;border:3px solid var(--line);border-top-color:var(--rust);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}.mini-cart{transition:none}}
.success-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:24px}
.order-card{margin:0 auto;padding:clamp(20px,4vw,40px);background:var(--white);border:1px solid var(--line)}
.order-card h2{font-size:clamp(28px,4vw,40px)}
.order-number{font-family:ui-monospace,Consolas,monospace;letter-spacing:.06em;color:var(--rust)}
.order-state{margin:8px 0 22px;color:var(--muted)}
.timeline{list-style:none;margin:0 0 26px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;counter-reset:s}
.timeline li{position:relative;display:grid;justify-items:center;gap:8px;text-align:center;font-size:13px;color:var(--muted)}
.timeline li::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.timeline li:first-child::before{display:none}
.timeline li span{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:2px solid var(--line);background:var(--paper);font-size:13px}
.timeline li.done span,.timeline li.current span{background:var(--green);border-color:var(--green);color:var(--paper)}
.timeline li.current{color:var(--ink);font-weight:700}
.timeline li.done::before,.timeline li.current::before{background:var(--green)}
.order-lines{margin:0 0 18px;padding:0}
.order-cancelled{padding:14px;background:#92280f12;margin-bottom:22px}
.lookup{display:grid;gap:16px;max-width:520px;margin:0 auto 30px}
.lookup label{display:grid;gap:6px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.lookup input{padding:14px;border:1px solid var(--line);background:var(--white);font-size:16px;letter-spacing:0;text-transform:none}
.lookup input[name=numero]{text-transform:uppercase;font-family:ui-monospace,Consolas,monospace}
.lookup-result{max-width:760px;margin:0 auto}

/* Panel del taller */
.panel-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.panel-order{margin-bottom:22px;padding:22px;background:var(--white);border:1px solid var(--line)}
.panel-order header{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:14px}
.panel-order h2{font:700 20px ui-monospace,Consolas,monospace;letter-spacing:.04em}
.panel-order time{margin-left:auto;font-size:13px;color:var(--muted)}
.panel-order h3{font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;color:var(--muted)}
.panel-order p,.panel-order ul{margin:0 0 8px;padding:0;list-style:none;font-size:14px}
.panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.panel-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.badge{padding:4px 12px;border-radius:999px;background:var(--sand);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.badge.s-pagado{background:#d9e8d8}.badge.s-en_fabricacion{background:#f0e2bd}.badge.s-enviado{background:#d2e0ee}.badge.s-entregado{background:var(--green);color:var(--paper)}.badge.s-cancelado{background:#efc9c0}
.panel-stock{margin-top:30px}
.stock-scroll{overflow:auto;margin-top:12px}
.stock-scroll table{border-collapse:collapse;font-size:13px;min-width:640px}
.stock-scroll th,.stock-scroll td{padding:6px 10px;border:1px solid var(--line);text-align:center}
.stock-scroll small{color:var(--muted)}
.success-head h1:focus,.success-head h1:focus-visible{outline:none}

/* Variantes generadas con IA: siempre despues de las originales y con marca visible. */
#main-product-photo{position:relative}
.ai-mark{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:5px 10px;background:rgba(246,243,235,.92);color:#3a342b;border:1px solid rgba(58,52,43,.25);font-size:11px;line-height:1.3;letter-spacing:.02em}
.ai-mark[hidden]{display:none}
.thumbnails{flex-wrap:wrap}
.thumb{position:relative}
.thumb .ai-tag{position:absolute;right:4px;bottom:4px;padding:1px 5px;background:rgba(246,243,235,.92);color:#3a342b;border:1px solid rgba(58,52,43,.25);font-size:9px;line-height:1.3;letter-spacing:.06em}
