/* Catálogo y tarjetas de vino (catalogo.html y páginas de cada D.O.) */
.cat-wrap{max-width:1400px;margin:0 auto;padding:0 1.5rem 6rem;position:relative;z-index:1}
.cat-layout{display:grid;grid-template-columns:270px 1fr;gap:2rem;align-items:start}
.cat-sidebar{position:sticky;top:90px;background:var(--black-card);border:1px solid rgba(184,134,11,0.18);padding:1.5rem 1.3rem;max-height:calc(100vh - 110px);overflow-y:auto}
.cat-sidebar::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,var(--gold),transparent)}
.cat-sidebar-title{font-family:'Cinzel',serif;font-size:0.62rem;letter-spacing:0.4em;color:var(--gold);text-transform:uppercase;padding-bottom:0.8rem;border-bottom:1px solid rgba(184,134,11,0.15);margin-bottom:1.1rem;display:flex;justify-content:space-between;align-items:center}
.cat-sidebar-clear{font-family:'Cinzel',serif;font-size:0.5rem;letter-spacing:0.25em;color:var(--gold-dark);background:transparent;border:none;cursor:pointer;text-transform:uppercase}
.cat-sidebar-clear:hover{color:var(--gold)}
.filter-group{margin-bottom:2.6rem}
.filter-group-label{font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.35em;color:var(--gold-dark);text-transform:uppercase;display:block;margin-bottom:0.7rem}
.filter-group-btns{display:flex;gap:0.35rem;flex-wrap:wrap}
.filter-btn{background:transparent;border:1px solid rgba(184,134,11,0.25);color:var(--gold-dark);padding:0.38rem 0.85rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.22em;text-transform:uppercase;cursor:pointer;transition:all 0.25s}
.filter-btn:hover,.filter-btn.active{background:rgba(184,134,11,0.12);border-color:var(--gold);color:var(--gold)}
.price-range{position:relative;padding:0.3rem 0 1.8rem}
.price-range-values{display:flex;justify-content:space-between;font-family:'Cormorant Garamond',serif;color:var(--gold-light);font-size:1rem;margin-bottom:0.6rem}
.price-range::before{content:'';position:absolute;left:0;right:0;top:50%;height:2px;background:rgba(184,134,11,0.25);transform:translateY(-50%);z-index:0}
.price-range-slider{position:absolute;top:50%;left:0;width:100%;-webkit-appearance:none;appearance:none;height:2px;background:transparent;outline:none;cursor:pointer;margin:0;transform:translateY(-50%);pointer-events:none}
.price-range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--gold);cursor:pointer;border-radius:50%;border:2px solid var(--gold-dark);pointer-events:auto;position:relative;z-index:2}
.price-range-slider::-moz-range-thumb{width:14px;height:14px;background:var(--gold);cursor:pointer;border-radius:50%;border:2px solid var(--gold-dark);pointer-events:auto}
.price-range-labels{display:flex;justify-content:space-between;font-family:'Cinzel',serif;color:var(--gold-dark);font-size:0.5rem;letter-spacing:0.2em;margin-top:0.3rem}
.cat-main{min-width:0}
.cat-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0.8rem 0;border-bottom:1px solid rgba(184,134,11,0.12)}
.cat-count{font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.3em;color:var(--gold-dark);text-transform:uppercase}
.cat-sort{background:transparent;border:1px solid rgba(184,134,11,0.2);color:var(--gold-dark);font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.2em;padding:0.4rem 0.9rem;text-transform:uppercase;cursor:pointer}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;background:transparent}
.cat-mobile-toggle{display:none;background:var(--black-card);border:1px solid rgba(184,134,11,0.3);color:var(--gold);padding:0.8rem 1.2rem;font-family:'Cinzel',serif;font-size:0.58rem;letter-spacing:0.3em;text-transform:uppercase;cursor:pointer;margin-bottom:1rem;width:100%;text-align:center}
@media(max-width:900px){
  .cat-layout{grid-template-columns:1fr}
  .cat-sidebar{position:static;max-height:none;display:none}
  .cat-sidebar.open{display:block}
  .cat-mobile-toggle{display:block}
}
.wine-card{background:var(--black-card);display:flex;flex-direction:column;position:relative;overflow:hidden;transition:background 0.4s,box-shadow 0.4s,transform 0.4s;box-shadow:0 2px 8px rgba(26,21,16,0.04);border:1px solid rgba(184,134,11,0.08)}
.wine-card:hover{background:#FFFAF5;box-shadow:0 6px 20px rgba(26,21,16,0.1);transform:translateY(-2px)}
.wine-card.hidden{display:none}
.wine-card-link{display:block;text-decoration:none;color:inherit}
.wine-card-top{height:380px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:linear-gradient(160deg,rgba(184,134,11,0.05) 0%,rgba(245,240,234,0) 100%);cursor:pointer}
.wine-card-top::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,var(--black-card) 100%)}

