/* ---- Rendez-vous wizard (si7aty booking, drtber brand) ---- */
.rdvw{display:grid;grid-template-columns:280px 1fr;background:var(--white);border:1px solid var(--ink);box-shadow:0 24px 60px -42px rgba(0,0,0,.45);}
.rdvw-rail{background:var(--green);color:#f4f2ec;padding:34px 26px;display:flex;flex-direction:column;gap:26px;}
.rdvw-step{display:flex;gap:14px;align-items:flex-start;opacity:.55;transition:opacity .2s;}
.rdvw-step .dot{flex:none;width:14px;height:14px;border-radius:50%;border:2px solid #f4f2ec;margin-top:3px;position:relative;}
.rdvw-step:not(:last-child) .dot::after{content:"";position:absolute;left:50%;top:16px;transform:translateX(-50%);width:2px;height:34px;background:color-mix(in srgb,#f4f2ec 35%,transparent);}
.rdvw-step b{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:.95rem;display:block;}
.rdvw-step small{font-size:.78rem;color:color-mix(in srgb,#f4f2ec 75%,transparent);line-height:1.4;display:block;margin-top:2px;}
.rdvw-step.is-current{opacity:1;}
.rdvw-step.is-current .dot{background:var(--accent);border-color:var(--accent);}
.rdvw-step.is-done{opacity:.9;}
.rdvw-step.is-done .dot{background:#f4f2ec;}
.rdvw-body{padding:34px 34px 28px;min-height:480px;display:flex;flex-direction:column;}
.rdvw-body form{display:flex;flex-direction:column;flex:1;}
.rdvw-panel{display:none;flex:1;}
.rdvw-panel.is-active{display:block;}
.rdvw-panel h3{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:1.25rem;margin:0 0 20px;}

/* step 1 — services */
.rdvw-services{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.rdvw-svc{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--paper);border:1.5px solid var(--line);padding:22px 14px;cursor:pointer;font-family:var(--font-body,inherit);transition:border-color .15s,transform .15s,background .15s;}
.rdvw-svc:hover{border-color:var(--green);transform:translateY(-2px);}
.rdvw-svc.is-selected{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,var(--white));box-shadow:inset 0 0 0 1px var(--green);}
.rdvw-svc .ic{width:44px;height:44px;display:grid;place-items:center;border:1.5px solid var(--ink);color:var(--green);border-radius:50%;}
.rdvw-svc .ic i{width:20px;height:20px;}
.rdvw-svc b{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:.82rem;line-height:1.2;}
.rdvw-svc small{font-family:'Space Mono';font-size:.62rem;letter-spacing:.05em;color:var(--ink-soft);text-transform:uppercase;}

/* step 2 — calendar + slots */
.rdvw-datetime{display:grid;grid-template-columns:1.05fr .95fr;gap:26px;align-items:start;}
.rdvw-cal{border:1px solid var(--line);background:var(--paper);padding:16px;}
.rdvw-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.rdvw-cal-title{font-family:var(--font-display);font-weight:800;text-transform:uppercase;font-size:.95rem;}
.rdvw-cal-nav{border:1.5px solid var(--ink);background:var(--white);width:32px;height:32px;cursor:pointer;font-size:1rem;line-height:1;}
.rdvw-cal-nav:disabled{opacity:.3;cursor:not-allowed;}
.rdvw-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.rdvw-dow{font-family:'Space Mono';font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);text-align:center;padding:4px 0;}
.rdvw-day{border:1px solid var(--line);background:var(--white);padding:9px 0;text-align:center;font-size:.85rem;cursor:pointer;transition:.12s;}
.rdvw-day.is-open{background:color-mix(in srgb,var(--green) 10%,var(--white));border-color:color-mix(in srgb,var(--green) 40%,var(--line));color:var(--green);font-weight:600;}
.rdvw-day.is-open:hover{background:color-mix(in srgb,var(--green) 20%,var(--white));}
.rdvw-day.is-selected{background:var(--green);border-color:var(--green);color:#fff;font-weight:700;}
.rdvw-day.is-closed,.rdvw-day.is-past{background:var(--paper-2);color:#b8b4aa;cursor:not-allowed;}
.rdvw-day.is-past{text-decoration:line-through;}
.rdvw-day.is-empty{visibility:hidden;}
.rdvw-slots{border:1px solid var(--line);background:var(--paper);padding:16px;min-height:230px;}
.rdvw-slots-h{font-family:'Space Mono';font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:12px;}
.rdvw-slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.rdvw-slot{border:1.5px solid var(--line);background:var(--white);padding:.55rem 0;text-align:center;font-family:'Space Mono';font-size:.78rem;cursor:pointer;transition:.12s;}
.rdvw-slot:hover{border-color:var(--green);}
.rdvw-slot.is-selected{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;}
.rdvw-hint{grid-column:1/-1;color:var(--ink-soft);font-size:.88rem;margin:0;}
.rdvw-legend{display:flex;gap:20px;margin-top:14px;font-size:.78rem;color:var(--ink-soft);}
.rdvw-legend .lg{display:inline-block;width:12px;height:12px;vertical-align:-1px;margin-right:5px;border:1px solid var(--line);}
.rdvw-legend .lg-open{background:color-mix(in srgb,var(--green) 12%,var(--white));border-color:var(--green);}
.rdvw-legend .lg-closed{background:var(--paper-2);}
.rdvw-legend .lg-past{background:var(--paper-2);position:relative;}

/* step 3 — phone row */
.rdvw-phone{display:flex;gap:8px;}
.rdvw-phone select{flex:0 0 116px;}
.rdvw-phone input{flex:1;}

/* step 4 — recap */
.rdvw-recap{border:1px solid var(--line);background:var(--paper);padding:20px 22px;display:flex;flex-direction:column;gap:10px;margin-bottom:18px;}
.rdvw-recap .r{display:flex;justify-content:space-between;gap:18px;font-size:.94rem;border-bottom:1px dashed var(--line);padding-bottom:8px;}
.rdvw-recap .r:last-child{border-bottom:none;padding-bottom:0;}
.rdvw-recap .k{font-family:'Space Mono';font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding-top:3px;}
.rdvw-recap .v{font-weight:600;text-align:right;}
.rdvw-note{font-size:.84rem;color:var(--ink-soft);}

/* footer nav */
.rdvw-footer{display:flex;align-items:center;gap:14px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line);}
.rdvw-footer .ebtn,.rdvw-footer .ghost{cursor:pointer;}
.rdvw-footer #rdvw-next,.rdvw-footer #rdvw-submit{margin-left:auto;}
.rdvw-err{color:var(--accent-d);font-size:.86rem;font-weight:600;}

@media(max-width:900px){
  .rdvw{grid-template-columns:1fr;}
  .rdvw-rail{flex-direction:row;flex-wrap:wrap;gap:14px;padding:18px 20px;}
  .rdvw-step small{display:none;}
  .rdvw-step:not(:last-child) .dot::after{display:none;}
  .rdvw-body{padding:22px 18px;}
  .rdvw-services{grid-template-columns:1fr 1fr;}
  .rdvw-datetime{grid-template-columns:1fr;}
  .rdvw-slots-grid{grid-template-columns:repeat(3,1fr);}
}

/* hidden attribute must win over .ebtn/.ghost display rules */
.rdvw-footer [hidden]{display:none !important;}
