
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Playfair+Display:wght@600;700;800&display=swap');

:root{
    --monis-green:#83bd22;
    --monis-green-dark:#4f8f13;
    --monis-blue:#1488c8;
    --monis-dark:#172126;
    --monis-muted:#66747c;
    --monis-cream:#fbfaf5;
    --monis-line:#e6eddc;
    --monis-shadow:0 24px 70px rgba(23,33,38,.11);
}

*{box-sizing:border-box}

body.monis-booking-page{
    margin:0!important;
    font-family:'Inter',Arial,sans-serif!important;
    color:var(--monis-dark)!important;
    background:
        radial-gradient(circle at top left, rgba(131,189,34,.13), transparent 26%),
        linear-gradient(180deg,#fff 0%,#fbfaf5 46%,#f2f8eb 100%)!important;
}

.booking-topbar{
    position:sticky!important;
    top:0!important;
    z-index:1000!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:24px!important;
    padding:18px 6%!important;
    background:rgba(255,255,255,.94)!important;
    backdrop-filter:blur(18px)!important;
    border-bottom:1px solid rgba(230,237,220,.9)!important;
    box-shadow:0 10px 30px rgba(23,33,38,.06)!important;
}

.booking-brand{
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    color:var(--monis-green-dark)!important;
    text-decoration:none!important;
    font-family:'Playfair Display',serif!important;
    font-size:28px!important;
    font-weight:800!important;
}

.booking-brand img{
    width:62px!important;
    height:auto!important;
}

.booking-brand strong{
    color:var(--monis-blue)!important;
}

.booking-nav{
    display:flex!important;
    align-items:center!important;
    gap:22px!important;
}

.booking-nav a{
    color:#18242c!important;
    text-decoration:none!important;
    font-weight:800!important;
    font-size:14px!important;
}

.nav-pill{
    background:linear-gradient(135deg,var(--monis-green),var(--monis-green-dark))!important;
    color:#fff!important;
    padding:13px 20px!important;
    border-radius:13px!important;
    box-shadow:0 15px 30px rgba(131,189,34,.24)!important;
}

.booking-hero{
    position:relative!important;
    padding:110px 6% 170px!important;
    background:url('../../images/banner-img-1.jpg') center/cover no-repeat!important;
    overflow:hidden!important;
}

.booking-hero-overlay{
    position:absolute!important;
    inset:0!important;
    background:
        linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.42),rgba(0,0,0,.64)),
        linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.45))!important;
}

.booking-hero-content{
    position:relative!important;
    z-index:2!important;
    max-width:760px!important;
}

.eyebrow{
    display:inline-block!important;
    color:#b9de6b!important;
    font-size:13px!important;
    font-weight:900!important;
    letter-spacing:4px!important;
    text-transform:uppercase!important;
    margin-bottom:20px!important;
}

.booking-hero h1{
    font-family:'Playfair Display',serif!important;
    color:#fff!important;
    font-size:clamp(46px,6vw,78px)!important;
    line-height:1!important;
    letter-spacing:-2px!important;
    margin:0 0 24px!important;
}

.booking-hero p{
    color:rgba(255,255,255,.9)!important;
    font-size:18px!important;
    line-height:1.8!important;
    max-width:620px!important;
}

.booking-app{
    max-width:1380px!important;
    margin:-85px auto 80px!important;
    padding:0 24px!important;
    position:relative!important;
    z-index:10!important;
}

.booking-shell{
    display:grid!important;
    grid-template-columns:330px 1fr!important;
    gap:28px!important;
    align-items:start!important;
}

.panel-card,
.summary-card,
.booking-card{
    background:rgba(255,255,255,.93)!important;
    border:1px solid rgba(255,255,255,.7)!important;
    border-radius:30px!important;
    box-shadow:var(--monis-shadow)!important;
    backdrop-filter:blur(18px)!important;
}

.panel-card,
.summary-card{
    padding:26px!important;
}

.booking-card{
    padding:42px!important;
}

.panel-card h3,
.summary-card h3{
    font-family:'Playfair Display',serif!important;
    font-size:24px!important;
    margin:0 0 22px!important;
    color:var(--monis-dark)!important;
}

.step{
    display:flex!important;
    gap:15px!important;
    align-items:center!important;
    padding:16px!important;
    border-radius:18px!important;
    margin-bottom:14px!important;
    background:#f8fbf2!important;
    color:var(--monis-dark)!important;
    transition:.25s!important;
}

