/* Contact page: centered reading width and deliberate spacing. */
body.page-salvador .contact-page {
    padding: 64px 24px 72px !important;
    background: var(--page) !important;
}
body.page-salvador .contact-page > .iu-container,
body.page-salvador .contact-page > .ss-container {
    width: min(100%, 1160px);
    max-width: 1160px;
    margin-inline: auto;
    padding-inline: 0;
}
/* Cabeçalho da página em cima, largura total; card (form + mapa) por baixo. */
body.page-salvador .contact-page__head { max-width: 760px; margin-bottom: clamp(24px, 3vw, 40px); }
body.page-salvador .contact-page__head .section-title { color: var(--heading); }
body.page-salvador .contact-page__head .section-desc { color: var(--muted); margin-bottom: 0; }
body.page-salvador .contact-page__form-wrapper {
    min-width: 0;
    padding: clamp(22px, 3vw, 36px);
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}
body.page-salvador .contact-page__form-wrapper__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(20px, 2.5vw, 32px);
    align-items: stretch;
}
body.page-salvador .contact-page__form { min-width: 0; }
/* O componente Vue traz o estilo de card (.contact__cta); dentro do wrapper
   o formulário deve ocupar o card principal sem duplicar caixas. */
body.page-salvador .contact-page__form .contact__cta {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}
/* Campos em coluna única, como no layout de referência (form + mapa). */
body.page-salvador .contact-page__form .row { margin-left: 0; margin-right: 0; }
body.page-salvador .contact-page__form .row .col-lg-6 {
    flex: 0 0 100%;
    max-width: 100%;
}
body.page-salvador .contact-page__map { min-width: 0; }
body.page-salvador .contact-page__map .mapa-freguesia {
    height: 100%;
    min-height: 440px;
    border: 0;
    box-shadow: none;
    --radius: 12px;
    border-radius: 12px;
}
body.page-salvador .sobre-map-section { padding: 56px 24px 72px; background: var(--page); }
body.page-salvador .sobre-map-section > .iu-container { width: min(100%, 1160px); max-width: 1160px; margin-inline: auto; }
body.page-salvador .sobre-map-section .sobre-page__head { margin-bottom: 24px; }
body.page-salvador .sobre-map-section .section-title { font-size: 1.35rem; margin-bottom: 8px; }
body.page-salvador .sobre-map-section .section-desc { margin: 0; font-size: .9rem; }

@media (max-width: 991px) {
    body.page-salvador .contact-page { padding: 48px 24px 56px !important; }
    body.page-salvador .contact-page__form-wrapper__row { grid-template-columns: minmax(0, 1fr); }
    body.page-salvador .contact-page__map .mapa-freguesia { min-height: 380px; }
}

@media (max-width: 575.98px) {
    body.page-salvador .contact-page,
    body.page-salvador .sobre-map-section {
        padding-right: 18px !important;
        padding-left: 18px !important;
    }
    body.page-salvador .contact-page__form-wrapper { padding: 20px 16px; }
    body.page-salvador .contact-page__map .mapa-freguesia { min-height: 360px; }
}
