/* ==========================================================
   BOOKING PAGE
========================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    background:#f4f7fb;

    font-family:Inter,"Segoe UI",sans-serif;

    color:#222;

}

.booking-page{

    padding:50px 0;

}

.booking-wrapper{

    background:#fff;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 20px 45px rgba(0,0,0,.08);

    padding:30px;

}


/* ==========================================================
   LESSON CARD
========================================================== */

.lesson-card{

    background:#ffffff;

    border:1px solid #ECEEF3;

    border-radius:18px;

    padding:30px;

    margin-bottom:30px;

}

.lesson-image{

    width:110px;

    height:110px;

    object-fit:cover;

    border-radius:18px;

}

.lesson-placeholder{

    width:110px;

    height:110px;

    border-radius:18px;

    background:linear-gradient(135deg,#ff6b00,#60a5fa);

    display:flex;

    justify-content:center;

    align-items:center;

    color:white;

    font-size:45px;

}

.lesson-card h2{

    font-size:30px;

    font-weight:700;

    margin-bottom:10px;

}

.lesson-card p{

    color:#6B7280;

    line-height:1.8;

}

.lesson-meta{

    display:flex;

    gap:15px;

    margin-top:25px;

    flex-wrap:wrap;

}

.lesson-meta span{

    background:#EEF4FF;

    color:#ff6b00;

    padding:10px 18px;

    border-radius:40px;

    font-weight:600;

}


/* ==========================================================
   CALENDAR
========================================================== */

.calendar-card{

    background:white;

    border:1px solid #ECEEF3;

    border-radius:18px;

    padding:25px;

}

.calendar-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:30px;

}

.calendar-header h3{

    font-size:28px;

    font-weight:700;

}

.calendar-btn{

    width:42px;

    height:42px;

    border:none;

    background:#EEF4FF;

    color:#ff6b00;

    border-radius:50%;

    cursor:pointer;

    transition:.3s;

}

.calendar-btn:hover{

    background:#ff6b00;

    color:white;

}


/* ==========================================================
   WEEK DAYS
========================================================== */

.weekday-row{

    display:grid;

    grid-template-columns:repeat(7,1fr);

    gap:12px;

    margin-bottom:18px;

}

.weekday-row div{

    text-align:center;

    color:#6B7280;

    font-weight:700;

}


/* ==========================================================
   CALENDAR GRID
========================================================== */

.calendar-grid{

    display:grid;

    grid-template-columns:repeat(7,1fr);

    gap:8px;

}

.calendar-day{

    height:60px;              /* Instead of aspect-ratio */	
	
    border:1px solid #E5E7EB;

    border-radius:10px;

    background:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    transition:.25s;

    font-size:16px;

    font-weight:600;

}

.calendar-day:hover{

    background:#EEF4FF;

    border-color:#ff6b00;

}

.calendar-day.selected{

    background:#ff6b00;

    color:#fff;

}

.calendar-day.today{

    border:2px solid #10B981;

}

.calendar-day.disabled{

    background:#F8FAFC;

    color:#C0C6D0;

    cursor:not-allowed;

}

.calendar-empty{

    height:60px;

}

.date-number{

    font-size:17px;

    font-weight:700;

}


/* ==========================================================
   SLOT CARD
========================================================== */

.slot-card{

    margin-top:30px;

    border:1px solid #ECEEF3;

    border-radius:18px;

    padding:25px;

}

.section-title{

    margin-bottom:25px;

}

.section-title h3{

    font-size:26px;

    font-weight:700;

}

.slot-placeholder{

    padding:0px;

    text-align:center;

    color:#94A3B8;

}

.slot-placeholder i{

    font-size:70px;

    color:#ff6b00;

    margin-bottom:20px;

}

.slot-item{

    background:#fff;

    border:2px solid #E5E7EB;

    border-radius:14px;

    padding:4px 3px;

    cursor:pointer;

    transition:.25s;

    min-height:10px;

    display:flex;

    flex-direction:column;

    justify-content:center;
	
	font-size:12px;

    font-weight:700;

    margin-bottom:0px;
	

}

