/* === HERO – estructura === */
.hero{ position:relative; overflow:hidden; }

.slides{
  position:relative;
  width:100vw;
  /* Desktop: ocupa todo el alto o 16:9, lo que sea menor */
  height: min(100dvh, 56.25vw);   /* 56.25vw = 9/16 de 100vw */
  /* Móvil moderno: usa 100svh para evitar el salto de barras */
}
@supports (height: 100svh){
  .slides{ height: 100svh; }      /* en móvil */
}

/* Slides apiladas */
.slide{
  position:absolute; inset:0;
  opacity:0; transform:scale(1.02);
  transition: opacity .6s ease, transform .8s ease;
}
.slide.active{ opacity:1; transform:scale(1); }

/* Imagen siempre llena */
.slide picture, .slide img{
  width:100%; height:100%;
  display:block; object-fit:cover; object-position:50% 50%;
}
/* Si tu arte necesita subir un poco en desktop grande */
@media (min-width:1200px){ .slide img{ object-position:50% 18%; } }
@media (min-aspect-ratio:21/9){ .slide img{ object-position:50% 14%; } }

/* === OVERLAY FIJO EN EL BORDE INFERIOR DE LA IMAGEN === */
.overlay{
  position:absolute; left:0; right:0;
  /* SIEMPRE dentro del hero: pegado con un guard mínimo */
  bottom: clamp(14px, 3.5vh, 40px);
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  text-align:center; padding:0 12px;
  pointer-events:none;
}

