/* ==========================================================================
   9èArtLeas' — module de conversion partagé par les deux directions
   Formulaire de demande de sélection, barre d'action persistante.

   Chaque page définit ses propres jetons sur :root, le module s'y adapte :
     --cv-font        police de texte
     --cv-display     police d'affichage (titres, chiffres)
     --cv-ink         texte fort
     --cv-ink-2       texte courant
     --cv-ink-3       texte secondaire
     --cv-bg          fond de section
     --cv-surface     fond des cartes
     --cv-line        filets
     --cv-accent      couleur d'action (l'or de la marque)
     --cv-on-accent   texte sur l'accent
     --cv-radius      rayon des blocs
     --cv-radius-sm   rayon des champs
     --cv-btn-radius  rayon des boutons
   ========================================================================== */

:root{
  --cv-font:       inherit;
  --cv-display:    inherit;
  --cv-ink:        #0E1B2E;
  --cv-ink-2:      #3A4658;
  --cv-ink-3:      #5C6A7C;
  --cv-bg:         #FBF9F5;
  --cv-surface:    #F3EFE6;
  --cv-line:       #E4DED1;
  --cv-accent:     #C99B54;
  --cv-on-accent:  #0E1B2E;
  --cv-radius:     14px;
  --cv-radius-sm:  8px;
  --cv-ok:         #2F7A55;
  --cv-err:        #B4453A;
  --cv-ease:       cubic-bezier(.16,1,.3,1);
}

.cv{font-family:var(--cv-font);color:var(--cv-ink-2)}
.cv *{box-sizing:border-box}
.cv :focus-visible{outline:2px solid var(--cv-accent);outline-offset:3px;border-radius:2px}

/* ==========================================================================
   BARRE D'ACTION PERSISTANTE
   ========================================================================== */