.slot-item:hover{

    border-color:#ff6b00;

    transform:translateY(-3px);

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.slot-item.selected{
    background:#ff6b00 !important;
    border-color:#ff6b00 !important;
    color:#fff !important;
}

.slot-item.selected .slot-status{
    color:#fff !important;
}

.slot-item.selected .slot-time{
    color:#fff !important;
}


.slot-item.booked{

    background:#F3F4F6;

    color:#9CA3AF;

    cursor:not-allowed;

}

.slot-status{

    font-size:13px;

    color:#10B981;

    font-weight:600;

}

.slot-item.selected .slot-status{

    

}



.booking-summary{

    background:white;

    border-radius:18px;

    padding:30px;

    border:1px solid #ECEEF3;

    position:sticky;

    

}

.booking-summary h3{

    font-size:28px;

    font-weight:700;

    margin-bottom:30px;

}

.summary-item{

    display:flex;

    justify-content:space-between;

    margin-bottom:18px;

}

.summary-item label{

    color:#6B7280;

    font-weight:600;

}

.summary-item span{

    font-weight:700;

}


/* ==========================================================
   FORM
========================================================== */

.form-control{

    height:55px;

    border-radius:12px;

    border:1px solid #D1D5DB;

}

.form-control:focus{

    box-shadow:none;

    border-color:#ff6b00;

}

.btn-booking{

    width:100%;

    height:58px;

    border:none;

    border-radius:14px;

    background:#ff6b00;

    color:white;

    font-size:18px;

    font-weight:700;

    transition:.3s;

}

.btn-booking:hover{

    background:#1D4ED8;

    transform:translateY(-2px);

}

@media(max-width:992px){

.booking-summary{

position:relative;

top:0;

margin-top:30px;

}

.lesson-card{

text-align:center;

}

.lesson-meta{

justify-content:center;

}

}

@media(max-width:768px){

.weekday-row{

font-size:13px;

gap:6px;

}

.calendar-grid{

gap:6px;

}

.calendar-day{

font-size:15px;

}

.lesson-card h2{

font-size:24px;

}

}

.calendar-day{

    position:relative;

}

.today{

    border:2px solid #10B981;

}

.today .date-number{

    color:#10B981;

}

.selected{

    background:#ff6b00;

    color:white;

    border-color:#ff6b00;

}

.date-number{

    font-size:18px;

    font-weight:700;

}

.calendar-day{

    transition:.25s;

}

.calendar-day:hover{

    transform:translateY(-3px);

}



.calendar-weekdays{

    display:grid;

    grid-template-columns:repeat(7,1fr);

    gap:8px;

    margin-bottom:10px;

}

.calendar-weekdays div{

    text-align:center;

    font-weight:700;

    color:#666;

}

#calendarGrid{

    display:grid;

    grid-template-columns:repeat(7,1fr);

    gap:8px;

}

.calendar-day{

    height:65px;

    border:1px solid #ddd;

    border-radius:12px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:white;

    cursor:pointer;

}

.calendar-empty{

    height:65px;

}

/* Modern Rectangle Textboxes */

.booking-form-card{

    background:#fff;

    padding:35px;

    border-radius:20px;

    box-shadow:0 10px 35px rgba(0,0,0,.08);

}

.form-title{

    font-size:26px;

    font-weight:700;

    margin-bottom:6px;

}

.form-subtitle{

    color:#7b7b7b;

    margin-bottom:30px;

}

.form-group{

    margin-bottom:22px;

}

.form-group label{

    display:block;

    font-weight:600;

    margin-bottom:8px;

    color:#333;

}

.input-box{

    position:relative;

}

.input-box i{

    position:absolute;

    left:18px;

    top:50%;

    transform:translateY(-50%);

    color:#ff6b00;

    font-size:18px;

}

.input-box .form-control{

    height:58px;

    border:1px solid #E4E8EE;

    border-radius:14px;

    padding-left:52px;

    font-size:15px;

    transition:.3s;

    box-shadow:none;

}

.input-box .form-control:focus{

    border-color:#ff6b00;

    box-shadow:0 0 0 4px rgba(255,107,0,.12);

}

.btn-book{

    width:100%;

    height:60px;

    border:none;

    border-radius:14px;

    background:linear-gradient(90deg,#ff7a00,#ff5a00);

    color:#fff;

    font-size:18px;

    font-weight:700;

    transition:.3s;

}

.btn-book:hover{

    transform:translateY(-2px);

    box-shadow:0 12px 25px rgba(255,106,0,.35);

}



#slotContainer{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:15px;

    margin-top:20px;

}



@media(max-width:1200px){

#slotContainer{

grid-template-columns:repeat(3,1fr);

}

}

@media(max-width:768px){

#slotContainer{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:480px){

#slotContainer{

grid-template-columns:1fr;

}

}

