.phorest-booking-app {
    width: 100%;
    background: #fff;
    color: #111;
}

.phorest-booking-app * {
    box-sizing: border-box;
}

.phorest-archive-page {
    width: 100%;
    background: #fff;
}

.phorest-archive-hero {
    max-width: 980px;
    margin: 0 auto;
    padding: 80px 24px 58px;
    text-align: center;
}

.phorest-archive-eyebrow {
    display: inline-block;
    color: var(--phorest-brand-color, #b58c56);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-size: 11px;
    font-weight: 700;
    margin-bottom: 16px;
}

.phorest-archive-hero h1 {
    color: #111;
    font-size: clamp(42px, 6vw, 76px);
    line-height: 1;
    font-weight: 500;
    margin: 0 0 18px;
    letter-spacing: -0.045em;
}

.phorest-archive-hero p {
    color: #666;
    max-width: 640px;
    margin: 0 auto;
    font-size: 15px;
    line-height: 1.8;
}

.phorest-archive-shell {
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 24px 90px;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 36px;
    align-items: start;
}

.phorest-archive-sidebar {
    position: sticky;
    top: 28px;
}

.phorest-mobile-filter-toggle {
    display: none;
}

.phorest-sidebar-inner {
    display: grid;
    gap: 18px;
    margin-top: 45px;
}

.phorest-filter-card {
    border: 1px solid #e9e1d8;
    background: #fff;
    padding: 22px 20px;
}

.phorest-filter-card label,
.phorest-filter-card h3 {
    display: block;
    color: #111;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    margin: 0 0 14px;
}

#phorest-category-search {
    width: 100%;
    min-height: 46px;
    border: 1px solid #e9e1d8;
    background: #faf8f5;
    color: #111;
    padding: 0 14px;
    font-size: 13px;
    outline: none;
}

#phorest-category-search:focus {
    border-color: var(--phorest-brand-color, #b58c56);
    background: #fff;
}

.phorest-sidebar-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.phorest-sidebar-list li {
    margin: 0;
}

.phorest-sidebar-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #222;
    text-decoration: none;
    padding: 9px 0;
    border-bottom: 1px solid #f0ebe5;
    transition: color 0.25s ease;
}

.phorest-sidebar-list a:hover {
    color: var(--phorest-brand-color, #b58c56);
}

.phorest-sidebar-list span {
    font-size: 13px;
    line-height: 1.45;
}

.phorest-sidebar-list em {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--phorest-brand-color, #b58c56);
    color: #fff;
    font-size: 10px;
    line-height: 22px;
    text-align: center;
    font-style: normal;
    flex: 0 0 22px;
}

.phorest-archive-main {
    min-width: 0;
}

.phorest-archive-toolbar {
    display: flex;
    justify-content: flex-end;
    color: #777;
    font-size: 13px;
    margin-bottom: 22px;
}

.phorest-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.phorest-archive-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid #e9e1d8;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: all 0.28s ease;
    overflow: hidden;
}

.phorest-archive-card:hover {
    border-color: var(--phorest-brand-color, #b58c56);
    transform: translateY(-4px);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.08);
}

.phorest-archive-card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #faf8f5;
    overflow: hidden;
}

.phorest-archive-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.45s ease;
}

.phorest-archive-card:hover .phorest-archive-card-image img {
    transform: scale(1.04);
}

.phorest-archive-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background:
        linear-gradient(rgba(255, 255, 255, 0.65), rgba(255, 255, 255, 0.65)),
        linear-gradient(135deg, #f7f1ea, #fff);
}