.step.active{
    background:linear-gradient(135deg,var(--monis-green),var(--monis-green-dark))!important;
    color:#fff!important;
    transform:translateX(5px)!important;
    box-shadow:0 15px 35px rgba(131,189,34,.22)!important;
}

.step span{
    width:42px!important;
    height:42px!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center!important;
    background:rgba(255,255,255,.22)!important;
    font-weight:900!important;
}

.step small{
    display:block!important;
    opacity:.82!important;
}

.summary-card{
    margin-top:22px!important;
}

.summary-card p{
    display:flex!important;
    justify-content:space-between!important;
    gap:14px!important;
    padding:14px 0!important;
    margin:0!important;
    border-bottom:1px solid var(--monis-line)!important;
    color:var(--monis-muted)!important;
}

.summary-card strong{
    color:var(--monis-green-dark)!important;
    text-align:right!important;
}

.section-title span{
    display:inline-block!important;
    color:var(--monis-green-dark)!important;
    font-size:12px!important;
    font-weight:900!important;
    letter-spacing:3px!important;
    text-transform:uppercase!important;
    margin-bottom:12px!important;
}

.section-title h2{
    font-family:'Playfair Display',serif!important;
    font-size:clamp(34px,4vw,48px)!important;
    line-height:1.05!important;
    color:var(--monis-dark)!important;
    margin:0 0 12px!important;
}

.section-title p{
    color:var(--monis-muted)!important;
    line-height:1.8!important;
    margin-bottom:30px!important;
}

.category-grid,
.practitioner-grid{
    display:grid!important;
    grid-template-columns:repeat(2,1fr)!important;
    gap:22px!important;
}

.category-card,
.practitioner-card,
.treatment-card{
    background:#fff!important;
    border:1px solid var(--monis-line)!important;
    border-radius:26px!important;
    padding:26px!important;
    cursor:pointer!important;
    transition:.28s!important;
    text-align:left!important;
    color:var(--monis-dark)!important;
    box-shadow:0 16px 40px rgba(23,33,38,.04)!important;
}

.category-card:hover,
.practitioner-card:hover,
.treatment-card:hover{
    transform:translateY(-6px)!important;
    border-color:rgba(131,189,34,.55)!important;
    box-shadow:0 26px 70px rgba(23,33,38,.1)!important;
}

.category-card.active,
.practitioner-card.active,
.treatment-card.active{
    background:linear-gradient(135deg,var(--monis-green),var(--monis-green-dark))!important;
    color:#fff!important;
    border-color:transparent!important;
}

.category-card .icon{
    width:54px!important;
    height:54px!important;
    border-radius:16px!important;
    display:grid!important;
    place-items:center!important;
    background:#eef8df!important;
    color:var(--monis-green-dark)!important;
    margin-bottom:18px!important;
    font-size:22px!important;
}

.category-card.active .icon{
    background:rgba(255,255,255,.22)!important;
    color:#fff!important;
}

.category-card strong,
.practitioner-card strong{
    display:block!important;
    font-size:21px!important;
    margin-bottom:9px!important;
}

.category-card small,
.practitioner-card small{
    color:inherit!important;
    opacity:.78!important;
    line-height:1.7!important;
}

.practitioner-card img{
    width:100%!important;
    height:240px!important;
    object-fit:cover!important;
    border-radius:20px!important;
    margin-bottom:18px!important;
}

.treatment-list{
    display:grid!important;
    gap:18px!important;
}

.date-time-grid{
    display:grid!important;
    grid-template-columns:310px 1fr!important;
    gap:24px!important;
}

.date-card,
.slot-card,
.final-review,
.soft-note,
.empty-state{
    background:#fff!important;
    border:1px solid var(--monis-line)!important;
    border-radius:24px!important;
    padding:24px!important;
    box-shadow:0 14px 38px rgba(23,33,38,.04)!important;
}

.soft-note{
    margin-bottom:24px!important;
    background:#f7fbef!important;
}

input,
textarea{
    width:100%!important;
    border:1px solid var(--monis-line)!important;
    border-radius:17px!important;
    padding:16px 18px!important;
    font-size:15px!important;
    outline:none!important;
    background:#fff!important;
}

input:focus,
textarea:focus{
    border-color:var(--monis-green)!important;
    box-shadow:0 0 0 4px rgba(131,189,34,.12)!important;
}

