:root{
    --vmt-primary:#ed1b3b;
    --vmt-primary-dark:#c91432;
    --vmt-navy:#182033;
    --vmt-text:#172033;
    --vmt-muted:#6b7280;
    --vmt-border:#e5e7eb;
    --vmt-border-light:#eef0f3;
    --vmt-soft:#fff7f8;
    --vmt-soft-2:#fff1f3;
}

.vmt-booking-container,
.vmt-checkout-premium-root,
.vmt-booking-container *,
.vmt-checkout-premium-root *{
    box-sizing:border-box!important;
}

/* =========================================================
   GLOBAL
========================================================= */

.vmt-booking-container,
.vmt-checkout-premium-root{
    width:100%!important;
    max-width:100%!important;
    margin:25px 0!important;
    padding:0!important;
    font-family:Inter,Arial,sans-serif!important;
    color:var(--vmt-text)!important;
    line-height:1.5!important;
}

.vmt-header-icon,
.vmt-user-icon,
.vmt-person-icon,
.vmt-sum-icon,
.vmt-notice-icon,
.vmt-service-icon{
    display:none!important;
    width:0!important;
    height:0!important;
    margin:0!important;
    padding:0!important;
}

.vmt-header-left,
.vmt-person-left,
.vmt-sum-left{
    gap:0!important;
}

/* =========================================================
   MAIN BOOKING CARD
========================================================= */

.vmt-booking-container .vmt-card{
    width:100%!important;
    margin:0!important;
    padding:clamp(16px,3vw,28px)!important;
    background:#fff!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:18px!important;
    box-shadow:0 8px 30px rgba(0,0,0,.04)!important;
    overflow:hidden!important;
}

.vmt-booking-container .vmt-card-header{
    display:block!important;
    width:100%!important;
    margin:0 0 22px!important;
    padding:0 0 18px!important;
    border-bottom:1px solid var(--vmt-border)!important;
}

.vmt-booking-container .vmt-card-header h3{
    margin:0!important;
    font-size:clamp(22px,3vw,28px)!important;
    line-height:1.2!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}

.vmt-booking-container .vmt-card-header p{
    margin:6px 0 0!important;
    font-size:14px!important;
    color:var(--vmt-muted)!important;
}

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

.vmt-calendar-grid{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:7px!important;
    margin:0 0 22px!important;
    padding:0!important;
}

.vmt-calendar-nav{
    grid-column:1/-1!important;
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin:0!important;
    padding:0 0 12px!important;
}

.vmt-month-year{
    flex:1!important;
    text-align:center!important;
    margin:0!important;
    font-size:18px!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}

.vmt-nav-btn{
    flex:0 0 40px!important;
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:10px!important;
    background:#fff!important;
    color:var(--vmt-navy)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:16px!important;
    cursor:pointer!important;
}

.vmt-nav-btn.next{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
    color:#fff!important;
}

.vmt-weekday{
    min-width:0!important;
    padding:2px 0 6px!important;
    text-align:center!important;
    font-size:10px!important;
    font-weight:800!important;
    color:var(--vmt-muted)!important;
    text-transform:uppercase!important;
}

.vmt-calendar-empty{
    min-width:0!important;
}

.vmt-date-cell{
    width:100%!important;
    min-width:0!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:5px 2px!important;
    border:1px solid var(--vmt-border-light)!important;
    border-radius:10px!important;
    background:#fff!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    cursor:pointer!important;
    overflow:hidden!important;
    transition:.2s ease!important;
}

.vmt-date-cell:hover{
    border-color:var(--vmt-primary)!important;
    transform:translateY(-1px)!important;
}

.vmt-date-cell span{
    display:block!important;
    margin:0!important;
    font-size:16px!important;
    line-height:1.1!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}

.vmt-date-cell small{
    display:block!important;
    margin:3px 0 0!important;
    font-size:9px!important;
    line-height:1!important;
    font-weight:700!important;
    color:#00bb98!important;
    white-space:nowrap!important;
}

.vmt-date-cell.active{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
}

.vmt-date-cell.active span,
.vmt-date-cell.active small{
    color:#fff!important;
}

.vmt-date-cell.disabled{
    background:#f5f6f8!important;
    border-color:#f0f1f3!important;
    color:#b9bec7!important;
    cursor:not-allowed!important;
    opacity:.65!important;
    transform:none!important;
}

.vmt-date-cell.disabled span{
    color:#b9bec7!important;
}

.vmt-date-cell.disabled small{
    color:var(--vmt-primary)!important;
}

/* =========================================================
   SECTION TITLES
========================================================= */

.vmt-section-title{
    display:block!important;
    width:100%!important;
    margin:25px 0 12px!important;
    padding:0!important;
    font-size:16px!important;
    line-height:1.3!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}

.vmt-section-title::before,
.vmt-section-title::after{
    display:none!important;
    content:none!important;
}

/* =========================================================
   TIME SLOTS
========================================================= */

.vmt-slot-grid{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:9px!important;
    margin:0!important;
    padding:0!important;
}

.vmt-slot-btn{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    height:56px!important;
    min-height:56px!important;
    margin:0!important;
    padding:7px 6px!important;
    background:#11333f!important;
    border:1.5px solid var(--vmt-navy)!important;
    border-radius:10px!important;
    color:#fff!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    cursor:pointer!important;
    overflow:hidden!important;
}

.vmt-slot-btn:hover{
    background:#183f4b!important;
}

.vmt-slot-btn.selected{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
}

.vmt-slot-btn:disabled,
.vmt-slot-btn.vmt-sold-out{
    background:#f1f2f4!important;
    border-color:#d9dde3!important;
    color:#8c939e!important;
    cursor:not-allowed!important;
}

.vmt-slot-time{
    font-size:16px!important;
    line-height:1.05!important;
    font-weight:600!important;
}

.vmt-slot-stock{
    margin-top:3px!important;
    font-size:10px!important;
    line-height:1!important;
}

.vmt-slot-btn.vmt-low-stock{
    border-color:#f59e0b!important;
}

.vmt-slot-btn.vmt-low-stock .vmt-slot-stock{
    color:#ff8a00!important;
    font-weight:800!important;
}

.vmt-slot-loading,
.vmt-slot-error{
    grid-column:1/-1!important;
    width:100%!important;
    padding:14px!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:10px!important;
    background:#f8f9fb!important;
    color:var(--vmt-muted)!important;
    text-align:center!important;
    font-size:13px!important;
}

/* =========================================================
   SLOT PRICE BADGE
   ONLY adjusted slots show this.
========================================================= */

.vmt-slot-price{
    display:none!important;
}

.vmt-slot-price-badge{
    position:absolute!important;
    top:5px!important;
    right:5px!important;
    z-index:3!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:18px!important;
    padding:3px 6px!important;
    border-radius:5px!important;
    font-size:8.5px!important;
    line-height:1!important;
    font-weight:800!important;
    background:#fff!important;
    border:1px solid #ffd2d9!important;
    color:#ed1b3b!important;
    white-space:nowrap!important;
    pointer-events:none!important;
}

.vmt-slot-price-badge.is-up{
    color:#ed1b3b!important;
    background:#fff5f7!important;
    border-color:#ffd2d9!important;
}

.vmt-slot-price-badge.is-down{
    color:#087f5b!important;
    background:#f0fff8!important;
    border-color:#b7ead6!important;
}

.vmt-slot-btn.selected .vmt-slot-price-badge{
    background:#fff!important;
    border-color:#fff!important;
}

/* =========================================================
   SELECT
========================================================= */

.vmt-select-wrapper{
    width:100%!important;
    margin:0!important;
    padding:0!important;
}

.vmt-select{
    width:100%!important;
    min-height:48px!important;
    margin:0!important;
    padding:0 42px 0 14px!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:10px!important;
    background:#fff!important;
    color:var(--vmt-text)!important;
    font-size:14px!important;
    outline:none!important;
    box-shadow:none!important;
}

/* =========================================================
   PERSON SELECTOR
========================================================= */

.vmt-person-selector{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:16px!important;
    margin:0!important;
    padding:14px 0!important;
    border-bottom:1px solid var(--vmt-border-light)!important;
}

.vmt-person-left{
    flex:1 1 auto!important;
    min-width:0!important;
}

.vmt-person-name{
    display:block!important;
    margin:0!important;
    font-size:15px!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}

.vmt-person-meta{
    display:block!important;
    margin-top:3px!important;
    font-size:12px!important;
    color:var(--vmt-muted)!important;
}

.vmt-qty-box{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    gap:9px!important;
}

.qty-btn{
    flex:0 0 38px!important;
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid #203741!important;
    border-radius:9px!important;
    background:#203741!important;
    color:#fff!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:18px!important;
    line-height:1!important;
    cursor:pointer!important;
}

.qty-btn:hover{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
}

.qty-btn:disabled,
.qty-btn.is-disabled{
    background:#e7e9ed!important;
    border-color:#d7dbe1!important;
    color:#9aa0a8!important;
    cursor:not-allowed!important;
}

.qty-val{
    min-width:22px!important;
    text-align:center!important;
    font-size:15px!important;
    font-weight:700!important;
    color:var(--vmt-navy)!important;
}

/* =========================================================
   SUMMARY
========================================================= */

.vmt-summary-card{
    width:100%!important;
    margin:22px 0 0!important;
    padding:18px!important;
    background:#f8f9fb!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:14px!important;
}

.vmt-sum-details{
    width:100%!important;
    margin:0!important;
    font-size:13px!important;
    line-height:1.8!important;
}

.vmt-sum-row{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin:0 0 8px!important;
    font-size:14px!important;
}

.vmt-sum-row.total{
    margin-top:14px!important;
    padding-top:14px!important;
    border-top:1px dashed #d9dde3!important;
    color:#fd4c5c!important;
    font-size:19px!important;
    font-weight:800!important;
}

.vmt-main-btn{
    width:100%!important;
    min-height:52px!important;
    margin:18px 0 0!important;
    padding:14px 18px!important;
    border:0!important;
    border-radius:11px!important;
    background:#fd4c5c!important;
    color:#fff!important;
    font-size:16px!important;
    font-weight:800!important;
    cursor:pointer!important;
}

.vmt-main-btn:hover{
    background:var(--vmt-primary-dark)!important;
}

