@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600;700&family=Nunito:wght@400;600;700;800;900&family=Playfair+Display:wght@700;800;900&display=swap');

:root{
  --ab110-serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --ab110-sans:'Nunito', Inter, system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  --ab110-script:'Dancing Script','Brush Script MT',cursive;
  --ab110-pink:#ff4fd8;
  --ab110-cyan:#65f4ff;
  --ab110-violet:#9b5cff;
  --ab110-cream:#fff7fb;
}

body{font-family:var(--ab110-sans);}
h1,h2,.hero-title,.section-title,.ab104-hero-copy h1,.ab104-section-head h2,.auth-card h1{
  font-family:var(--ab110-serif);
  letter-spacing:-.045em;
}
.brand-word,.footer-logo-v45 strong{font-family:var(--ab110-sans);}
.ab-romantic-script,.love-script{font-family:var(--ab110-script);}
body:not(.admin-body) .btn,
body:not(.admin-body) button,
body:not(.admin-body) .input,
body:not(.admin-body) textarea,
body:not(.admin-body) select{font-family:var(--ab110-sans);}

/* Textos románticos: animación limpia, sin crear capas encima del cursor */
[data-love-text], .ab-love-reactive{
  position:relative;
  display:inline-block;
  transform-style:preserve-3d;
  will-change:transform,filter,text-shadow;
  transition:transform .22s ease, filter .22s ease, text-shadow .22s ease;
}
[data-love-text]:hover,.ab-love-reactive:hover{
  filter:drop-shadow(0 0 16px rgba(255,79,216,.38));
  text-shadow:0 0 22px rgba(255,79,216,.34),0 0 34px rgba(101,244,255,.16);
}
.ab-letter-pop{animation:abLetterPop .65s cubic-bezier(.2,1.7,.3,1) both;}
@keyframes abLetterPop{
  0%{transform:translateY(0) scale(1) rotate(0)}
  45%{transform:translateY(-8px) scale(1.08) rotate(-1deg)}
  100%{transform:translateY(0) scale(1) rotate(0)}
}

/* Efectos creados por JS: nunca capturan clicks */
.ab110-heart-spark,.ab110-touch-glow,.ab106-heart-spark,.ab106-touch-glow{
  pointer-events:none!important;
  user-select:none!important;
}
.ab110-heart-spark{
  position:fixed;
  z-index:99999;
  left:0;
  top:0;
  pointer-events:none;
  font-size:18px;
  line-height:1;
  filter:drop-shadow(0 0 12px rgba(255,79,216,.8));
  animation:ab110HeartFloat .9s ease-out forwards;
}
@keyframes ab110HeartFloat{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(0)}
  16%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx,0px)),calc(-50% - 74px)) scale(1.14) rotate(var(--rot,18deg))}
}
.ab110-touch-glow{
  position:fixed;
  z-index:99998;
  left:0;
  top:0;
  width:72px;
  height:72px;
  border-radius:50%;
  pointer-events:none;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(255,79,216,.20),rgba(101,244,255,.10) 42%,rgba(255,255,255,0) 72%);
  animation:ab110TouchGlow .58s ease-out forwards;
}
@keyframes ab110TouchGlow{from{opacity:1;scale:.45}to{opacity:0;scale:1.24}}

/* Brillo de botones: SOLO en elementos interactivos, no global. */
body:not(.admin-body) .btn,
body:not(.admin-body) button,
body:not(.admin-body) .template-card,
body:not(.admin-body) .ab103-plan-card{
  position:relative;
}
body:not(.admin-body) .btn::after,
body:not(.admin-body) .ab103-buy::after,
body:not(.admin-body) .auth-submit::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none!important;
  background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.22),transparent 80%);
  transform:translateX(-120%) rotate(10deg);
  transition:transform .65s ease;
  z-index:0;
}
body:not(.admin-body) .btn:hover::after,
body:not(.admin-body) .ab103-buy:hover::after,
body:not(.admin-body) .auth-submit:hover::after{
  transform:translateX(120%) rotate(10deg);
}
body:not(.admin-body) .btn > *,
body:not(.admin-body) .auth-submit > *{position:relative;z-index:1;}

.success-alert{border-color:rgba(52,211,153,.45)!important;background:rgba(6,78,59,.35)!important;color:#dbfff3!important;}

@media (pointer:coarse){
  [data-love-text],.ab-love-reactive{transition:transform .18s ease,filter .18s ease}
  .ab110-heart-spark{font-size:20px}
}
@media (max-width:760px){
  h1,.ab104-hero-copy h1,.ab104-section-head h2{letter-spacing:-.035em}
  .auth-shell{padding-inline:14px}
  .auth-card h1{font-size:clamp(2rem,11vw,3.4rem)}
}
