/* Formulaire commun, palette autonome pour tous les fonds de page. */
[data-contact-form] { min-width: 0; scroll-margin-top: 120px; }
.gl-contact { color: #192c20; font-family: 'Outfit', system-ui, sans-serif; background: #f8f7f2; border: 1px solid #d7dfd2; border-radius: 18px; padding: 28px; text-align: left; font-weight: 300; line-height: 1.65; }
.gl-contact *, .gl-contact-success * { box-sizing: border-box; }
.gl-contact-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; min-width: 0; }
.gl-contact [hidden] { display: none !important; }
.gl-contact-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px; }
.gl-contact .gl-contact-field label { color: #192c20; font-size: .76rem; font-weight: 500; line-height: 1.5; margin: 0; }
.gl-contact :is(input,select,textarea) { width: 100%; min-width: 0; background: #fffdf9; border: 1px solid #bfcdbd; border-radius: 8px; color: #192c20; font: inherit; font-size: .84rem; padding: 12px 13px; line-height: 1.5; }
.gl-contact :is(input,textarea)::placeholder { color: #647567; opacity: 1; }
.gl-contact textarea { resize: vertical; }
.gl-contact :is(input,select,textarea,button,a):focus-visible { outline: 2px solid #355e42; outline-offset: 3px; }
.gl-contact .gl-contact-optional { color: #526658; font-weight: 300; }
.gl-contact .gl-contact-notice, .gl-contact .gl-contact-privacy { color: #526658; font-size: .73rem; line-height: 1.75; margin: 0 0 18px; }
.gl-contact .gl-contact-privacy { margin: 16px 0 0; font-size: .68rem; }
.gl-contact .gl-contact-privacy a { color: #2d563c; text-decoration: underline; text-underline-offset: 3px; }
.gl-contact .gl-contact-submit { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 15px 18px; border: 0; border-radius: 9px; background: #274b35; color: #fffdf9; font: inherit; font-size: .85rem; font-weight: 500; cursor: pointer; transition: background .2s; }
.gl-contact .gl-contact-submit:hover { background: #192c20; }
.gl-contact .gl-contact-submit:disabled { cursor: wait; opacity: .7; }
.gl-contact .gl-contact-status { color: #9c3028; font-size: .78rem; line-height: 1.7; margin: 0; }
.gl-contact .gl-contact-status:not(:empty) { margin-top: 15px; }
.gl-contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.gl-contact-success { color: #192c20; background: #edf2e7; border: 1px solid #bfcdbd; padding: 36px 28px; border-radius: 18px; text-align: center; }
.gl-contact-success > span { font-size: 2rem; color: #355e42; }
.gl-contact-success h3 { font-size: 1.3rem; font-weight: 500; margin: 12px 0; color: #192c20; }
.gl-contact-success p { color: #526658; font-size: .9rem; }
.gl-contact-fallback { font-size: .75rem; color: inherit; margin-top: 12px; }
.gl-contact-fallback a { text-decoration: underline; }
.contact-page { background: #f5f2eb; color: #192c20; padding: 44px 0 88px; }
.contact-page .container { max-width: 1160px; }
.contact-eyebrow { color: #42654d; font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; margin-bottom: 20px; }
.contact-page h1 { font-size: clamp(2.5rem,5vw,4.5rem); font-weight: 300; line-height: 1.1; letter-spacing: -.04em; }
.contact-page h1 em { font-family: var(--serif); color: #466f53; font-weight: 500; }
.contact-page-intro { max-width: 63ch; color: #526658; margin: 22px 0 40px; }
.contact-layout { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 44px; align-items: start; }
.contact-topics { display: flex; flex-direction: column; gap: 8px; }
.contact-topic { border-bottom: 1px solid #d6dfd0; padding: 18px 0; }
.contact-topic h2 { font-size: 1.1rem; font-weight: 500; margin-bottom: 5px; }
.contact-topic p { font-size: .85rem; color: #526658; }
.contact-direct { margin-top: 24px; color: #526658; font-size: .82rem; overflow-wrap: anywhere; }
.contact-direct a { color: #274b35; text-decoration: underline; }
.golf-contact-section { margin-top: 40px; }
.golf-contact-section > h2 { font-size: 1.5rem; font-weight: 500; margin-bottom: 12px; }
.golf-contact-section > p { color: #526658; margin-bottom: 22px; }
@media(max-width: 850px) { .contact-layout { grid-template-columns: 1fr; gap: 28px; } .contact-topics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } }
@media(max-width: 600px) { .gl-contact { padding: 22px 18px; } .gl-contact-row { grid-template-columns: 1fr; gap: 0; } .contact-topics { grid-template-columns: 1fr; gap: 0; } .contact-page { padding: 32px 0 48px; } }
