/* ════════════════════════════════════════════════════════════════════
   VOX SACRA — Hoja de marca reutilizable
   La voz de la tradición litúrgica · Cantus · Traditio · Sacrum
   Enlázala en cualquier página del funnel:
     <link rel="stylesheet" href="vox-sacra.css">
   Requiere, junto al HTML: vox-sacra-mark.png (logo secundario, marca de agua).
   Kit completo de marca: _opensquad/_memory/brand.md
   ════════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;900&family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&display=swap');

/* ── GUÍA DE MARCA (respetar en toda página) ──
   1. Cinzel en MAYÚSCULAS (text-transform:uppercase) NO dibuja la Ñ.
      Texto con ñ en versalitas (.badge, .head-tag, .section-kicker, .field-label):
      usar Cormorant Garamond o dejarlo en minúsculas. Nunca Cinzel mayúsculas con ñ.
   2. Evitar el guion largo (—) como recurso de estilo: coma, punto, paréntesis o dos puntos. */

/* ── Tokens de marca ───────────────────────────────────────────────── */
:root{
  --gold:#D4AF37;      /* oro principal */
  --gold-l:#F0D27A;    /* oro claro */
  --gold-d:#B8860B;    /* oro oscuro */
  --cream:#DCCBA0;     /* crema (texto cuerpo) */
  --red:#5A0F0F;       /* rojo litúrgico (acento puntual) */
  --black:#0D0D0D;     /* negro base (fondo) */
  --white:#F5F0E8;     /* blanco hueso (títulos) */
  --text:#DCCBA0;--text-m:#9c8e6a;--text-d:#5f5640;
}

*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{
  background:var(--black);color:var(--text);
  font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;
  min-height:100vh;display:flex;flex-direction:column;
  overflow-x:hidden;position:relative;text-align:center;
}

/* ── Fondo: negro + brillo oro arriba + rojo litúrgico abajo ───────── */
.bg-layer{position:fixed;inset:0;z-index:0;background:var(--black);}
.bg-layer::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 18%,rgba(212,175,55,0.10),transparent 56%),
             radial-gradient(ellipse at 50% 116%,rgba(90,15,15,0.55),transparent 50%);
}

/* ── Marca de agua: logo secundario VS al fondo ────────────────────── */
.watermark{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:url("vox-sacra-mark.png") center 42%/min(60vmin,520px) no-repeat;
  opacity:.06;
}

/* ── Partículas doradas ────────────────────────────────────────────── */
.pts{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.pt{position:absolute;width:2px;height:2px;border-radius:50%;background:var(--gold);opacity:0;animation:ptf linear infinite;}
@keyframes ptf{0%{opacity:0;transform:translateY(100vh) scale(0);}10%{opacity:.5;}90%{opacity:.15;}100%{opacity:0;transform:translateY(-20vh);}}

/* ── Header (logo secundario + nombre + lema) ──────────────────────── */
.head{position:relative;z-index:5;text-align:center;padding:40px 24px 6px;}
.head-logo{height:120px;width:auto;object-fit:contain;margin:0 auto;display:block;filter:drop-shadow(0 0 26px rgba(212,175,55,.45));}
.head-name{font-family:"Cinzel",serif;font-weight:700;font-size:1.5rem;letter-spacing:.42em;color:var(--gold);margin-top:14px;padding-left:.42em;}
.head-tag{font-family:"Cinzel",serif;font-size:.58rem;letter-spacing:.5em;color:var(--gold-d);text-transform:uppercase;margin-top:8px;padding-left:.5em;}

/* ── Video 16:9 ────────────────────────────────────────────────────── */
.video-intro{position:relative;z-index:5;text-align:center;padding:18px 20px 24px;}
.video-frame{width:100%;max-width:560px;margin:0 auto;aspect-ratio:16/9;border-radius:10px;overflow:hidden;box-shadow:0 0 50px rgba(212,175,55,.20),0 8px 50px rgba(0,0,0,.6);border:1px solid rgba(212,175,55,.30);background:#000;}
.video-frame video{width:100%;height:100%;object-fit:cover;display:block;}

/* ── Stage ─────────────────────────────────────────────────────────── */
.stage{flex:1;position:relative;z-index:5;display:flex;align-items:center;justify-content:center;padding:24px 20px 40px;}
.stage-inner{width:100%;max-width:580px;position:relative;text-align:center;}

/* ── Barra de progreso ─────────────────────────────────────────────── */
.progress-wrap{margin-bottom:36px;}
.progress-track{height:3px;background:rgba(212,175,55,.12);border-radius:2px;overflow:hidden;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--gold-d),var(--gold),var(--gold-l));width:0%;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px rgba(212,175,55,.5);}
.progress-info{display:flex;justify-content:space-between;margin-top:10px;font-family:"Cinzel",serif;font-size:.6rem;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;}

/* ── Pasos (multi-step) ────────────────────────────────────────────── */
.step{display:none;animation:fadeIn .55s ease both;}
.step.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

/* ── Badge ─────────────────────────────────────────────────────────── */
.badge{display:inline-block;border:1px solid rgba(212,175,55,.5);color:var(--gold);font-family:"Cinzel",serif;font-size:.58rem;letter-spacing:.4em;text-transform:uppercase;padding:7px 20px;margin-bottom:22px;}

