/* =====================================================================
   Jack's Bootcamp — Modale de réservation (global)
   ===================================================================== */
:root{
  --jbt-org:#F39237; --jbt-red:#AE1F00; --jbt-crm:#F5ECE0; --jbt-g1:#8A7C6D; --jbt-g2:#B7A99A;
  --jbt-brd:#2A2018; --jbt-blk:#0E0D0C; --jbt-ant:#1A1715; --jbt-brs:#241B15; --jbt-pan:#141210;
}
.jbt-modal{ position:fixed; inset:0; z-index:100000; background:rgba(8,7,6,.92); display:none; align-items:center; justify-content:center; padding:20px; font-family:'Barlow',sans-serif; }
.jbt-modal.is-open{ display:flex; }
.jbt-modal *{ box-sizing:border-box; }
.jbt-modal-box{ position:relative; background:var(--jbt-ant); border:1px solid var(--jbt-brd); border-radius:16px; padding:30px 30px 28px; max-width:560px; width:100%; max-height:92vh; overflow-y:auto; overflow-x:hidden; text-align:center; }
.jbt-modal-close{ position:absolute; top:12px; right:14px; background:none; border:0; color:var(--jbt-g2); font-size:24px; cursor:pointer; line-height:1; }
.jbt-modal-close:hover{ color:var(--jbt-org); }
.jbt-modal .jbt-eyebrow{ display:inline-flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-style:italic; color:var(--jbt-g2); font-size:16px; margin:0 0 6px; }
.jbt-modal .jbt-eyebrow::before{ content:""; width:28px; height:1px; background:var(--jbt-org); margin-right:10px; }
.jbt-modal-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-size:24px; margin:0 0 4px; line-height:1.1; }
.jbt-modal-price{ color:var(--jbt-org); font-family:'Oswald',sans-serif; font-size:18px; font-weight:600; margin:0 0 18px; }