/* =========================================================
   CHECKOUT
========================================================= */

.vmt-checkout-premium-root .vmt-traveler-card{
    width:100%!important;
    margin:0 0 18px!important;
    padding:0!important;
    background:#fff!important;
    border:1px solid var(--vmt-border)!important;
    border-left:3px solid var(--vmt-primary)!important;
    border-radius:16px!important;
    box-shadow:0 6px 25px rgba(0,0,0,.04)!important;
    overflow:hidden!important;
}

.vmt-checkout-premium-root .vmt-card-header{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin:0!important;
    padding:18px 20px!important;
    background:#fff!important;
    border-bottom:1px solid var(--vmt-border-light)!important;
}

.vmt-header-text{
    flex:1 1 auto!important;
    min-width:0!important;
}

.vmt-header-title{
    display:block!important;
    margin:0!important;
    font-size:18px!important;
    line-height:1.35!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}

.vmt-header-subtitle{
    display:block!important;
    margin-top:3px!important;
    font-size:12px!important;
    color:var(--vmt-muted)!important;
}

.vmt-header-badge{
    flex:0 0 auto!important;
    padding:5px 10px!important;
    border-radius:7px!important;
    font-size:10px!important;
    line-height:1.2!important;
    font-weight:800!important;
}

.vmt-header-badge.is-adult{
    background:var(--vmt-soft-2)!important;
    border:1px solid #ffd2d9!important;
    color:var(--vmt-primary)!important;
}

.vmt-header-badge.is-child{
    background:#eff8ff!important;
    border:1px solid #c8e6fa!important;
    color:#0369a1!important;
}

.vmt-checkout-premium-root .vmt-card-body{
    width:100%!important;
    padding:20px!important;
}

.vmt-checkout-premium-root .vmt-form-grid{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
}

.vmt-checkout-premium-root .vmt-input-group{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
}

.vmt-checkout-premium-root .vmt-input-group label{
    display:block!important;
    margin:0 0 7px!important;
    font-size:13px!important;
    font-weight:700!important;
    color:var(--vmt-navy)!important;
}

.vmt-checkout-premium-root .vmt-input-group input[type="text"]{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:50px!important;
    margin:0!important;
    padding:0 14px!important;
    border:1px solid #d7dce3!important;
    border-radius:9px!important;
    background:#fff!important;
    color:var(--vmt-text)!important;
    font-size:14px!important;
    outline:none!important;
    box-shadow:none!important;
}

.vmt-checkout-premium-root .vmt-input-group input[type="text"]:focus{
    border-color:var(--vmt-primary)!important;
    box-shadow:0 0 0 3px rgba(237,27,59,.08)!important;
}

/* =========================================================
   EXTRA SERVICES
========================================================= */

.vmt-services-container{
    width:100%!important;
    margin:20px 0 0!important;
    padding:17px!important;
    background:var(--vmt-soft)!important;
    border:1px solid #ffd8de!important;
    border-radius:14px!important;
}

.vmt-services-header{
    margin:0 0 12px!important;
    font-size:14px!important;
    line-height:1.3!important;
    font-weight:800!important;
    color:var(--vmt-primary)!important;
}

.vmt-services-grid{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin:0!important;
    padding:0!important;
    align-items:stretch!important;
}

.vmt-service-card{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    height:64px!important;
    min-height:64px!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
    cursor:pointer!important;
    text-align:left!important;
}

.vmt-addon-checkbox{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important;
    pointer-events:none!important;
    margin:0!important;
    padding:0!important;
}

.vmt-service-content{
    position:relative!important;
    width:100%!important;
    height:64px!important;
    min-height:64px!important;
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr) auto!important;
    align-items:center!important;
    column-gap:10px!important;
    margin:0!important;
    padding:10px 12px!important;
    background:#fff!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:10px!important;
    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease,
        transform .2s ease!important;
    overflow:hidden!important;
}

.vmt-service-card:hover .vmt-service-content{
    border-color:#ffabb8!important;
    background:#fffafb!important;
    box-shadow:0 5px 16px rgba(237,27,59,.07)!important;
    transform:translateY(-1px)!important;
}

.vmt-service-check{
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
    min-height:19px!important;
    margin:0!important;
    padding:0!important;
    border:1.5px solid #cbd1d9!important;
    border-radius:5px!important;
    background:#fff!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative!important;
    transition:
        background .18s ease,
        border-color .18s ease,
        transform .18s ease!important;
}

.vmt-service-check::after{
    content:""!important;
    position:absolute!important;
    width:5px!important;
    height:9px!important;
    left:6px!important;
    top:3px!important;
    border:solid #fff!important;
    border-width:0 2px 2px 0!important;
    transform:rotate(45deg) scale(0)!important;
    transition:transform .15s ease!important;
}

.vmt-addon-checkbox:checked + .vmt-service-content{
    background:#fff6f8!important;
    border-color:var(--vmt-primary)!important;
    box-shadow:0 4px 14px rgba(237,27,59,.09)!important;
}

.vmt-addon-checkbox:checked + .vmt-service-content .vmt-service-check{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
    transform:scale(1.02)!important;
}

.vmt-addon-checkbox:checked + .vmt-service-content .vmt-service-check::after{
    transform:rotate(45deg) scale(1)!important;
}

.vmt-service-name{
    display:-webkit-box!important;
    min-width:0!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    font-size:13px!important;
    line-height:1.25!important;
    font-weight:700!important;
    color:var(--vmt-navy)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:normal!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
}

.vmt-service-price{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:5px 8px!important;
    background:#f8f9fb!important;
    border:1px solid #eef0f3!important;
    border-radius:6px!important;
    font-size:11.5px!important;
    line-height:1!important;
    font-weight:800!important;
    color:var(--vmt-primary)!important;
    white-space:nowrap!important;
}

.vmt-addon-checkbox:checked + .vmt-service-content .vmt-service-price{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
    color:#fff!important;
}

/* JS selected-state support */
.vmt-service-card.is-selected .vmt-service-content{
    background:#fff6f8!important;
    border-color:var(--vmt-primary)!important;
    box-shadow:0 4px 14px rgba(237,27,59,.09)!important;
}

.vmt-service-card.is-selected .vmt-service-content .vmt-service-check{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
}

.vmt-service-card.is-selected .vmt-service-content .vmt-service-check::after{
    transform:rotate(45deg) scale(1)!important;
}

.vmt-service-card.is-selected .vmt-service-content .vmt-service-price{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
    color:#fff!important;
}

/* =========================================================
   CHECKOUT TIMER
========================================================= */

#vmt-checkout-hold-timer{
    width:100%!important;
    margin:0 0 22px!important;
    padding:14px 18px!important;
    background:#fff5f7!important;
    border:1px solid #ffd0d8!important;
    border-radius:12px!important;
    text-align:center!important;
    color:var(--vmt-navy)!important;
    font-size:14px!important;
    font-weight:700!important;
}

#vmt-timer-clock{
    display:inline-block!important;
    min-width:62px!important;
    margin-left:6px!important;
    padding:4px 8px!important;
    background:#fff!important;
    border:1px solid #ffd2d9!important;
    border-radius:6px!important;
    color:var(--vmt-primary)!important;
    font-size:17px!important;
    font-weight:900!important;
    font-family:monospace!important;
}

/* =========================================================
   NOTICES
========================================================= */

.vmt-notice,
.vmt-hold-expired-message{
    width:100%!important;
    margin:14px 0!important;
    padding:12px 15px!important;
    background:#fff1f2!important;
    border-left:4px solid var(--vmt-primary)!important;
    border-radius:6px!important;
    color:#be123c!important;
    font-size:13px!important;
    font-weight:700!important;
}

/* =========================================================
   TEXT WIDTH RESET
========================================================= */

.vmt-booking-container p,
.vmt-booking-container h1,
.vmt-booking-container h2,
.vmt-booking-container h3,
.vmt-booking-container label,
.vmt-checkout-premium-root p,
.vmt-checkout-premium-root h1,
.vmt-checkout-premium-root h2,
.vmt-checkout-premium-root h3,
.vmt-checkout-premium-root label{
    max-width:none!important;
}

/* =========================================================
   WOOCOMMERCE REVIEW ORDER
========================================================= */

.woocommerce-checkout-review-order-table .variation{
    margin:5px 0 0!important;
    padding:0!important;
    font-size:12px!important;
    line-height:1.5!important;
}

.woocommerce-checkout-review-order-table .variation dt{
    display:inline!important;
    margin:0 4px 0 0!important;
    padding:0!important;
    font-weight:700!important;
    color:var(--vmt-navy)!important;
}

.woocommerce-checkout-review-order-table .variation dd{
    display:inline!important;
    margin:0 0 3px!important;
    padding:0!important;
    color:var(--vmt-primary)!important;
}

.woocommerce-checkout-review-order-table .variation dd p{
    display:inline!important;
    margin:0!important;
}

/* =========================================================
   ADMIN - STOCK + PRICE
========================================================= */

#vmt_settings .vmt-stock-override,
#vmt_settings .vmt-price-override{
    display:grid!important;
    grid-template-columns:1.2fr 1fr .8fr auto!important;
    gap:10px!important;
    align-items:end!important;
    margin:0 0 10px!important;
    padding:15px!important;
    background:#fff7f8!important;
    border:1px solid #ffd5dc!important;
    border-radius:10px!important;
}

#vmt_settings .vmt-stock-field,
#vmt_settings .vmt-price-field{
    margin:0!important;
}

#vmt_settings .vmt-stock-field label,
#vmt_settings .vmt-price-field label{
    display:block!important;
    margin:0 0 6px!important;
    font-size:12px!important;
    font-weight:700!important;
    color:#182033!important;
}

#vmt_settings .vmt-stock-field input,
#vmt_settings .vmt-price-field input{
    width:100%!important;
    min-height:38px!important;
    margin:0!important;
}

#vmt_settings .vmt-price-field small{
    display:block!important;
    margin-top:4px!important;
    color:#6b7280!important;
    font-size:10px!important;
}

#vmt-save-stock,
#vmt-save-price{
    min-height:38px!important;
    white-space:nowrap!important;
}

#vmt-stock-message,
#vmt-price-message{
    margin:0 0 10px!important;
    font-size:12px!important;
    font-weight:700!important;
}

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