/* ── Títulos ───────────────────────────────────────────────────────── */
.t-title{font-family:"Cinzel",serif;font-weight:700;font-size:clamp(1.7rem,4vw,2.45rem);color:var(--white);line-height:1.22;margin-bottom:14px;}
.t-title em{background:linear-gradient(180deg,#F0D27A,#D4AF37 55%,#B8860B);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-style:normal;}
.t-sub{font-size:1.18rem;color:var(--text-m);font-style:italic;line-height:1.6;margin-bottom:30px;}
.gold-line{width:64px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto 26px;}

/* ── Campos de formulario (centrados) ──────────────────────────────── */
.field-wrap{margin:0 auto 24px;max-width:440px;text-align:center;}
.field-label{display:block;font-family:"Cinzel",serif;font-size:.62rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-bottom:12px;}
.field-input{width:100%;background:rgba(255,255,255,.03);border:1px solid rgba(212,175,55,.28);border-radius:8px;padding:18px 20px;font-family:"Cormorant Garamond",serif;font-weight:500;font-size:1.2rem;color:var(--white);outline:none;transition:all .3s;text-align:center;}
.field-input:focus{border-color:var(--gold);background:rgba(212,175,55,.05);box-shadow:0 0 0 3px rgba(212,175,55,.12),0 0 30px rgba(212,175,55,.1);}
.field-input::placeholder{color:rgba(156,142,106,.6);font-style:italic;}
.field-error{display:none;color:#c0603a;font-size:.95rem;margin-top:8px;font-style:italic;}
.field-error.show{display:block;}
.phone-wrap{display:grid;grid-template-columns:90px 1fr;gap:10px;}

/* ── Botones ───────────────────────────────────────────────────────── */
.btn-row{display:flex;gap:12px;margin:30px auto 0;justify-content:center;max-width:440px;}
.btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--gold-d),var(--gold),var(--gold-l));color:var(--black);font-family:"Cinzel",serif;font-weight:700;font-size:.9rem;letter-spacing:.12em;padding:18px 32px;border-radius:50px;text-decoration:none;text-transform:uppercase;border:none;cursor:pointer;transition:all .3s;box-shadow:0 8px 30px rgba(212,175,55,.30);}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(212,175,55,.5);}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.btn-secondary{background:transparent;color:var(--gold);border:1px solid rgba(212,175,55,.4);box-shadow:none;flex:0 0 auto;padding:18px 24px;}
.btn-secondary:hover{background:rgba(212,175,55,.06);border-color:var(--gold);transform:translateY(-2px);}

/* ── Lista de beneficios ───────────────────────────────────────────── */
.benefits{background:rgba(255,255,255,.02);border:1px solid rgba(212,175,55,.18);border-radius:10px;padding:26px;margin:0 auto 28px;max-width:460px;text-align:left;}
.benefits h4{font-family:"Cinzel",serif;font-size:.7rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-bottom:14px;text-align:center;}
.benefits ul{list-style:none;}
.benefits li{padding:6px 0;color:var(--text);font-size:1.1rem;display:flex;gap:10px;align-items:flex-start;line-height:1.5;}
.benefits li::before{content:"✦";color:var(--gold);flex-shrink:0;}

/* ── Tarjeta de WhatsApp ───────────────────────────────────────────── */
.wa-card{background:linear-gradient(135deg,rgba(37,211,102,0.08),rgba(212,175,55,0.04));border:1px solid rgba(37,211,102,0.3);border-radius:12px;padding:30px 26px;text-align:center;margin:0 auto 24px;max-width:460px;}
.wa-icon{width:72px;height:72px;margin:0 auto 16px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.4rem;box-shadow:0 0 30px rgba(37,211,102,0.4);animation:waPulse 2s ease-in-out infinite;}
@keyframes waPulse{0%,100%{box-shadow:0 0 0 0 rgba(37,211,102,.4);}50%{box-shadow:0 0 0 16px rgba(37,211,102,0);}}
.wa-card h3{font-family:"Cinzel",serif;font-size:1.15rem;color:var(--white);margin-bottom:8px;letter-spacing:.05em;}
.wa-card p{color:var(--text-m);font-size:1.05rem;line-height:1.5;}
.btn-wa{width:100%;max-width:460px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#1eb858,#25D366);color:#fff;font-family:"Cinzel",serif;font-weight:700;font-size:1rem;letter-spacing:.1em;padding:20px 32px;border-radius:50px;text-decoration:none;text-transform:uppercase;border:none;cursor:pointer;transition:all .3s;box-shadow:0 8px 30px rgba(37,211,102,0.4);}
.btn-wa:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(37,211,102,0.6);}

/* ── Ícono de éxito ────────────────────────────────────────────────── */
.success-icon{width:96px;height:96px;margin:0 auto 24px;border:2px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--gold);box-shadow:0 0 50px rgba(212,175,55,.4);animation:sucPulse 2s ease-in-out infinite;}
@keyframes sucPulse{0%,100%{box-shadow:0 0 30px rgba(212,175,55,.3);}50%{box-shadow:0 0 60px rgba(212,175,55,.6);}}

/* ── Footer ────────────────────────────────────────────────────────── */
.foot{position:relative;z-index:5;text-align:center;padding:30px 24px;font-size:.85rem;color:var(--text-d);font-style:italic;}
.foot .vs{font-family:"Cinzel",serif;font-style:normal;letter-spacing:.3em;color:var(--gold-d);}

/* ── Móvil ─────────────────────────────────────────────────────────── */
@media(max-width:520px){
  .head{padding:28px 18px 6px;}.head-logo{height:96px;}.head-name{font-size:1.2rem;}
  .video-intro{padding:12px 14px 18px;}.stage{padding:18px 16px 32px;}
  .btn-row{flex-direction:column;}.btn-secondary{flex:1;}.phone-wrap{grid-template-columns:80px 1fr;}
}
