/* RecensLabs — book a call (JS-free slot calendar) */

.booking-section{padding:20px 0 64px;}
.booking-success{background:rgba(62,217,160,0.14); border:1px solid rgba(62,217,160,0.5); color:#1f9d72; border-radius:12px; padding:16px 18px; font-size:14.5px; line-height:1.5; margin-bottom:24px;}
.booking-empty{background:var(--white); border:1px solid var(--paper-dim); border-radius:16px; padding:28px; font-size:15px; color:var(--slate); line-height:1.6;}
.booking-empty a{color:var(--indigo); font-weight:600;}

.booking-grid{display:grid; grid-template-columns:210px 1fr; gap:24px; align-items:start;}

/* Day rail */
.day-rail{display:flex; flex-direction:column; gap:8px; position:sticky; top:96px;}
.rail-label{font-family:var(--font-mono); font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--slate-light); margin-bottom:4px;}
.day-pill{display:flex; justify-content:space-between; align-items:center; gap:10px; background:var(--white); border:1px solid var(--paper-dim); border-radius:100px; padding:11px 18px; transition:border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;}
.day-pill:hover{border-color:var(--indigo-soft); transform:translateX(2px);}
.day-pill.active{background:var(--ink); border-color:var(--ink); color:var(--paper);}
.day-dow{font-family:var(--font-mono); font-size:12.5px; font-weight:700;}
.day-date{font-size:13px; color:var(--slate);}
.day-pill.active .day-date{color:var(--paper-dim);}

/* Form card */
.booking-form{background:var(--white); border:1px solid var(--paper-dim); border-radius:20px; padding:32px; box-shadow:0 24px 60px -40px rgba(21,19,31,0.4);}
.booking-day-title{font-family:var(--font-display); font-size:20px; font-weight:600; margin-bottom:18px;}
.booking-slot-error{margin-bottom:14px;}

/* Slot grid — pure-CSS radio selection */
.slot-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(84px,1fr)); gap:10px; margin-bottom:26px;}
.slot-input{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;}
.slot{display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:14px; padding:12px 0; border:1px solid var(--paper-dim); border-radius:10px; background:var(--paper); color:var(--ink); cursor:pointer; transition:border-color 0.14s ease, background 0.14s ease, color 0.14s ease;}
.slot:hover{border-color:var(--indigo-soft);}
.slot-input:checked + .slot{background:var(--indigo); border-color:var(--indigo); color:var(--white); font-weight:700;}
.slot-input:focus-visible + .slot{outline:2px solid var(--indigo); outline-offset:2px;}
.slot-none{grid-column:1 / -1; color:var(--slate); font-size:14px;}

/* Booker details */
.booking-fields{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:22px;}
.booking-fields .field{display:flex; flex-direction:column; gap:7px;}
.booking-fields .field.full{grid-column:1 / -1;}
.booking-fields label{font-family:var(--font-mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.03em; color:var(--slate);}
.booking-fields label .opt{text-transform:none; color:var(--slate-light);}
.booking-fields input, .booking-fields textarea{font-family:var(--font-body); font-size:14.5px; padding:12px 14px; border:1px solid var(--paper-dim); border-radius:10px; background:var(--paper); outline:none; color:var(--ink); width:100%; transition:border-color 0.15s ease, background 0.15s ease;}
.booking-fields input:focus, .booking-fields textarea:focus{border-color:var(--indigo); background:var(--white);}
.booking-fields textarea{resize:vertical; line-height:1.5;}
.booking-submit{width:100%;}
.field-error{font-family:var(--font-mono); font-size:11.5px; color:#c0392b;}

@media(max-width:760px){
  .booking-grid{grid-template-columns:1fr;}
  .day-rail{position:static; flex-direction:row; flex-wrap:wrap;}
  .booking-fields{grid-template-columns:1fr;}
}