/* Tipografía */
.title{
  font-family: var(--font-title);
  font-size: clamp(70px, 6vw, 80px);
  margin:0; line-height:.95; font-weight:600;
  text-transform:uppercase; letter-spacing:.5px;
  text-shadow: 0 3px 20px rgba(0,0,0,.55);
  color:#fff;
}
.badge{
  background:#ff6b00; color:#fff; font-weight:700;
  padding:.35rem .6rem; border-radius:999px;
  letter-spacing:.3px; font-size:.85rem;
}
/* ========== CTA ========== */
.cta{
  background:#0a0a0a; padding:26px 16px 40px;
  display:flex; flex-direction:column; align-items:center; gap:5px;
  border-top:1px solid #111;
}
.cta h2{
  font-size: clamp(1.9rem, 3.2vw, 1.6rem);
  margin:0; letter-spacing:.8px; text-align:center;
  color: #fff;
}
.cta h2 span{ color:#10f0ff; }

.ticket-box{
  margin-top:6px;
  display:flex; align-items:center; gap:12px;
  border:2px solid #1df9ff; border-radius:14px; padding:10px 16px;
  min-width: 260px; justify-content:space-between; background:#0b0f11;
}
.ticket-box .label{
  padding:.45rem .9rem; border:1px solid #fff; border-radius:10px;
  font-weight:700; letter-spacing:.4px;
  background-color: #fff;
}
.ticket-box .count{
  font-size:1.6rem; font-weight:900;
  color: #fff;
}

.min{ color:#b9e6ea; margin:2px 0 8px }

.chips{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center }
.chips button{
  border:0; padding:.6rem 1rem; border-radius:12px; cursor:pointer;
  background:#0ef; color:#001b1f; font-weight:800;
  box-shadow: 0 0 20px #00f0ff22 inset, 0 0 8px #00f0ff44;
}
.chips button:hover{ filter:brightness(1.05) }

.actions{ display:flex; gap:10px; margin-top:10px }
.btn{
  padding:.7rem 1.1rem; border-radius:12px; cursor:pointer; font-weight:700;
  border:1px solid transparent;
}
.btn.primary{ background:#10f0ff; color:#001b1f }
.btn.primary:disabled{ opacity:.5; cursor:not-allowed }
.btn.secondary{ background:#101417; border-color:#26343a; color:#cfe8ec }

@media (min-width: 900px){
  .slide{ height:100vh; }
  .cta{ padding:30px 0 30px }
  .ticket-box{ min-width: 340px; }
}

/* ----- Velo radial+lineal por ENCIMA de la imagen ----- */
/* Quita este bloque si lo tenías */
/* .slides::after { ... } */

/* Velo por slide: imagen < velo < texto */
.slide{ position:absolute; inset:0; }
.slide picture, .slide img{
  position:absolute; inset:0;
  width:100%; height:100%; display:block;
  object-fit:cover; object-position:50% 50%;
  z-index:0;                   /* capa base: imagen */
}

.slide::after{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  z-index:1;                   /* encima de la foto, debajo del texto */

  /* Radial desde abajo + lineal hacia arriba */
  background:
    radial-gradient(120% 70% at 50% 120%,
      rgba(0,0,0,0.85) 0%,
      rgba(0,0,0,0.55) 25%,
      rgba(0,0,0,0.25) 50%,
      rgba(0,0,0,0.00) 70%),
    linear-gradient(to top,
      rgba(0,0,0,0.65) 0%,
      rgba(0,0,0,0.35) 22%,
      rgba(0,0,0,0.00) 45%);
}

/* Texto siempre arriba del velo */
.overlay{
  position:absolute; left:0; right:0;
  bottom: clamp(14px, 3.5vh, 40px);
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  text-align:center; padding:0 12px;
  pointer-events:none;
  z-index:2;                   /* sobre el velo */
}




/* ====== Payments ====== */
/* ====== Payments (contenedor general se mantiene) ====== */
.payments{
  padding:18px 14px 40px;
  background:#0b0b0b;
  color:#e7f7fb;
  border-top:1px solid #111;
}

/* ====== Card principal ====== */
.payments-head{
  background:#0d2a3a;
  border:1px solid #1c4457;
  border-radius:12px;
  overflow:hidden;            /* para que la barra superior encaje redondeada */
  margin-bottom:14px;
}

/* ====== Barra de “Tutorial con IA” ====== */
.tutorial-bar{
  display:flex; align-items:center; gap:8px;
  text-decoration:none; font-weight:800;
  background:linear-gradient(90deg,#a8ff78,#78ffd6);
  color:#0c1620;
  padding:.6rem .9rem;
  border-bottom:1px solid #91f7c8;
}
.tutorial-ico{ width:50px; height:50px; display:block }

/* Botón tipo pill dentro de la barra */
.tutorial-chip{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.35rem .8rem;
  border-radius:999px;
  background:rgba(255,255,255,.52);
  border:1px solid rgba(255,255,255,5.85);
  color:#0c1620;
  line-height:1; font-weight:900; letter-spacing:.2px;
  box-shadow: 0 1px 0 rgba(0,0,0,.09), inset 0 0 0 1px rgba(255,255,255,.09);
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
  backdrop-filter:saturate(130%);
}

.tutorial-bar:hover .tutorial-chip{
  transform:translateY(-1px);
  background:rgba(255,255,255,.28);
  box-shadow: 0 3px 10px rgba(0,0,0,.08), inset 0 0 0 1px rgba(255,255,255,.12);
}

/* Opcional: que la barra distribuya bonito el icono + chip */
.tutorial-bar{ gap:10px }
.tutorial-ico{ width:45px; height:45px; display:block }
@media (max-width:420px){
  .tutorial-chip{ padding:.3rem .7rem; font-size:.92rem }
}

/* fila del bloque whatsapp */
.wa-row{
  grid-column: 1 / -1;
  display:flex; align-items:center; gap:10px;
  margin-top:8px;
}

/* chip del logo */
.wa-chip{
  width:44px; height:44px;
  display:grid; place-items:center;
  text-decoration:none;
  border-radius:12px;
  background: radial-gradient(circle at 30% 20%, #25d366, #128c7e 70%);
  border:1px solid #33e28f;
  box-shadow: 0 6px 14px rgba(18,140,126,.25), inset 0 0 0 1px rgba(255,255,255,.12);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wa-chip svg{ width:22px; height:22px; fill:#001b1f }
.wa-chip:hover{ transform:translateY(-1px); filter:saturate(1.1); box-shadow:0 10px 18px rgba(18,140,126,.35) }

/* botón/pastilla con el número */
.wa-number{
  flex:1; text-align:center;
  text-decoration:none;
  color:#bff9ff;
  font-weight:900; letter-spacing:1px; font-size:1.08rem;
  padding:.60rem 1rem;
  border-radius:12px;
  background: linear-gradient(180deg,#0f1820,#0a1318);
  border:1px solid #23424f;
  box-shadow:
    inset 0 0 0 1px rgba(16,240,255,.12),
    0 8px 22px rgba(0,0,0,.28);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.wa-number:hover{
  transform: translateY(-1px);
  box-shadow:
    inset 0 0 0 1px rgba(16,240,255,.16),
    0 12px 26px rgba(0,0,0,.34);
}

/* compactar en pantallas pequeñas */
@media (max-width:420px){
  .wa-chip{ width:40px; height:40px; border-radius:10px }
  .wa-number{ font-size:1rem; padding:.65rem .85rem }
}



/* ====== Cuerpo ====== */
.head-body{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:center;
  padding:12px;
}
.bank-ico{ font-size:28px }
.copy h3{ margin:0; font-size:1.05rem; letter-spacing:.6px }
.copy p{ margin:0; opacity:.85; font-size:.9rem }

/* número al final, ancho completo */
.wa-phone{
  grid-column:1 / -1;
  margin-top:4px;
  color:#90e8ff; text-decoration:none;
  font-weight:900; letter-spacing:1px;
  font-size:1.05rem;
}

/* ====== tiles y demás se mantienen ====== */
.method-grid{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
  margin:12px 0 14px;
}
.method-tile{
  width:80px; height:80px;
  background:#12181c; border:1px solid #202e35; border-radius:10px;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
}
.method-tile img{ max-height:60px; width:auto }
.method-tile.active{ outline:2px solid #16e0ff; background:#0f1417 }
.method-card{
  background:#0f1417; border:1px solid #1c2830; border-radius:12px; padding:14px;
  box-shadow: inset 0 0 60px #0cf3ff0a;
}
.method-card-head{ display:flex; align-items:center; justify-content:flex-start; margin-bottom:6px }
.chip{
  background:#0a9; color:#001b1f; font-weight:900; padding:.4rem .7rem; border-radius:10px; font-size:.85rem;
}
.method-data{ list-style:none; margin:8px 0 10px; padding:0; color:#d0ecf1 }
.method-data li{ margin:4px 0 }
.total{ display:flex; align-items:center; justify-content:space-between; padding-top:6px; border-top:1px dashed #28414b; margin-top:8px }
.method-actions{ display:flex; gap:8px; margin-top:12px }
.method-actions .btn{ padding:.6rem 1rem; border-radius:10px; cursor:pointer; font-weight:700; border:1px solid transparent }
.method-actions .btn.primary{ background:#10f0ff; color:#001b1f }
.method-actions .btn.secondary{ background:#101417; border-color:#26343a; color:#cfe8ec }

/* ====== responsive ====== */
@media (min-width:900px){
  .payments{ padding:24px 0 56px }
  .payments-head, .method-grid, .method-card{ max-width:1100px; margin-left:auto; margin-right:auto }
  .method-grid{ gap:12px }
}













/* ====== Formulario de comprobante ====== */
/* ====== Formulario de comprobante ====== */
.payments + .pay-form { margin-top: 16px; }

.pay-form{
  padding: 26px 14px 40px;
  background: linear-gradient(180deg, #0b2d47 0%, #0b0b0b 100%);
  color:#e7f7fb;
  border-top:1px solid #0e3a55;
}

/* Título centrado y alineado al ancho del card */
.pf-head{ max-width:1100px; margin:0 auto 12px; }
.pf-head h3{
  margin:0;
  font-family: var(--font-title, inherit);
  letter-spacing:1px;
  font-size: 2em;
}

/* Tarjeta (mismo estilo que métodos de pago) */
.pf-card{
  max-width:1100px; margin:0 auto;
  background:#0f1417;
  border:1px solid #1c2830;
  border-radius:12px;
  padding:16px;
  box-shadow: inset 0 0 60px #0cf3ff0a;
}

/* Grid interior */
.pf-grid{
  display:grid;
  grid-template-columns: 1fr;   /* Mobile */
  gap:12px;
  max-width:900px;              /* ancho del formulario dentro de la tarjeta */
  margin:0 auto;
}

/* Items */
.pf-field{ display:flex; align-items:center; min-width:0; }
.pf-field.full{ grid-column:1 / -1; }
.pf-field.prefijo{ max-width:140px; }
.pf-field.cel{}

/* Inputs */
.pf-field input,
.pf-field select{
  width:100%;
  padding:.9rem 1rem;
  border-radius:10px;
  border:1px solid #2a4a5d;
  background:#cfe6ff22;
  color:#eaf7ff;
  outline:none;
  min-width:0;
}
.pf-field input::placeholder{ color:#cfe6ffaa; }

/* Archivo */
.pf-field.file{ align-items:center; gap:10px; flex-wrap:wrap; }
.file-btn{
  display:inline-block; padding:.7rem 1rem; border-radius:10px; cursor:pointer;
  background:#ffffff; color:#0b0b0b; font-weight:700; border:1px solid #d1e6ff;
  white-space:nowrap;
}
.file-name{ opacity:.9; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Checkbox */
.pf-check{ 
  display:flex; 
  align-items:center;        /* en vez de flex-start */
  gap:10px; 
  flex-wrap: wrap;           /* móvil puede partir */
}
.pf-check input{ width:18px; height:18px; margin-top:2px; }

/* Acciones */
.pf-actions{
  grid-column:1 / -1;
  margin-top:6px;
  display:flex; justify-content:flex-start;
}
.pf-actions .btn{
  padding:.8rem 1.2rem; border-radius:12px; font-weight:800; cursor:pointer;
  border:1px solid #354c58;
}
.pf-actions .btn.primary{ background:#0ef; color:#001b1f }

/* Mensajes */
.pf-msg{ grid-column:1 / -1; margin:8px 0 0; font-weight:700 }
.pf-msg.ok{ color:#a7f3d0 } .pf-msg.err{ color:#fecaca }

/* ====== Breakpoints ====== */

/* ≥ 600px: prefijo y celular en la misma fila */
@media (min-width:600px){
  .pf-grid{
    grid-template-columns: minmax(120px,160px) 1fr;
  }
  .pf-field.prefijo{ grid-column:1; }
  .pf-field.cel{ grid-column:2; }
  .pf-field.full{ grid-column:1 / -1; }
}

/* ≥ 900px: más aire y botón alineado a la derecha */
@media (min-width:900px){
  .pay-form{ padding:32px 0 56px; }
  .pf-actions{ justify-content:flex-end; }
}

/* Botón full width en móvil */
@media (max-width:599px){
  .pf-actions .btn{ width:100%; text-align:center; }
}
@media (min-width: 900px){
  .pf-check{ flex-wrap: nowrap; }                  /* no permitir salto */
  .pf-check span{
    white-space: nowrap;                           /* mantener en 1 línea */
  }
}




/* --- Qty control: limpio y plano --- */
.qty-control{
  display:flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background: transparent;
  width: fit-content;
}
/* --- Qty control: limpio y plano --- */
.qty-control{
  display:flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:12px;
  background: transparent;
  width: fit-content;
}

/* Botones + / − (ghost) */
.step{
  width:36px; height:36px;
  display:grid; place-items:center;
  border-radius:8px;
  border:1px solid transparent;
  background: transparent;
  color:#EAF6FF;
  font-size:1.1rem; font-weight:700; line-height:1;
  cursor:pointer;
  transition: background .15s ease, border-color .15s ease, transform .06s ease;
  user-select:none;
}
.step:hover{ background: rgba(0,245,255,.10); border-color: rgba(0,245,255,.45); }
.step:active{ transform: translateY(1px); }
.step:disabled{ opacity:.45; cursor:not-allowed; transform:none; }

/* Input centrado, sin marco interno ni spinners */
.qty-input{
  width:70px; height:36px;
  padding:0 .6rem;
  text-align:center;
  font-size:1.05rem; font-weight:700;
  color:#F5FBFF;
  background: transparent;
  border:none; outline:none;
  border-radius:8px;  /* para el focus ring */
  -moz-appearance: textfield;
}
.qty-input:focus{
  box-shadow: inset 0 0 0 1px rgba(0,245,255,.65);
  background: rgba(14,22,28,.6);
}

/* Quita spinners del number (WebKit) */
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button{
  -webkit-appearance:none; margin:0;
}