.cv-sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  background:var(--cv-ink);color:#fff;
  padding:14px clamp(16px,4vw,40px);
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  transform:translateY(102%);transition:transform .35s var(--cv-ease);
  box-shadow:0 -18px 44px -34px rgba(0,0,0,.7);
}
.cv-sticky.is-on{transform:none}
.cv-sticky p{margin:0;font-size:15px;line-height:1.35;font-weight:500}
.cv-sticky small{display:block;font-size:12.5px;color:rgba(255,255,255,.62);font-weight:400;margin-top:2px}
.cv-sticky-actions{display:flex;gap:10px;align-items:center;flex:none}
.cv-sticky a{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 22px;border-radius:var(--cv-btn-radius,var(--cv-radius-sm));
  font-size:14.5px;font-weight:600;text-decoration:none;white-space:nowrap;
  transition:background .25s var(--cv-ease),color .25s var(--cv-ease),border-color .25s var(--cv-ease);
}
.cv-sticky .cv-s-main{background:var(--cv-accent);color:var(--cv-on-accent)}
.cv-sticky .cv-s-main:hover{background:#fff;color:var(--cv-ink)}
.cv-sticky .cv-s-tel{border:1px solid rgba(255,255,255,.34);color:#fff}
.cv-sticky .cv-s-tel:hover{background:rgba(255,255,255,.12)}
.cv-sticky .cv-s-tel::before{
  content:'';width:15px;height:15px;flex:none;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.4 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.4 1.8.6 2.8.8a2 2 0 0 1 1.7 2Z' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.4 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.4 1.8.6 2.8.8a2 2 0 0 1 1.7 2Z' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat;
}
/* Sur ordinateur, un lien tel: n'appelle personne : le bouton affiche le numéro,
   que le visiteur peut lire ou composer. Sur mobile, « Appeler » ouvre le composeur. */
@media (hover:hover) and (pointer:fine) and (min-width:761px){
  .cv-sticky .cv-s-tel{font-size:0}
  .cv-sticky .cv-s-tel::after{content:'06 85 84 37 60';font-size:14.5px;letter-spacing:.01em}
}
@media (max-width:760px){
  .cv-sticky{flex-direction:column;align-items:stretch;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .cv-sticky p{text-align:center;font-size:13.5px}
  .cv-sticky small{display:none}
  .cv-sticky-actions{display:grid;grid-template-columns:auto 1fr;gap:8px}
  .cv-sticky a{width:100%;height:50px}
  .cv-sticky .cv-s-tel{padding:0 16px}
}

/* ==========================================================================
   BOUTONS DU MODULE
   ========================================================================== */
.cv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:52px;padding:0 26px;border-radius:var(--cv-btn-radius,var(--cv-radius-sm));
  font-family:inherit;font-size:15.5px;font-weight:600;letter-spacing:-.01em;
  cursor:pointer;text-decoration:none;white-space:nowrap;border:1px solid transparent;
  transition:background .25s var(--cv-ease),color .25s var(--cv-ease),border-color .25s var(--cv-ease),transform .1s ease;
}
.cv-btn:active{transform:scale(.978)}
.cv-btn--main{background:var(--cv-accent);color:var(--cv-on-accent)}
.cv-btn--main:hover{background:#D9AC66}
.cv-btn--block{width:100%}
.cv-btn[disabled]{opacity:.55;pointer-events:none}

/* rassurance sous les boutons */
.cv-reassure{
  display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;
  font-size:13px;color:var(--cv-ink-3);
}
.cv-reassure span{display:inline-flex;align-items:center;gap:7px}
.cv-reassure span::before{
  content:'';width:14px;height:14px;flex:none;border-radius:50%;
  background:var(--cv-ink-3);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat;
}

/* ==========================================================================
   FORMULAIRE
   ========================================================================== */
.cv-form{display:grid;gap:16px}
.cv-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:620px){ .cv-form-row{grid-template-columns:1fr} }
.cv-in label{
  display:block;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cv-ink-3);margin-bottom:8px;
}
.cv-in label em{font-style:normal;color:var(--cv-ink-3);text-transform:none;letter-spacing:0;font-weight:400}
.cv-in input:not([type="checkbox"]),.cv-in select,.cv-in textarea{
  width:100%;font-family:inherit;font-size:16px;color:var(--cv-ink);
  background:var(--cv-bg);border:1px solid var(--cv-line);
  border-radius:var(--cv-radius-sm);padding:14px 15px;
  transition:border-color .2s,box-shadow .2s;
}
.cv-in textarea{min-height:108px;resize:vertical}
.cv-in input:not([type="checkbox"]):focus,.cv-in select:focus,.cv-in textarea:focus{
  outline:none;border-color:var(--cv-accent);box-shadow:0 0 0 3px rgba(201,155,84,.18);
}
.cv-in input::placeholder,.cv-in textarea::placeholder{color:var(--cv-ink-3)}
.cv-in.has-err input:not([type="checkbox"]),.cv-in.has-err select,.cv-in.has-err textarea{border-color:var(--cv-err)}
.cv-consent.has-err span{color:var(--cv-err)}
.cv-consent .cv-err{width:100%;margin-top:4px}
.cv-err{display:none;margin-top:7px;font-size:12.5px;color:var(--cv-err)}
.cv-in.has-err .cv-err{display:block}

/* justification d'un champ sensible (Baymard 3.2) — sous le champ, pas en erreur */
.cv-hint{margin-top:7px;font-size:12.5px;line-height:1.45;color:var(--cv-ink-3)}

.cv-consent{display:flex;gap:11px;align-items:flex-start;font-size:12.5px;line-height:1.55;color:var(--cv-ink-3)}
.cv-consent input{margin-top:3px;width:16px;height:16px;flex:none;accent-color:var(--cv-accent)}
.cv-consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}

.cv-form-status{display:none;font-size:14px;padding:13px 15px;border-radius:var(--cv-radius-sm)}
.cv-form-status.is-info{display:block;background:rgba(201,155,84,.10);color:var(--cv-ink,#0E1B2E);border:1px solid rgba(201,155,84,.38);line-height:1.5}
/* champ piège anti-robots : hors écran, jamais atteint au clavier */
.cv-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cv-form-status.is-err{display:block;background:rgba(180,69,58,.09);color:var(--cv-err);border:1px solid rgba(180,69,58,.28)}

/* ==========================================================================
   ÉCRAN DE CONFIRMATION
   ========================================================================== */
.cv-done{display:none;text-align:left}
.cv-done.is-on{display:block}
.cv-done .cv-done-ic{
  width:52px;height:52px;border-radius:50%;background:var(--cv-accent);
  display:grid;place-items:center;margin-bottom:20px;
}
.cv-done h3{font-family:var(--cv-display);font-size:clamp(22px,2.4vw,28px);line-height:1.2;letter-spacing:-.02em;color:var(--cv-ink);margin:0 0 12px;font-weight:600}
.cv-done p{margin:0 0 10px;font-size:15.5px;line-height:1.6;color:var(--cv-ink-2)}
.cv-done ul{margin:18px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.cv-done li{display:flex;gap:11px;font-size:14.5px;color:var(--cv-ink-2);align-items:flex-start}
.cv-done li::before{content:'';width:16px;height:16px;flex:none;margin-top:3px;border-radius:50%;background:var(--cv-ink-3);opacity:.3}
.cv-hidden{display:none!important}

@media (prefers-reduced-motion:reduce){
  .cv-sticky,.cv-btn{transition-duration:.01ms}
}
