.aoplanning-booking{--ao-text:#0f172a;--ao-muted:#64748b;--ao-border:#e2e8f0;--ao-soft:#f8fafc;--ao-blue:#2563eb;--ao-blue-dark:#1d4ed8;--ao-red:#ef4444;--ao-red-soft:#fef2f2;max-width:1120px;margin:34px auto;color:var(--ao-text);font-size:16px}
.aoplanning-booking *{box-sizing:border-box}
.ao-step-panel[hidden],.ao-address-fields[hidden]{display:none!important}
.ao-calendly-card{display:grid;grid-template-columns:300px minmax(390px,1fr) 300px;min-height:610px;border:1px solid var(--ao-border);border-radius:26px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.075);overflow:hidden}
.aoplanning-booking.is-date-unselected{max-width:850px}.aoplanning-booking.is-date-unselected .ao-calendly-card{grid-template-columns:300px minmax(390px,1fr)}.aoplanning-booking.is-date-unselected .ao-date-panel{border-right:0}.aoplanning-booking.is-date-unselected .ao-time-panel{display:none!important}
.ao-event-panel,.ao-date-panel,.ao-time-panel{padding:26px}
.ao-event-panel{border-right:1px solid var(--ao-border);background:linear-gradient(180deg,#fff,#f8fafc)}
.ao-date-panel{border-right:1px solid var(--ao-border)}
.ao-time-panel{display:flex;flex-direction:column;background:#fff}
.ao-kicker{margin:0 0 10px!important;color:var(--ao-blue)!important;font-size:.76rem!important;font-weight:850!important;text-transform:uppercase;letter-spacing:.09em}.ao-step-pill{display:inline-flex;align-items:center;margin:0 0 12px;padding:6px 10px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:var(--ao-blue-dark);font-size:.78rem;font-weight:850}
.ao-event-panel h2{margin:0 0 12px;font-size:1.76rem;line-height:1.12;letter-spacing:-.035em;color:var(--ao-text)}
.ao-event-intro{margin:0 0 22px;color:var(--ao-muted);line-height:1.55;font-size:.96rem}
.ao-service-label{display:block;margin:0 0 8px;font-weight:850;color:var(--ao-text)}
.aoplanning-booking select,.aoplanning-booking input,.aoplanning-booking textarea{width:100%;border:1px solid var(--ao-border);border-radius:12px;background:#fff;color:var(--ao-text);font:inherit;min-height:44px;padding:11px 12px}
.aoplanning-booking textarea{min-height:118px;resize:vertical}
.aoplanning-booking select:focus,.aoplanning-booking input:focus,.aoplanning-booking textarea:focus{outline:3px solid rgba(37,99,235,.15);border-color:var(--ao-blue)}
.ao-type-desc{margin:14px 0 18px;padding:13px 14px;border-radius:14px;background:#fff;border:1px solid var(--ao-border);color:var(--ao-muted);line-height:1.45;font-size:.93rem;min-height:74px}
.ao-event-meta{display:grid;gap:10px;margin-top:18px;color:var(--ao-muted);font-size:.94rem}
.ao-event-meta span{display:flex;align-items:center;gap:8px}.ao-event-meta span:before{content:"";width:8px;height:8px;border-radius:999px;background:#cbd5e1;flex:none}.ao-event-meta strong{color:var(--ao-text)}
.ao-month-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.ao-month-title{font-size:1.16rem;letter-spacing:-.015em;color:var(--ao-text)}
.ao-month-nav{width:38px;height:38px;border:1px solid var(--ao-border);border-radius:999px;background:#fff;color:var(--ao-text);font-size:1.5rem;line-height:1;cursor:pointer}.ao-month-nav:hover{background:#eff6ff;border-color:#bfdbfe;color:var(--ao-blue-dark)}
.ao-weekdays,.ao-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.ao-weekdays{margin-bottom:12px}.ao-weekdays span{text-align:center;color:var(--ao-muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.ao-day-cell{height:44px;border:1px solid transparent;border-radius:999px;display:flex;align-items:center;justify-content:center;font-weight:850;text-decoration:none;background:#fff;color:var(--ao-text);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}button.ao-day-cell{cursor:pointer}.ao-day-cell.is-empty{background:transparent}.ao-day-cell.is-unavailable{color:#cbd5e1;background:#fff}.ao-day-cell.is-full{background:var(--ao-red-soft);border-color:#fecaca;color:#dc2626}.ao-day-cell.is-available{background:#eff6ff;border-color:#bfdbfe;color:var(--ao-blue-dark)}.ao-day-cell.is-available:hover{background:#dbeafe;border-color:#93c5fd;transform:translateY(-1px)}.ao-day-cell.is-selected{background:var(--ao-blue);border-color:var(--ao-blue);color:#fff;box-shadow:0 10px 24px rgba(37,99,235,.22)}
.ao-month-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;color:var(--ao-muted);font-size:.86rem;font-weight:750}.ao-month-legend span{display:flex;align-items:center;gap:7px}.ao-month-legend i{width:11px;height:11px;border-radius:999px;border:1px solid var(--ao-border);background:#fff}.ao-month-legend .is-available{background:var(--ao-blue);border-color:var(--ao-blue)}.ao-month-legend .is-full{background:var(--ao-red);border-color:var(--ao-red)}
.ao-time-head{margin-bottom:12px}.ao-time-head span{display:block;margin-bottom:5px;color:var(--ao-muted);font-size:.82rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.ao-time-head strong{display:block;font-size:1.1rem;line-height:1.3;color:var(--ao-text)}.ao-time-head small{display:block;margin-top:6px;color:var(--ao-muted);font-size:.86rem;font-weight:750}.ao-time-helper{margin:0 0 14px;color:var(--ao-muted);font-size:.9rem;line-height:1.45}
.aoplanning-slots{display:grid;gap:9px;align-content:start;overflow:auto;padding:2px 5px 2px 0;max-height:350px;scrollbar-width:thin}.ao-time-button{width:100%;border:1px solid #bfdbfe;border-radius:12px;background:#fff;color:var(--ao-blue);padding:12px 14px;text-align:center;font:inherit;font-weight:900;cursor:pointer;display:block;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}.ao-time-button:hover{border-color:var(--ao-blue);background:#eff6ff;transform:translateY(-1px)}.ao-time-button.is-selected{background:var(--ao-blue);border-color:var(--ao-blue);color:#fff;box-shadow:0 10px 24px rgba(37,99,235,.2)}
.ao-time-footer{margin-top:auto;padding-top:16px;background:linear-gradient(180deg,rgba(255,255,255,.85),#fff)}.ao-selected-time-summary{margin:0 0 9px;color:var(--ao-muted);font-size:.88rem;font-weight:750;line-height:1.35}.ao-next-step,.ao-submit{width:100%;border:none;border-radius:12px;background:#0f172a;color:#fff;padding:13px 18px;font-weight:900;font-size:1rem;cursor:pointer;transition:opacity .15s ease,transform .15s ease,background .15s ease}.ao-next-step:hover,.ao-submit:hover{transform:translateY(-1px)}.ao-next-step:not(:disabled){background:var(--ao-blue)}.ao-next-step:disabled,.ao-submit:disabled{opacity:.46;cursor:not-allowed;transform:none}
.ao-details-panel{max-width:760px;margin:0 auto;padding:32px;border:1px solid var(--ao-border);border-radius:26px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.075)}.ao-details-head{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;margin-bottom:20px}.ao-details-head h3{margin:0 0 5px;font-size:1.55rem;color:var(--ao-text)}.ao-form-summary-text{margin:0;color:var(--ao-muted);font-weight:750}.ao-back-step{border:1px solid var(--ao-border);border-radius:999px;background:#fff;color:var(--ao-text);padding:9px 13px;font-weight:850;cursor:pointer}.ao-back-step:hover{background:#f8fafc}
.aoplanning-form label{display:block;margin:0 0 14px;font-weight:800;color:var(--ao-text)}.aoplanning-form input,.aoplanning-form textarea{margin-top:7px}.ao-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ao-info,.ao-privacy{margin:4px 0 14px;padding:13px 14px;border-radius:14px;background:var(--ao-soft);color:var(--ao-muted);font-size:.92rem;line-height:1.45}.aoplanning-response{margin-top:14px;padding:12px 14px;border-radius:14px;font-weight:750;display:none}.aoplanning-response.is-success,.aoplanning-response.is-error{display:block}.aoplanning-response.is-success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.aoplanning-response.is-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.ao-muted{color:var(--ao-muted);margin:0;font-size:.95rem;line-height:1.5}.ao-hp{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;width:0!important}
@media (max-width:980px){.ao-calendly-card{grid-template-columns:1fr;min-height:0}.ao-event-panel,.ao-date-panel{border-right:0;border-bottom:1px solid var(--ao-border)}.ao-time-panel{min-height:360px}.aoplanning-slots{max-height:none}.ao-time-footer{padding-top:18px}.ao-next-step{margin-top:0}}
@media (max-width:620px){.aoplanning-booking{margin:22px auto}.ao-event-panel,.ao-date-panel,.ao-time-panel,.ao-details-panel{padding:20px}.ao-days-grid,.ao-weekdays{gap:5px}.ao-day-cell{height:38px;font-size:.92rem}.ao-form-row,.ao-details-head{grid-template-columns:1fr}.ao-back-step{width:max-content}}


/* v1.2.4 — corrections UX */
.aoplanning-booking [hidden]{display:none!important}
.aoplanning-booking .ao-event-meta{display:none!important}
.aoplanning-booking .ao-event-panel h2{margin-bottom:14px}
.aoplanning-booking .ao-event-intro{margin-bottom:22px}
.aoplanning-booking .ao-type-desc{min-height:0}
.aoplanning-booking .ao-time-head{margin-bottom:12px}
.aoplanning-booking .ao-time-head strong,
.aoplanning-booking .ao-time-head small{display:none!important}
.aoplanning-booking .aoplanning-slots{max-height:430px}
.aoplanning-booking .ao-time-button{min-height:50px}


/* v1.2.5 — légende calendrier centrée */
.aoplanning-booking .ao-month-legend{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:18px;
    width:100%;
    margin:22px auto 0;
    text-align:center;
    flex-wrap:wrap;
}
.aoplanning-booking .ao-month-legend span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
}


/* v1.2.6 — fiabilisation des clics calendrier et horaires */
.aoplanning-booking .ao-day-cell,
.aoplanning-booking .ao-time-button,
.aoplanning-booking .ao-next-step,
.aoplanning-booking .ao-month-nav{
    pointer-events:auto!important;
}
.aoplanning-booking .ao-day-cell span,
.aoplanning-booking .ao-time-button span{
    pointer-events:none;
}
.aoplanning-booking.is-date-selected .ao-time-panel{
    display:flex!important;
}
.aoplanning-booking.is-date-unselected .ao-time-panel{
    display:none!important;
}
.aoplanning-booking .ao-month-slot-templates{
    display:none!important;
}


/* v1.2.7 — gestion directe des clics */
.aoplanning-booking .ao-day-cell{
    position:relative;
    z-index:2;
    cursor:default;
}
.aoplanning-booking .ao-day-cell.is-available{
    cursor:pointer!important;
}
.aoplanning-booking .ao-day-cell.is-available,
.aoplanning-booking .ao-time-button,
.aoplanning-booking .ao-next-step,
.aoplanning-booking .ao-back-step,
.aoplanning-booking .ao-month-nav{
    pointer-events:auto!important;
    touch-action:manipulation;
}
.aoplanning-booking .ao-day-cell span,
.aoplanning-booking .ao-time-button span{
    pointer-events:none!important;
}
.aoplanning-booking .ao-time-panel{
    position:relative;
    z-index:3;
}


/* v1.2.8 — fallback inline fonctionnel */
.aoplanning-booking .ao-day-cell.is-available,
.aoplanning-booking .ao-time-button,
.aoplanning-booking .ao-next-step,
.aoplanning-booking .ao-back-step,
.aoplanning-booking .ao-month-nav{
    cursor:pointer!important;
    pointer-events:auto!important;
}
.aoplanning-booking .ao-day-cell[disabled]{
    cursor:not-allowed!important;
}
.aoplanning-booking.is-date-selected .ao-time-panel{
    display:flex!important;
}
.aoplanning-booking.is-date-unselected .ao-time-panel{
    display:none!important;
}


/* v1.2.9 — panneau gauche conservé à l'étape 2 */
.aoplanning-booking .ao-calendly-card{
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
}
.aoplanning-booking.is-date-selected .ao-calendly-card{
    grid-template-columns:300px minmax(390px,1fr) minmax(260px,.72fr);
}
.aoplanning-booking .ao-right-panel{
    display:contents;
}
.aoplanning-booking .ao-details-panel{
    padding:30px;
    background:#fff;
    min-width:0;
}
.aoplanning-booking .ao-details-panel[hidden]{
    display:none!important;
}
.aoplanning-booking .ao-right-panel[hidden]{
    display:none!important;
}
.aoplanning-booking .ao-details-panel.is-active{
    display:block;
}
.aoplanning-booking .ao-details-panel .aoplanning-form{
    max-width:620px;
}
.aoplanning-booking .ao-details-panel .ao-form-head{
    margin-bottom:20px;
}
.aoplanning-booking .ao-details-panel .ao-form-row{
    gap:14px;
}
.aoplanning-booking .ao-details-panel .ao-submit{
    margin-top:8px;
}

/* Quand l'étape 2 est affichée, le formulaire prend la place de la partie calendrier. */
.aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active){
    grid-template-columns:300px minmax(0,1fr);
}
.aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active) .ao-details-panel{
    border-left:1px solid var(--ao-border);
}

/* Fallback si :has() n'est pas supporté. Le JS masque déjà les panneaux via hidden. */
@media (max-width:980px){
    .aoplanning-booking .ao-calendly-card,
    .aoplanning-booking.is-date-selected .ao-calendly-card,
    .aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active){
        grid-template-columns:1fr;
    }
    .aoplanning-booking .ao-details-panel{
        border-left:0;
        border-top:1px solid var(--ao-border);
    }
}


/* v1.2.10 — étape 2 mieux intégrée */
.aoplanning-booking .ao-details-panel{
    max-width:none!important;
    margin:0!important;
    padding:32px 34px!important;
    border:0!important;
    border-left:1px solid var(--ao-border)!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
    align-self:stretch;
}
.aoplanning-booking .ao-details-head{
    display:flex;
    align-items:flex-start;
    gap:18px;
    margin-bottom:24px;
}
.aoplanning-booking .ao-details-head > div{
    min-width:0;
}
.aoplanning-booking .ao-details-head h3{
    margin:0 0 8px;
    font-size:1.9rem;
    line-height:1.1;
    letter-spacing:-.03em;
}
.aoplanning-booking .ao-form-summary-text{
    font-size:1rem;
    line-height:1.45;
}
.aoplanning-booking .ao-details-panel .aoplanning-form{
    max-width:none!important;
    width:100%;
}
.aoplanning-booking .ao-details-panel .ao-form-row{
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.aoplanning-booking .ao-details-panel .ao-submit{
    max-width:360px;
}
.aoplanning-booking .ao-details-panel .ao-privacy,
.aoplanning-booking .ao-details-panel .ao-info{
    max-width:820px;
}
.aoplanning-booking .ao-details-panel .aoplanning-response{
    max-width:820px;
}
.aoplanning-booking .ao-details-panel .ao-back-step{
    flex:none;
    margin-top:2px;
}
.aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active) .ao-event-panel{
    background:linear-gradient(180deg,#fff,#f8fafc);
}
@media (max-width:980px){
    .aoplanning-booking .ao-details-panel{
        padding:24px 22px!important;
        border-left:0!important;
        border-top:1px solid var(--ao-border)!important;
    }
    .aoplanning-booking .ao-details-head{
        flex-direction:column;
        gap:14px;
    }
    .aoplanning-booking .ao-details-panel .ao-form-row{
        grid-template-columns:1fr;
    }
    .aoplanning-booking .ao-details-panel .ao-submit{
        max-width:none;
    }
}


/* v1.2.10 — étape 2 intégrée dans la même carte */
.aoplanning-booking .ao-calendly-card > .ao-details-panel{
    max-width:none!important;
    width:100%!important;
    margin:0!important;
    border:0!important;
    border-left:1px solid var(--ao-border)!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fff!important;
    padding:38px clamp(34px,5vw,64px)!important;
    align-self:stretch;
}
.aoplanning-booking .ao-calendly-card > .ao-details-panel .aoplanning-form{
    max-width:720px!important;
    margin:0!important;
}
.aoplanning-booking .ao-details-head{
    display:flex!important;
    align-items:flex-start!important;
    gap:18px!important;
    margin:0 0 28px!important;
}
.aoplanning-booking .ao-details-head > div{
    flex:1;
    min-width:0;
}
.aoplanning-booking .ao-details-head h3{
    margin:2px 0 10px!important;
    font-size:1.72rem!important;
    line-height:1.15!important;
    letter-spacing:-.03em;
}
.aoplanning-booking .ao-form-summary-text{
    margin:0!important;
    color:var(--ao-muted)!important;
}
.aoplanning-booking .ao-back-step{
    flex:none;
    margin-top:0;
}
.aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active){
    grid-template-columns:300px minmax(0,1fr)!important;
}
.aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active) .ao-event-panel{
    border-right:1px solid var(--ao-border);
}
.aoplanning-booking .ao-calendly-card:has(.ao-details-panel.is-active) .ao-right-panel{
    display:none!important;
}

/* Fallback sans :has() : la structure reste plate grâce au style direct du panneau formulaire. */
@media (max-width:980px){
    .aoplanning-booking .ao-calendly-card > .ao-details-panel{
        border-left:0!important;
        border-top:1px solid var(--ao-border)!important;
        padding:26px!important;
    }
    .aoplanning-booking .ao-details-head{
        flex-direction:column!important;
        gap:14px!important;
    }
}

/* v1.2.11 — fallback JS explicite pour l'étape 2 sans dépendre de :has(). */
.aoplanning-booking.is-step-2 .ao-calendly-card{
    grid-template-columns:300px minmax(0,1fr)!important;
}
.aoplanning-booking.is-step-2 .ao-right-panel{
    display:none!important;
}
.aoplanning-booking.is-step-2 .ao-details-panel{
    display:block!important;
}
@media (max-width:980px){
    .aoplanning-booking.is-step-2 .ao-calendly-card{
        grid-template-columns:1fr!important;
    }
}

/* v1.2.12 — écran de confirmation visible après envoi. */
.aoplanning-booking.is-step-3 .ao-calendly-card{
    grid-template-columns:300px minmax(0,1fr)!important;
}
.aoplanning-booking.is-step-3 .ao-right-panel{
    display:none!important;
}
.aoplanning-booking.is-step-3 .ao-confirm-panel{
    display:block!important;
}
.aoplanning-booking .ao-confirm-card{
    max-width:720px;
}
.aoplanning-booking .ao-confirm-card h3{
    margin:0 0 12px!important;
    font-size:1.9rem!important;
    line-height:1.1!important;
    letter-spacing:-.03em;
    color:var(--ao-text);
}
.aoplanning-booking .ao-confirm-message{
    margin:0 0 16px!important;
    color:#047857;
    font-weight:800;
    line-height:1.5;
}
.aoplanning-booking .ao-confirm-summary{
    margin:18px 0;
    padding:16px 18px;
    border:1px solid #a7f3d0;
    border-radius:16px;
    background:#ecfdf5;
}
.aoplanning-booking .ao-confirm-summary strong{
    display:block;
    margin-bottom:6px;
    color:#065f46;
}
.aoplanning-booking .ao-confirm-summary p{
    margin:0!important;
    color:#047857;
    font-weight:750;
    line-height:1.45;
}
.aoplanning-booking .ao-confirm-note{
    margin:0 0 22px!important;
    color:var(--ao-muted);
    line-height:1.55;
}
.aoplanning-booking .ao-new-booking{
    border:1px solid var(--ao-border);
    border-radius:12px;
    background:#fff;
    color:var(--ao-text);
    padding:12px 16px;
    font:inherit;
    font-weight:900;
    cursor:pointer;
}
.aoplanning-booking .ao-new-booking:hover{
    background:#f8fafc;
}
@media (max-width:980px){
    .aoplanning-booking.is-step-3 .ao-calendly-card{
        grid-template-columns:1fr!important;
    }
}

.aoplanning-booking.is-step-3{
    max-width:1120px!important;
}


/* v1.2.13 — correction largeur des jours dans la grille calendrier.
   Les boutons ne s'étirent plus jusqu'à la limite du panneau calendrier,
   ce qui évite que le dernier jour visible soit rogné par le panneau horaires. */
.aoplanning-booking .ao-weekdays,
.aoplanning-booking .ao-days-grid{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}
.aoplanning-booking .ao-day-cell{
    width:44px!important;
    min-width:0!important;
    max-width:100%!important;
    padding:0!important;
    justify-self:center!important;
}
.aoplanning-booking .ao-date-panel{
    min-width:0!important;
    overflow:visible!important;
}
@media (max-width:620px){
    .aoplanning-booking .ao-day-cell{
        width:38px!important;
    }
}


/* v1.2.14 — confirmation orientée client. */
.aoplanning-booking .ao-left-confirm-note{
    display:none;
    margin-top:16px;
    padding:14px 15px;
    border:1px solid #bfdbfe;
    border-radius:16px;
    background:#eff6ff;
    color:var(--ao-blue-dark);
    line-height:1.45;
}
.aoplanning-booking .ao-left-confirm-note strong{
    display:block;
    margin-bottom:5px;
    color:var(--ao-text);
    font-weight:900;
}
.aoplanning-booking .ao-left-confirm-note span{
    display:block;
    color:#334155;
    font-size:.93rem;
}
.aoplanning-booking.is-step-3 .ao-service-label,
.aoplanning-booking.is-step-3 .aoplanning-type,
.aoplanning-booking.is-step-3 .ao-type-desc{
    display:none!important;
}
.aoplanning-booking.is-step-3 .ao-left-confirm-note{
    display:block!important;
}
.aoplanning-booking .ao-confirm-card{
    max-width:760px;
}
.aoplanning-booking .ao-confirm-message{
    color:var(--ao-text);
    font-size:1.02rem;
}
.aoplanning-booking .ao-confirm-steps{
    margin:18px 0;
    padding:18px;
    border:1px solid var(--ao-border);
    border-radius:18px;
    background:#f8fafc;
}
.aoplanning-booking .ao-confirm-steps > strong{
    display:block;
    margin-bottom:12px;
    color:var(--ao-text);
    font-weight:900;
}
.aoplanning-booking .ao-confirm-steps ol{
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    gap:10px;
    counter-reset:ao-confirm-step;
}
.aoplanning-booking .ao-confirm-steps li{
    position:relative;
    min-height:34px;
    padding:7px 0 7px 46px;
    color:#475569;
    line-height:1.4;
    counter-increment:ao-confirm-step;
}
.aoplanning-booking .ao-confirm-steps li:before{
    content:counter(ao-confirm-step);
    position:absolute;
    left:0;
    top:2px;
    width:32px;
    height:32px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#dbeafe;
    color:var(--ao-blue-dark);
    font-weight:900;
}
.aoplanning-booking .ao-new-booking{
    background:var(--ao-blue)!important;
    border-color:var(--ao-blue)!important;
    color:#fff!important;
}
.aoplanning-booking .ao-new-booking:hover{
    background:var(--ao-blue-dark)!important;
}

/* v1.2.17 — hauteur stable du panneau et légende collée en bas.
   Le calendrier garde sa légende en bas du panneau, et la liste des créneaux
   défile dans une zone interne sans agrandir toute la carte. */
@media (min-width:981px){
    .aoplanning-booking.is-step-1 .ao-calendly-card{
        height:610px!important;
        min-height:610px!important;
        align-items:stretch!important;
    }

    .aoplanning-booking.is-step-1 .ao-event-panel,
    .aoplanning-booking.is-step-1 .ao-date-panel,
    .aoplanning-booking.is-step-1 .ao-time-panel{
        min-height:0!important;
    }

    .aoplanning-booking.is-step-1 .ao-date-panel{
        display:flex!important;
        flex-direction:column!important;
    }

    .aoplanning-booking.is-step-1 .aoplanning-month{
        flex:0 0 auto!important;
    }

    .aoplanning-booking.is-step-1 .ao-month-legend{
        margin-top:auto!important;
        padding-top:22px!important;
        padding-bottom:4px!important;
    }

    .aoplanning-booking.is-step-1 .ao-time-panel{
        overflow:hidden!important;
    }

    .aoplanning-booking.is-step-1 .ao-time-head{
        flex:0 0 auto!important;
        margin-bottom:10px!important;
    }

    .aoplanning-booking.is-step-1 .ao-time-helper{
        flex:0 0 auto!important;
        margin-bottom:10px!important;
    }

    .aoplanning-booking.is-step-1 .aoplanning-slots{
        flex:1 1 auto!important;
        min-height:0!important;
        max-height:none!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        gap:8px!important;
        padding:2px 6px 8px 0!important;
        align-content:start!important;
    }

    .aoplanning-booking.is-step-1 .ao-time-button{
        min-height:44px!important;
        padding:9px 12px!important;
        line-height:1.18!important;
    }

    .aoplanning-booking.is-step-1 .ao-time-footer{
        flex:0 0 auto!important;
        margin-top:0!important;
        padding-top:14px!important;
    }
}


/* v1.2.20 — ancre #reservation plus fiable avec les headers sticky. */
.aoplanning-booking#reservation{
    scroll-margin-top:120px;
}
@media (max-width:782px){
    .aoplanning-booking#reservation{
        scroll-margin-top:92px;
    }
}


/* v1.2.22 — horaires visibles dès la première disponibilité */
.aoplanning-booking.is-date-selected .ao-time-panel{
    display:flex!important;
}
.aoplanning-booking .ao-time-panel:not([hidden]){
    display:flex!important;
}
.aoplanning-booking .ao-time-head span,
.aoplanning-booking .ao-time-helper{
    display:block!important;
    visibility:visible!important;
}

.aoplanning-booking.is-service-locked .aoplanning-type {
    cursor: default;
}

.aoplanning-booking.is-service-locked .aoplanning-type:disabled {
    opacity: 1;
    -webkit-text-fill-color: currentColor;
}
