/* Configurateur « Composer mon voyage » — styles spécifiques */
.prog{height:4px;background:var(--linen)}
.prog .bar{height:100%;background:linear-gradient(90deg,var(--ocre),var(--terra));width:14%;transition:.5s cubic-bezier(.16,1,.3,1)}
.stage{display:grid;grid-template-columns:1fr 360px;gap:48px;padding:6vh 0 16vh;align-items:start}
@media(max-width:920px){.stage{grid-template-columns:1fr;gap:30px}}
.stage>.ctx-banner{grid-column:1/-1;margin-bottom:0}
.stepwrap{min-height:380px}
.stepcount{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.step h2{font-family:var(--d);font-weight:300;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.08;margin:8px 0 6px}
.step h2 .ital{color:var(--terra)}
.step .hint{color:var(--ink-2);margin-bottom:26px}
.step{display:none;animation:fade .5s cubic-bezier(.16,1,.3,1)}
.step.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.opts{display:grid;gap:14px}
.opts.cols2{grid-template-columns:1fr 1fr}.opts.cols3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:620px){.opts.cols2,.opts.cols3{grid-template-columns:1fr 1fr}}
.opt{position:relative;border:1.5px solid var(--line);border-radius:12px;padding:20px;cursor:pointer;transition:.3s;background:var(--cream);display:flex;gap:14px;align-items:center}
.opt:hover{border-color:var(--ocre);transform:translateY(-2px)}
.opt.sel{border-color:var(--terra);background:#fff;box-shadow:0 14px 34px -24px rgba(181,81,46,.6)}
.opt.sel::after{content:"✓";position:absolute;top:12px;right:14px;width:22px;height:22px;background:var(--terra);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:.8rem}
.opt .ic{flex:none;color:var(--terra)}.opt .ic svg{width:30px;height:30px;display:block}
.opt b{font-family:var(--d);font-weight:400;font-size:1.2rem;display:block}
.opt span{font-size:.84rem;color:var(--ink-2)}
.popts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media(max-width:620px){.popts{grid-template-columns:1fr 1fr}}
.popt{position:relative;border-radius:12px;overflow:hidden;cursor:pointer;aspect-ratio:4/3;border:2px solid transparent;transition:.3s}
.popt img{width:100%;height:100%;object-fit:cover;transition:.6s}
.popt:hover img{transform:scale(1.06)}
.popt::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(35,20,10,.78))}
.popt .lb{position:absolute;left:0;bottom:0;z-index:2;padding:14px;color:#fff;font-family:var(--d);font-size:1.15rem}
.popt.sel{border-color:var(--terra)}
.popt.sel .chk{position:absolute;top:10px;right:10px;z-index:3;width:24px;height:24px;background:var(--terra);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:.82rem}
.popt .chk{display:none}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:620px){.frow{grid-template-columns:1fr}}
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.fld label{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra)}
.inp{border:1.5px solid var(--line);border-radius:8px;padding:13px 15px;font-family:var(--s);font-size:.95rem;background:var(--cream);color:var(--ink)}
.inp:focus{outline:none;border-color:var(--ocre)}
textarea.inp{resize:vertical;min-height:90px}
.counter{display:flex;align-items:center;gap:14px}
.counter button{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:var(--cream);font-size:1.2rem;cursor:pointer;transition:.3s}
.counter button:hover{border-color:var(--terra);color:var(--terra)}
.counter .num{font-family:var(--d);font-size:1.4rem;min-width:30px;text-align:center}
.cnav{display:flex;justify-content:space-between;align-items:center;margin-top:34px;border-top:1px solid var(--line);padding-top:22px}
.summary{position:sticky;top:96px;background:var(--cream);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -46px rgba(42,30,20,.7)}
.summary .ph{height:120px;position:relative}
.summary .ph img{width:100%;height:100%;object-fit:cover}
.summary .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(35,20,10,.5))}
.summary .ph .t{position:absolute;left:0;bottom:0;z-index:2;padding:14px;color:#fff;font-family:var(--d);font-size:1.2rem}
.summary .bd{padding:22px}
.summary .row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:.9rem}
.summary .row .k{color:var(--ink-2)}
.summary .row .v{text-align:right;font-weight:400;max-width:60%}
.summary .row .v.empty{color:var(--ink-2);font-style:italic;opacity:.6}
.summary .foot{padding:18px 22px;background:var(--cream-2);font-size:.82rem;color:var(--ink-2)}
.summary .foot b{color:var(--ink);font-weight:500}
.done{display:none;text-align:center;padding:8vh 0 14vh}
.done.active{display:block;animation:fade .6s}
.done .ring{width:84px;height:84px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:2.4rem;margin:0 auto 24px}
.done h2{font-family:var(--d);font-weight:300;font-size:clamp(2rem,4vw,3rem)}
.done p{color:var(--ink-2);max-width:48ch;margin:14px auto 30px}
.err{color:#b23b2e;font-size:.85rem;margin-top:10px;display:none}