.form-grid{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:18px!important;
}

.form-grid textarea{
    grid-column:1/-1!important;
}

.slots{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:12px!important;
    margin-top:18px!important;
}

.slot-btn{
    padding:14px 18px!important;
    border-radius:16px!important;
    border:1px solid var(--monis-line)!important;
    background:#fff!important;
    font-weight:900!important;
    color:var(--monis-dark)!important;
    cursor:pointer!important;
}

.slot-btn:hover,
.slot-btn.active{
    background:linear-gradient(135deg,var(--monis-green),var(--monis-green-dark))!important;
    color:#fff!important;
    border-color:transparent!important;
}

.actions{
    display:flex!important;
    justify-content:space-between!important;
    align-items:center!important;
    gap:18px!important;
    margin-top:34px!important;
    flex-wrap:wrap!important;
}

.primary-btn,
.ghost-btn{
    padding:16px 28px!important;
    border-radius:16px!important;
    border:none!important;
    font-weight:900!important;
    cursor:pointer!important;
}

.primary-btn{
    background:linear-gradient(135deg,var(--monis-green),var(--monis-green-dark))!important;
    color:#fff!important;
    box-shadow:0 18px 40px rgba(131,189,34,.25)!important;
}

.ghost-btn{
    background:#eef8df!important;
    color:var(--monis-green-dark)!important;
}

.final-review{
    margin-top:24px!important;
}

.final-review h3{
    font-family:'Playfair Display',serif!important;
    font-size:26px!important;
    margin:0 0 10px!important;
}

.final-review label{
    display:block!important;
    margin:14px 0!important;
    font-weight:800!important;
}

.alert{
    padding:18px 24px!important;
    border-radius:18px!important;
    margin-bottom:24px!important;
    font-weight:800!important;
}

.alert.success{
    background:#e7f8de!important;
    color:#2e6b0f!important;
}

.alert.error{
    background:#ffe8e8!important;
    color:#b42318!important;
}

.booking-step{
    display:none!important;
    animation:bookingFade .35s ease!important;
}

.booking-step.active{
    display:block!important;
}

@keyframes bookingFade{
    from{opacity:0;transform:translateY(12px)}
    to{opacity:1;transform:translateY(0)}
}

@media(max-width:1050px){
    .booking-shell,
    .date-time-grid{
        grid-template-columns:1fr!important;
    }

    .category-grid,
    .practitioner-grid,
    .form-grid{
        grid-template-columns:1fr!important;
    }

    .booking-nav{
        flex-wrap:wrap!important;
        justify-content:flex-end!important;
    }
}

@media(max-width:700px){
    .booking-topbar{
        padding:16px 18px!important;
        align-items:flex-start!important;
        flex-direction:column!important;
    }

    .booking-nav{
        width:100%!important;
        justify-content:flex-start!important;
        gap:14px!important;
    }

    .booking-hero{
        padding:85px 20px 130px!important;
    }

    .booking-card{
        padding:24px!important;
    }

    .booking-app{
        padding:0 16px!important;
    }
}

.cancellation-policy-box{
    background:#f8fcf4!important;
    border:1px solid #d7e8c8!important;
    border-radius:18px!important;
    padding:18px 20px!important;
}
.cancellation-policy-box p{
    color:#51605a!important;
    line-height:1.55!important;
}
.policy-check{
    display:flex!important;
    gap:10px!important;
    align-items:flex-start!important;
    background:#fff!important;
    border:1px solid #d7e8c8!important;
    border-radius:14px!important;
    padding:14px!important;
}
.policy-check input{
    width:auto!important;
    margin-top:4px!important;
}


/* Cleaner Jane-style booking terms: keep legal protection without scaring new clients. */
.booking-terms-card{
    margin-top:18px;
    padding:18px 20px;
    border:1px solid rgba(85,166,22,.18);
    border-radius:18px;
    background:linear-gradient(180deg,#ffffff 0%,#f8fff3 100%);
    box-shadow:0 12px 30px rgba(42,19,45,.05);
}
.clean-policy-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-weight:800;
    color:#2a132d;
}
.clean-policy-check input{
    width:auto;
    margin-top:3px;
    accent-color:#55a616;
}
.clean-policy-check a{
    color:#55a616;
    text-decoration:underline;
    text-underline-offset:3px;
}
.booking-terms-card p{
    margin:10px 0 0;
    color:#6d5d70;
    font-size:14px;
    line-height:1.6;
}

