/* Commun aux pages du site : le bouton fixe en bas d'écran et le formulaire de demande.
   Les couleurs reprennent celles du site (orange --accent) ; les valeurs de repli servent aux pages du blog. */

/* Bouton fixe en bas d'écran, sur téléphone et tablette : il glisse depuis le bas quand ni le bouton du haut de page ni le
   formulaire ne sont à l'écran (assets/formulaire.js). Sur ordinateur, le bouton « Réserver » du menu reste toujours visible. */
.cta-fixe{position:fixed;left:12px;right:12px;bottom:12px;z-index:40;display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 18px;border-radius:12px;background:var(--accent,#ff5322);color:#fff!important;font:700 1.05rem 'Inter',system-ui,sans-serif;letter-spacing:.2px;text-decoration:none;box-shadow:0 10px 26px -8px rgba(17,19,21,.55);transform:translateY(150%);transition:transform .25s ease-out}
.cta-fixe.cta-visible{transform:none}
.cta-fixe:active{background:var(--accent-dark,#e6410f)}
@media(min-width:960px){.cta-fixe{display:none}}
/* La place du bouton est réservée sous le pied de page, pour qu'il ne cache jamais la fin du contenu. */
@media(max-width:959.98px){body .site-footer{padding-bottom:112px}}
@media(prefers-reduced-motion:reduce){.cta-fixe{transition:none}}

/* Section contact : le texte à gauche, le formulaire à droite (l'un sous l'autre sur téléphone). */
.contact-grid{display:grid;gap:36px;align-items:start;text-align:left}
@media(min-width:900px){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:56px}}
.contact-texte h2{margin:4px 0 0}
.contact-points{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:#c9cdd0}
.contact-points li{position:relative;padding-left:24px}
.contact-points li:before{content:"";position:absolute;left:2px;top:9px;width:9px;height:9px;background:var(--accent,#ff5322);border-radius:2px;transform:rotate(45deg)}

/* Formulaire */
.formulaire{background:#fff;color:var(--ink,#1a1d1f);border-radius:var(--radius,16px);padding:18px;font-size:15px;line-height:1.5;text-align:left;scroll-margin-top:84px;box-shadow:0 24px 60px -24px rgba(0,0,0,.7);overflow:hidden}
@media(min-width:640px){.formulaire{padding:26px}}
.f-tete{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.f-titre{margin:0;font:600 1.3rem 'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.5px;color:var(--ink,#1a1d1f)}
.f-duree{font-size:.82rem;color:var(--muted,#6b7075);white-space:nowrap}
.f-progres{height:4px;background:var(--line,#e6e8ea);border-radius:99px;margin-bottom:16px;overflow:hidden}
.f-progres-barre{height:100%;width:0;background:var(--accent,#ff5322);border-radius:99px;transition:width .35s ease-out}
.f-etape{display:grid;gap:14px}
.f-etape[hidden]{display:none}
.f-duo{display:grid;gap:14px}
@media(min-width:380px){.f-duo{grid-template-columns:1fr 1fr}}
.f-champ>label{display:block;font-size:.85rem;font-weight:600;color:var(--ink,#1a1d1f);margin-bottom:5px}
.f-champ>input,.f-champ>textarea{width:100%;border:1px solid #cfd3d6;border-radius:10px;background:#fff;padding:0 13px;font:400 16px 'Inter',system-ui,sans-serif;color:var(--ink,#1a1d1f);outline:none}
.f-champ>input{height:48px}
.f-champ>textarea{min-height:92px;padding:11px 13px;resize:vertical;line-height:1.45}
.f-champ>input::placeholder,.f-champ>textarea::placeholder{color:#9aa0a5}
.f-champ>input:focus,.f-champ>textarea:focus{border-color:var(--accent,#ff5322);box-shadow:0 0 0 3px rgba(255,83,34,.18)}
.f-facultatif{font-weight:400;color:var(--muted,#6b7075)}
.f-choix{border:0;margin:0;padding:0;min-width:0}
.f-choix legend{padding:0;margin-bottom:6px;font-size:.85rem;font-weight:600;color:var(--ink,#1a1d1f)}
.f-options{display:grid;gap:8px;grid-template-columns:1fr 1fr}
@media(min-width:420px){.f-options-3{grid-template-columns:repeat(3,1fr)}}
.f-option{position:relative;display:block;cursor:pointer}
.f-option input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.f-option span{display:grid;place-items:center;min-height:48px;padding:6px 6px;font-size:.9rem;line-height:1.25;border:1px solid #cfd3d6;border-radius:10px;background:#fff;color:var(--ink,#1a1d1f);text-align:center;transition:border-color .15s,background .15s}
.f-option:hover span{border-color:#9aa0a5}
.f-option input:focus-visible+span{box-shadow:0 0 0 3px rgba(255,83,34,.25)}
.f-option input:checked+span{border-color:var(--accent,#ff5322);background:#fff3ee;color:#b9330a;font-weight:600;box-shadow:inset 0 0 0 1px var(--accent,#ff5322)}
.f-champ>label.f-case{display:flex;gap:10px;align-items:flex-start;cursor:pointer;line-height:1.45;font-size:.88rem;font-weight:400;color:#3a3f43;margin:0}
.f-case input{width:19px;height:19px;margin:1px 0 0;flex:none;accent-color:var(--accent,#ff5322)}
.f-erreur{margin:5px 0 0;color:#b42318;font-size:.84rem}
.f-invalide>input,.f-invalide>textarea{border-color:#b42318}
.f-invalide .f-option span{border-color:#e3a49d}
.f-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-envoyer{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;border:0;border-radius:999px;background:var(--accent,#ff5322);color:#fff;font:600 1.05rem 'Inter',system-ui,sans-serif;cursor:pointer;transition:background .2s,transform .15s}
.f-envoyer:hover{background:var(--accent-dark,#e6410f)}
.f-envoyer:disabled{opacity:.55;cursor:not-allowed}
.f-rassure{margin:0;text-align:center;font-size:.86rem;color:var(--muted,#6b7075)}
.f-mention{margin:0;text-align:center;font-size:.78rem;color:var(--muted,#6b7075)}
.f-mention a{color:inherit;text-decoration:underline}
.f-ok{margin:0;font:600 1.3rem 'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.4px;color:var(--accent-dark,#e6410f)}
.f-suite{margin:0;font-size:.95rem;line-height:1.5;color:#3a3f43}
.f-retour{border:0;background:none;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
/* Les étapes glissent : de la droite en avançant, de la gauche en revenant. */
.f-glisse{animation:f-entre .3s ease-out}
.f-glisse-retour{animation:f-revient .3s ease-out}
@keyframes f-entre{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:none}}
@keyframes f-revient{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.f-glisse,.f-glisse-retour{animation:none}}

/* Les images portent width et height (place réservée avant chargement) : leur hauteur suit la largeur affichée. */
img{height:auto}

/* Fil d'Ariane (écrit par outils/seo.mjs, identique au BreadcrumbList) et lien d'évitement. */
.ariane{font-size:.85rem;margin:0 0 14px}
.ariane ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 0;margin:0;padding:0}
.ariane li{display:inline;color:inherit;opacity:.8}
.ariane li+li:before{content:"›";margin:0 8px;opacity:.7}
.ariane a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.evitement{position:absolute;left:12px;top:-60px;z-index:100;background:#111315;color:#fff!important;padding:10px 16px;border-radius:8px;font:600 .95rem 'Inter',system-ui,sans-serif;text-decoration:none}
.evitement:focus{top:12px}