@media(max-width:900px){

    #vmt_settings .vmt-stock-override,
    #vmt_settings .vmt-price-override{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

@media(max-width:767px){

    .vmt-booking-container,
    .vmt-checkout-premium-root{
        margin:15px 0!important;
    }

    .vmt-booking-container .vmt-card{
        padding:16px!important;
        border-radius:14px!important;
    }

    .vmt-calendar-grid{
        gap:5px!important;
    }

    .vmt-date-cell{
        border-radius:8px!important;
        padding:4px 1px!important;
    }

    .vmt-date-cell span{
        font-size:13px!important;
    }

    .vmt-date-cell small{
        font-size:8px!important;
    }

    .vmt-slot-grid{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:7px!important;
    }

    .vmt-slot-btn{
        height:54px!important;
        min-height:54px!important;
    }

    .vmt-slot-time{
        font-size:15px!important;
    }

    .vmt-slot-price-badge{
        top:4px!important;
        right:4px!important;
        min-height:16px!important;
        padding:2px 5px!important;
        font-size:7.5px!important;
    }

    .vmt-person-selector{
        gap:10px!important;
        padding:13px 0!important;
    }

    .qty-btn{
        width:36px!important;
        min-width:36px!important;
        height:36px!important;
        min-height:36px!important;
        flex-basis:36px!important;
    }

    .vmt-checkout-premium-root .vmt-form-grid{
        grid-template-columns:1fr!important;
        gap:13px!important;
    }

    .vmt-services-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:9px!important;
    }

    .vmt-service-card{
        height:62px!important;
        min-height:62px!important;
    }

    .vmt-service-content{
        height:62px!important;
        min-height:62px!important;
        padding:9px 10px!important;
        column-gap:8px!important;
    }

    .vmt-service-name{
        font-size:12.5px!important;
    }

    .vmt-service-price{
        font-size:10.5px!important;
        padding:5px 7px!important;
    }
}

@media(max-width:500px){

    #vmt_settings .vmt-stock-override,
    #vmt_settings .vmt-price-override{
        grid-template-columns:1fr!important;
    }
}

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

@media(max-width:480px){

    .vmt-booking-container .vmt-card{
        padding:13px!important;
        border-radius:12px!important;
    }

    .vmt-calendar-grid{
        gap:4px!important;
    }

    .vmt-nav-btn{
        width:36px!important;
        min-width:36px!important;
        height:36px!important;
        min-height:36px!important;
        flex-basis:36px!important;
    }

    .vmt-month-year{
        font-size:16px!important;
    }

    .vmt-date-cell span{
        font-size:12px!important;
    }

    .vmt-date-cell small{
        font-size:7px!important;
    }

    .vmt-slot-grid{
        gap:7px!important;
    }

    .vmt-slot-btn{
        height:53px!important;
        min-height:53px!important;
        padding:6px 4px!important;
    }

    .vmt-slot-time{
        font-size:14px!important;
    }

    .vmt-slot-stock{
        font-size:8.5px!important;
    }

    .vmt-slot-price-badge{
        top:4px!important;
        right:4px!important;
        min-height:15px!important;
        padding:2px 4px!important;
        font-size:7px!important;
    }

    .vmt-services-grid{
        grid-template-columns:1fr!important;
        gap:8px!important;
    }

    .vmt-service-card{
        height:60px!important;
        min-height:60px!important;
    }

    .vmt-service-content{
        height:60px!important;
        min-height:60px!important;
        padding:9px 11px!important;
        grid-template-columns:20px minmax(0,1fr) auto!important;
        column-gap:9px!important;
    }

    .vmt-service-name{
        font-size:13px!important;
    }

    .vmt-service-price{
        font-size:11px!important;
        padding:5px 8px!important;
    }

    .vmt-checkout-premium-root .vmt-card-header{
        padding:14px!important;
    }

    .vmt-checkout-premium-root .vmt-card-body{
        padding:14px!important;
    }

    #vmt-checkout-hold-timer{
        padding:12px 14px!important;
        font-size:12px!important;
    }

    #vmt-timer-clock{
        font-size:16px!important;
    }
}

/* =========================================================
   EXTRA SMALL
========================================================= */

@media(max-width:360px){

    .vmt-booking-container .vmt-card{
        padding:11px!important;
    }

    .vmt-calendar-grid{
        gap:3px!important;
    }

    .vmt-date-cell span{
        font-size:11px!important;
    }

    .vmt-date-cell small{
        font-size:6.5px!important;
    }

    .vmt-slot-grid{
        gap:6px!important;
    }

    .vmt-slot-btn{
        height:51px!important;
        min-height:51px!important;
    }

    .vmt-slot-time{
        font-size:13px!important;
    }

    .vmt-slot-price-badge{
        top:3px!important;
        right:3px!important;
        padding:2px 4px!important;
        font-size:6.5px!important;
    }

    .vmt-person-selector{
        gap:5px!important;
    }

    .qty-btn{
        width:32px!important;
        min-width:32px!important;
        height:32px!important;
        min-height:32px!important;
        flex-basis:32px!important;
    }

    .vmt-service-content{
        grid-template-columns:19px minmax(0,1fr) auto!important;
        column-gap:8px!important;
        padding:8px 9px!important;
    }

    .vmt-service-check{
        width:18px!important;
        height:18px!important;
        min-width:18px!important;
        min-height:18px!important;
    }

    .vmt-service-name{
        font-size:12px!important;
    }

    .vmt-service-price{
        font-size:10px!important;
        padding:4px 6px!important;
    }
}

/* =========================================================
   FINAL RESET
========================================================= */

.vmt-service-card *,
.vmt-service-content *,
.vmt-services-container *,
.vmt-slot-btn *{
    box-sizing:border-box!important;
}

.vmt-service-card label{
    max-width:none!important;
}
/* =========================================================
   V18 MULTI-STEP BOOKING + BOOKING-LEVEL EXTRA OPTIONS
========================================================= */
.vmt-step-indicator{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    margin:0 0 24px!important;
    padding:0!important;
}

.vmt-step{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    flex:0 0 auto!important;
    color:#9aa1ad!important;
    font-size:12px!important;
    font-weight:700!important;
}

.vmt-step span{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    border:1px solid #d9dde3!important;
    border-radius:50%!important;
    background:#fff!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    color:#8d95a2!important;
    font-size:11px!important;
    font-weight:800!important;
}

.vmt-step.is-active,
.vmt-step.is-complete{
    color:var(--vmt-primary)!important;
}

.vmt-step.is-active span,
.vmt-step.is-complete span{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
    color:#fff!important;
}

.vmt-step-line{
    flex:1 1 auto!important;
    height:1px!important;
    min-width:20px!important;
    background:#e5e7eb!important;
}

.vmt-booking-step{
    display:none!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
}

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

.vmt-language-block{
    margin-top:22px!important;
}

.vmt-extras-section{
    margin-top:0px!important;
    padding-top:0px!important;
    border-top:0px solid var(--vmt-border)!important;
}

.vmt-extras-help{
    margin:-7px 0 14px!important;
    color:var(--vmt-muted)!important;
    font-size:13px!important;
}

.vmt-extra-addons{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    margin:0!important;
    padding:0!important;
}

.vmt-booking-addon{
    position:relative!important;
    width:100%!important;
    min-height:145px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:13px!important;
    background:#fff!important;
    cursor:pointer!important;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease!important;
}

.vmt-booking-addon:hover{
    border-color:#ffabb8!important;
    background:#fffafb!important;
    box-shadow:0 6px 18px rgba(237,27,59,.07)!important;
    transform:translateY(-1px)!important;
}

.vmt-booking-addon.is-selected{
    border-color:var(--vmt-primary)!important;
    background:#fff7f8!important;
    box-shadow:0 5px 18px rgba(237,27,59,.09)!important;
}

.vmt-service-main{
    width:100%!important;
    min-height:145px!important;
    padding:16px 17px!important;
}

.vmt-service-topline{
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 28px!important;
    align-items:start!important;
    gap:14px!important;
}

.vmt-service-topline .vmt-service-name{
    display:block!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    font-size:15px!important;
    line-height:1.3!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
    overflow:visible!important;
    -webkit-line-clamp:unset!important;
}

.vmt-service-check-wrap{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}

.vmt-booking-addon .vmt-addon-checkbox{
    position:absolute!important;
    opacity:0!important;
    width:1px!important;
    height:1px!important;
    pointer-events:none!important;
}

.vmt-booking-addon .vmt-service-check{
    width:21px!important;
    height:21px!important;
    min-width:21px!important;
    min-height:21px!important;
    margin:0!important;
    border:1.5px solid #bfc6d0!important;
    border-radius:6px!important;
    background:#fff!important;
}

.vmt-booking-addon.is-selected .vmt-service-check{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
}

.vmt-booking-addon.is-selected .vmt-service-check::after{
    transform:rotate(45deg) scale(1)!important;
}

.vmt-service-description{
    width:100%!important;
    margin:9px 0 0!important;
    color:#5f6876!important;
    font-size:12.5px!important;
    line-height:1.55!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
}

.vmt-service-bottomline{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    margin-top:13px!important;
}

.vmt-booking-addon .vmt-service-price{
    flex:0 0 auto!important;
    display:inline-flex!important;
    margin:0!important;
    padding:6px 9px!important;
    border:1px solid #ffd5dc!important;
    border-radius:7px!important;
    background:#fff!important;
    color:var(--vmt-primary)!important;
    font-size:12px!important;
    font-weight:800!important;
}

.vmt-booking-addon.is-selected .vmt-service-price{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
    color:#fff!important;
}

.vmt-addon-readmore{
    appearance:none!important;
    border:0!important;
    background:transparent!important;
    color:#334155!important;
    text-decoration:underline!important;
    text-underline-offset:2px!important;
    padding:2px 0!important;
    margin:0!important;
    font-size:12px!important;
    font-weight:700!important;
    cursor:pointer!important;
}

.vmt-addon-readmore:hover{
    color:var(--vmt-primary)!important;
}

.vmt-booking-notice{
    display:none!important;
    width:100%!important;
    margin:14px 0 0!important;
    padding:10px 13px!important;
    border:1px solid #ffd0d8!important;
    border-radius:9px!important;
    background:#fff5f7!important;
    color:#b5122f!important;
    font-size:12px!important;
    font-weight:700!important;
}

