:root{
  --booking-blue:#1677ff;
  --booking-blue-dark:#0b5fd3;
  --booking-navy:#071528;
  --booking-soft:#eef6ff;
  --booking-line:#dbe8f8;
  --booking-green:#0a9b65;
  --booking-red:#d93d3d;
  --booking-text:#122033;
  --booking-muted:#64748b;
}

.header-action.booking{background:linear-gradient(135deg,#1677ff,#0b5fd3)!important;color:#fff!important}

.booking-preview-section{background:linear-gradient(180deg,#f7fbff 0%,#ffffff 100%)}
.booking-preview-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:32px;align-items:center}
.booking-preview-copy h2{margin-top:7px}.booking-preview-copy p{max-width:720px}
.booking-hours-note,.booking-weekend-note{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border-radius:14px;margin:12px 0;background:#fff;border:1px solid var(--booking-line);color:var(--booking-text)}
.booking-hours-note i,.booking-weekend-note i{margin-top:4px;color:var(--booking-blue)}
.booking-weekend-note{margin-bottom:20px;background:#fffaf0;border-color:#f6e1b1}
.booking-preview-card{background:#fff;border:1px solid var(--booking-line);border-radius:22px;padding:22px;box-shadow:0 20px 50px rgba(15,68,130,.10)}
.booking-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}
.booking-preview-head strong{font-size:1.08rem;color:var(--booking-text)}
.live-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#ecfdf5;color:#08734d;font-weight:800;font-size:.78rem}
.live-pill i{width:8px;height:8px;border-radius:50%;background:#12b981;box-shadow:0 0 0 4px rgba(18,185,129,.13)}
.booking-preview-slots{display:grid;gap:10px;min-height:145px}
.booking-preview-slot{text-decoration:none!important;display:grid;grid-template-columns:56px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #e6edf6;border-radius:15px;background:#fbfdff}
.booking-preview-slot .day{font-weight:900;color:var(--booking-blue);text-transform:uppercase;font-size:.74rem}
.booking-preview-slot .date{font-weight:800;color:var(--booking-text)}
.booking-preview-slot .time{font-weight:900;color:var(--booking-navy);background:#eaf3ff;padding:6px 10px;border-radius:10px}
.booking-preview-loading,.booking-preview-error{display:flex;align-items:center;justify-content:center;text-align:center;min-height:130px;color:var(--booking-muted)}
.booking-preview-error{color:#9b2c2c;background:#fff4f4;border-radius:14px;padding:12px}
.booking-preview-link{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-weight:900;color:var(--booking-blue)!important}

.booking-page{background:#f5f8fc;min-height:100vh}
.booking-hero{background:radial-gradient(circle at 85% 10%,rgba(22,119,255,.28),transparent 34%),linear-gradient(145deg,#061426 0%,#0a2448 58%,#0c3974 100%);color:#fff;padding:55px 0 42px}
.booking-hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:34px;align-items:center}
.booking-hero .k{color:#93c5fd}.booking-hero h1{font-size:clamp(2rem,5vw,3.65rem);line-height:1.04;margin:8px 0 16px}.booking-hero p{font-size:1.08rem;color:#d5e5f8;max-width:760px}
.booking-hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.booking-hero-badges span{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);padding:9px 12px;border-radius:999px;font-weight:700;font-size:.9rem}
.booking-hero-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);border-radius:24px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.18)}
.booking-hero-card .schedule-line{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.booking-hero-card .schedule-line:last-child{border-bottom:0}.booking-hero-card strong{font-size:1rem}.booking-hero-card span{color:#d6e7ff;text-align:right}

.booking-main{padding:34px 0 70px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:25px;align-items:start}.booking-panel{background:#fff;border:1px solid #e1e9f3;border-radius:24px;box-shadow:0 16px 40px rgba(15,63,120,.08);overflow:hidden}.booking-panel-inner{padding:25px}
.booking-stepper{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #e8eef6;background:#f9fbfe}.booking-step{padding:15px 10px;text-align:center;color:#7a8a9f;font-weight:800;font-size:.88rem;position:relative}.booking-step strong{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;margin-right:7px;background:#e6edf7;color:#60738b}.booking-step.active{color:var(--booking-blue);background:#f1f7ff}.booking-step.active strong,.booking-step.done strong{background:var(--booking-blue);color:#fff}.booking-step.done{color:#157957}
.booking-screen{display:none}.booking-screen.active{display:block}.booking-screen h2{font-size:1.55rem;margin:0 0 7px;color:var(--booking-text)}.booking-screen>.intro{color:var(--booking-muted);margin:0 0 20px}
.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.problem-option{position:relative}.problem-option input{position:absolute;opacity:0;pointer-events:none}.problem-card{height:100%;display:flex;gap:10px;align-items:center;border:2px solid #e4ebf4;border-radius:16px;padding:14px;background:#fff;cursor:pointer;transition:.18s ease}.problem-card i{width:38px;height:38px;border-radius:12px;background:#edf5ff;color:var(--booking-blue);display:flex;align-items:center;justify-content:center}.problem-card span{font-weight:850;color:var(--booking-text)}.problem-option input:checked+.problem-card{border-color:var(--booking-blue);background:#f2f7ff;box-shadow:0 0 0 3px rgba(22,119,255,.08)}
.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-field{display:grid;gap:7px}.booking-field.full{grid-column:1/-1}.booking-field label{font-weight:800;color:#23354a}.booking-field small{color:var(--booking-muted)}.booking-field input,.booking-field textarea{width:100%;border:1px solid #cfdbea;border-radius:13px;background:#fff;padding:12px 13px;font:inherit;color:var(--booking-text);outline:none;transition:.18s}.booking-field textarea{min-height:135px;resize:vertical}.booking-field input:focus,.booking-field textarea:focus{border-color:var(--booking-blue);box-shadow:0 0 0 4px rgba(22,119,255,.09)}
.address-wrap{position:relative}.address-suggestions{position:absolute;left:0;right:0;top:100%;z-index:50;background:#fff;border:1px solid #d8e2ef;border-radius:12px;box-shadow:0 18px 35px rgba(21,48,82,.16);overflow:auto;max-height:280px;margin-top:4px;color:var(--booking-text)}.address-suggestions:empty{display:none}.address-suggestion{display:block;padding:12px 13px;cursor:pointer;border-bottom:1px solid #edf1f6;background:#fff;color:#20344a!important;font-weight:700;line-height:1.35}.address-suggestion:last-child{border-bottom:0}.address-suggestion:hover,.address-suggestion:focus{background:#eff6ff;color:#0b3971!important}.address-status{font-size:.86rem;color:var(--booking-muted);min-height:20px}.address-status.ok{color:#08734d}.address-status.error{color:#b42318}
.booking-consent{display:flex;align-items:flex-start;gap:10px;background:#f8fafc;border:1px solid #e6edf4;padding:12px;border-radius:13px;font-size:.9rem;color:#52657b}.booking-consent input{margin-top:3px}
.booking-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.booking-btn{border:0;border-radius:13px;padding:12px 17px;font:inherit;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.booking-btn.primary{background:linear-gradient(135deg,var(--booking-blue),var(--booking-blue-dark));color:#fff;box-shadow:0 10px 25px rgba(22,119,255,.22)}.booking-btn.secondary{background:#eef2f7;color:#33465c}.booking-btn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}

.week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 17px}.week-title{flex:1;text-align:center}.week-title strong{display:block;color:var(--booking-text);font-size:1.05rem}.week-title span{display:inline-flex;margin-top:5px;padding:5px 9px;border-radius:999px;background:#edf5ff;color:var(--booking-blue);font-size:.78rem;font-weight:900}.week-nav{width:40px;height:40px;border-radius:12px;border:1px solid #dbe5f0;background:#fff;color:var(--booking-blue);cursor:pointer}.week-nav:disabled{opacity:.35;cursor:not-allowed}
.week-rule-banner{display:flex;align-items:center;gap:10px;background:#eef6ff;border:1px solid #cfe2fb;padding:12px 14px;border-radius:14px;margin-bottom:15px;color:#244a75}.week-rule-banner i{color:var(--booking-blue)}
.days-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.day-card{border:1px solid #dfe8f3;border-radius:17px;overflow:hidden;background:#fbfdff}.day-card-head{padding:11px;background:#f3f7fc;text-align:center;border-bottom:1px solid #e6edf5}.day-card-head strong{display:block;color:#20344a}.day-card-head span{font-size:.8rem;color:#728399}.day-slots{display:grid;gap:7px;padding:9px}.slot-btn{border:1px solid #cfe0f2;border-radius:11px;background:#fff;padding:9px 7px;color:#1b4777;font-weight:850;cursor:pointer;transition:.15s}.slot-btn:hover:not(:disabled){border-color:var(--booking-blue);background:#eef6ff;transform:translateY(-1px)}.slot-btn.selected{background:var(--booking-blue);border-color:var(--booking-blue);color:#fff}.slot-btn.busy{background:#f4f5f7;border-color:#e2e5e9;color:#9aa3ae;cursor:not-allowed;text-decoration:line-through}.slot-btn.past{display:none}.day-closed{padding:18px 10px;text-align:center;color:#8a98a9;font-size:.85rem}.days-grid .day-card.today{box-shadow:0 0 0 2px rgba(22,119,255,.16)}
.weekend-box{margin-top:15px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 16px;border:1px dashed #d5c18d;background:#fffaf0;border-radius:15px}.weekend-box strong{display:block;color:#5e4821}.weekend-box span{color:#7d6a43;font-size:.9rem}
.booking-summary{margin-top:17px;background:#f7fbff;border:1px solid #d7e7f8;border-radius:16px;padding:15px}.booking-summary.empty{color:#718197}.booking-summary-row{display:flex;gap:9px;align-items:flex-start;margin:6px 0;color:#30465f}.booking-summary-row i{color:var(--booking-blue);width:19px;margin-top:4px}.booking-error{display:none;margin-top:15px;padding:12px 14px;background:#fff2f2;border:1px solid #f4c6c6;color:#9c2525;border-radius:13px}.booking-error.show{display:block}

.booking-sidebar{display:grid;gap:16px;position:sticky;top:105px}.booking-info-card{background:#fff;border:1px solid #e1e9f3;border-radius:20px;padding:19px;box-shadow:0 12px 30px rgba(15,63,120,.06)}.booking-info-card h3{margin:0 0 11px;color:var(--booking-text)}.booking-info-list{display:grid;gap:11px}.booking-info-item{display:flex;gap:10px;align-items:flex-start;color:#50637a}.booking-info-item i{width:30px;height:30px;flex:0 0 30px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#edf5ff;color:var(--booking-blue)}.booking-status-pill{display:flex;align-items:center;gap:8px;color:#08734d;background:#ecfdf5;border-radius:999px;padding:7px 10px;font-weight:850;font-size:.83rem;width:max-content}.booking-status-pill i{font-size:.62rem}.booking-help-phone{display:flex;align-items:center;gap:12px;background:linear-gradient(145deg,#071528,#0b2d59);color:#fff!important;border-radius:18px;padding:16px;text-decoration:none!important}.booking-help-phone i{width:42px;height:42px;border-radius:13px;background:#1677ff;display:flex;align-items:center;justify-content:center}.booking-help-phone span{display:block;color:#b8cbe2;font-size:.82rem}.booking-help-phone strong{display:block;font-size:1.05rem;color:#fff}

.booking-success{display:none;text-align:center;padding:36px 20px}.booking-success.show{display:block}.success-icon{width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eafbf4;color:#0b9b66;font-size:2rem;margin:0 auto 16px;box-shadow:0 0 0 10px #f4fdf9}.booking-success h2{font-size:1.75rem;color:var(--booking-text);margin:0 0 10px}.booking-success p{color:#66788c}.success-recap{max-width:520px;margin:18px auto;background:#f7fbff;border:1px solid #d9e8f8;border-radius:16px;padding:16px;text-align:left}.success-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}

@media(max-width:980px){.booking-preview-shell,.booking-hero-grid,.booking-layout{grid-template-columns:1fr}.booking-sidebar{position:static;grid-template-columns:1fr 1fr}.days-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.booking-hero{padding:35px 0 28px}.booking-hero-card{display:none}.booking-main{padding-top:18px}.booking-panel-inner{padding:18px}.booking-step{font-size:0;padding:12px 6px}.booking-step strong{margin:0}.problem-grid{grid-template-columns:1fr 1fr}.booking-form-grid{grid-template-columns:1fr}.days-grid{grid-template-columns:1fr}.booking-sidebar{grid-template-columns:1fr}.weekend-box{align-items:flex-start;flex-direction:column}.booking-actions{flex-direction:column-reverse}.booking-actions .booking-btn{width:100%}.booking-preview-shell{gap:20px}.booking-preview-slot{grid-template-columns:47px 1fr auto}}
@media(max-width:460px){.problem-grid{grid-template-columns:1fr}.booking-preview-slot{grid-template-columns:1fr auto}.booking-preview-slot .day{grid-column:1/-1}.booking-preview-head{align-items:flex-start;flex-direction:column}.booking-hero h1{font-size:2.1rem}}

/* Correctif lisibilite autocomplete adresse */
.booking-page .address-suggestions,
.booking-page .address-suggestions .address-suggestion{
  color:#111827 !important;
}
.booking-page .address-suggestions .address-suggestion{
  background:#ffffff !important;
  font-weight:700 !important;
}
.booking-page .address-suggestions .address-suggestion:hover,
.booking-page .address-suggestions .address-suggestion:focus{
  background:#eaf3ff !important;
  color:#111827 !important;
}
