/* Transilix Booking — Calendar widget styles (pixel-perfect maquette) */

.demo-section{background:linear-gradient(135deg,var(--blue,#0B2A4A) 0%,var(--blue2,#163d6a) 100%);padding:72px 52px}
.demo-inner{display:grid;grid-template-columns:1fr 1.35fr;gap:52px;align-items:start}
.demo-left h2{font-family:'Montserrat',sans-serif;font-size:28px;font-weight:800;color:#fff;margin:0 0 12px;line-height:1.2}
.demo-left p{font-size:13px;color:rgba(255,255,255,.7);line-height:1.75;margin:0 0 20px}
.demo-perks{list-style:none;display:flex;flex-direction:column;gap:10px;padding:0;margin:0}
.demo-perks li{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(255,255,255,.82)}
.demo-perks li::before{content:'✓';background:var(--orange,#F57C00);color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}

.cal-card{background:#fff;border-radius:16px;padding:24px}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.cal-header h3{font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;color:var(--blue,#0B2A4A);margin:0}
.cal-nav{display:flex;gap:6px}
.cal-nav button{width:30px;height:30px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;color:var(--blue,#0B2A4A)}
.cal-nav button:hover{background:#F4F5F7}
.cal-dh{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.cal-dn{text-align:center;font-size:10px;font-weight:700;color:#888;padding:4px 0;font-family:'Montserrat',sans-serif}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-day{width:100%;aspect-ratio:1;border-radius:7px;border:none;background:transparent;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;position:relative;font-family:'Poppins',sans-serif}
.cal-day:hover:not(.empty):not(.past):not(.taken){background:rgba(11,42,74,.08)}
.cal-day.past,.cal-day.taken{color:#ccc;cursor:default}
.cal-day.empty{cursor:default}
.cal-day.available{color:var(--blue,#0B2A4A);font-weight:600}
.cal-day.available::after{content:'';width:4px;height:4px;border-radius:50%;background:var(--orange,#F57C00);position:absolute;bottom:3px;left:50%;transform:translateX(-50%)}
.cal-day.selected{background:var(--orange,#F57C00)!important;color:#fff!important;font-weight:700}
.cal-day.selected::after{background:#fff!important}

.time-slots{margin-top:14px;display:none}
.time-slots.show{display:block}
.time-slots h4{font-family:'Montserrat',sans-serif;font-weight:700;font-size:12px;color:var(--blue,#0B2A4A);margin:0 0 8px}
.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.slot{border:1.5px solid #ddd;border-radius:7px;padding:7px 5px;font-size:11px;font-weight:600;color:var(--blue,#0B2A4A);text-align:center;cursor:pointer;transition:all .15s;font-family:'Montserrat',sans-serif;background:#fff}
.slot:hover:not(.unavail){border-color:var(--orange,#F57C00);color:var(--orange,#F57C00)}
.slot.sel-slot{background:var(--orange,#F57C00);border-color:var(--orange,#F57C00);color:#fff}
.slot.unavail{color:#ccc;border-color:#eee;cursor:not-allowed;background:#fafafa}

.booking-form{margin-top:14px;display:none}
.booking-form.show{display:block}
.bf-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.bf-input{width:100%;border:1.5px solid #ddd;border-radius:7px;padding:9px 11px;font-size:12px;font-family:'Poppins',sans-serif;outline:none;color:#1a1a2e}
.bf-input:focus{border-color:var(--orange,#F57C00)}
.bf-submit{width:100%;background:var(--orange,#F57C00);color:#fff;border:none;padding:12px;border-radius:8px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;cursor:pointer;margin-top:4px}
.bf-submit:disabled{opacity:.65;cursor:wait}
.booking-feedback{margin-top:10px;font-size:12px;display:none}
.booking-feedback.err{display:block;color:#b91c1c;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:8px 10px}

.booking-confirm{display:none;text-align:center;padding:24px 10px}
.booking-confirm.show{display:block}
.bc-check{width:54px;height:54px;background:rgba(11,42,74,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:24px}
.booking-confirm h4{font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;color:var(--blue,#0B2A4A);margin:0 0 6px}
.booking-confirm p{font-size:12px;color:#666;line-height:1.65;margin:0}

@media (max-width:991px){
  .demo-section{padding:56px 28px}
  .demo-inner{grid-template-columns:1fr;gap:28px}
}

/* ===== Override du style <button> global du kit Elementor =====
   Le Theme Style applique `button{background:orange}` à tous les boutons.
   Les jours et flèches du calendrier ne doivent PAS être orange pleins. */
.cal-card button.cal-day{background-color:transparent;color:var(--blue,#0B2A4A);font-family:'Poppins',sans-serif;font-weight:500}
.cal-card button.cal-day.available{color:var(--blue,#0B2A4A);font-weight:600}
.cal-card button.cal-day.past,.cal-card button.cal-day.taken{color:#ccc}
.cal-card button.cal-day.empty{background-color:transparent}
.cal-card button.cal-day.selected{background-color:var(--orange,#F57C00);color:#fff;font-weight:700}
.cal-card .cal-nav button{background-color:#fff;color:var(--blue,#0B2A4A);font-family:'Montserrat',sans-serif;font-weight:400}
.cal-card .cal-nav button:hover{background-color:var(--gray-light,#F4F5F7)}

/* ===== Mode Brevo (iframe) & colonne gauche masquée ===== */
.demo-inner.tx-no-left{grid-template-columns:1fr}
.tx-brevo-embed{width:100%}
.tx-brevo-embed iframe{display:block;width:100%;height:720px;border:0;border-radius:16px;background:#fff;box-shadow:0 8px 30px rgba(0,0,0,.12)}
@media(max-width:991px){ .tx-brevo-embed iframe{height:760px} }

/* Décalage d'ancre : le calendrier s'arrête sous le header sticky (#demo-booking) */
.tx-booking{scroll-margin-top:84px}
