/*!
 *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
@font-face {
  font-family: FontAwesome;
  font-style: normal;
  font-weight: 400;
  src: url(/assets/674f50d287a8c48dc19ba404d20fe713.eot);
  src: url(assets/674f50d287a8c48dc19ba404d20fe713d41d.eot?#iefix&v=4.7.0)
      format("embedded-opentype"),
    url(assets/af7ae505a9eed503f8b8e6982036873e.woff2) format("woff2"),
    url(assets/fee66e712a8a08eef5805a46892932ad.woff) format("woff"),
    url(assets/b06871f281fee6b241d60582ae9369b9.ttf) format("truetype"),
    url(assets/912ec66d7572ff821749319396470bde.svg#fontawesomeregular)
      format("svg");
}

/* Fuente del sistema: rápida, segura y sin dependencias externas */
html, body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
               Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji",
               "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* opcional: mejora el renderizado en algunos navegadores */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}





.fa {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
}
.fa-lg {
  font-size: 1.33333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x { font-size: 2em; }
.fa-3x { font-size: 3em; }
.fa-4x { font-size: 4em; }
.fa-5x { font-size: 5em; }
.fa-fw { text-align: center; width: 1.28571em; }
.fa-ul { list-style-type: none; margin-left: 2.14286em; padding-left: 0; }
.fa-ul > li { position: relative; }
.fa-li { left: -2.14286em; position: absolute; text-align: center; top: 0.14286em; width: 2.14286em; }
.fa-li.fa-lg { left: -1.85714em; }
.fa-border { border: 0.08em solid #eee; border-radius: 0.1em; padding: 0.2em 0.25em 0.15em; }
.fa-pull-left { float: left; }
.fa-pull-right { float: right; }
.fa.fa-pull-left { margin-right: 0.3em; }
.fa.fa-pull-right { margin-left: 0.3em; }
.pull-right { float: right; }
.pull-left { float: left; }
.fa.pull-left { margin-right: 0.3em; }
.fa.pull-right { margin-left: 0.3em; }
.fa-spin { animation: fa-spin 2s infinite linear; }
.fa-pulse { animation: fa-spin 1s infinite steps(8); }
@keyframes fa-spin { 0% { transform: rotate(0deg); } to { transform: rotate(359deg); } }
.fa-rotate-90 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; transform: rotate(90deg); }
.fa-rotate-180 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; transform: rotate(180deg); }
.fa-rotate-270 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; transform: rotate(270deg); }
.fa-flip-horizontal { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; transform: scaleX(-1); }
.fa-flip-vertical { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; transform: scaleY(-1); }
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270 { filter: none; }
.fa-stack { display: inline-block; height: 2em; line-height: 2em; position: relative; vertical-align: middle; width: 2em; }
.fa-stack-1x, .fa-stack-2x { left: 0; position: absolute; text-align: center; width: 100%; }
.fa-stack-1x { line-height: inherit; }
.fa-stack-2x { font-size: 2em; }
.fa-inverse { color: #fff; }
/* ... (todas las reglas de Font Awesome permanecen iguales hasta antes de intl-tel-input) ... */

.sr-only {
  border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px;
}
.sr-only-focusable:active,
.sr-only-focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }

