/* ============================================================
   Centro Flor de Lis — Formularios (contacto, consentimiento,
   presupuesto de seguro, testimonio, cancelación del seguro)
   Se carga después de /styles.css y /legal.css.
   ============================================================ */

.form { display: grid; gap: 1.25rem; margin-top: 1.8rem; }

.field { display: grid; gap: .45rem; min-width: 0; }
.field > label,
.field__legend {
  font-family: var(--sans);
  font-size: .95rem;
  font-weight: 500;
  color: var(--tinta);
  padding: 0;
}
.req { color: #b23a48; margin-left: .15em; font-weight: 600; }
.field__hint { font-size: .85rem; color: var(--tinta-mute); margin: 0; }

.input,
.textarea {
  width: 100%;
  font: inherit;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--tinta);
  background: var(--white);
  border: 1px solid rgba(30, 21, 48, .2);
  border-radius: 14px;
  padding: .85rem 1rem;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.input::placeholder, .textarea::placeholder { color: var(--tinta-mute); opacity: .7; }
.input:hover, .textarea:hover { border-color: rgba(30, 21, 48, .35); }
.input:focus, .textarea:focus {
  outline: none;
  border-color: var(--accent-deep);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 26%, transparent);
}
.textarea { min-height: 9.5rem; resize: vertical; }
.textarea--lg { min-height: 13rem; }

/* radios y casillas */
fieldset.field { border: 0; margin: 0; padding: 0; }
.choices { display: flex; flex-wrap: wrap; gap: .7rem 1.6rem; }
.choice {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  cursor: pointer;
  font-size: 1rem;
  color: var(--tinta-2);
}
.choice input,
.check input {
  width: 1.2rem; height: 1.2rem;
  flex: none;
  accent-color: var(--accent-deep);
  cursor: pointer;
}
.check {
  display: flex;
  align-items: flex-start;
  gap: .8rem;
  padding: 1rem 1.1rem;
  background: var(--crema-calida);
  border-radius: 14px;
  cursor: pointer;
  line-height: 1.5;
  color: var(--tinta-2);
  font-size: .98rem;
}
.check input { margin-top: .2rem; }
.check a { color: var(--accent-deep); text-decoration: underline; text-underline-offset: 3px; }

/* errores */
.field__error { margin: 0; font-size: .86rem; color: #a02a3a; min-height: 0; }
.field__error:empty { display: none; }
.field--invalid .input,
.field--invalid .textarea { border-color: #b23a48; background: #fffafa; }
.field--invalid .check { box-shadow: inset 0 0 0 1px #b23a48; }
.field--invalid .choices { outline: 1px dashed #b23a48; outline-offset: 6px; border-radius: 6px; }

/* campo trampa antispam: invisible para personas */
.hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* botón y estado */
.form__submit { justify-self: start; margin-top: .4rem; }
.form__submit[disabled] { opacity: .65; cursor: progress; }
.form__status {
  margin-top: .4rem;
  padding: 1.1rem 1.25rem;
  border-radius: 16px;
  line-height: 1.6;
  font-size: 1rem;
}
.form__status[hidden] { display: none; }
.form__status--ok { background: var(--accent-tint); color: var(--accent-deep); }
.form__status--error { background: #fbe5e7; color: #7e2230; }
.form__status a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.form__status strong { display: block; margin-bottom: .25rem; font-family: var(--serif); font-size: 1.25rem; font-weight: 500; }

.form__legal { font-size: .86rem; color: var(--tinta-mute); line-height: 1.55; margin: 0; }

/* intro de la página de formulario */
.formintro { font-size: 1.12rem; line-height: 1.6; color: var(--tinta-2); margin: 0; }
.formintro--caps { font-size: .95rem; letter-spacing: .02em; text-transform: uppercase; color: var(--tinta-2); }

.alt-contact {
  margin-top: 2.2rem;
  padding: 1.2rem 1.35rem;
  border-radius: 16px;
  background: var(--crema-calida);
  font-size: .98rem;
  line-height: 1.7;
  color: var(--tinta-2);
}
.alt-contact strong { color: var(--tinta); }

/* texto del consentimiento informado */
.consent-text {
  padding: 1.3rem 1.4rem;
  background: var(--white);
  border: 1px solid rgba(30, 21, 48, .12);
  border-radius: 16px;
  font-size: .97rem;
  line-height: 1.7;
  color: var(--tinta-2);
}
.consent-text p { margin: 0; }
.consent-text p + p { margin-top: 1em; }

/* documento largo (anexo al consentimiento) */
.doc h2 {
  font-family: var(--sans) !important;
  font-size: 1.02rem !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
  line-height: 1.4 !important;
  color: var(--tinta) !important;
  margin-top: 2.1rem !important;
  margin-bottom: .1em !important;
}
.doc ul { margin-top: .7em; }
.doc li + li { margin-top: .55em; }
.doc__note {
  padding: 1rem 1.2rem;
  border-radius: 14px;
  background: var(--crema-calida);
  font-size: .92rem;
  color: var(--tinta-2);
}

/* pie de página con una columna más (formularios) */
@media (min-width: 981px) {
  .footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.15fr; }
}

@media (max-width: 560px) {
  .form__submit { justify-self: stretch; }
  .consent-text { padding: 1.1rem; }
}
