/* Page Contact (refonte) */
.ct { font-family: 'Open Sans', sans-serif; color: #33333a; }
.ct h2, .ct h3 { margin: 0; }
.ct-wrap { max-width: 1120px; margin: 0 auto; padding: 0 clamp(1.25rem, 4vw, 2.5rem); }
.ct-choose { padding: 3rem 0 1.5rem; }
.ct-kicker { font-family: 'Montserrat', sans-serif; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: #00A855; margin-bottom: 0.5rem; }
.ct-title { font-family: 'Playfair Display', serif; font-size: clamp(1.4rem, 2.4vw, 1.85rem); font-weight: 700; color: #1C1C1E; line-height: 1.25; margin-bottom: 1.4rem !important; }
.ct-choices { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ct-choice { text-align: left; background: #fff; border: 1.5px solid #E4E4E0; border-radius: 14px; padding: 1.1rem 1.1rem 1.15rem; cursor: pointer; font: inherit; transition: border-color .15s, background .15s, box-shadow .15s; display: flex; flex-direction: column; gap: 6px; }
.ct-choice:hover { border-color: #4A90E2; }
.ct-choice[aria-selected="true"] { border-color: #4A90E2; background: #EAF3FB; box-shadow: 0 0 0 3px rgba(74,144,226,.12); }
.ct-choice svg { width: 26px; height: 26px; stroke: #4A90E2; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 4px; }
.ct-choice b { font-family: 'Montserrat', sans-serif; font-size: 0.92rem; color: #1C1C1E; }
.ct-choice span { font-size: 0.8rem; line-height: 1.5; color: #4A4A50; }
.ct-main { padding: 1.25rem 0 3.5rem; }
.tab-panel { display: none; }
.tab-panel.active { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.ct-card { background: #fff; border: 1px solid #E4E4E0; border-radius: 16px; padding: clamp(1.4rem, 3vw, 2.2rem); }
.ct-card h2 { font-family: 'Playfair Display', serif; font-size: 1.45rem; font-weight: 700; color: #1C1C1E; margin-bottom: 0.7rem !important; }
.form-intro { font-size: 0.92rem; line-height: 1.75; color: #4A4A50; margin: 0 0 1.5rem; }
.form-intro strong { color: #1C1C1E; }
.form-intro a, .ct a.lnk { color: #2A6FA8; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-group { margin-bottom: 14px; }
.form-label { display: block; font-family: 'Montserrat', sans-serif; font-size: 0.74rem; font-weight: 600; color: #4A4A50; margin-bottom: 6px; }
.form-input { width: 100%; box-sizing: border-box; border: 1.5px solid #D6DADF; border-radius: 10px; padding: 11px 14px; font-family: 'Open Sans', sans-serif; font-size: 0.92rem; color: #1C1C1E; background: #fff; outline: none; transition: border-color .15s, box-shadow .15s; }
.form-input:focus { border-color: #4A90E2; box-shadow: 0 0 0 3px rgba(74,144,226,.15); }
.form-textarea { resize: vertical; min-height: 130px; }
.form-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%234A4A50' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.form-check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.82rem; line-height: 1.55; color: #4A4A50; margin: 6px 0 18px; }
.form-check input { margin-top: 3px; accent-color: #4A90E2; flex-shrink: 0; }
.btn-submit { font-family: 'Montserrat', sans-serif; font-size: 0.88rem; font-weight: 700; color: #fff; background: #00CC66; border: 0; border-radius: 10px; padding: 14px 30px; cursor: pointer; }
.btn-submit:hover { background: #00B359; }
.btn-submit:disabled { opacity: .6; cursor: wait; }
.form-note { font-size: 0.78rem; color: #6b6b73; margin: 12px 0 0; line-height: 1.6; }
.form-status { font-size: 0.85rem; }
.ct-side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 130px; }
.ct-side .ct-card { padding: 1.25rem 1.35rem; border-radius: 14px; }
.ct-side h3 { font-family: 'Montserrat', sans-serif; font-size: 0.92rem; font-weight: 700; color: #1C1C1E; margin-bottom: 0.7rem !important; }
.ct-side p { font-size: 0.84rem; line-height: 1.65; color: #4A4A50; margin: 0 0 0.6rem; }
.ct-side .ct-line { display: flex; flex-direction: column; padding: 0.55rem 0; border-top: 1px solid #F0F0EE; }
.ct-side .ct-line:first-of-type { border-top: 0; padding-top: 0; }
.ct-side .ct-line small { font-family: 'Montserrat', sans-serif; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #8E8E96; }
.ct-side .ct-line span, .ct-side .ct-line a { font-size: 0.9rem; font-weight: 600; color: #1C1C1E; text-decoration: none; }
.ct-side .ct-line a { color: #2A6FA8; }
.ct-side .sidebar-card-kicker { display: none; }
.ct-side .sidebar-card-title { font-family: 'Montserrat', sans-serif; font-size: 0.92rem; font-weight: 700; color: #1C1C1E; margin-bottom: 0.6rem; }
.ct-side .sidebar-card-text { font-size: 0.84rem; line-height: 1.65; color: #4A4A50; margin-bottom: 0.6rem; }
.ct-side .sidebar-card-items { display: flex; flex-direction: column; gap: 6px; }
.ct-side .sidebar-card-item { position: relative; padding-left: 14px; font-size: 0.83rem; line-height: 1.5; color: #4A4A50; }
.ct-side .sidebar-card-item::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 5px; height: 5px; border-radius: 50%; background: #4A90E2; }
.ct-side .sidebar-email { color: #2A6FA8; font-weight: 600; text-decoration: none; font-size: 0.85rem; }
.ct-side .sidebar-card-quote, .ct-side .sidebar-quote { font-family: 'Playfair Display', serif; font-style: italic; color: #1C1C1E; }
.ct-lieux { background: #F5F5F3; border-top: 1px solid #E4E4E0; padding: 3.25rem 0; }
.ct-lieux-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.lieu-card { background: #fff; border: 1px solid #E4E4E0; border-radius: 14px; padding: 1.25rem 1.3rem; }
.lieu-card-icon { width: 34px; height: 34px; border-radius: 9px; background: #EAF3FB; display: flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.lieu-card-icon svg { width: 18px; height: 18px; }
.lieu-card-type { font-family: 'Montserrat', sans-serif; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #00A855; margin-bottom: 4px; }
.lieu-card-title { font-family: 'Montserrat', sans-serif; font-size: 0.95rem; font-weight: 700; color: #1C1C1E; margin-bottom: 6px; }
.lieu-card-desc { font-size: 0.83rem; line-height: 1.65; color: #4A4A50; }
.ct-social { padding: 2rem 0 3rem; }
.ct-social-in { display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ct-social-in b { font-family: 'Montserrat', sans-serif; font-size: 0.95rem; color: #1C1C1E; display: block; }
.ct-social-in span.s { font-size: 0.84rem; color: #4A4A50; }
.social-links { display: flex; gap: 10px; flex-wrap: wrap; }
.social-link { display: inline-flex; align-items: center; gap: 8px; font-family: 'Montserrat', sans-serif; font-size: 0.82rem; font-weight: 600; color: #1C1C1E; text-decoration: none; background: #fff; border: 1.5px solid #D6DADF; border-radius: 999px; padding: 10px 18px; }
.social-link:hover { border-color: #4A90E2; color: #2A6FA8; }
.social-link svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 960px) { .tab-panel.active { grid-template-columns: 1fr; } .ct-side { position: static; } .ct-choices { grid-template-columns: 1fr 1fr; } .ct-lieux-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .ct-choices { grid-template-columns: 1fr; } .form-row { grid-template-columns: 1fr; } }

/* Boutons réseaux sociaux : la règle .social-link du pied de page (texte blanc) les rendait illisibles */
.ct-social .social-link { color: #1C1C1E !important; display: inline-flex; margin-bottom: 0; opacity: 1; }
.ct-social .social-link:hover { color: #2A6FA8 !important; border-color: #4A90E2; opacity: 1; }