/* === intl-tel-input (base sin cambios) === */
.intl-tel-input { display: inline-block; position: relative; }
.intl-tel-input * { -moz-box-sizing: border-box; box-sizing: border-box; }
.intl-tel-input .hide { display: none; }
.intl-tel-input .v-hide { visibility: hidden; }
.intl-tel-input input,
.intl-tel-input input[type="tel"],
.intl-tel-input input[type="text"] {
  margin-bottom: 0 !important; margin-right: 0; margin-top: 0 !important; padding-right: 36px; position: relative; z-index: 0;
}
.intl-tel-input .flag-container { bottom: 0; padding: 1px; position: absolute; right: 0; top: 0; }
.intl-tel-input .selected-flag { align-items: center; display: flex; height: 100%; padding: 0 6px 0 8px; position: relative; z-index: 1; }
.intl-tel-input .selected-flag .iti-arrow {
  border-left: 3px solid transparent; border-right: 3px solid transparent; border-top: 4px solid #555; height: 0; margin-left: 6px; width: 0;
}
.intl-tel-input .selected-flag .iti-arrow.up { border-bottom: 4px solid #555; border-top: none; }
.intl-tel-input .country-list {
  -webkit-overflow-scrolling: touch; background-color: #fff; border: 1px solid #ccc;
  box-shadow: 1px 1px 4px rgba(0,0,0,.2); list-style: none; margin: 0 0 0 -1px; max-height: 200px;
  overflow-y: scroll; padding: 0; position: absolute; text-align: left; white-space: nowrap; z-index: 2;
}
.intl-tel-input .country-list.dropup { bottom: 100%; margin-bottom: -1px; }
.intl-tel-input .country-list .flag-box { display: inline-block; width: 20px; }
@media (max-width: 500px) { .intl-tel-input .country-list { white-space: normal; } }
.intl-tel-input .country-list .divider { border-bottom: 1px solid #ccc; margin-bottom: 5px; padding-bottom: 5px; }
.intl-tel-input .country-list .country { outline: none; padding: 5px 10px; }
.intl-tel-input .country-list .country .dial-code { color: #999; }
.intl-tel-input .country-list .country.highlight { background-color: rgba(0,0,0,.05); }
.intl-tel-input .country-list .country-name,
.intl-tel-input .country-list .dial-code,
.intl-tel-input .country-list .flag-box { vertical-align: middle; }
.intl-tel-input .country-list .country-name,
.intl-tel-input .country-list .flag-box { margin-right: 6px; }
.intl-tel-input.allow-dropdown input,
.intl-tel-input.allow-dropdown input[type="tel"],
.intl-tel-input.allow-dropdown input[type="text"],
.intl-tel-input.separate-dial-code input,
.intl-tel-input.separate-dial-code input[type="tel"],
.intl-tel-input.separate-dial-code input[type="text"] {
  margin-left: 0; padding-left: 52px; padding-right: 6px;
}
.intl-tel-input.allow-dropdown .flag-container,
.intl-tel-input.separate-dial-code .flag-container { left: 0; right: auto; }
.intl-tel-input.allow-dropdown .flag-container:hover { cursor: pointer; }
.intl-tel-input.allow-dropdown .flag-container:hover .selected-flag { background-color: rgba(0,0,0,.05); }
.intl-tel-input.allow-dropdown input[disabled] + .flag-container:hover,
.intl-tel-input.allow-dropdown input[readonly] + .flag-container:hover { cursor: default; }
.intl-tel-input.allow-dropdown input[disabled] + .flag-container:hover .selected-flag,
.intl-tel-input.allow-dropdown input[readonly] + .flag-container:hover .selected-flag { background-color: transparent; }
.intl-tel-input.separate-dial-code .selected-flag { background-color: rgba(0,0,0,.05); }
.intl-tel-input.separate-dial-code .selected-dial-code { margin-left: 6px; }
.intl-tel-input.iti-container { left: -1000px; padding: 1px; position: absolute; top: -1000px; z-index: 1060; }
.intl-tel-input.iti-container:hover { cursor: pointer; }
.iti-mobile .intl-tel-input.iti-container { bottom: 30px; left: 30px; position: fixed; right: 30px; top: 30px; }
.iti-mobile .intl-tel-input .country-list { max-height: 100%; width: 100%; }
.iti-mobile .intl-tel-input .country-list .country { line-height: 1.5em; padding: 10px; }

/* === Banderas (solo Latinoamérica) === */
.iti-flag { width: 20px; }
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .iti-flag { background-size: 5652px 15px; }
}

/* Posiciones SOLO para países de Latinoamérica */
.iti-flag.ar { background-position: -220px 0; height: 13px; }   /* Argentina */
.iti-flag.bo { background-position: -636px 0; height: 14px; }   /* Bolivia */
.iti-flag.br { background-position: -680px 0; height: 14px; }   /* Brasil */
.iti-flag.cl { background-position: -1005px 0; height: 14px; }  /* Chile */
.iti-flag.co { background-position: -1071px 0; height: 14px; }  /* Colombia */
.iti-flag.cr { background-position: -1115px 0; height: 12px; }  /* Costa Rica */
.iti-flag.cu { background-position: -1137px 0; height: 10px; }  /* Cuba */
.iti-flag.do { background-position: -1379px 0; height: 14px; }  /* República Dominicana */
.iti-flag.ec { background-position: -1445px 0; height: 14px; }  /* Ecuador */
.iti-flag.sv { background-position: -4713px 0; height: 12px; }  /* El Salvador */
.iti-flag.gt { background-position: -2083px 0; height: 13px; }  /* Guatemala */
.iti-flag.hn { background-position: -2215px 0; height: 10px; }  /* Honduras */
.iti-flag.mx { background-position: -3556px 0; height: 12px; }  /* México */
.iti-flag.ni { background-position: -3730px 0; height: 12px; }  /* Nicaragua */
.iti-flag.pa { background-position: -3899px 0; height: 14px; }  /* Panamá */
.iti-flag.py { background-position: -4185px 0; height: 11px; }  /* Paraguay */
.iti-flag.pe { background-position: -3921px 0; height: 14px; }  /* Perú */
.iti-flag.pr { background-position: -4097px 0; height: 14px; }  /* Puerto Rico */
.iti-flag.uy { background-position: -5285px 0; height: 14px; }  /* Uruguay */
.iti-flag.ve { background-position: -5368px 0; height: 14px; }  /* Venezuela */

/* Sprite base (se mantiene igual) */
.iti-flag {
  background-color: #dbdbdb;
  background-image: url(assets/416250f60d785a2e02f17e054d2e4e44.png);
  background-position: 20px 0;
  background-repeat: no-repeat;
  box-shadow: 0 0 1px 0 #888;
  height: 15px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .iti-flag {
    background-image: url(assets/d429a5777afaf2fc349652e812e9bb11.png);
  }
}

/* ===== 1) Botón ENVIAR animado ===== */
.form__btn-submit {
  position: relative;
  overflow: hidden;
  transition: transform .18s ease, background .3s ease, box-shadow .3s ease;
  will-change: transform;
}
.form__btn-submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0,0,0,.12);
}
.form__btn-submit.is-sending {
  border-radius: 999px;
  padding-left: 48px;
  padding-right: 48px;
}
.form__btn-submit.is-sending::after {
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(110deg, transparent 0%, rgba(255,255,255,.18) 18%, transparent 33%),
    linear-gradient(#a15188,#a15188);
  background-size: 180% 100%, 100% 100%;
  animation: btn-shimmer 1.2s linear infinite;
  opacity:.85;
}
@keyframes btn-shimmer { 
  0% { background-position: -80% 0, 0 0 } 
  100% { background-position: 120% 0, 0 0 } 
}
.form__btn-submit.is-done { animation: btn-pop .35s ease-out both; }
@keyframes btn-pop { 
  0%{transform: scale(1)} 
  60%{transform: scale(1.06)} 
  100%{transform: scale(1)} 
}

/* Alterna textos del botón */
.form__group-btn-submit,
.form__group-btn-wait { transition: opacity .2s ease, transform .2s ease; }
.form__btn-submit .form__group-btn-wait { opacity:0; transform: translateY(6px); }
.form__btn-submit.is-sending .form__group-btn-submit { opacity:0; transform: translateY(-6px); }
.form__btn-submit.is-sending .form__group-btn-wait { opacity:1; transform: translateY(0); }

/* ===== 2) Overlay loading: barra indeterminada ===== */
.loading-overlay .loading-bar {
  position:absolute; bottom:18%; left:50%; transform: translateX(-50%);
  width: 46vw; max-width: 520px; height: 6px; border-radius: 999px;
  background: rgba(255,255,255,.18); overflow: hidden;
}
.loading-overlay .loading-bar::after {
  content:""; display:block; height:100%; width:40%;
  background: rgba(255,255,255,.85);
  transform: translateX(-100%);
  animation: bar-sweep 1.35s ease-in-out infinite;
  border-radius: inherit;
}
@keyframes bar-sweep { 
  0%{ transform: translateX(-100%)} 
  100%{ transform: translateX(260%)} 
}

/* ===== 3) Confetti (canvas pantalla completa) ===== */
#confetti-canvas {
  position: fixed; inset: 0; pointer-events: none; z-index: 10001;
}

