/* Réservation de rendez-vous : carte intervenant, calendrier du mois, créneaux. */
.dix-booking{
    --dix-bk-radius:14px;
    max-width:1060px;margin:1.5rem auto;padding:clamp(1.1rem,3vw,2rem);
    border:1px solid var(--color-border,#e4e4e7);border-radius:18px;
    background:var(--color-bg,#fff);color:var(--color-text,#18181b);
}
.dix-booking__layout{display:grid;grid-template-columns:minmax(200px,1fr) minmax(290px,1.3fr) minmax(170px,.8fr);gap:clamp(1rem,2.5vw,2rem);align-items:start}
.dix-booking__kicker{font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;color:var(--color-primary,#a72836);font-weight:700;margin:0 0 .35rem}
.dix-booking__title{line-height:1.15;margin:0 0 1rem;font-size:clamp(1.3rem,2.2vw,1.7rem)}

/* --- Intervenant --- */
.dix-booking__host{border-right:1px solid var(--color-border,#e4e4e7);padding-right:clamp(.8rem,2vw,1.6rem)}
.dix-booking__avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;display:block;margin:0 0 .9rem;border:2px solid var(--color-border,#e4e4e7)}
.dix-booking__host-name{margin:0;font-size:1.22rem;font-weight:700;line-height:1.25}
.dix-booking__host-role{margin:.15rem 0 .6rem;color:var(--color-text-secondary,#71717a);font-size:.92rem}
.dix-booking__host-bio{margin:0 0 1rem;font-size:.92rem;line-height:1.55;color:var(--color-text-secondary,#52525b)}
.dix-booking__facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;color:var(--color-text-secondary,#52525b)}
.dix-booking__facts li{display:flex;gap:.5rem;align-items:center}

/* --- Calendrier --- */
.dix-booking__cal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}
.dix-booking__cal-head strong{text-transform:capitalize;font-size:1.02rem}
.dix-booking__nav{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:1.3rem;line-height:1;
    border:1px solid var(--color-border,#d4d4d8);border-radius:9px;background:transparent;color:inherit;cursor:pointer}
.dix-booking__nav:hover:not(:disabled){border-color:var(--color-primary,#a72836);color:var(--color-primary,#a72836)}
.dix-booking__nav:disabled{opacity:.3;cursor:default}
.dix-booking__dow,.dix-booking__days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.dix-booking__dow{margin-bottom:4px;font-size:.72rem;text-align:center;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary,#a1a1aa)}
.dix-booking__day{
    aspect-ratio:1;min-height:40px;display:flex;align-items:center;justify-content:center;
    border:1px solid transparent;border-radius:9px;background:var(--color-bg-tertiary,#f4f4f5);
    color:inherit;font:inherit;font-weight:600;cursor:pointer;
}
.dix-booking__day:hover:not(:disabled){border-color:var(--color-primary,#a72836);color:var(--color-primary,#a72836)}
.dix-booking__day:disabled{background:transparent;color:var(--color-text-secondary,#c4c4c8);font-weight:400;cursor:default}
.dix-booking__day.is-empty{background:transparent;border:0}
.dix-booking__day.is-selected{background:var(--color-primary,#a72836);border-color:var(--color-primary,#a72836);color:#fff}

/* --- Créneaux --- */
.dix-booking__day-label{margin:0 0 .7rem;font-weight:700;text-transform:capitalize;font-size:.98rem}
.dix-booking__slots{display:flex;flex-direction:column;gap:.45rem;max-height:340px;overflow-y:auto}
.dix-booking__slot{
    padding:.68rem .9rem;border:1px solid var(--color-border,#d4d4d8);border-radius:9px;
    background:transparent;color:inherit;font:inherit;font-weight:650;cursor:pointer;text-align:center;
}
.dix-booking__slot:hover{border-color:var(--color-primary,#a72836);color:var(--color-primary,#a72836)}
.dix-booking__slot.is-selected{background:var(--color-primary,#a72836);border-color:var(--color-primary,#a72836);color:#fff}
.dix-booking__empty{margin:0;font-size:.9rem;color:var(--color-text-secondary,#a1a1aa)}

/* --- Coordonnées --- */
.dix-booking form{margin-top:clamp(1.2rem,3vw,2rem)}
.dix-booking fieldset{border:0;padding:0;margin:0;min-width:0;border-top:1px solid var(--color-border,#e4e4e7);padding-top:1.4rem}
.dix-booking legend{font-weight:700;font-size:1.1rem;padding:0}
.dix-booking__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.3rem 1rem}
.dix-booking label{display:block;font-weight:600;margin-top:.9rem;font-size:.92rem}
.dix-booking input{display:block;width:100%;box-sizing:border-box;padding:.72rem;margin-top:.35rem;
    border:1px solid var(--color-border,#d4d4d8);border-radius:9px;background:var(--color-bg,#fff);color:inherit;font:inherit;font-weight:400}
.dix-booking__legal{font-size:.84rem;color:var(--color-text-secondary,#71717a);margin:1rem 0 0}
.dix-booking__cta{margin-top:.9rem;padding:.8rem 1.2rem;border:1px solid var(--color-primary,#a72836);border-radius:9px;
    background:var(--color-primary,#a72836);color:#fff;font:inherit;font-weight:650;cursor:pointer}
.dix-booking__cta:hover{filter:brightness(1.08)}
.dix-booking__cta:disabled{opacity:.55;cursor:wait}
#dix-booking-status{min-height:1.6em;margin:.9rem 0 0;font-size:.92rem}
.dix-booking-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.dix-booking [hidden]{display:none!important}
.dix-booking :focus-visible{outline:3px solid var(--color-primary,#a72836);outline-offset:2px}

[data-theme="dark"] .dix-booking__day{background:var(--color-bg-tertiary,#27272a)}
[data-theme="dark"] .dix-booking__day:disabled{background:transparent;color:#52525b}

@media(max-width:980px){
    .dix-booking__layout{grid-template-columns:1fr 1fr}
    .dix-booking__host{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--color-border,#e4e4e7);padding:0 0 1.1rem}
    .dix-booking__avatar{width:72px;height:72px}
}
@media(max-width:640px){
    .dix-booking{padding:1.1rem;margin:1rem 0;border-radius:12px}
    .dix-booking__layout{grid-template-columns:1fr}
    .dix-booking__slots{max-height:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}
    .dix-booking__day{min-height:44px}
    .dix-booking__cta{width:100%;min-height:46px}
}

.dix-booking__preview{margin:0 0 1.1rem;padding:.7rem .9rem;border-radius:9px;font-size:.88rem;
    background:color-mix(in srgb,var(--color-warning,#f59e0b) 14%,transparent);
    border:1px solid color-mix(in srgb,var(--color-warning,#f59e0b) 45%,transparent)}
