/* =========================================================================
   vvlo02-4 — piezas propias de la variante institucional.
   Regla heredada de vvlo02-3: cero literales de color fuera de marca y papel.
   Todo alfa sale de rgba(var(--on-page-rgb), .N) o de la tinta del papel.
   ========================================================================= */

/* --- salida a viveloonline.com --------------------------------------- */
.out-ic{width:.85em;height:.85em;vertical-align:-.05em;flex:none;display:inline-block}
.nav-out{display:inline-flex;align-items:center;gap:5px}
.drawer-out{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.drawer-out small{flex-basis:100%}
.handoff-hint{margin-top:14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(var(--on-page-rgb),.5)}
.buyer-note{margin-top:18px;font-size:12px;color:rgba(var(--on-page-rgb),.6)}
.buyer-note a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1059px){ .nav-boletos{display:none} }

.out-pill{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;letter-spacing:.08em;
  text-transform:lowercase;color:var(--paper-fg-2);white-space:nowrap}

/* La vitrina: 6 cards; en móvil se ven 2 por fila para que quepan sin scroll largo */
.cards.vitrina{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cards.vitrina .card-body{padding:12px}
.cards.vitrina .card-body h3,.cards.vitrina .card-body h4{font-size:15px}
.cards.vitrina .out-pill{display:none}
@media (min-width:760px){
  .cards.vitrina{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  .cards.vitrina .card-body{padding:16px}
  .cards.vitrina .card-body h3,.cards.vitrina .card-body h4{font-size:18px}
  .cards.vitrina .out-pill{display:inline-flex}
}

.handoff{margin-top:26px;display:grid;grid-template-columns:auto 1fr;gap:14px 16px;align-items:center;
  padding:20px;border-radius:18px;border:1px solid var(--hairline);
  background:rgba(var(--on-page-rgb),.04);transition:border-color .2s}
.handoff:hover{border-color:currentColor}
.handoff-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--grad);color:#fff}
.handoff-ic .out-ic{width:18px;height:18px}
.handoff-txt b{display:block;font-size:17px;font-weight:600;letter-spacing:-.01em}
.handoff-txt small{display:block;margin-top:4px;font-size:14px;line-height:1.5;color:rgba(var(--on-page-rgb),.66)}
.handoff .btn{grid-column:1/-1;justify-self:start}
.handoff:not(:has(.handoff-ic)){grid-template-columns:1fr}
@media (min-width:760px){
  .handoff{grid-template-columns:auto 1fr auto;padding:22px 26px}
  .handoff .btn{grid-column:auto}
  .handoff:not(:has(.handoff-ic)){grid-template-columns:1fr auto}
}

/* --- Club: teléfonos ------------------------------------------------- */
.club-teaser{display:grid;gap:34px;grid-template-columns:1fr;align-items:center}
.club-teaser>*{min-width:0}
@media (min-width:900px){ .club-teaser{grid-template-columns:1.1fr .9fr} }
.phones{display:flex;gap:14px;justify-content:center;align-items:flex-start}
.phones img{width:min(44%,230px);height:auto;aspect-ratio:780/1688;object-fit:cover;border-radius:26px;border:6px solid rgba(var(--on-page-rgb),.12);
  box-shadow:0 30px 60px -30px rgba(var(--ink-rgb),.6);background:var(--bg-3)}
.phones img:nth-child(2){margin-top:44px}
.phones-sm img{width:min(60%,220px)}

/* --- Agenda: maqueta de «Mi agenda» y del link de pago ---------------- */
.agenda-mock,.paylink-mock{background:var(--paper);color:var(--paper-fg);border-radius:20px;padding:18px;
  box-shadow:0 30px 60px -34px rgba(var(--ink-rgb),.55);max-width:440px;margin-inline:auto;
  --page:var(--paper);--page-rgb:var(--paper-rgb);--on-page-rgb:var(--ink-rgb);--hairline:rgba(var(--ink-rgb),.14)}
.am-head{display:flex;justify-content:space-between;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--paper-fg-2);padding-bottom:12px;border-bottom:1px solid var(--paper-line);margin-bottom:6px}
.am-slot{display:grid;grid-template-columns:46px 1fr;gap:10px;padding:8px 0}
.am-time{font-size:12px;color:var(--paper-fg-2);padding-top:10px}
.am-s{border-radius:12px;padding:10px 12px;border:1px solid var(--paper-line);display:grid;gap:2px;position:relative}
.am-s b{font-size:14.5px;font-weight:600;letter-spacing:-.01em;padding-right:86px}
.am-s small{font-size:12.5px;color:var(--paper-fg-2)}
.am-s i{position:absolute;top:10px;right:10px;font-style:normal;font-family:'JetBrains Mono',monospace;font-size:10px;
  letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:99px;border:1px solid currentColor}