/* ----- Calendrier ----- */
.jbt-mcal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.jbt-mcal-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-size:16px; letter-spacing:.5px; }
.jbt-mcal-prev,.jbt-mcal-next{ background:var(--jbt-brs); border:1px solid var(--jbt-brd); color:var(--jbt-crm); width:34px; height:34px; border-radius:8px; cursor:pointer; font-size:16px; line-height:1; display:flex; align-items:center; justify-content:center; }
.jbt-mcal-prev:hover,.jbt-mcal-next:hover{ border-color:var(--jbt-org); color:var(--jbt-org); }
.jbt-mcal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; width:100%; }
.jbt-mcal-dow{ font-family:'Oswald',sans-serif; font-size:11px; text-transform:uppercase; color:var(--jbt-g1); padding:4px 0; min-width:0; }
.jbt-mcal-cell{ aspect-ratio:1; min-width:0; width:100%; border:1px solid var(--jbt-brd); background:var(--jbt-pan); color:var(--jbt-g1); border-radius:8px; font-family:'Oswald',sans-serif; font-size:clamp(12px,3.5vw,15px); cursor:default; display:flex; align-items:center; justify-content:center; padding:0; }
.jbt-mcal-empty{ border:0; background:none; }
.jbt-mcal-cell.is-past{ opacity:.3; }
.jbt-mcal-cell.is-avail{ background:rgba(243,146,55,.14); border-color:var(--jbt-org); color:var(--jbt-crm); cursor:pointer; font-weight:600; }
.jbt-mcal-cell.is-avail:hover{ background:var(--jbt-org); color:#fff; }

/* ----- Créneaux ----- */
.jbt-slotpick{ margin-top:18px; text-align:left; }
.jbt-slotpick-empty{ color:var(--jbt-g1); font-size:14px; text-align:center; }
.jbt-slotpick-date{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-size:14px; margin:0 0 10px; }
.jbt-slotpick-list{ display:flex; flex-wrap:wrap; gap:8px; }
.jbt-slotbtn{ flex:1 1 calc(50% - 8px); background:var(--jbt-pan); border:1px solid var(--jbt-brd); border-radius:10px; padding:12px; cursor:pointer; text-align:left; transition:.2s; }
.jbt-slotbtn:hover{ border-color:var(--jbt-org); }
.jbt-slotbtn-time{ display:block; font-family:'Oswald',sans-serif; color:var(--jbt-crm); font-size:15px; }
.jbt-slotbtn-rem{ display:block; color:var(--jbt-org); font-size:12px; margin-top:2px; }

/* ----- Formulaire ----- */
.jbt-step-form{ text-align:left; }
.jbt-resume{ background:var(--jbt-pan); border:1px solid var(--jbt-brd); border-radius:10px; padding:12px 14px; color:var(--jbt-g2); font-size:14px; margin-bottom:16px; line-height:1.5; }
.jbt-resume strong{ color:var(--jbt-crm); font-family:'Oswald',sans-serif; text-transform:uppercase; }
.jbt-modal input.jbt-fld,
.jbt-modal textarea.jbt-fld{ width:100%; background:var(--jbt-blk)!important; border:1px solid var(--jbt-brd)!important; border-radius:8px!important; color:var(--jbt-crm)!important; padding:11px 13px!important; font-size:14px!important; font-family:'Barlow',sans-serif!important; box-shadow:none!important; }
.jbt-modal input.jbt-fld:focus,
.jbt-modal textarea.jbt-fld:focus{ border-color:var(--jbt-org)!important; outline:none!important; box-shadow:0 0 0 3px rgba(243,146,55,.15)!important; }
.jbt-modal input.jbt-fld::placeholder,
.jbt-modal textarea.jbt-fld::placeholder{ color:var(--jbt-g1)!important; opacity:1; }
.jbt-fld-lbl{ display:block; font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:12px; color:var(--jbt-g2); margin-bottom:5px; }
.jbt-step-form p{ margin:0 0 12px; }
.jbt-form-err{ color:#ff8a6a; font-size:13px; margin:0 0 10px; }
.jbt-form-actions{ display:flex; gap:10px; align-items:center; margin-top:4px; }
.jbt-btn-back{ background:none; border:0; color:var(--jbt-g2); cursor:pointer; font-size:14px; }
.jbt-btn-back:hover{ color:var(--jbt-org); }
.jbt-btn{ flex:1; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:1px; font-size:13px; font-weight:600; color:#fff; background:linear-gradient(95deg,var(--jbt-org),var(--jbt-red)); border:0; border-radius:9px; padding:14px 22px; cursor:pointer; }
.jbt-btn:hover{ filter:brightness(1.06); }
.jbt-pay-note{ color:var(--jbt-g1); font-size:12px; text-align:center; margin:14px 0 0; font-style:italic; }

/* ----- Confirmation ----- */
.jbt-step-done{ text-align:center; padding:14px 0; }
.jbt-done-ico .ti{ font-size:54px; color:var(--jbt-org); }
.jbt-step-done h4{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--jbt-crm); font-size:22px; margin:10px 0 8px; }
.jbt-step-done p{ color:var(--jbt-g2); font-size:14px; margin:0 0 18px; }

@media(max-width:560px){
  .jbt-modal{ padding:10px; }
  .jbt-modal-box{ padding:22px 14px; border-radius:14px; max-height:94vh; }
  .jbt-slotbtn{ flex:1 1 100%; }
  .jbt-mcal-grid{ gap:3px; }
  .jbt-modal-title{ font-size:21px; }
}

/* ============ Choix du paiement (Total / Acompte) ============ */
.jbt-pay-choice{ text-align:left; margin:6px 0 4px; }
.jbt-pay-title{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.5px; color:var(--jbt-crm); font-size:13px; margin:0 0 10px; }
.jbt-payopt{ display:flex; align-items:center; gap:12px; background:var(--jbt-pan); border:1px solid var(--jbt-brd); border-radius:10px; padding:12px 14px; margin-bottom:10px; cursor:pointer; transition:.18s; }
.jbt-payopt:hover{ border-color:var(--jbt-org); }
.jbt-payopt.is-active{ border-color:var(--jbt-org); background:rgba(243,146,55,.10); }
.jbt-payopt input{ accent-color:var(--jbt-org); width:18px; height:18px; flex:0 0 auto; }
.jbt-payopt-main{ flex:1; font-family:'Barlow',sans-serif; color:var(--jbt-crm); font-size:14px; }
.jbt-payopt-sub{ color:var(--jbt-g1); font-size:12px; }
.jbt-payopt-amount{ font-family:'Oswald',sans-serif; font-weight:600; color:var(--jbt-org); font-size:17px; white-space:nowrap; }
.jbt-pay-secure{ display:flex; align-items:center; gap:7px; color:var(--jbt-g1); font-size:12px; margin:4px 0 2px; }
.jbt-pay-secure .ti{ color:var(--jbt-org); }
.jbt-step-done .ti-loader{ animation:jbt-spin 1s linear infinite; }
@keyframes jbt-spin{ to{ transform:rotate(360deg); } }
