/* VETA v3 · componentes */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;font-weight:600;font-size:.95rem;transition:background .18s,color .18s,border-color .18s;white-space:nowrap}
.btn .ico{width:19px;height:19px}
.btn-primary{background:var(--emerald);color:var(--paper)} .btn-primary:hover{background:var(--emerald-dark)}
.btn-primary:disabled{background:#9DB3AE;cursor:not-allowed}
.btn-outline{border:1.5px solid var(--emerald);color:var(--emerald);background:var(--paper)} .btn-outline:hover{background:var(--emerald-soft)}
.btn-gold{background:var(--gold);color:var(--emerald-dark)} .btn-gold:hover{background:#D7BC84}
.btn-quiet{color:var(--emerald);padding:0 12px;min-height:40px} .btn-quiet:hover{background:var(--emerald-soft)}
.btn-sm{min-height:36px;font-size:.85rem}
.btn-block{width:100%}
.text-link{color:var(--emerald);font-weight:600;text-decoration:underline;text-decoration-color:rgba(15,91,79,.35);text-underline-offset:3px;font-size:.92rem}
.text-link.danger{color:var(--danger);text-decoration-color:rgba(168,50,47,.35)}
.icon-btn{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:var(--emerald-dark)}
.icon-btn:hover{background:var(--emerald-soft)}
.badge,.nav-badge{position:absolute;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gold);color:var(--emerald-dark);font:700 11px/18px var(--ui);text-align:center}
.badge{top:2px;right:0}
.chip{display:inline-block;padding:4px 11px;border-radius:999px;background:var(--emerald-soft);color:var(--emerald-dark);font-size:.82rem;font-weight:600}
.notice{padding:13px 15px;border-left:3px solid var(--gold);background:#FBF5E8;border-radius:0 var(--r-sm) var(--r-sm) 0;color:#5A4623;font-size:.9rem}
.fine-print{font-size:.8rem;color:var(--stone);text-align:center}
.empty{padding:48px 20px;text-align:center;background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-lg);grid-column:1/-1}
.empty h1,.empty h2{font-size:1.7rem;margin-bottom:8px}.empty p{color:var(--stone);margin-bottom:18px}
.center-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.input,.select,.textarea,.filters select{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:var(--r-sm);padding:11px 13px;min-height:46px}
.input:focus,.textarea:focus,.filters select:focus,.search-field:focus-within{border-color:var(--emerald);box-shadow:0 0 0 3px rgba(15,91,79,.12);outline:none}
.textarea{min-height:92px;resize:vertical}
.field{display:grid;gap:5px;font-size:.86rem;font-weight:600;color:var(--stone)}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--paper)}
.stepper button{width:40px;height:40px;display:grid;place-items:center;color:var(--emerald)} .stepper b{min-width:28px;text-align:center}
.stepper.small button{width:34px;height:34px}.stepper.small .ico{width:18px;height:18px}
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 18px);transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--emerald-dark);color:var(--paper);padding:11px 18px;border-radius:999px;font-size:.9rem;z-index:60;transition:.25s;max-width:calc(100% - 32px);text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.modal{position:fixed;inset:0;background:rgba(8,28,25,.82);display:grid;place-items:center;z-index:70;padding:16px}
.modal-card{position:relative;max-width:min(920px,100%);max-height:92vh}
.modal-card img{max-height:88vh;width:auto;margin:auto;border-radius:var(--r-md)}
.modal .icon-btn{position:absolute;background:var(--paper)}
.modal-close{top:10px;right:10px}.modal-prev{left:10px;top:50%;margin-top:-21px}.modal-next{right:10px;top:50%;margin-top:-21px}

/* Tarjeta de producto */
.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 18px}
.product-card{position:relative;display:flex;flex-direction:column}
.product-media{position:relative;display:block;border-radius:var(--r-md);overflow:hidden;background:var(--sand);aspect-ratio:4/5}
.product-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.product-media:hover img{transform:scale(1.035)}
.media-count{position:absolute;left:10px;bottom:10px;background:rgba(255,253,252,.9);font-size:.72rem;font-weight:600;padding:3px 9px;border-radius:999px;color:var(--emerald-dark)}
.heart-btn{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,253,252,.92);color:var(--emerald-dark)}
.heart-btn .ico{width:20px;height:20px}
.heart-btn.active{color:#B8323C}.heart-btn.active .ico{fill:currentColor}
.product-body{padding:11px 2px 0;display:flex;flex-direction:column;gap:3px;flex:1}
.product-col{font-size:.76rem;color:var(--gold-dark);font-weight:600}
.product-body h3{font-size:1.4rem}
.product-spec{font-size:.84rem;color:var(--stone)}
.product-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px}
.metal-chip{font-size:.74rem;font-weight:600;padding:3px 9px 3px 22px;border-radius:999px;background:var(--paper);border:1px solid var(--line);position:relative}
.metal-chip::before{content:"";position:absolute;left:8px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%}
.metal-oro::before,.metal-dot.metal-oro-laminado{background:radial-gradient(circle at 35% 30%,#FFF1C2,#C99A3C 60%,#8A6420)}
.metal-plata::before,.metal-dot.metal-plata{background:radial-gradient(circle at 35% 30%,#fff,#BFC4C8 60%,#6D7277)}
.metal-mixto::before,.metal-dot.metal-dos-metales{background:linear-gradient(90deg,#C99A3C 50%,#BFC4C8 50%)}
@media (max-width:1000px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:680px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.product-body h3{font-size:1.2rem}.product-foot .btn span{display:none}.product-foot .btn{padding:0 10px}}
