/* Página de contacto: mapa contenido y formulario principal, adaptados a móvil. */
.contact-page#contact {
    background: radial-gradient(circle at 12% 18%, rgba(27, 89, 126, .28), transparent 38%), linear-gradient(145deg, #151d26, #20272d);
    color: #fff;
}
.contact-page__heading { max-width: 43rem; margin: 0 auto 2.5rem; text-align: center; }
.contact-page__heading h2 { margin-bottom: .6rem; }
.contact-page__heading p { margin: 0; color: #d2e1e9; font-size: 1.05rem; line-height: 1.6; }
.contact-page__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(21rem, .92fr); align-items: start; gap: clamp(1.5rem, 4vw, 4rem); }
.contact-page__map-column, .contact-page__form-column { min-width: 0; }
.contact-page__column-title { margin: 0 0 1rem; color: #fff; font-family: Montserrat, sans-serif; font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 700; text-align: left; }
.contact-page__map-card { margin: 0; overflow: hidden; border: 1px solid rgba(126, 174, 201, .32); border-radius: 1.2rem; background: #131c27; box-shadow: 0 22px 46px rgba(0, 0, 0, .22); }
.contact-page__map-card img { display: block; width: 100%; height: auto; }
.contact-page .card-contact { width: 100%; max-width: none; padding: clamp(1.4rem, 3vw, 2.3rem); border: 1px solid #d7e5ec; border-radius: 1.2rem; box-shadow: 0 24px 50px rgba(0, 0, 0, .24); }
.contact-page .card-contact .title { display: block; margin: 0; color: #142c3f; font-family: Montserrat, sans-serif; font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.25; text-align: left; }
.contact-page .form-contact { margin-top: 1.4rem; gap: .95rem; }
.contact-page .form-contact .group { margin: 0; }
.contact-page .form-contact .group label { position: static; display: block; margin: 0 0 .35rem; padding: 0; background: transparent; color: #233c4e; font-size: .9rem; font-weight: 700; line-height: 1.4; }
.contact-page .form-contact .group input,
.contact-page .form-contact .group select,
.contact-page .form-contact .group textarea { display: block; width: 100%; min-height: 2.9rem; margin: 0; padding: .65rem .8rem; border: 1px solid #bfced8; border-radius: .65rem; background: #fff; color: #142c3f; font: inherit; font-size: .96rem; line-height: 1.4; }
.contact-page .form-contact .group textarea { min-height: 7rem; resize: vertical; }
.contact-page .form-contact .group input:focus,
.contact-page .form-contact .group select:focus,
.contact-page .form-contact .group textarea:focus { border-color: #087eac; outline: 3px solid rgba(8, 126, 172, .18); }
.contact-page .form-contact .group input:focus + label,
.contact-page .form-contact .group textarea:focus + label { position: static; background: transparent; color: #233c4e; }
.contact-page .group-combo::after { display: none; }
.contact-page .group select { appearance: auto; cursor: pointer; }
.contact-page .form-contact button { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3rem; margin-top: .2rem; border-radius: .65rem; background: #087eac; font-weight: 700; }
.contact-page .form-contact button:hover { background: #06658c; }
.contact-page .form-contact button:focus-visible { outline: 3px solid #54c5e4; outline-offset: 3px; }
.contact-page .form-contact button:disabled { opacity: .65; cursor: wait; }
.contact-page__field-error { display: block; margin: .35rem 0 0; color: #a82128; font-size: .84rem; text-align: left; }
.contact-page #errorMailLabel { float: none; margin: .35rem 0 0; padding: 0; color: #a82128; }
.contact-page__field-error[hidden] { display: none !important; }
.contact-page__status { display: none; margin: 0; padding: .7rem .9rem; border-radius: .55rem; font-size: .9rem; line-height: 1.4; }
.contact-page__status.is-success { display: block; background: #e6f8ed; color: #165e38; }
.contact-page__status.is-error { display: block; background: #fff0f0; color: #a82128; }
.contact-page__human { margin: .5rem 0 1rem; }
.contact-page__human p[role="alert"] { color: #a82128; }
@media (max-width: 991.98px) {
    .contact-page__grid { grid-template-columns: 1fr; }
    .contact-page__form-column { order: 1; }
    .contact-page__map-column { order: 2; }
    .contact-page__column-title { text-align: center; }
    .contact-page__map-card { max-width: 46rem; margin-inline: auto; }
}
@media (max-width: 575.98px) {
    .contact-page > .container { padding-inline: 1.5rem; }
    .contact-page__heading { margin-bottom: 1.8rem; }
    .contact-page__heading p { font-size: .96rem; }
    .contact-page .card-contact { padding: 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
    .contact-page .slide-up-1s,
    .contact-page .slide-up-2s { opacity: 1; transform: none; animation: none; }
}
