/* ==========================================================================
   Page Contact SWM · compositions propres à la page (préfixe .ct-)
   Charge après refonte.css (composants .rf- partagés : formulaire, titres, salle cobalt, FAQ, pastilles).
   Couleurs : uniquement les tokens (blanc, encre, cobalt quadrillé, rose, lime).
   Icônes : rose sur blanc, lime sur cobalt. Texte sur rose : blanc. Texte sur lime : cobalt.
   ========================================================================== */

/* ---------- 1. Contact : titre + formulaire à gauche, carte interlocuteur collante à droite ---------- */
.ct-hero:not(#swm-x){display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);gap:clamp(28px,3.4vw,48px);align-items:start;padding:40px 0 64px}
.ct-main:not(#swm-x){min-width:0}
.ct-head:not(#swm-x){margin:0 0 40px}
.ct-head .eyebrow:not(#swm-x){margin:0 0 16px}
.ct-h1:not(#swm-x){max-width:none;margin:0 0 18px;font:800 clamp(38px,3.9vw,56px)/1.03 var(--display);letter-spacing:-.056em;color:var(--ink);text-wrap:initial}
.ct-h1 em:not(#swm-x){display:block;font-style:normal;color:var(--cobalt)}
.ct-lead:not(#swm-x){margin:0 0 22px;max-width:58ch;font:400 18px/1.6 var(--body);color:var(--ink-soft)}
.ct-lead strong:not(#swm-x){font-weight:700;color:var(--ink)}
.ct-head .rf-review:not(#swm-x){margin:0}

/* Carte formulaire : sticker lime épinglé, étapes numérotées. */
.ct-form-card:not(#swm-x){position:relative;padding:34px 32px 30px}
.ct-sticker:not(#swm-x){position:absolute;top:-17px;right:26px;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;background:var(--lime);color:var(--cobalt);font:700 12.5px/1.3 var(--body);transform:rotate(-2.5deg);box-shadow:0 10px 20px -12px rgba(8,6,53,.5)}
.ct-sticker .ui-icon:not(#swm-x){width:15px;height:15px}
.ct-num:not(#swm-x){display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;background-color:var(--cobalt);background-image:var(--grid-w);background-size:10px 10px;color:var(--lime);font:400 12px/1 var(--mono)}
.ct-legend:not(#swm-x),.ct-page .rf-form legend:not(#swm-x){display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;width:100%;margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid var(--brd);font:800 17px/1.3 var(--display);letter-spacing:-.02em;color:var(--ink)}
.ct-legend small:not(#swm-x){margin-left:auto;font:500 13px/1.4 var(--body);letter-spacing:0;color:var(--ink-soft)}

/* ---------- Élément signature : cartes « Votre besoin » ---------- */
.ct-need:not(#swm-x){min-width:0;margin:0 0 24px;padding:0;border:0}
.ct-cards:not(#swm-x){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ct-card:not(#swm-x){position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;min-height:132px;padding:16px 16px 15px;border:2px solid var(--cobalt);border-radius:16px;background:var(--white);color:var(--ink);cursor:pointer;transition:transform 150ms var(--cta-ease),box-shadow 150ms var(--cta-ease)}
.ct-card input:not(#swm-x){position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ct-card-ico:not(#swm-x){display:grid;place-items:center;flex:none;width:40px;height:40px;margin:0 0 11px;border-radius:11px;background:var(--white);color:var(--pink);box-shadow:inset 0 0 0 2px var(--pink)}
.ct-card-ico .ui-icon:not(#swm-x){width:20px;height:20px}
.ct-card-title:not(#swm-x){display:block;padding-right:22px;font:800 16px/1.25 var(--display);letter-spacing:-.025em;color:var(--ink)}
.ct-card-hint:not(#swm-x){display:block;font:400 13px/1.45 var(--body);color:var(--ink-soft)}
.ct-card-check:not(#swm-x){position:absolute;top:12px;right:12px;display:grid;place-items:center;width:24px;height:24px;border:2px solid var(--cobalt);border-radius:7px;color:transparent;font:800 13px/1 var(--display)}
.ct-card:hover:not(#swm-x){transform:translateY(-2px);box-shadow:0 14px 26px -18px rgba(8,6,53,.55)}
.ct-card:has(input:focus-visible):not(#swm-x){outline:3px solid var(--pink);outline-offset:3px}
.ct-card:has(input:checked):not(#swm-x){background-color:var(--cobalt);background-image:var(--grid-w);background-size:20px 20px;box-shadow:0 16px 30px -18px rgba(8,6,53,.7)}
.ct-card:has(input:checked) :is(.ct-card-title,.ct-card-hint):not(#swm-x){color:var(--white)}
.ct-card:has(input:checked) .ct-card-ico:not(#swm-x){background:var(--cobalt);color:var(--lime);box-shadow:inset 0 0 0 2px var(--lime)}
.ct-card:has(input:checked) .ct-card-check:not(#swm-x){border-color:var(--lime);background:var(--lime);color:var(--cobalt)}
/* Carte Rendez-vous : panneau rose, texte blanc ; choisie, elle garde le rose et prend un anneau cobalt. */
.ct-card--rdv:not(#swm-x){border-color:var(--pink);background:var(--pink)}
.ct-card--rdv :is(.ct-card-title,.ct-card-hint):not(#swm-x){color:var(--white)}
.ct-card--rdv .ct-card-hint:not(#swm-x){font-weight:600}
.ct-card--rdv .ct-card-ico:not(#swm-x){box-shadow:none}
.ct-card--rdv .ct-card-check:not(#swm-x){border-color:var(--white)}
.ct-card--rdv:has(input:checked):not(#swm-x){background:var(--pink);box-shadow:0 0 0 3px var(--cobalt)}
.ct-card--rdv:has(input:checked) .ct-card-ico:not(#swm-x){background:var(--white);color:var(--pink);box-shadow:none}
.ct-card--rdv:has(input:focus-visible):not(#swm-x){outline-color:var(--cobalt)}

/* Panneau rose Rendez-vous : bouton lime texte cobalt, badge blanc texte cobalt. */
.ct-rdv:not(#swm-x){display:none;grid-template-columns:44px minmax(0,1fr);gap:14px 16px;align-items:start;margin:0 0 26px;padding:20px 20px 6px;border-radius:16px;background:var(--pink);color:var(--white)}
.ct-form-card:has(#ct-need-rdv:checked) .ct-rdv:not(#swm-x),.ct-form-card.is-rdv .ct-rdv:not(#swm-x){display:grid}
.ct-rdv p:not(#swm-x){margin:0;max-width:none;font:500 14px/1.55 var(--body);color:var(--white)}
.ct-rdv .ct-rdv-title:not(#swm-x){margin:0 0 4px;font:800 19px/1.25 var(--display);letter-spacing:-.03em;color:var(--white)}
.ct-page .ct-rdv .button:not(#swm-x){grid-column:2;justify-self:start;--btn-bg:var(--lime);--btn-tx:var(--cobalt);color:var(--cobalt);margin:4px 0 16px}
.ct-page .ct-rdv .button .cta-arrow:not(#swm-x){color:var(--cobalt)}
.ct-page .ct-rdv .button .cta-badge:not(#swm-x){background:var(--white);color:var(--cobalt)!important}
.ct-page .ct-rdv .button .cta-badge *:not(#swm-x){color:var(--cobalt)!important}

/* Champs : bordures et textes d'aide contrastés, focus visible, préremplissage signalé. */
.ct-page .rf-form fieldset:not(#swm-x){margin-bottom:22px}
.ct-page .rf-form :is(input:not([type=checkbox]),select,textarea):not(#swm-x){border-color:rgba(33,48,234,.5)}
.ct-page .rf-form :is(input,textarea):not(#swm-x)::placeholder{color:rgba(18,19,28,.6);opacity:1}
.ct-page .rf-form :is(input,select,textarea):focus-visible:not(#swm-x){border-color:var(--cobalt);box-shadow:none;outline:2px solid var(--cobalt);outline-offset:2px}
.ct-page .rf-form [aria-invalid=true]:not(#swm-x){border-color:var(--pink)!important;box-shadow:0 0 0 2px var(--pink)}
.ct-page .rf-form .field-error:not(#swm-x){display:flex;align-items:center;gap:8px;font-weight:600}
.ct-page .rf-form .field-error:not(#swm-x)::before{content:'!';display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:5px;background:var(--pink);color:var(--white);font:800 12px/1 var(--display)}
.ct-page .rf-consent:not(#swm-x){border-color:rgba(33,48,234,.5)}
.ct-hint:not(#swm-x){margin:8px 0 0;max-width:none;font:400 13px/1.5 var(--body);color:var(--ink-soft)}
.ct-prefill:not(#swm-x){display:inline-flex;margin-left:8px;padding:2px 7px;border-radius:6px;background:var(--lime);color:var(--cobalt);font:700 11px/1.4 var(--body);vertical-align:1px}
.ct-flash :is(select,textarea):not(#swm-x){animation:ct-flash 1s var(--cta-ease)}
@keyframes ct-flash{0%,100%{box-shadow:0 0 0 0 transparent}25%{box-shadow:0 0 0 4px var(--lime)}}

/* ---------- Carte interlocuteur cobalt (conversion-reassurance) + coordonnées ---------- */
.ct-page .ct-person:not(#swm-x){position:sticky;top:112px;gap:22px;padding:30px}
.ct-page .ct-person .conversion-reassurance__title:not(#swm-x){margin:8px 0 22px;max-width:none}
.ct-person .conversion-reassurance__title em:not(#swm-x){font-style:normal;color:var(--lime)}
.ct-person .conversion-reassurance__portrait:not(#swm-x){object-fit:cover}
.ct-coords:not(#swm-x){list-style:none;margin:0;padding:4px 18px;border-radius:16px;background:var(--white)}
.ct-coords li:not(#swm-x){display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--brd)}
.ct-coords li:last-child:not(#swm-x){border-bottom:0}
.ct-coords a:not(#swm-x){color:var(--cobalt);font:700 15px/1.4 var(--body);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;overflow-wrap:anywhere}
.ct-coords a.ct-tel:not(#swm-x){font:800 21px/1.2 var(--display);letter-spacing:-.02em}
.ct-coords small:not(#swm-x){display:block;margin-top:3px;font:500 13px/1.45 var(--body);color:var(--ink-soft)}
.ct-page .ct-person .button:not(#swm-x){align-self:flex-start;margin:2px 0 16px}

/* ---------- 2. Après l'envoi : trois étapes reliées par une flèche lime ---------- */
.ct-after .rf-head:not(#swm-x){margin-bottom:36px}
.ct-steps:not(#swm-x){list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ct-step:not(#swm-x){position:relative;display:flex;flex-direction:column;min-width:0;padding:26px 26px 28px;border-radius:20px;background:var(--white);color:var(--ink)}
.ct-step-top:not(#swm-x){display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.ct-step .rf-card-title:not(#swm-x){margin:0 0 10px;font-size:clamp(20px,1.75vw,23px)}
.ct-step p:not(#swm-x){margin:0;font:400 15px/1.7 var(--body);color:var(--ink-soft)}
.ct-step:not(:last-child):not(#swm-x)::after{content:'→';position:absolute;top:50%;right:-20px;z-index:1;display:grid;place-items:center;width:36px;height:36px;border:3px solid var(--cobalt);border-radius:50%;background:var(--lime);color:var(--cobalt);font:800 16px/1 var(--display);transform:translateY(-50%)}
.ct-after .rf-cta-row p:not(#swm-x){margin:0 0 16px}
.ct-invert-link:not(#swm-x){color:var(--white);font-weight:700;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.ct-invert-link:hover:not(#swm-x){color:var(--lime)}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .ct-hero:not(#swm-x){grid-template-columns:minmax(0,1fr);gap:28px}
  .ct-page .ct-person:not(#swm-x){position:static}
  .ct-steps:not(#swm-x){grid-template-columns:minmax(0,1fr);gap:26px}
  .ct-step:not(:last-child):not(#swm-x)::after{content:'↓';top:auto;right:auto;bottom:-24px;left:50%;transform:translateX(-50%)}
}
@media(max-width:760px){
  .ct-hero:not(#swm-x){padding:24px 0 40px}
  .ct-head:not(#swm-x){margin-bottom:34px}
  .ct-head .eyebrow:not(#swm-x){margin-bottom:12px}
  .ct-h1:not(#swm-x){font-size:clamp(31px,8.6vw,40px);margin-bottom:14px}
  .ct-lead:not(#swm-x){font-size:16px;margin-bottom:18px}
  .ct-form-card:not(#swm-x){padding:28px 16px 22px}
  .ct-sticker:not(#swm-x){right:14px;font-size:11.5px;padding:6px 10px}
  .ct-legend small:not(#swm-x){flex-basis:100%;margin-left:42px}
  .ct-cards:not(#swm-x){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ct-card:not(#swm-x){min-height:0;padding:12px 12px 13px;border-radius:14px}
  .ct-card-ico:not(#swm-x){width:34px;height:34px;margin-bottom:9px;border-radius:10px}
  .ct-card-ico .ui-icon:not(#swm-x){width:18px;height:18px}
  .ct-card-title:not(#swm-x){font-size:14.5px;padding-right:20px}
  .ct-card-hint:not(#swm-x){font-size:12px}
  .ct-card-check:not(#swm-x){top:10px;right:10px;width:22px;height:22px}
  .ct-rdv:not(#swm-x){grid-template-columns:minmax(0,1fr);padding:18px 16px 4px}
  .ct-rdv>.rf-ico:not(#swm-x){display:none}
  .ct-page .ct-rdv .button:not(#swm-x){grid-column:1;width:100%}
  .ct-page .ct-person:not(#swm-x){padding:25px 20px}
  .ct-coords:not(#swm-x){padding:2px 14px}
  .ct-coords a.ct-tel:not(#swm-x){font-size:19px}
  .ct-page .ct-person .button:not(#swm-x){align-self:stretch}
  .ct-step:not(#swm-x){padding:22px 20px}
}
@media(prefers-reduced-motion:reduce){
  .ct-card:not(#swm-x){transition:none}
  .ct-card:hover:not(#swm-x){transform:none}
}
