
.res{display:grid;grid-template-columns:4fr 8fr;gap:clamp(30px,6vw,90px);align-items:start}
.res .recap{position:sticky;top:110px}.recap ol{list-style:none;margin-top:22px}.recap li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--sable);font-size:15px;align-items:flex-start}
.recap li i{flex:0 0 22px;height:22px;border-radius:50%;border:1px solid var(--sable);display:grid;place-items:center;font-size:12px;font-style:normal;color:var(--gris)}.recap li.fait i{background:var(--terre);border-color:var(--terre);color:var(--papier)}
.recap li b{display:block;font-weight:500;font-size:13px;color:var(--gris)}.recap li span{display:block}.recap li small{display:block;font-size:13px;color:var(--gris)}
.recap .vide{color:var(--gris);font-size:14px;margin-top:18px}
.etape{padding-top:34px;margin-top:34px;border-top:1px solid var(--sable)}.etape:first-child{padding-top:0;margin-top:0;border:0}
.etape h3{font-size:22px;margin-bottom:6px}.etape .sous{font-size:15px;color:var(--gris);margin-bottom:18px}.etape.inactive{opacity:.4;pointer-events:none}
.champs-dates{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}
.champ-date{text-align:left;background:none;border:1px solid var(--sable);border-radius:8px;padding:14px 16px;cursor:pointer;font:inherit;color:inherit;transition:border-color .25s,background .25s}
.champ-date small{display:block;font-size:12px;color:var(--gris);margin-bottom:4px}.champ-date span{font-size:17px}.champ-date.vide span{color:var(--gris)}
.champ-date.cible{border-color:var(--terre);background:rgba(139,107,78,.07);box-shadow:0 0 0 1px var(--terre)}
.cal-entete{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.cal-entete button,.compteur button{background:none;border:1px solid var(--sable);border-radius:8px;width:40px;height:40px;cursor:pointer;font:18px var(--t);color:var(--encre);transition:border-color .25s}.cal-entete button:hover,.compteur button:hover{border-color:var(--terre)}
.mois{display:grid;grid-template-columns:1fr 1fr;gap:34px;-webkit-user-select:none;user-select:none}.mois h4{font:300 20px var(--d);margin-bottom:12px}
.grille-jours{display:grid;grid-template-columns:repeat(7,1fr);gap:4px 3px}.grille-jours .j{font-size:12px;color:var(--gris);text-align:center;padding:6px 0}
.jour{aspect-ratio:1;min-height:40px;border:0;background:none;border-radius:8px;font:16px var(--t);color:var(--encre);cursor:pointer;position:relative;transition:background .2s}
.jour:hover:not(:disabled){background:var(--sable)}.jour:disabled{color:#B9B2A6;cursor:default}
.jour.complet{background:repeating-linear-gradient(135deg,transparent 0 4px,rgba(139,107,78,.18) 4px 5px);color:#B9B2A6}
.jour.arr,.jour.dep{background:var(--terre);color:var(--papier)}.jour.entre{background:rgba(139,107,78,.22)}.jour.apercu{background:rgba(139,107,78,.12)}
.jour.aujourdhui::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:currentColor;transform:translateX(-50%)}
.legende-cal{display:flex;gap:22px;margin-top:12px;font-size:13px;color:var(--gris);flex-wrap:wrap}.legende-cal i{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:6px}
.suite-etape{display:flex;align-items:center;gap:22px;margin-top:22px;flex-wrap:wrap}
.compteurs{display:grid;grid-template-columns:repeat(2,auto);gap:30px;justify-content:start}.compteur{display:flex;align-items:center;gap:12px}.compteur output{font-size:18px;min-width:2ch;text-align:center}
.compteur label{display:block;font-size:15px}.compteur small{display:block;font-size:12px;color:var(--gris)}
.choix{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.carte-ch{text-align:left;background:none;border:1px solid var(--sable);border-radius:8px;padding:10px 10px 12px;font:inherit;color:inherit;transition:border-color .25s,background .25s}
.carte-ch .photo{aspect-ratio:4/3;margin-bottom:10px;border-radius:5px}.carte-ch b{display:block;font-weight:500;font-size:15px}.carte-ch span{display:block;font-size:12px;color:var(--gris);margin-top:2px}
.carte-ch em{display:block;font-style:normal;font-size:12px;margin-top:8px;color:var(--terre)}.carte-ch .bouton{display:block;text-align:center;margin-top:10px;padding:11px 12px;font-size:14px;width:100%}
.carte-ch.actif{border-color:var(--terre);background:rgba(139,107,78,.07)}.carte-ch.actif .bouton{background:var(--terre-f)}
.carte-ch.non{opacity:.55}.carte-ch.non .photo{filter:grayscale(1)}.carte-ch.non em{color:#9A9388}
.combinaison{background:var(--sable);border-radius:8px;padding:22px 26px;margin-top:22px}.combinaison h4{font:300 20px var(--d);margin-bottom:8px}.combinaison p,.combinaison li{font-size:15px;color:#5A4C3D}.combinaison ul{margin:10px 0 0 18px}
.combinaison .bouton{margin-top:16px;margin-right:12px}.combinaison .lien{margin-top:16px}
.combinaison .option{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 16px;margin-top:12px;border:1px solid rgba(139,107,78,.25);border-radius:8px;background:rgba(243,239,230,.6)}.combinaison .option ul{margin:0 0 0 18px}.combinaison .option .bouton{margin:0;white-space:nowrap}.combinaison .option.actif{border-color:var(--terre)}
.confirmation{background:var(--sable);border-radius:8px;padding:26px 30px;margin-top:30px}.confirmation h3{font-size:22px;margin-bottom:8px}
body.demo #bandeau-demo{display:block!important}body.demo #note-demo{display:inline!important}
.carte-ch .prix{display:block;font-size:15px;color:var(--encre);margin-top:8px}.carte-ch .prix small{font-size:12px;color:var(--gris)}
@media(max-width:900px){.res{grid-template-columns:1fr;gap:28px}.res .recap{position:static}.mois{grid-template-columns:1fr;gap:26px}.compteurs{grid-template-columns:1fr;gap:16px}.combinaison .option{flex-direction:column;align-items:flex-start}.jour{font-size:15px}}

    /* === Audit navigateurs et écrans (15/10/2026) === */
    .etape,#formulaire,#dates,#confirmation{scroll-margin-top:96px}
    .champs-dates{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.champ-date{min-width:0}.champ-date span{display:block;overflow-wrap:anywhere}.choix{grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr))}
    .jour{touch-action:manipulation}.cal-entete button,.compteur button{touch-action:manipulation}
    @media(min-width:640px) and (max-width:900px){.mois{grid-template-columns:1fr 1fr;gap:26px}.compteurs{grid-template-columns:repeat(2,auto);gap:30px}.combinaison .option{flex-direction:row;align-items:center}}
    @media(max-width:900px){.res{grid-template-columns:minmax(0,1fr)}.res>*{min-width:0}.combinaison{padding:18px 16px}.combinaison .option{padding:12px 14px}.combinaison .option .bouton{white-space:normal;text-align:center}}
    @media(max-width:360px){.jour{min-height:36px;font-size:14px}.grille-jours{gap:3px 2px}.champ-date{padding:12px 12px}}
    @media(hover:none){.jour:hover:not(:disabled){background:none}.jour.arr:hover,.jour.dep:hover{background:var(--terre)}.jour.entre:hover{background:rgba(139,107,78,.22)}.jour.complet:hover{background:repeating-linear-gradient(135deg,transparent 0 4px,rgba(139,107,78,.18) 4px 5px)}}
    