.phorest-archive-placeholder span {
    color: var(--phorest-brand-color, #b58c56);
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 11px;
    font-weight: 700;
}

.phorest-featured-badge {
    position: absolute;
    left: 16px;
    top: 16px;
    background: #111;
    color: #fff;
    padding: 7px 10px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 9px;
    font-weight: 700;
}

.phorest-archive-card-body {
    padding: 22px 20px 24px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.phorest-treatment-count {
    display: block;
    color: var(--phorest-brand-color, #b58c56);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    font-size: 10px;
    font-weight: 700;
    margin-bottom: 10px;
}

.phorest-archive-card-body h2 {
    color: #111;
    font-size: 18px;
    line-height: 1.25;
    font-weight: 600;
    margin: 0 0 10px;
    letter-spacing: -0.015em;
}

.phorest-archive-card-body p {
    color: #666;
    font-size: 13px;
    line-height: 1.65;
    margin: 0 0 20px;
}

.phorest-card-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    margin-top: auto;
    background: var(--phorest-brand-color, #b58c56);
    color: #fff;
    min-height: 38px;
    padding: 0 16px;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-size: 10px;
    font-weight: 700;
    transition: all 0.25s ease;
}

.phorest-archive-card:hover .phorest-card-action {
    background: #111;
}

.phorest-archive-card.is-hidden {
    display: none;
}

@media (max-width: 1100px) {
    .phorest-archive-shell {
        grid-template-columns: 230px minmax(0, 1fr);
        gap: 28px;
    }

    .phorest-archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .phorest-archive-hero {
        padding: 58px 18px 38px;
    }

    .phorest-archive-shell {
        display: block;
        padding: 0 18px 70px;
    }

    .phorest-archive-sidebar {
        position: relative;
        top: auto;
        margin-bottom: 26px;
    }

    .phorest-mobile-filter-toggle {
        display: block;
        width: 100%;
        min-height: 48px;
        border: 1px solid #111;
        background: #111;
        color: #fff;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-size: 11px;
        font-weight: 700;
        cursor: pointer;
        margin-bottom: 14px;
    }

    .phorest-sidebar-inner {
        margin-top: 0px;
    }

    .phorest-sidebar-inner {
        display: none;
    }

    .phorest-archive-sidebar.is-open .phorest-sidebar-inner {
        display: grid;
    }

    .phorest-archive-toolbar {
        justify-content: flex-start;
        margin-bottom: 18px;
    }

    .phorest-archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .phorest-archive-card-body {
        padding: 16px 13px 18px;
    }

    .phorest-archive-card-body h2 {
        font-size: 13px;
        line-height: 1.3;
    }

    .phorest-archive-card-body p {
        font-size: 11px;
        line-height: 1.55;
    }

    .phorest-treatment-count {
        font-size: 8px;
    }

    .phorest-card-action {
        min-height: 34px;
        padding: 0 12px;
        font-size: 8px;
    }
}

@media (max-width: 460px) {
    .phorest-archive-hero h1 {
        font-size: 40px;
    }

    .phorest-archive-grid {
        gap: 12px;
    }

    .phorest-archive-card-image {
        aspect-ratio: 1 / 0.92;
    }
}


.phorest-hidden{
    opacity:0;
    transform:translateY(40px);
    transition:.6s ease;
}

.phorest-visible{
    opacity:1;
    transform:translateY(0);
}






/* ---------------------------------------
   Luxury Link Cleanup
--------------------------------------- */

.phorest-archive-card,
.phorest-archive-card:hover,
.phorest-archive-card:focus,
.phorest-archive-card:active{
    text-decoration:none !important;
}

.phorest-archive-card *,
.phorest-sidebar-list a,
.phorest-sidebar-list a:hover,
.phorest-sidebar-list a:focus,
.phorest-sidebar-list a:active{
    text-decoration:none !important;
    box-shadow:none !important;
}

.phorest-archive-card h2{
    font-size:15px;
    font-weight:600;
    color:#111;
    transition:.25s ease;
    line-height: 25px;
}

/* .phorest-archive-card:hover h2{
    color:var(--phorest-brand-color, #b58c56);
} */

.phorest-archive-card p{
    color:#666;
    font-size:13px;
    line-height:1.7;
}

.phorest-treatment-count{
    text-decoration:none !important;
}

.phorest-sidebar-list a span{
    color:#222;
    font-size:11px;
    line-height:1.7;
    transition:.25s;
}

.phorest-sidebar-list a:hover span{
    color:var(--phorest-brand-color, #b58c56);
}

/* Number Badge */

.phorest-sidebar-list em{

    background:#f6f6f6;

    color:#111;

    border:1px solid #e7e7e7;

    font-weight:600;
}

/* Button */

.phorest-card-action{

    min-height:42px;

    padding:0 20px;

    letter-spacing:.12em;

    transition:.3s;
}

.phorest-archive-card:hover .phorest-card-action{

    background:#111;

    color:#fff;
}
/* =====================================================
   Booking Flow - Cart + Staff Selection
===================================================== */

.phorest-flow-page{
    background:#fff;
    color:#111;
    width:100%;
}

.phorest-flow-hero{
    max-width:980px;
    margin:0 auto;
    padding:82px 24px 54px;
    text-align:center;
}

.phorest-flow-eyebrow,
.phorest-flow-section-title span{
    display:inline-block;
    color:var(--phorest-brand-color, #b58c56);
    text-transform:uppercase;
    letter-spacing:.2em;
    font-size:11px;
    font-weight:700;
    margin-bottom:15px;
}

.phorest-flow-hero h1{
    color:#111;
    font-size:clamp(42px,6vw,74px);
    line-height:1;
    font-weight:500;
    letter-spacing:-.045em;
    margin:0 0 18px;
}

.phorest-flow-hero p{
    max-width:650px;
    margin:0 auto;
    color:#666;
    font-size:15px;
    line-height:1.8;
}

.phorest-flow-shell{
    max-width:1260px;
    margin:0 auto;
    padding:0 24px 95px;
    display:grid;
    grid-template-columns:minmax(0,68%) minmax(315px,32%);
    gap:42px;
    align-items:start;
}

.phorest-flow-main{
    min-width:0;
}

.phorest-flow-sidebar{
    position:sticky;
    top:28px;
    min-width:0;
}

.phorest-flow-steps{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    border:1px solid #e9e1d8;
    margin-bottom:28px;
    background:#fff;
}

.phorest-flow-steps div{
    padding:17px 14px;
    border-right:1px solid #e9e1d8;
    display:flex;
    align-items:center;
    gap:10px;
    color:#777;
}

.phorest-flow-steps div:last-child{
    border-right:0;
}

.phorest-flow-steps span{
    width:24px;
    height:24px;
    border-radius:50%;
    display:inline-grid;
    place-items:center;
    border:1px solid #e9e1d8;
    font-size:11px;
    flex:0 0 24px;
}

.phorest-flow-steps strong{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.phorest-flow-steps .is-active{
    color:#111;
    background:#fbf8f4;
}

.phorest-flow-steps .is-active span{
    background:var(--phorest-brand-color, #b58c56);
    border-color:var(--phorest-brand-color, #b58c56);
    color:#fff;
}

.phorest-flow-panel,
.phorest-flow-summary-card{
    border:1px solid #e9e1d8;
    background:#fff;
}

.phorest-flow-panel{
    padding:34px;
    margin-bottom:28px;
}

.phorest-flow-section-title{
    margin-bottom:24px;
}

.phorest-flow-section-title h2{
    color:#111;
    font-size:clamp(28px,3.2vw,44px);
    line-height:1.1;
    font-weight:500;
    letter-spacing:-.035em;
    margin:0 0 12px;
}

.phorest-flow-section-title p{
    color:#666;
    font-size:14px;
    line-height:1.75;
    max-width:720px;
    margin:0;
}

.phorest-flow-empty,
.phorest-no-staff-message{
    display:none;
    padding:22px;
    background:#faf8f5;
    color:#666;
    line-height:1.65;
    border:1px solid #efe7de;
}

.phorest-flow-cart-list{
    display:grid;
    gap:12px;
}

.phorest-flow-cart-item{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:18px 0;
    border-bottom:1px solid #eee6dd;
}

.phorest-flow-cart-item:first-child{
    border-top:1px solid #eee6dd;
}

.phorest-flow-cart-item strong{
    display:block;
    color:#111;
    font-size:15px;
    line-height:1.45;
    font-weight:600;
    margin-bottom:5px;
}

.phorest-flow-cart-item span{
    display:block;
    color:#777;
    font-size:12px;
    line-height:1.5;
}

.phorest-flow-cart-remove,
.phorest-flow-clear{
    border:0;
    background:transparent;
    color:var(--phorest-brand-color, #b58c56);
    padding:0;
    cursor:pointer;
    font-size:12px;
}

.phorest-flow-cart-remove:hover,
.phorest-flow-clear:hover{
    color:#111;
}

.phorest-flow-cart-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:22px;
}

.phorest-flow-secondary-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 18px;
    border:1px solid #111;
    color:#111 !important;
    text-decoration:none !important;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.1em;
    transition:.25s ease;
}

.phorest-flow-secondary-link:hover{
    background:#111;
    color:#fff !important;
}

.phorest-staff-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.phorest-staff-card{
    position:relative;
    display:grid;
    grid-template-columns:auto 76px minmax(0,1fr);
    gap:15px;
    align-items:center;
    min-height:132px;
    padding:20px;
    border:1px solid #e9e1d8;
    background:#fff;
    cursor:pointer;
    transition:.25s ease;
}

.phorest-staff-card:hover,
.phorest-staff-card.is-selected{
    border-color:var(--phorest-brand-color, #b58c56);
    background:#fbf8f4;
    box-shadow:0 18px 42px rgba(0,0,0,.06);
}

.phorest-staff-card.is-disabled{
    display:none;
}

.phorest-staff-card input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.phorest-staff-radio{
    width:16px;
    height:16px;
    border:1px solid #d2b58c;
    border-radius:50%;
    position:relative;
}

.phorest-staff-card input:checked + .phorest-staff-radio{
    border-color:var(--phorest-brand-color, #b58c56);
}

.phorest-staff-card input:checked + .phorest-staff-radio:after{
    content:"";
    position:absolute;
    inset:4px;
    border-radius:50%;
    background:var(--phorest-brand-color, #b58c56);
}

.phorest-staff-photo{
    width:76px;
    height:76px;
    border-radius:50%;
    overflow:hidden;
    background:#f7f3ee;
    display:grid;
    place-items:center;
    color:var(--phorest-brand-color, #b58c56);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:700;
}

.phorest-staff-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.phorest-staff-placeholder{
    font-size:26px;
    letter-spacing:0;
}

.phorest-staff-info{
    min-width:0;
}

.phorest-staff-info strong{
    display:block;
    color:#111;
    font-size:16px;
    line-height:1.35;
    font-weight:600;
    margin-bottom:5px;
}

.phorest-staff-info em{
    display:block;
    color:var(--phorest-brand-color, #b58c56);
    font-style:normal;
    font-size:11px;
    line-height:1.4;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:700;
    margin-bottom:7px;
}

.phorest-staff-info small{
    display:block;
    color:#666;
    font-size:12px;
    line-height:1.55;
}

.phorest-flow-summary-card{
    padding:30px 28px;
    box-shadow:0 28px 75px rgba(0,0,0,.075);
}

.phorest-flow-summary-card h3{
    color:#111;
    font-size:27px;
    line-height:1.2;
    font-weight:500;
    margin:0 0 22px;
}

.phorest-flow-summary-empty{
    padding:20px;
    background:#faf8f5;
    color:#777;
    text-align:center;
    font-size:13px;
    line-height:1.6;
    margin-bottom:18px;
}

.phorest-flow-summary-items{
    display:grid;
    gap:0;
    margin-bottom:18px;
}

.phorest-flow-summary-item{
    padding:13px 0;
    border-bottom:1px solid #eee6dd;
}

.phorest-flow-summary-item strong{
    display:block;
    color:#111;
    font-size:13px;
    line-height:1.45;
    font-weight:600;
    margin-bottom:5px;
}

.phorest-flow-summary-item span{
    display:block;
    color:#777;
    font-size:11px;
    line-height:1.5;
}

.phorest-flow-summary-totals{
    border-top:1px solid #e9e1d8;
    padding-top:18px;
    margin-bottom:22px;
}

.phorest-flow-summary-totals div{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}

.phorest-flow-summary-totals span{
    color:#666;
    font-size:13px;
}

.phorest-flow-summary-totals strong{
    color:#111;
    font-size:13px;
    font-weight:700;
    text-align:right;
}

.phorest-flow-primary-btn{
    width:100%;
    min-height:54px;
    border:1px solid var(--phorest-brand-color, #b58c56);
    background:var(--phorest-brand-color, #b58c56);
    color:#fff;
    cursor:pointer;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.1em;
    transition:.25s ease;
}

.phorest-flow-primary-btn:hover{
    background:#111;
    border-color:#111;
}

.phorest-flow-primary-btn:disabled{
    opacity:.45;
    cursor:not-allowed;
}

.phorest-next-placeholder{
    background:#faf8f5;
}

@media (max-width:1050px){
    .phorest-flow-shell{
        grid-template-columns:1fr;
    }

    .phorest-flow-sidebar{
        position:relative;
        top:auto;
    }
}

@media (max-width:760px){
    .phorest-flow-hero{
        padding:58px 18px 36px;
    }

    .phorest-flow-shell{
        padding:0 14px 70px;
    }

    .phorest-flow-steps{
        grid-template-columns:1fr;
    }

    .phorest-flow-steps div{
        border-right:0;
        border-bottom:1px solid #e9e1d8;
    }

    .phorest-flow-steps div:last-child{
        border-bottom:0;
    }

    .phorest-flow-panel,
    .phorest-flow-summary-card{
        padding:24px 18px;
    }

    .phorest-staff-grid{
        grid-template-columns:1fr;
    }

    .phorest-staff-card{
        grid-template-columns:auto 62px minmax(0,1fr);
        min-height:112px;
        padding:16px 14px;
    }

    .phorest-staff-photo{
        width:62px;
        height:62px;
    }

    .phorest-flow-cart-actions{
        align-items:stretch;
        flex-direction:column;
    }
}

/* ---------------------------------------------------------
   Booking Flow - Date & Time Selection
--------------------------------------------------------- */

.phorest-flow-steps div.is-complete{
    background:#faf8f5;
}

.phorest-flow-steps div.is-complete span{
    background:#111;
    color:#fff;
    border-color:#111;
}

.phorest-date-panel,
.phorest-time-panel{
    background:#fff;
}

.phorest-date-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px;
}

.phorest-date-card{
    min-height:82px;
    border:1px solid #e9e1d8;
    background:#fff;
    color:#111;
    cursor:pointer;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    transition:.25s ease;
}

.phorest-date-card span,
.phorest-date-card em{
    color:#8a8a8a;
    font-size:11px;
    font-style:normal;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:700;
}

.phorest-date-card strong{
    color:#111;
    font-size:24px;
    line-height:1;
    font-weight:500;
}

.phorest-date-card:hover,
.phorest-date-card.is-selected{
    border-color:var(--phorest-brand-color, #b58c56);
    background:#fbf8f4;
    transform:translateY(-2px);
}

.phorest-date-card.is-selected strong,
.phorest-date-card.is-selected span,
.phorest-date-card.is-selected em{
    color:var(--phorest-brand-color, #b58c56);
}

.phorest-availability-loading,
.phorest-availability-error{
    display:none;
    padding:18px 20px;
    margin-bottom:18px;
    font-size:14px;
    line-height:1.7;
}

.phorest-availability-loading{
    border:1px solid #e9e1d8;
    background:#faf8f5;
    color:#666;
}

.phorest-availability-error{
    border:1px solid #e8d4bd;
    background:#fbf8f4;
    color:#8a5d25;
}

.phorest-time-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.phorest-time-card{
    min-height:58px;
    border:1px solid #e9e1d8;
    background:#fff;
    color:#111;
    cursor:pointer;
    padding:10px 8px;
    text-align:center;
    transition:.25s ease;
}

.phorest-time-card strong{
    display:block;
    color:#111;
    font-size:14px;
    font-weight:700;
    margin-bottom:6px;
}

.phorest-time-card span{
    display:block;
    color:#777;
    font-size:9px;
    line-height:1.4;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.phorest-time-card:hover,
.phorest-time-card.is-selected{
    border-color:var(--phorest-brand-color, #b58c56);
    background:#fbf8f4;
    transform:translateY(-2px);
}

.phorest-time-card.is-selected strong,
.phorest-time-card.is-selected span{
    color:var(--phorest-brand-color, #b58c56);
}

.phorest-flow-next-btn{
    margin-top:12px;
    background:#111;
    border-color:#111;
}

.phorest-flow-next-btn:hover{
    background:var(--phorest-brand-color, #b58c56);
    border-color:var(--phorest-brand-color, #b58c56);
}

.phorest-flow-next-btn:disabled{
    background:#d9d0c6;
    border-color:#d9d0c6;
    color:#fff;
}

@media (max-width:900px){
    .phorest-date-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }

    .phorest-time-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media (max-width:600px){
    .phorest-date-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:10px;
    }

    .phorest-date-card{
        min-height:92px;
    }

    .phorest-date-card strong{
        font-size:24px;
    }

    .phorest-time-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:10px;
    }
}

/* ---------------------------------------------------------
   Booking Flow - Extended Date Picker
--------------------------------------------------------- */

.phorest-date-card.is-date-hidden{
    display:none;
}

.phorest-load-more-dates{
    margin-top:18px;
    min-height:48px;
    padding:0 22px;
    border:1px solid #111;
    background:#fff;
    color:#111;
    cursor:pointer;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:11px;
    font-weight:700;
    transition:.25s ease;
}

.phorest-load-more-dates:hover{
    background:#111;
    color:#fff;
}

/* ---------------------------------------
   Booking Wizard Polish
--------------------------------------- */
.phorest-flow-main [data-flow-section]{
    display:none;
}

.phorest-flow-main [data-flow-section].is-flow-active{
    display:block;
}

.phorest-cart-panel.is-flow-active + .phorest-staff-panel.is-flow-active{
    margin-top:0;
}

.phorest-wizard-actions{
    margin-top:28px;
    display:flex;
    justify-content:flex-end;
    gap:12px;
}

.phorest-wizard-actions--split{
    justify-content:space-between;
}

.phorest-flow-secondary-btn{
    min-height:54px;
    padding:0 22px;
    border:1px solid #111;
    background:#fff;
    color:#111;
    cursor:pointer;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.1em;
    transition:.25s ease;
}

.phorest-flow-secondary-btn:hover{
    background:#111;
    color:#fff;
}

.phorest-flow-summary-card{
    position:sticky;
    top:28px;
}

.phorest-time-grid{
    display:block;
}

.phorest-time-period{
    margin-bottom:30px;
}

.phorest-time-period:last-child{
    margin-bottom:0;
}

.phorest-time-period h3{
    color:#111;
    font-size:18px;
    font-weight:600;
    margin:0 0 14px;
    padding-bottom:10px;
    border-bottom:1px solid #eee6dd;
}

.phorest-time-period-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
}

.phorest-flow-steps div{
    cursor:default;
}

.phorest-flow-steps div.is-complete strong:after{
    content:" ✓";
    color:var(--phorest-brand-color, #b58c56);
}

@media (max-width:760px){
    .phorest-wizard-actions,
    .phorest-wizard-actions--split{
        flex-direction:column;
    }

    .phorest-flow-secondary-btn,
    .phorest-wizard-actions .phorest-flow-primary-btn{
        width:100%;
    }

    .phorest-time-period-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* ---------------------------------------------------------
   Booking Wizard - Client Details + Review Polish
--------------------------------------------------------- */
.phorest-wizard-actions--split{
    display:grid;
    grid-template-columns:minmax(180px, 220px) minmax(0, 1fr);
    gap:18px;
    align-items:stretch;
}

.phorest-wizard-actions--split .phorest-flow-secondary-btn,
.phorest-wizard-actions--split .phorest-flow-primary-btn{
    width:100%;
    min-height:58px;
}

.phorest-client-choice{
    display:inline-grid;
    grid-template-columns:1fr 1fr;
    border:1px solid #e9e1d8;
    margin-bottom:28px;
}

.phorest-client-choice button{
    min-height:50px;
    padding:0 22px;
    border:0;
    border-right:1px solid #e9e1d8;
    background:#fff;
    color:#777;
    cursor:pointer;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:11px;
    font-weight:700;
}

.phorest-client-choice button:last-child{
    border-right:0;
}

.phorest-client-choice button.is-active{
    background:#111;
    color:#fff;
}

.phorest-client-form-section{
    display:none;
}

.phorest-client-form-section.is-active{
    display:block;
}

.phorest-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.phorest-client-form label,
.phorest-form-full{
    display:block;
}

.phorest-client-form label span,
.phorest-form-full span{
    display:block;
    color:#111;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.11em;
    margin-bottom:9px;
}

.phorest-client-form input,
.phorest-client-form textarea{
    width:100%;
    border:1px solid #e9e1d8;
    background:#fff;
    color:#111;
    font-size:15px;
    line-height:1.5;
    padding:15px 16px;
    outline:none;
    transition:.25s ease;
}

.phorest-client-form input:focus,
.phorest-client-form textarea:focus{
    border-color:var(--phorest-brand-color, #b58c56);
    box-shadow:0 0 0 3px rgba(181,140,86,.08);
}

.phorest-form-full{
    margin-top:18px;
}

.phorest-returning-notice{
    padding:22px;
    border:1px solid #e9e1d8;
    background:#faf8f5;
    margin-bottom:22px;
}

.phorest-returning-notice strong{
    display:block;
    color:#111;
    font-size:15px;
    margin-bottom:8px;
}

.phorest-returning-notice p{
    color:#666;
    font-size:14px;
    line-height:1.7;
    margin:0;
}

.phorest-form-message{
    display:none;
    margin-top:18px;
    padding:14px 16px;
    border:1px solid #d8c1a1;
    background:#fbf8f4;
    color:#7a562c;
    font-size:14px;
    line-height:1.6;
}

.phorest-form-message.is-error{
    border-color:#d9a6a6;
    background:#fff7f7;
    color:#9d3e3e;
}

.phorest-review-box{
    border:1px solid #e9e1d8;
    background:#fff;
    padding:0;
}

.phorest-review-grid{
    display:grid;
    grid-template-columns:1.15fr 1fr;
}

.phorest-review-section{
    padding:28px;
    border-right:1px solid #e9e1d8;
    border-bottom:1px solid #e9e1d8;
}

.phorest-review-section:nth-child(2){
    border-right:0;
}

.phorest-review-section:last-child{
    grid-column:1 / -1;
    border-right:0;
    border-bottom:0;
}

.phorest-review-section h3{
    color:var(--phorest-brand-color, #b58c56);
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:12px;
    font-weight:700;
    margin:0 0 18px;
}

.phorest-review-services{
    list-style:none;
    padding:0;
    margin:0;
}

.phorest-review-services li{
    padding:14px 0;
    border-bottom:1px solid #eee6dd;
}

.phorest-review-services li:first-child{
    padding-top:0;
}

.phorest-review-services li:last-child{
    border-bottom:0;
    padding-bottom:0;
}

.phorest-review-services strong,
.phorest-review-section p strong{
    display:block;
    color:#111;
    font-size:15px;
    font-weight:700;
    line-height:1.45;
}

.phorest-review-services span,
.phorest-review-section p span{
    display:block;
    color:#777;
    font-size:12px;
    line-height:1.6;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.phorest-review-section p{
    display:grid;
    grid-template-columns:130px 1fr;
    gap:16px;
    margin:0;
    padding:12px 0;
    border-bottom:1px solid #eee6dd;
}

.phorest-review-section p:last-child{
    border-bottom:0;
}

@media (max-width:760px){
    .phorest-wizard-actions--split{
        grid-template-columns:1fr;
    }

    .phorest-form-grid,
    .phorest-review-grid{
        grid-template-columns:1fr;
    }

    .phorest-review-section,
    .phorest-review-section:nth-child(2){
        border-right:0;
    }

    .phorest-review-section:last-child{
        grid-column:auto;
    }

    .phorest-review-section p{
        grid-template-columns:1fr;
        gap:4px;
    }

    .phorest-client-choice{
        display:grid;
        grid-template-columns:1fr;
        width:100%;
    }

    .phorest-client-choice button{
        border-right:0;
        border-bottom:1px solid #e9e1d8;
    }

    .phorest-client-choice button:last-child{
        border-bottom:0;
    }
}

/* ---------------------------------------------------------
   Booking Wizard Final Navigation Polish
--------------------------------------------------------- */
.phorest-flow-steps{
    overflow:hidden;
}

.phorest-flow-steps button,
.phorest-flow-steps div{
    appearance:none;
    -webkit-appearance:none;
    border:0;
    border-right:1px solid #e9e1d8;
    background:#fff;
    padding:17px 14px;
    display:flex;
    align-items:center;
    gap:10px;
    color:#777;
    text-align:left;
    cursor:pointer;
    transition:background .25s ease, color .25s ease, opacity .25s ease;
}

.phorest-flow-steps button:last-child,
.phorest-flow-steps div:last-child{
    border-right:0;
}

.phorest-flow-steps button:hover{
    background:#fbf8f4;
    color:#111;
}

.phorest-flow-steps button:disabled{
    cursor:not-allowed;
    opacity:.55;
}

.phorest-step-icon,
.phorest-flow-steps span{
    width:26px;
    height:26px;
    border-radius:50%;
    display:inline-grid;
    place-items:center;
    border:1px solid #e9e1d8;
    flex:0 0 26px;
    background:#fff;
    color:#777;
}

.phorest-step-icon svg{
    width:14px;
    height:14px;
    display:block;
    fill:currentColor;
}

.phorest-flow-steps strong{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:700;
}

.phorest-flow-steps .is-active{
    color:#111;
    background:#fbf8f4;
}

.phorest-flow-steps .is-active .phorest-step-icon,
.phorest-flow-steps .is-active span{
    background:var(--phorest-brand-color, #b58c56);
    border-color:var(--phorest-brand-color, #b58c56);
    color:#fff;
}

.phorest-flow-steps .is-complete{
    color:#111;
}

.phorest-flow-steps .is-complete .phorest-step-icon,
.phorest-flow-steps .is-complete span{
    background:#111;
    border-color:#111;
    color:#fff;
}

.phorest-flow-steps div.is-complete strong:after,
.phorest-flow-steps button.is-complete strong:after{
    content:" ✓";
    color:var(--phorest-brand-color, #b58c56);
}

.phorest-wizard-actions--split{
    display:grid !important;
    grid-template-columns:minmax(190px, 220px) minmax(0, 1fr) !important;
    gap:18px !important;
    align-items:stretch !important;
}

.phorest-wizard-actions--split .phorest-flow-secondary-btn,
.phorest-wizard-actions--split .phorest-flow-primary-btn,
.phorest-flow-primary-btn,
.phorest-flow-secondary-btn{
    min-height:58px !important;
    height:58px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1.1 !important;
    box-sizing:border-box !important;
    border-radius:0 !important;
    text-decoration:none !important;
    box-shadow:none !important;
}

.phorest-flow-primary-btn,
.phorest-flow-next-btn,
button.phorest-flow-primary-btn,
.phorest-client-form button.phorest-flow-primary-btn{
    background:var(--phorest-brand-color, #b58c56) !important;
    border:1px solid var(--phorest-brand-color, #b58c56) !important;
    color:#fff !important;
}

.phorest-flow-primary-btn:hover,
.phorest-flow-next-btn:hover,
button.phorest-flow-primary-btn:hover,
.phorest-client-form button.phorest-flow-primary-btn:hover{
    background:#111 !important;
    border-color:#111 !important;
    color:#fff !important;
}

.phorest-flow-primary-btn:disabled,
.phorest-flow-next-btn:disabled,
button.phorest-flow-primary-btn:disabled{
    background:#e3d1b8 !important;
    border-color:#e3d1b8 !important;
    color:#fff !important;
    opacity:1 !important;
    cursor:not-allowed !important;
}

.phorest-flow-secondary-btn,
button.phorest-flow-secondary-btn{
    background:#fff !important;
    border:1px solid #111 !important;
    color:#111 !important;
}

.phorest-flow-secondary-btn:hover,
button.phorest-flow-secondary-btn:hover{
    background:#111 !important;
    color:#fff !important;
}

@media (max-width:760px){
    .phorest-flow-steps{
        display:grid;
        grid-template-columns:1fr;
    }

    .phorest-flow-steps button,
    .phorest-flow-steps div{
        border-right:0;
        border-bottom:1px solid #e9e1d8;
        min-height:54px;
    }

    .phorest-flow-steps button:last-child,
    .phorest-flow-steps div:last-child{
        border-bottom:0;
    }

    .phorest-wizard-actions--split{
        grid-template-columns:1fr !important;
    }
}


/* Booking wizard polish: consistent action buttons + brand colors */
.phorest-wizard-actions,
.phorest-wizard-actions--split{
    display:grid !important;
    grid-template-columns:240px minmax(0,1fr) !important;
    gap:24px !important;
    align-items:stretch !important;
    justify-content:initial !important;
}

.phorest-wizard-actions button,
.phorest-wizard-actions .phorest-flow-secondary-btn,
.phorest-wizard-actions .phorest-flow-primary-btn,
.phorest-wizard-actions .phorest-flow-next-btn{
    width:100% !important;
    height:58px !important;
    min-height:58px !important;
    max-height:58px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 24px !important;
    margin:0 !important;
    line-height:1 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-decoration:none !important;
    appearance:none !important;
    -webkit-appearance:none !important;
}

.phorest-flow-primary-btn,
.phorest-flow-next-btn,
button.phorest-flow-primary-btn,
button.phorest-flow-next-btn,
.phorest-client-form button.phorest-flow-primary-btn,
.phorest-client-form button.phorest-flow-next-btn{
    background:var(--phorest-brand-color, #b58c56) !important;
    border-color:var(--phorest-brand-color, #b58c56) !important;
    color:#fff !important;
}

.phorest-flow-primary-btn:hover,
.phorest-flow-next-btn:hover,
button.phorest-flow-primary-btn:hover,
button.phorest-flow-next-btn:hover{
    background:#111 !important;
    border-color:#111 !important;
    color:#fff !important;
}

.phorest-flow-primary-btn:disabled,
.phorest-flow-next-btn:disabled,
button.phorest-flow-primary-btn:disabled,
button.phorest-flow-next-btn:disabled{
    background:#ded0bc !important;
    border-color:#ded0bc !important;
    color:#fff !important;
    opacity:1 !important;
    cursor:not-allowed !important;
}

.phorest-flow-secondary-btn,
button.phorest-flow-secondary-btn{
    background:#fff !important;
    border:1px solid #111 !important;
    color:#111 !important;
}

.phorest-flow-secondary-btn:hover,
button.phorest-flow-secondary-btn:hover{
    background:#111 !important;
    border-color:#111 !important;
    color:#fff !important;
}

.phorest-form-message{
    display:none;
    margin:18px 0 0;
    padding:14px 16px;
    border:1px solid #d9c8b1;
    background:#fbf8f4;
    color:#604623;
    font-size:13px;
    line-height:1.6;
}

.phorest-form-message.is-error{
    border-color:#b77b6b;
    background:#fff7f5;
    color:#7b2e20;
}

@media (max-width:768px){
    .phorest-wizard-actions,
    .phorest-wizard-actions--split{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }
}

/* Final booking actions fix */
.phorest-wizard-actions:not(.phorest-wizard-actions--split){
    display:flex !important;
    justify-content:flex-start !important;
    gap:0 !important;
}

.phorest-wizard-actions:not(.phorest-wizard-actions--split) .phorest-flow-primary-btn{
    width:auto !important;
    min-width:280px !important;
}

.phorest-flow-summary-card > .phorest-flow-primary-btn{
    width:100% !important;
}

.phorest-terms-check{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:20px;
    padding:16px 18px;
    border:1px solid #e9e1d8;
    background:#faf8f5;
    color:#111;
    font-size:13px;
    line-height:1.5;
}

.phorest-terms-check input{
    margin-top:2px;
}

.phorest-success-box{
    border:1px solid #d8c2a3;
    background:#fbf8f4;
    padding:28px;
}

.phorest-success-box h3{
    margin:0 0 10px;
    color:#111;
    font-size:24px;
    font-weight:600;
}

.phorest-success-box p{
    margin:0;
    color:#555;
    font-size:14px;
    line-height:1.7;
}

@media (max-width:768px){
    .phorest-wizard-actions:not(.phorest-wizard-actions--split) .phorest-flow-primary-btn{
        width:100% !important;
        min-width:0 !important;
    }
}

/* Final brand-colour enforcement */
.phorest-booking-app input[type="checkbox"],
.phorest-treatment-page input[type="checkbox"],
.phorest-booking-app input[type="radio"],
.phorest-treatment-page input[type="radio"]{
    accent-color:var(--phorest-brand-color, #b58c56) !important;
}

.phorest-service-card:hover,
.phorest-service-card.is-selected,
.phorest-treatment-page .phorest-service-card:hover,
.phorest-treatment-page .phorest-service-card.is-selected{
    border-color:var(--phorest-brand-color, #b58c56) !important;
}

.phorest-service-card input:checked + .phorest-service-check,
.phorest-service-card.is-selected .phorest-service-check,
.phorest-treatment-page .phorest-service-card input:checked + .phorest-service-check,
.phorest-treatment-page .phorest-service-card.is-selected .phorest-service-check{
    background:var(--phorest-brand-color, #b58c56) !important;
    border-color:var(--phorest-brand-color, #b58c56) !important;
}

.phorest-flow-primary-btn:disabled,
.phorest-flow-next-btn:disabled,
button.phorest-flow-primary-btn:disabled,
button.phorest-flow-next-btn:disabled,
.phorest-client-form button.phorest-flow-primary-btn:disabled,
.phorest-client-form button.phorest-flow-next-btn:disabled{
    background:var(--phorest-brand-color, #b58c56) !important;
    border-color:var(--phorest-brand-color, #b58c56) !important;
    color:#fff !important;
    opacity:.42 !important;
    cursor:not-allowed !important;
    filter:saturate(.9) !important;
}



.phorest-payment-note {
    margin-top: 14px;
}

.phorest-payment-warning {
    margin-top: 14px;
    color: #8a5a16;
}

.phorest-payment-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 14px 28px;
    margin-top: 14px;
    background: var(--phorest-brand, #b58c56);
    color: #fff !important;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 12px;
    font-weight: 700;
}

.phorest-payment-button:hover {
    color: #fff !important;
    opacity: .92;
}

.phorest-pay-deposit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 22px;
    margin-top: 14px;
    border-radius: 0;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
    border: 1px solid currentColor;
}


/* Final services-only polish */
.phorest-any-staff-card{grid-column:1 / -1;}
.phorest-date-card{padding:10px 6px;}
.phorest-date-card span,.phorest-date-card em{font-size:10px;}
.phorest-time-period{margin-bottom:22px;}
.phorest-time-period h3{font-size:16px;margin-bottom:10px;padding-bottom:8px;}
@media (max-width:900px){.phorest-date-grid{grid-template-columns:repeat(4,minmax(0,1fr));}.phorest-time-period-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:560px){.phorest-date-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.phorest-date-card{min-height:76px}.phorest-time-period-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* Final booking polish: service images + lighter text */
.phorest-flow-cart-item{
    grid-template-columns:76px minmax(0,1fr) auto;
    align-items:center;
}
.phorest-flow-cart-thumb,
.phorest-flow-summary-thumb,
.phorest-review-service-thumb{
    display:block;
    overflow:hidden;
    background:#faf7f2;
    border:1px solid #efe5da;
    color:var(--phorest-brand-color,#b58c56);
    flex:0 0 auto;
    text-align:center;
}
.phorest-flow-cart-thumb{
    width:64px;
    height:64px;
}
.phorest-flow-summary-thumb{
    width:54px;
    height:54px;
}
.phorest-review-service-thumb{
    width:70px;
    height:70px;
}
.phorest-flow-cart-thumb img,
.phorest-flow-summary-thumb img,
.phorest-review-service-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.phorest-flow-cart-thumb.is-placeholder,
.phorest-flow-summary-thumb.is-placeholder,
.phorest-review-service-thumb.is-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    font-weight:400;
}
.phorest-flow-summary-item{
    display:grid;
    grid-template-columns:54px minmax(0,1fr);
    gap:12px;
    align-items:center;
}
.phorest-review-services li{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:14px;
    align-items:center;
}
.phorest-flow-cart-item strong,
.phorest-flow-summary-item strong,
.phorest-review-services strong,
.phorest-review-section p strong,
.phorest-flow-summary-totals strong,
.phorest-staff-info strong,
.phorest-time-card strong,
.phorest-date-card strong{
    font-weight:400 !important;
}
.phorest-flow-section-title h2,
.phorest-flow-hero h1,
.phorest-flow-summary-card h3{
    font-weight:500 !important;
}
.phorest-flow-section-title span,
.phorest-review-section h3,
.phorest-summary-label{
    font-weight:600 !important;
}
@media(max-width:720px){
    .phorest-flow-cart-item{
        grid-template-columns:56px minmax(0,1fr);
    }
    .phorest-flow-cart-item .phorest-flow-cart-remove{
        grid-column:2;
        justify-self:start;
        margin-top:4px;
    }
    .phorest-flow-cart-thumb{
        width:52px;
        height:52px;
    }
    .phorest-review-services li{
        grid-template-columns:58px minmax(0,1fr);
    }
    .phorest-review-service-thumb{
        width:58px;
        height:58px;
    }
}

/* Logged-in Phorest clients skip the details step. */
[data-step-indicator="details"][hidden],
[data-step-nav="details"][hidden],
[data-flow-section="details"][hidden]{display:none!important;}

/* Multi-treatment individual appointment scheduling */
.phorest-flow-cart-item.is-active-treatment{
    background:#fbf8f3;
    border-radius:14px;
    padding-left:14px;
    padding-right:14px;
    box-shadow:inset 0 0 0 1px rgba(181,140,86,.18);
}

.phorest-appointment-status{
    display:block;
    margin-top:6px;
    color:#3f3428;
    font-size:12px;
    font-style:normal;
    line-height:1.5;
}

.phorest-flow-cart-item.is-scheduled .phorest-appointment-status{
    color:#6f552f;
}

.phorest-flow-cart-actions-mini{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.phorest-flow-cart-schedule{
    border:1px solid rgba(181,140,86,.45);
    background:#fff;
    color:#111;
    border-radius:999px;
    min-height:34px;
    padding:0 14px;
    font-size:12px;
    letter-spacing:.02em;
    cursor:pointer;
    transition:all .22s ease;
}

.phorest-flow-cart-schedule:hover{
    background:#111;
    border-color:#111;
    color:#fff;
}

.phorest-review-appointment-line{
    display:block;
    margin-top:6px;
    color:#6f552f;
    font-size:12px;
    line-height:1.5;
}

.phorest-review-appointment-line.is-missing{
    color:#b24b4b;
}

@media (max-width: 640px){
    .phorest-flow-cart-item{
        grid-template-columns:1fr;
        align-items:flex-start;
    }
    .phorest-flow-cart-actions-mini{
        justify-content:flex-start;
    }
}

/* Compact schedule modal for per-treatment dates and times */
html.phorest-modal-open,
html.phorest-modal-open body {
    overflow: hidden;
}

.phorest-schedule-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
}

.phorest-schedule-modal.is-open {
    display: block;
}

.phorest-schedule-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(18, 16, 14, 0.56);
    backdrop-filter: blur(2px);
}

.phorest-schedule-modal__dialog {
    position: relative;
    width: min(920px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    margin: 24px auto;
    overflow: auto;
    background: #fff;
    border: 1px solid rgba(190, 145, 83, 0.25);
    border-radius: 18px;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.24);
    padding: 30px;
    scrollbar-width: thin;
    scrollbar-color: #bd8d4d #f6efe8;
}

.phorest-schedule-modal__dialog::-webkit-scrollbar {
    width: 8px;
}

.phorest-schedule-modal__dialog::-webkit-scrollbar-track {
    background: #f6efe8;
    border-radius: 999px;
}

.phorest-schedule-modal__dialog::-webkit-scrollbar-thumb {
    background: #bd8d4d;
    border-radius: 999px;
}

.phorest-schedule-modal__close {
    position: absolute;
    top: 18px;
    right: 22px;
    border: 0;
    background: transparent;
    color: #8c8c8c;
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
}

.phorest-schedule-modal__head {
    padding-right: 44px;
    margin-bottom: 20px;
}

.phorest-schedule-modal__head span {
    display: block;
    margin-bottom: 8px;
    color: #bd8d4d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.phorest-schedule-modal__head h2 {
    margin: 0 0 8px;
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 400;
    letter-spacing: -0.04em;
}

.phorest-schedule-modal__head p {
    margin: 0;
    color: #6f6a66;
    font-size: 16px;
}

.phorest-schedule-modal__service {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    margin-bottom: 20px;
    border: 1px solid #eadfd4;
    background: #fbf7f2;
}

.phorest-schedule-modal__thumb {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #f5eee7;
    color: #9a6a32;
    border: 1px solid #eadfd4;
    font-size: 24px;
}

.phorest-schedule-modal__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.phorest-schedule-modal__service strong,
.phorest-schedule-modal__service span {
    display: block;
}

.phorest-schedule-modal__service strong {
    margin-bottom: 4px;
    font-size: 17px;
    font-weight: 500;
}

.phorest-schedule-modal__service span {
    color: #77716d;
    font-size: 13px;
    text-transform: uppercase;
}

.phorest-schedule-modal__staff {
    margin-bottom: 20px;
}

.phorest-schedule-modal__staff h3,
.phorest-schedule-modal__time-group h3 {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.phorest-schedule-modal__staff-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.phorest-schedule-modal__staff-card {
    display: grid;
    grid-template-columns: 48px 1fr;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px;
    border: 1px solid #eadfd4;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.phorest-schedule-modal__staff-card.is-selected {
    border-color: #bd8d4d;
    background: #fbf7f2;
    box-shadow: 0 12px 30px rgba(189, 141, 77, 0.12);
}

.phorest-schedule-modal__staff-card > span {
    grid-row: span 2;
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #f5eee7;
    color: #9a6a32;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
}

.phorest-schedule-modal__staff-card strong,
.phorest-schedule-modal__staff-card em {
    display: block;
}

.phorest-schedule-modal__staff-card strong {
    font-size: 14px;
    font-weight: 600;
}

.phorest-schedule-modal__staff-card em {
    color: #9a6a32;
    font-size: 11px;
    font-style: normal;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.phorest-schedule-modal__dates {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
}

.phorest-schedule-modal__date {
    display: flex;
    min-height: 82px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    border: 1px solid #eadfd4;
    background: #fff;
    color: #1d1b19;
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.phorest-schedule-modal__date:hover,
.phorest-schedule-modal__date.is-selected {
    border-color: #bd8d4d;
    background: #fbf7f2;
    transform: translateY(-1px);
}

.phorest-schedule-modal__date span,
.phorest-schedule-modal__date em {
    color: #77716d;
    font-size: 12px;
    font-style: normal;
    text-transform: uppercase;
}

.phorest-schedule-modal__date strong {
    font-size: 24px;
    font-weight: 400;
}

.phorest-schedule-modal__status {
    display: none;
    margin: 16px 0;
    padding: 12px 14px;
    border: 1px solid #eadfd4;
    background: #fbf7f2;
    color: #6f5636;
}

.phorest-schedule-modal.is-time-step .phorest-schedule-modal__status {
    display: block;
}

.phorest-schedule-modal__times {
    display: none;
}

.phorest-schedule-modal.is-time-step .phorest-schedule-modal__dates {
    display: none;
}

.phorest-schedule-modal.is-time-step .phorest-schedule-modal__times {
    display: block;
}

.phorest-schedule-modal__time-group {
    margin-top: 18px;
}

.phorest-schedule-modal__time-group > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.phorest-schedule-modal__time {
    min-height: 70px;
    padding: 12px;
    border: 1px solid #eadfd4;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.phorest-schedule-modal__time:hover,
.phorest-schedule-modal__time.is-selected {
    border-color: #bd8d4d;
    background: #fbf7f2;
    transform: translateY(-1px);
}

.phorest-schedule-modal__time strong,
.phorest-schedule-modal__time span {
    display: block;
}

.phorest-schedule-modal__time strong {
    margin-bottom: 4px;
    font-size: 16px;
    font-weight: 600;
}

.phorest-schedule-modal__time span {
    color: #77716d;
    font-size: 12px;
}

.phorest-schedule-modal__footer {
    display: none;
    gap: 12px;
    margin-top: 24px;
}

.phorest-schedule-modal.is-time-step .phorest-schedule-modal__footer {
    display: flex;
}

.phorest-schedule-modal__back,
.phorest-schedule-modal__done {
    flex: 1;
    min-height: 50px;
    border: 1px solid #bd8d4d;
    background: #fff;
    color: #8f6330;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.phorest-schedule-modal__done {
    background: #bd8d4d;
    color: #fff;
}

@media (max-width: 780px) {
    .phorest-schedule-modal__dialog {
        width: calc(100vw - 20px);
        max-height: calc(100vh - 20px);
        margin: 10px auto;
        padding: 22px 16px;
        border-radius: 14px;
    }

    .phorest-schedule-modal__head h2 {
        font-size: 32px;
    }

    .phorest-schedule-modal__staff-grid,
    .phorest-schedule-modal__time-group > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .phorest-schedule-modal__dates {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .phorest-schedule-modal__staff-grid,
    .phorest-schedule-modal__time-group > div {
        grid-template-columns: 1fr;
    }

    .phorest-schedule-modal__dates {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .phorest-schedule-modal__footer {
        flex-direction: column;
    }
}

/* v33: compact per-treatment scheduler and dates review step */
.phorest-dates-times-review {
    display: grid;
    gap: 14px;
}
.phorest-dates-times-row {
    display: grid;
    grid-template-columns: 70px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 14px;
    border: 1px solid #eadfd4;
    background: #fff;
}
.phorest-dates-times-row.is-missing {
    background: #fbf7f2;
}
.phorest-dates-times-row strong,
.phorest-dates-times-row span,
.phorest-dates-times-row em {
    display: block;
}
.phorest-dates-times-row strong {
    margin-bottom: 4px;
    font-size: 17px;
    font-weight: 500;
}
.phorest-dates-times-row span {
    color: #77716d;
    font-size: 13px;
}
.phorest-dates-times-status {
    margin-top: 8px;
    font-style: normal;
    color: #8f6330;
}
.phorest-dates-times-status.is-missing {
    color: #9a5a3a;
}
.phorest-dates-times-row button,
.phorest-flow-cart-schedule {
    min-width: 116px;
    min-height: 42px;
    border: 1px solid #bd8d4d;
    border-radius: 999px;
    background: #fff;
    color: #8f6330;
    font-weight: 500;
    cursor: pointer;
}
.phorest-logged-client-notice {
    margin-bottom: 22px;
    padding: 18px;
    border: 1px solid #eadfd4;
    background: #fbf7f2;
}
.phorest-logged-client-notice strong,
.phorest-logged-client-notice p {
    display: block;
    margin: 0 0 8px;
}
.phorest-logged-client-notice button {
    margin-top: 8px;
    padding: 12px 18px;
    border: 1px solid #bd8d4d;
    background: #fff;
    color: #8f6330;
    cursor: pointer;
}
.phorest-client-form input:disabled,
.phorest-client-form textarea:disabled,
.phorest-client-choice button:disabled {
    opacity: .75;
    cursor: not-allowed;
    background: #f8f4ef;
}
.phorest-flow-summary-item em {
    display: block;
    margin-top: 5px;
    color: #8f6330;
    font-size: 12px;
    font-style: normal;
}
.phorest-schedule-modal__dialog {
    width: min(820px, calc(100vw - 32px));
    padding: 24px;
}
.phorest-schedule-modal__head {
    margin-bottom: 14px;
}
.phorest-schedule-modal__head h2 {
    font-size: clamp(30px, 3.2vw, 42px);
}
.phorest-schedule-modal__head p {
    font-size: 14px;
}
.phorest-schedule-modal__service {
    padding: 10px;
    margin-bottom: 14px;
}
.phorest-schedule-modal__thumb {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
    font-size: 20px;
}
.phorest-schedule-modal__staff {
    margin-bottom: 14px;
}
.phorest-schedule-modal__staff-grid {
    gap: 8px;
}
.phorest-schedule-modal__staff-card {
    grid-template-columns: 40px 1fr;
    gap: 8px;
    padding: 10px;
}
.phorest-schedule-modal__staff-card > span {
    width: 40px;
    height: 40px;
}
.phorest-schedule-modal__dates {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}
.phorest-schedule-modal__date {
    min-height: 62px;
    gap: 1px;
}
.phorest-schedule-modal__date span,
.phorest-schedule-modal__date em {
    font-size: 10px;
}
.phorest-schedule-modal__date strong {
    font-size: 20px;
}
.phorest-schedule-modal__time-group {
    margin-top: 12px;
}
.phorest-schedule-modal__time-group > div {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}
.phorest-schedule-modal__time {
    min-height: 54px;
    padding: 9px 10px;
}
.phorest-schedule-modal__time strong {
    font-size: 14px;
}
.phorest-schedule-modal__time span {
    font-size: 11px;
}
.phorest-schedule-modal__status {
    margin: 10px 0;
    padding: 10px 12px;
    font-size: 13px;
}
@media (max-width: 780px) {
    .phorest-dates-times-row {
        grid-template-columns: 54px 1fr;
    }
    .phorest-dates-times-row button {
        grid-column: 1 / -1;
        width: 100%;
        border-radius: 0;
    }
    .phorest-schedule-modal__dialog {
        width: calc(100vw - 18px);
        padding: 18px 14px;
    }
    .phorest-schedule-modal__head h2 {
        font-size: 28px;
    }
    .phorest-schedule-modal__staff-grid {
        grid-template-columns: 1fr;
    }
    .phorest-schedule-modal__dates {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .phorest-schedule-modal__time-group > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 480px) {
    .phorest-schedule-modal__dates {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .phorest-schedule-modal__time-group > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* v34 booking flow refinements */
.phorest-flow-steps{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.phorest-flow-steps strong{
    white-space:nowrap;
    line-height:1.1;
}
.phorest-staff-panel{
    display:none !important;
}
.phorest-review-grid{
    grid-template-columns:1fr !important;
}
.phorest-review-section,
.phorest-review-section:nth-child(2),
.phorest-review-section:last-child{
    grid-column:1 / -1 !important;
    border-right:0 !important;
}
.phorest-review-services li{
    display:grid;
    grid-template-columns:70px 1fr;
    gap:16px;
    align-items:center;
}
@media (max-width:760px){
    .phorest-flow-steps{
        grid-template-columns:repeat(4,minmax(0,1fr)) !important;
        overflow-x:auto;
    }
    .phorest-flow-steps button,
    .phorest-flow-steps div{
        border-right:1px solid #e9e1d8 !important;
        border-bottom:0 !important;
        min-width:112px;
    }
    .phorest-flow-steps button:last-child,
    .phorest-flow-steps div:last-child{
        border-right:0 !important;
    }
}


/* v36: booking dates validation polish */
.phorest-flow-notice {
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #d9b989;
    background: #fbf7f2;
    color: #7a4f22;
    font-size: 14px;
    line-height: 1.55;
}
.phorest-flow-notice[hidden] {
    display: none !important;
}
.phorest-flow-notice.is-error {
    border-color: #c99b5f;
    background: #fff8ef;
}
.phorest-flow-cart-actions {
    display: grid !important;
    grid-template-columns: auto minmax(220px, 320px) 1fr !important;
    align-items: center !important;
    gap: 16px !important;
}
.phorest-flow-review-dates-btn {
    min-height: 50px !important;
    height: 50px !important;
    padding: 0 22px !important;
    font-size: 12px !important;
    white-space: nowrap;
}
.phorest-flow-steps {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.phorest-flow-steps strong {
    white-space: nowrap;
}
.phorest-dates-times-panel .phorest-flow-primary-btn:not(:disabled) {
    background: var(--phorest-brand-color, #b58c56) !important;
    border-color: var(--phorest-brand-color, #b58c56) !important;
    color: #fff !important;
    opacity: 1 !important;
}
.phorest-dates-times-panel .phorest-flow-primary-btn:disabled {
    cursor: not-allowed;
}
@media (max-width: 767px) {
    .phorest-flow-cart-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .phorest-flow-review-dates-btn {
        width: 100% !important;
    }
    .phorest-flow-steps {
        grid-template-columns: repeat(4, minmax(100px, 1fr)) !important;
        overflow-x: auto !important;
    }
}

/* v37: booking validation + mobile stepper fixes */
.phorest-flow-notice.is-error,
.phorest-flow-notice.is-warning {
    display: block;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid #d9b989;
    background: #fbf7f2;
    color: #7a4f22;
    font-size: 14px;
    line-height: 1.55;
}

.phorest-flow-steps button:disabled,
.phorest-flow-steps div[aria-disabled="true"] {
    opacity: .45 !important;
    cursor: not-allowed !important;
    background: #fff !important;
}

@media (max-width: 767px) {
    .phorest-flow-steps {
        display: grid !important;
        grid-template-columns: 1fr !important;
        overflow: hidden !important;
    }

    .phorest-flow-steps button,
    .phorest-flow-steps div {
        width: 100% !important;
        min-width: 0 !important;
        border-right: 0 !important;
        border-bottom: 1px solid #e9e1d8 !important;
        justify-content: flex-start !important;
    }

    .phorest-flow-steps button:last-child,
    .phorest-flow-steps div:last-child {
        border-bottom: 0 !important;
    }

    .phorest-flow-cart-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .phorest-flow-clear {
        order: -1 !important;
        justify-self: start !important;
        margin: 4px 0 2px !important;
        text-align: left !important;
    }
}

.phorest-success-box--prepaid{
    border-color:#c8ad83;
    background:#fbf8f4;
}
.phorest-success-box--prepaid .phorest-payment-note{
    margin-top:12px;
}
.phorest-success-actions{
    margin-top:20px;
}
.phorest-success-actions .phorest-pay-deposit-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:220px;
    text-decoration:none;
}