.vmt-booking-notice.is-visible{
    display:block!important;
}

@media(max-width:600px){
    .vmt-step-indicator{
        gap:6px!important;
    }

    .vmt-step{
        gap:5px!important;
        font-size:10px!important;
    }

    .vmt-step span{
        width:25px!important;
        height:25px!important;
        min-width:25px!important;
        font-size:10px!important;
    }

    .vmt-step-line{
        min-width:8px!important;
    }

    .vmt-service-main{
        padding:14px!important;
    }
}

/* Step flow keeps the primary CTA on the final step only. */
.vmt-booking-container .vmt-summary-card{
    margin-top:22px!important;
}


/* =========================================================
   V19 DATE CAROUSEL + NAVIGATION
========================================================= */
.vmt-date-carousel{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:8px!important;
    margin:0 0 16px!important;
    padding:0!important;
}
.vmt-date-carousel-item{
    appearance:none!important;
    border:1px solid var(--vmt-border)!important;
    background:#fff!important;
    border-radius:12px!important;
    min-height:78px!important;
    padding:9px 5px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    cursor:pointer!important;
    color:var(--vmt-navy)!important;
    transition:.18s ease!important;
}
.vmt-date-carousel-item:hover:not(:disabled){
    border-color:var(--vmt-primary)!important;
    transform:translateY(-1px)!important;
}
.vmt-date-carousel-item.is-selected{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
    color:#fff!important;
    box-shadow:0 5px 15px rgba(237,27,59,.15)!important;
}
.vmt-date-carousel-item.is-disabled,
.vmt-date-carousel-item:disabled{
    opacity:.38!important;
    cursor:not-allowed!important;
    background:#f5f6f8!important;
}
.vmt-date-carousel-day{
    font-size:11px!important;
    font-weight:700!important;
    text-transform:uppercase!important;
}
.vmt-date-carousel-item strong{
    font-size:20px!important;
    line-height:1.1!important;
}
.vmt-date-carousel-item small{
    font-size:10px!important;
    font-weight:600!important;
}
.vmt-back-btn{
    appearance:none!important;
    border:0!important;
    background:transparent!important;
    padding:10px 0!important;
    margin:14px 0 0!important;
    color:var(--vmt-primary)!important;
    font-size:13px!important;
    font-weight:700!important;
    cursor:pointer!important;
}
.vmt-step{cursor:pointer!important;}
.vmt-step:not(.is-active):not(.is-complete){cursor:default!important;}
@media(max-width:700px){
    .vmt-date-carousel{
        grid-template-columns:repeat(4,minmax(0,1fr))!important;
    }
    .vmt-date-carousel-item:nth-child(n+5){display:none!important;}
}

