/* =========================================================
   CEM FORMULARIOS
   ========================================================= */

.cem-form-section,
.cem-form-section *{
  box-sizing:border-box;
}

.cem-form-section{
  position:relative;
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:90px 0 105px;
  background:#f5f7fb;
  overflow:hidden;
}

.cem-form-section__inner{
  position:relative;
  width:min(1180px,88%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(285px,.62fr) minmax(0,1.38fr);
  gap:34px;
  align-items:stretch;
}

/* =========================================================
   COLUMNA IZQUIERDA / PANEL EN MOVIMIENTO
   ========================================================= */

.cem-form-info-wrap{
  position:relative;
  width:100%;
  height:100%;
  min-height:100%;
}

.cem-form-info{
  position:relative;
  width:100%;
  max-width:350px;
  padding:34px 32px;
  color:#fff;
  background:linear-gradient(145deg,#213868 0%,#132d5b 100%);
  border-radius:18px;
  box-shadow:0 16px 36px rgba(22,48,89,.12);
  transform:translate3d(0,0,0);
  will-change:transform;
}

.cem-form-info__line{
  width:38px;
  height:3px;
  margin-bottom:22px;
  background:#dd0b21;
  border-radius:10px;
}

.cem-form-info__eyebrow,
.cem-form-card__eyebrow{
  margin-bottom:12px;
  font-size:11px;
  line-height:1.3;
  font-weight:800;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.cem-form-info__eyebrow{
  color:#fff;
  opacity:.88;
}

.cem-form-card__eyebrow{
  color:#dd0b21;
}

.cem-form-info__title{
  margin:0 0 17px;
  padding:0;
  color:#fff !important;
  font-size:31px;
  line-height:1.08;
  font-weight:800;
  letter-spacing:-.4px;
}

.cem-form-info__text{
  margin:0;
  color:#dce5f1;
  font-size:15px;
  line-height:1.7;
}

/* =========================================================
   TARJETA FORMULARIO
   ========================================================= */

.cem-form-card{
  min-width:0;
  padding:38px 38px 34px;
  background:#fff;
  border:1px solid #e1e7ef;
  border-radius:20px;
  box-shadow:0 16px 42px rgba(22,48,89,.07);
}

.cem-form-card__title{
  margin:0 0 28px;
  padding:0;
  color:#213868 !important;
  font-size:32px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:-.4px;
}

.cem-form{
  position:relative;
  width:100%;
}

.cem-form__grid{
  display:grid;
  gap:16px;
}

.cem-form__grid--2{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cem-form__field{
  margin-bottom:17px;
}

.cem-form__field label{
  display:block;
  margin-bottom:7px;
  color:#213868;
  font-size:12px;
  line-height:1.3;
  font-weight:800;
}

.cem-form__field label span{
  color:#dd0b21;
}

.cem-form__field input,
.cem-form__field select,
.cem-form__field textarea{
  width:100%;
  margin:0;
  padding:13px 14px;
  color:#17233b;
  background:#fff;
  border:1px solid #d8e1ed;
  border-radius:8px;
  outline:0;
  box-shadow:none;
  font:inherit;
  font-size:14px;
  line-height:1.4;
  transition:border-color .2s ease,box-shadow .2s ease;
}

.cem-form__field input,
.cem-form__field select{
  height:48px;
}

.cem-form__field textarea{
  min-height:135px;
  resize:vertical;
}

.cem-form__field input::placeholder,
.cem-form__field textarea::placeholder{
  color:#8995a7;
  opacity:1;
}

.cem-form__field input:focus,
.cem-form__field select:focus,
.cem-form__field textarea:focus{
  border-color:#213868;
  box-shadow:0 0 0 3px rgba(33,56,104,.07);
}

/* =========================================================
   TURNSTILE
   ========================================================= */

.cem-form__turnstile{
  margin:0 0 17px;
}

/* =========================================================
   BOTÓN
   ========================================================= */

.cem-form__submit{
  width:100%;
  min-height:52px;
  margin-top:2px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 20px;
  color:#fff;
  background:#dd0b21;
  border:0;
  border-radius:8px;
  cursor:pointer;
  box-shadow:0 11px 26px rgba(221,11,33,.16);
  font-size:14px;
  line-height:1;
  font-weight:800;
  transition:transform .22s ease,background .22s ease,gap .22s ease,box-shadow .22s ease;
}

.cem-form__submit:hover{
  background:#bd091d;
  transform:translateY(-2px);
  gap:14px;
  box-shadow:0 15px 30px rgba(221,11,33,.23);
}

.cem-form__submit:disabled{
  opacity:.65;
  cursor:wait;
  transform:none;
  box-shadow:none;
}

.cem-form__submit-arrow{
  font-size:18px;
  line-height:1;
}

/* =========================================================
   ESTADO DEL ENVÍO
   ========================================================= */

.cem-form__status{
  display:none;
  margin-top:15px;
  padding:12px 14px;
  border-radius:8px;
  font-size:12px;
  line-height:1.55;
}

.cem-form__status.is-visible{
  display:block;
}

.cem-form__status.is-success{
  color:#175c37;
  background:#ecf8f1;
  border:1px solid #c7ead6;
}

.cem-form__status.is-error{
  color:#8b1d2b;
  background:#fff0f2;
  border:1px solid #f4c9d0;
}

/* =========================================================
   NOTA / PRIVACIDAD
   ========================================================= */

.cem-form__footnote{
  margin:14px 0 0;
  color:#758398;
  text-align:center;
  font-size:12px;
  line-height:1.55;
}

.cem-form__privacy-line{
  display:block;
  margin-top:3px;
}

.cem-form__footnote a{
  color:#213868;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
}

/* =========================================================
   HONEYPOT
   ========================================================= */

.cem-form__hp{
  position:absolute !important;
  left:-99999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}

/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:950px){
  .cem-form-section__inner{
    grid-template-columns:1fr;
    gap:28px;
  }

  .cem-form-info-wrap{
    height:auto;
    min-height:0;
  }

  .cem-form-info{
    max-width:none;
    transform:none !important;
    will-change:auto;
  }
}

/* =========================================================
   MÓVIL
   ========================================================= */

@media(max-width:650px){
  .cem-form-section{
    padding:70px 0 80px;
  }

  .cem-form-section__inner{
    width:88%;
    gap:24px;
  }

  .cem-form-info{
    padding:29px 25px;
  }

  .cem-form-info__title{
    font-size:28px;
  }

  .cem-form-card{
    padding:29px 23px;
    border-radius:17px;
  }

  .cem-form-card__title{
    font-size:28px;
  }

  .cem-form__grid--2{
    grid-template-columns:1fr;
    gap:0;
  }
}

/* =========================================================
   MOVIMIENTO REDUCIDO
   ========================================================= */

@media(prefers-reduced-motion:reduce){
  .cem-form-info{
    transform:none !important;
    will-change:auto;
  }

  .cem-form__field input,
  .cem-form__field select,
  .cem-form__field textarea,
  .cem-form__submit{
    transition:none;
  }

  .cem-form__submit:hover{
    transform:none;
  }
}
