/* ---------- FUENTES AUTOALOJADAS (sin llamadas a Google Fonts) ---------- */
@font-face{
  font-family:'Bricolage Grotesque';
  src:url('/static/fonts/bricolage-grotesque-variable.woff2') format('woff2');
  font-weight:400 800;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Instrument Sans';
  src:url('/static/fonts/instrument-sans-variable.woff2') format('woff2');
  font-weight:400 600;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'DM Mono';
  src:url('/static/fonts/dm-mono-400.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'DM Mono';
  src:url('/static/fonts/dm-mono-500.woff2') format('woff2');
  font-weight:500;
  font-style:normal;
  font-display:swap;
}

:root{
  --tinta:#1B0F2E;
  --violeta:#6B3FD4;
  --lila:#A585F5;
  --lila-pale:#EFE8FF;
  --papel:#FAF7FF;
  --miel:#FFC24B;
  --menta:#6FD3A8;
  --texto:#241635;
  --texto-suave:#5C4C74;
  --linea:rgba(107,63,212,0.16);

  --display:'Bricolage Grotesque', sans-serif;
  --body:'Instrument Sans', sans-serif;
  --mono:'DM Mono', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:74px;}
body{
  margin:0; background:var(--papel); color:var(--texto);
  font-family:var(--body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--lila); color:var(--tinta);}
h1,h2,h3{font-family:var(--display); color:var(--tinta); margin:0; line-height:1.08; letter-spacing:-0.02em;}

.wrap{max-width:1140px; margin:0 auto; padding:0 26px;}
.sec{padding:104px 0;}

.eyebrow{
  font-family:var(--mono); font-size:11.5px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--violeta); display:inline-flex; align-items:center; gap:9px; margin-bottom:16px;
}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--miel); display:block;}
.eyebrow.light{color:var(--lila);}

