/* =========================================================
   LUMINOX BOOKING
   Custom client booking experience
========================================================= */

:root{
    --lbx-rose:#A5656E;
    --lbx-rosewood:#6C3D48;
    --lbx-deep:#792B43;
    --lbx-blush:#F3DFE1;
    --lbx-ivory:#FFF9F5;
    --lbx-sage:#A8B2A2;
    --lbx-charcoal:#372D2F;
    --lbx-muted:#746468;
    --lbx-gold:#C9A46A;
    --lbx-line:rgba(121,43,67,.12);
}

.lbx-page,
.lbx-page *{
    box-sizing:border-box;
}

.lbx-page{
    width:100%;
    margin:0;
    overflow:hidden;
    color:var(--lbx-charcoal);
    background:
        linear-gradient(180deg,#FFFDFC 0%,#FFF9F5 53%,#FBF1EE 100%);
    font-family:"DM Sans",Arial,sans-serif;
}

.lbx-page button,
.lbx-page input,
.lbx-page select,
.lbx-page textarea{
    font:inherit;
}

.comments-area,
#comments,
.comment-respond{
    display:none !important;
}

/* =========================================================
   HERO
========================================================= */

.lbx-booking-hero{
    position:relative;
    min-height:330px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:68px 24px 62px;
    overflow:hidden;
    background:
        radial-gradient(circle at 50% 38%,rgba(255,255,255,.95),rgba(255,255,255,.55) 36%,transparent 66%),
        linear-gradient(115deg,#FBEEEA 0%,#FFF9F5 46%,#F7E7E3 100%);
    border-bottom:1px solid rgba(121,43,67,.07);
}


.lbx-booking-hero-custom{
    min-height:360px;
    background-image:
        linear-gradient(90deg,rgba(255,249,245,.22),rgba(255,249,245,.06),rgba(255,249,245,.22)),
        var(--lbx-hero-bg);
    background-size:cover;
    background-position:var(--lbx-hero-pos, center center);
    background-repeat:no-repeat;
}

.lbx-booking-hero-custom::before{
    width:100%;
    height:100%;
    inset:0;
    border:0;
    border-radius:0;
    transform:none;
    background:radial-gradient(circle at center,rgba(255,249,245,.68) 0%,rgba(255,249,245,.36) 32%,rgba(255,249,245,.04) 68%);
}

.lbx-booking-hero-custom::after{
    display:none;
}

.lbx-booking-hero::before,
.lbx-booking-hero::after{
    content:"";
    position:absolute;
    pointer-events:none;
}

.lbx-booking-hero::before{
    width:550px;
    height:160px;
    top:-65px;
    left:36%;
    border-radius:50%;
    border-top:1px solid rgba(201,164,106,.35);
    transform:rotate(-7deg);
}

.lbx-booking-hero::after{
    width:720px;
    height:220px;
    right:4%;
    bottom:-175px;
    border-radius:50%;
    border-top:1px solid rgba(201,164,106,.28);
    transform:rotate(5deg);
}

.lbx-hero-copy{
    position:relative;
    z-index:5;
    width:min(650px,70vw);
    text-align:center;
}

.lbx-kicker{
    display:block;
    margin-bottom:13px;
    color:var(--lbx-deep);
    font-size:11px;
    font-weight:700;
    letter-spacing:2.7px;
    text-transform:uppercase;
}

.lbx-hero-copy h1{
    margin:0;
    color:#2F292B;
    font-family:"Italiana",Georgia,serif;
    font-size:clamp(55px,5.3vw,78px);
    font-weight:400;
    line-height:.95;
}

.lbx-hero-copy h1 em{
    display:block;
    margin-top:9px;
    color:var(--lbx-rose);
    font-family:Georgia,serif;
    font-size:.69em;
    font-weight:400;
}

.lbx-hero-copy p{
    max-width:590px;
    margin:25px auto 0;
    color:#5F5356;
    font-size:17px;
    line-height:1.75;
}

.lbx-floral{
    position:absolute;
    z-index:2;
    width:min(31vw,430px);
    opacity:.92;
    pointer-events:none;
}

.lbx-floral svg{
    width:100%;
    height:auto;
    display:block;
}

.lbx-floral-left{
    left:-28px;
    bottom:-18px;
}

.lbx-floral-right{
    right:-28px;
    bottom:-18px;
    transform:scaleX(-1);
}

/* =========================================================
   BOOKING SHELL
========================================================= */

.lbx-booking-shell{
    position:relative;
    width:min(1180px,92%);
    margin:0 auto;
    padding:34px 0 0;
}

/* =========================================================
   PROGRESS
========================================================= */

.lbx-progress{
    position:relative;
    width:100%;
    max-width:930px;
    margin:0 auto 30px;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    align-items:start;
}

.lbx-progress-line{
    position:absolute;
    z-index:0;
    top:17px;
    left:10%;
    right:10%;
    height:1px;
    background:rgba(121,43,67,.18);
}

.lbx-step-indicator{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    text-align:center;
}

.lbx-step-indicator b{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(121,43,67,.16);
    border-radius:50%;
    color:#574A4E;
    background:#FFFDFB;
    font-size:14px;
    font-weight:600;
    transition:.2s ease;
}

.lbx-step-indicator span{
    color:#6B5C61;
    font-size:14px;
    font-weight:600;
    letter-spacing:.35px;
}

.lbx-step-indicator.active b{
    color:#fff;
    border-color:var(--lbx-deep);
    background:var(--lbx-deep);
}

.lbx-step-indicator.active span{
    color:var(--lbx-deep);
}

/* =========================================================
   PANELS
========================================================= */

.lbx-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.lbx-panel{
    position:relative;
    scroll-margin-top:35px;
    padding:27px 28px 24px;
    border:1px solid rgba(121,43,67,.10);
    border-radius:18px;
    background:rgba(255,255,255,.72);
    box-shadow:0 12px 36px rgba(108,61,72,.035);
    transition:opacity .2s ease,filter .2s ease;
}

.lbx-disabled-panel{
    opacity:.54;
    filter:saturate(.7);
}

.lbx-panel-title{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:23px;
}

.lbx-panel-number{
    width:29px;
    height:29px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:var(--lbx-deep);
    background:#FAEAEA;
    font-family:"DM Sans",sans-serif;
    font-size:12px;
    font-weight:700;
}

.lbx-panel-title h2{
    margin:0;
    color:#312A2C;
    font-family:"Italiana",Georgia,serif;
    font-size:38px;
    font-weight:400;
    line-height:1;
}

.lbx-panel-action{
    display:flex;
    justify-content:center;
    margin-top:18px;
}

.lbx-primary-btn,
.lbx-submit-btn{
    min-width:190px;
    min-height:46px;
    padding:12px 22px;
    border:0;
    border-radius:7px;
    color:#fff;
    background:linear-gradient(135deg,#85394F,#792B43);
    font-size:13px;
    font-weight:700;
    letter-spacing:.55px;
    cursor:pointer;
    box-shadow:0 9px 18px rgba(121,43,67,.11);
    transition:.2s ease;
}

.lbx-primary-btn:hover,
.lbx-submit-btn:hover{
    transform:translateY(-1px);
    background:#6C3D48;
}

.lbx-primary-btn:disabled,
.lbx-submit-btn:disabled{
    opacity:.6;
    cursor:not-allowed;
    transform:none;
}

.lbx-inline-error{
    width:100%;
    margin:15px 0 0;
    padding:12px 15px;
    border:1px solid rgba(121,43,67,.16);
    border-radius:10px;
    color:#792B43;
    background:#FFF0F0;
    font-size:12px;
    opacity:0;
    transform:translateY(4px);
    transition:.2s ease;
}

.lbx-inline-error.show{
    opacity:1;
    transform:none;
}

.lbx-honeypot{
    position:absolute !important;
    left:-99999px !important;
}

/* =========================================================
   SERVICE CARDS
========================================================= */

.lbx-service-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
}

.lbx-service-card{
    position:relative;
    min-height:168px;
    padding:24px 18px 22px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    border:1px solid rgba(121,43,67,.09);
    border-radius:14px;
    color:#332B2D;
    background:linear-gradient(180deg,#FFFDFC,#FFFAF7);
    text-align:center;
    cursor:pointer;
    box-shadow:0 8px 20px rgba(108,61,72,.035);
    transition:.2s ease;
}

.lbx-service-card:hover{
    transform:translateY(-2px);
    border-color:rgba(121,43,67,.25);
}

.lbx-service-card.selected{
    border-color:var(--lbx-deep);
    box-shadow:0 12px 26px rgba(121,43,67,.08);
}

.lbx-service-card-mark{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:var(--lbx-rosewood);
    background:#FAEDEE;
    font-family:"Italiana",serif;
    font-size:20px;
}

.lbx-service-card strong{
    font-family:"Italiana",Georgia,serif;
    font-size:28px;
    font-weight:400;
}

.lbx-service-card small{
    max-width:170px;
    color:#746468;
    font-size:14px;
    line-height:1.55;
}

.lbx-service-card-check{
    position:absolute;
    top:11px;
    right:11px;
    width:25px;
    height:25px;
    display:none;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#fff;
    background:var(--lbx-deep);
    font-size:13px;
}

.lbx-service-card.selected .lbx-service-card-check{
    display:flex;
}

/* =========================================================
   DETAILS + ADDONS
========================================================= */

.lbx-details-grid{
    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:36px;
    align-items:start;
}

.lbx-field-block,
.lbx-addons-block{
    min-width:0;
}

.lbx-field-block label,
.lbx-field-label{
    display:block;
    margin-bottom:9px;
    color:#41373A;
    font-size:15px;
    font-weight:600;
}

.lbx-field-label small{
    font-weight:400;
    color:#85777B;
}

.lbx-field-block select,
.lbx-contact-fields input,
.lbx-notes-field textarea{
    width:100%;
    border:1px solid rgba(121,43,67,.13);
    border-radius:9px;
    color:#4B4043;
    background:#FFFDFC;
    outline:none;
}

.lbx-field-block select{
    min-height:52px;
    font-size:15px;
    padding:0 42px 0 14px;
}

.lbx-contact-fields input{
    min-height:52px;
    font-size:15px;
    padding:0 14px;
}

.lbx-field-block select:focus,
.lbx-contact-fields input:focus,
.lbx-notes-field textarea:focus{
    border-color:rgba(121,43,67,.44);
    box-shadow:0 0 0 3px rgba(121,43,67,.05);
}

.lbx-addons-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}

.lbx-addon{
    position:relative;
    min-height:59px;
    padding:11px 34px 11px 13px;
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid rgba(121,43,67,.11);
    border-radius:9px;
    background:#FFFDFC;
    cursor:pointer;
    transition:.18s ease;
}

.lbx-addon input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.lbx-addon-copy{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.lbx-addon-copy strong{
    color:#4A3E42;
    font-size:14px;
    font-weight:600;
}

.lbx-addon-copy small{
    color:#806E73;
    font-size:14px;
}

.lbx-addon-check{
    position:absolute;
    top:50%;
    right:10px;
    width:20px;
    height:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    transform:translateY(-50%);
    border:1px solid rgba(121,43,67,.15);
    border-radius:5px;
    color:transparent;
    background:#fff;
    font-size:12px;
}

.lbx-addon.selected{
    border-color:rgba(121,43,67,.38);
    background:#FCF0F0;
}

.lbx-addon.selected .lbx-addon-check{
    color:#fff;
    border-color:var(--lbx-deep);
    background:var(--lbx-deep);
}

.lbx-total-box{
    margin-top:18px;
    padding:17px 22px;
    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:35px;
    align-items:center;
    border-radius:12px;
    background:
        linear-gradient(90deg,rgba(243,223,225,.66),rgba(255,249,245,.92));
}

.lbx-total-main{
    display:flex;
    align-items:center;
    gap:18px;
}

.lbx-total-main::before{
    content:"◇";
    width:45px;
    height:45px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(121,43,67,.17);
    border-radius:50%;
    color:var(--lbx-deep);
    font-size:22px;
}

.lbx-total-main span{
    display:block;
    color:#695A5F;
    font-size:13px;
}

.lbx-total-main strong{
    display:block;
    margin-left:auto;
    color:var(--lbx-deep);
    font-family:"Italiana",Georgia,serif;
    font-size:36px;
    font-weight:400;
}

.lbx-total-breakdown{
    display:flex;
    flex-direction:column;
}

.lbx-total-breakdown>div{
    min-height:31px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    color:#5D5054;
    font-size:13px;
}

.lbx-total-breakdown b{
    font-weight:600;
}

.lbx-total-final{
    margin-top:3px;
    padding-top:7px;
    border-top:1px solid rgba(121,43,67,.10);
    color:#372D2F !important;
    font-weight:700;
}

.lbx-total-final b{
    color:var(--lbx-deep);
    font-size:18px;
}

/* =========================================================
   DATE & TIME
========================================================= */

.lbx-date-time-grid{
    display:grid;
    grid-template-columns:.78fr 1.22fr;
    gap:32px;
}

.lbx-calendar-card,
.lbx-times-card{
    min-width:0;
}

.lbx-calendar-card{
    padding:17px;
    border:1px solid rgba(121,43,67,.10);
    border-radius:12px;
    background:#FFFDFB;
}

.lbx-calendar-head{
    display:grid;
    grid-template-columns:35px 1fr 35px;
    align-items:center;
    margin-bottom:14px;
}

.lbx-calendar-head strong{
    text-align:center;
    color:#463A3E;
    font-size:14px;
    font-weight:600;
}

.lbx-calendar-head button{
    width:31px;
    height:31px;
    border:0;
    border-radius:50%;
    color:var(--lbx-deep);
    background:transparent;
    font-size:20px;
    cursor:pointer;
}

.lbx-calendar-head button:hover{
    background:#FAECEC;
}

.lbx-calendar-head button:disabled{
    opacity:.25;
    cursor:default;
}

.lbx-calendar-weekdays,
.lbx-calendar-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:4px;
}

.lbx-calendar-weekdays{
    margin-bottom:5px;
}

.lbx-calendar-weekdays span{
    padding:5px 0;
    color:#A09195;
    font-size:12px;
    font-weight:600;
    text-align:center;
}

.lbx-calendar-day,
.lbx-calendar-pad{
    aspect-ratio:1/1;
}

.lbx-calendar-day{
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:50%;
    color:#4B4043;
    background:transparent;
    font-size:13px;
    cursor:pointer;
}

.lbx-calendar-day:hover:not(:disabled){
    background:#F8E8E8;
}

.lbx-calendar-day.selected{
    color:#fff;
    background:var(--lbx-deep);
}

.lbx-calendar-day.past,
.lbx-calendar-day.unavailable{
    color:#D1C7C9;
    background:transparent;
    cursor:not-allowed;
}

.lbx-calendar-day.unavailable{
    opacity:.58;
}

.lbx-times-heading{
    margin:4px 0 14px;
    color:#42373B;
    font-size:12px;
    font-weight:600;
}

.lbx-time-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}

.lbx-time-btn{
    min-height:39px;
    padding:8px 9px;
    border:1px solid rgba(121,43,67,.12);
    border-radius:7px;
    color:#4B4043;
    background:#FFFDFC;
    font-size:13px;
    cursor:pointer;
    transition:.16s ease;
}

.lbx-time-btn:hover{
    border-color:rgba(121,43,67,.32);
}

.lbx-time-btn.selected{
    color:#fff;
    border-color:var(--lbx-deep);
    background:var(--lbx-deep);
}

.lbx-empty-times{
    grid-column:1/-1;
    margin:8px 0;
    padding:17px;
    border-radius:9px;
    color:#7A696E;
    background:#FAF4F2;
    font-size:13px;
    text-align:center;
}

/* =========================================================
   CUSTOMER INFO
========================================================= */

.lbx-info-grid{
    display:grid;
    grid-template-columns:.8fr 1fr 1fr;
    gap:22px;
    align-items:start;
}

.lbx-contact-fields{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.lbx-contact-fields label,
.lbx-notes-field{
    display:flex;
    flex-direction:column;
    gap:7px;
    color:#44393C;
    font-size:14px;
    font-weight:600;
}

.lbx-upload-zone{
    min-height:142px;
    padding:18px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px dashed rgba(121,43,67,.28);
    border-radius:10px;
    color:#695A5E;
    background:rgba(255,253,251,.75);
    text-align:center;
    cursor:pointer;
}

.lbx-upload-zone:hover{
    border-color:var(--lbx-rose);
    background:#FFF9F7;
}

.lbx-upload-icon{
    color:var(--lbx-deep);
    font-size:22px;
    line-height:1;
}

.lbx-upload-zone strong{
    font-size:11px;
}

.lbx-upload-zone small{
    color:#95868A;
    font-size:11px;
}

.lbx-image-preview{
    margin-top:9px;
}

.lbx-preview-card{
    min-height:61px;
    padding:6px;
    display:grid;
    grid-template-columns:52px 1fr 30px;
    align-items:center;
    gap:9px;
    border:1px solid rgba(121,43,67,.10);
    border-radius:9px;
    background:#FFFDFC;
}

.lbx-preview-card img{
    width:52px;
    height:48px;
    object-fit:cover;
    border-radius:7px;
}

.lbx-preview-card div{
    min-width:0;
}

.lbx-preview-card strong{
    display:block;
    overflow:hidden;
    color:#55484C;
    font-size:10px;
    font-weight:600;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.lbx-preview-card small{
    color:#97868A;
    font-size:11px;
}

.lbx-preview-card button{
    width:26px;
    height:26px;
    border:0;
    border-radius:50%;
    color:var(--lbx-deep);
    background:#FAEAEA;
    cursor:pointer;
}

.lbx-notes-field{
    position:relative;
}

.lbx-notes-field textarea{
    min-height:142px;
    resize:vertical;
    padding:13px;
    line-height:1.6;
    font-size:14px;
}

.lbx-notes-field>small{
    position:absolute;
    right:9px;
    bottom:8px;
    color:#9C8D90;
    font-size:8px;
    font-weight:400;
}

.lbx-consent{
    max-width:850px;
    margin:20px auto 0;
    padding:13px 15px;
    display:flex;
    align-items:flex-start;
    gap:10px;
    border-radius:10px;
    color:#68585D;
    background:rgba(168,178,162,.10);
    font-size:12px;
    line-height:1.6;
}

.lbx-consent input{
    margin-top:2px;
    accent-color:var(--lbx-deep);
}

/* =========================================================
   REVIEW
========================================================= */

.lbx-review-grid{
    display:grid;
    grid-template-columns:1fr .8fr;
    gap:24px;
}

.lbx-review-summary{
    border:1px solid rgba(121,43,67,.09);
    border-radius:12px;
    overflow:hidden;
    background:#FFFDFC;
}

.lbx-review-summary>div{
    min-height:57px;
    padding:12px 16px;
    display:grid;
    grid-template-columns:125px 1fr;
    gap:18px;
    align-items:center;
    border-bottom:1px solid rgba(121,43,67,.08);
}

.lbx-review-summary>div:last-child{
    border-bottom:0;
}

.lbx-review-summary span{
    color:#8B777C;
    font-size:10px;
}

.lbx-review-summary strong{
    color:#473A3E;
    font-size:12px;
    font-weight:600;
}

.lbx-review-note{
    padding:23px;
    border-radius:12px;
    background:linear-gradient(145deg,#F9E9E8,#FFF8F5);
}

.lbx-review-note-kicker{
    display:block;
    margin-bottom:8px;
    color:var(--lbx-rose);
    font-size:10px;
    font-weight:700;
    letter-spacing:1.5px;
}

.lbx-review-note h3{
    margin:0 0 10px;
    color:#5F3440;
    font-family:"Italiana",serif;
    font-size:28px;
    font-weight:400;
}

.lbx-review-note p{
    margin:0;
    color:#725F64;
    font-size:13px;
    line-height:1.7;
}

.lbx-submit-btn{
    min-width:255px;
    min-height:50px;
}

.lbx-form-message{
    display:none;
    margin-top:18px;
    padding:16px 18px;
    border-radius:10px;
    font-size:12px;
}

.lbx-form-message.success,
.lbx-form-message.error{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.lbx-form-message.success{
    color:#435044;
    border:1px solid rgba(93,111,91,.18);
    background:#F1F5EF;
}

.lbx-form-message.error{
    color:#792B43;
    border:1px solid rgba(121,43,67,.17);
    background:#FFF0F0;
}

.lbx-form-message strong{
    font-family:"Italiana",serif;
    font-size:24px;
    font-weight:400;
}

.lbx-form-message small{
    opacity:.7;
}

.lbx-submitted .lbx-service-card,
.lbx-submitted input,
.lbx-submitted select,
.lbx-submitted textarea,
.lbx-submitted .lbx-time-btn,
.lbx-submitted .lbx-calendar-day,
.lbx-submitted .lbx-addon{
    pointer-events:none;
}

/* =========================================================
   BOTTOM STRIP
========================================================= */

.lbx-aftercare-strip{
    position:relative;
    margin:18px calc(50% - 50vw) 0;
    padding:18px max(5vw,24px) 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    overflow:hidden;
    background:
        radial-gradient(ellipse at 28% 100%,rgba(168,178,162,.22),transparent 45%),
        radial-gradient(ellipse at 72% 100%,rgba(243,223,225,.75),transparent 44%),
        linear-gradient(180deg,#FFF9F5,#FAEFEC);
    border-top:1px solid rgba(121,43,67,.07);
}

.lbx-aftercare-strip::before{
    content:"";
    position:absolute;
    left:-5%;
    right:-5%;
    bottom:-55px;
    height:90px;
    border-radius:50% 50% 0 0;
    background:rgba(168,178,162,.10);
}

.lbx-aftercare-lock{
    position:relative;
    z-index:2;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(121,43,67,.15);
    border-radius:50%;
    color:var(--lbx-deep);
    background:#FFFDFC;
}

.lbx-aftercare-strip p{
    position:relative;
    z-index:2;
    margin:0;
    color:#625458;
    font-size:12px;
    line-height:1.55;
}

/* =========================================================
   TABLET
========================================================= */

@media(min-width:768px) and (max-width:1024px){

    .lbx-booking-hero{
        min-height:300px;
        padding:58px 20px 55px;
    }

    .lbx-floral{
        width:34vw;
    }

    .lbx-hero-copy{
        width:min(620px,72vw);
    }

    .lbx-hero-copy h1{
        font-size:58px;
    }

    .lbx-hero-copy p{
        font-size:13px;
    }

    .lbx-booking-shell{
        width:92%;
    }

    .lbx-panel{
        padding:25px 22px 23px;
    }

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

    .lbx-service-card{
        min-height:145px;
    }

    .lbx-details-grid{
        grid-template-columns:1fr;
        gap:22px;
    }

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

    .lbx-total-box{
        grid-template-columns:1fr 1fr;
    }

    .lbx-date-time-grid{
        grid-template-columns:.9fr 1.1fr;
        gap:20px;
    }

    .lbx-info-grid{
        grid-template-columns:1fr 1fr;
    }

    .lbx-notes-field{
        grid-column:1/-1;
    }

    .lbx-review-grid{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

    .lbx-booking-hero{
        min-height:0;
        padding:48px 20px 44px;
    }

    .lbx-hero-copy{
        width:100%;
        max-width:390px;
    }

    .lbx-kicker{
        font-size:9px;
        letter-spacing:2px;
    }

    .lbx-hero-copy h1{
        font-size:clamp(46px,13vw,58px);
    }

    .lbx-hero-copy p{
        max-width:310px;
        margin-top:18px;
        font-size:12px;
    }

    .lbx-floral{
        width:180px;
        opacity:.58;
    }

    .lbx-floral-left{
        left:-82px;
        bottom:-35px;
    }

    .lbx-floral-right{
        right:-82px;
        bottom:-35px;
    }

    .lbx-booking-shell{
        width:91%;
        padding-top:26px;
    }

    .lbx-progress{
        margin-bottom:22px;
    }

    .lbx-progress-line{
        top:14px;
        left:9%;
        right:9%;
    }

    .lbx-step-indicator{
        gap:6px;
    }

    .lbx-step-indicator b{
        width:29px;
        height:29px;
        font-size:10px;
    }

    .lbx-step-indicator span{
        font-size:9px;
        letter-spacing:0;
    }

    .lbx-panel{
        padding:21px 16px 19px;
        border-radius:14px;
    }

    .lbx-panel-title{
        margin-bottom:18px;
    }

    .lbx-panel-number{
        width:26px;
        height:26px;
        font-size:10px;
    }

    .lbx-panel-title h2{
        font-size:31px;
    }

    .lbx-service-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:9px;
    }

    .lbx-service-card{
        min-height:150px;
        padding:17px 9px;
    }

    .lbx-service-card-mark{
        width:44px;
        height:44px;
        font-size:16px;
    }

    .lbx-service-card strong{
        font-size:24px;
    }

    .lbx-service-card small{
        max-width:135px;
        font-size:13px;
    }

    .lbx-details-grid,
    .lbx-total-box,
    .lbx-date-time-grid,
    .lbx-info-grid,
    .lbx-review-grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .lbx-addons-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:7px;
    }

    .lbx-addon{
        min-height:56px;
        padding:10px 31px 10px 10px;
    }

    .lbx-addon-copy strong{
        font-size:11px;
    }

    .lbx-total-box{
        padding:16px;
    }

    .lbx-total-main{
        border-bottom:1px solid rgba(121,43,67,.08);
        padding-bottom:13px;
    }

    .lbx-total-main strong{
        font-size:29px;
    }

    .lbx-calendar-card{
        padding:13px;
    }

    .lbx-time-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
    }

    .lbx-time-btn{
        min-height:38px;
        padding:6px 4px;
        font-size:11px;
    }

    .lbx-info-grid{
        gap:16px;
    }

    .lbx-notes-field{
        grid-column:auto;
    }

    .lbx-upload-zone{
        min-height:125px;
    }

    .lbx-review-summary>div{
        grid-template-columns:95px 1fr;
        gap:12px;
    }

    .lbx-review-note{
        padding:19px;
    }

    .lbx-primary-btn,
    .lbx-submit-btn{
        width:100%;
        min-width:0;
    }

    .lbx-aftercare-strip{
        padding:17px 22px 18px;
    }
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:390px){

    .lbx-service-grid{
        grid-template-columns:1fr;
    }

    .lbx-service-card{
        min-height:130px;
    }

    .lbx-addons-grid{
        grid-template-columns:1fr;
    }

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

    .lbx-step-indicator span{
        font-size:6.5px;
    }
}


/* =========================================================
   V1.2 READABILITY OVERRIDES
========================================================= */
.lbx-page{
    font-size:16px;
}
.lbx-field-block select,
.lbx-contact-fields input,
.lbx-notes-field textarea{
    font-size:15px;
}
.lbx-field-block label,
.lbx-field-label,
.lbx-contact-fields label,
.lbx-notes-field{
    font-size:14px;
}
.lbx-addon-copy strong{font-size:14px}
.lbx-addon-copy small{font-size:12px}
.lbx-calendar-head strong,
.lbx-times-heading{font-size:14px}
.lbx-calendar-day,
.lbx-time-btn{font-size:13px}
.lbx-review-summary span{font-size:12px}
.lbx-review-summary strong{font-size:14px}
.lbx-review-note p{font-size:13px}
.lbx-aftercare-strip p{font-size:12px}

@media(max-width:767px){
    .lbx-page{font-size:15px}
    .lbx-step-indicator span{font-size:9px}
    .lbx-panel-title h2{font-size:31px}
    .lbx-service-card strong{font-size:24px}
    .lbx-service-card small{font-size:11px;line-height:1.5}
    .lbx-field-block label,
    .lbx-field-label,
    .lbx-contact-fields label,
    .lbx-notes-field{font-size:13px}
    .lbx-field-block select,
    .lbx-contact-fields input,
    .lbx-notes-field textarea{font-size:14px}
    .lbx-addon-copy strong{font-size:13px}
    .lbx-addon-copy small{font-size:11px}
    .lbx-calendar-day,.lbx-time-btn{font-size:12px}
    .lbx-review-summary span{font-size:11px}
    .lbx-review-summary strong{font-size:13px}
    .lbx-review-note p{font-size:12px}
    .lbx-consent,.lbx-aftercare-strip p{font-size:11px}
}

/* =========================================================
   V2.2 OPTIONAL SERVICE CARD IMAGES
========================================================= */
.lbx-service-card.has-image{
    justify-content:flex-start;
    padding:10px 10px 22px;
    overflow:hidden;
}
.lbx-service-card-image{
    width:100%;
    height:126px;
    display:block;
    overflow:hidden;
    border-radius:10px;
    background:#F7E8E5;
}
.lbx-service-card-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.lbx-service-card.has-image strong{margin-top:4px}
@media(max-width:767px){
    .lbx-service-card-image{height:150px}
}

/* =========================================================
   V2.4 CLIENT BOOKING POLISH
========================================================= */

/* Estimated total: cleaner treatment with no decorative icon */
.lbx-total-main::before{
    content:none !important;
    display:none !important;
}

.lbx-total-main{
    gap:8px;
    padding:2px 0;
}

.lbx-total-main span{
    color:#5E5055;
    font-size:14px;
    font-weight:700;
    letter-spacing:.15px;
}

.lbx-total-main strong{
    margin-left:auto;
    font-size:38px;
}

/* Review is now a single summary with one compact notice below it */
.lbx-review-grid{
    grid-template-columns:1fr !important;
}

.lbx-review-notice{
    margin-top:14px;
    padding:13px 16px;
    border:1px solid rgba(121,43,67,.09);
    border-left:4px solid #792B43;
    border-radius:9px;
    color:#625358;
    background:linear-gradient(90deg,rgba(243,223,225,.60),rgba(255,249,245,.94));
    font-size:13px;
    line-height:1.55;
}

.lbx-review-notice strong{
    color:#792B43;
    font-weight:800;
}

/* Old duplicate strip is no longer rendered; keep it hidden if cached markup appears. */
.lbx-aftercare-strip{
    display:none !important;
}

@media(max-width:767px){
    .lbx-total-main{
        padding-bottom:12px;
    }

    .lbx-total-main span{
        font-size:13px;
    }

    .lbx-total-main strong{
        font-size:32px;
    }

    .lbx-review-notice{
        margin-top:12px;
        padding:12px 13px;
        font-size:12px;
    }
}


/* =========================================================
   V2.5 SELECTED SERVICE + REVIEW NOTICE
========================================================= */

/*
 * Elementor/theme button rules can force selected button text to white.
 * Keep the service cards light and explicitly lock their copy to the
 * Luminox dark text colors in every interactive state.
 */
.lbx-page button.lbx-service-card,
.lbx-page button.lbx-service-card:hover,
.lbx-page button.lbx-service-card:focus,
.lbx-page button.lbx-service-card:active,
.lbx-page button.lbx-service-card.selected,
.lbx-page button.lbx-service-card.selected:hover,
.lbx-page button.lbx-service-card.selected:focus,
.lbx-page button.lbx-service-card.selected:active{
    color:#332B2D !important;
    background:linear-gradient(180deg,#FFF8F6 0%,#F8E8EA 100%) !important;
}

.lbx-page button.lbx-service-card:not(.selected){
    background:linear-gradient(180deg,#FFFDFC,#FFFAF7) !important;
}

.lbx-page button.lbx-service-card strong,
.lbx-page button.lbx-service-card:hover strong,
.lbx-page button.lbx-service-card:focus strong,
.lbx-page button.lbx-service-card:active strong,
.lbx-page button.lbx-service-card.selected strong{
    color:#332B2D !important;
}

.lbx-page button.lbx-service-card small,
.lbx-page button.lbx-service-card:hover small,
.lbx-page button.lbx-service-card:focus small,
.lbx-page button.lbx-service-card:active small,
.lbx-page button.lbx-service-card.selected small{
    color:#746468 !important;
}

.lbx-page button.lbx-service-card .lbx-service-card-mark,
.lbx-page button.lbx-service-card:hover .lbx-service-card-mark,
.lbx-page button.lbx-service-card:focus .lbx-service-card-mark,
.lbx-page button.lbx-service-card:active .lbx-service-card-mark,
.lbx-page button.lbx-service-card.selected .lbx-service-card-mark{
    color:#6C3D48 !important;
}

.lbx-page button.lbx-service-card.selected{
    border-color:#792B43 !important;
    box-shadow:0 12px 28px rgba(121,43,67,.11) !important;
}

.lbx-page button.lbx-service-card.selected .lbx-service-card-mark{
    background:#F3DFE1 !important;
}

/* Replace the pale Important strip with one clean rosewood message box. */
.lbx-review-notice{
    margin-top:16px;
    padding:16px 19px;
    border:0 !important;
    border-left:0 !important;
    border-radius:12px;
    color:#FFF9F5 !important;
    background:#6C3D48 !important;
    box-shadow:0 10px 24px rgba(108,61,72,.15);
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

.lbx-review-notice span,
.lbx-review-notice strong{
    color:#FFF9F5 !important;
}

@media(max-width:767px){
    .lbx-review-notice{
        margin-top:13px;
        padding:14px 15px;
        border-radius:10px;
        font-size:13px;
        line-height:1.5;
    }
}

/* =========================================================
   V3.0 FINAL MOBILE CALENDAR + CLIENT POLISH
========================================================= */
.lbx-calendar-weekdays,
.lbx-calendar-days{
    width:100%;
    min-width:0;
    grid-template-columns:repeat(7,minmax(0,1fr));
    box-sizing:border-box;
}

.lbx-calendar-day,
.lbx-calendar-pad{
    min-width:0 !important;
    box-sizing:border-box;
}

.lbx-calendar-day{
    width:100% !important;
    max-width:38px;
    height:auto !important;
    padding:0 !important;
    margin:0 auto !important;
    aspect-ratio:1/1;
    line-height:1 !important;
}

.lbx-calendar-head{
    grid-template-columns:36px minmax(0,1fr) 36px;
    column-gap:4px;
}

.lbx-calendar-head button{
    width:32px !important;
    min-width:0 !important;
    max-width:32px !important;
    height:32px !important;
    padding:0 !important;
    margin:0 auto !important;
    border:0 !important;
    box-shadow:none !important;
    line-height:1 !important;
}

.lbx-calendar-head strong{
    min-width:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.lbx-form-message.success{
    color:#FFF9F5;
    border:0;
    background:#6C3D48;
    box-shadow:0 10px 24px rgba(108,61,72,.14);
}

.lbx-form-message.success strong,
.lbx-form-message.success span,
.lbx-form-message.success small{
    color:#FFF9F5;
}

@media(max-width:767px){
    .lbx-booking-shell{
        width:calc(100% - 20px);
        max-width:none;
        padding-top:22px;
        overflow:visible;
    }

    .lbx-panel{
        width:100%;
        min-width:0;
        padding:20px 14px 18px;
        overflow:hidden;
        box-sizing:border-box;
    }

    .lbx-date-time-grid,
    .lbx-calendar-card,
    .lbx-times-card{
        width:100%;
        min-width:0;
        max-width:100%;
        box-sizing:border-box;
    }

    .lbx-calendar-card{
        padding:12px 10px 14px;
        overflow:hidden;
    }

    .lbx-calendar-weekdays,
    .lbx-calendar-days{
        gap:2px;
    }

    .lbx-calendar-weekdays span{
        padding:4px 0;
        font-size:10px;
    }

    .lbx-calendar-day{
        max-width:36px;
        font-size:13px !important;
    }

    .lbx-calendar-head{
        margin-bottom:10px;
    }

    .lbx-calendar-head strong{
        font-size:14px;
    }

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

    .lbx-time-btn{
        width:100%;
        min-width:0 !important;
        min-height:42px;
        padding:8px 6px;
        font-size:13px !important;
    }

    .lbx-times-heading{
        margin-top:2px;
        font-size:13px;
        line-height:1.45;
    }

    .lbx-panel-title h2{
        font-size:29px;
        line-height:1.04;
    }

    .lbx-field-block select,
    .lbx-contact-fields input,
    .lbx-notes-field textarea{
        font-size:16px !important;
    }

    .lbx-review-summary>div{
        grid-template-columns:88px minmax(0,1fr);
    }

    .lbx-review-summary strong{
        overflow-wrap:anywhere;
    }

    .lbx-form-message{
        padding:16px;
        font-size:13px;
        line-height:1.55;
    }
}

@media(max-width:390px){
    .lbx-booking-shell{width:calc(100% - 16px)}
    .lbx-panel{padding-left:12px;padding-right:12px}
    .lbx-calendar-card{padding-left:8px;padding-right:8px}
    .lbx-calendar-day{max-width:34px}
    .lbx-step-indicator span{font-size:7px}
}

/* =========================================================
   V3.0.1 FINAL POLISH
   - Request received returns to the soft success green
   - Mobile hero description is centered and kept clear/readable
========================================================= */
.lbx-form-message.success{
    color:#435044 !important;
    border:1px solid rgba(93,111,91,.18) !important;
    background:rgba(241,245,239,.92) !important;
    box-shadow:0 10px 24px rgba(74,92,73,.08) !important;
}
.lbx-form-message.success strong{
    color:#526552 !important;
}
.lbx-form-message.success span,
.lbx-form-message.success small{
    color:#435044 !important;
}

@media(max-width:767px){
    .lbx-booking-hero-custom{
        min-height:300px;
        padding:38px 16px 32px;
    }

    .lbx-booking-hero-custom .lbx-hero-copy{
        width:100%;
        max-width:360px;
        margin:0 auto;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
    }

    .lbx-booking-hero-custom .lbx-hero-copy p{
        width:100%;
        max-width:335px;
        margin:16px auto 0;
        padding:0 8px;
        text-align:center;
        font-size:12.5px;
        line-height:1.55;
        box-sizing:border-box;
    }
}


/* =========================================================
   LUMINOX CLIENT REVIEW SUBMISSION
========================================================= */

.lbx-review-submit,
.lbx-review-submit *{
    box-sizing:border-box;
}

.lbx-review-submit{
    --lbx-review-deep:#792B43;
    --lbx-review-rose:#A5656E;
    --lbx-review-blush:#F3DFE1;
    --lbx-review-ivory:#FFF9F5;
    --lbx-review-charcoal:#372D2F;
    --lbx-review-text:#705F63;

    width:min(1180px,92%);
    margin:0 auto;
    padding:8px 0 85px;
}

.lbx-review-submit-card{
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:56px;
    align-items:center;

    padding:42px 46px;

    border:1px solid rgba(121,43,67,.10);
    border-radius:22px;

    background:rgba(255,249,245,.72);

    box-shadow:0 17px 38px rgba(108,61,72,.06);
}

.lbx-review-submit-copy{
    max-width:360px;
}

.lbx-review-kicker{
    display:block;
    margin-bottom:13px;

    color:var(--lbx-review-deep);

    font-family:"DM Sans",sans-serif;
    font-size:10px;
    font-weight:700;
    letter-spacing:2.5px;
}

.lbx-review-submit-copy h3{
    margin:0 0 14px;

    color:var(--lbx-review-charcoal);

    font-family:"Italiana",Georgia,serif;
    font-size:40px;
    font-weight:400;
    line-height:1.05;
}

.lbx-review-submit-copy p{
    margin:0;

    color:var(--lbx-review-text);

    font-family:"DM Sans",sans-serif;
    font-size:13px;
    line-height:1.7;
}

.lbx-client-review-form{
    width:100%;
}

.lbx-review-rating{
    margin:0 0 20px;
    padding:0;
    border:0;
}

.lbx-review-rating legend,
.lbx-client-review-form > label,
.lbx-review-fields label{
    display:block;
    margin:0 0 8px;

    color:#6C3D48;

    font-family:"DM Sans",sans-serif;
    font-size:11px;
    font-weight:700;
    letter-spacing:.35px;
}

.lbx-review-stars-input{
    display:flex;
    flex-direction:row-reverse;
    justify-content:flex-end;
    gap:5px;
}

.lbx-review-stars-input input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.lbx-review-stars-input label{
    margin:0;
    cursor:pointer;

    color:rgba(165,101,110,.25);

    font-size:28px;
    line-height:1;

    transition:color .15s ease, transform .15s ease;
}

.lbx-review-stars-input label:hover,
.lbx-review-stars-input label:hover ~ label,
.lbx-review-stars-input input:checked ~ label{
    color:var(--lbx-review-rose);
}

.lbx-review-stars-input label:hover{
    transform:translateY(-1px);
}

.lbx-review-fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px;
}

.lbx-client-review-form input[type="text"],
.lbx-client-review-form input[type="email"],
.lbx-client-review-form textarea{
    width:100%;

    margin:0;
    padding:14px 15px;

    border:1px solid rgba(121,43,67,.14) !important;
    border-radius:12px !important;

    background:#fff !important;
    color:var(--lbx-review-charcoal) !important;

    font-family:"DM Sans",sans-serif !important;
    font-size:13px !important;

    outline:none !important;
    box-shadow:none !important;
}

.lbx-client-review-form input[type="text"],
.lbx-client-review-form input[type="email"]{
    min-height:52px;
}

.lbx-client-review-form textarea{
    min-height:128px;
    resize:vertical;
}

.lbx-client-review-form input:focus,
.lbx-client-review-form textarea:focus{
    border-color:rgba(121,43,67,.42) !important;
    box-shadow:0 0 0 3px rgba(121,43,67,.05) !important;
}

.lbx-review-message-field,
.lbx-review-display-name{
    margin-top:16px !important;
}

.lbx-review-message-field small,
.lbx-review-display-name small{
    color:#9B858A;
    font-size:10px;
    font-weight:500;
}

.lbx-review-message-field > small{
    display:block;
    margin-top:7px;
}

.lbx-review-submit-btn{
    width:100%;
    min-height:52px;

    margin-top:20px;
    padding:0 22px;

    border:0 !important;
    border-radius:100px !important;

    background:var(--lbx-review-deep) !important;
    color:#fff !important;

    font-family:"DM Sans",sans-serif !important;
    font-size:11px !important;
    font-weight:700 !important;
    letter-spacing:1.2px !important;

    cursor:pointer;
}

.lbx-review-submit-btn:hover{
    background:#6C3D48 !important;
}

.lbx-review-submit-btn:disabled{
    opacity:.65;
    cursor:wait;
}

.lbx-review-form-message{
    display:none;
    margin-top:16px;
    padding:12px 14px;

    border-radius:10px;

    font-family:"DM Sans",sans-serif;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
}

.lbx-review-form-message.is-success{
    display:block;
    background:rgba(168,178,162,.19);
    border:1px solid rgba(168,178,162,.42);
    color:#526050;
}

.lbx-review-form-message.is-error{
    display:block;
    background:rgba(121,43,67,.07);
    border:1px solid rgba(121,43,67,.18);
    color:var(--lbx-review-deep);
}

.lbx-review-honeypot{
    position:absolute !important;
    left:-10000px !important;
    top:auto !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    opacity:0 !important;
}

@media(max-width:1024px){
    .lbx-review-submit-card{
        grid-template-columns:1fr;
        gap:30px;
        padding:36px 34px;
    }

    .lbx-review-submit-copy{
        max-width:650px;
        text-align:center;
        margin:0 auto;
    }
}

@media(max-width:767px){
    .lbx-review-submit{
        width:min(100% - 32px,1180px);
        padding:4px 0 60px;
    }

    .lbx-review-submit-card{
        padding:28px 20px;
        border-radius:18px;
    }

    .lbx-review-submit-copy h3{
        font-size:34px;
    }

    .lbx-review-fields{
        grid-template-columns:1fr;
        gap:14px;
    }

    .lbx-review-stars-input{
        justify-content:center;
    }
}

/* =========================================================
   SIMPLE INLINE CLIENT REVIEW
   Minimal by design: one button, then a compact form.
========================================================= */
.lbx-simple-review,
.lbx-simple-review *{
    box-sizing:border-box;
}

.lbx-simple-review{
    width:100%;
    max-width:620px;
    margin:30px auto 0;
    text-align:center;
}

.lbx-simple-review-toggle,
.lbx-simple-review-submit{
    min-height:48px;
    padding:0 26px;
    border:0 !important;
    border-radius:100px !important;
    background:#792B43 !important;
    color:#fff !important;
    font-family:"DM Sans",sans-serif !important;
    font-size:11px !important;
    font-weight:700 !important;
    letter-spacing:1.1px !important;
    cursor:pointer;
    box-shadow:none !important;
}

.lbx-simple-review-toggle:hover,
.lbx-simple-review-submit:hover{
    background:#6C3D48 !important;
}

.lbx-simple-review-form{
    margin-top:18px;
    padding:24px;
    border:1px solid rgba(121,43,67,.10);
    border-radius:18px;
    background:rgba(255,249,245,.78);
    text-align:left;
}

.lbx-simple-review-form[hidden]{
    display:none !important;
}

.lbx-simple-stars{
    display:flex;
    flex-direction:row-reverse;
    justify-content:center;
    gap:5px;
    margin:0 0 18px;
}

.lbx-simple-stars input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.lbx-simple-stars label{
    margin:0;
    color:rgba(165,101,110,.27);
    font-size:30px;
    line-height:1;
    cursor:pointer;
    transition:color .15s ease, transform .15s ease;
}

.lbx-simple-stars label:hover,
.lbx-simple-stars label:hover ~ label,
.lbx-simple-stars input:checked ~ label{
    color:#A5656E;
}

.lbx-simple-review-form input[type="email"],
.lbx-simple-review-form textarea{
    width:100%;
    margin:0 0 12px;
    padding:14px 15px;
    border:1px solid rgba(121,43,67,.14) !important;
    border-radius:12px !important;
    background:#fff !important;
    color:#372D2F !important;
    font-family:"DM Sans",sans-serif !important;
    font-size:13px !important;
    box-shadow:none !important;
    outline:none !important;
}

.lbx-simple-review-form input[type="email"]{
    min-height:50px;
}

.lbx-simple-review-form textarea{
    min-height:115px;
    resize:vertical;
}

.lbx-simple-review-form input:focus,
.lbx-simple-review-form textarea:focus{
    border-color:rgba(121,43,67,.42) !important;
    box-shadow:0 0 0 3px rgba(121,43,67,.05) !important;
}

.lbx-simple-review-submit{
    width:100%;
}

.lbx-simple-review-submit:disabled{
    opacity:.65;
    cursor:wait;
}

.lbx-simple-review-message{
    display:none;
    margin:0 0 12px;
    padding:11px 13px;
    border-radius:10px;
    font-family:"DM Sans",sans-serif;
    font-size:12px;
    font-weight:600;
    line-height:1.5;
}

.lbx-simple-review-message.is-success{
    display:block;
    background:rgba(168,178,162,.19);
    border:1px solid rgba(168,178,162,.42);
    color:#526050;
}

.lbx-simple-review-message.is-error{
    display:block;
    background:rgba(121,43,67,.07);
    border:1px solid rgba(121,43,67,.18);
    color:#792B43;
}

@media(max-width:767px){
    .lbx-simple-review{
        margin-top:24px;
    }

    .lbx-simple-review-form{
        padding:20px 16px;
        border-radius:16px;
    }

    .lbx-simple-review-toggle{
        width:100%;
    }
}

/* =========================================================
   V3.0.5 APPOINTMENT POLICY STRIP
   Compact client-facing rules controlled from plugin settings.
========================================================= */
.lbx-policy-strip{
    width:min(930px,100%);
    margin:0 auto 22px;
    padding:12px 18px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px 0;
    border:1px solid rgba(121,43,67,.10);
    border-radius:12px;
    background:rgba(255,249,245,.78);
    color:#6C3D48;
    font-family:"DM Sans",sans-serif;
    font-size:11px;
    font-weight:600;
    line-height:1.45;
    text-align:center;
}

.lbx-policy-strip span{
    display:inline-flex;
    align-items:center;
}

.lbx-policy-strip span + span::before{
    content:"•";
    margin:0 11px;
    color:#A8B2A2;
    font-weight:700;
}

@media(max-width:767px){
    .lbx-policy-strip{
        margin-bottom:18px;
        padding:12px 14px;
        display:grid;
        justify-items:start;
        gap:6px;
        text-align:left;
        font-size:10.5px;
    }

    .lbx-policy-strip span + span::before{
        content:"";
        margin:0;
    }
}


/* =========================================================
   V3.0.6 CLIENT WORDING + POLICY HIGHLIGHTS + READABILITY
========================================================= */

.lbx-policy-box{
    width:min(930px,100%);
    margin:0 auto 26px;
    padding:20px 22px;
    border:1px solid rgba(121,43,67,.11);
    border-radius:16px;
    background:rgba(243,223,225,.46);
}

.lbx-policy-heading{
    display:block;
    margin:0 0 14px;
    color:#792B43;
    font-family:"DM Sans",sans-serif;
    font-size:14px;
    font-weight:700;
    letter-spacing:.5px;
}

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

.lbx-policy-item{
    min-height:92px;
    padding:15px 16px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-radius:12px;
    background:rgba(255,249,245,.88);
    border:1px solid rgba(121,43,67,.08);
}

.lbx-policy-item b{
    display:block;
    margin-bottom:6px;
    color:#792B43;
    font-size:17px;
    line-height:1.2;
}

.lbx-policy-item span{
    color:#67575B;
    font-size:13px;
    line-height:1.55;
}

.lbx-terms-consent{
    background:rgba(255,249,245,.82);
    border:1px solid rgba(121,43,67,.11);
    color:#5F5054;
}

.lbx-terms-consent a{
    color:#792B43;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;
}

/* Larger client text, selectable in Settings */
.lbx-text-large .lbx-step-indicator span{font-size:15px}
.lbx-text-large .lbx-panel-title h2{font-size:41px}
.lbx-text-large .lbx-field-block label,
.lbx-text-large .lbx-field-label,
.lbx-text-large .lbx-contact-fields label,
.lbx-text-large .lbx-notes-field{font-size:15px}
.lbx-text-large .lbx-field-block select,
.lbx-text-large .lbx-contact-fields input,
.lbx-text-large .lbx-notes-field textarea{font-size:16px}
.lbx-text-large .lbx-addon-copy strong{font-size:15px}
.lbx-text-large .lbx-addon-copy small{font-size:13px}
.lbx-text-large .lbx-calendar-head strong,
.lbx-text-large .lbx-times-heading{font-size:16px}
.lbx-text-large .lbx-calendar-day,
.lbx-text-large .lbx-time-btn{font-size:14px}
.lbx-text-large .lbx-review-summary span{font-size:13px}
.lbx-text-large .lbx-review-summary strong{font-size:15px}
.lbx-text-large .lbx-consent{font-size:14px}
.lbx-text-large .lbx-primary-btn,
.lbx-text-large .lbx-submit-btn{font-size:14px}

.lbx-text-extra .lbx-step-indicator span{font-size:16px}
.lbx-text-extra .lbx-panel-title h2{font-size:44px}
.lbx-text-extra .lbx-field-block label,
.lbx-text-extra .lbx-field-label,
.lbx-text-extra .lbx-contact-fields label,
.lbx-text-extra .lbx-notes-field{font-size:17px}
.lbx-text-extra .lbx-field-block select,
.lbx-text-extra .lbx-contact-fields input,
.lbx-text-extra .lbx-notes-field textarea{font-size:17px}
.lbx-text-extra .lbx-addon-copy strong{font-size:16px}
.lbx-text-extra .lbx-addon-copy small{font-size:14px}
.lbx-text-extra .lbx-calendar-head strong,
.lbx-text-extra .lbx-times-heading{font-size:17px}
.lbx-text-extra .lbx-calendar-day,
.lbx-text-extra .lbx-time-btn{font-size:15px}
.lbx-text-extra .lbx-review-summary span{font-size:14px}
.lbx-text-extra .lbx-review-summary strong{font-size:16px}
.lbx-text-extra .lbx-consent{font-size:15px}
.lbx-text-extra .lbx-primary-btn,
.lbx-text-extra .lbx-submit-btn{font-size:15px}

@media(max-width:767px){
    .lbx-policy-box{
        margin-bottom:20px;
        padding:16px;
        border-radius:14px;
    }

    .lbx-policy-heading{
        margin-bottom:10px;
        font-size:14px;
    }

    .lbx-policy-grid{
        grid-template-columns:1fr;
        gap:9px;
    }

    .lbx-policy-item{
        min-height:auto;
        padding:13px 14px;
    }

    .lbx-policy-item b{font-size:16px}
    .lbx-policy-item span{font-size:13px}

    .lbx-text-large .lbx-step-indicator span{font-size:11px}
    .lbx-text-large .lbx-panel-title h2{font-size:34px}
    .lbx-text-large .lbx-service-card small{font-size:13px}
    .lbx-text-large .lbx-field-block label,
    .lbx-text-large .lbx-field-label,
    .lbx-text-large .lbx-contact-fields label,
    .lbx-text-large .lbx-notes-field{font-size:15px}
    .lbx-text-large .lbx-field-block select,
    .lbx-text-large .lbx-contact-fields input,
    .lbx-text-large .lbx-notes-field textarea{font-size:16px}
    .lbx-text-large .lbx-addon-copy strong{font-size:15px}
    .lbx-text-large .lbx-addon-copy small{font-size:13px}
    .lbx-text-large .lbx-calendar-day,
    .lbx-text-large .lbx-time-btn{font-size:14px}
    .lbx-text-large .lbx-review-summary span{font-size:13px}
    .lbx-text-large .lbx-review-summary strong{font-size:15px}
    .lbx-text-large .lbx-consent{font-size:14px;line-height:1.55}

    .lbx-text-extra .lbx-step-indicator span{font-size:12px}
    .lbx-text-extra .lbx-panel-title h2{font-size:36px}
    .lbx-text-extra .lbx-service-card small{font-size:14px}
    .lbx-text-extra .lbx-field-block label,
    .lbx-text-extra .lbx-field-label,
    .lbx-text-extra .lbx-contact-fields label,
    .lbx-text-extra .lbx-notes-field{font-size:16px}
    .lbx-text-extra .lbx-field-block select,
    .lbx-text-extra .lbx-contact-fields input,
    .lbx-text-extra .lbx-notes-field textarea{font-size:17px}
    .lbx-text-extra .lbx-addon-copy strong{font-size:16px}
    .lbx-text-extra .lbx-addon-copy small{font-size:14px}
    .lbx-text-extra .lbx-calendar-day,
    .lbx-text-extra .lbx-time-btn{font-size:15px}
    .lbx-text-extra .lbx-review-summary span{font-size:14px}
    .lbx-text-extra .lbx-review-summary strong{font-size:16px}
    .lbx-text-extra .lbx-consent{font-size:15px;line-height:1.55}
}


/* =========================================================
   V3.0.7 COMPACT POLICY NOTE — LOWER IN BOOKING
========================================================= */

/* Old top policy panel is no longer rendered. Keep this hidden in case
   cached markup remains briefly after an update. */
.lbx-policy-box{
    display:none !important;
}

.lbx-policy-tick-note{
    width:100%;
    margin:24px 0 14px;
    padding:14px 16px;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 18px;
    border-top:1px solid rgba(121,43,67,.12);
    border-bottom:1px solid rgba(121,43,67,.12);
    background:transparent;
    color:#5F5054;
    font-family:"DM Sans",sans-serif;
    font-size:14px;
    line-height:1.5;
    font-weight:600;
}

.lbx-policy-tick-note span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}

.lbx-policy-tick-note b{
    color:#A5656E;
    font-size:15px;
    line-height:1;
}

.lbx-text-large .lbx-policy-tick-note{
    font-size:15px;
}

.lbx-text-extra .lbx-policy-tick-note{
    font-size:16px;
}

@media(max-width:767px){
    .lbx-policy-tick-note{
        margin:20px 0 12px;
        padding:13px 4px;
        flex-direction:column;
        align-items:flex-start;
        gap:8px;
        font-size:14px;
    }

    .lbx-text-large .lbx-policy-tick-note{
        font-size:15px;
    }

    .lbx-text-extra .lbx-policy-tick-note{
        font-size:16px;
    }
}


/* =========================================================
   TIME SLOT AVAILABILITY STATES
========================================================= */
.lbx-time-btn.blocked,
.lbx-time-btn:disabled.blocked{
    opacity:.48;
    cursor:not-allowed !important;
    background:#F4EFEE !important;
    border-color:rgba(108,61,72,.10) !important;
    color:#8C7C80 !important;
    box-shadow:none !important;
}

.lbx-time-btn.blocked small{
    display:block;
    margin-top:3px;
    font-size:9px;
    line-height:1.2;
    font-weight:600;
    letter-spacing:.2px;
    color:#9A898D;
}

.lbx-time-btn .lbx-time-label{
    display:block;
}