/* Phase 25 pricing update */
.service-price{margin:14px 0 4px;font-weight:900;color:var(--green,#2d7d22);font-size:15px;}
.price-grid-full{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;}
.price-grid-full .price-card p{font-size:16px;line-height:1.75;}
@media(max-width:1100px){.price-grid-full{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:700px){.price-grid-full{grid-template-columns:1fr;}}

/* Jane-style public booking layout update — routing and form processing unchanged. */
body.jane-booking-page{
    background:#f7f7f4!important;
    color:#25252b!important;
    font-family:Inter,Arial,sans-serif!important;
}
.jane-client-bar{
    background:#12a800!important;
    color:#fff!important;
    display:flex!important;
    justify-content:space-between!important;
    align-items:center!important;
    gap:20px!important;
    padding:18px max(22px,10vw)!important;
    font-size:16px!important;
}
.jane-client-bar a{color:#fff!important;font-weight:900!important;text-decoration:none!important;}
.jane-booking-header{
    max-width:1380px!important;
    margin:0 auto!important;
    padding:24px 28px!important;
    display:flex!important;
    justify-content:space-between!important;
    align-items:center!important;
    background:#fff!important;
}
.jane-booking-header nav{display:flex!important;gap:22px!important;flex-wrap:wrap!important;}
.jane-booking-header nav a{color:#25252b!important;text-decoration:none!important;font-weight:800!important;}
.jane-brand{display:flex!important;align-items:center!important;gap:12px!important;color:#25252b!important;text-decoration:none!important;font-weight:900!important;font-size:20px!important;}
.jane-brand img{width:58px!important;height:auto!important;}
.jane-booking-shell{max-width:1380px!important;margin:0 auto 80px!important;background:#fff!important;box-shadow:0 22px 70px rgba(0,0,0,.06)!important;}
.jane-title-band{background:#12a800!important;color:#fff!important;padding:34px 28px!important;}
.jane-title-band h1{margin:0!important;font-weight:300!important;font-size:clamp(34px,4vw,52px)!important;letter-spacing:-1px!important;}
.jane-layout{display:grid!important;grid-template-columns:320px 1fr!important;gap:0!important;padding:28px!important;align-items:start!important;}
.jane-sidebar{padding-right:12px!important;}
.jane-side-title{background:#b7e6e4!important;color:#1b3030!important;padding:14px 20px!important;font-weight:900!important;border:1px solid #d7dddd!important;border-bottom:none!important;border-radius:5px 5px 0 0!important;}
.jane-category-list{border:1px solid #d7dddd!important;border-radius:0 0 5px 5px!important;overflow:hidden!important;margin-bottom:30px!important;}
.jane-category-item{width:100%!important;background:#fff!important;border:0!important;border-bottom:1px solid #e4e4e4!important;text-align:left!important;padding:15px 20px!important;color:#25252b!important;font-size:16px!important;line-height:1.45!important;cursor:pointer!important;}
.jane-category-item:last-child{border-bottom:none!important;}
.jane-category-item:hover,.jane-category-item.active{background:#f3fbfb!important;color:#057c7d!important;font-weight:900!important;}
.jane-side-link{display:block!important;border:1px solid #dedede!important;border-radius:5px!important;padding:15px 20px!important;margin:0 0 18px!important;color:#25252b!important;text-decoration:none!important;font-weight:700!important;background:#fff!important;}
.jane-main{padding-left:24px!important;}
.jane-welcome h2{font-size:30px!important;line-height:1.2!important;margin:0 0 22px!important;color:#2f3037!important;font-weight:900!important;}
.jane-welcome h3{font-size:26px!important;line-height:1.2!important;margin:0 0 12px!important;color:#0f172a!important;font-weight:900!important;}
.jane-welcome p{font-size:16px!important;line-height:1.55!important;color:#25252b!important;margin:0 0 18px!important;}
.jane-short-note{color:#5c5d66!important;}
.jane-book-columns{display:grid!important;grid-template-columns:1fr 260px!important;gap:30px!important;margin-top:24px!important;}
.jane-treatment-column h3,.jane-practitioner-column h3,.jane-schedule-panel h3,.jane-details-panel h3{font-size:22px!important;margin:0 0 15px!important;color:#25252b!important;font-weight:800!important;font-family:Inter,Arial,sans-serif!important;}
.jane-treatment-list{display:grid!important;gap:14px!important;}
.jane-treatment-card{width:100%!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:16px!important;background:#fff!important;border:1px solid #d8dde1!important;border-radius:5px!important;padding:17px 16px!important;text-align:left!important;cursor:pointer!important;color:#25252b!important;box-shadow:none!important;}
.jane-treatment-card:hover,.jane-treatment-card.active{border-color:#12a800!important;background:#f8fff6!important;box-shadow:0 10px 25px rgba(18,168,0,.08)!important;transform:none!important;}
.jane-treatment-copy strong{display:block!important;font-size:17px!important;margin-bottom:14px!important;}
.jane-treatment-copy span{display:block!important;color:#56607a!important;font-size:14px!important;margin-bottom:12px!important;}
.jane-treatment-meta{display:flex!important;gap:10px!important;flex-wrap:wrap!important;}
.jane-treatment-meta em{font-style:normal!important;background:#eef3f5!important;border-radius:6px!important;padding:7px 11px!important;font-size:14px!important;font-weight:900!important;color:#25252b!important;}
.jane-card-arrow{font-size:22px!important;color:#12a800!important;font-weight:900!important;}
.jane-practitioner-list{display:grid!important;gap:12px!important;}
.jane-practitioner-card{width:100%!important;background:#fff!important;border:1px solid transparent!important;border-radius:5px!important;padding:0!important;text-align:left!important;cursor:pointer!important;color:#25252b!important;}
.jane-practitioner-card.active{border-color:#12a800!important;background:#f8fff6!important;}
.jane-practitioner-card img{width:120px!important;height:145px!important;object-fit:cover!important;border-radius:4px!important;display:block!important;margin:0 0 10px!important;}
.jane-practitioner-card strong{display:block!important;font-size:15px!important;margin-bottom:4px!important;}
.jane-practitioner-card small{display:block!important;color:#68707a!important;font-size:13px!important;}
.jane-schedule-panel,.jane-details-panel{margin-top:30px!important;border-top:1px solid #e5e7eb!important;padding-top:28px!important;}
.jane-selected-summary{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:12px!important;margin-bottom:22px!important;}
.jane-selected-summary h3{grid-column:1/-1!important;margin-bottom:4px!important;}
.jane-selected-summary div{border:1px solid #e0e5e8!important;border-radius:6px!important;padding:12px!important;background:#fbfbfb!important;}
.jane-selected-summary span{display:block!important;font-size:12px!important;text-transform:uppercase!important;letter-spacing:1px!important;color:#68707a!important;font-weight:900!important;margin-bottom:6px!important;}
.jane-selected-summary strong{font-size:14px!important;color:#0b7d0b!important;}
.jane-date-time{display:grid!important;grid-template-columns:260px 1fr!important;gap:22px!important;align-items:start!important;}
.jane-date-time label{display:block!important;font-weight:900!important;margin-bottom:8px!important;}
.jane-date-time input,.jane-details-panel input,.jane-details-panel textarea{border:1px solid #d8dde1!important;border-radius:5px!important;background:#fff!important;padding:14px!important;font-size:15px!important;}
.jane-date-time input:focus,.jane-details-panel input:focus,.jane-details-panel textarea:focus{border-color:#12a800!important;box-shadow:0 0 0 3px rgba(18,168,0,.08)!important;}
.slots{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:14px!important;}
.slot-btn{border:1px solid #d8dde1!important;border-radius:5px!important;background:#fff!important;color:#25252b!important;padding:11px 14px!important;font-weight:900!important;cursor:pointer!important;}
.slot-btn:hover,.slot-btn.active{background:#12a800!important;color:#fff!important;border-color:#12a800!important;}
.jane-details-panel p{color:#5c6570!important;line-height:1.6!important;margin:0 0 20px!important;}
.jane-billing-box{margin-top:18px!important;border:1px solid #d8dde1!important;border-radius:6px!important;padding:18px!important;background:#fbfbfb!important;}
.jane-billing-box h4{margin:0 0 10px!important;font-size:18px!important;}
.jane-billing-box label{display:block!important;margin:11px 0!important;font-weight:700!important;}
.jane-billing-box input,.clean-policy-check input{width:auto!important;margin-right:8px!important;accent-color:#12a800!important;}
.jane-submit-btn{margin-top:22px!important;background:#12a800!important;color:#fff!important;border:0!important;border-radius:5px!important;padding:16px 28px!important;font-weight:900!important;font-size:16px!important;cursor:pointer!important;}
.jane-submit-btn:hover{filter:brightness(.95)!important;}
.alert{max-width:calc(100% - 56px)!important;margin:22px 28px 0!important;}
@media(max-width:980px){
    .jane-layout,.jane-book-columns,.jane-date-time{grid-template-columns:1fr!important;}
    .jane-main{padding-left:0!important;margin-top:25px!important;}
    .jane-sidebar{padding-right:0!important;}
    .jane-selected-summary{grid-template-columns:1fr 1fr!important;}
}
@media(max-width:620px){
    .jane-client-bar,.jane-booking-header{padding-left:18px!important;padding-right:18px!important;}
    .jane-client-bar,.jane-booking-header{flex-direction:column!important;align-items:flex-start!important;}
    .jane-layout{padding:18px!important;}
    .jane-title-band{padding:28px 18px!important;}
    .jane-selected-summary{grid-template-columns:1fr!important;}
}

/* Jane-style weekly availability calendar update */
.jane-week-panel{
    display:grid!important;
    grid-template-columns:330px minmax(0,1fr)!important;
    gap:22px!important;
    align-items:start!important;
}
.jane-week-summary{
    position:sticky!important;
    top:92px!important;
    align-self:start!important;
}
.jane-calendar-wrap{
    background:#fff!important;
    border:1px solid #e2e8dc!important;
    border-radius:16px!important;
    overflow:hidden!important;
    box-shadow:0 14px 38px rgba(23,33,38,.06)!important;
}
.jane-calendar-head{
    display:flex!important;
    justify-content:space-between!important;
    gap:18px!important;
    align-items:flex-start!important;
    padding:18px 20px!important;
    border-bottom:1px solid #e8eee4!important;
    background:#fbfff8!important;
}
.jane-calendar-head h3{
    margin:0 0 6px!important;
    font-size:20px!important;
    color:#172126!important;
}
.jane-calendar-head p{
    margin:0!important;
    color:#66747c!important;
    font-size:14px!important;
    line-height:1.5!important;
}
.jane-week-actions{
    display:flex!important;
    gap:10px!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
}
.jane-week-btn{
    border:1px solid #dce8d2!important;
    background:#fff!important;
    color:#188600!important;
    border-radius:10px!important;
    padding:10px 13px!important;
    cursor:pointer!important;
    font-weight:800!important;
}
.jane-week-btn:hover{
    border-color:#11a000!important;
    box-shadow:0 10px 24px rgba(17,160,0,.12)!important;
}
.jane-week-calendar{
    min-height:420px!important;
    overflow-x:auto!important;
    background:#f2f2f2!important;
}
.jane-week-grid{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(142px,1fr))!important;
    min-width:980px!important;
    align-items:stretch!important;
}
.jane-day-column{
    border-right:1px solid #fff!important;
    background:#e9e9e9!important;
    min-height:520px!important;
}
.jane-day-column:last-child{border-right:0!important;}
.jane-day-head{
    background:#fff!important;
    border-bottom:1px solid #e1e1e1!important;
    text-align:center!important;
    padding:12px 8px!important;
    min-height:64px!important;
}
.jane-day-head strong{
    display:block!important;
    color:#08a000!important;
    font-size:15px!important;
    line-height:1.2!important;
}
.jane-day-head span{
    display:block!important;
    margin-top:4px!important;
    color:#687076!important;
    font-size:13px!important;
    font-weight:700!important;
}
.jane-day-head.today strong{color:#00a000!important;}
.jane-day-slots{
    padding:54px 0 14px!important;
    min-height:455px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:3px!important;
}
.jane-week-slot{
    width:100%!important;
    border:1px solid #0b9900!important;
    background:#10a600!important;
    color:#fff!important;
    border-radius:7px!important;
    padding:12px 8px!important;
    text-align:left!important;
    font-size:14px!important;
    font-weight:800!important;
    cursor:pointer!important;
    min-height:52px!important;
    box-shadow:inset 0 -1px 0 rgba(255,255,255,.15)!important;
}
.jane-week-slot:hover,
.jane-week-slot.active{
    background:#087a00!important;
    transform:translateY(-1px)!important;
    box-shadow:0 10px 20px rgba(8,122,0,.2)!important;
}
.jane-week-slot.active{
    background:#064f00!important;
    color:#ffffff!important;
    border-color:#ffe600!important;
    outline:4px solid #ffe600!important;
    outline-offset:-4px!important;
    box-shadow:0 0 0 2px #064f00,0 12px 24px rgba(6,79,0,.35)!important;
}
.jane-no-slot{
    margin:auto 8px!important;
    text-align:center!important;
    color:#687076!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.5!important;
}
.jane-calendar-placeholder,
.jane-week-loading{
    min-height:380px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    color:#687076!important;
    background:#f4f4f4!important;
    padding:34px!important;
    font-weight:800!important;
}
.jane-week-loading span{
    width:9px!important;
    height:9px!important;
    border-radius:50%!important;
    background:#10a600!important;
    margin-right:6px!important;
    animation:monisPulse 1s infinite alternate!important;
}
.jane-week-loading span:nth-child(2){animation-delay:.15s!important;}
.jane-week-loading span:nth-child(3){animation-delay:.3s!important;}
@keyframes monisPulse{from{opacity:.35;transform:scale(.8)}to{opacity:1;transform:scale(1.1)}}
@media(max-width:1180px){
    .jane-week-panel{grid-template-columns:1fr!important;}
    .jane-week-summary{position:static!important;}
}
@media(max-width:760px){
    .jane-calendar-head{display:block!important;}
    .jane-week-actions{justify-content:flex-start!important;margin-top:14px!important;}
    .jane-week-calendar{margin:0 -1px!important;}
    .jane-week-grid{grid-template-columns:repeat(7,132px)!important;min-width:924px!important;}
    .jane-day-column{min-height:470px!important;}
    .jane-day-slots{min-height:405px!important;padding-top:30px!important;}
    .jane-week-slot{font-size:13px!important;min-height:48px!important;}
}

/* Phase 36: remove visible appointment summary so weekly calendar has full width */
.jane-schedule-panel.jane-week-panel{
    display:block!important;
    grid-template-columns:1fr!important;
}
.jane-week-summary,
.jane-selected-summary.jane-week-summary{
    display:none!important;
}
.jane-calendar-wrap{
    width:100%!important;
    max-width:100%!important;
}
.jane-calendar-head{
    position:relative!important;
    z-index:1!important;
}


/* Compact service-group booking navigation — mobile first */
.jane-side-title{
    background:#b7e6e4!important;
    color:#172126!important;
    font-size:18px!important;
    padding:13px 18px!important;
}
.jane-group-list{
    margin-bottom:20px!important;
}
.jane-group-item{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:14px 18px!important;
    font-size:15px!important;
}
.jane-group-item span{
    display:block!important;
    font-weight:900!important;
}
.jane-group-item em{
    font-style:normal!important;
    color:#71807b!important;
    font-size:11px!important;
    font-weight:800!important;
    white-space:nowrap!important;
}
.jane-group-item.active em{
    color:#057c7d!important;
}
.jane-side-link{
    padding:13px 18px!important;
    margin-bottom:12px!important;
    font-size:15px!important;
}
@media(max-width:980px){
    .jane-layout{
        padding:14px!important;
    }
    .jane-sidebar{
        position:sticky!important;
        top:0!important;
        z-index:20!important;
        background:#fff!important;
        padding:0 0 12px!important;
        border-bottom:1px solid #e6e6e6!important;
    }
    .jane-category-list{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:8px!important;
        border:0!important;
        border-radius:0!important;
        margin-bottom:12px!important;
    }
    .jane-group-item{
        border:1px solid #d7dddd!important;
        border-radius:10px!important;
        min-height:68px!important;
        padding:12px 13px!important;
        background:#fff!important;
        flex-direction:column!important;
        align-items:flex-start!important;
        justify-content:center!important;
    }
    .jane-group-item.active{
        background:#eafafa!important;
        border-color:#0aa6a6!important;
    }
    .jane-side-title{
        border-radius:10px!important;
        border:1px solid #d7dddd!important;
        margin-bottom:10px!important;
    }
    .jane-side-link{
        display:inline-flex!important;
        width:calc(50% - 5px)!important;
        margin:0 4px 8px 0!important;
        justify-content:center!important;
        text-align:center!important;
        font-size:14px!important;
    }
}
@media(max-width:620px){
    .jane-booking-shell{
        margin-bottom:40px!important;
    }
    .jane-title-band h1{
        font-size:36px!important;
    }
    .jane-main{
        margin-top:16px!important;
    }
    .jane-welcome h2{
        font-size:24px!important;
    }
    .jane-welcome h3{
        font-size:21px!important;
    }
    .jane-category-list{
        grid-template-columns:1fr!important;
    }
    .jane-group-item{
        min-height:58px!important;
        flex-direction:row!important;
        align-items:center!important;
        justify-content:space-between!important;
    }
    .jane-side-link{
        width:100%!important;
        margin-right:0!important;
    }
    .jane-book-columns{
        gap:18px!important;
    }
    .jane-treatment-card{
        padding:15px!important;
    }
    .jane-treatment-copy strong{
        font-size:16px!important;
        margin-bottom:10px!important;
    }
}

/* Final booking service selector correction */
.jane-side-title{
    background:#b7e6e4!important;
    color:#172126!important;
    font-size:18px!important;
    font-weight:900!important;
    text-transform:none!important;
}
.jane-group-item em{
    font-size:24px!important;
    line-height:1!important;
    color:#111827!important;
    transform:rotate(0deg)!important;
}
.jane-group-item.active em,
.jane-group-item.open em{
    transform:rotate(90deg)!important;
    color:#057c7d!important;
}
.jane-subcategory-list{
    background:#fff!important;
    border-bottom:1px solid #e4e4e4!important;
}
.jane-subcategory-item{
    padding-left:34px!important;
    font-size:15px!important;
    background:#fff!important;
    color:#25252b!important;
}
.jane-subcategory-item span::before{
    content:'•';
    color:#12a800;
    margin-right:8px;
    font-weight:900;
}
.jane-subcategory-item:hover,
.jane-subcategory-item.active{
    background:#f8fff6!important;
    color:#057c7d!important;
}
@media(max-width:980px){
    .jane-subcategory-list{
        grid-column:1/-1!important;
        border:1px solid #d7dddd!important;
        border-radius:10px!important;
        overflow:hidden!important;
        margin-top:-4px!important;
    }
    .jane-subcategory-item{
        border-radius:0!important;
        min-height:auto!important;
        flex-direction:row!important;
        padding:12px 16px 12px 28px!important;
    }
}

/* Monis update: keep weekly calendar in Sunday-to-Saturday order and mark today without moving the column */
.jane-today-badge{
    display:inline-block!important;
    margin-top:4px!important;
    padding:2px 7px!important;
    border-radius:999px!important;
    background:rgba(8,160,0,.10)!important;
    color:#087a00!important;
    font-size:10px!important;
    font-weight:800!important;
    letter-spacing:.02em!important;
    text-transform:uppercase!important;
}
.jane-day-head.today{
    box-shadow:inset 0 -3px 0 rgba(8,160,0,.35)!important;
}


/* Mobile booking fix: selected services must be visible immediately after tapping a service group */
@media(max-width:760px){
    .jane-booking-page{
        overflow-x:hidden!important;
    }
    .jane-sidebar{
        position:relative!important;
        top:auto!important;
        z-index:auto!important;
        border-bottom:0!important;
        margin-bottom:8px!important;
    }
    .jane-main{
        display:block!important;
        width:100%!important;
        padding-left:0!important;
        margin-top:10px!important;
        clear:both!important;
    }
    .jane-book-columns{
        display:flex!important;
        flex-direction:column!important;
        gap:18px!important;
        width:100%!important;
    }
    .jane-treatment-column{
        display:block!important;
        width:100%!important;
        scroll-margin-top:16px!important;
    }
    .jane-treatment-list{
        display:grid!important;
        width:100%!important;
        gap:12px!important;
        min-height:90px!important;
    }
    .jane-treatment-card{
        display:flex!important;
        width:100%!important;
        min-height:84px!important;
        visibility:visible!important;
        opacity:1!important;
    }
    .jane-practitioner-column{
        width:100%!important;
    }
}

/* Treatment list: show first 3, keep the rest behind See More for cleaner mobile booking */
.jane-treatment-card.is-hidden{display:none!important;}
.jane-see-more-treatments{
    width:100%!important;
    border:1px solid #0f8f00!important;
    background:#f5fff3!important;
    color:#087300!important;
    border-radius:6px!important;
    padding:14px 16px!important;
    font-weight:900!important;
    font-size:15px!important;
    cursor:pointer!important;
    text-align:center!important;
}
.jane-see-more-treatments:hover{background:#eaffea!important;}
@media(max-width:760px){
    .jane-see-more-treatments{padding:15px!important;font-size:16px!important;}
}