.btn{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--violeta); color:#fff; border:none;
  padding:14px 26px; border-radius:100px;
  font-family:var(--body); font-weight:600; font-size:15px;
  cursor:pointer; text-decoration:none;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
  box-shadow:0 6px 18px rgba(107,63,212,0.28);
}
.btn:hover{background:#5A31BC; transform:translateY(-2px); box-shadow:0 10px 26px rgba(107,63,212,0.34);}
.btn:active{transform:translateY(0) scale(0.97);}
.btn:focus-visible{outline:3px solid var(--miel); outline-offset:3px;}
.btn.miel{background:var(--miel); color:var(--tinta); box-shadow:0 6px 18px rgba(255,194,75,0.32);}
.btn.miel:hover{background:#F2B335;}
.btn.miel:active{transform:scale(0.97);}
.btn.linea{background:transparent; color:var(--lila-pale); border:1.5px solid rgba(239,232,255,0.4); box-shadow:none;}
.btn.linea:hover{background:rgba(239,232,255,0.12); border-color:var(--lila-pale);}
.btn.linea:active{transform:scale(0.97);}
.btn.linea-oscura{background:transparent; color:var(--violeta); border:1.5px solid var(--violeta); box-shadow:none;}
.btn.linea-oscura:hover{background:var(--violeta); color:#fff;}
.btn.linea-oscura:active{transform:scale(0.97);}

/* ---------- NAV ---------- */
.nav{
  position:sticky; top:0; z-index:60;
  background:rgba(27,15,46,0.94); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(165,133,245,0.2);
}
.nav-in{display:flex; align-items:center; justify-content:space-between; padding:14px 26px; max-width:1140px; margin:0 auto;}
.marca{font-family:var(--display); font-weight:800; font-size:21px; color:#fff; letter-spacing:-0.03em; text-decoration:none;}
.marca em{font-style:normal; color:var(--lila);}
.enlaces{display:flex; gap:4px; align-items:center;}
.enlaces a{
  color:rgba(239,232,255,0.78); text-decoration:none; font-size:14px; font-weight:500;
  padding:7px 12px; border-radius:100px; transition:color .15s, background .15s;
}
.enlaces a:hover{color:#fff; background:rgba(165,133,245,0.16);}
.enlaces a.cta{background:var(--violeta); color:#fff; margin-left:6px;}
.enlaces a.cta:hover{background:#5A31BC;}
.burger{display:none; background:none; border:1.5px solid rgba(239,232,255,0.35); border-radius:9px; color:#fff; font-size:17px; padding:6px 11px; cursor:pointer;}

@media(max-width:940px){
  .burger{display:block;}
  .enlaces{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:2px;
    background:var(--tinta); padding:14px 20px 20px; border-bottom:1px solid rgba(165,133,245,0.2);
  }
  .enlaces.abierto{display:flex;}
  .enlaces a{padding:11px 12px;}
  .enlaces a.cta{margin:6px 0 0; text-align:center;}
}

/* ---------- HERO ---------- */
.hero{
  background:
    radial-gradient(900px 480px at 78% 8%, rgba(107,63,212,0.55), transparent 62%),
    radial-gradient(700px 420px at 6% 88%, rgba(165,133,245,0.24), transparent 60%),
    var(--tinta);
  color:var(--lila-pale); padding:88px 0 104px; position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0.5;
  background-image:radial-gradient(rgba(255,255,255,0.055) 1px, transparent 1px);
  background-size:22px 22px;
}
.hero-in{position:relative; z-index:2; display:grid; grid-template-columns:1.02fr 0.98fr; gap:56px; align-items:center;}
.hero h1{color:#fff; font-size:clamp(37px, 5.2vw, 60px); font-weight:800; margin-bottom:20px;}
.hero h1 .subrayado{position:relative; display:inline-block;}
.hero h1 .subrayado::after{
  content:""; position:absolute; left:-2px; right:-2px; bottom:4px; height:11px;
  background:var(--miel); opacity:0.9; border-radius:3px; z-index:-1;
}
.hero p.lead{font-size:17.5px; color:rgba(239,232,255,0.8); max-width:490px; margin:0 0 30px;}
.hero-ctas{display:flex; gap:13px; flex-wrap:wrap; margin-bottom:34px;}
.hero-datos{display:flex; gap:30px; flex-wrap:wrap; border-top:1px solid rgba(165,133,245,0.26); padding-top:22px;}
.hero-datos span{display:block;}
.hero-datos .cifra{font-family:var(--display); font-size:25px; font-weight:800; color:var(--miel);}
.hero-datos .etiq{font-family:var(--mono); font-size:11px; letter-spacing:0.09em; text-transform:uppercase; color:rgba(239,232,255,0.62);}

/* ---------- CARNETS (elemento firma) ---------- */
.baraja{position:relative; height:560px; perspective:1400px;}
.carnet{
  position:absolute; width:270px; height:172px; border-radius:16px;
  transform-style:preserve-3d; transition:transform .7s cubic-bezier(.22,.68,.36,1), filter .3s ease;
  cursor:pointer;
}
.carnet:hover:not(.volteado){filter:brightness(1.08);}
.carnet .cara{
  position:absolute; inset:0; border-radius:16px; overflow:hidden;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  box-shadow:0 18px 40px rgba(10,4,24,0.5);
  border:1px solid rgba(255,255,255,0.16);
}
.carnet .reverso{transform:rotateY(180deg);}
.carnet:focus-visible{outline:3px solid var(--miel); outline-offset:6px;}

.c1{top:-8px; left:2%; transform:rotate(-8deg); z-index:3;}
.c2{top:96px; left:27%; transform:rotate(4deg); z-index:4;}
.c3{top:200px; left:4%; transform:rotate(-4deg); z-index:5;}
.c4{top:304px; left:24%; transform:rotate(6deg); z-index:6;}
.c1:hover,.c1:focus-visible,.c1.volteado{transform:rotate(-8deg) rotateY(180deg);}
.c2:hover,.c2:focus-visible,.c2.volteado{transform:rotate(4deg) rotateY(180deg);}
.c3:hover,.c3:focus-visible,.c3.volteado{transform:rotate(-4deg) rotateY(180deg);}
.c4:hover,.c4:focus-visible,.c4.volteado{transform:rotate(6deg) rotateY(180deg);}

.cara-frontal{position:relative; background:var(--tinta);}
.cara-frontal .foto{position:absolute; inset:0; width:100%; height:100%;}
.cara-frontal .velo{
  position:absolute; inset:0;
  background:linear-gradient(160deg, rgba(27,15,46,0.05) 8%, rgba(27,15,46,0.88) 92%);
}
.cara-frontal .txt{position:absolute; left:16px; right:16px; bottom:13px; z-index:2;}
.cara-frontal .club{font-family:var(--display); font-weight:800; font-size:17px; color:#fff; letter-spacing:-0.02em;}
.cara-frontal .tipo{font-family:var(--mono); font-size:9.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--miel);}
.cara-frontal .sello{
  position:absolute; top:12px; right:13px; z-index:2;
  font-family:var(--mono); font-size:8.5px; letter-spacing:0.1em; text-transform:uppercase;
  background:rgba(250,247,255,0.92); color:var(--violeta); padding:3px 8px; border-radius:100px;
}
.reverso{
  background:linear-gradient(150deg, var(--violeta), #4A2699);
  padding:15px 17px; display:flex; flex-direction:column; justify-content:space-between;
}
.reverso .rtitulo{font-family:var(--mono); font-size:9.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--lila);}
.reverso ul{list-style:none; margin:7px 0 0; padding:0;}
.reverso li{font-size:12.5px; color:#fff; padding:2.5px 0 2.5px 17px; position:relative; line-height:1.35;}
.reverso li::before{content:""; position:absolute; left:0; top:9px; width:7px; height:7px; border-radius:2px; background:var(--miel);}
.reverso .pie{
  font-family:var(--mono); font-size:9px; letter-spacing:0.08em; color:rgba(255,255,255,0.62);
  border-top:1px dashed rgba(255,255,255,0.28); padding-top:7px;
}
.pista{
  position:absolute; bottom:2px; left:2%; font-family:var(--mono); font-size:11px;
  color:rgba(239,232,255,0.5); display:flex; align-items:center; gap:7px;
}
.pista .pulso{width:7px; height:7px; border-radius:50%; background:var(--miel); animation:pulso 1.9s infinite;}
@keyframes pulso{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.35; transform:scale(.72);}}

@media(max-width:960px){
  .hero-in{grid-template-columns:1fr; gap:34px;}
  .baraja{height:520px; max-width:430px;}
}
@media(max-width:430px){
  .carnet{width:230px; height:148px;}
  .c1{top:-6px; left:2%;}
  .c2{top:84px; left:16%;} .c3{top:168px; left:2%;} .c4{top:252px; left:18%;}
  .baraja{height:460px;}
}
/* Hero móvil extra compacto: 2 carnets escalonados en vez de 4 apilados */
@media(max-width:380px){
  .baraja{height:300px; max-width:320px;}
  .carnet{width:200px; height:128px;}
  .c1{top:-4px; left:3%; transform:rotate(-7deg); z-index:3;}
  .c2{top:88px; left:22%; transform:rotate(5deg); z-index:4; display:none;}
  .c3{top:120px; left:6%; transform:rotate(-3deg); z-index:5;}
  .c4{top:150px; left:20%; transform:rotate(6deg); z-index:6; display:none;}
  /* Mostrar solo c1 y c3 en móvil muy pequeño */
  .c1{display:block;}
  .c3{display:block;}
  .c2,.c4{display:none;}
  .pista{bottom:-8px;}
  .hero h1{font-size:clamp(30px, 8vw, 38px);}
  .hero p.lead{font-size:15.5px;}
  .hero-datos{gap:18px;}
  .hero-datos .cifra{font-size:22px;}
}

/* ---------- QUIÉNES SOMOS ---------- */
.quienes{background:var(--lila-pale); border-top:1px solid var(--linea); border-bottom:1px solid var(--linea);}
.q-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:64px; align-items:center;}
.q-grid h2{font-size:clamp(29px,3.6vw,41px); font-weight:800; margin-bottom:18px;}
.q-texto p{color:var(--texto-suave); font-size:16px; margin:0 0 15px;}
.q-cita{
  margin-top:26px; background:#fff; border-radius:16px; padding:24px 26px;
  border-left:5px solid var(--miel); box-shadow:0 10px 30px rgba(107,63,212,0.08);
}
.q-cita p{font-family:var(--display); font-size:19px; font-weight:600; color:var(--tinta); margin:0; line-height:1.3;}
.q-cita .firma{font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--violeta); margin-top:11px; display:block;}

.mosaico{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,112px); gap:14px;}
.mos{border-radius:16px; overflow:hidden; position:relative; box-shadow:0 12px 30px rgba(107,63,212,0.13);}
.mos svg{width:100%; height:100%; display:block;}
.mos .cap{
  position:absolute; left:11px; bottom:9px; font-family:var(--mono); font-size:9.5px;
  letter-spacing:0.08em; text-transform:uppercase; color:#fff;
  background:rgba(27,15,46,0.62); padding:3px 9px; border-radius:100px;
}
.m1{grid-row:span 2;}
.m4{grid-column:span 2;}
@media(max-width:900px){
  .q-grid{grid-template-columns:1fr; gap:40px;}
}

/* ---------- CÓMO FUNCIONA ---------- */
.pasos{position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.pasos::before{
  content:""; position:absolute; top:22px; left:9%; right:9%; height:2px;
  background-image:linear-gradient(90deg, var(--lila) 55%, transparent 0);
  background-size:12px 2px; opacity:0.7;
}
.paso{position:relative; z-index:2;}
.paso-num{
  width:44px; height:44px; border-radius:50%; background:var(--violeta); color:#fff;
  font-family:var(--display); font-weight:800; font-size:17px;
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
  box-shadow:0 0 0 8px var(--papel), 0 8px 20px rgba(107,63,212,0.3);
}
.paso:last-child .paso-num{background:var(--miel); color:var(--tinta); box-shadow:0 0 0 8px var(--papel), 0 8px 20px rgba(255,194,75,0.4);}
.paso h3{font-size:19px; font-weight:600; margin-bottom:9px;}
.paso p{color:var(--texto-suave); font-size:14.5px; margin:0;}
.paso .quien{
  font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--violeta); background:rgba(107,63,212,0.09); padding:3px 9px; border-radius:100px;
  display:inline-block; margin-top:13px;
}
@media(max-width:880px){
  .pasos{grid-template-columns:1fr 1fr; gap:34px 22px;}
  .pasos::before{display:none;}
}
@media(max-width:520px){.pasos{grid-template-columns:1fr;}}

/* ---------- VENTAJAS ---------- */
.ventajas{background:var(--tinta); color:var(--lila-pale); position:relative; overflow:hidden;}
.ventajas::before{
  content:""; position:absolute; top:-120px; right:-120px; width:420px; height:420px;
  border-radius:50%; background:radial-gradient(circle, rgba(107,63,212,0.45), transparent 68%);
}
.ventajas .wrap{position:relative; z-index:2;}
.ventajas h2{color:#fff; font-size:clamp(29px,3.6vw,41px); font-weight:800; margin-bottom:14px;}
.ventajas .sub{color:rgba(239,232,255,0.72); max-width:560px; margin:0 0 52px; font-size:16.5px;}
.bento{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.v{
  background:rgba(250,247,255,0.055); border:1px solid rgba(165,133,245,0.24);
  border-radius:20px; padding:28px 26px; transition:border-color .2s, background .2s, transform .2s;
}
.v:hover{border-color:var(--lila); background:rgba(250,247,255,0.09); transform:translateY(-3px);}
.v h3{color:#fff; font-size:20px; font-weight:600; margin:16px 0 9px;}
.v p{color:rgba(239,232,255,0.72); font-size:14.5px; margin:0;}
.v .tag{
  font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase;
  padding:4px 10px; border-radius:100px; display:inline-block;
}
.tag-local{background:rgba(111,211,168,0.16); color:var(--menta);}
.tag-online{background:rgba(165,133,245,0.2); color:var(--lila);}
.tag-sorteo{background:rgba(255,194,75,0.16); color:var(--miel);}
.tag-excl{background:rgba(255,255,255,0.12); color:#fff;}
.v-ancho{grid-column:span 2; display:grid; grid-template-columns:1.15fr 0.85fr; gap:24px; align-items:center;}
.v-ancho .ilus{border-radius:14px; overflow:hidden;}
.v-ancho .ilus svg{width:100%; height:100%; display:block;}
@media(max-width:900px){
  .bento{grid-template-columns:1fr 1fr;}
  .v-ancho{grid-template-columns:1fr;}
  .v-ancho .ilus{max-height:160px;}
}
@media(max-width:560px){
  .bento{grid-template-columns:1fr;}
  .v-ancho{grid-column:span 1;}
}

/* ---------- PÚBLICOS ---------- */
.publicos{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.pub{border-radius:24px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 16px 44px rgba(107,63,212,0.12);}
.pub .cabecera{height:174px;}
.pub .cabecera svg{width:100%; height:100%; display:block;}
.pub .cuerpo{padding:32px 34px 36px; flex:1; display:flex; flex-direction:column;}
.pub-a .cuerpo{background:var(--violeta); color:#fff;}
.pub-b .cuerpo{background:#fff; border:1px solid var(--linea); border-top:none;}
.pub h3{font-size:25px; font-weight:800; margin-bottom:8px;}
.pub-a h3{color:#fff;}
.pub .intro{font-size:15px; margin:0 0 20px;}
.pub-a .intro{color:rgba(255,255,255,0.82);}
.pub-b .intro{color:var(--texto-suave);}
.pub ul{list-style:none; margin:0 0 26px; padding:0; flex:1;}
.pub li{position:relative; padding:0 0 12px 26px; font-size:14.5px;}
.pub li::before{content:""; position:absolute; left:0; top:7px; width:12px; height:12px; border-radius:4px; transform:rotate(45deg);}
.pub-a li{color:rgba(255,255,255,0.9);} .pub-a li::before{background:var(--miel);}
.pub-b li{color:var(--texto-suave);} .pub-b li::before{background:var(--violeta);}
@media(max-width:860px){.publicos{grid-template-columns:1fr;}}

/* ---------- CONTACTO ---------- */
.contacto{background:var(--lila-pale); border-top:1px solid var(--linea);}
.c-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:start;}
.c-grid h2{font-size:clamp(28px,3.4vw,38px); font-weight:800; margin-bottom:14px;}
.c-grid .sub{color:var(--texto-suave); margin:0 0 26px;}
.c-datos{display:grid; gap:14px;}
.c-dato{background:#fff; border-radius:14px; padding:15px 18px; border:1px solid var(--linea);}
.c-dato .k{font-family:var(--mono); font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--violeta);}
.c-dato .val{font-family:var(--display); font-weight:600; font-size:16px; color:var(--tinta); margin-top:3px;}

.form{background:#fff; border-radius:22px; padding:34px 34px 36px; border:1px solid var(--linea); box-shadow:0 16px 44px rgba(107,63,212,0.09);}
.form-fila{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.campo{margin-bottom:17px;}
.campo label{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.09em; text-transform:uppercase;
  color:var(--texto-suave); display:block; margin-bottom:7px;
}
.campo input, .campo select, .campo textarea{
  width:100%; padding:12px 14px; border-radius:11px; border:1.5px solid var(--linea);
  background:var(--papel); font-family:var(--body); font-size:15px; color:var(--texto);
}
.campo input::placeholder, .campo textarea::placeholder{color:#9C8DB2;}
.campo input:focus, .campo select:focus, .campo textarea:focus{outline:none; border-color:var(--violeta); box-shadow:0 0 0 4px rgba(107,63,212,0.12);}
.campo textarea{resize:vertical; min-height:104px;}
.nota{font-family:var(--mono); font-size:11px; color:var(--texto-suave); margin:15px 0 0; line-height:1.5;}
@media(max-width:880px){.c-grid{grid-template-columns:1fr; gap:36px;} .form-fila{grid-template-columns:1fr;}}

/* ---------- PIE ---------- */
.pie-web{background:var(--tinta); color:rgba(239,232,255,0.6); padding:40px 0 34px;}
.pie-in{display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap;}
.pie-web .marca{font-size:19px;}
.pie-web .legal{font-family:var(--mono); font-size:11px;}

/* ---------- REVEAL ---------- */
.rev{opacity:0; transform:translateY(22px); transition:opacity .65s ease, transform .65s ease;}
.rev.visible{opacity:1; transform:none;}
/* Stagger: delay incremental por hijo dentro de un contenedor */
.q-grid .rev.visible ~ .rev,
.pasos .paso.rev.visible ~ .paso.rev,
.bento .v.rev.visible ~ .v.rev{transition-delay:0;}
.rev:nth-child(1).visible{transition-delay:0s;}
.rev:nth-child(2).visible{transition-delay:0.08s;}
.rev:nth-child(3).visible{transition-delay:0.16s;}
.rev:nth-child(4).visible{transition-delay:0.24s;}
.rev:nth-child(5).visible{transition-delay:0.32s;}
.rev:nth-child(6).visible{transition-delay:0.40s;}

/* ================= PORTAL DE SOCIOS ================= */
.portal{
  position:fixed; inset:0; z-index:200; background:var(--papel);
  overflow-y:auto; display:none;
}
.portal.abierto{display:block;}
body.sin-scroll{overflow:hidden;}

.p-bar{
  position:sticky; top:0; z-index:5; background:var(--tinta);
  border-bottom:1px solid rgba(165,133,245,0.22);
}
.p-bar-in{
  max-width:1140px; margin:0 auto; padding:14px 26px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.p-bar .izq{display:flex; align-items:center; gap:14px; min-width:0;}
.p-bar .marca{font-size:19px;}
.p-bar .rotulo{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase;
  color:var(--lila); border:1px solid rgba(165,133,245,0.4); padding:4px 11px; border-radius:100px;
  white-space:nowrap;
}
.p-cerrar{
  background:none; border:1.5px solid rgba(239,232,255,0.35); color:var(--lila-pale);
  border-radius:100px; padding:8px 16px; font-family:var(--body); font-size:13.5px; font-weight:500;
  cursor:pointer; transition:background .15s, border-color .15s; white-space:nowrap;
}
.p-cerrar:hover{background:rgba(239,232,255,0.12); border-color:var(--lila-pale);}
.p-cerrar:focus-visible{outline:3px solid var(--miel); outline-offset:2px;}

.p-wrap{max-width:1140px; margin:0 auto; padding:52px 26px 90px;}

/* --- Registro --- */
.p-registro{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding-top:24px;}
.p-registro h2{font-size:clamp(28px,3.6vw,40px); font-weight:800; margin-bottom:14px;}
.p-registro .sub{color:var(--texto-suave); font-size:16.5px; margin:0 0 30px; max-width:420px;}
.p-caja{
  background:#fff; border:1px solid var(--linea); border-radius:22px; padding:32px 32px 34px;
  box-shadow:0 18px 46px rgba(107,63,212,0.12);
}
.p-caja .cabecero{
  display:flex; align-items:center; gap:11px; margin-bottom:22px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.11em; text-transform:uppercase; color:var(--violeta);
}
.p-caja .cabecero span.punto{width:9px; height:9px; border-radius:3px; background:var(--miel);}
.p-pistas{
  font-family:var(--mono); font-size:11px; color:var(--texto-suave);
  background:var(--lila-pale); border-radius:10px; padding:10px 13px; margin:-4px 0 18px; line-height:1.6;
}
.p-error{
  color:#B3261E; font-size:13.5px; margin:-6px 0 16px; display:none;
  background:rgba(179,38,30,0.07); border-radius:10px; padding:10px 13px;
}
.p-error.visible{display:block;}
.p-ilustra{border-radius:22px; overflow:hidden; box-shadow:0 18px 46px rgba(107,63,212,0.16);}
.p-ilustra svg{width:100%; height:100%; display:block;}
@media(max-width:880px){
  .p-registro{grid-template-columns:1fr; gap:36px;}
  .p-ilustra{order:-1; max-height:210px;}
}

/* --- Catálogo --- */
.p-cabecera{
  display:flex; justify-content:space-between; align-items:flex-end; gap:20px;
  flex-wrap:wrap; margin-bottom:30px;
}
.p-cabecera h2{font-size:clamp(26px,3.2vw,36px); font-weight:800; margin-bottom:8px;}
.p-cabecera .saludo{font-family:var(--mono); font-size:12.5px; color:var(--violeta);}
.p-metricas{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:26px;}
.p-metrica{
  background:#fff; border:1px solid var(--linea); border-radius:14px; padding:13px 18px; min-width:118px;
}
.p-metrica .n{font-family:var(--display); font-size:23px; font-weight:800; color:var(--violeta); line-height:1;}
.p-metrica .l{font-family:var(--mono); font-size:10px; letter-spacing:0.09em; text-transform:uppercase; color:var(--texto-suave); margin-top:6px;}

.p-busqueda{margin-bottom:16px;}
.p-busqueda input{
  width:100%; padding:13px 20px; border-radius:100px; border:1.5px solid var(--linea);
  background:#fff; font-family:var(--body); font-size:14.5px; color:var(--texto);
}
.p-busqueda input::placeholder{color:#9C8DB2;}
.p-busqueda input:focus{outline:none; border-color:var(--violeta); box-shadow:0 0 0 4px rgba(107,63,212,0.12);}

.p-filtros{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px;}
.p-filtros select{
  padding:10px 15px; border-radius:100px; border:1.5px solid var(--linea);
  background:#fff; font-family:var(--body); font-size:13.5px; color:var(--texto); cursor:pointer;
}
.p-filtros select:focus{outline:none; border-color:var(--violeta); box-shadow:0 0 0 4px rgba(107,63,212,0.12);}

.p-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(272px,1fr)); gap:18px;}
.oferta{
  background:#fff; border:1px solid var(--linea); border-radius:18px; padding:22px 22px 18px;
  position:relative; overflow:hidden; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.oferta::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px;}
.oferta.f-local::before{background:var(--menta);}
.oferta.f-online::before{background:var(--lila);}
.oferta.f-sorteo::before{background:var(--miel);}
.oferta:hover{transform:translateY(-3px); border-color:var(--lila); box-shadow:0 14px 32px rgba(107,63,212,0.13);}
.p-tag{
  font-family:var(--mono); font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase;
  padding:4px 10px; border-radius:100px; display:inline-block; margin-bottom:13px;
}
.p-tag.local{background:rgba(111,211,168,0.2); color:#2E8A65;}
.p-tag.online{background:rgba(107,63,212,0.12); color:var(--violeta);}
.p-tag.sorteo{background:rgba(255,194,75,0.22); color:#8A6410;}
.oferta h3{font-size:18px; font-weight:600; margin-bottom:6px;}
.oferta .comercio{font-size:13px; color:var(--violeta); font-weight:500; margin-bottom:9px;}
.oferta .desc{font-size:14px; color:var(--texto-suave); margin:0 0 14px;}
.oferta .meta{
  display:flex; justify-content:space-between; gap:10px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--texto-suave); border-top:1px dashed var(--linea); padding-top:11px;
}
.oferta .vigencia{
  font-family:var(--mono); font-size:10.5px; color:var(--violeta);
  margin-top:8px; letter-spacing:0.04em;
}
.oferta-foto{
  width:calc(100% + 44px); margin:-22px -22px 14px; display:block;
  height:140px; object-fit:cover;
}
.oferta-enlaces{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 0;}
.oferta-enlaces a{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.04em;
  color:var(--violeta); background:var(--lila-pale); padding:4px 10px;
  border-radius:100px; text-decoration:none;
}
.oferta-enlaces a:hover{background:var(--lila); color:#fff;}
.ad-item .oferta-foto{
  width:100%; max-width:220px; height:120px; object-fit:cover;
  border-radius:12px; margin-bottom:12px;
}
.ad-item .oferta-enlaces{margin:12px 0 0;}
.p-vacio{
  grid-column:1/-1; text-align:center; padding:56px 20px; color:var(--texto-suave);
  background:#fff; border:1px dashed var(--linea); border-radius:18px;
}
.p-vacio strong{display:block; font-family:var(--display); font-size:18px; color:var(--tinta); margin-bottom:6px;}

/* --- Alta de comercio --- */
.p-alta-sep{display:flex; align-items:center; gap:16px; margin:52px 0 20px;}
.p-alta-sep hr{flex:1; border:none; border-top:1px dashed var(--linea);}
.p-alta-sep button{
  background:#fff; border:1.5px solid var(--violeta); color:var(--violeta);
  border-radius:100px; padding:9px 20px; font-family:var(--body); font-size:13.5px; font-weight:600; cursor:pointer;
  transition:background .15s, color .15s;
}
.p-alta-sep button:hover{background:var(--violeta); color:#fff;}
.p-alta-sep button:focus-visible{outline:3px solid var(--miel); outline-offset:2px;}
.p-alta{
  display:none; background:#fff; border:1px solid var(--linea); border-radius:22px;
  padding:32px 34px 34px; box-shadow:0 16px 40px rgba(107,63,212,0.09);
}
.p-alta.abierta{display:block;}
.p-alta h3{font-size:21px; font-weight:800; margin-bottom:7px;}
.p-alta .intro{color:var(--texto-suave); font-size:14.5px; margin:0 0 24px;}
.p-alta-fila{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.p-aviso{
  font-family:var(--mono); font-size:11.5px; color:var(--violeta);
  background:var(--lila-pale); border-radius:10px; padding:11px 14px; margin-top:16px; display:none;
}
.p-aviso.visible{display:block;}
@media(max-width:620px){.p-alta-fila{grid-template-columns:1fr;} .p-alta{padding:26px 22px 28px;}}

/* ================= PANEL DE ADMINISTRACIÓN ================= */
.ad-acceso{max-width:440px; margin:40px auto 0;}
.ad-cab{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:26px;}
.ad-cab h2{font-size:clamp(26px,3.2vw,36px); font-weight:800; margin-bottom:8px;}
.ad-cab .saludo{font-family:var(--mono); font-size:12.5px; color:var(--violeta);}

.ad-tabs{display:flex; gap:9px; flex-wrap:wrap; margin-bottom:26px;}
.ad-tab{
  background:#fff; border:1.5px solid var(--linea); color:var(--texto-suave);
  border-radius:100px; padding:10px 20px; font-family:var(--body); font-size:13.5px; font-weight:600;
  cursor:pointer; transition:background .15s, color .15s, border-color .15s;
}
.ad-tab:hover{border-color:var(--violeta); color:var(--violeta);}
.ad-tab.activa{background:var(--violeta); border-color:var(--violeta); color:#fff;}
.ad-tab .cuenta{
  font-family:var(--mono); font-size:11px; background:var(--miel); color:var(--tinta);
  border-radius:100px; padding:1px 8px; margin-left:7px;
}
.ad-tab.activa .cuenta{background:rgba(255,255,255,0.22); color:#fff;}

.ad-lista{display:grid; gap:16px;}
.ad-item{
  background:#fff; border:1px solid var(--linea); border-radius:18px; padding:24px 26px;
  display:grid; grid-template-columns:1fr auto; gap:22px; align-items:start;
}
.ad-item.pendiente{border-left:5px solid var(--miel);}
.ad-item.publicada{border-left:5px solid var(--menta);}
.ad-item h3{font-size:19px; font-weight:600; margin-bottom:5px;}
.ad-item .neg{font-size:13.5px; color:var(--violeta); font-weight:500; margin-bottom:10px;}
.ad-item .cond{font-size:14px; color:var(--texto-suave); margin:0 0 14px;}
.ad-datos{display:flex; flex-wrap:wrap; gap:8px;}
.ad-dato{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.05em;
  background:var(--lila-pale); color:var(--texto-suave); padding:5px 11px; border-radius:100px;
}
.ad-dato b{color:var(--violeta); font-weight:500;}
.ad-acciones{display:grid; gap:9px; min-width:150px;}
.ad-btn{
  border-radius:100px; padding:10px 18px; font-family:var(--body); font-size:13.5px; font-weight:600;
  cursor:pointer; border:1.5px solid transparent; transition:background .15s, color .15s;
}
.ad-btn.aprobar{background:var(--violeta); color:#fff;}
.ad-btn.aprobar:hover{background:#5A31BC;}
.ad-btn.rechazar{background:#fff; border-color:var(--linea); color:var(--texto-suave);}
.ad-btn.rechazar:hover{border-color:#B3261E; color:#B3261E;}
.ad-btn.retirar{background:#fff; border-color:var(--linea); color:var(--texto-suave);}
.ad-btn.retirar:hover{border-color:var(--violeta); color:var(--violeta);}
.ad-btn:focus-visible{outline:3px solid var(--miel); outline-offset:2px;}
@media(max-width:640px){
  .ad-item{grid-template-columns:1fr;}
  .ad-acciones{grid-template-columns:1fr 1fr;}
}
.ad-vacio{
  text-align:center; padding:56px 22px; background:#fff;
  border:1px dashed var(--linea); border-radius:18px; color:var(--texto-suave);
}
.ad-vacio strong{display:block; font-family:var(--display); font-size:19px; color:var(--tinta); margin-bottom:6px;}
.ad-wa-hilo{
  margin-top:16px; padding-top:16px; border-top:1px solid var(--linea);
  display:grid; gap:10px; max-height:360px; overflow-y:auto;
}
.ad-wa-msg{
  border-radius:14px; padding:10px 14px; font-size:14px; max-width:85%;
}
.ad-wa-msg b{display:block; font-size:11px; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:3px; opacity:0.7;}
.ad-wa-msg p{margin:0; color:var(--texto-suave);}
.ad-wa-msg .ad-wa-fecha{display:block; margin-top:4px; font-family:var(--mono); font-size:10px; color:var(--texto-suave); opacity:0.6;}
.ad-wa-msg.user{background:var(--lila-pale); justify-self:start;}
.ad-wa-msg.assistant{background:var(--violeta); color:#fff; justify-self:end;}
.ad-wa-msg.assistant p{color:#fff;}
.ad-wa-msg.assistant b{opacity:0.85;}
.ad-pie-enlace{
  background:none; border:none; color:rgba(239,232,255,0.5); font-family:var(--mono);
  font-size:11px; cursor:pointer; text-decoration:underline; padding:0;
}
.ad-pie-enlace:hover{color:var(--lila);}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important;}
  .rev{opacity:1 !important; transform:none !important;}
  html{scroll-behavior:auto;}
}

/* ---------- PIE LEGAL ---------- */
.pie-in{flex-wrap:wrap; row-gap:14px;}
.pie-legal{display:flex; gap:18px; flex-wrap:wrap;}
.pie-legal a{
  color:rgba(239,232,255,0.6); text-decoration:none; font-family:var(--mono);
  font-size:11px; letter-spacing:0.04em;
}
.pie-legal a:hover{color:var(--lila);}
.ad-pie-enlace:visited{color:rgba(239,232,255,0.5);}

/* ---------- CABECERA MÍNIMA (páginas legales) ---------- */
.nav-min{background:var(--tinta); border-bottom:1px solid rgba(165,133,245,0.2); padding:14px 0;}
.nav-min .nav-in{display:flex; align-items:center; justify-content:space-between; max-width:1140px; margin:0 auto; padding:0 26px;}
.nav-min .marca{font-size:19px;}
.nav-min .volver{color:rgba(239,232,255,0.78); text-decoration:none; font-family:var(--mono); font-size:12.5px; letter-spacing:0.04em;}
.nav-min .volver:hover{color:#fff;}

/* ---------- PÁGINAS LEGALES ---------- */
.legal-doc{max-width:760px; margin:0 auto; padding:72px 26px 100px;}
.legal-doc h1{font-size:clamp(28px,4vw,40px); font-weight:800; margin-bottom:10px;}
.legal-doc .actualizado{font-family:var(--mono); font-size:12px; color:var(--texto-suave); margin-bottom:40px; display:block;}
.legal-doc h2{font-size:21px; font-weight:700; margin:40px 0 14px;}
.legal-doc p{color:var(--texto-suave); font-size:15.5px; line-height:1.7; margin:0 0 14px;}
.legal-doc ul{margin:0 0 14px; padding-left:22px; color:var(--texto-suave); font-size:15.5px; line-height:1.7;}
.legal-doc li{margin-bottom:6px;}
.legal-doc strong{color:var(--texto);}
.legal-doc .aviso-datos{
  background:var(--lila-pale); border-radius:14px; padding:20px 24px; margin:0 0 28px;
  font-size:14.5px; color:var(--texto-suave); line-height:1.8;
}
.legal-doc .aviso-datos b{color:var(--tinta);}

/* ---------- BANNER DE COOKIES ---------- */
.cookies-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:300;
  background:var(--tinta); color:var(--lila-pale);
  border-top:1px solid rgba(165,133,245,0.28);
  box-shadow:0 -12px 30px rgba(10,4,24,0.35);
  padding:18px 26px; display:none;
}
.cookies-banner.visible{display:block;}
.cookies-in{
  max-width:1140px; margin:0 auto; display:flex; align-items:center;
  justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cookies-texto{font-size:13.5px; color:rgba(239,232,255,0.82); max-width:640px; margin:0;}
.cookies-texto a{color:var(--lila); text-decoration:underline;}
.cookies-botones{display:flex; gap:10px; flex-wrap:wrap;}
@media(max-width:600px){.cookies-in{flex-direction:column; align-items:stretch;}}

/* ---------- CONSENTIMIENTO EN FORMULARIOS ---------- */
.campo-consentimiento{display:flex; align-items:flex-start; gap:10px; margin:6px 0 17px;}
.campo-consentimiento input{width:auto; margin-top:3px;}
.campo-consentimiento label{
  font-family:var(--body); font-size:13px; color:var(--texto-suave);
  text-transform:none; letter-spacing:normal; margin:0;
}
.campo-consentimiento label a{color:var(--violeta);}