/* =========================================================
   V20 PREMIUM UX UPGRADES
========================================================= */
.vmt-date-carousel{
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    align-items:stretch!important;
    gap:9px!important;
}
.vmt-date-carousel-track{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:8px!important;
    min-width:0!important;
}
.vmt-carousel-nav{
    appearance:none!important;
    border:1px solid var(--vmt-border)!important;
    border-radius:11px!important;
    background:#fff!important;
    color:var(--vmt-navy)!important;
    font-size:26px!important;
    font-weight:500!important;
    cursor:pointer!important;
}
.vmt-carousel-nav:hover:not(:disabled){border-color:var(--vmt-primary)!important;color:var(--vmt-primary)!important;}
.vmt-carousel-nav:disabled{opacity:.35!important;cursor:not-allowed!important;}
.vmt-date-carousel-item{min-height:92px!important;}
.vmt-date-carousel-item small{min-height:14px!important;color:#087f5b!important;}
.vmt-date-carousel-item.is-selected small{color:#fff!important;}
.vmt-date-carousel-item.is-disabled small{color:var(--vmt-primary)!important;}

.vmt-language-section{
    margin-top:18px!important;

}
.vmt-inline-heading{
    margin:0 0 10px!important;
    font-size:14px!important;
    line-height:1.3!important;
    font-weight:800!important;
    color:var(--vmt-navy)!important;
}
.vmt-language-inline{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
}
.vmt-language-chip{
    appearance:none!important;
    border:1px solid var(--vmt-border)!important;
    background:#fff!important;
    color:var(--vmt-navy)!important;
    border-radius:999px!important;
    padding:8px 13px!important;
    font-size:12px!important;
    line-height:1!important;
    font-weight:700!important;
    cursor:pointer!important;
    transition:.18s ease!important;
}
.vmt-language-chip:hover{border-color:#ffabb8!important;}
.vmt-language-chip.is-selected{background:var(--vmt-primary)!important;border-color:var(--vmt-primary)!important;color:#fff!important;box-shadow:0 4px 12px rgba(237,27,59,.14)!important;}

.vmt-service-badge{
    display:inline-flex!important;
    align-items:center!important;
    margin:0 0 7px!important;
    padding:4px 7px!important;
    border-radius:999px!important;
    background:#fff1f3!important;
    color:var(--vmt-primary)!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:800!important;
}
.vmt-addon-pricing-note{margin:5px 0 0!important;font-size:10px!important;color:var(--vmt-muted)!important;}

.vmt-mobile-summary{display:none!important;}
.vmt-popup-fallback{
    position:fixed!important;
    inset:0!important;
    z-index:999999!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:20px!important;
}
.vmt-popup-fallback-backdrop{position:absolute!important;inset:0!important;background:rgba(15,23,42,.58)!important;}
.vmt-popup-fallback-dialog{
    position:relative!important;
    z-index:1!important;
    width:min(760px,100%)!important;
    max-height:min(86vh,900px)!important;
    overflow:auto!important;
    padding:28px!important;
    border-radius:18px!important;
    background:#fff!important;
    box-shadow:0 24px 70px rgba(15,23,42,.28)!important;
}
.vmt-popup-fallback-dialog h3{margin:0 36px 18px 0!important;color:var(--vmt-navy)!important;font-size:22px!important;}
.vmt-popup-fallback-close{position:absolute!important;top:13px!important;right:13px!important;width:36px!important;height:36px!important;border:1px solid var(--vmt-border)!important;border-radius:50%!important;background:#fff!important;color:var(--vmt-navy)!important;font-size:23px!important;line-height:1!important;cursor:pointer!important;}
.vmt-popup-fallback-content{color:var(--vmt-text)!important;}
.vmt-popup-fallback-content img{max-width:100%!important;height:auto!important;}

@media(max-width:700px){
    .vmt-date-carousel{display:flex!important;gap:7px!important;overflow:hidden!important;}
    .vmt-carousel-nav{flex:0 0 34px!important;min-height:74px!important;font-size:22px!important;}
    .vmt-date-carousel-track{display:flex!important;overflow-x:auto!important;gap:7px!important;scroll-snap-type:x proximity!important;padding-bottom:2px!important;}
    .vmt-date-carousel-item{display:flex!important;flex:0 0 76px!important;min-height:74px!important;scroll-snap-align:start!important;}
    .vmt-date-carousel-item:nth-child(n+5){display:flex!important;}
    .vmt-mobile-summary{
        position:fixed!important;
        left:0!important;right:0!important;bottom:0!important;
        z-index:9998!important;
        display:none!important;
        align-items:center!important;
        justify-content:space-between!important;
        gap:12px!important;
        padding:10px 14px calc(10px + env(safe-area-inset-bottom))!important;
        background:#fff!important;
        border-top:1px solid var(--vmt-border)!important;
        box-shadow:0 -10px 30px rgba(15,23,42,.08)!important;
    }
    .vmt-booking-container[data-step="3"] .vmt-mobile-summary{display:flex!important;}
    .vmt-mobile-summary small{display:block!important;margin:0 0 2px!important;color:var(--vmt-muted)!important;font-size:10px!important;}
    .vmt-mobile-summary strong{display:block!important;color:var(--vmt-navy)!important;font-size:18px!important;line-height:1!important;}
    .vmt-mobile-summary button{appearance:none!important;border:0!important;border-radius:10px!important;background:var(--vmt-primary)!important;color:#fff!important;padding:12px 16px!important;font-size:13px!important;font-weight:800!important;cursor:pointer!important;}
    .vmt-booking-container[data-step="3"] .vmt-card{padding-bottom:78px!important;}
}


/* =========================================================
   V21 FIXES — COMPACT DATE STRIP, MOBILE STEP LABELS, ADDON ICON
========================================================= */
.vmt-date-carousel{
    grid-template-columns:32px minmax(0,1fr) 32px!important;
    gap:6px!important;
}
.vmt-date-carousel-track{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:6px!important;
}
.vmt-carousel-nav{
    border-radius:10px!important;
    font-size:22px!important;
    padding:0!important;
    min-width:32px!important;
}
.vmt-date-carousel-item{
    min-width:0!important;
    min-height:86px!important;
    padding:8px 2px!important;
    border-radius:11px!important;
}
.vmt-date-carousel-day{font-size:9px!important;letter-spacing:.1px!important;}
.vmt-date-carousel-item strong{font-size:17px!important;}
.vmt-date-carousel-item small{font-size:9px!important;white-space:nowrap!important;}

.vmt-service-description{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    -webkit-line-clamp:unset!important;
    overflow:visible!important;
}
.vmt-service-description-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:20px!important;
    height:20px!important;
    font-size:15px!important;
    line-height:1!important;
}

@media(max-width:600px){
    .vmt-step-indicator{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 14px minmax(0,1.35fr)!important;
        gap:3px!important;
        align-items:start!important;
    }
    .vmt-step{
        min-width:0!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:flex-start!important;
        gap:5px!important;
        text-align:center!important;
        white-space:normal!important;
    }
    .vmt-step span{
        flex:0 0 28px!important;
        width:28px!important;
        height:28px!important;
        min-width:28px!important;
        min-height:28px!important;
        margin:0!important;
    }
    .vmt-step strong{
        display:block!important;
        width:100%!important;
        min-width:0!important;
        font-size:9px!important;
        line-height:1.18!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
    }
    .vmt-step-line{
        width:14px!important;
        min-width:14px!important;
        margin-top:13px!important;
        align-self:start!important;
    }
    .vmt-date-carousel{
        grid-template-columns:28px minmax(0,1fr) 28px!important;
        gap:4px!important;
    }
    .vmt-date-carousel-track{
        display:grid!important;
        grid-template-columns:repeat(6,minmax(0,1fr))!important;
        overflow:hidden!important;
        gap:4px!important;
    }
    .vmt-date-carousel-item{
        display:flex!important;
        flex:initial!important;
        min-width:0!important;
        min-height:82px!important;
        padding:7px 1px!important;
    }
    .vmt-date-carousel-item:nth-child(n+5){display:flex!important;}
    .vmt-carousel-nav{flex:initial!important;min-height:82px!important;min-width:28px!important;font-size:20px!important;}
    .vmt-date-carousel-day{font-size:8px!important;}
    .vmt-date-carousel-item strong{font-size:16px!important;}
    .vmt-date-carousel-item small{font-size:8px!important;}
}

/* =========================================================
   V22 — NARROW CONTAINER UX + INSTANT POPUP
========================================================= */
.vmt-card{container-type:inline-size!important;}
.vmt-popup-loading{padding:24px 0!important;text-align:center!important;color:var(--vmt-muted)!important;font-weight:700!important;}

/* Keep the 310px booking container usable even on a desktop viewport. */
@container (max-width: 360px){
    .vmt-step-indicator{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr) 8px minmax(0,1.45fr)!important;
        gap:2px!important;
        align-items:start!important;
        margin-bottom:18px!important;
    }
    .vmt-step{
        min-width:0!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:flex-start!important;
        gap:5px!important;
        text-align:center!important;
    }
    .vmt-step span{
        width:27px!important;height:27px!important;min-width:27px!important;min-height:27px!important;
    }
    .vmt-step strong{
        width:100%!important;
        min-width:0!important;
        display:block!important;
        font-size:8.5px!important;
        line-height:1.15!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
    }
    .vmt-step-line{
        width:8px!important;min-width:8px!important;margin-top:13px!important;
    }
    .vmt-date-carousel{
        grid-template-columns:24px minmax(0,1fr) 24px!important;
        gap:4px!important;
    }
    .vmt-date-carousel-track{
        grid-template-columns:repeat(5,minmax(0,1fr))!important;
        gap:4px!important;
    }
    .vmt-carousel-nav{
        min-width:24px!important;
        min-height:76px!important;
        border-radius:8px!important;
        font-size:18px!important;
    }
    .vmt-date-carousel-item{
        min-width:0!important;
        min-height:76px!important;
        padding:6px 1px!important;
        border-radius:9px!important;
    }
    .vmt-date-carousel-day{font-size:7px!important;}
    .vmt-date-carousel-item strong{font-size:15px!important;}
    .vmt-date-carousel-item small{font-size:7px!important;}
    .vmt-person-selector{gap:10px!important;}
    .vmt-qty-box{gap:6px!important;}
    .qty-btn{flex-basis:36px!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;}
}


/* =========================================================
   V23 — TRUE NARROW-CONTAINER RESPONSIVE + NATIVE ELEMENTOR POPUP
========================================================= */
/* Do not use the extra fixed mobile continue bar; it can create horizontal overflow
   inside narrow Elementor containers. The normal Continue button remains in-flow. */
.vmt-mobile-summary,
.vmt-booking-container[data-step="3"] .vmt-mobile-summary{
    display:none!important;
}
.vmt-booking-container{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
}
.vmt-card,
.vmt-booking-step,
.vmt-summary-card,
.vmt-date-carousel,
.vmt-date-carousel-track{
    min-width:0!important;
    max-width:100%!important;
}

/* JS adds .is-compact based on the real container width, so this works even on
   a 272px Elementor container shown on a desktop/tablet viewport. */
.vmt-date-carousel.is-compact{
    display:grid!important;
    grid-template-columns:26px minmax(0,1fr) 26px!important;
    gap:4px!important;
    width:100%!important;
}
.vmt-date-carousel.is-compact .vmt-date-carousel-track{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:4px!important;
    width:100%!important;
    overflow:hidden!important;
}
.vmt-date-carousel.is-compact .vmt-date-carousel-item{
    display:flex!important;
    min-width:0!important;
    width:auto!important;
    min-height:76px!important;
    padding:6px 1px!important;
    border-radius:9px!important;
}
.vmt-date-carousel.is-compact .vmt-carousel-nav{
    min-width:26px!important;
    width:26px!important;
    min-height:76px!important;
    padding:0!important;
    border-radius:9px!important;
    font-size:18px!important;
}
.vmt-date-carousel.is-compact .vmt-date-carousel-day{font-size:7px!important;}
.vmt-date-carousel.is-compact .vmt-date-carousel-item strong{font-size:15px!important;}
.vmt-date-carousel.is-compact .vmt-date-carousel-item small{font-size:7px!important;white-space:nowrap!important;}

/* Travelers & Extras always fit narrow tablet/Elementor containers. */
.vmt-step-indicator{
    min-width:0!important;
}
@container (max-width: 330px){
    .vmt-step-indicator{
        display:grid!important;
        grid-template-columns:minmax(0,.78fr) 6px minmax(0,.72fr) 6px minmax(0,1.5fr)!important;
        gap:2px!important;
        align-items:start!important;
    }
    .vmt-step{
        min-width:0!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        gap:4px!important;
        text-align:center!important;
    }
    .vmt-step span{
        width:26px!important;height:26px!important;
        min-width:26px!important;min-height:26px!important;
    }
    .vmt-step strong{
        display:block!important;
        width:100%!important;
        min-width:0!important;
        font-size:8px!important;
        line-height:1.12!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }
    .vmt-step-line{
        width:6px!important;min-width:6px!important;
        margin-top:13px!important;
    }
}

/* Gray, visibly disabled minus button at zero. */
.qty-btn:disabled,
.qty-btn.is-disabled{
    opacity:1!important;
    background:#edf0f3!important;
    border-color:#e2e6ea!important;
    color:#a6afb9!important;
    cursor:not-allowed!important;
    box-shadow:none!important;
}

/* Keep the normal CTA inside the card on every screen and prevent white side gaps. */
#vmt-submit{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
}

/* =========================================================
   V27 FINAL UI POLISH — COMPACT TIME + PREMIUM ADDON CARD
========================================================= */
.vmt-slot-grid{
    gap:6px!important;
    padding-top:2px!important; /* prevents hover edge clipping */
    overflow:visible!important;
}
.vmt-slot-btn{
    height:50px!important;
    min-height:50px!important;
    padding:5px 4px!important;
    overflow:visible!important;
    transform:translateY(0)!important;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.vmt-slot-btn:hover{
    transform:translateY(-1px)!important;
    box-shadow:0 4px 10px rgba(17,51,63,.16)!important;
    z-index:2!important;
}
.vmt-slot-time{
    font-size:13px!important;
    line-height:1.05!important;
    font-weight:700!important;
}
.vmt-slot-stock{
    margin-top:2px!important;
    font-size:9px!important;
    line-height:1.05!important;
}

/* Addon card: editorial, readable, compact */
.vmt-booking-addon{
    min-height:0!important;
    overflow:hidden!important;
}
.vmt-service-main{
    min-height:0!important;
    padding:14px 15px!important;
}
.vmt-service-topline{
    display:block!important;
}
.vmt-service-topline .vmt-service-name{
    font-size:16px!important;
    line-height:1.28!important;
    margin:4px 0 0!important;
}
.vmt-service-check-wrap{
    position:absolute!important;
    top:14px!important;
    right:14px!important;
}
.vmt-service-description{
    margin:8px 0 0!important;
    padding-right:0!important;
    font-size:13px!important;
    line-height:1.6!important;
    color:#4f5968!important;
    -webkit-line-clamp:3!important;
}
.vmt-service-bottomline{
    margin-top:9px!important;
    padding-top:9px!important;
    border-top:1px solid #eef0f3!important;
    justify-content:flex-start!important;
    gap:10px!important;
}
.vmt-addon-readmore{
    color:#2f3947!important;
    text-decoration:none!important;
    font-size:12.5px!important;
    font-weight:800!important;
}
.vmt-addon-readmore::after{
    content:' →'!important;
}
.vmt-addon-readmore:hover{
    color:var(--vmt-primary)!important;
}
.vmt-booking-addon .vmt-service-price{
    margin-left:auto!important;
    font-size:11.5px!important;
    padding:5px 8px!important;
}
/* Keep language/icon information visually separated below the content */
.vmt-booking-addon .vmt-addon-meta,
.vmt-booking-addon .vmt-service-meta,
.vmt-booking-addon .vmt-addon-info{
    border-top:1px solid #eef0f3!important;
}

@container (max-width: 290px){
    .vmt-slot-grid{gap:4px!important;}
    .vmt-slot-btn{height:47px!important;min-height:47px!important;padding:4px 2px!important;}
    .vmt-slot-time{font-size:12px!important;}
}


/* =========================================================
   V28 — BULK PRICE ADJUSTMENT + PREMIUM ADDON + RESPONSIVE DATE STRIP
========================================================= */
.vmt-date-carousel,
.vmt-date-carousel-track{
    overflow:visible!important;
    padding-top:3px!important;
    padding-bottom:3px!important;
}
.vmt-date-carousel-item:hover:not(:disabled){
    transform:none!important;
    position:relative!important;
    z-index:3!important;
    border-color:var(--vmt-primary)!important;
    box-shadow:0 4px 12px rgba(237,27,59,.14)!important;
}
.vmt-date-carousel-item strong{font-size:21px!important;}
.vmt-date-carousel-day{font-size:11px!important;}
.vmt-date-carousel-item small{font-size:10px!important;}
.vmt-carousel-nav{font-size:24px!important;}
.vmt-date-carousel.is-compact .vmt-date-carousel-track{overflow:visible!important;}
.vmt-date-carousel.is-compact .vmt-date-carousel-item strong{font-size:16px!important;}
.vmt-date-carousel.is-compact .vmt-date-carousel-day{font-size:8px!important;}
.vmt-date-carousel.is-compact .vmt-date-carousel-item small{font-size:8px!important;}

/* Make time slots slightly larger and clearer while keeping the grid compact. */
.vmt-slot-grid{gap:7px!important;padding-top:4px!important;overflow:visible!important;}
.vmt-slot-btn{height:54px!important;min-height:54px!important;padding:6px 5px!important;}
.vmt-slot-time{font-size:14px!important;line-height:1.08!important;}
.vmt-slot-stock{font-size:9.5px!important;margin-top:2px!important;}
.vmt-slot-btn:hover{transform:translateY(0)!important;box-shadow:0 4px 10px rgba(17,51,63,.12)!important;}

/* More persuasive, taller addon card with content hierarchy. */
.vmt-booking-addon{
    min-height: max-content !important;
    border-color:#d8dde5!important;
    box-shadow:0 8px 24px rgba(15,23,42,.055)!important;
}
.vmt-booking-addon:hover{transform:none!important;box-shadow:0 10px 28px rgba(237,27,59,.10)!important;}
.vmt-service-main{min-height:205px!important;padding:17px 18px!important;display:flex!important;flex-direction:column!important;}
.vmt-service-topline .vmt-service-name{font-size:17px!important;line-height:1.3!important;margin-top:7px!important;padding-right:34px!important;}
.vmt-service-description{font-size:13px!important;line-height:1.62!important;margin-top:10px!important;-webkit-line-clamp:3!important;}
.vmt-addon-readmore{
    align-self:flex-start!important;
    margin-top:8px!important;
    padding:0!important;
    font-size:12.5px!important;
    line-height:1.3!important;
    color:#263548!important;
}
.vmt-service-divider{width:100%!important;height:1px!important;background:#e9edf1!important;margin:11px 0 9px!important;}
.vmt-addon-meta{display:flex!important;align-items:center!important;gap:8px!important;color:#4d5b6c!important;font-size:12.5px!important;line-height:1.35!important;}
.vmt-addon-meta-icon{font-size:16px!important;line-height:1!important;display:inline-flex!important;align-items:center!important;}
.vmt-service-bottomline{margin-top:auto!important;padding-top:10px!important;border-top:0!important;gap:8px!important;align-items:flex-end!important;}
.vmt-addon-pricing-note{margin:0!important;font-size:10px!important;line-height:1.2!important;color:#7b8490!important;}
.vmt-booking-addon .vmt-service-price{font-size:12px!important;padding:6px 10px!important;margin-left:auto!important;}
.vmt-service-badge{align-self:flex-start!important;}

@container (max-width:330px){
    .vmt-date-carousel.is-compact{grid-template-columns:24px minmax(0,1fr) 24px!important;gap:4px!important;}
    .vmt-date-carousel.is-compact .vmt-date-carousel-track{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:4px!important;}
    .vmt-date-carousel.is-compact .vmt-carousel-nav{width:24px!important;min-width:24px!important;font-size:17px!important;}
    .vmt-date-carousel.is-compact .vmt-date-carousel-item{min-height:80px!important;}
    .vmt-slot-grid{gap:5px!important;}
    .vmt-slot-btn{height:52px!important;min-height:52px!important;padding:5px 2px!important;}
    .vmt-slot-time{font-size:13px!important;}
    .vmt-slot-stock{font-size:8.5px!important;}
    .vmt-booking-addon,.vmt-service-main{min-height:215px!important;}
    .vmt-service-main{padding:15px!important;}
}








/* =========================================================
   VMT FINAL RESPONSIVE + OVERFLOW SAFETY LAYER
   ========================================================= */

.vmt-booking-container,
.vmt-checkout-premium-root,
.vmt-booking-container .vmt-card,
.vmt-checkout-premium-root .vmt-traveler-card,
.vmt-booking-step,
.vmt-summary-card,
.vmt-date-carousel,
.vmt-date-carousel-track,
.vmt-slot-grid,
.vmt-services-grid,
.vmt-form-grid,
.vmt-extra-addons{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

.vmt-booking-container,
.vmt-checkout-premium-root{
    overflow:visible!important;
}

.vmt-booking-container .vmt-card{
    overflow:visible!important;
}

/* Time-slot price badge: always above the slot corner, never clipped. */
.vmt-slot-grid{
    overflow:visible!important;
    padding-top:4px!important;
}

.vmt-slot-btn{
    position:relative!important;
    overflow:visible!important;
    isolation:isolate!important;
}

.vmt-slot-price-badge{
    position:absolute!important;
    top:0!important;
    right:0!important;
    z-index:9999!important;
    transform:translate(28%,-32%)!important;
    pointer-events:none!important;
    white-space:nowrap!important;
    min-width:max-content!important;
}

/* Prevent long names/prices from breaking any grid. */
.vmt-service-name,
.vmt-service-description,
.vmt-person-left,
.vmt-header-text,
.vmt-sum-details{
    min-width:0!important;
    overflow-wrap:anywhere!important;
}

/* Desktop */
@media (min-width:1200px){
    .vmt-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;}
    .vmt-services-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;}
    .vmt-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important;}
}

/* Laptop */
@media (max-width:1199px){
    .vmt-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important;}
    .vmt-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;}
    .vmt-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;}
}

/* Tablet */
@media (max-width:900px){
    .vmt-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;}
    .vmt-slot-btn{height:52px!important;min-height:52px!important;padding:5px 4px!important;}
    .vmt-slot-time{font-size:13px!important;}
    .vmt-slot-stock{font-size:8.5px!important;}
    .vmt-slot-price-badge{font-size:8px!important;padding:3px 5px!important;transform:translate(24%,-28%)!important;}

    .vmt-date-carousel{grid-template-columns:30px minmax(0,1fr) 30px!important;gap:5px!important;}
    .vmt-date-carousel-track{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important;overflow:hidden!important;}
    .vmt-date-carousel-item{min-width:0!important;min-height:78px!important;}
    .vmt-carousel-nav{min-width:30px!important;min-height:78px!important;}
}

/* Mobile */
@media (max-width:767px){
    .vmt-booking-container,
    .vmt-checkout-premium-root{margin:12px 0!important;padding:0!important;}

    .vmt-booking-container .vmt-card{padding:14px!important;border-radius:13px!important;}

    .vmt-calendar-grid{gap:4px!important;}
    .vmt-calendar-nav{gap:6px!important;padding-bottom:9px!important;}
    .vmt-nav-btn{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;flex-basis:34px!important;}
    .vmt-month-year{font-size:15px!important;}
    .vmt-date-cell{border-radius:7px!important;padding:3px 1px!important;}
    .vmt-date-cell span{font-size:12px!important;}
    .vmt-date-cell small{font-size:7px!important;}
    .vmt-weekday{font-size:8px!important;}

    .vmt-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;}
    .vmt-slot-btn{height:51px!important;min-height:51px!important;padding:5px 3px!important;border-radius:8px!important;}
    .vmt-slot-time{font-size:12.5px!important;}
    .vmt-slot-stock{font-size:8px!important;}
    .vmt-slot-price-badge{font-size:7px!important;padding:2px 5px!important;transform:translate(20%,-25%)!important;}

    .vmt-person-selector{gap:8px!important;padding:12px 0!important;}
    .vmt-person-name{font-size:14px!important;}
    .vmt-person-meta{font-size:11px!important;}
    .vmt-qty-box{gap:6px!important;}
    .qty-btn{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;flex-basis:34px!important;}

    .vmt-checkout-premium-root .vmt-card-header{padding:14px!important;gap:8px!important;}
    .vmt-checkout-premium-root .vmt-card-body{padding:14px!important;}
    .vmt-checkout-premium-root .vmt-form-grid{grid-template-columns:1fr!important;gap:12px!important;}

    .vmt-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
    .vmt-service-card{height:auto!important;min-height:60px!important;}
    .vmt-service-content{height:auto!important;min-height:60px!important;padding:8px 9px!important;}
    .vmt-service-name{font-size:12px!important;}
    .vmt-service-price{font-size:10px!important;padding:4px 6px!important;}

    .vmt-date-carousel{display:flex!important;gap:6px!important;overflow:hidden!important;}
    .vmt-date-carousel-track{display:flex!important;flex:1 1 auto!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity!important;}
    .vmt-date-carousel-item{display:flex!important;flex:0 0 72px!important;min-height:72px!important;scroll-snap-align:start!important;}
    .vmt-carousel-nav{flex:0 0 32px!important;width:32px!important;min-width:32px!important;min-height:72px!important;font-size:20px!important;}
}

