@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,700;1,9..144,500;1,9..144,700&family=Outfit:wght@300;400;500;600&display=swap');
:root{--plum:#4b1533;--rosa:#d64570;--rosa2:#ff9ec1;--blush:#fbe9ee;--papel:#fff8f3;--tinta:#2b1a22;--suave:#8a6a75;--linea:#f1d6df;--ok:#1f8a5b;--f-d:'Fraunces',Georgia,serif;--f-u:'Outfit',system-ui,sans-serif;--r:22px}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--f-u);color:var(--tinta);background:var(--blush);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--rosa)}
h1,h2,h3{font-family:var(--f-d);font-weight:500;line-height:1.1;color:var(--plum)}
.contenedor{max-width:960px;margin:0 auto;padding:0 20px}
.barra{display:flex;align-items:center;justify-content:space-between;padding:20px 0}
.marca{font-family:var(--f-d);font-weight:700;font-size:22px;color:var(--plum);text-decoration:none}
.barra nav a{color:var(--plum);text-decoration:none;margin-left:22px;font-weight:500;font-size:15px}
.btn{display:inline-block;font-family:var(--f-u);font-weight:600;font-size:16px;border:0;border-radius:999px;padding:14px 30px;background:var(--rosa);color:#fff;cursor:pointer;text-decoration:none;box-shadow:0 12px 28px rgba(214,69,112,.28);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px)}.btn:focus-visible{outline:3px solid var(--rosa2);outline-offset:3px}
.btn.sec{background:transparent;color:var(--plum);border:2px solid var(--plum);box-shadow:none}
.btn.chico{padding:10px 18px;font-size:14px}
.btn:disabled{opacity:.55;cursor:wait;transform:none}
/* hero */
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;padding:60px 0 70px}
.hero h1{font-size:clamp(40px,6vw,66px);font-style:italic;margin-bottom:18px}
.hero p{font-size:19px;color:var(--suave);max-width:46ch;margin-bottom:28px}
.hero .precio{margin-top:16px;color:var(--suave);font-size:15px}
.hero .precio b{color:var(--plum);font-size:22px;font-family:var(--f-d)}
.escena{position:relative;height:320px;display:grid;place-items:center}
.sobre{position:relative;width:260px;height:172px;filter:drop-shadow(0 26px 34px rgba(75,21,51,.28));animation:levitar 5s ease-in-out infinite}
@keyframes levitar{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(1deg)}}
.sobre-cuerpo{position:absolute;inset:0;background:var(--papel);border-radius:12px;overflow:hidden}
.sobre-cuerpo:before,.sobre-cuerpo:after{content:"";position:absolute;width:190px;height:190px;background:#ffd3e3;top:-30px;transform:rotate(45deg)}
.sobre-cuerpo:before{left:-95px}.sobre-cuerpo:after{right:-95px}
.sobre-carta{position:absolute;left:16px;right:16px;top:-46px;bottom:40px;background:#fff;border-radius:8px;padding:16px 18px;font-family:var(--f-d);font-style:italic;color:var(--plum);font-size:15px;line-height:1.35;box-shadow:0 -6px 20px rgba(0,0,0,.06)}
.sobre-carta span{display:block;font-size:11px;color:var(--suave);font-style:normal;margin-top:8px}
.sobre-tapa{position:absolute;left:0;right:0;top:0;height:92px;background:var(--rosa);clip-path:polygon(0 0,100% 0,50% 100%);border-radius:12px 12px 0 0;transform:rotateX(180deg);transform-origin:top;z-index:0}
.sobre-frente{position:absolute;left:0;right:0;bottom:0;height:100px;background:var(--papel);clip-path:polygon(0 100%,100% 100%,100% 0,50% 60%,0 0);border-radius:0 0 12px 12px;z-index:2}
.sello{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;background:var(--rosa);color:#fff;display:grid;place-items:center;font-size:20px;z-index:3;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.nota-musica{position:absolute;font-size:26px;color:var(--rosa);animation:nota 3s ease-in-out infinite;opacity:.8}
.nota-musica.n2{animation-delay:1s;font-size:20px}.nota-musica.n3{animation-delay:2s;font-size:16px}
@keyframes nota{0%{transform:translate(0,0);opacity:0}30%{opacity:.9}100%{transform:translate(30px,-90px) rotate(15deg);opacity:0}}
/* secciones landing */
.seccion{padding:50px 0}
.seccion h2{font-size:34px;margin-bottom:8px}
.seccion .intro{color:var(--suave);margin-bottom:30px;max-width:60ch}
.pasos{counter-reset:p;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pasos div{background:var(--papel);border-radius:var(--r);padding:26px 24px;position:relative;counter-increment:p}
.pasos div:before{content:counter(p);font-family:var(--f-d);font-style:italic;font-size:34px;color:var(--rosa);display:block;margin-bottom:8px;line-height:1}
.pasos h3{font-size:20px;margin-bottom:6px}.pasos p{color:var(--suave);font-size:15px}
.ocasiones-lista{display:flex;flex-wrap:wrap;gap:10px}
.ocasiones-lista span{background:#fff;border:1px solid var(--linea);border-radius:999px;padding:9px 16px;font-size:15px}
.planes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.plan{background:var(--papel);border-radius:var(--r);padding:28px 24px;text-align:center;border:2px solid transparent}
.plan.destacado{border-color:var(--rosa)}
.plan h3{font-size:22px}.plan .p{font-family:var(--f-d);font-size:30px;color:var(--rosa);margin:10px 0 4px}.plan small{color:var(--suave);display:block;margin-bottom:18px}
.pie{padding:40px 0;color:var(--suave);font-size:14px;text-align:center}
.pie a{color:var(--plum)}
/* asistente */
.asistente{max-width:680px;margin:20px auto 80px;padding:0 16px}
.progreso{height:6px;background:#fff;border-radius:99px;overflow:hidden;margin:6px 0 22px}
.progreso i{display:block;height:100%;background:var(--rosa);width:12%;transition:width .4s}
.cabecera-paso{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--suave)}
.tarjeta{background:var(--papel);border-radius:var(--r);padding:34px 30px;box-shadow:0 20px 60px rgba(75,21,51,.10)}
.paso h2{font-size:30px;margin-bottom:6px}
.paso .ayuda{color:var(--suave);margin-bottom:22px;font-size:15px}
label{display:block;font-weight:500;font-size:14px;margin:16px 0 6px;color:var(--plum)}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=url],input[type=number],input[type=password],select,textarea{width:100%;font:inherit;font-size:16px;padding:13px 15px;border:1.5px solid var(--linea);border-radius:14px;background:#fff;color:var(--tinta);transition:border .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--rosa)}
textarea{min-height:130px;resize:vertical;line-height:1.5}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.opciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}
.opcion{position:relative}
.opcion input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opcion span{display:block;background:#fff;border:1.5px solid var(--linea);border-radius:16px;padding:14px 12px;text-align:center;font-size:14px;line-height:1.3;transition:.15s}
.opcion span b{display:block;font-size:26px;margin-bottom:6px}
.opcion small{display:block;color:var(--suave);font-size:12px;margin-top:4px}
.opcion input:checked+span{border-color:var(--rosa);background:#fff0f5;box-shadow:0 0 0 3px rgba(214,69,112,.15)}
.opcion input:focus-visible+span{outline:3px solid var(--rosa2)}
.segmento{display:inline-flex;background:#fff;border:1.5px solid var(--linea);border-radius:999px;padding:4px}
.segmento label{margin:0;position:relative}
.segmento input{position:absolute;opacity:0;inset:0;cursor:pointer}
.segmento span{display:block;padding:8px 18px;border-radius:999px;font-size:14px;cursor:pointer}
.segmento input:checked+span{background:var(--plum);color:#fff}
.contador-txt{text-align:right;font-size:12px;color:var(--suave)}
/* fotos */
.zona-subida{border:2px dashed var(--rosa2);border-radius:18px;padding:30px 18px;text-align:center;color:var(--suave);cursor:pointer;background:#fff;transition:.15s;margin-top:8px}
.zona-subida:hover,.zona-subida.sobre-ella{background:#fff0f5;border-color:var(--rosa)}
.zona-subida b{display:block;color:var(--plum);font-size:16px;margin-bottom:4px}
.fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:18px}
.foto{background:#fff;border-radius:14px;padding:8px;border:1.5px solid var(--linea);position:relative}
.foto.especial{border-color:var(--rosa);box-shadow:0 0 0 3px rgba(214,69,112,.15)}
.foto img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block}
.foto input[type=text]{margin-top:8px;padding:8px 10px;font-size:13px;border-radius:10px}
.foto .acciones{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12px}
.foto .acciones label{margin:0;font-weight:400;cursor:pointer;color:var(--suave);display:flex;align-items:center;gap:4px}
.foto .borrar{background:none;border:0;color:#b91c1c;cursor:pointer;font-size:12px}
.caja-especial{background:#fff0f5;border-radius:16px;padding:16px 18px;margin-top:18px}
.miniatura-yt{display:none;margin-top:14px;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:16/9;position:relative}
.miniatura-yt img{width:100%;height:100%;object-fit:cover;opacity:.85}
.miniatura-yt span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:44px}
.temas{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.tema-muestra{height:70px;border-radius:12px;margin-bottom:8px;display:grid;place-items:center;font-family:var(--f-d);font-style:italic;font-size:18px}
/* preview */
.marco-preview{border-radius:18px;overflow:hidden;border:1.5px solid var(--linea);background:#000;aspect-ratio:9/16;max-height:640px;margin:0 auto}
.marco-preview iframe{width:100%;height:100%;border:0}
.resumen{background:#fff;border-radius:16px;padding:16px 18px;margin-top:14px;font-size:15px}
.resumen div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--linea)}
.resumen div:last-child{border:0;font-weight:600;font-size:18px;color:var(--plum)}
.checkbox{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:14px;font-weight:400;color:var(--tinta)}
.checkbox input{width:18px;height:18px;margin-top:2px;flex:none;accent-color:var(--rosa)}
.botonera{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.aviso{background:#fff3cd;color:#7a5a00;border-radius:12px;padding:12px 16px;margin-top:14px;font-size:14px;display:none}
.aviso.ver{display:block}
.pantalla-final{text-align:center;padding:20px 0}
.pantalla-final .icono{font-size:60px}
.pantalla-final h2{font-size:32px;margin:10px 0}
.pantalla-final p{color:var(--suave);max-width:46ch;margin:0 auto 14px}
.link-caja{background:#fff;border:2px dashed var(--rosa);border-radius:12px;padding:12px 14px;word-break:break-all;font-family:monospace;font-size:14px;margin:16px 0}
.cargando{position:fixed;inset:0;background:rgba(251,233,238,.85);display:none;place-items:center;z-index:99;font-weight:600;color:var(--plum)}
.cargando.ver{display:grid}
/* páginas simples */
.simple{max-width:520px;margin:60px auto;padding:0 16px}
.simple .tarjeta{text-align:center}
.simple h1{font-size:34px;margin:10px 0}
.simple p{color:var(--suave)}
.tabla{width:100%;border-collapse:collapse;font-size:14px;margin-top:14px}
.tabla th,.tabla td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--linea)}
.etiqueta{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;background:#eee}
.etiqueta.pagada,.etiqueta.activa{background:#dcfce7;color:#166534}
.etiqueta.pendiente{background:#fef3c7;color:#92400e}
.etiqueta.expirada,.etiqueta.cancelada{background:#fee2e2;color:#991b1b}
.flash{border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:14px}
.flash.ok{background:#dcfce7;color:#166534}.flash.error{background:#fee2e2;color:#991b1b}
@media (max-width:760px){.hero{grid-template-columns:1fr;padding:30px 0 40px;text-align:center}.hero p{margin:0 auto 24px}.escena{height:260px;order:-1}.pasos,.planes{grid-template-columns:1fr}.fila{grid-template-columns:1fr}.tarjeta{padding:26px 20px}.barra nav a{margin-left:14px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.sobre,.nota-musica{animation:none}}
/* frases dinámicas */
.frase-fila{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.frase-fila input{flex:1;margin:0}
.frase-fila .quitar{flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--linea);background:#fff;color:var(--suave);font-size:20px;cursor:pointer;line-height:1}
.frase-fila .quitar:hover{color:var(--rosa);border-color:var(--rosa)}
