/* GoodPlann · núcleo compartido · v1.0.0 */

/* caja y tipografía dentro de cualquier bloque GoodPlann */
.gp, .gp *, .gp *::before, .gp *::after{ box-sizing:border-box; }
.gp{ position:relative; font-family:var(--ff); color:var(--ink); }
.gp ::selection{ background:rgba(255,0,170,.28); color:var(--snow); }
.gp img{ max-width:100%; height:auto; }
.gp button{ font-family:var(--ff); }

/* la entrada se activa por bloque (no en <body>), para que cada widget
   de Elementor se anime por su cuenta y también dentro del editor */
.gp-js .gp .reveal{ opacity:0; transform:translateY(18px); }
.gp-js .gp.lit .reveal{ opacity:1; transform:none; transition:opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.gp.lit .r1{ transition-delay:.05s } .gp.lit .r2{ transition-delay:.15s }
.gp.lit .r3{ transition-delay:.25s } .gp.lit .r4{ transition-delay:.35s }
.gp.lit .r5{ transition-delay:.45s } .gp.lit .r6{ transition-delay:.55s }
.gp.lit .r7{ transition-delay:.65s }
.gp .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px,5vw,56px); }
.gp .cta{ position:relative; display:inline-flex; align-items:center; gap:11px; font-family:var(--ff);
  font-weight:800; font-size:15px; letter-spacing:.01em; color:#0A1F3A; text-decoration:none;
  padding:17px 30px; border-radius:999px; border:0; cursor:pointer;
  background:linear-gradient(135deg, var(--lime) 0%, var(--tiffany) 100%);
  box-shadow:0 10px 30px rgba(200,255,0,.28), 0 0 0 1px rgba(255,255,255,.12) inset;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; }
.gp .cta::after{ content:""; position:absolute; inset:-2px; border-radius:999px; z-index:-1;
  background:linear-gradient(135deg, var(--lime), var(--tiffany)); filter:blur(18px); opacity:.55; transition:opacity .25s; }
.gp .cta:hover{ transform:translateY(-2px); box-shadow:0 16px 40px rgba(200,255,0,.4); }
.gp .cta:hover::after{ opacity:.85; }
.gp .cta:focus-visible{ outline:2px solid var(--snow); outline-offset:3px; }
.gp .cta .arw{ transition:transform .25s; }
.gp .cta:hover .arw{ transform:translateX(4px); }
.gp .trust{ font-size:12px; font-weight:500; letter-spacing:.03em; color:var(--muted);
  display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:20px; align-items:center; }
.gp .trust span{ display:inline-flex; align-items:center; gap:7px; }
.gp .trust i{ width:5px; height:5px; border-radius:50%; background:var(--persian); display:inline-block; }
.gp .cta-note{ margin:11px 0 0; font-size:12.5px; color:var(--muted); line-height:1.45; }
.gp .grad-coral{ background:var(--text-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.gp .type span{ will-change:opacity; }
.gp .tw-title .tw{ display:block; min-height:1.2em; white-space:nowrap; }
.gp .tw-title .em{ background:var(--text-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.gp .tw-title .tw.typing::after{ content:"|"; -webkit-text-fill-color:var(--tiffany); color:var(--tiffany); margin-left:1px; animation:caret .9s step-end infinite; }
@keyframes caret{ 50%{ opacity:0 } }
.gp .band-sub{ margin:16px auto 0; max-width:58ch; text-align:center; color:var(--muted); font-size:1.02rem; line-height:1.55; }
.gp .band-sub b{ color:var(--ink); font-weight:700; }
@media (max-width:560px){
 .gp .tw-title .tw{ white-space:normal; }
}
@keyframes glowShift{ 0%,100%{ opacity:.65 } 50%{ opacity:1 } }
@keyframes cardGlow{ 0%,100%{ opacity:.82; transform:scale(1) } 50%{ opacity:1; transform:scale(1.05) } }
@keyframes haloPulse{ 0%,100%{ opacity:.72; transform:scale(1) } 50%{ opacity:1; transform:scale(1.05) } }
@keyframes pulseRing{ 0%{ transform:scale(1); opacity:.6 } 100%{ transform:scale(1.55); opacity:0 } }
.gp .email-capture{ width:100%; max-width:480px; margin-left:auto; margin-right:auto; margin-top:0;
  max-height:0; opacity:0; overflow:hidden;
  transition:max-height .6s cubic-bezier(.2,.8,.2,1), opacity .4s ease, margin-top .6s cubic-bezier(.2,.8,.2,1); }
.gp .email-capture.open{ max-height:680px; opacity:1; margin-top:16px; }
.gp .ec-embed{ width:100%; }
.gp .ec-embed form{ display:flex; gap:8px; flex-wrap:wrap; margin:0; }
.gp .ec-embed input[type=email], .gp .ec-embed input[type=text], .gp .ec-embed input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]){
  flex:1 1 200px; min-width:0; width:100%; padding:13px 16px; border-radius:12px; font-family:var(--ff); font-size:14px;
  color:#EAF7F2; background:rgba(6,14,16,.62); border:1px solid rgba(125,226,209,.4); outline:none; transition:.2s; box-sizing:border-box; }
.gp .ec-embed input::placeholder{ color:#8CA39D; }
.gp .ec-embed input:focus{ border-color:var(--tiffany); box-shadow:0 0 0 3px rgba(125,226,209,.22); }
.gp .ec-embed button, .gp .ec-embed input[type=submit]{ flex:0 0 auto; padding:13px 22px; border-radius:12px; border:0; cursor:pointer;
  font-family:var(--ff); font-weight:800; font-size:14px; color:#0A1F3A; letter-spacing:.01em;
  background:linear-gradient(135deg,var(--lime),var(--tiffany)); box-shadow:0 8px 22px rgba(200,255,0,.28); transition:transform .2s; }
.gp .ec-embed button:hover, .gp .ec-embed input[type=submit]:hover{ transform:translateY(-1px); }
.gp .ec-embed label, .gp .ec-embed p, .gp .ec-embed .sib-form-message-panel, .gp .ec-embed div{ color:#DCEFEA; font-family:var(--ff); }
.gp .ec-embed a{ color:var(--tiffany); }
.gp .ec-legal{ flex-basis:100%; margin:10px 0 0; font-size:11.5px; line-height:1.5; color:var(--muted); }
@media (prefers-reduced-motion:reduce){
  .gp *{ animation:none !important; transition:none !important; }
  .gp .reveal{ opacity:1 !important; transform:none !important; }
  .gp .band .reveal{ opacity:1 !important; transform:none !important; }
  .gp .deck .dcard{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}
