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

*{box-sizing:border-box}
html,body{margin:0;background:#F48CBC}
body{font-family:'Jost',system-ui,sans-serif;color:#3E1230;-webkit-font-smoothing:antialiased}
a{color:#7A1A50}
a:hover{color:#4A1236}
img{max-width:100%}

/* ---------- Cielo mágico ---------- */
.page{position:relative;overflow:hidden;min-height:100vh;padding:72px 20px 112px}
.sky{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:linear-gradient(160deg,#F48CBC 0%,#E0569A 34%,#EC7448 68%,#F2A853 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.8;animation:drift 18s ease-in-out infinite alternate}
.b1{width:540px;height:540px;background:#D92F83;top:-140px;left:-120px}
.b2{width:480px;height:480px;background:#EE5A22;top:32%;right:-140px;animation-duration:22s}
.b3{width:600px;height:600px;background:#8E3CC4;bottom:-200px;left:18%;animation-duration:26s;opacity:.65}
.b4{width:400px;height:400px;background:#FFC94F;top:18%;left:42%;animation-duration:20s;opacity:.5}
.burst{position:absolute;top:-220px;right:-160px;width:820px;height:980px;background:radial-gradient(ellipse at 62% 30%,rgba(255,255,255,.98) 0%,rgba(255,251,236,.75) 20%,rgba(255,240,222,.3) 44%,transparent 70%);filter:blur(8px);animation:glow 8s ease-in-out infinite}
.beams{position:absolute;top:-200px;right:-200px;width:1500px;height:1500px;background:conic-gradient(from 200deg at 85% 8%,transparent 0deg,rgba(255,255,255,.35) 3deg,transparent 7deg,transparent 14deg,rgba(255,246,214,.28) 17deg,transparent 22deg,transparent 30deg,rgba(255,255,255,.3) 33deg,transparent 38deg,transparent 47deg,rgba(255,236,220,.25) 50deg,transparent 55deg,transparent 360deg);-webkit-mask-image:radial-gradient(circle at 85% 8%,#000 10%,transparent 65%);mask-image:radial-gradient(circle at 85% 8%,#000 10%,transparent 65%);filter:blur(3px);animation:glow 10s ease-in-out 1s infinite}
.ribbons{position:absolute;inset:0;width:100%;height:100%}
.ribbons path{fill:none;stroke-linecap:round;stroke-dasharray:420 900;animation:flow 12s linear infinite}
.streak{position:absolute;height:3px;width:240px;border-radius:3px;background:linear-gradient(90deg,transparent,rgba(255,248,205,.9) 60%,#fff);box-shadow:0 0 10px 2px rgba(255,240,200,.75),0 0 28px 8px rgba(255,170,215,.4);opacity:0;animation:shoot 7s linear infinite}
.dust{position:absolute;top:0;left:0;width:2px;height:2px;border-radius:50%;background:transparent;animation:twinkle 4s ease-in-out infinite;box-shadow:60px 90px #fff,180px 240px #FFE4A0,300px 120px #fff,420px 380px #FFE4A0,540px 70px #fff,660px 300px #FFE4A0,780px 180px #fff,900px 420px #FFE4A0,1020px 110px #fff,1140px 340px #FFE4A0,1260px 220px #fff,1380px 460px #FFE4A0,90px 560px #FFE4A0,230px 720px #fff,370px 610px #FFE4A0,510px 860px #fff,650px 690px #FFE4A0,790px 940px #fff,930px 640px #FFE4A0,1070px 820px #fff,1210px 700px #FFE4A0,1350px 900px #fff,140px 1040px #fff,320px 1180px #FFE4A0,500px 1080px #fff,700px 1260px #FFE4A0,880px 1120px #fff,1060px 1300px #FFE4A0,1240px 1060px #fff,1400px 1220px #FFE4A0}
.dust2{animation-delay:2s;animation-duration:5s;box-shadow:30px 180px #fff,150px 40px #FFE4A0,270px 300px #fff,350px 20px #fff,480px 200px #FFE4A0,600px 140px #fff,720px 40px #FFE4A0,830px 260px #fff,960px 30px #fff,1080px 230px #FFE4A0,1190px 130px #fff,1300px 330px #FFE4A0,1420px 90px #fff,40px 420px #fff,200px 480px #FFE4A0,330px 520px #fff,460px 450px #FFE4A0,620px 500px #fff,740px 470px #FFE4A0,880px 560px #fff,1010px 480px #fff,1160px 600px #FFE4A0,1290px 540px #fff,1420px 520px #FFE4A0,60px 800px #fff,210px 880px #FFE4A0,400px 760px #fff,560px 980px #FFE4A0,720px 860px #fff,860px 760px #FFE4A0,1000px 980px #fff,1120px 760px #fff,1280px 820px #FFE4A0,1430px 1000px #fff,80px 1240px #FFE4A0,260px 1340px #fff,440px 1420px #FFE4A0,600px 1320px #fff,780px 1400px #fff,960px 1460px #FFE4A0,1140px 1420px #fff,1330px 1340px #FFE4A0}
.dust3{width:1px;height:1px;animation-delay:1s;animation-duration:6s;box-shadow:110px 330px 5px 2px rgba(255,255,255,.95),380px 90px 5px 2px rgba(255,232,170,.95),690px 410px 5px 2px rgba(255,255,255,.95),980px 210px 5px 2px rgba(255,232,170,.95),1250px 120px 5px 2px rgba(255,255,255,.95),1380px 690px 5px 2px rgba(255,232,170,.95),170px 980px 5px 2px rgba(255,255,255,.95),540px 1150px 5px 2px rgba(255,232,170,.95),900px 900px 5px 2px rgba(255,255,255,.95),1210px 1250px 5px 2px rgba(255,232,170,.95)}
.gold{position:absolute;filter:drop-shadow(0 0 4px rgba(255,236,170,.95)) drop-shadow(0 0 14px rgba(255,210,120,.6));animation:sparkle 5s ease-in-out infinite}
.love{position:absolute;filter:drop-shadow(0 0 6px rgba(255,255,255,.95)) drop-shadow(0 0 16px rgba(255,150,200,.6));animation:float 7s ease-in-out infinite}
@keyframes drift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(80px,60px) scale(1.15)}}
@keyframes glow{0%,100%{opacity:.8}50%{opacity:1}}
@keyframes flow{to{stroke-dashoffset:-1320}}
@keyframes shoot{0%{opacity:0;transform:rotate(-28deg) translateX(-240px)}12%{opacity:1}70%{opacity:1}100%{opacity:0;transform:rotate(-28deg) translateX(760px)}}
@keyframes twinkle{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes sparkle{0%,100%{opacity:.55;transform:scale(.85) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(12deg)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ---------- Contenido ---------- */
.wrap{position:relative;z-index:1;margin:0 auto}
.glass{background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.9);border-radius:36px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 60px rgba(200,60,130,.2),0 0 80px rgba(255,236,190,.45)}
.back{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border-radius:999px;background:rgba(255,255,255,.45);font-size:15px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:#4A1236;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.eyebrow{font-size:14px;letter-spacing:.22em;text-transform:uppercase;font-weight:500;color:#9A2160}
.title{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:58px;line-height:1.1;color:#4A1236}
.serif-i{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500}
.body{margin:0;font-size:21px;line-height:1.7;font-weight:300}
.stars{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}
.stars li{display:flex;gap:14px;align-items:flex-start;font-size:21px;line-height:1.55;font-weight:300}
.stars svg{flex:none;margin-top:7px}
.cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:0 44px;border:none;border-radius:999px;background:#F4C66A;color:#3E1230;cursor:pointer;text-decoration:none;font-family:'Jost',system-ui,sans-serif;font-size:16px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;box-shadow:0 0 0 1px rgba(255,255,255,.9),0 0 34px rgba(255,214,140,.8);transition:box-shadow .3s ease,transform .3s ease}
.cta:hover{color:#3E1230;transform:translateY(-2px);box-shadow:0 0 0 1px #fff,0 0 50px rgba(255,220,150,.95)}
.cta.dark{background:#3E0F2E;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.9),0 0 30px rgba(255,160,210,.6)}
.cta.dark:hover{color:#fff}
.divider{display:block;margin:0 auto}

/* Portada */
.hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:24px 48px;margin-top:-40px}
.hero-photo{position:relative;flex:1 1 340px;max-width:460px;display:flex;justify-content:center}
.hero-photo::before{content:"";position:absolute;left:50%;top:42%;width:120%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,246,226,.75) 28%,rgba(255,214,170,.35) 52%,transparent 70%)}
.hero-photo img{position:relative;display:block;width:100%;max-width:480px;height:auto;filter:drop-shadow(0 0 30px rgba(255,240,220,.85))}
.hero-text{flex:1 1 460px;max-width:660px;padding-bottom:80px;display:flex;flex-direction:column;gap:22px}
.hero-text h1{margin:0;font-family:'Cinzel',Georgia,serif;font-weight:500;font-size:clamp(30px,4.4vw,56px);line-height:1.12;letter-spacing:.02em;white-space:nowrap;color:#3E0F2E}
.hero-text p{margin:0;font-family:'Quicksand',system-ui,sans-serif;font-weight:600;font-size:30px;line-height:1.55;color:#3E0F2E}
.cards{display:flex;flex-wrap:wrap;gap:32px;align-items:stretch}
.card{flex:1 1 400px;min-width:0;min-height:300px;text-decoration:none;color:#3E1230;background-color:rgba(255,255,255,.42);border:1px solid rgba(255,255,255,.85);border-radius:36px;padding:56px 44px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 16px 50px rgba(200,60,130,.18),0 0 60px rgba(255,236,190,.35);transition:transform .35s ease,box-shadow .35s ease,background-color .35s ease}
.card:hover{color:#3E1230;transform:translateY(-6px);background-color:rgba(255,255,255,.62);box-shadow:0 0 0 1px rgba(255,255,255,.9),0 20px 60px rgba(200,60,130,.28),0 0 80px rgba(255,236,190,.55)}
.card .eyebrow{font-size:18px}
.card-title{display:flex;flex-direction:column;font-family:'Cinzel',Georgia,serif;font-weight:500;font-size:60px;line-height:1.15;color:#3E0F2E}
.card-more{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:17px;letter-spacing:.12em;text-transform:uppercase;color:#5A1A44}

/* Páginas de oferta */
.offer{display:flex;flex-direction:column;gap:24px;padding:56px 48px}
.offer-head{display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}
.offer-close{margin:8px 0 0;font-size:33px;line-height:1.35;text-align:center;color:#9A2160}
.offer-foot{margin-top:8px;padding-top:32px;border-top:1px solid rgba(217,162,62,.45);display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center}
.meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;font-size:17px;letter-spacing:.12em;text-transform:uppercase;color:#5A1A44}
.price{display:flex;align-items:baseline;justify-content:center;gap:14px}
.price .now{font-family:'Cormorant Garamond',Georgia,serif;font-size:66px;font-weight:500;line-height:1;color:#3E0F2E}
.price .unit{font-size:16px;color:#5A1A44}
.price .before{position:relative;display:inline-block;font-family:'Cormorant Garamond',Georgia,serif;font-size:34px;font-weight:500;line-height:1;color:rgba(74,18,54,.5)}
.price .before::after{content:"";position:absolute;left:-4px;right:-4px;top:50%;height:2px;background:#7A1A50;transform:rotate(-22deg)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Calendario Calendly */
.booking{display:none;max-width:1120px;margin:64px auto 0;flex-direction:column;gap:24px}
.booking.open{display:flex}
.booking .calendly-inline-widget{min-width:320px;height:1100px;border-radius:28px;overflow:hidden}

/* Inscripción Comunidad Amor */
.join{display:none;max-width:1120px;margin:64px auto 0;flex-direction:column;gap:28px}
.join.open{display:flex}
.join-box{display:flex;flex-wrap:wrap;overflow:hidden;border-radius:32px;background:rgba(255,255,255,.72)}
.join-aside{flex:1 1 280px;min-width:0;padding:40px 36px;display:flex;flex-direction:column;gap:18px;border-right:1px solid rgba(217,162,62,.35)}
.join-main{flex:999 1 560px;min-width:0;padding:40px 36px}
.join-form{display:flex;flex-direction:column;gap:20px;margin:0}
.join-form[hidden]{display:none}
.join-h3{margin:0;font-size:22px;font-weight:500;color:#3E0F2E}
.join-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid rgba(217,162,62,.35);font-size:17px;font-weight:500;color:#3E0F2E}
.before-sm{position:relative;display:inline-block;font-weight:400;color:rgba(74,18,54,.55)}
.before-sm::after{content:"";position:absolute;left:-3px;right:-3px;top:50%;height:1.5px;background:#7A1A50;transform:rotate(-22deg)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:8px;font-size:16px;font-weight:500;color:#3E0F2E}
.field input,.field select{min-height:52px;border-radius:12px;border:1px solid rgba(62,15,46,.35);background:rgba(255,255,255,.9);padding:0 14px;font-family:'Jost',system-ui,sans-serif;font-size:16px;color:#3E0F2E}
.field input:focus,.field select:focus{outline:none;border-color:#7A1A50;box-shadow:0 0 0 3px rgba(244,198,106,.45)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;color:#4A1236;cursor:pointer}
.consent input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:#7A1A50;cursor:pointer}
.err{margin:0;padding:12px 16px;border-radius:12px;background:rgba(179,38,30,.1);color:#8C1D18;font-size:15px}
.err[hidden]{display:none}
.link-btn{min-height:44px;padding:0 12px;border:none;background:none;color:#7A1A50;font-family:'Jost',system-ui,sans-serif;font-size:15px;cursor:pointer;text-decoration:underline}
.cta:disabled{opacity:.6;cursor:not-allowed;transform:none}
section.message[hidden]{display:none}
.message p.rosa{color:#B0256F;font-size:21px;line-height:1.7}
#bienvenida,#gracias{gap:28px;padding-top:64px;padding-bottom:64px}
.cta-sm{min-height:46px;padding:0 28px;font-size:14px}
.message p.nota-peq{font-size:15px;line-height:1.55;color:#5A1A44}

/* Mensajes de bienvenida / gracias */
.message{max-width:720px;margin:0 auto;padding:56px 44px;display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
.message h1{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:48px;line-height:1.1;color:#3E0F2E}
.message p{margin:0;max-width:560px;font-size:20px;line-height:1.6;color:#4A1236}
.message .stars{text-align:left;max-width:560px}
.message .stars li{font-size:18px;font-weight:400;color:#3E0F2E}
.sub{display:flex;flex-direction:column;gap:8px;padding-left:30px}

/* Agenda de la sesión 1:1 */
.agenda{display:flex;flex-wrap:wrap;gap:28px}
.cal{flex:1 1 300px;min-width:0}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-mes{font-size:18px;font-weight:500;color:#3E0F2E}
.cal-nav{width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,.7);color:#7A1A50;font-size:24px;line-height:1;cursor:pointer}
.cal-nav:disabled{opacity:.3;cursor:default}
.cal-semana,.cal-dias{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.cal-semana span{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#5A1A44;padding:4px 0}
.cal-dia{aspect-ratio:1;min-height:40px;border:none;border-radius:50%;background:none;font-family:'Jost',system-ui,sans-serif;font-size:16px;color:rgba(62,15,46,.35)}
.cal-dia.libre{background:rgba(244,198,106,.35);color:#3E0F2E;font-weight:500;cursor:pointer}
.cal-dia.libre:hover{background:rgba(244,198,106,.6)}
.cal-dia.sel{background:#7A1A50;color:#fff}
.horas{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;gap:12px}
.horas-titulo{font-size:16px;font-weight:500;color:#3E0F2E}
.horas-lista{display:flex;flex-direction:column;gap:10px;max-height:340px;overflow-y:auto}
.hora{min-height:48px;border:1px solid #7A1A50;border-radius:12px;background:rgba(255,255,255,.85);color:#7A1A50;font-family:'Jost',system-ui,sans-serif;font-size:16px;font-weight:500;cursor:pointer}
.hora:hover{background:rgba(244,198,106,.35)}
.hora.sel{background:#7A1A50;color:#fff}
.zona{margin:0;font-size:14px;color:#5A1A44}
.cita{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:16px;background:#F9DE9C;border:1px solid #F4C66A}
.cita[hidden]{display:none}
.cita-label{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#7A1A50}
.cita-fecha{font-size:18px;font-weight:500;color:#3E0F2E}
.cita-fecha::first-letter{text-transform:uppercase}
.cita-hora{font-size:16px;color:#4A1236}
.condiciones{padding:0}
.condiciones-titulo{display:block;margin-bottom:6px;font-size:15px;font-weight:500;font-style:italic;color:#3E0F2E}
.condiciones p{margin:0;font-size:15px;line-height:1.6;font-style:italic;color:#4A1236}
.cond-lista{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:15px;line-height:1.5;color:#4A1236}
.detalles{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}
.detalles li{display:flex;gap:12px;align-items:flex-start;font-size:17px;line-height:1.45;color:#3E0F2E}
.detalles svg{flex:none;color:#7A1A50;margin-top:1px}
.aside-mx{margin:0;font-size:15px;line-height:1.5;color:#3E0F2E}
.aside-mx[hidden]{display:none}

@media (max-width:640px){
  .page{padding:48px 16px 80px}
  .hero{margin-top:0}
  .hero-text{padding-bottom:0}
  .hero-text p{font-size:22px}
  .card{padding:44px 24px}
  .card-title{font-size:44px}
  .offer{padding:40px 24px}
  .title{font-size:44px}
  .body,.stars li{font-size:18px}
  .offer-close{font-size:26px}
  .message{padding:40px 24px}
  .message h1{font-size:38px}
  .booking .calendly-inline-widget{height:1200px}
  .join-aside,.join-main{padding:32px 22px}
  .join-aside{border-right:none;border-bottom:1px solid rgba(217,162,62,.35)}
}
@media (prefers-reduced-motion:reduce){
  .blob,.burst,.beams,.ribbons path,.streak,.dust,.gold,.love,.card,.cta{animation:none;transition:none}
  .streak{opacity:.7;transform:rotate(-28deg)}
}