.am-free i{color:var(--paper-fg)}
.am-paid{border-left:3px solid var(--magenta)} .am-paid i{color:var(--magenta)}
.am-wait i{color:var(--naranja)}
.am-pend i{color:var(--paper-fg-2)}

.paylink-mock{padding:22px}
.pl-k{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-fg-2)}
.paylink-mock h3{font-size:24px;font-weight:700;letter-spacing:-.03em;margin:6px 0 14px}
.pl-row{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;padding:5px 0}
.pl-row span{color:var(--paper-fg-2)}
.pl-tot{font-size:18px} .pl-tot span{color:var(--paper-fg)} .pl-tot b{font-size:22px;letter-spacing:-.02em}
.pl-due{margin-top:10px;font-size:11px;color:var(--naranja)}

/* --- Formulario conversacional --------------------------------------- */
.lead-wrap{display:grid;gap:28px;grid-template-columns:1fr}
.lead-wrap>*{min-width:0}
@media (min-width:960px){ .lead-wrap{grid-template-columns:1.5fr 1fr;align-items:start} }
.lead{background:var(--paper);color:var(--paper-fg);border-radius:22px;padding:20px;min-height:420px;
  --page:var(--paper);--page-rgb:var(--paper-rgb);--on-page:var(--paper-fg);--on-page-rgb:var(--ink-rgb);--hairline:rgba(var(--ink-rgb),.16);
  box-shadow:0 30px 60px -40px rgba(var(--ink-rgb),.5)}
@media (min-width:760px){ .lead{padding:30px 34px} }
.lead-top{display:flex;justify-content:space-between;align-items:center;min-height:32px}
.lead-back{background:none;border:0;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--paper-fg-2);padding:6px 0}
.lead-back svg{width:16px;height:16px}
.lead-step{margin-left:auto;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-fg-2)}
.lead-bar{height:3px;border-radius:3px;background:var(--paper-line);margin:10px 0 24px;overflow:hidden}
.lead-bar i{display:block;height:100%;width:0;background:var(--grad);transition:width .35s cubic-bezier(.2,.8,.3,1)}
.lead-q{border:0;padding:0;margin:0;min-width:0}
.lead-legend{font-size:clamp(24px,4.6vw,34px);font-weight:700;letter-spacing:-.035em;line-height:1.08;margin-bottom:20px}
.lead-ops{display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:600px){ .lead-ops{grid-template-columns:1fr 1fr} }
.lead-op{text-align:left;font:inherit;font-size:16px;line-height:1.3;padding:15px 16px;border-radius:14px;
  border:1.5px solid var(--paper-line);background:transparent;color:var(--paper-fg);cursor:pointer;
  transition:border-color .15s,background .15s,transform .15s;min-height:56px}