/* ===== 4) Errores: shake + glow ===== */
@keyframes field-shake {
  0%,100%{ transform: translateX(0) }
  20%{ transform: translateX(-8px) }
  40%{ transform: translateX(8px) }
  60%{ transform: translateX(-5px) }
  80%{ transform: translateX(5px) }
}
.input-error-anim { animation: field-shake .38s ease-in-out both; }
.input-error-glow {
  box-shadow: 0 0 0 3px rgba(214,69,69,.15), 0 8px 18px rgba(214,69,69,.10);
  border-color: #d64545 !important;
}

/* ===== 5) Modal flip 3D (para tu ventana emergente) ===== */
.pp { transform-style: preserve-3d; }
.pp[data-anim="flip"] { animation: pp-flip .42s cubic-bezier(.2,.8,.2,1) both; }
@keyframes pp-flip {
  0%   { transform: rotateX(-12deg) scale(.96); opacity: 0 }
  100% { transform: rotateX(0deg)  scale(1);    opacity: 1 }
}

/* Overlay base */
.lp-overlay {
  position: fixed; inset: 0;
  display: none; align-items: center; justify-content: center;
  background: rgba(10,12,16,.6);
  z-index: 9999;
  backdrop-filter: blur(3px);
}
.lp-overlay.show { display: flex; }

