.cv-carrusel{
  --cv-alto:360px;
  --cv-escala:1;
  --cv-h:calc(var(--cv-alto) * var(--cv-escala));
  --cv-ancho:calc(var(--cv-h) * .32);
  --cv-vino:#6d1a2c;
  --cv-tinta:#2b1a1c;
  --cv-suave:#7a6a66;
  --cv-fondo:transparent;
  position:relative;max-width:100%;overflow:hidden;
  padding:24px 16px 28px;background:var(--cv-fondo);border-radius:16px;
  text-align:center;outline:none;user-select:none;-webkit-user-select:none;
  font-family:inherit;
}
.cv-carrusel:focus-visible{box-shadow:0 0 0 3px rgba(109,26,44,.35)}
.cv-escena{position:relative;height:calc(var(--cv-h) + 50px);perspective:1800px;cursor:grab;touch-action:pan-y}
.cv-escena.cv-arrastrando{cursor:grabbing}
.cv-anillo{position:absolute;left:50%;top:10px;width:var(--cv-ancho);height:var(--cv-h);
  margin-left:calc(var(--cv-ancho) / -2);transform-style:preserve-3d;
  transition:transform .9s cubic-bezier(.22,.7,.2,1)}
.cv-botella{position:absolute;inset:0;margin:0;cursor:pointer;
  transition:transform .9s cubic-bezier(.22,.7,.2,1),opacity .6s ease,filter .6s ease}
.cv-botella img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;
  filter:drop-shadow(0 14px 14px rgba(0,0,0,.25))}
.cv-botella.cv-activa{cursor:default}
.cv-enlace{display:block;width:100%;height:100%;cursor:pointer;-webkit-user-drag:none}
.cv-botella.cv-activa .cv-enlace{cursor:pointer}
.cv-botella.cv-activa .cv-enlace:hover img{transform:translateY(-4px)}
.cv-botella img{transition:transform .3s ease}
.cv-enlace:focus-visible{outline:2px solid var(--cv-vino);outline-offset:4px;border-radius:6px}
.cv-suelo{position:absolute;left:50%;bottom:6px;width:min(70%,560px);height:40px;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(60,20,25,.28),transparent 70%);pointer-events:none}
.cv-info{min-height:4.2em;margin-top:6px}
.cv-nombre{margin:0 0 4px;font-size:1.5rem;line-height:1.2;color:var(--cv-tinta);letter-spacing:.01em}
.cv-texto{margin:0;color:var(--cv-suave);font-size:1rem}
.cv-controles{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:10px}
.cv-controles button.cv-prev,.cv-controles button.cv-next{
  width:44px;height:44px;border-radius:50%;border:1.5px solid var(--cv-vino);background:transparent;
  color:var(--cv-vino);font-size:28px;line-height:1;padding:0 0 3px;cursor:pointer;transition:background .2s,color .2s}
.cv-controles button.cv-prev:hover,.cv-controles button.cv-next:hover{background:var(--cv-vino);color:#fff}
.cv-puntos{display:flex;gap:8px}
.cv-puntos button{width:9px;height:9px;padding:0;border-radius:50%;border:0;background:rgba(109,26,44,.25);cursor:pointer;transition:transform .2s,background .2s}
.cv-puntos button[aria-current="true"]{background:var(--cv-vino);transform:scale(1.35)}
@media (max-width:600px){.cv-nombre{font-size:1.25rem}}
@media (prefers-reduced-motion:reduce){.cv-anillo,.cv-botella{transition:none}}
.cv-botella img{object-position:center bottom}
.cv-fondo-blanco img{mix-blend-mode:multiply;filter:none}
.cv-controles[hidden]{display:none}
.cv-botella[data-ficha].cv-activa{cursor:zoom-in}
.cv-botella[data-ficha].cv-activa .cv-enlace{cursor:zoom-in}
.cv-botella[data-ficha].cv-activa:hover img{transform:translateY(-4px)}
/* Botón «Ficha técnica» bajo el nombre */
.cv-ver-ficha{margin-top:12px;display:inline-flex;align-items:center;gap:8px;padding:9px 22px;border-radius:999px;
  border:1.5px solid var(--cv-vino);background:transparent;color:var(--cv-vino);font:inherit;font-weight:600;font-size:.95rem;
  letter-spacing:.03em;cursor:pointer;transition:background .2s,color .2s}
.cv-ver-ficha::before{content:"";width:14px;height:16px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M2 0h7l5 5v9a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm1 7v1.5h8V7zm0 3v1.5h8V10zm0-6v1.5h4V4z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M2 0h7l5 5v9a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm1 7v1.5h8V7zm0 3v1.5h8V10zm0-6v1.5h4V4z'/%3E%3C/svg%3E") center/contain no-repeat}
.cv-ver-ficha:hover,.cv-ver-ficha:focus-visible{background:var(--cv-vino);color:#fff;outline:none}
.cv-ver-ficha[hidden]{display:none}
.cv-info{min-height:6.8em}

/* Ventana con la ficha del vino (casi a pantalla completa) */
.cv-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:4vh 4vw;opacity:0;transition:opacity .25s ease}
.cv-modal[hidden]{display:none}
.cv-modal.cv-visible{opacity:1}
.cv-modal-fondo{position:absolute;inset:0;background:rgba(20,8,10,.85);cursor:zoom-out}
.cv-modal-caja{position:relative;width:100%;height:100%;max-width:1400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  transform:scale(.97);transition:transform .25s ease;pointer-events:none}
.cv-modal.cv-visible .cv-modal-caja{transform:scale(1)}
.cv-modal-caja>*{pointer-events:auto}
.cv-modal-zona{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:10px}
.cv-modal-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px;background:#fff;
  box-sizing:border-box;padding:clamp(18px,4vw,48px);box-shadow:0 20px 60px rgba(0,0,0,.45);cursor:zoom-in}
.cv-zoom .cv-modal-zona{overflow:auto;display:block;-webkit-overflow-scrolling:touch}
.cv-zoom .cv-modal-img{padding:clamp(24px,5vw,60px);max-width:none;max-height:none;width:200%;min-width:1400px;cursor:zoom-out;border-radius:0}
.cv-modal-ayuda{margin:0;color:rgba(255,255,255,.75);font-size:.85rem}
.cv-zoom .cv-modal-ayuda{visibility:hidden}
.cv-modal-cerrar{position:absolute;top:6px;right:6px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#2b1a1c;
  font-size:28px;line-height:1;padding:0 0 3px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.35);z-index:2}
.cv-modal-cerrar:hover{background:#6d1a2c;color:#fff}
.cv-modal-tienda{flex:none;display:inline-block;padding:11px 26px;border-radius:999px;background:#6d1a2c;color:#fff!important;text-decoration:none!important;font-weight:600;letter-spacing:.02em}
.cv-modal-tienda[hidden]{display:none}
.cv-modal-tienda:hover{background:#8a2338}
html.cv-sin-scroll{overflow:hidden}
@media (max-width:600px){
  .cv-modal{padding:16px 12px}
  .cv-zoom .cv-modal-img{min-width:900px}
}