/* ── PARKER BADGE HOVER ── */
.parker-hover{position:absolute;inset:0;background:rgba(26,21,16,0.92);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity 0.35s;z-index:3;pointer-events:none}
.wine-card:hover .parker-hover{opacity:1}
.parker-score{font-family:'Cormorant Garamond',serif;font-size:3.5rem;font-weight:600;color:#F0D080;line-height:1;display:block}
.parker-label{font-family:'Cinzel',serif;font-size:0.58rem;letter-spacing:0.45em;color:#D4A843;text-transform:uppercase;margin-top:0.3rem;display:block;font-weight:600}
.parker-stars{color:#D4A843;font-size:0.9rem;margin-top:0.5rem;letter-spacing:0.15em}
/* ── VALBUENA OFFER ── */
.price-was{font-family:'Cormorant Garamond',serif;font-size:1rem;color:rgba(74,63,48,0.4);text-decoration:line-through;display:block;margin-bottom:0.1rem}
.price-offer-badge{font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.3em;color:#fff;background:var(--gold-dark);padding:0.2rem 0.6rem;text-transform:uppercase;display:inline-block;margin-bottom:0.4rem}

.wine-badge{position:absolute;top:1rem;right:1rem;font-family:'Cinzel',serif;font-size:0.5rem;letter-spacing:0.3em;color:#fff;border:1px solid var(--gold-dark);padding:0.3rem 0.7rem;background:linear-gradient(135deg,var(--gold-dark),var(--gold));z-index:2;text-transform:uppercase;font-weight:600;box-shadow:0 2px 6px rgba(184,134,11,0.25)}
.wine-type-badge{position:absolute;top:1rem;left:1rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.3em;padding:0.3rem 0.75rem;z-index:2;text-transform:uppercase;display:flex;align-items:center;gap:5px;font-weight:600;box-shadow:0 2px 6px rgba(26,21,16,0.1)}
.wine-type-badge::before{content:'';width:8px;height:8px;border-radius:50%;display:inline-block}
.wine-type-badge.tinto{color:#fff;border:1px solid var(--red-dark);background:var(--red)}
.wine-type-badge.tinto::before{background:#fff;box-shadow:0 0 4px rgba(255,255,255,0.9)}
.wine-type-badge.blanco{color:var(--white);border:1px solid var(--gold-dark);background:var(--gold-light)}
.wine-type-badge.blanco::before{background:var(--white);box-shadow:0 0 4px rgba(26,21,16,0.4)}
.wine-parker-badge{position:absolute;top:2.75rem;left:1rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.28em;color:#fff;border:1px solid rgba(26,21,16,0.4);background:linear-gradient(135deg,var(--gold-dark),var(--gold));padding:0.3rem 0.7rem;z-index:2;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px;box-shadow:0 2px 8px rgba(26,21,16,0.2);font-weight:600}
.wine-suckling-badge{position:absolute;top:4.5rem;left:1rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.28em;color:#fff;border:1px solid rgba(26,21,16,0.4);background:linear-gradient(135deg,#5C1F1F,#7D2B2B);padding:0.3rem 0.7rem;z-index:2;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px;box-shadow:0 2px 8px rgba(26,21,16,0.2);font-weight:600}
.wine-penin-badge{position:absolute;top:6.25rem;left:1rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.28em;color:#fff;border:1px solid rgba(26,21,16,0.4);background:linear-gradient(135deg,#1F4D2A,#2D6B3D);padding:0.3rem 0.7rem;z-index:2;text-transform:uppercase;display:inline-flex;align-items:center;gap:5px;box-shadow:0 2px 8px rgba(26,21,16,0.2);font-weight:600}
.parker-star-icon{color:var(--gold-light);filter:drop-shadow(0 0 3px rgba(212,168,67,0.5));flex-shrink:0}
.wine-vintage-badge{position:absolute;top:1rem;left:1rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.3em;color:var(--white);border:1px solid var(--gold-dark);background:var(--black-card);padding:0.3rem 0.75rem;z-index:2;text-transform:uppercase;font-weight:600;box-shadow:0 2px 4px rgba(26,21,16,0.08)}
/* ── SEARCH ── */
.cat-search-wrap{position:relative;margin-bottom:1rem}
.cat-search-icon{position:absolute;left:0.85rem;top:50%;transform:translateY(-50%);color:var(--gold-dark);pointer-events:none}
.cat-search{width:100%;background:#fff;border:1.5px solid rgba(184,134,11,0.3);color:var(--white);font-family:'Cormorant Garamond',serif;font-size:1.05rem;padding:0.85rem 1rem 0.85rem 2.5rem;outline:none;transition:border-color 0.25s,box-shadow 0.25s}
.cat-search::placeholder{color:var(--text-mute);font-style:italic}
.cat-search:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,134,11,0.12)}
/* ── ACTIVE FILTER CHIPS ── */
.cat-active-chips{display:none;flex-wrap:wrap;gap:0.4rem;margin-bottom:0.9rem}
.chip{display:inline-flex;align-items:center;gap:0.4rem;background:rgba(184,134,11,0.1);border:1px solid var(--gold);color:var(--gold-dark);font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.22em;padding:0.42rem 0.8rem;text-transform:uppercase;cursor:pointer;transition:background 0.2s,color 0.2s;font-weight:600}
.chip:hover{background:var(--gold-dark);color:#fff}
.chip-x{font-size:0.9rem;line-height:1;font-weight:700}
.bottle-img{height:330px;width:auto;max-width:170px;object-fit:contain;position:relative;z-index:1;transition:transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94);filter:drop-shadow(0 10px 24px rgba(26,21,16,0.25))}
.wine-card:hover .bottle-img{transform:translateY(-10px) scale(1.05)}
.wine-card-body{padding:1.5rem 1.8rem 1.8rem;flex:1;display:flex;flex-direction:column}
.wine-region{font-family:'Cinzel',serif;font-size:0.6rem;letter-spacing:0.4em;color:var(--gold-dark);text-transform:uppercase;margin-bottom:0.4rem;font-weight:600}
.wine-title{font-family:'Cormorant Garamond',serif;font-size:1.7rem;font-weight:600;color:var(--white);line-height:1.1;margin-bottom:0.25rem;text-decoration:none;transition:color 0.3s}
.wine-card:hover .wine-title{color:var(--gold-dark)}
.wine-vintage{font-family:'Raleway',sans-serif;font-size:0.7rem;letter-spacing:0.15em;color:var(--white-dim);margin-bottom:0.9rem;font-weight:500}
.wine-desc{font-family:'Cormorant Garamond',serif;font-size:0.95rem;font-style:italic;color:var(--white-dim);line-height:1.6;flex:1;margin-bottom:1.5rem}
.wine-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;border-top:1px solid rgba(184,134,11,0.18);padding-top:1.2rem;margin-top:auto}
.price-label{font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.28em;color:var(--text-mute);text-transform:uppercase;display:block;margin-bottom:2px;font-weight:600}
.price-amount{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:700;color:var(--gold-dark);line-height:1;white-space:nowrap}
.price-dec{font-size:0.92rem;font-weight:500;color:var(--gold-dark);margin-left:1px;letter-spacing:0.02em}
.price-unit{font-family:'Raleway',sans-serif;font-size:0.62rem;color:var(--text-mute);display:block;margin-top:2px}
.qty-add{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}
.qty-btn{width:30px;height:30px;background:transparent;border:1px solid var(--gold-dark);color:var(--white);font-size:1rem;cursor:pointer;transition:all 0.3s;display:flex;align-items:center;justify-content:center;font-weight:600}
.qty-btn:hover{background:var(--gold-light);border-color:var(--gold);color:#fff}
.qty-num{font-family:'Cinzel',serif;font-size:0.72rem;color:var(--white);min-width:18px;text-align:center;font-weight:600}
.add-btn{background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:#fff;border:none;padding:0.6rem 1.1rem;font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.25em;text-transform:uppercase;cursor:pointer;transition:opacity 0.3s,transform 0.3s;white-space:nowrap;font-weight:600;box-shadow:0 2px 8px rgba(184,134,11,0.25)}
.add-btn:hover{opacity:0.92;transform:translateY(-1px)}
.add-btn.added{background:linear-gradient(135deg,#1a6b30,#25a244);color:white}
.view-btn{display:block;text-align:center;padding:0.75rem;font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.3em;color:var(--text-mute);text-decoration:none;text-transform:uppercase;border-top:1px solid rgba(184,134,11,0.15);transition:color 0.3s,background 0.3s;font-weight:500}
.view-btn:hover{color:#fff;background:var(--red)}
.cart-float{position:fixed;bottom:2rem;right:2rem;z-index:500;background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:#fff;padding:0.95rem 1.7rem;font-family:'Cinzel',serif;font-size:0.64rem;letter-spacing:0.25em;text-decoration:none;text-transform:uppercase;box-shadow:0 8px 24px rgba(184,134,11,0.35);display:flex;align-items:center;gap:0.7rem;transform:translateY(100px);transition:transform 0.4s;font-weight:600}
.cart-float.visible{transform:translateY(0)}
.cart-float-count{background:#fff;color:var(--gold-dark);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.64rem;font-weight:700}
@media(max-width:640px){.cat-grid{grid-template-columns:1fr}.wine-footer{flex-direction:column;align-items:flex-start;gap:0.8rem}}
/* ── STOCK BADGE ── */
.stock-badge{display:inline-flex;align-items:center;gap:0.35rem;font-family:'Cinzel',serif;font-size:0.52rem;letter-spacing:0.25em;text-transform:uppercase;padding:0.28rem 0.75rem;margin-bottom:0.6rem;font-weight:600}
.stock-badge.in-stock{color:#1a6b30;border:1px solid rgba(26,107,48,0.4);background:rgba(26,107,48,0.08)}
.stock-badge.in-stock::before{content:'';width:6px;height:6px;border-radius:50%;background:#1a6b30;flex-shrink:0}
.stock-badge.low-stock{color:#8B6914;border:1px solid rgba(139,105,20,0.45);background:rgba(139,105,20,0.1)}
.stock-badge.low-stock::before{content:'';width:6px;height:6px;border-radius:50%;background:#8B6914;flex-shrink:0}
.stock-badge.out-stock{color:var(--red-dark);border:1px solid var(--red);background:rgba(125,43,43,0.08)}
.stock-badge.out-stock::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--red);flex-shrink:0}
.add-btn:disabled{opacity:0.35;cursor:not-allowed;transform:none}
.consultar-btn{display:inline-flex;align-items:center;gap:0.4rem;background:transparent;border:1.5px solid var(--gold);color:var(--gold-dark);padding:0.6rem 1.1rem;font-family:'Cinzel',serif;font-size:0.55rem;letter-spacing:0.25em;text-transform:uppercase;text-decoration:none;transition:all 0.3s;white-space:nowrap;font-weight:600}
.consultar-btn:hover{background:var(--gold-dark);color:#fff}
.price-consultar{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-style:italic;color:var(--text-mute)}
.format-badge{font-family:'Cinzel',serif;font-size:0.5rem;letter-spacing:0.3em;color:var(--red);border:1px solid var(--red);padding:0.22rem 0.65rem;text-transform:uppercase;display:inline-block;margin-bottom:0.5rem;font-weight:600}
.cat-loading{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--gold-dark);font-size:1rem;text-align:center;padding:3rem 1rem;grid-column:1/-1}
.cat-empty{font-family:'Cormorant Garamond',serif;font-style:italic;color:rgba(184,134,11,0.55);font-size:1rem;text-align:center;padding:3rem 1rem;display:none}
/* ── PAGINATION ── */
.cat-pager{display:flex;justify-content:center;align-items:center;gap:0.35rem;padding:2rem 1rem 0;flex-wrap:wrap}
.pager-btn{background:transparent;border:1.5px solid rgba(184,134,11,0.3);color:var(--white);font-family:'Cinzel',serif;font-size:0.64rem;letter-spacing:0.2em;padding:0.55rem 0.9rem;min-width:40px;cursor:pointer;transition:all 0.25s;text-transform:uppercase;font-weight:600}
.pager-btn:hover:not(:disabled){background:rgba(125,43,43,0.08);border-color:var(--red);color:var(--red)}
.pager-btn.active{background:var(--gold);border-color:var(--gold-dark);color:#fff}
.pager-btn:disabled{opacity:0.35;cursor:not-allowed}
.pager-gap{color:var(--text-mute);padding:0 0.3rem;font-family:'Cinzel',serif;font-size:0.72rem}
/* ── SKELETON ── */
.skeleton-card{min-height:520px;position:relative;overflow:hidden;background:var(--black-card);border:1px solid rgba(184,134,11,0.08)}
.skeleton-card .sk-img{height:280px;background:linear-gradient(90deg,rgba(184,134,11,0.06) 0%,rgba(125,43,43,0.1) 50%,rgba(184,134,11,0.06) 100%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}
.skeleton-card .sk-lines{padding:1.5rem 1.8rem;display:flex;flex-direction:column;gap:0.7rem}
.skeleton-card .sk-line{height:10px;background:linear-gradient(90deg,rgba(184,134,11,0.06) 0%,rgba(125,43,43,0.1) 50%,rgba(184,134,11,0.06) 100%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite;display:block}
.skeleton-card .sk-l1{width:45%}
.skeleton-card .sk-l2{width:75%;height:18px}
.skeleton-card .sk-l3{width:35%}
.skeleton-card .sk-l4{width:90%;height:32px;margin-top:0.6rem}
@keyframes sk-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.skeleton-card .sk-img,.skeleton-card .sk-line{animation:none}}

/* ── Paginación: la regla global nav{position:fixed} es para el menú, no para esto ── */
.cat-pager{position:static;z-index:auto;background:none;backdrop-filter:none;box-shadow:none;border:none}

/* ── Notas en una fila (solo se ve en móvil) ── */
.wine-scores-m{display:none}

/* ── Móvil: lista horizontal (foto a la izquierda, datos a la derecha) ── */
@media(max-width:640px){
  .cat-grid{grid-template-columns:1fr;gap:0.7rem}
  .wine-card{display:grid;grid-template-columns:104px 1fr;align-items:stretch}
  .wine-card:hover{transform:none}
  .wine-card-link{grid-row:1/3;grid-column:1}
  .wine-card-top{height:100%;min-height:190px;padding:0.6rem 0.2rem}
  .wine-card-top::after{display:none}
  .bottle-img,.wine-card:hover .bottle-img{height:165px;max-width:96px;transform:none}
  .wine-card-top .wine-parker-badge,.wine-card-top .wine-suckling-badge,.wine-card-top .wine-penin-badge,
  .wine-card-top .wine-badge,.wine-card-top .wine-vintage-badge,.parker-hover{display:none}
  .wine-card-body{grid-column:2;padding:0.85rem 0.9rem 0.9rem}
  .wine-region{font-size:0.5rem;margin-bottom:0.15rem}
  .wine-title{font-size:1.2rem;line-height:1.2}
  .wine-vintage{font-size:0.72rem;margin:0.15rem 0 0.4rem}
  .wine-scores-m{display:flex;flex-wrap:wrap;gap:0.3rem;margin-bottom:0.45rem}
  .wine-scores-m span{font-family:'Cinzel',serif;font-size:0.5rem;letter-spacing:0.08em;color:#fff;padding:0.18rem 0.4rem}
  .wine-scores-m .sm-p{background:linear-gradient(135deg,var(--gold-dark),var(--gold))}
  .wine-scores-m .sm-s{background:linear-gradient(135deg,#5C1F1F,#7D2B2B)}
  .wine-scores-m .sm-pe{background:linear-gradient(135deg,#1F4D2A,#2D6B3D)}
  .stock-badge{font-size:0.5rem;padding:0.18rem 0.5rem;margin-bottom:0.3rem;letter-spacing:0.15em}
  .wine-footer{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;padding-top:0.6rem;margin-top:0.4rem}
  .price-label,.price-unit{display:none}
  .price-amount{font-size:1.55rem}
  .qty-add .qty-btn,.qty-add .qty-num{display:none}
  .add-btn{padding:0.6rem 0.9rem}
  .view-btn{display:none}
  #catPagerTop{display:none}
  .cart-float{right:1rem;bottom:1.2rem;padding:0.75rem 1.1rem;font-size:0.55rem}
  .cat-wrap,.do-live-wines{padding-bottom:5rem}
}