/* Tarjeta */
.lp-card {
  width: min(90vw, 420px);
  background: #0f172a; color: #e2e8f0;
  border-radius: 18px; padding: 28px 22px;
  box-shadow: 0 15px 60px rgba(0,0,0,.35);
  text-align: center; transform: translateY(10px);
  animation: lp-pop .35s ease-out forwards;
}
@keyframes lp-pop { to { transform: translateY(0) } }

/* Iconos / estados */
.lp-icon { font-size: 56px; margin-bottom: 8px; }
.lp-icon.success { color: #22c55e; }
.lp-icon.error   { color: #ef4444; }

/* Textos */
.lp-title { font-weight: 700; font-size: 20px; letter-spacing:.2px; }
.lp-sub   { opacity:.9; margin-top: 6px; }

/* Botón */
.lp-btn {
  margin-top: 18px; padding: 10px 16px; border:0; cursor:pointer;
  border-radius: 10px; background:#2563eb; color:#fff; font-weight:600;
  transition: transform .06s ease, opacity .2s ease;
}
.lp-btn:active { transform: scale(.98) }

/* Spinner + “breathe” */
.lp-spinner {
  width: 54px; height: 54px; margin: 8px auto 14px; border-radius: 50%;
  border: 4px solid rgba(255,255,255,.2);
  border-top-color: #60a5fa; animation: lp-spin .9s linear infinite;
}
@keyframes lp-spin { to { transform: rotate(360deg) } }
.lp-bounce { animation: lp-breathe 1.4s ease-in-out infinite; }
@keyframes lp-breathe { 0%,100%{ transform: translateY(0)} 50%{ transform: translateY(-3px)} }



/* Animación de vibración para errores */
.bump {
  animation: shake 0.3s ease;
}

@keyframes shake {
  0% { transform: translateX(0); }
  20% { transform: translateX(-4px); }
  40% { transform: translateX(4px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
  100% { transform: translateX(0); }
}


/* por ejemplo en tu hoja principal */
.bump { animation: bump 0.35s ease; }
@keyframes bump { 0%{transform:scale(1)} 50%{transform:scale(1.03)} 100%{transform:scale(1)} }
