/* Com Bataillon : pages Contact et Projet web (formulaires générés par page-forms.js) + pages légales. */

/* Héro */
/* Sur la page Contact, le bloc contact du pied de page n'affiche pas son bouton « Décrire mon projet » */
body:has(.cb-form-contact) .cb-contact a.cb-btn[href$="/contact/"]{display:none}
.cb-headline-f .cb-line{white-space:normal}

/* Mise en page : colonne des étapes + carte (les classes cb-fwrap / cb-fside donnent la base) */
@media (max-width:860px){.elementor .cb-fwrap.cb-fwrap{grid-template-columns:1fr}.elementor .cb-fside.cb-fside{position:static}.elementor .cb-fside-note{display:none}}
.elementor .cb-fside-note a{color:var(--cb-magenta)}
.elementor-editor-active .cb-fcard:empty::before{content:"Formulaire généré automatiquement (questions dans page-forms.js)";display:block;text-align:center;font-family:var(--cb-font-main);font-size:22px;color:var(--cb-muted);padding:40px 0}

/* Étapes (colonne de gauche) */
.cb-fsteps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cb-fsteps li{display:flex;align-items:center;gap:12px;font-weight:800;font-size:15px;line-height:1.55;color:var(--cb-muted);padding:8px 10px;border-radius:14px;cursor:pointer;transition:background .3s,color .3s}
.cb-fsteps li span{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;border:2px solid var(--cb-line);font-weight:900;background:#fff;transition:all .35s cubic-bezier(.3,1.6,.5,1)}
.cb-fsteps li.on{background:var(--cb-carton);color:var(--cb-encre)}
.cb-fsteps li.on span{background:var(--mc);border-color:var(--cb-encre);transform:scale(1.12) rotate(-6deg)}
.cb-fsteps li.done{color:var(--cb-encre)}
.cb-fsteps li.done span{background:var(--cb-encre);color:#fff;border-color:var(--cb-encre)}
@media (max-width:860px){.cb-fsteps{grid-template-columns:repeat(6,1fr);gap:4px}.cb-fsteps li{flex-direction:column;gap:4px;padding:0;font-size:0;background:none!important}.cb-fsteps li span{font-size:14px;width:32px;height:32px}}

/* Carte */
.elementor .cb-fcard form{margin:0}
.elementor .cb-fcard h2,.elementor .cb-fcard h3,.elementor .cb-fcard p{margin:0;text-wrap:balance;color:inherit}
.elementor .cb-fcard fieldset{border:0;padding:0;margin:0;min-width:0}
.elementor .cb-fcard legend{padding:0 2px;margin:0}
.cb-fbar{height:8px;border-radius:99px;background:var(--cb-carton);overflow:hidden;margin-bottom:22px;border:2px solid var(--cb-encre)}
.cb-fbar i{display:block;height:100%;width:0;background:repeating-linear-gradient(45deg,var(--cb-magenta) 0 10px,#d9547f 10px 20px);transition:width .6s cubic-bezier(.3,1.3,.5,1)}
.cb-fstep[hidden]{display:none}
.cb-fstep.in{animation:cbRise .5s cubic-bezier(.2,.9,.2,1) both}
@keyframes cbRise{from{opacity:0;transform:translateY(18px)}}
.elementor .cb-fstep h2{font-family:var(--cb-font-display);font-weight:900;font-size:clamp(28px,3.4vw,42px);line-height:1;letter-spacing:-.03em}
.elementor .cb-fstep .cb-fq{font-family:var(--cb-font-main);font-weight:700;font-size:clamp(21px,2vw,25px);line-height:1.55;color:var(--cb-magenta);margin-top:6px}
.elementor .cb-fstep h3{font-family:var(--cb-font-display);font-weight:900;font-size:18px;line-height:1.55;letter-spacing:normal;margin-top:26px}
.cb-fstep h3 em{font-style:normal;font-weight:600;font-size:14px;color:var(--cb-muted)}

/* Cartes à cocher */
.cb-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:22px}
.elementor .cb-opt{position:relative;display:block;cursor:pointer;line-height:1.55;vertical-align:baseline}
.elementor .cb-opt input,.elementor .cb-fchip input{position:absolute;opacity:0;pointer-events:none}
.cb-optin{display:flex;flex-direction:column;gap:6px;height:100%;padding:18px 16px 16px;border:2px solid var(--cb-encre);border-radius:20px;background:#fff;transition:transform .35s cubic-bezier(.3,1.6,.5,1),box-shadow .25s,background .25s}
.cb-opt:hover .cb-optin{transform:translateY(-3px);box-shadow:5px 5px 0 var(--cb-encre)}
.cb-oico{display:grid;place-items:center;width:58px;height:58px;border-radius:42% 58% 63% 37%/41% 44% 56% 59%;background:var(--cb-carton);border:2px solid var(--cb-encre);margin-bottom:6px;transition:transform .5s cubic-bezier(.3,1.7,.5,1),background .3s}
.cb-oico svg{width:36px;height:36px}
.cb-optin b{font-weight:900;font-size:16px;line-height:1.15}
.cb-optin small{font-size:13px;font-weight:600;color:var(--cb-muted);line-height:1.3}
.cb-tick{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--cb-encre);color:#fff;font-style:normal;font-weight:900;font-size:15px;line-height:1.55;transform:scale(0);transition:transform .35s cubic-bezier(.3,1.8,.5,1)}
.cb-opt input:checked+.cb-optin{background:var(--mc);box-shadow:5px 5px 0 var(--cb-encre);transform:rotate(-1.2deg)}
.cb-opt input:checked+.cb-optin .cb-oico{background:#fff;transform:rotate(-10deg) scale(1.08)}
.cb-opt input:checked+.cb-optin .cb-tick{transform:scale(1)}
.cb-opt input:focus-visible+.cb-optin,.cb-fchip input:focus-visible+span{outline:3px solid var(--cb-magenta);outline-offset:3px}
.cb-opts.budget{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.cb-opts.budget .cb-optin{align-items:flex-start;justify-content:center;min-height:86px}
.cb-opts.budget .cb-optin b{font-size:19px}
@media (max-width:600px){.cb-opts{gap:10px}.cb-opts:not(.budget){grid-template-columns:1fr}.cb-opts:not(.budget) .cb-optin{display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:2px;align-items:center;padding:12px 46px 12px 12px;border-radius:16px}.cb-opts:not(.budget) .cb-oico{grid-row:span 2;width:46px;height:46px;margin:0}.cb-opts:not(.budget) .cb-oico svg{width:28px;height:28px}.cb-tick{top:50%;margin-top:-14px}.cb-opts.budget{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Pastilles */
.cb-fchips{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.elementor .cb-fchip{cursor:pointer;line-height:1.55;vertical-align:baseline;display:inline}
.cb-fchip span{display:inline-block;font-weight:800;font-size:15px;padding:10px 16px;border:2px solid var(--cb-encre);border-radius:999px;background:#fff;transition:background .2s,transform .3s cubic-bezier(.3,1.6,.5,1),box-shadow .2s}
.cb-fchip:hover span{transform:translateY(-2px)}
.cb-fchip input:checked+span{background:var(--cb-encre);color:#fff;box-shadow:3px 3px 0 var(--mc);transform:rotate(-1.5deg)}
.elementor .cb-reassure{display:flex;gap:12px;align-items:center;margin-top:22px;padding:14px 18px;border-radius:16px;background:var(--cb-carton);font-weight:600;font-size:15px;line-height:1.55}
.cb-reassure b{font-family:var(--cb-font-main);font-size:26px;color:var(--cb-magenta)}

/* Champs */
.cb-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin-top:22px}
.cb-fields .full{grid-column:1/-1}
@media (max-width:600px){.cb-fields{grid-template-columns:1fr}}
.elementor .cb-field label{display:block;font-weight:800;font-size:14px;line-height:1.55;margin-bottom:6px;vertical-align:baseline}
.cb-field label em{font-style:normal;color:var(--cb-magenta)}
.elementor .cb-field input,.elementor .cb-field textarea{display:block;width:100%;font:inherit;font-size:16px;line-height:1.55;color:var(--cb-encre);background:var(--cb-creme);border:2px solid var(--cb-encre);border-radius:14px;padding:12px 14px;transition:box-shadow .2s,background .2s}
.elementor .cb-field textarea{min-height:120px;resize:vertical}
.elementor .cb-field input:focus,.elementor .cb-field textarea:focus{outline:none;background:#fff;box-shadow:4px 4px 0 var(--mc)}
.elementor .cb-field.err input{border-color:var(--cb-magenta);box-shadow:0 0 0 3px rgba(196,0,122,.25)}
.elementor .cb-consent{display:flex;gap:12px;align-items:flex-start;margin-top:22px;font-size:14px;font-weight:600;line-height:1.55;color:var(--cb-muted);cursor:pointer;vertical-align:baseline}
.cb-consent em{font-style:normal;color:var(--cb-magenta)}
.elementor .cb-consent input{width:22px;height:22px;accent-color:var(--cb-magenta);flex:none;margin:1px 0 0}
.cb-consent.err{color:var(--cb-magenta)}
.cb-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Navigation */
.cb-fnav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px;flex-wrap:wrap}
.elementor .cb-fnav .cb-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--cb-font-display);font-weight:800;font-size:15px;line-height:normal;white-space:nowrap;text-decoration:none;padding:15px 24px;border-radius:999px;border:2px solid var(--cb-encre);background:var(--cb-encre);color:#fff;box-shadow:5px 5px 0 var(--cb-magenta);cursor:pointer;transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .2s}
.elementor .cb-fnav .cb-btn:hover,.elementor .cb-fnav .cb-btn:focus{background:var(--cb-encre);color:#fff}
.elementor .cb-fnav .cb-btn:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--cb-magenta)}
.elementor .cb-fnav .cb-btn-ghost,.elementor .cb-fnav .cb-btn-ghost:hover,.elementor .cb-fnav .cb-btn-ghost:focus{background:#fff;color:var(--cb-encre)}
.elementor .cb-fnav .cb-btn-ghost{box-shadow:5px 5px 0 var(--cb-jaune)}
.elementor .cb-fnav .cb-btn-ghost:hover{box-shadow:8px 8px 0 var(--cb-jaune)}
.elementor .cb-fnav .cb-btn[hidden]{display:none}
.elementor .cb-fnav .cb-btn[disabled]{opacity:.6;cursor:wait}
.cb-ferr{font-family:var(--cb-font-main);font-weight:700;font-size:21px;line-height:1.55;color:var(--cb-magenta);min-height:1em}

/* Merci */
.cb-fdone{text-align:center;padding:20px 0}
.cb-fdone[hidden]{display:none}
.cb-fdone .big{font-weight:900;font-size:clamp(48px,8vw,96px);line-height:.9;letter-spacing:-.04em}
.cb-fdone .big span{display:inline-block;background:var(--mc);padding:0 .15em;border-radius:.15em;transform:rotate(-3deg)}
.elementor .cb-fdone p{font-size:18px;color:var(--cb-muted);max-width:46ch;margin:18px auto 0}
.cb-recap{text-align:left;margin:26px auto 0;max-width:560px;display:grid;gap:8px;padding:18px 20px;border-radius:18px;background:var(--cb-carton)}
.cb-recap div{display:flex;gap:10px;font-size:14.5px}
.cb-recap dt{font-weight:800;min-width:120px}
.cb-recap dd{margin:0;color:var(--cb-muted);font-weight:600}

/* ---------- Pages légales (mentions, confidentialité) ---------- */
.elementor .cb-legal-p a{color:var(--cb-magenta);text-decoration:underline;text-underline-offset:3px}
.elementor .cb-legal-p strong{color:var(--cb-encre)}