/* Small phone */
@media (max-width:480px){
    .vmt-booking-container .vmt-card{padding:11px!important;border-radius:11px!important;}
    .vmt-calendar-grid{gap:3px!important;}
    .vmt-date-cell{border-radius:6px!important;}
    .vmt-date-cell span{font-size:11px!important;}
    .vmt-date-cell small{font-size:6.5px!important;}

    .vmt-slot-grid{gap:5px!important;}
    .vmt-slot-btn{height:49px!important;min-height:49px!important;padding:4px 2px!important;border-radius:7px!important;}
    .vmt-slot-time{font-size:11.5px!important;}
    .vmt-slot-stock{font-size:7px!important;}
    .vmt-slot-price-badge{font-size:6.5px!important;padding:2px 4px!important;transform:translate(18%,-22%)!important;}

    .vmt-services-grid{grid-template-columns:1fr!important;gap:7px!important;}
    .vmt-service-content{grid-template-columns:19px minmax(0,1fr) auto!important;column-gap:7px!important;min-height:58px!important;padding:8px!important;}
    .vmt-service-name{font-size:12px!important;}
    .vmt-service-price{font-size:9.5px!important;padding:4px 5px!important;}

    .vmt-date-carousel{gap:5px!important;}
    .vmt-date-carousel-track{gap:5px!important;}
    .vmt-date-carousel-item{flex-basis:66px!important;min-height:68px!important;padding:6px 2px!important;}
    .vmt-date-carousel-day{font-size:7px!important;}
    .vmt-date-carousel-item strong{font-size:15px!important;}
    .vmt-date-carousel-item small{font-size:7px!important;}
    .vmt-carousel-nav{flex-basis:29px!important;width:29px!important;min-width:29px!important;min-height:68px!important;font-size:18px!important;}

    .vmt-checkout-premium-root .vmt-card-header{padding:12px!important;}
    .vmt-checkout-premium-root .vmt-card-body{padding:12px!important;}
    #vmt-checkout-hold-timer{padding:10px 12px!important;font-size:11px!important;}
    #vmt-timer-clock{font-size:15px!important;}
}

