/* Contact : palette commune et formulaire utilisable sans JavaScript. */
.contact-page { color: var(--text); padding-bottom: 80px; }
.contact-page h1, .contact-page h2 { font-weight: 500; line-height: 1.1; overflow-wrap: break-word; }
.contact-page em { font-style: normal; color: var(--accent); }
.contact-page p { font-size: 18px; line-height: 1.65; color: var(--muted); }
.contact-page .contact-kicker { margin: 0 0 24px; color: var(--accent); font-size: 12px; font-weight: 500; letter-spacing: .14em; }
.contact-intro { padding-block: clamp(48px, 7vw, 88px) 40px; }
.contact-intro h1 { font-size: clamp(40px, 5.6vw, 76px); letter-spacing: -.025em; margin: 0 0 28px; }
.contact-intro .contact-lead { font-size: clamp(21px, 2.1vw, 26px); line-height: 1.4; max-width: 760px; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.contact-page h2 { font-size: clamp(25px, 2.8vw, 34px); margin: 0 0 20px; }
.contact-form-panel { padding: clamp(24px, 3vw, 38px); background: var(--surface); border: 1px solid #ffffff25; border-top: 2px solid #f2916d90; border-radius: 5px; min-width: 0; }
.contact-form-panel .contact-form-note, .contact-form .contact-data-note { font-size: 14px; }
.contact-form > div, .contact-fields > div { margin-bottom: 24px; }
.contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.contact-fields > div { margin-bottom: 0; min-width: 0; }
.contact-form label { display: block; font-size: 16px; font-weight: 500; margin-bottom: 10px; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 13px 14px; border: 1px solid #a99bb5; border-radius: 4px; background: #1d1729; color: var(--text); font: inherit; font-size: 17px; line-height: 1.5; }
.contact-form textarea { resize: vertical; min-height: 190px; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: 2px solid var(--accent); outline-offset: 3px; }
.contact-form [aria-invalid="true"] { border-color: #ffb6a4; }
.contact-form ul { padding-left: 20px; color: #ffb6a4; font-size: 14px; line-height: 1.6; }
.contact-submit { display: inline-flex; align-items: center; gap: 24px; min-height: 52px; padding: 15px 22px; background: var(--accent); color: #1d1729; border: 0; border-radius: 4px; font: inherit; font-size: 18px; font-weight: 500; cursor: pointer; }
.contact-submit:hover { background: #f6a98c; }
.contact-submit span { font-size: 24px; }
.contact-page a:focus-visible, .contact-submit:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
/* Le champ leurre reste hors du parcours de lecture et du clavier. */
.contact-form .contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); pointer-events: none; }
.contact-aside { padding-top: 12px; }
.contact-direct { border-bottom: 1px solid #ffffff25; padding-bottom: 32px; }
/* Les deux moyens de contact partagent le même traitement et peuvent se replier sur mobile. */
.contact-direct__channels { display: flex; flex-wrap: wrap; gap: 16px 22px; }
.contact-direct__channels > div { min-width: 0; }
.contact-channel { display: inline-flex; align-items: center; gap: 14px; color: var(--accent); text-decoration: none; font-size: clamp(18px, 1.7vw, 22px); font-weight: 500; overflow-wrap: anywhere; }
.contact-prepare { padding-top: 32px; }
.contact-prepare ol { list-style: decimal-leading-zero; padding-left: 28px; margin: 28px 0; }
.contact-prepare li { padding-left: 10px; margin-bottom: 24px; color: var(--accent); font-size: 13px; }
.contact-prepare strong { display: block; color: var(--text); font-size: 18px; font-weight: 500; margin-bottom: 7px; }
.contact-prepare li span { display: block; color: var(--muted); font-size: 16px; line-height: 1.5; }
.contact-prepare > p { font-size: 15px; }
.contact-feedback { padding: 18px; border: 1px solid #ffb6a4; margin-block: 24px; background: #1d1729; color: var(--text); }
.contact-feedback p { margin: 0 0 10px; color: var(--text); }
.contact-feedback ul { padding-left: 20px; font-size: 15px; line-height: 1.6; }
.contact-feedback a { color: #ffb6a4; }
.contact-feedback--success { border-color: #b1d0b7; }
@media (max-width: 900px) { .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; } .contact-aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; } .contact-direct { border: 0; } .contact-prepare { padding-top: 0; } }
@media (max-width: 550px) { .contact-fields, .contact-aside { grid-template-columns: minmax(0, 1fr); } .contact-fields > div { margin-bottom: 4px; } .contact-page { padding-bottom: 48px; } .contact-submit { width: 100%; justify-content: center; font-size: 17px; gap: 16px; } }

/* Lien vers les informations de traitement, ajouté avec la page légale. */
.contact-data-note a { color: var(--accent); text-underline-offset: 4px; }
