/* =========================================================
   amme — Prise de rendez-vous (parcours interactif)
   ========================================================= */

.rdv-body{ min-height:100vh; display:flex; flex-direction:column; }

/* slim header */
.rdv-header{ border-bottom:1px solid var(--line); background:rgba(250,244,239,.85); backdrop-filter:blur(12px); position:sticky; top:0; z-index:40; }
.rdv-header-inner{ height:72px; display:flex; align-items:center; justify-content:space-between; }
.rdv-back{ display:inline-flex; align-items:center; gap:8px; font-size:.92rem; font-weight:600; color:var(--ink-soft); transition:color .2s; }
.rdv-back:hover{ color:var(--brick); }
.rdv-back svg{ width:18px; height:18px; }
.rdv-help{ font-size:.9rem; color:var(--ink-soft); }
.rdv-help a{ color:var(--brick); font-weight:600; }

/* shell */
.rdv-main{ flex:1; padding:clamp(28px,5vw,56px) 0 80px; }
.rdv-layout{ display:grid; grid-template-columns:1fr 360px; gap:clamp(28px,4vw,56px); align-items:start; }

/* stepper */
.stepper{ display:flex; align-items:center; gap:6px; margin-bottom:clamp(30px,4vw,48px); }
.step-node{ display:flex; align-items:center; gap:10px; }
.step-dot{ width:34px; height:34px; border-radius:50%; flex-shrink:0; display:grid; place-items:center; font-weight:700; font-size:.9rem; background:var(--white); border:1.5px solid var(--line); color:var(--ink-mute); transition:.35s var(--ease); }
.step-label{ font-size:.84rem; font-weight:600; color:var(--ink-mute); white-space:nowrap; transition:color .35s; }
.step-node.active .step-dot{ background:var(--brick); border-color:var(--brick); color:#fff; box-shadow:0 6px 16px -6px rgba(149,79,74,.7); }
.step-node.active .step-label{ color:var(--ink); }
.step-node.done .step-dot{ background:var(--orange); border-color:var(--orange); color:#fff; }
.step-node.done .step-label{ color:var(--ink-soft); }
.step-bar{ flex:1; height:2px; background:var(--line); border-radius:2px; min-width:14px; position:relative; overflow:hidden; }
.step-bar::after{ content:""; position:absolute; inset:0; width:var(--fill,0%); background:var(--orange); transition:width .45s var(--ease); }

/* panel */
.panel{ display:none; animation:fadeUp .5s var(--ease); }
.panel.active{ display:block; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;} }
.panel-head{ margin-bottom:30px; }
.panel-head .eyebrow{ margin-bottom:12px; }
.panel-head h1{ font-size:clamp(1.9rem,3.5vw,2.7rem); }
.panel-head p{ color:var(--ink-soft); margin-top:10px; max-width:50ch; }

/* choice grid */
.choice-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.choice-grid.two{ grid-template-columns:repeat(2,1fr); }
.choice{
  text-align:left; background:var(--white); border:1.5px solid var(--line); border-radius:var(--r-md);
  padding:24px 22px; cursor:pointer; transition:.3s var(--ease); position:relative; overflow:hidden;
  display:flex; flex-direction:column; gap:6px;
}
.choice:hover{ border-color:var(--brick); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.choice.selected{ border-color:var(--brick); background:linear-gradient(180deg,rgba(149,79,74,.06),rgba(233,98,40,.04)); box-shadow:0 0 0 3px rgba(149,79,74,.14); }
.choice .c-ic{ width:46px; height:46px; border-radius:13px; background:linear-gradient(135deg,rgba(149,79,74,.12),rgba(233,98,40,.12)); color:var(--brick); display:grid; place-items:center; margin-bottom:8px; transition:.3s; }
.choice.selected .c-ic{ background:linear-gradient(135deg,var(--brick),var(--orange)); color:#fff; }
.choice .c-ic svg{ width:23px; height:23px; }
.choice h3{ font-family:var(--sans); font-size:1.05rem; font-weight:700; color:var(--ink); }
.choice p{ font-size:.88rem; color:var(--ink-soft); line-height:1.5; }
.choice .c-check{ position:absolute; top:16px; right:16px; width:24px; height:24px; border-radius:50%; background:var(--brick); color:#fff; display:grid; place-items:center; opacity:0; transform:scale(.5); transition:.3s var(--ease); }
.choice .c-check svg{ width:14px; height:14px; }
.choice.selected .c-check{ opacity:1; transform:scale(1); }
.choice .c-price{ font-family:var(--display); font-size:1.5rem; color:var(--brick); margin-top:4px; }

/* format cards (wide) */
.format-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.format-card{ display:flex; align-items:center; gap:18px; padding:26px 26px; }
.format-card .c-ic{ margin-bottom:0; width:54px; height:54px; }

/* single séance info banner */
.seance-banner{ display:flex; align-items:center; gap:18px; padding:22px 26px; border:1.5px solid var(--line); border-radius:var(--r-md); background:linear-gradient(180deg,rgba(149,79,74,.05),rgba(233,98,40,.03)); }
.seance-banner .sb-ic{ width:48px; height:48px; flex-shrink:0; border-radius:13px; background:linear-gradient(135deg,var(--brick),var(--orange)); color:#fff; display:grid; place-items:center; }
.seance-banner .sb-ic svg{ width:23px; height:23px; }
.seance-banner .sb-text{ flex:1; }
.seance-banner .sb-text h4{ font-family:var(--sans); font-size:1.05rem; font-weight:700; color:var(--ink); }
.seance-banner .sb-text p{ font-size:.9rem; color:var(--ink-soft); margin-top:2px; }
.seance-banner .sb-price{ font-family:var(--display); font-size:2rem; color:var(--brick); white-space:nowrap; }

/* calendar */
.cal-wrap{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:26px; align-items:start; }
.cal{ background:var(--white); border:1px solid var(--line-2); border-radius:var(--r-md); padding:22px; box-shadow:var(--shadow-sm); max-width:440px; }
.cal-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.cal-month{ font-family:var(--display); font-size:1.3rem; text-transform:capitalize; white-space:nowrap; }
.cal-nav{ display:flex; gap:8px; }
.cal-nav button{ width:36px; height:36px; border-radius:10px; border:1px solid var(--line); display:grid; place-items:center; color:var(--ink); transition:.2s; }
.cal-nav button:hover:not(:disabled){ background:var(--brick); color:#fff; border-color:var(--brick); }
.cal-nav button:disabled{ opacity:.3; cursor:not-allowed; }
.cal-nav svg{ width:16px; height:16px; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.cal-dow{ text-align:center; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-mute); padding-bottom:8px; }
.cal-day{ aspect-ratio:1; border-radius:11px; display:grid; place-items:center; font-size:.95rem; font-weight:600; color:var(--ink); cursor:pointer; border:1.5px solid transparent; transition:.2s; }
.cal-day:hover:not(.disabled):not(.empty){ background:var(--mist); }
.cal-day.disabled{ color:var(--line); cursor:not-allowed; }
.cal-day.empty{ cursor:default; }
.cal-day.today{ border-color:var(--line); }
.cal-day.selected{ background:var(--brick); color:#fff; box-shadow:0 8px 18px -8px rgba(149,79,74,.8); }

.slots{ }
.slots h4{ font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }
.slots-empty{ color:var(--ink-mute); font-size:.92rem; padding:20px 0; }
.slot-group{ margin-bottom:18px; }
.slot-group .sg-label{ font-size:.78rem; font-weight:700; color:var(--brick); margin-bottom:9px; display:flex; align-items:center; gap:7px; }
.slot-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.slot{ padding:10px 4px; text-align:center; font-size:.9rem; font-weight:600; border:1.5px solid var(--line); border-radius:10px; cursor:pointer; transition:.2s; background:var(--white); color:var(--ink); }
.slot:hover:not(.disabled){ border-color:var(--brick); color:var(--brick); }
.slot.disabled{ opacity:.35; cursor:not-allowed; text-decoration:line-through; }
.slot.selected{ background:var(--brick); border-color:var(--brick); color:#fff; }

/* form */
.rdv-form .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.rdv-form .field{ margin-bottom:18px; }
.rdv-form label{ display:block; font-size:.86rem; font-weight:700; color:var(--ink); margin-bottom:8px; }
.rdv-form label .opt{ color:var(--ink-mute); font-weight:400; }
.rdv-form .input,.rdv-form .textarea{ width:100%; font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--white); border:1.5px solid var(--line); border-radius:var(--r-sm); padding:13px 16px; transition:border-color .2s, box-shadow .2s; }
.rdv-form .input:focus,.rdv-form .textarea:focus{ outline:none; border-color:var(--brick); box-shadow:0 0 0 4px rgba(149,79,74,.1); }
.rdv-form .textarea{ min-height:104px; resize:vertical; }
.rdv-form .check-row{ display:flex; gap:11px; align-items:flex-start; font-size:.9rem; color:var(--ink-soft); margin-top:4px; }
.rdv-form .check-row input{ width:18px; height:18px; margin-top:3px; accent-color:var(--brick); flex-shrink:0; }
.rdv-form .check-row a{ color:var(--brick); text-decoration:underline; }
.field-err{ border-color:var(--red) !important; }

/* nav buttons */
.panel-actions{ display:flex; justify-content:space-between; align-items:center; margin-top:34px; gap:16px; }
.btn-back{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--ink-soft); padding:12px 6px; transition:color .2s; }
.btn-back:hover{ color:var(--ink); }
.btn-back svg{ width:18px; height:18px; }
.btn-next{ min-width:180px; }
.btn-next:disabled{ opacity:.4; cursor:not-allowed; transform:none !important; box-shadow:none; }

/* summary sidebar */
.summary{ position:sticky; top:96px; background:var(--white); border:1px solid var(--line-2); border-radius:var(--r-lg); box-shadow:var(--shadow-md); overflow:hidden; }
.summary-top{ padding:22px 24px; display:flex; align-items:center; gap:13px; border-bottom:1px solid var(--line-2); }
.summary-top img{ width:42px; height:42px; }
.summary-top .st-word{ font-family:var(--display); font-size:1.3rem; line-height:1; }
.summary-top .st-sub{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--brick); font-weight:700; }
.summary-body{ padding:22px 24px; }
.summary-body h4{ font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:16px; }
.sum-row{ display:flex; gap:12px; padding:11px 0; border-bottom:1px dashed var(--line); align-items:flex-start; }
.sum-row:last-of-type{ border-bottom:none; }
.sum-ic{ width:30px; height:30px; flex-shrink:0; border-radius:9px; background:rgba(149,79,74,.1); color:var(--brick); display:grid; place-items:center; }
.sum-ic svg{ width:16px; height:16px; }
.sum-k{ font-size:.74rem; color:var(--ink-mute); text-transform:uppercase; letter-spacing:.08em; font-weight:700; }
.sum-v{ font-size:.96rem; color:var(--ink); font-weight:600; margin-top:2px; }
.sum-v.empty{ color:var(--ink-mute); font-weight:400; font-style:italic; }
.summary-total{ background:var(--mist); padding:18px 24px; display:flex; justify-content:space-between; align-items:center; }
.summary-total .tk{ font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); }
.summary-total .tv{ font-family:var(--display); font-size:2rem; color:var(--brick); }

/* confirmation */
.confirm{ text-align:center; max-width:640px; margin:0 auto; }
.confirm-badge{ width:96px; height:96px; border-radius:50%; margin:0 auto 28px; display:grid; place-items:center; box-shadow:0 24px 50px -20px rgba(149,79,74,.8); animation:pop .6s var(--ease); }
.confirm-badge svg{ width:46px; height:46px; stroke:#fff; }
@keyframes pop{ 0%{transform:scale(0);} 70%{transform:scale(1.12);} 100%{transform:scale(1);} }
.confirm h1{ font-size:clamp(2rem,4vw,3rem); margin-bottom:14px; }
.confirm > p{ color:var(--ink-soft); font-size:1.1rem; margin-bottom:34px; }
.confirm-card{ background:var(--white); border:1px solid var(--line-2); border-radius:var(--r-lg); box-shadow:var(--shadow-md); text-align:left; overflow:hidden; margin-bottom:30px; }
.confirm-card-head{ padding:20px 28px; border-bottom:1px solid var(--line-2); display:flex; align-items:center; gap:12px; }
.confirm-card-head .cc-date{ font-family:var(--display); font-size:1.35rem; }
.confirm-rows{ padding:14px 28px 22px; }
.confirm-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.confirm-note{ display:flex; gap:11px; align-items:flex-start; max-width:520px; margin:26px auto 0; padding:16px 20px; background:var(--mist); border-radius:var(--r-md); font-size:.9rem; color:var(--ink-soft); text-align:left; }
.confirm-note svg{ width:20px; height:20px; stroke:var(--brick); flex-shrink:0; margin-top:2px; }

@media (max-width:980px){
  .rdv-layout{ grid-template-columns:1fr; }
  .summary{ position:static; }
  .cal-wrap{ grid-template-columns:1fr; }
  .cal{ margin-inline:auto; }
}
@media (max-width:680px){
  .choice-grid{ grid-template-columns:1fr 1fr; }
  .format-grid{ grid-template-columns:1fr; }
  .step-label{ display:none; }
  .stepper{ gap:4px; }
}
@media (max-width:460px){
  .choice-grid{ grid-template-columns:1fr; }
  .rdv-form .form-row{ grid-template-columns:1fr; }
  .slot-list{ grid-template-columns:repeat(2,1fr); }
}