/* Very small phones */
@media (max-width:360px){
    .vmt-booking-container .vmt-card{padding:9px!important;}
    .vmt-calendar-grid{gap:2px!important;}
    .vmt-date-cell span{font-size:10px!important;}
    .vmt-date-cell small{font-size:6px!important;}

    .vmt-slot-grid{gap:4px!important;}
    .vmt-slot-btn{height:47px!important;min-height:47px!important;}
    .vmt-slot-time{font-size:10.5px!important;}
    .vmt-slot-stock{font-size:6.5px!important;}
    .vmt-slot-price-badge{font-size:6px!important;padding:2px 3px!important;transform:translate(15%,-18%)!important;}

    .vmt-person-selector{gap:5px!important;}
    .qty-btn{width:31px!important;min-width:31px!important;height:31px!important;min-height:31px!important;flex-basis:31px!important;}
    .qty-val{min-width:17px!important;font-size:14px!important;}

    .vmt-date-carousel{gap:4px!important;}
    .vmt-date-carousel-track{gap:4px!important;}
    .vmt-date-carousel-item{flex-basis:60px!important;min-height:64px!important;}
    .vmt-carousel-nav{flex-basis:26px!important;width:26px!important;min-width:26px!important;min-height:64px!important;font-size:16px!important;}
}

/* Accessibility / focus */
.vmt-booking-container button:focus-visible,
.vmt-checkout-premium-root button:focus-visible,
.vmt-booking-container input:focus-visible,
.vmt-checkout-premium-root input:focus-visible,
.vmt-booking-container select:focus-visible,
.vmt-checkout-premium-root select:focus-visible{
    outline:2px solid var(--vmt-primary)!important;
    outline-offset:2px!important;
}


/* =========================================================
   V29 — BACKEND-CONTROLLED DARK THEME
   Product setting: Light / Dark
========================================================= */

