
/* ESLCAMP Booking 0.2.0 */
.ec-booking-page-v2{padding-bottom:70px}.ec-booking-hero{padding-top:50px!important;padding-bottom:25px!important}.ec-booking-hero h1{font-size:clamp(31px,4vw,50px);color:#171159;margin:6px 0 10px}.ec-booking-hero p{color:#6d7384;line-height:1.9}
.ec-booking-layout-v2{display:grid;grid-template-columns:290px minmax(0,1fr);gap:24px;align-items:start}.ec-booking-teacher-card{position:sticky;top:24px;background:#fff;border:1px solid #e5e8f0;border-radius:22px;padding:20px;box-shadow:0 15px 38px rgba(24,31,67,.07)}.ec-booking-teacher-card>img{width:82px;height:82px;object-fit:cover;border-radius:22px;margin-bottom:14px}.ec-booking-teacher-card span{font-size:11px;color:#7c8292;font-weight:800}.ec-booking-teacher-card h2{font-size:22px;color:#171159;margin:4px 0}.ec-booking-teacher-card p{font-size:12px;color:#777d8d;line-height:1.8}.ec-booking-teacher-card dl{margin:18px 0;border-top:1px solid #eceef4}.ec-booking-teacher-card dl div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #eceef4}.ec-booking-teacher-card dt{font-size:11px;color:#7d8291}.ec-booking-teacher-card dd{margin:0;font-weight:850;color:#171159;text-align:left}.ec-booking-teacher-card>a{font-size:12px;font-weight:800}
.ec-booking-main-v2{min-width:0}.ec-booking-form-v2,.ec-transaction-login{background:#fff;border:1px solid #e5e8f0;border-radius:22px;padding:24px;box-shadow:0 15px 38px rgba(24,31,67,.05)}.ec-booking-alert{padding:12px 14px;border-radius:12px;background:#fff2ec;border:1px solid #f1c8b8;color:#8b402b;margin-bottom:14px}.ec-booking-language{max-width:330px;margin-bottom:22px}.ec-booking-language label,.ec-booking-note-field{display:flex;flex-direction:column;gap:7px}.ec-booking-language span,.ec-booking-note-field>span{font-size:12px;font-weight:800;color:#545a6c}.ec-booking-language select,.ec-booking-note-field textarea{border:1px solid #dfe3ec;border-radius:12px;padding:11px 12px;background:#fff;font-family:inherit}
.ec-slot-picker{border-top:1px solid #eceef4;padding-top:20px}.ec-slot-picker-head{display:flex;justify-content:space-between;gap:15px;align-items:end;margin-bottom:15px}.ec-slot-picker-head h3{margin:3px 0;color:#171159}.ec-slot-picker-head>small{color:#858b9a}.ec-slot-day{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px;padding:14px 0;border-bottom:1px solid #eef0f5}.ec-slot-date{display:flex;flex-direction:column;gap:3px}.ec-slot-date strong{font-size:13px;color:#33394c}.ec-slot-date small{font-size:10px;color:#9297a5}.ec-slot-times{display:flex;gap:8px;flex-wrap:wrap}.ec-slot-times label{cursor:pointer}.ec-slot-times input{position:absolute;opacity:0;pointer-events:none}.ec-slot-times span{display:block;padding:9px 12px;min-width:65px;text-align:center;border:1px solid #dfe3ec;border-radius:11px;background:#fafbfc;font-weight:800;color:#31374b;transition:.16s ease}.ec-slot-times input:checked+span{background:#171159;color:#fff;border-color:#171159;box-shadow:0 5px 14px rgba(23,17,89,.2)}.ec-slot-times label:hover span{border-color:#aaaed0}
.ec-booking-note-field{margin-top:22px}.ec-booking-submit-row{margin-top:18px;padding-top:17px;border-top:1px solid #eceef4;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.ec-booking-submit-row>div{display:flex;flex-direction:column}.ec-booking-submit-row small{font-size:10px;color:#818797}.ec-booking-submit-row .ec-price-stack{display:flex;gap:7px;align-items:baseline}.ec-booking-submit-row del{color:#9297a5}.ec-booking-submit-row strong,.ec-booking-submit-row .ec-price-current{font-size:18px;color:#171159;font-weight:900}
.ec-booking-price{display:block;margin:4px 0;color:#171159;font-size:11px;font-weight:800}.ec-booking-price-unset{color:#868b98}.ec-booking-cancel-form{margin-top:5px}.ec-booking-cancel-form button{border:0;background:none;color:#a04444;padding:0;font:inherit;font-size:11px;cursor:pointer;text-decoration:underline}
@media(max-width:900px){.ec-booking-layout-v2{grid-template-columns:1fr}.ec-booking-teacher-card{position:static;display:grid;grid-template-columns:72px 1fr;gap:14px}.ec-booking-teacher-card>img{width:72px;height:72px;margin:0}.ec-booking-teacher-card dl,.ec-booking-teacher-card>a{grid-column:1/-1}}
@media(max-width:650px){.ec-booking-form-v2,.ec-transaction-login{padding:17px}.ec-slot-day{grid-template-columns:1fr;gap:8px}.ec-slot-date{flex-direction:row;justify-content:space-between}.ec-slot-times span{padding:8px 10px}.ec-booking-submit-row .ec-btn{width:100%}}

.ec-role-switch-notice{
  background:#fff8eb;border:1px solid #f0d9a8;border-radius:20px;padding:24px;
  color:#3f4658
}
.ec-role-switch-notice h3{margin:0 0 7px;color:#171159;font-size:20px}
.ec-role-switch-notice p{margin:0 0 15px;line-height:1.9;font-size:13px}
.ec-slot-times label span{min-width:72px}

/* Booking 0.4.0 — paid private lesson checkout */
.ec-booking-pay-form{display:inline-block;margin-top:7px}.ec-booking-pay-btn{border:0;border-radius:999px;background:#245be8;color:#fff;padding:9px 13px;font-family:inherit;font-size:11px;font-weight:900;cursor:pointer}.ec-booking-pay-btn:hover{filter:brightness(.96)}
.ec-booking-payment-ok{display:inline-flex;margin-top:7px;border-radius:999px;background:#eaf8f1;color:#16764e;padding:6px 9px;font-size:10px;font-weight:900}

/* 0.5.1 booking hold / conflict UX */
.ec-booking-hold-explainer{margin:14px 0 0;padding:11px 13px;border-radius:13px;background:#f4f8ff;border:1px solid #d8e5ff;color:#24436f;font-size:12px;line-height:1.8}
.ec-booking-hold-explainer strong{color:#174fca}
.ec-booking-submit-row button:disabled{opacity:.72;cursor:wait}
