/* Contact : formulaire visible en premier, coordonnées et horaires à proximité. */
.contact-page { width: min(100%, max(90%, 1200px)); max-width: 1600px; margin: .5rem auto 2.5rem; color: var(--icac-anthracite); font-size: 1rem; font-weight: 300; }
.contact-entete { margin-bottom: 1.25rem; }
.contact-surtitre { margin-bottom: .4rem; color: var(--icac-anthracite); font-size: .75rem; font-family: var(--icac-police-surtitre); font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.contact-page h1 { margin: 0 0 .5rem; font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.15; letter-spacing: -.035em; text-transform: none; }
.contact-entete > p:last-child { margin: 0; color: var(--icac-anthracite); font-size: .95rem; }
.contact-page h2 { margin: 0 0 .5rem; font-size: 1.25rem; text-transform: none; }
.contact-page h3 { margin: 0 0 .5rem; font-size: 1rem; text-transform: none; }
.contact-page a { color: var(--icac-rouge-fonce); }
.contact-page a:focus-visible, .contact-page button:focus-visible { outline: 3px solid var(--icac-rouge); outline-offset: 4px; }
.contact-grille { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: start; gap: 1.5rem; }
.contact-carte { min-width: 0; padding: 1.5rem; border: 1px solid #dfe1e8; border-radius: .85rem; }
.contact-formulaire { border-top: 3px solid var(--icac-rouge); }
.contact-description { margin-bottom: 1rem; font-size: .85rem; color: var(--icac-anthracite); }
.contact-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.contact-page .form-floating > .form-control, .modal-contact .form-floating > .form-control { min-height: calc(3.5rem + 2px); font-size: 1rem; font-weight: 300; border-color: #d6d8e0; border-radius: .45rem; }
.contact-page .form-floating > textarea.form-control, .modal-contact .form-floating > textarea.form-control { height: 165px; min-height: 165px; resize: vertical; }
.contact-page .form-floating > label, .modal-contact .form-floating > label { margin: 0; color: var(--icac-anthracite); font-size: 1rem; font-weight: 500; }
.contact-page .form-floating > label.required::after, .modal-contact .form-floating > label.required::after { content: ''; font-size: inherit; }
.contact-envoi { display: flex; align-items: center; gap: 1.5rem; justify-content: space-between; }
.contact-envoi p { margin: 0; max-width: 72ch; color: var(--icac-anthracite); font-size: .75rem; line-height: 1.5; }
.contact-envoi p a { text-decoration: underline; text-underline-offset: .15em; }
.contact-envoi .btn { flex-shrink: 0; margin: 0; text-transform: none; letter-spacing: 0; }
.contact-envoi .btn .icone { margin-left: .65rem; }
.contact-informations { background: #f5f6f9; }
.contact-coordonnees { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.25rem 0; }
.contact-coordonnees > div:last-child { grid-column: 1 / -1; }
.contact-coordonnees dt { margin-bottom: .2rem; color: var(--icac-anthracite); font-size: .8rem; font-weight: 300; }
.contact-coordonnees dd { margin: 0; font-weight: 800; overflow-wrap: anywhere; }
.contact-coordonnees a { color: var(--icac-anthracite); }
.contact-horaires, .contact-adresse { padding-top: 1rem; margin-top: 1rem; border-top: 1px solid #dfe1e8; }
.contact-horaires p, .contact-adresse address { margin: 0 0 .5rem; font-size: .9rem; color: var(--icac-anthracite); }
.contact-adresse > a { font-size: .85rem; font-weight: 800; }
.contact-sujets { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 1rem 2.5rem; margin-top: 1.75rem; padding-block: 1.5rem; border-block: 1px solid #e4e5eb; }
.contact-sujets p { margin: 0; max-width: 65ch; font-size: .9rem; color: var(--icac-anthracite); }
.contact-sujets ul { margin: 0; padding-left: 1.15rem; font-size: .9rem; color: var(--icac-anthracite); line-height: 1.8; }
.contact-sujets > a { font-size: .85rem; font-weight: 800; }
.contact-plan { margin-top: 1.5rem; scroll-margin-top: 5rem; }
.contact-plan > p { margin-bottom: 1rem; font-size: .9rem; color: var(--icac-anthracite); }
.contact-plan .openstreetmap { width: 100%; height: 280px; overflow: hidden; border-radius: .85rem; background: #f5f6f9; }
.contact-plan .openstreetmap iframe { display: block; width: 100%; height: 100%; border: 0; }
.contact-plan .contact-plan-lien { margin: .65rem 0 0; font-size: .85rem; font-weight: 800; }
@media (max-width: 991px) {
    .contact-grille { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .contact-page { margin-top: 0; }
    .contact-carte { padding: 1.15rem; }
    .contact-champs, .contact-sujets { grid-template-columns: 1fr; }
    .contact-envoi { align-items: stretch; flex-direction: column; gap: 1rem; }
    .contact-envoi .btn { display: flex; justify-content: space-between; align-items: center; }
}