.lead-op:hover{border-color:var(--paper-fg)}
.lead-op:active{transform:scale(.98)}
.lead-op[aria-pressed="true"]{background:var(--grad);border-color:transparent;color:#fff}
.op-new{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:99px;
  border:1px solid var(--magenta);color:var(--magenta);margin-left:4px;vertical-align:2px}
.lead-op[aria-pressed="true"] .op-new{border-color:#fff;color:#fff}
.lead-fields{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:600px){ .lead-fields{grid-template-columns:1fr 1fr} .field-wide{grid-column:1/-1} }
.lead .field label{display:block;font-size:13.5px;font-weight:500;margin-bottom:6px}
.lead .field label small{font-weight:400;color:var(--paper-fg-2)}
.lead .field input,.lead .field textarea{width:100%;font:inherit;font-size:16px;padding:13px 14px;border-radius:12px;
  border:1.5px solid var(--paper-line);background:transparent;color:var(--paper-fg)}
.lead .field textarea{min-height:110px;resize:vertical}
.lead .field input:focus,.lead .field textarea:focus{outline:none;border-color:var(--naranja)}
.field-help{display:block;margin-top:5px;font-size:12.5px;color:var(--paper-fg-2)}
.field-bad input{border-color:var(--magenta)!important}
.lead-send{margin-top:22px;width:100%;justify-content:center}
@media (min-width:600px){ .lead-send{width:auto} }
.lead-done{text-align:center;padding:30px 0}
.done-ic{width:58px;height:58px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;background:var(--grad);color:#fff}
.done-ic svg{width:26px;height:26px}

.lead-side{display:grid;gap:18px;align-content:start}
@media (min-width:960px){ .lead-side{position:sticky;top:96px} }
.lead-side-k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(var(--on-page-rgb),.5)}
.lead-summary{display:grid;gap:10px;margin:0}
.lead-summary div{display:grid;grid-template-columns:86px 1fr;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--hairline)}
.lead-summary div:only-child{grid-template-columns:1fr}
.lead-summary dt{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--on-page-rgb),.5);padding-top:3px}
.lead-summary dd{margin:0;font-size:15px;color:rgba(var(--on-page-rgb),.85)}
.lead-reply{padding:16px 18px;border-radius:16px;background:var(--grad);color:#fff;display:grid;gap:4px}
.lead-reply b{font-size:16px} .lead-reply span{font-size:14px;opacity:.92;line-height:1.45}
.lead-direct{margin-top:6px}

/* --- vitrina vacía ------------------------------------------------------
   Los slides y las cards los pone cada noche la Lambda de la vitrina entre los
   marcadores <!--vitrina:…-->. Si llegan vacíos, la home no puede verse rota:
   el carrusel entero (rail, flechas y barras) desaparece, el hero ocupa todo el
   ancho y la grilla no deja hueco. El bloque «Toda la cartelera» siempre se ve. */
.carousel:not(:has(.slide)){display:none}
.hero-in:not(:has(.slide)){grid-template-columns:1fr}
.cards.vitrina:not(:has(.card)){display:none}
.cards.vitrina:not(:has(.card)) + .handoff{margin-top:0}

/* --- contacto: envío ---------------------------------------------------- */
/* Honeypot fuera de vista (no display:none: algunos bots lo saltan por eso). */
.lead-hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.lead-error{margin-top:18px;padding:12px 14px;border-radius:12px;border:1px solid var(--magenta);
  font-size:14px;line-height:1.5;color:var(--paper-fg)}
.lead-error a{text-decoration:underline;text-underline-offset:3px}
.lead-send:disabled{opacity:.6;cursor:progress}

/* Con Boletería y Club el menú tiene más ítems: ninguno se parte en dos líneas. */
.nav-links>a,.nav-links>.has-menu>button{white-space:nowrap}
@media (min-width:1060px) and (max-width:1240px){.nav-links>a,.nav-links>.has-menu>button{font-size:14px}}

/* --- Logos de clientes (componente Clientes.astro) -------------------- */
.clientes{margin-top:30px}
.clientes-k{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(var(--on-page-rgb),.5);margin-bottom:14px}
.clientes-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.clientes-grid li:last-child:nth-child(odd){grid-column:1/-1}
@media (min-width:600px){ .clientes-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px} .clientes-grid li:last-child:nth-child(odd){grid-column:auto} }
.clientes-grid li{background:var(--paper);border-radius:14px;height:84px;display:flex;align-items:center;justify-content:center;padding:14px 18px;
  box-shadow:0 1px 2px rgba(var(--ink-rgb),.06)}
.clientes-grid img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(100%) opacity(.8);transition:filter .25s}
.clientes-grid img.chico{max-height:60%}
.clientes-grid li:hover img{filter:none}
.clientes-socio{margin-top:14px;font-size:14px;color:rgba(var(--on-page-rgb),.62)}