.vmt-booking-container[data-vmt-theme="dark"],
.vmt-checkout-premium-root[data-vmt-theme="dark"]{
    --vmt-bg:#0f1724;
    --vmt-card:#121c2b;
    --vmt-surface:#182334;
    --vmt-surface-2:#202c3d;
    --vmt-border-dark:#2d3a4e;
    --vmt-text-dark:#f4f7fb;
    --vmt-muted-dark:#aeb8c7;
    --vmt-soft-dark:#171f2e;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-card{
    background:var(--vmt-card)!important;
    border-color:var(--vmt-border-dark)!important;
    color:var(--vmt-text-dark)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.22)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-card-header{
    border-color:var(--vmt-border-dark)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-card-header h3,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-month-year,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-section-title,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-person-name,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-inline-heading,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-sum-details,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-sum-row,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-sum-row strong,
.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-input-group label,
.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-header-title{
    color:var(--vmt-text-dark)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-card-header p,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-weekday,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-person-meta,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-addon-pricing-note,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-description,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-addon-readmore,
.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-input-group label{
    color:var(--vmt-muted-dark)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-nav-btn,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-language-chip,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-content,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon .vmt-service-check,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon .vmt-service-price,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-summary-card,
.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-traveler-card,
.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-input-group input[type="text"],
.vmt-checkout-premium-root[data-vmt-theme="dark"] #vmt-checkout-hold-timer{
    background:var(--vmt-surface)!important;
    border-color:var(--vmt-border-dark)!important;
    color:var(--vmt-text-dark)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell:hover,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-card:hover .vmt-service-content{
    background:var(--vmt-surface-2)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell.disabled,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-btn:disabled,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-btn.vmt-sold-out,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-error,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-loading,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-notice,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-price,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-mobile-summary{
    background:#202a39!important;
    border-color:#334156!important;
    color:#aab4c2!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell span{
    color:var(--vmt-text-dark)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell.disabled span,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell.disabled small{
    color:#8793a4!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-person-selector{
    border-color:var(--vmt-border-dark)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .qty-btn{
    background:#243244!important;
    border-color:#34445a!important;
    color:#fff!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .qty-btn:disabled,
.vmt-booking-container[data-vmt-theme="dark"] .qty-btn.is-disabled{
    background:#263142!important;
    border-color:#344054!important;
    color:#778398!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-language-chip.is-selected,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell.active,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-main-btn{
    color:#fff!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-services-container,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon.is-selected,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-badge{
    background:#1c2433!important;
    border-color:#46313a!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-content{
    box-shadow:0 4px 14px rgba(0,0,0,.14)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon .vmt-service-check{
    background:#101925!important;
    border-color:#506078!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon.is-selected .vmt-service-check{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon .vmt-service-price,
.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon.is-selected .vmt-service-price{
    background:#202c3d!important;
    border-color:#3b4a60!important;
    color:#ff7282!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-booking-addon.is-selected .vmt-service-price{
    background:var(--vmt-primary)!important;
    border-color:var(--vmt-primary)!important;
    color:#fff!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-summary-card{
    background:#141e2d!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-sum-row.total{
    border-top-color:#364154!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-date-cell small{
    color:#44d3b0!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-nav-btn:not(.next){
    background:#182335!important;
    border-color:#344158!important;
    color:#f3f6fa!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-btn{
    background:#18303b!important;
    border-color:#35505c!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-btn:hover{
    background:#21424f!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-btn.selected{
    background:#fd4c5c!important;
    border-color:#fd4c5c!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-price-badge{
    background:#1d2736!important;
    border-color:#49566b!important;
    color:#ff7785!important;
}

.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-traveler-card{
    border-color:#47313a!important;
    background:var(--vmt-card)!important;
}

.vmt-checkout-premium-root[data-vmt-theme="dark"] .vmt-input-group input[type="text"]{
    background:#172130!important;
    border-color:#344157!important;
    color:#f2f5f8!important;
}

.vmt-checkout-premium-root[data-vmt-theme="dark"] #vmt-checkout-hold-timer{
    background:#241d2a!important;
    border-color:#523542!important;
    color:#f3f6fa!important;
}

.vmt-booking-container[data-vmt-theme="dark"] .vmt-mobile-summary{
    box-shadow:0 -10px 30px rgba(0,0,0,.30)!important;
}


/* =========================================================
   V30 — EASY MANAGEMENT + AVAILABILITY UX
========================================================= */
.vmt-calendar-tools{
    grid-column:1/-1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    margin:-10px 0 12px!important;
    min-width:0!important;
}
.vmt-next-available{
    appearance:none!important;
    border:1px solid color-mix(in srgb,var(--vmt-primary) 22%,#fff)!important;
    background:var(--vmt-soft)!important;
    color:var(--vmt-primary)!important;
    border-radius:9px!important;
    padding:8px 11px!important;
    font-size:11px!important;
    line-height:1.2!important;
    font-weight:800!important;
    cursor:pointer!important;
    transition:.18s ease!important;
}
.vmt-next-available:hover{transform:translateY(-1px)!important;box-shadow:0 5px 16px rgba(0,0,0,.07)!important;}
.vmt-next-available:disabled{opacity:.6!important;cursor:wait!important;transform:none!important;}
.vmt-next-available span{margin-left:5px!important;font-size:13px!important;}
.vmt-next-available-status{min-width:0!important;text-align:right!important;color:var(--vmt-muted)!important;font-size:10px!important;font-weight:700!important;}
.vmt-calendar-grid .vmt-date-cell.outside-range{opacity:.45!important;}
.vmt-booking-container .vmt-slot-btn.vmt-low-stock{border-color:color-mix(in srgb,var(--vmt-primary) 28%,#e5e7eb)!important;}
.vmt-booking-container .vmt-slot-btn.vmt-sold-out .vmt-slot-stock{color:#c91432!important;}
.vmt-booking-container .vmt-slot-btn.vmt-low-stock .vmt-slot-stock{color:#b45309!important;}
.vmt-booking-container .vmt-slot-btn:not(:disabled) .vmt-slot-stock{color:var(--vmt-accent,#18b6b0)!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-calendar-tools .vmt-next-available{background:#1c2838!important;border-color:#42536a!important;color:var(--vmt-primary)!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-next-available-status{color:#aeb8c7!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-slot-btn:not(:disabled) .vmt-slot-stock{color:#4fd6ba!important;}
.vmt-mobile-summary{
    backdrop-filter:blur(12px)!important;
    -webkit-backdrop-filter:blur(12px)!important;
}
@media(max-width:600px){
    .vmt-calendar-tools{margin:-7px 0 10px!important;align-items:center!important;}
    .vmt-next-available{font-size:10px!important;padding:7px 9px!important;}
    .vmt-next-available-status{font-size:9px!important;}
}
@media(max-width:360px){
    .vmt-calendar-tools{flex-direction:column!important;align-items:stretch!important;}
    .vmt-next-available{width:100%!important;}
    .vmt-next-available-status{text-align:center!important;}
}


/* =========================================================
   V31.1 - Ticket Collection Confirmation Modal
========================================================= */
body.vmt-modal-open{overflow:hidden!important;}
.vmt-collection-modal{position:fixed!important;inset:0!important;z-index:999999!important;display:none!important;align-items:center!important;justify-content:center!important;padding:18px!important;}
.vmt-collection-modal.is-open{display:flex!important;}
.vmt-collection-backdrop{position:absolute!important;inset:0!important;background:rgba(15,23,42,.68)!important;backdrop-filter:blur(3px)!important;}
.vmt-collection-dialog{position:relative!important;width:min(720px,100%)!important;max-height:min(88vh,820px)!important;overflow:auto!important;background:#fff!important;color:#172033!important;border:1px solid #e5e7eb!important;border-radius:18px!important;box-shadow:0 24px 70px rgba(15,23,42,.28)!important;padding:26px!important;z-index:2!important;}
.vmt-collection-close{position:absolute!important;right:14px!important;top:12px!important;width:34px!important;height:34px!important;border:0!important;background:#f3f4f6!important;color:#172033!important;border-radius:50%!important;font-size:24px!important;line-height:1!important;cursor:pointer!important;}
.vmt-collection-kicker{display:inline-flex!important;padding:6px 9px!important;border-radius:999px!important;background:#fff1f3!important;color:#c81432!important;font-size:10px!important;font-weight:800!important;letter-spacing:.08em!important;}
.vmt-collection-dialog h2{margin:10px 48px 14px 0!important;font-size:24px!important;line-height:1.15!important;color:#172033!important;}
.vmt-collection-copy{font-size:13px!important;line-height:1.62!important;color:#475467!important;}
.vmt-collection-copy p{margin:0 0 13px!important;}
.vmt-collection-block{margin:10px 0!important;padding:12px 14px!important;background:#f8fafc!important;border:1px solid #e5e7eb!important;border-radius:11px!important;}
.vmt-collection-block strong{color:#c81432!important;}
.vmt-collection-block span{font-size:12px!important;color:#667085!important;}
.vmt-collection-rules{margin-top:12px!important;padding:13px 14px!important;background:#fff8f9!important;border:1px solid #ffd6dd!important;border-radius:11px!important;color:#344054!important;}
.vmt-collection-rules strong{color:#c81432!important;}
.vmt-collection-rules ol{margin:7px 0 0 18px!important;padding:0!important;}
.vmt-collection-rules li{margin:4px 0!important;}
.vmt-collection-check{display:flex!important;align-items:flex-start!important;gap:9px!important;margin-top:18px!important;padding:13px 14px!important;background:#f8fafc!important;border:1px solid #d8dde5!important;border-radius:11px!important;cursor:pointer!important;font-size:12px!important;font-weight:700!important;color:#172033!important;}
.vmt-collection-check input{flex:0 0 auto!important;width:18px!important;height:18px!important;margin:1px 0 0!important;accent-color:var(--vmt-primary,#ed1b3b)!important;}
.vmt-collection-continue{width:100%!important;margin-top:12px!important;}
.vmt-collection-continue:disabled{opacity:.48!important;cursor:not-allowed!important;transform:none!important;}
@media(max-width:600px){.vmt-collection-dialog{padding:20px!important;border-radius:15px!important;max-height:92vh!important}.vmt-collection-dialog h2{font-size:20px!important}.vmt-collection-copy{font-size:12px!important}.vmt-collection-check{font-size:11px!important;}}

.vmt-collection-modal.vmt-modal-dark .vmt-collection-dialog{background:#182033!important;color:#f8fafc!important;border-color:#334155!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-dialog h2,.vmt-collection-modal.vmt-modal-dark .vmt-collection-check{color:#f8fafc!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-copy{color:#cbd5e1!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-block{background:#111827!important;border-color:#334155!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-block span{color:#94a3b8!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-rules{background:#2a171c!important;border-color:#6b2735!important;color:#e2e8f0!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-check{background:#111827!important;border-color:#334155!important;}
.vmt-collection-modal.vmt-modal-dark .vmt-collection-close{background:#334155!important;color:#f8fafc!important;}


/* V31.3 — collection consent sits above Continue and opens the information modal. */
.vmt-collection-consent{
    display:flex!important;
    align-items:flex-start!important;
    gap:10px!important;
    width:100%!important;
    margin:12px 0 10px!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    border:1px solid #d8dde5!important;
    border-radius:11px!important;
    background:#f8fafc!important;
    color:#172033!important;
    font-size:12px!important;
    font-weight:700!important;
    line-height:1.45!important;
    cursor:pointer!important;
}
.vmt-collection-consent input{
    flex:0 0 auto!important;
    width:18px!important;
    height:18px!important;
    margin:1px 0 0!important;
    accent-color:var(--vmt-primary,#ed1b3b)!important;
}
.vmt-collection-consent span{flex:1 1 auto!important;}
#vmt-submit:disabled,#vmt-mobile-submit:disabled{opacity:.48!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-collection-consent{background:#111827!important;border-color:#334155!important;color:#f8fafc!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-collection-consent input{accent-color:var(--vmt-primary,#ed1b3b)!important;}
.vmt-collection-modal .vmt-collection-continue{margin-top:16px!important;}
@media(max-width:600px){
    .vmt-collection-consent{font-size:11px!important;padding:11px 12px!important;margin-top:10px!important;}
}

/* V31.4 — Step 4 collection information + admin controls */
.vmt-collection-info-box{
    width:100%!important;
    box-sizing:border-box!important;
    padding:18px!important;
    border:1px solid var(--vmt-border,#e5e7eb)!important;
    border-radius:14px!important;
    background:var(--vmt-card-bg,#fff)!important;
    color:var(--vmt-text,#172033)!important;
    line-height:1.65!important;
    font-size:13px!important;
}
.vmt-collection-info-box h3{margin:0 0 12px!important;font-size:18px!important;line-height:1.25!important;color:var(--vmt-primary,#ed1b3b)!important;}
.vmt-collection-info-box p{margin:0 0 12px!important;}
.vmt-collection-info-box p:last-child{margin-bottom:0!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-collection-info-box{background:#111827!important;border-color:#334155!important;color:#e2e8f0!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-collection-info-box h3{color:var(--vmt-primary,#ff5a6f)!important;}

/* Remove the legacy popup spacing because collection information is now Step 4. */
.vmt-collection-modal{display:none!important;}
.vmt-collection-consent{margin-top:14px!important;margin-bottom:12px!important;}

/* Admin — editable HTML + reset */
.vmt-collection-html-editor{width:100%!important;min-height:260px!important;resize:vertical!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace!important;font-size:12px!important;line-height:1.55!important;padding:12px!important;border:1px solid #d8dde5!important;border-radius:10px!important;background:#fff!important;}
.vmt-collection-html-actions{display:flex!important;align-items:center!important;gap:10px!important;margin-top:8px!important;font-size:12px!important;color:#6b7280!important;}
.vmt-reset-card{margin-top:18px!important;padding:16px!important;border:1px solid #fecdd3!important;border-radius:12px!important;background:#fff7f8!important;display:flex!important;align-items:center!important;gap:14px!important;flex-wrap:wrap!important;}
.vmt-reset-card>div:first-child{flex:1 1 360px!important;}
.vmt-reset-card strong{display:block!important;font-size:13px!important;color:#991b1b!important;margin-bottom:4px!important;}
.vmt-reset-card span{display:block!important;font-size:11px!important;line-height:1.5!important;color:#6b7280!important;}
.vmt-danger-btn{background:#b42318!important;border-color:#b42318!important;color:#fff!important;font-weight:700!important;}
.vmt-danger-btn:hover{background:#912018!important;border-color:#912018!important;color:#fff!important;}
@media(max-width:600px){.vmt-collection-info-box{padding:15px!important;font-size:12px!important}.vmt-collection-html-actions{align-items:flex-start!important;flex-direction:column!important}.vmt-reset-card{align-items:flex-start!important;}}

/* V31.5 — Step 3 cleanup + Step 4 addon selection */
.vmt-booking-container .vmt-booking-step[data-step="3"] .vmt-extras-section{display:none!important;}
.vmt-booking-container .vmt-booking-step[data-step="4"] .vmt-extras-section{display:block!important;margin-top:0!important;}
.vmt-booking-container .vmt-booking-step[data-step="4"] .vmt-extras-help{margin:4px 0 12px!important;}
.vmt-booking-container .vmt-addon-checkbox{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none!important;}
.vmt-booking-container .vmt-service-bottomline{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:10px!important;}
.vmt-booking-container .vmt-addon-select-btn{appearance:none!important;border:1px solid var(--vmt-primary,#ed1b3b)!important;background:#fff!important;color:var(--vmt-primary,#ed1b3b)!important;border-radius:8px!important;min-width:76px!important;height:32px!important;padding:0 12px!important;font-size:11px!important;font-weight:800!important;line-height:1!important;cursor:pointer!important;transition:.18s ease!important;}
.vmt-booking-container .vmt-addon-select-btn:hover{background:#fff5f7!important;}
.vmt-booking-container .vmt-addon-select-btn.is-selected{background:var(--vmt-primary,#ed1b3b)!important;color:#fff!important;box-shadow:0 4px 10px rgba(237,27,59,.15)!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-addon-select-btn{background:#111827!important;color:var(--vmt-primary,#ff5a6f)!important;border-color:var(--vmt-primary,#ff5a6f)!important;}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-addon-select-btn.is-selected{background:var(--vmt-primary,#ff5a6f)!important;color:#fff!important;}
.vmt-booking-container .vmt-booking-addon.is-selected{border-color:var(--vmt-primary,#ed1b3b)!important;}
.vmt-booking-container .vmt-booking-step[data-step="4"] .vmt-collection-consent{margin-top:16px!important;}
@media(max-width:600px){
    .vmt-booking-container .vmt-addon-select-btn{min-width:72px!important;height:30px!important;font-size:10px!important;padding:0 10px!important;}
}

/* V31.6 — Full extra-option card is selectable; Read more remains independent. */
.vmt-booking-addon{
    cursor:pointer!important;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease!important;
}
.vmt-booking-addon:hover{
    border-color:#d5dbe3!important;
    box-shadow:0 8px 22px rgba(15,23,42,.07)!important;
    transform:translateY(-1px)!important;
}
.vmt-booking-addon.is-selected{
    cursor:pointer!important;
}
.vmt-booking-addon .vmt-addon-readmore,
.vmt-booking-addon .vmt-addon-select-btn,
.vmt-booking-addon .vmt-addon-checkbox{
    cursor:pointer!important;
}
.vmt-booking-addon .vmt-addon-readmore:hover{
    transform:none!important;
}

/* V31.8 — Extra Options heading + no-addon consent placement + zero-price Included */
.vmt-booking-container .vmt-booking-step[data-step="4"] > .vmt-section-title{
    margin-bottom:12px!important;
}
.vmt-booking-container .vmt-booking-step[data-step="3"] #vmt-consent-slot-step3 .vmt-collection-consent{
    margin-top:14px!important;
}
.vmt-booking-container .vmt-service-price.vmt-addon-included{
    color:#15803d!important;
    background:#ecfdf3!important;
    border:1px solid #bbf7d0!important;
    border-radius:7px!important;
    padding:5px 9px!important;
    display:inline-flex!important;
    align-items:center!important;
    font-size:11px!important;
    font-weight:800!important;
}
.vmt-booking-container[data-vmt-theme="dark"] .vmt-service-price.vmt-addon-included{
    color:#86efac!important;
    background:#0f2a1a!important;
    border-color:#166534!important;
}
