/*
 * Love Studios NYC - new studio page design.
 *
 * Loaded only on studio pages switched on in inc/ls-new-design.php
 * (body class "ls-new-design"). Styling only: no booking logic lives here.
 * Many rules use !important because the theme sets its red accent with
 * !important.
 */

body.ls-new-design {
    --ls-ink: #111111;
    --ls-ink-2: #3f3f3f;
    --ls-muted: #5a5a5a;
    --ls-line: #e8e8e6;
    --ls-field: #dadad7;
    --ls-soft: #f4f4f2;
    --ls-sand: #e6e4df;
    --ls-accent: #a4572a;
    --ls-ok-bg: #e7f1ea;
    --ls-ok-ink: #1e5e37;
    --ls-warn-bg: #fbefe3;
    --ls-warn-ink: #8a4a16;
    --ls-radius: 22px;
    --ls-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --ls-display: 'Inter Tight', 'Inter', system-ui, sans-serif;

    background: #ffffff;
    color: var(--ls-ink);
    font-family: var(--ls-sans);
    -webkit-font-smoothing: antialiased;
}

body.ls-new-design :is(input, select, textarea, button, .button) {
    font-family: var(--ls-sans);
}

body.ls-new-design :is(h1, h2, h3, h4, h5, h6) {
    font-family: var(--ls-display);
    color: var(--ls-ink);
}

body.ls-new-design a {
    color: var(--ls-ink);
}

/* ---------------------------------------------------------------------
 * Header
 * ------------------------------------------------------------------ */

body.ls-new-design #header {
    border-bottom: 1px solid var(--ls-line);
    box-shadow: none;
}

body.ls-new-design #navigation.style-1 > ul > li > a {
    font-family: var(--ls-sans);
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-ink);
}

body.ls-new-design #navigation.style-1 > ul > li:hover > a {
    color: var(--ls-muted);
}

/* ---------------------------------------------------------------------
 * Title block: the theme's original design is kept on purpose (studio logo
 * box, green price pills, title and address). Only a little space is added
 * above and below it.
 * ------------------------------------------------------------------ */

/* Space around the title, and no overlap with the photos: Elementor's saved
   margins / heights on the title and gallery widgets are reset. */
body.ls-new-design .elementor-location-single > .elementor-section:first-child,
body.ls-new-design .elementor-location-single > .elementor-section:first-child > .elementor-container,
body.ls-new-design .elementor-location-single > .elementor-section:first-child .elementor-widget-wrap {
    margin-top: 0 !important;
    padding-top: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}

body.ls-new-design .elementor-location-single > .elementor-section:first-child .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
}

body.ls-new-design .elementor-widget-listeo-listing-title,
body.ls-new-design .elementor-widget-listeo-listing-title > .elementor-widget-container,
body.ls-new-design .elementor-widget-listeo-listing-grid-gallery,
body.ls-new-design .elementor-widget-listeo-listing-grid-gallery > .elementor-widget-container {
    position: relative !important;
    top: auto !important;
    margin: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
}

body.ls-new-design #titlebar.listing-titlebar {
    display: flex;
    align-items: center;
    gap: 24px;
    margin: 0 !important;
    padding: 40px 0 32px !important;
    height: auto !important;
    overflow: visible;
}

body.ls-new-design #titlebar.listing-titlebar .listing-logo {
    flex: 0 0 auto;
    margin: 0;
}

body.ls-new-design #titlebar.listing-titlebar .listing-titlebar-title {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

body.ls-new-design #titlebar.listing-titlebar .listing-titlebar-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

body.ls-new-design #titlebar.listing-titlebar span.listing-pricing-tag,
body.ls-new-design #titlebar.listing-titlebar span.listing-tag {
    margin: 0;
}

body.ls-new-design #titlebar.listing-titlebar h1 {
    margin: 0;
}

body.ls-new-design #titlebar.listing-titlebar br {
    display: none;
}

/* Photos: no extra gap below; the tabs supply one even 40px gap */
body.ls-new-design #single-listing-grid-gallery {
    margin: 0 !important;
}

body.ls-new-design .listeo-single-listing-gallery-grid,
body.ls-new-design .listeo-single-listing-gallery-grid > .row,
body.ls-new-design .listeo-single-listing-gallery-grid .col-md-12 {
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    body.ls-new-design #titlebar.listing-titlebar {
        gap: 16px;
        padding: 24px 0 20px !important;
    }
}

body.ls-new-design #titlebar.listing-titlebar,
body.ls-new-design #titlebar.listing-titlebar h1,
body.ls-new-design #titlebar.listing-titlebar span,
body.ls-new-design #titlebar.listing-titlebar a {
    font-family: 'Raleway', sans-serif;
}

body.ls-new-design #titlebar.listing-titlebar h1 {
    letter-spacing: normal;
}

/* ---------------------------------------------------------------------
 * Photo grid
 * ------------------------------------------------------------------ */

body.ls-new-design .listeo-single-listing-gallery-grid {
    margin-top: 0;
}

body.ls-new-design #single-listing-grid-gallery {
    position: relative;
    border-radius: var(--ls-radius);
    overflow: hidden;
}

body.ls-new-design #single-listing-grid-gallery img {
    border-radius: 0;
    transition: transform 0.4s ease;
}

body.ls-new-design #single-listing-grid-gallery a.slg-gallery-img:hover img {
    transform: scale(1.02);
}

body.ls-new-design #single-listing-grid-gallery .slg-button {
    background: #ffffff !important;
    color: var(--ls-ink) !important;
    border: 0;
    border-radius: 980px;
    padding: 10px 16px;
    font-family: var(--ls-sans);
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

/* ---------------------------------------------------------------------
 * Section tabs (Overview, Description, Add-ons, Features)
 * ------------------------------------------------------------------ */

body.ls-new-design #listing-nav.listing-nav-container {
    margin: 0;
    background: #ffffff;
    border: 0;
}

body.ls-new-design #listing-nav .listing-nav {
    border-bottom: 1px solid var(--ls-line);
}

body.ls-new-design #listing-nav .listing-nav li a {
    padding: 16px 0 14px;
    margin-right: 28px;
    border-bottom: 2px solid transparent !important;
    color: var(--ls-muted) !important;
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 500;
}

body.ls-new-design #listing-nav .listing-nav li a.active,
body.ls-new-design #listing-nav .listing-nav li a:hover {
    color: var(--ls-ink) !important;
    border-bottom-color: var(--ls-ink) !important;
}

/* ---------------------------------------------------------------------
 * Section headings and text
 * ------------------------------------------------------------------ */

/* One spacing rhythm for the whole page: Elementor's own container padding
   and gaps are removed, and every section starts with the same heading
   spacing (56px above, 20px below). */
body.ls-new-design .elementor-location-single .e-con {
    --padding-top: 0px;
    --padding-bottom: 0px;
    --row-gap: 0px;
    --gap: 0px 56px;
}

body.ls-new-design .elementor-location-single .e-con > .e-con-inner {
    padding-top: 0;
    padding-bottom: 0;
}

body.ls-new-design .elementor-location-single .elementor-widget:not(:last-child) {
    margin-bottom: 0;
}

body.ls-new-design .elementor-widget-listeo-listing-single-navigation {
    margin-top: 40px !important;
}

body.ls-new-design h3.listing-desc-headline,
body.ls-new-design .elementor .elementor-widget-heading .elementor-heading-title {
    margin: 56px 0 20px !important;
    padding: 0 !important;
    border: 0 !important;
    font-family: var(--ls-display) !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.15 !important;
    text-transform: none !important;
    color: var(--ls-ink) !important;
}

/* Section headings inside Listeo widgets carry their own margin classes */
body.ls-new-design h3.listing-desc-headline.margin-top-60,
body.ls-new-design h3.listing-desc-headline.margin-bottom-30 {
    margin: 56px 0 20px !important;
}

body.ls-new-design #price-info-module > * + * {
    margin-top: 10px;
}

body.ls-new-design #price-info-module .expandable-group + .expandable-group,
body.ls-new-design #price-info-module .menu-items-group + .expandable-group {
    margin-top: 40px;
}

/* Booking column lines up with the first section on the left */
body.ls-new-design .elementor-widget-listeo-listing-sidebar,
body.ls-new-design .elementor-widget-listeo-listing-sidebar > .elementor-widget-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.ls-new-design .elementor-widget-listeo-listing-sidebar {
    padding-top: 40px !important; /* same as the tabs above the calendar */
}

body.ls-new-design .booking-widget.boxed-widget,
body.ls-new-design .elementor-widget-listeo-listing-sidebar .boxed-widget {
    margin-bottom: 20px !important;
}

body.ls-new-design .elementor-widget-theme-post-content {
    max-width: 720px;
    font-size: 17px;
    line-height: 1.65;
    color: var(--ls-ink-2);
}

body.ls-new-design .elementor-widget-theme-post-content :is(h2, h3, h4) {
    margin: 28px 0 10px;
    font-size: 21px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* ---------------------------------------------------------------------
 * Calendar
 * ------------------------------------------------------------------ */

body.ls-new-design #calendar .fc-toolbar-title {
    font-family: var(--ls-display);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

body.ls-new-design #calendar .fc-button,
body.ls-new-design #calendar .fc-button-primary {
    background: #ffffff !important;
    color: var(--ls-ink) !important;
    border: 1px solid var(--ls-field) !important;
    border-radius: 980px !important;
    box-shadow: none !important;
    font-family: var(--ls-sans);
    font-size: 14px;
    font-weight: 500;
    text-transform: none;
    padding: 6px 14px;
}

body.ls-new-design #calendar .fc-button-group .fc-button {
    margin: 0 2px;
}

body.ls-new-design #calendar .fc-button-active,
body.ls-new-design #calendar .fc-button:hover {
    background: var(--ls-ink) !important;
    border-color: var(--ls-ink) !important;
    color: #ffffff !important;
}

body.ls-new-design #calendar .fc-button:disabled {
    opacity: 0.4;
}

body.ls-new-design #calendar .fc-scrollgrid,
body.ls-new-design #calendar .fc-theme-standard td,
body.ls-new-design #calendar .fc-theme-standard th {
    border-color: var(--ls-line);
}

body.ls-new-design #calendar .fc-scrollgrid {
    border-radius: 16px;
    overflow: hidden;
}

body.ls-new-design #calendar .fc-col-header-cell-cushion {
    font-size: 13px;
    font-weight: 600;
    color: var(--ls-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

body.ls-new-design #calendar .fc-daygrid-day-number {
    font-size: 14px;
    color: var(--ls-ink);
}

body.ls-new-design #calendar .fc-day-today {
    background: var(--ls-soft) !important;
}

/* Booked times: one calm colour for customers instead of status colours */
body.ls-new-design #calendar .fc-event {
    background: var(--ls-ink) !important;
    border-color: var(--ls-ink) !important;
    border-radius: 8px;
    padding: 2px 6px;
}

body.ls-new-design #calendar .fc-event,
body.ls-new-design #calendar .fc-event-title {
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 600 !important;
}

/* ---------------------------------------------------------------------
 * Add-ons list on the page
 * ------------------------------------------------------------------ */

body.ls-new-design #price-info-module .expandable-item {
    margin-bottom: 10px;
    border: 1px solid var(--ls-line);
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
}

body.ls-new-design #price-info-module .expandable-trigger {
    width: 100%;
    padding: 18px 20px;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: var(--ls-ink) !important;
    font-family: var(--ls-sans);
    font-size: 17px;
    font-weight: 600;
    text-align: left;
    box-shadow: none !important;
}

body.ls-new-design #price-info-module .expandable-trigger .trigger-text {
    color: var(--ls-ink) !important;
}

body.ls-new-design #price-info-module .expandable-trigger svg,
body.ls-new-design #price-info-module .expandable-trigger svg * {
    fill: var(--ls-ink) !important;
    stroke: var(--ls-ink);
}

/* The "why add equipment" note at the top: a quiet info card */
body.ls-new-design #price-info-module .static-group .expandable-item {
    background: var(--ls-soft);
    border-color: var(--ls-soft);
}

body.ls-new-design #price-info-module .static-group .expandable-trigger {
    background: var(--ls-soft) !important;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

body.ls-new-design #price-info-module .expandable-content {
    background: #ffffff;
}

body.ls-new-design #price-info-module .menu-list {
    margin: 0;
    padding: 0 20px 8px;
}

body.ls-new-design #price-info-module .menu-list li.menu-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ls-line);
    background: none;
}

body.ls-new-design #price-info-module .menu-list li.menu-item:last-child {
    border-bottom: 0;
}

body.ls-new-design #price-info-module .item-image img {
    width: 56px;
    height: 56px;
    object-fit: cover;
    border-radius: 10px;
}

body.ls-new-design #price-info-module .item-title {
    margin: 0;
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 500;
    color: var(--ls-ink);
}

body.ls-new-design #price-info-module .item-description {
    font-size: 14px;
    color: var(--ls-muted);
}

body.ls-new-design #price-info-module .item-price {
    margin-left: auto;
    font-size: 15px;
    font-weight: 600;
    color: var(--ls-ink) !important;
    background: none !important;
}

body.ls-new-design #price-info-module .item-price .price-free {
    color: var(--ls-ok-ink) !important;
}

/* ---------------------------------------------------------------------
 * Features
 * ------------------------------------------------------------------ */

body.ls-new-design ul.listing-features.checkboxes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr));
    gap: 12px 24px;
    columns: auto;
    margin: 0;
    padding: 0;
}

body.ls-new-design ul.listing-features.checkboxes li {
    width: auto;
    margin: 0;
    font-size: 15px;
    color: var(--ls-ink);
}

body.ls-new-design ul.listing-features.checkboxes li a {
    color: var(--ls-ink);
}

body.ls-new-design ul.listing-features.checkboxes li:before {
    background-color: var(--ls-ink) !important;
    border-color: var(--ls-ink) !important;
    color: #ffffff !important;
}

/* ---------------------------------------------------------------------
 * Equipment store carousel
 * ------------------------------------------------------------------ */

body.ls-new-design .listeo-products-slider .product {
    border: 1px solid var(--ls-line);
    border-radius: 18px;
    overflow: hidden;
    background: #ffffff;
}

body.ls-new-design .listeo-products-slider .product section {
    padding: 14px 16px 16px;
}

body.ls-new-design .listeo-products-slider .product h5 a {
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 600;
    color: var(--ls-ink);
}

body.ls-new-design .listeo-products-slider .product .product-category {
    font-size: 12px;
    color: var(--ls-muted);
}

body.ls-new-design .listeo-store-browse-more a.button,
body.ls-new-design .listeo-products-slider .mediaholder .button {
    background: var(--ls-ink) !important;
    color: #ffffff !important;
    border-radius: 980px !important;
}

/* ---------------------------------------------------------------------
 * Booking card (right column)
 * ------------------------------------------------------------------ */

body.ls-new-design .nisl_time_as_per_timezone {
    margin-bottom: 12px;
    padding: 10px 16px;
    border-radius: 14px;
    background: var(--ls-soft) !important;
    color: var(--ls-muted) !important;
    font-family: var(--ls-sans);
    font-size: 13px;
    font-weight: 500;
}

body.ls-new-design .nisl_time_as_per_timezone span {
    color: var(--ls-ink);
    font-weight: 600;
}

body.ls-new-design .booking-widget.boxed-widget {
    padding: 24px;
    border: 1px solid var(--ls-line);
    border-radius: 24px;
    background: #ffffff !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
}

body.ls-new-design .booking-widget h3.widget-title {
    margin-bottom: 20px !important;
    padding: 0;
    border: 0;
    font-family: var(--ls-display);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

body.ls-new-design .booking-widget h3.widget-title i {
    color: var(--ls-ink);
}

/* Date and time fields */
body.ls-new-design .booking-widget #date-picker,
body.ls-new-design .booking-widget input.time-picker,
body.ls-new-design .booking-widget input.input-text,
body.ls-new-design .booking-widget .panel-dropdown > a {
    height: 50px;
    padding: 0 16px;
    border: 1px solid var(--ls-field) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-shadow: none !important;
    color: var(--ls-ink) !important;
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 500;
}

body.ls-new-design .booking-widget .panel-dropdown > a {
    display: flex;
    align-items: center;
    line-height: 1.2;
}

body.ls-new-design .booking-widget #date-picker:focus,
body.ls-new-design .booking-widget input.time-picker:focus {
    border-color: var(--ls-ink) !important;
}

body.ls-new-design span.select_hours,
body.ls-new-design span.select_end_hours {
    background: var(--ls-ink) !important;
}

/* Main buttons: Check availability, Book now, Change date, Login to book */
body.ls-new-design .booking-widget a.nisl_check_availability.button,
body.ls-new-design .booking-widget .button.book-now,
body.ls-new-design .booking-widget a.book-now-notloggedin,
body.ls-new-design .booking-widget .change-date-button,
body.ls-new-design .booking-sticky-footer .button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    border: 0 !important;
    border-radius: 14px !important;
    background: var(--ls-ink) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    font-family: var(--ls-sans);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

body.ls-new-design .booking-widget .change-date-button {
    background: #ffffff !important;
    color: var(--ls-ink) !important;
    border: 1px solid var(--ls-field) !important;
}

body.ls-new-design .booking-widget a.nisl_check_availability.button:hover,
body.ls-new-design .booking-widget .button.book-now:hover,
body.ls-new-design .booking-widget a.book-now-notloggedin:hover {
    background: #2b2b2b !important;
}

body.ls-new-design .booking-widget a.nisl_check_availability.button[disabled],
body.ls-new-design .booking-widget .button.book-now.disabled {
    background: #9a9a9a !important;
}

/* Helper cards under the fields ("Date selected", "Pick your start time"...) */
body.ls-new-design .hint-card {
    border: 1px solid var(--ls-line) !important;
    border-radius: 14px !important;
    background: var(--ls-soft) !important;
    color: var(--ls-ink);
    font-family: var(--ls-sans);
    font-size: 14px !important;
}

body.ls-new-design .hint-card.success {
    background: var(--ls-ok-bg) !important;
    border-color: #cfe6d6 !important;
}

body.ls-new-design .hint-card.warn {
    background: var(--ls-warn-bg) !important;
    border-color: #f2d9bf !important;
}

body.ls-new-design .hint-card .hint-action,
body.ls-new-design .hint-card a {
    color: var(--ls-accent) !important;
    font-weight: 600;
}

/* Add-on groups in the booking card */
body.ls-new-design #bookingservices .panel-dropdown.booking-services {
    margin-bottom: 8px;
}

body.ls-new-design #bookingservices .panel-dropdown.booking-services > a:after {
    color: var(--ls-ink);
}

body.ls-new-design .booking-widget .panel-dropdown-content {
    border: 1px solid var(--ls-line);
    border-radius: 14px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.10);
}

body.ls-new-design .booking-widget .single-service label h5 {
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 500;
}

body.ls-new-design .booking-widget .single-service-price {
    background: none !important;
    color: var(--ls-ink) !important;
    font-weight: 600;
}

body.ls-new-design .booking-widget .single-service input:checked + label,
body.ls-new-design .booking-widget .single-service.active label {
    border-color: var(--ls-ink) !important;
    background: var(--ls-soft) !important;
}

body.ls-new-design .qtyButtons .qtyInc,
body.ls-new-design .qtyButtons .qtyDec {
    border: 1px solid var(--ls-field) !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: var(--ls-ink) !important;
}

body.ls-new-design .qtyButtons .qtyInc:hover,
body.ls-new-design .qtyButtons .qtyDec:hover {
    background: var(--ls-ink) !important;
    color: #ffffff !important;
}

/* Coupon */
body.ls-new-design a#listeo-coupon-link {
    color: var(--ls-accent) !important;
    font-weight: 600;
}

body.ls-new-design .coupon-widget-wrapper .coupon-form {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

body.ls-new-design .coupon-widget-wrapper #apply_new_coupon {
    flex: 1 1 auto;
    min-width: 0;
    height: 50px;
    margin: 0;
}

body.ls-new-design .listeo-booking-widget-apply_new_coupon {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 92px;
    height: 50px;
    margin: 0 !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--ls-ink) !important;
    color: #ffffff !important;
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
}

body.ls-new-design .listeo-booking-widget-apply_new_coupon .apply-coupon-text {
    color: #ffffff !important;
}

body.ls-new-design .listeo-booking-widget-apply_new_coupon.active .apply-coupon-text {
    opacity: 0;
}

/* The theme paints a red layer over the button while it works */
body.ls-new-design .button.listeo-booking-widget-apply_new_coupon:before {
    width: 100%;
    height: 100%;
    border-radius: 12px;
    background-color: #2b2b2b !important;
}

body.ls-new-design .listeo-booking-widget-apply_new_coupon .loadingspinner {
    position: absolute;
}

/* Price summary */
body.ls-new-design .booking-estimated-cost,
body.ls-new-design .booking-estimated-discount-cost {
    margin-top: 16px;
    padding: 14px 16px;
    border: 0;
    border-radius: 14px;
    background: var(--ls-soft);
    font-size: 15px;
}

body.ls-new-design .booking-estimated-cost strong,
body.ls-new-design .booking-estimated-cost span,
body.ls-new-design .booking-estimated-discount-cost strong,
body.ls-new-design .booking-estimated-discount-cost span {
    color: var(--ls-ink) !important;
}

body.ls-new-design .booking-error-message {
    border-radius: 12px;
    background: var(--ls-warn-bg) !important;
    color: var(--ls-warn-ink) !important;
}

/* Opening hours and owner boxes under the booking card */
body.ls-new-design .listeo-single-listing-sidebar .boxed-widget:not(.booking-widget),
body.ls-new-design .elementor-widget-listeo-listing-sidebar .boxed-widget:not(.booking-widget) {
    padding: 22px 24px;
    border: 1px solid var(--ls-line);
    border-radius: 20px;
    background: #ffffff !important;
    box-shadow: none;
}

body.ls-new-design .opening-hours .listing-badge.now-open {
    background: var(--ls-ok-ink) !important;
}

body.ls-new-design .opening-hours h3.widget-title {
    font-family: var(--ls-display);
    font-size: 18px;
    font-weight: 700;
}

/* ---------------------------------------------------------------------
 * 30-minute time grid in the booking card (js/ls-time-grid.js)
 * ------------------------------------------------------------------ */

/* The original time fields stay in the form (they receive the chosen
   times) but are hidden once the grid is ready. */
body.ls-new-design.ls-tg-ready .booking-widget .listeo-service-timepicker {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.ls-new-design .ls-tg {
    margin: 4px 0 16px;
}

body.ls-new-design .ls-tg-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 8px;
}

body.ls-new-design .ls-tg-label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--ls-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

body.ls-new-design .ls-tg-summary {
    margin: 0 0 10px;
    font-family: var(--ls-display);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.25;
    color: var(--ls-ink);
}

/* All times visible, no scrolling box; grouped Morning / Afternoon / Evening. */
body.ls-new-design .ls-tg-slots {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    padding: 2px;
}
body.ls-new-design .ls-tg-period {
    grid-column: 1 / -1;
    margin: 8px 0 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ls-muted);
}
body.ls-new-design .ls-tg-period:first-child { margin-top: 0; }

body.ls-new-design .ls-tg-slot {
    min-height: 40px;
    padding: 0 4px;
    border: 1px solid #cfcfcc;
    border-radius: 10px;
    background: #ffffff;
    color: var(--ls-ink);
    font-family: var(--ls-sans);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.1;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

body.ls-new-design .ls-tg-slot:hover:not(:disabled) {
    border-color: var(--ls-ink);
}

/* Booked: grey with a "booked" label (no strikethrough: a crossed-out
   "9:30" read as "nothing free before 9:30"). */
body.ls-new-design .ls-tg-slot.is-booked {
    background: #ededea;
    border-color: #ededea;
    color: #6b6b6b;
    text-decoration: none;
    cursor: not-allowed;
}

/* A booked stretch: one full-width bar with its times. */
body.ls-new-design .ls-tg-busy {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 6px 10px;
    border-radius: 10px;
    background: repeating-linear-gradient(135deg, #ededea 0 8px, #e4e4e0 8px 16px);
    color: #555;
    font-family: var(--ls-sans);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
}

body.ls-new-design .ls-tg-slot.is-short,
body.ls-new-design .ls-tg-slot.is-past {
    background: #fafaf9;
    border-style: dashed;
    border-color: #c4c4c0;
    color: #767676;
    cursor: not-allowed;
}

body.ls-new-design .ls-tg-slot.is-past {
    display: none;
}

body.ls-new-design .ls-tg-slot.is-selected,
body.ls-new-design .ls-tg-slot.is-selected:disabled {
    background: var(--ls-ink);
    border: 1px solid var(--ls-ink);
    color: #ffffff;
    text-decoration: none;
}

/* End-time square and closing-time square */
body.ls-new-design .ls-tg-slot.is-end,
body.ls-new-design .ls-tg-slot.is-close {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

body.ls-new-design .ls-tg-slot.is-close {
    background: #ffffff;
    border: 1px solid var(--ls-line);
    border-style: solid;
    color: var(--ls-muted);
    text-decoration: none;
    cursor: default;
}

body.ls-new-design .ls-tg-slot.is-end,
body.ls-new-design .ls-tg-slot.is-end:disabled {
    background: #ffffff;
    border: 2px solid var(--ls-ink);
    border-style: solid;
    color: var(--ls-ink);
    font-weight: 600;
    text-decoration: none;
}

body.ls-new-design .ls-tg-slot { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
body.ls-new-design .ls-tg-sub {
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    opacity: 0.85;
}

body.ls-new-design .ls-tg-empty {
    grid-column: 1 / -1;
    margin: 6px 0;
    font-size: 14px;
    color: var(--ls-muted);
}

body.ls-new-design .ls-tg-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 10px;
    font-size: 12px;
    color: var(--ls-muted);
}

body.ls-new-design .ls-tg-legend span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

body.ls-new-design .ls-tg-key {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    box-sizing: border-box;
}

body.ls-new-design .ls-tg-key.is-selected { background: var(--ls-ink); }
body.ls-new-design .ls-tg-key.is-open { background: #ffffff; border: 1px solid #cfcfcc; }
body.ls-new-design .ls-tg-key.is-booked { background: repeating-linear-gradient(135deg, #ededea 0 3px, #d9d9d5 3px 6px); }
body.ls-new-design .ls-tg-key.is-short { background: #fafaf9; border: 1px dashed #c4c4c0; }

body.ls-new-design .ls-tg-dur {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
}

body.ls-new-design .ls-tg-dur strong {
    display: block;
    margin-top: 2px;
    font-size: 16px;
    font-weight: 600;
    color: var(--ls-ink);
}

body.ls-new-design .ls-tg-dur-ctrl {
    display: flex;
    gap: 8px;
}

body.ls-new-design .ls-tg-dur-ctrl button {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #cfcfcc;
    border-radius: 50%;
    background: #ffffff;
    color: var(--ls-ink);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

body.ls-new-design .ls-tg-dur-ctrl button:hover:not(:disabled) {
    background: var(--ls-ink);
    border-color: var(--ls-ink);
    color: #ffffff;
}

body.ls-new-design .ls-tg-dur-ctrl button:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

body.ls-new-design .ls-tg-msg {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--ls-warn-bg);
    color: var(--ls-warn-ink);
    font-size: 14px;
    line-height: 1.4;
}

@media (max-width: 400px) {
    body.ls-new-design .ls-tg-slots {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ---------------------------------------------------------------------
 * Simple booking flow (js/ls-simple-flow.js)
 * ------------------------------------------------------------------ */

body.ls-simple-flow .ls-hidden,
body.ls-simple-flow a.nisl_check_availability.ls-hidden,
body.ls-simple-flow .change-date-button.ls-hidden {
    display: none !important;
}

body.ls-simple-flow .ls-guests-note {
    margin: -2px 0 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--ls-soft);
    color: var(--ls-ink-2);
    font-size: 13px;
    line-height: 1.45;
}

body.ls-simple-flow .ls-guests-note strong {
    color: var(--ls-ink);
}

body.ls-simple-flow .ls-guests-note a {
    display: inline-block;
    margin-top: 4px;
    color: var(--ls-accent) !important;
    font-weight: 600;
    text-decoration: underline;
}

body.ls-simple-flow .ls-tg-msg.is-taken {
    background: var(--ls-warn-bg);
    color: var(--ls-warn-ink);
}

body.ls-simple-flow .ls-tg-msg.is-taken strong {
    display: block;
    margin-bottom: 4px;
}

body.ls-simple-flow .ls-tg-alts {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
}

body.ls-simple-flow .ls-tg-alt {
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid var(--ls-ink);
    border-radius: 10px;
    background: #ffffff;
    color: var(--ls-ink);
    font-family: var(--ls-sans);
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

body.ls-simple-flow .ls-tg-alt:hover {
    background: var(--ls-ink);
    color: #ffffff;
}

body.ls-simple-flow .ls-tg.ls-attention {
    animation: ls-attention 1.1s ease;
    border-radius: 14px;
}

@keyframes ls-attention {
    0%, 100% { box-shadow: 0 0 0 0 rgba(17, 17, 17, 0); }
    30% { box-shadow: 0 0 0 4px rgba(17, 17, 17, 0.18); }
}

/* Price is shown as soon as it's worked out, no "Calculate" step */
body.ls-simple-flow .calculate-booking {
    display: none !important;
}

/* ---------------------------------------------------------------------
 * Time picker popup
 * ------------------------------------------------------------------ */

body.ls-new-design #studio-time-picker .time-picker-content {
    border-radius: 22px !important;
    font-family: var(--ls-sans);
}

body.ls-new-design #studio-time-picker .time-picker-header h3 {
    font-family: var(--ls-display);
    font-weight: 700;
    color: var(--ls-ink) !important;
}

body.ls-new-design #studio-time-picker .business-hours-info {
    background: var(--ls-soft) !important;
    color: var(--ls-ink) !important;
    border-radius: 12px;
}

body.ls-new-design #studio-time-picker .time-period-header {
    color: var(--ls-muted) !important;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

body.ls-new-design #studio-time-picker .time-slot {
    border: 1px solid var(--ls-field) !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    color: var(--ls-ink) !important;
    font-weight: 500;
}

body.ls-new-design #studio-time-picker .time-slot:hover:not(.unavailable) {
    border-color: var(--ls-ink) !important;
}

body.ls-new-design #studio-time-picker .time-slot.selected {
    background: var(--ls-ink) !important;
    border-color: var(--ls-ink) !important;
    color: #ffffff !important;
}

body.ls-new-design #studio-time-picker .time-slot.unavailable {
    background: #ededea !important;
    border-color: #ededea !important;
    color: #6b6b6b !important;
    text-decoration: line-through;
}

body.ls-new-design #studio-time-picker .confirm-button {
    background: var(--ls-ink) !important;
    color: #ffffff !important;
    border: 0 !important;
    border-radius: 12px !important;
}

body.ls-new-design #studio-time-picker .confirm-button:disabled {
    background: #9a9a9a !important;
}

body.ls-new-design #studio-time-picker .cancel-button {
    background: #ffffff !important;
    color: var(--ls-ink) !important;
    border: 1px solid var(--ls-field) !important;
    border-radius: 12px !important;
}

/* ---------------------------------------------------------------------
 * Add-ons popup
 * ------------------------------------------------------------------ */

body.ls-new-design .nisl-addon-popup__dialog {
    border-radius: 24px;
    font-family: var(--ls-sans);
}

body.ls-new-design .nisl-addon-popup__eyebrow {
    color: var(--ls-accent);
}

body.ls-new-design .nisl-addon-popup__header h3 {
    font-family: var(--ls-display);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ls-ink);
}

body.ls-new-design .nisl-addon-popup__close:hover,
body.ls-new-design .nisl-addon-popup__close:focus {
    border-color: var(--ls-ink);
    color: var(--ls-ink);
}

body.ls-new-design .nisl-addon-popup__body {
    background: var(--ls-soft);
}

body.ls-new-design .nisl-addon-popup__card {
    border-radius: 16px;
    border-color: var(--ls-line);
}

body.ls-new-design .nisl-addon-popup__card.is-selected {
    border-color: var(--ls-ink);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.10);
}

body.ls-new-design .nisl-addon-popup__select,
body.ls-new-design .nisl-addon-popup__media img {
    border-radius: 12px;
}

body.ls-new-design .nisl-addon-popup__media--empty {
    color: var(--ls-muted);
}

body.ls-new-design .nisl-addon-popup__card.is-selected .nisl-addon-popup__check,
body.ls-new-design .nisl-addon-popup__card.is-selected .nisl-addon-popup__toggle {
    background: var(--ls-ink);
}

body.ls-new-design .nisl-addon-popup__line h4 {
    font-family: var(--ls-sans);
    font-weight: 600;
    color: var(--ls-ink);
}

body.ls-new-design .nisl-addon-popup__line strong {
    color: var(--ls-ink);
}

body.ls-new-design .nisl-addon-popup__button--primary {
    background: var(--ls-ink);
    border-radius: 12px;
}

/* ---------------------------------------------------------------------
 * Pop-up alerts (SweetAlert)
 * ------------------------------------------------------------------ */

body.ls-new-design .nisl-custom-swal-button {
    background-color: var(--ls-ink) !important;
    border-radius: 12px !important;
}

body.ls-new-design .swal2-popup {
    border-radius: 20px;
    font-family: var(--ls-sans);
}

/* ---------------------------------------------------------------------
 * Mobile sticky "Book now" bar
 * ------------------------------------------------------------------ */

body.ls-new-design .booking-sticky-footer {
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(14px);
    border-top: 1px solid var(--ls-line);
    box-shadow: none;
}

body.ls-new-design .booking-sticky-footer h4 {
    font-family: var(--ls-display);
    font-weight: 700;
    color: var(--ls-ink);
}

body.ls-new-design .booking-sticky-footer .button {
    min-height: 44px;
    padding: 0 20px;
}

/* ---------------------------------------------------------------------
 * Phones
 * ------------------------------------------------------------------ */

@media (max-width: 767px) {
    body.ls-new-design #titlebar.listing-titlebar {
        padding-top: 24px;
    }

    body.ls-new-design #single-listing-grid-gallery {
        border-radius: 16px;
    }

    body.ls-new-design #listing-nav .listing-nav li a {
        margin-right: 18px;
        font-size: 14px;
    }

    body.ls-new-design h3.listing-desc-headline,
    body.ls-new-design .elementor-widget-heading .elementor-heading-title {
        margin-top: 36px;
        font-size: 24px;
    }

    body.ls-new-design .booking-widget.boxed-widget {
        padding: 20px;
        border-radius: 20px;
    }
}

/* =====================================================================
 * Booking confirmation page (body.ls-confirm-new)
 * ================================================================== */

body.ls-confirm-new #titlebar:not(.listing-titlebar) {
    margin-bottom: 0;
    padding: 48px 0 8px;
    background: #ffffff !important;
}

body.ls-confirm-new #titlebar:not(.listing-titlebar) h2 {
    margin: 0;
    font-family: var(--ls-display);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.05;
    color: var(--ls-ink);
}

body.ls-confirm-new #titlebar:not(.listing-titlebar) #breadcrumbs {
    display: none;
}

/* Steps: Studio and time > Your details > Payment */
body.ls-confirm-new .ls-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
    margin: 8px 0 40px;
    padding: 0;
    list-style: none;
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-muted);
}

body.ls-confirm-new .ls-steps li {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

body.ls-confirm-new .ls-steps li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--ls-field);
    border-radius: 50%;
    font-size: 13px;
    font-weight: 600;
}

body.ls-confirm-new .ls-steps li.is-done span {
    background: var(--ls-soft);
    border-color: var(--ls-soft);
    color: var(--ls-ink);
}

body.ls-confirm-new .ls-steps li.is-current {
    color: var(--ls-ink);
    font-weight: 600;
}

body.ls-confirm-new .ls-steps li.is-current span {
    background: var(--ls-ink);
    border-color: var(--ls-ink);
    color: #ffffff;
}

/* Details form */
body.ls-confirm-new #booking-confirmation h3,
body.ls-confirm-new .col-lg-8 > h3 {
    margin: 0 0 24px !important;
    font-family: var(--ls-display);
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ls-ink);
}

body.ls-confirm-new #booking-confirmation label {
    display: block;
    margin-bottom: 6px;
    font-family: var(--ls-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--ls-ink-2);
}

/* Required marks: quiet instead of large red stars */
body.ls-confirm-new #booking-confirmation label i.fas,
body.ls-confirm-new #booking-confirmation label .fa-asterisk,
body.ls-confirm-new #booking-confirmation label sup {
    font-size: 8px !important;
    vertical-align: super;
    color: var(--ls-accent) !important;
}

body.ls-confirm-new #booking-confirmation input[type="text"],
body.ls-confirm-new #booking-confirmation input[type="email"],
body.ls-confirm-new #booking-confirmation input[type="tel"],
body.ls-confirm-new #booking-confirmation input[type="password"],
body.ls-confirm-new #booking-confirmation input.input-text,
body.ls-confirm-new #booking-confirmation select,
body.ls-confirm-new #booking-confirmation textarea {
    width: 100%;
    min-height: 50px;
    margin-bottom: 20px;
    padding: 12px 16px;
    border: 1px solid var(--ls-field) !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-shadow: none !important;
    color: var(--ls-ink);
    font-family: var(--ls-sans);
    font-size: 15px;
}

body.ls-confirm-new #booking-confirmation textarea {
    min-height: 120px;
}

body.ls-confirm-new #booking-confirmation .input-with-icon input {
    padding-left: 44px;
}

body.ls-confirm-new #booking-confirmation .input-with-icon i {
    color: var(--ls-muted);
}

body.ls-confirm-new #booking-confirmation input:focus,
body.ls-confirm-new #booking-confirmation select:focus,
body.ls-confirm-new #booking-confirmation textarea:focus {
    border-color: var(--ls-ink) !important;
    outline: none;
}

/* Required fields not filled yet: soft warning instead of a red underline */
body.ls-confirm-new #booking-confirmation input.error,
body.ls-confirm-new #booking-confirmation input[aria-invalid="true"],
body.ls-confirm-new #booking-confirmation .listeo-custom-booking-fields-wrapper input:invalid {
    border-color: #e2b48c !important;
    background: #fffaf5 !important;
}

/* Confirm and Pay */
body.ls-confirm-new a.button.booking-confirmation-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 420px;
    min-height: 54px;
    margin-top: 12px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: var(--ls-ink) !important;
    color: #ffffff !important;
    font-family: var(--ls-sans);
    font-size: 16px;
    font-weight: 600;
    box-shadow: none !important;
}

body.ls-confirm-new a.button.booking-confirmation-btn:hover {
    background: #2b2b2b !important;
}

body.ls-confirm-new a.button.booking-confirmation-btn:before {
    display: none;
}

body.ls-confirm-new .ls-confirm-note {
    max-width: 420px;
    margin: 10px 0 0;
    font-size: 12.5px;
    line-height: 1.4;
    white-space: nowrap;
    color: var(--ls-muted);
    text-align: center;
}
@media (max-width: 380px) {
    body.ls-confirm-new .ls-confirm-note { white-space: normal; }
}

/* Summary column */
body.ls-confirm-new .order-summary-widget {
    margin-bottom: 0;
    border-radius: 22px 22px 0 0;
    overflow: hidden;
    box-shadow: none;
}

body.ls-confirm-new .order-summary-widget .listing-item img {
    border-radius: 0;
}

body.ls-confirm-new .order-summary-widget .listing-item-content h3 {
    font-family: var(--ls-display);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #ffffff;
}

body.ls-confirm-new .order-summary-widget .listing-item-content span {
    font-size: 14px;
}

body.ls-confirm-new .boxed-widget.summary {
    margin-top: 0 !important;
    padding: 24px;
    border: 1px solid var(--ls-line);
    border-top: 0;
    border-radius: 0 0 22px 22px;
    background: #ffffff !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

body.ls-confirm-new .boxed-widget.summary h3 {
    margin-bottom: 18px;
    padding-bottom: 0;
    border: 0;
    font-family: var(--ls-display);
    font-size: 20px;
    font-weight: 700;
}

body.ls-confirm-new .boxed-widget.summary h3 i {
    color: var(--ls-ink);
}

body.ls-confirm-new #booking-confirmation-summary li {
    padding: 8px 0;
    border-color: var(--ls-line);
    font-size: 14px;
    color: var(--ls-ink-2);
}

body.ls-confirm-new #booking-confirmation-summary li span {
    color: var(--ls-ink);
    font-weight: 600;
}

body.ls-confirm-new #booking-confirmation-summary .total-costs,
body.ls-confirm-new #booking-confirmation-summary .total-discounted_costs {
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--ls-line);
    font-size: 17px;
    font-weight: 700;
    color: var(--ls-ink);
}

body.ls-confirm-new #booking-confirmation-summary .total-costs span,
body.ls-confirm-new #booking-confirmation-summary .total-discounted_costs span {
    color: var(--ls-ink) !important;
    font-size: 20px;
}

/* Coupon on this page */
body.ls-confirm-new .booking-confirmation-coupons a#listeo-coupon-link {
    color: var(--ls-accent) !important;
}

body.ls-confirm-new .coupon-form {
    gap: 8px;
}

body.ls-confirm-new .coupon-form input {
    height: 50px;
    margin: 0 !important;
    border: 1px solid var(--ls-field) !important;
    border-radius: 12px !important;
}

/* After confirming: success / error message */
body.ls-confirm-new .booking-confirmation-page {
    max-width: 640px;
    margin: 0 auto;
    padding: 56px 0;
}

body.ls-confirm-new .booking-confirmation-page i {
    font-size: 72px;
    color: var(--ls-ok-ink);
}

body.ls-confirm-new .booking-confirmation-page h2 {
    font-family: var(--ls-display);
    font-size: 36px;
    letter-spacing: -0.02em;
    color: var(--ls-ink);
}

body.ls-confirm-new .booking-confirmation-page p {
    font-size: 17px;
    color: var(--ls-ink-2);
}

body.ls-confirm-new .booking-confirmation-page .button {
    border-radius: 14px !important;
    background: var(--ls-ink) !important;
    color: #ffffff !important;
}

@media (max-width: 991px) {
    body.ls-confirm-new .order-summary-widget {
        margin-top: 40px;
    }
}

/* ---------------------------------------------------------------------
 * Booking card spacing: coupon, Reserve, price summary, opening hours
 * ------------------------------------------------------------------ */

body.ls-new-design .booking-widget .coupon-widget-wrapper {
    margin: 24px 0 0 !important;
    padding: 20px 0 0 !important;
    border-top: 1px solid var(--ls-line);
}

body.ls-new-design .booking-widget a#listeo-coupon-link {
    display: inline-block;
    margin-bottom: 12px;
}

body.ls-new-design .booking-widget .coupon-form {
    margin-top: 0 !important;
}

body.ls-new-design .booking-widget #coupon-widget-wrapper-output .notification {
    margin: 12px 0 0;
    border-radius: 12px;
}

body.ls-new-design .booking-widget #coupon-widget-wrapper-applied-coupons span {
    margin: 12px 0 0;
    border-radius: 980px;
}

body.ls-new-design .booking-widget a.book-now,
body.ls-new-design .booking-widget a.book-now-notloggedin {
    margin-top: 24px !important;
}

body.ls-new-design .booking-widget .booking-estimated-cost {
    margin-top: 16px !important;
}

body.ls-new-design .booking-estimated-cost ul#booking-mandatory-fees {
    margin: 0 0 12px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--ls-line);
}

body.ls-new-design .booking-estimated-cost ul#booking-mandatory-fees li {
    display: flex;
    justify-content: space-between;
    margin: 0;
}

body.ls-new-design .booking-estimated-cost ul#booking-mandatory-fees li p {
    margin: 0;
    color: var(--ls-muted);
}

body.ls-new-design .opening-hours.boxed-widget {
    margin-top: 24px !important;
    padding: 24px 24px 16px !important;
}

body.ls-new-design .opening-hours.boxed-widget h3.widget-title {
    margin: 0 0 16px !important;
    padding: 0;
    border: 0;
}

body.ls-new-design .opening-hours.boxed-widget ul {
    margin: 0;
    padding: 0;
}

body.ls-new-design .opening-hours.boxed-widget ul li {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--ls-line);
    font-size: 14px;
    color: var(--ls-ink-2);
}

body.ls-new-design .opening-hours.boxed-widget ul li:last-child {
    border-bottom: 0;
}

body.ls-new-design .opening-hours.boxed-widget ul li span {
    float: none;
    color: var(--ls-ink);
    font-weight: 500;
}

body.ls-new-design .opening-hours .listing-badge.now-open {
    font-size: 12px;
}

/* =====================================================================
 * Payment page (body.ls-pay-new) - "Pay for order"
 * The template has its own inline styles, so rules here are prefixed
 * with body.ls-pay-new to win.
 * ================================================================== */

body.ls-pay-new .container.full-width,
body.ls-pay-new div#titlebar {
    background: #ffffff !important;
}

body.ls-pay-new div#titlebar {
    margin-bottom: 0;
    padding: 48px 0 0 !important;
}

body.ls-pay-new div#titlebar h2 {
    margin: 0;
    font-family: var(--ls-display);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.05;
    color: var(--ls-ink);
}

body.ls-pay-new div#titlebar #breadcrumbs {
    display: none;
}

body.ls-pay-new .ls-pay-head {
    max-width: 1240px;
    margin: 0 auto;
    padding: 8px 20px 0;
}

body.ls-pay-new .ls-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
    margin: 8px 0 8px;
    padding: 0;
    list-style: none;
    font-family: var(--ls-sans);
    font-size: 14px;
    font-weight: 500;
    color: var(--ls-muted);
}

body.ls-pay-new .ls-steps li {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

body.ls-pay-new .ls-steps li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--ls-soft);
    color: var(--ls-ink);
    font-size: 13px;
    font-weight: 600;
}

body.ls-pay-new .ls-steps li.is-current {
    color: var(--ls-ink);
    font-weight: 600;
}

body.ls-pay-new .ls-steps li.is-current span {
    background: var(--ls-ink);
    color: #ffffff;
}

/* Countdown box: calm card instead of the yellow banner */
body.ls-pay-new .ls-pay-timer {
    max-width: 1200px;
    margin: 16px auto 0 !important;
    padding: 16px 20px !important;
    border: 1px solid var(--ls-line) !important;
    border-radius: 18px !important;
    background: var(--ls-soft) !important;
    box-shadow: none !important;
    color: var(--ls-ink-2) !important;
    font-family: var(--ls-sans) !important;
    text-align: center;
}

body.ls-pay-new .ls-pay-timer * {
    color: var(--ls-ink-2) !important;
    font-family: var(--ls-sans) !important;
}

body.ls-pay-new .ls-pay-timer h1,
body.ls-pay-new .ls-pay-timer h2,
body.ls-pay-new .ls-pay-timer h3,
body.ls-pay-new .ls-pay-timer h4,
body.ls-pay-new .ls-pay-timer strong {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--ls-ink) !important;
}

/* The big countdown digits */
body.ls-pay-new .ls-pay-timer [class*="timer"],
body.ls-pay-new .ls-pay-timer [class*="count"],
body.ls-pay-new .ls-pay-timer [id*="timer"],
body.ls-pay-new .ls-pay-timer [id*="count"] {
    font-family: var(--ls-display) !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    color: var(--ls-ink) !important;
}

/* Two columns on desktop: booking + price left, payment right */
body.ls-pay-new .nisl-pay-wrapper {
    padding: 24px 20px 80px;
    font-family: var(--ls-sans);
}

body.ls-pay-new .nisl-pay-form {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    grid-template-areas:
        "summary payment"
        "totals payment";
    align-items: start;
    gap: 0 32px;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}

body.ls-pay-new .nisl-pay-summary {
    grid-area: summary;
    padding: 24px;
    border: 1px solid var(--ls-line);
    border-bottom: 0;
    border-radius: 22px 22px 0 0;
    background: #ffffff;
}

body.ls-pay-new .nisl-pay-totals {
    grid-area: totals;
    padding: 4px 24px 24px;
    border: 1px solid var(--ls-line);
    border-top: 0;
    border-radius: 0 0 22px 22px;
    background: #ffffff;
}

body.ls-pay-new #payment.nisl-pay-payment {
    grid-area: payment;
    position: sticky;
    top: 24px;
    padding: 24px;
    border: 1px solid var(--ls-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
}

body.ls-pay-new .nisl-pay-summary-title,
body.ls-pay-new .nisl-pay-totals-title,
body.ls-pay-new .nisl-pay-payment-title {
    margin: 0 0 18px !important;
    padding: 0 !important;
    border: 0 !important;
    font-family: var(--ls-display);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ls-ink);
}

body.ls-pay-new .nisl-pay-totals-title {
    padding-top: 20px !important;
    border-top: 1px solid var(--ls-line) !important;
}

body.ls-pay-new .nisl-pay-product {
    margin: 0;
    padding: 0;
    background: transparent;
}

body.ls-pay-new .nisl-pay-product-name {
    font-family: var(--ls-display);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ls-ink);
}

body.ls-pay-new .nisl-pay-product-qty {
    display: none;
}

body.ls-pay-new .nisl-pay-product-price,
body.ls-pay-new .nisl-pay-product-price * {
    color: var(--ls-ink) !important;
    font-weight: 600;
}

body.ls-pay-new .nisl-pay-booking-details {
    display: grid;
    gap: 12px;
}

body.ls-pay-new .nisl-pay-detail-item {
    padding: 14px 16px;
    border: 0;
    border-radius: 14px;
    background: var(--ls-soft);
}

body.ls-pay-new .nisl-pay-detail-label {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ls-muted);
}

body.ls-pay-new .nisl-pay-detail-value,
body.ls-pay-new .nisl-pay-detail-value li {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--ls-ink);
}

body.ls-pay-new .nisl-pay-detail-value ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

body.ls-pay-new .nisl-pay-detail-value li em {
    font-style: normal;
    color: var(--ls-muted);
}

body.ls-pay-new .nisl-pay-detail-value .services-list-price-tag {
    margin-left: 6px;
    color: var(--ls-ok-ink);
    font-weight: 600;
}

/* Price breakdown */
body.ls-pay-new .nisl-pay-total-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border: 0;
    font-size: 15px;
    color: var(--ls-ink-2) !important;
}

body.ls-pay-new .nisl-pay-total-value,
body.ls-pay-new .nisl-pay-total-value * {
    color: var(--ls-ink) !important;
    font-weight: 500;
}

body.ls-pay-new .nisl-pay-total-row .tax_label,
body.ls-pay-new .nisl-pay-total-value small {
    color: var(--ls-muted) !important;
    font-weight: 400;
}

body.ls-pay-new .nisl-pay-total-row.nisl-pay-grand-total {
    margin-top: 10px;
    padding-top: 16px;
    border-top: 1px solid var(--ls-line);
    font-size: 18px;
    font-weight: 700;
    color: var(--ls-ink) !important;
}

body.ls-pay-new .nisl-pay-total-row.nisl-pay-grand-total .nisl-pay-total-value,
body.ls-pay-new .nisl-pay-total-row.nisl-pay-grand-total .nisl-pay-total-value * {
    font-family: var(--ls-display);
    font-size: 24px;
    font-weight: 700;
}

/* Discount line in green instead of pink */
body.ls-pay-new .nisl-pay-total-row[style*="color"] ,
body.ls-pay-new .nisl-pay-total-row[style*="color"] .nisl-pay-total-value,
body.ls-pay-new .nisl-pay-total-row[style*="color"] .nisl-pay-total-value * {
    color: var(--ls-ok-ink) !important;
}

/* Payment methods */
body.ls-pay-new ul.wc_payment_methods {
    margin: 0 0 20px;
    padding: 0;
    border: 1px solid var(--ls-line);
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
}

body.ls-pay-new ul.wc_payment_methods > li {
    margin: 0;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ls-line);
    background: #ffffff;
    list-style: none;
}

body.ls-pay-new ul.wc_payment_methods > li:last-child {
    border-bottom: 0;
}

body.ls-pay-new ul.wc_payment_methods > li > label {
    font-family: var(--ls-sans);
    font-size: 15px;
    font-weight: 600;
    color: var(--ls-ink);
}

body.ls-pay-new ul.wc_payment_methods .payment_box {
    margin: 12px 0 0;
    padding: 12px 0 0;
    border-radius: 0;
    background: transparent !important;
    color: var(--ls-ink-2);
}

body.ls-pay-new ul.wc_payment_methods .payment_box:before {
    display: none;
}

body.ls-pay-new ul.wc_payment_methods select,
body.ls-pay-new ul.wc_payment_methods input[type="text"],
body.ls-pay-new .wc-stripe-elements-field,
body.ls-pay-new .wc-stripe-iban-element-field {
    min-height: 48px;
    border: 1px solid var(--ls-field) !important;
    border-radius: 12px !important;
    background: #ffffff;
}

body.ls-pay-new .nisl-pay-terms,
body.ls-pay-new .woocommerce-privacy-policy-text p,
body.ls-pay-new .woocommerce-terms-and-conditions-wrapper {
    font-size: 13px;
    line-height: 1.5;
    color: var(--ls-muted);
}

body.ls-pay-new .woocommerce-terms-and-conditions-wrapper a,
body.ls-pay-new .woocommerce-privacy-policy-text a {
    color: var(--ls-ink);
    text-decoration: underline;
}

body.ls-pay-new .woocommerce-form__label-for-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 12px;
    font-size: 14px;
    color: var(--ls-ink);
}

body.ls-pay-new .woocommerce-form__label-for-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--ls-ink);
}

/* Pay button */
body.ls-pay-new button.nisl-pay-submit#place_order {
    width: 100%;
    min-height: 54px;
    margin-top: 20px;
    border: 0;
    border-radius: 14px;
    background: var(--ls-ink) !important;
    color: #ffffff !important;
    font-family: var(--ls-sans);
    font-size: 16px;
    font-weight: 600;
    box-shadow: none;
    cursor: pointer;
}

body.ls-pay-new button.nisl-pay-submit#place_order:hover {
    background: #2b2b2b !important;
}

@media (max-width: 991px) {
    body.ls-pay-new .nisl-pay-form {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "summary"
            "totals"
            "payment";
        gap: 0;
    }

    body.ls-pay-new #payment.nisl-pay-payment {
        position: static;
        margin-top: 24px;
    }
}

/* Coupon and Reserve: the theme floats the coupon block, which swallows
   the space above the button, so the space is set on both sides. */
body.ls-new-design .booking-widget .coupon-widget-wrapper {
    float: none !important;
    width: 100% !important;
    margin-bottom: 28px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.ls-new-design .booking-widget .coupon-widget-wrapper::after {
    content: "";
    display: table;
    clear: both;
}

body.ls-new-design .booking-widget a.book-now,
body.ls-new-design .booking-widget a.book-now-notloggedin {
    clear: both;
    margin-top: 0 !important;
}

/* Note under "How long" when + is at its limit (next booking or closing). */
body.ls-simple-flow .ls-tg-dur-note {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.4;
    color: #6b6b6b;
}
body.ls-simple-flow .ls-tg-dur-ctrl button:disabled {
    opacity: .35;
    cursor: not-allowed;
}

/* =========================================================================
 * Date picker on new-design studio pages: clean white card, round days,
 * black for the chosen day, faded for days that can't be booked.
 * ====================================================================== */
body.ls-simple-flow .daterangepicker {
    font-family: var(--ls-sans);
    border: 1px solid var(--ls-line) !important;
    border-radius: 16px !important;
    box-shadow: 0 18px 48px rgba(17, 17, 17, .14) !important;
    padding: 14px !important;
    margin-top: 8px !important;
    background: #fff !important;
    z-index: 10050 !important;
    width: auto !important;
    min-width: 300px;
}
body.ls-simple-flow .daterangepicker:before,
body.ls-simple-flow .daterangepicker:after {
    display: none !important;
}
body.ls-simple-flow .daterangepicker .drp-calendar {
    padding: 0 !important;
    max-width: none !important;
}
body.ls-simple-flow .daterangepicker .calendar-table,
body.ls-simple-flow .daterangepicker .calendar-table table {
    border: 0 !important;
    background: transparent !important;
    border-collapse: separate !important;
    border-spacing: 2px !important;
}
body.ls-simple-flow .daterangepicker th.month {
    font-family: var(--ls-display);
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--ls-ink) !important;
}
body.ls-simple-flow .daterangepicker th.prev,
body.ls-simple-flow .daterangepicker th.next {
    border-radius: 999px !important;
    width: 36px; height: 36px;
}
body.ls-simple-flow .daterangepicker th.prev:hover,
body.ls-simple-flow .daterangepicker th.next:hover {
    background: var(--ls-soft) !important;
}
body.ls-simple-flow .daterangepicker thead tr:last-child th {
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ls-muted) !important;
    background: transparent !important;
    padding-bottom: 6px !important;
}
body.ls-simple-flow .daterangepicker td,
body.ls-simple-flow .daterangepicker td.available,
body.ls-simple-flow .daterangepicker td.weekend {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px;
    line-height: 38px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--ls-ink) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-align: center;
    box-shadow: none !important;
}
body.ls-simple-flow .daterangepicker td.available:hover {
    background: var(--ls-soft) !important;
}
body.ls-simple-flow .daterangepicker td.today:not(.active) {
    box-shadow: inset 0 0 0 1.5px var(--ls-ink) !important;
}
body.ls-simple-flow .daterangepicker td.active,
body.ls-simple-flow .daterangepicker td.active:hover,
body.ls-simple-flow .daterangepicker td.start-date,
body.ls-simple-flow .daterangepicker td.end-date,
body.ls-simple-flow .daterangepicker td.in-range.active {
    background: var(--ls-ink) !important;
    color: #fff !important;
    font-weight: 600 !important;
}
body.ls-simple-flow .daterangepicker td.in-range:not(.active) {
    background: var(--ls-soft) !important;
}
body.ls-simple-flow .daterangepicker td.off,
body.ls-simple-flow .daterangepicker td.off.available {
    color: #c4c4c0 !important;
    background: transparent !important;
}
body.ls-simple-flow .daterangepicker td.disabled,
body.ls-simple-flow .daterangepicker td.off.disabled {
    color: #c4c4c0 !important;
    background: transparent !important;
    text-decoration: line-through;
    cursor: not-allowed;
}
body.ls-simple-flow .daterangepicker .drp-buttons {
    border-top: 1px solid var(--ls-line) !important;
    padding: 10px 0 0 !important;
}

/* =========================================================================
 * Confirmation page summary: add-ons as tidy rows
 *   Guests 11 to 15                       $110.00
 *   5.5 hrs × $20.00
 * ====================================================================== */
/* No !important on display: the page hides rows (e.g. "Final Cost" after a
   coupon is removed) with an inline display:none, which must win. */
body.ls-confirm-new #booking-confirmation-summary > li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 16px;
    float: none !important;
}
body.ls-confirm-new #booking-confirmation-summary > li > span {
    float: none !important;
    text-align: right;
    white-space: nowrap;
}
body.ls-confirm-new #booking-confirmation-summary-services {
    display: block !important;
    padding: 14px 0 !important;
}
body.ls-confirm-new #booking-confirmation-summary-services h5 {
    float: none !important;
    width: auto !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ls-muted) !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li {
    display: grid !important;
    grid-template-columns: 1fr auto;
    column-gap: 16px;
    row-gap: 2px;
    float: none !important;
    width: 100% !important;
    padding: 8px 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--ls-line) !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: var(--ls-ink) !important;
    text-align: left !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li:first-child {
    border-top: 0 !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li > span {
    order: 1;
    float: none !important;
    position: static !important;
    text-align: right;
    white-space: nowrap;
    font-weight: 600 !important;
    color: var(--ls-ink) !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li > em {
    order: 2;
    grid-column: 1 / -1;
    float: none !important;
    font-style: normal !important;
    font-size: 12.5px !important;
    color: var(--ls-muted) !important;
}

/* =========================================================================
 * Confirmation summary, compact add-ons (with js/ls-confirm.js)
 * ====================================================================== */
body.ls-confirm-new #booking-confirmation-summary > li#booking-confirmation-summary-services {
    display: block;
    padding: 16px 0 !important;
}
body.ls-confirm-new #booking-confirmation-summary-services h5.ls-addon-head {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
    margin: 0 0 6px !important;
    font-size: 14px !important;
    letter-spacing: 0;
    text-transform: none;
    color: var(--ls-ink) !important;
    font-weight: 600 !important;
}
body.ls-confirm-new .ls-addon-count {
    display: inline-block;
    min-width: 22px;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--ls-soft);
    font-style: normal;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    color: var(--ls-ink-2);
}
body.ls-confirm-new .ls-addon-total {
    font-weight: 700;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li {
    padding: 7px 0 !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li > span {
    font-weight: 500 !important;
    color: var(--ls-ink-2) !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li.is-free > span {
    color: var(--ls-ok-ink) !important;
}
body.ls-confirm-new #booking-confirmation-summary-services > ul > li > em {
    font-size: 12px !important;
}
body.ls-confirm-new #booking-confirmation-summary-services.is-collapsed .ls-addon-extra {
    display: none !important;
}
body.ls-confirm-new .ls-addon-toggle {
    display: inline-block;
    margin: 6px 0 0;
    padding: 6px 12px;
    border: 1px solid var(--ls-field);
    border-radius: 999px;
    background: #fff;
    font: 500 13px/1.2 var(--ls-sans);
    color: var(--ls-ink);
    cursor: pointer;
}
body.ls-confirm-new .ls-addon-toggle:hover {
    background: var(--ls-soft);
}

/* Smaller studio photo card above the summary */
body.ls-confirm-new .order-summary-widget .listing-item,
body.ls-confirm-new .order-summary-widget .listing-item img {
    height: 170px !important;
    min-height: 0 !important;
}
body.ls-confirm-new .order-summary-widget .listing-item img {
    width: 100%;
    object-fit: cover;
}

/* =========================================================================
 * Payment page: the original layout, with Love Studios colours only.
 * (Replaces the earlier two-column redesign, body.ls-pay-new, now unused.)
 * ====================================================================== */
body.ls-pay-colors {
    --ls-ink: #111111;
    --ls-muted: #5a5a5a;
    --ls-line: #e8e8e6;
}
body.ls-pay-colors button#place_order,
body.ls-pay-colors .nisl-pay-submit,
body.ls-pay-colors .woocommerce button.button.alt,
body.ls-pay-colors .woocommerce #payment #place_order {
    background: var(--ls-ink) !important;
    border-color: var(--ls-ink) !important;
    color: #fff !important;
    border-radius: 12px !important;
}
body.ls-pay-colors button#place_order:hover,
body.ls-pay-colors .nisl-pay-submit:hover {
    background: #2b2b2b !important;
}
body.ls-pay-colors .nisl-pay-wrapper a,
body.ls-pay-colors .woocommerce-terms-and-conditions-wrapper a,
body.ls-pay-colors .woocommerce-privacy-policy-text a {
    color: var(--ls-ink) !important;
    text-decoration: underline;
}
body.ls-pay-colors .nisl-pay-wrapper [style*="#f92000"],
body.ls-pay-colors .nisl-pay-wrapper [style*="#f30c0c"],
body.ls-pay-colors .nisl-pay-wrapper [style*="rgb(249, 32, 0)"] {
    color: var(--ls-ink) !important;
    border-color: var(--ls-ink) !important;
}
body.ls-pay-colors .nisl-pay-total-row.nisl-pay-grand-total,
body.ls-pay-colors .nisl-pay-total-row.nisl-pay-grand-total * {
    color: var(--ls-ink) !important;
}
body.ls-pay-colors input[type="radio"]:checked,
body.ls-pay-colors input[type="checkbox"]:checked {
    accent-color: var(--ls-ink);
}

/* Confirmation page: room around the add-ons button and the coupon */
body.ls-confirm-new .ls-addon-toggle {
    margin: 10px 0 6px;
}
body.ls-confirm-new #booking-confirmation-summary > li#booking-confirmation-summary-services {
    padding-bottom: 22px !important;
}
body.ls-confirm-new #booking-confirmation-summary li.booking-confirmation-coupons {
    display: block;
    padding: 22px 0 !important;
    border-top: 1px solid var(--ls-line) !important;
}
body.ls-confirm-new .booking-confirmation-coupons a#listeo-coupon-link {
    display: inline-block;
    margin-bottom: 12px;
}
body.ls-confirm-new .booking-confirmation-coupons .coupon-form {
    margin-bottom: 12px;
}
body.ls-confirm-new .booking-confirmation-coupons [class*="coupon-tag"],
body.ls-confirm-new .booking-confirmation-coupons .listeo-coupon-wrapper,
body.ls-confirm-new .booking-confirmation-coupons .coupon-code {
    margin-top: 10px;
}

/* Greyed-out Reserve still reacts to a click, so it can say why it's greyed out. */
body.ls-simple-flow .booking-widget a.book-now.disabled,
body.ls-simple-flow .booking-widget a.book-now.inactive {
    pointer-events: auto !important;
    cursor: not-allowed !important;
}

/* =========================================================================
 * Add-ons panel (js/ls-addons-drawer.js)
 * ====================================================================== */
body.ls-simple-flow.ls-ad-ready .ls-ad-hidden { display: none !important; }

body.ls-simple-flow .ls-ad-summary { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 18px; clear: both; }
body.ls-simple-flow .ls-ad-label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ls-muted); }
body.ls-simple-flow .ls-ad-open {
    display: flex; align-items: center; gap: 12px; width: 100%; min-height: 60px; padding: 12px 16px;
    border: 1px solid var(--ls-ink); border-radius: 14px; background: #fff; color: var(--ls-ink);
    font: inherit; text-align: left; cursor: pointer;
}
body.ls-simple-flow .ls-ad-open:hover { background: var(--ls-soft); }
body.ls-simple-flow .ls-ad-open-icon { flex-shrink: 0; width: 32px; height: 32px; border-radius: 10px; background: var(--ls-ink); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
body.ls-simple-flow .ls-ad-open-text { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
body.ls-simple-flow .ls-ad-open-text strong { font-weight: 600; font-size: 15px; }
body.ls-simple-flow .ls-ad-open-sub { font-size: 13px; color: var(--ls-muted); }
body.ls-simple-flow .ls-ad-picks { margin: 0; padding: 0; list-style: none; }
body.ls-simple-flow .ls-ad-picks li { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 0; padding: 10px 0; border-top: 1px solid var(--ls-line); font-size: 14px; line-height: 1.35; }
body.ls-simple-flow .ls-ad-pick-name { flex: 1 1 auto; min-width: 0; padding-top: 1px; line-height: 1.35; color: var(--ls-ink); overflow-wrap: anywhere; }
body.ls-simple-flow .ls-ad-pick-end { display: flex; align-items: center; gap: 2px; flex-shrink: 0; margin-top: -4px; font-weight: 600; line-height: 1.35; }
body.ls-simple-flow .ls-ad-pick-end > span { min-width: 44px; text-align: right; }
body.ls-simple-flow .ls-ad-picks .ls-ad-remove { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
body.ls-simple-flow .ls-ad-remove { width: 32px; height: 32px; border: 0; border-radius: 999px; background: transparent; color: var(--ls-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
body.ls-simple-flow .ls-ad-remove:hover { background: var(--ls-soft); color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-muted { color: var(--ls-muted); font-weight: 400; }

/* the panel */
body.ls-simple-flow .ls-ad { position: fixed; inset: 0; z-index: 2147483000; display: none; font-family: var(--ls-sans); color: var(--ls-ink); }
body.ls-simple-flow.ls-ad-is-open { overflow: hidden; }
body.ls-simple-flow.ls-ad-is-open .ls-ad { display: block; }
body.ls-simple-flow .ls-ad-backdrop { position: absolute; inset: 0; background: rgba(17,17,17,.45); }
body.ls-simple-flow .ls-ad-panel {
    position: absolute; top: 0; right: 0; bottom: 0; width: min(760px, 100%); background: #fff;
    display: flex; flex-direction: column; box-shadow: -24px 0 60px rgba(17,17,17,.18);
    animation: lsAdIn .22s ease-out;
}
@keyframes lsAdIn { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }
body.ls-simple-flow .ls-ad-head { padding: 22px 24px 0; display: flex; flex-direction: column; gap: 14px; border-bottom: 1px solid var(--ls-line); }
body.ls-simple-flow .ls-ad-head-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.ls-simple-flow .ls-ad-head h2 { margin: 0; font-family: var(--ls-display); font-size: 24px; font-weight: 700; letter-spacing: -.02em; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-x { width: 44px; height: 44px; border: 1px solid var(--ls-line); border-radius: 999px; background: #fff; color: var(--ls-ink); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
body.ls-simple-flow .ls-ad-search { display: flex; align-items: center; gap: 10px; min-height: 48px; margin: 0; padding: 0 14px; border: 1px solid var(--ls-field); border-radius: 14px; color: var(--ls-muted); }
body.ls-simple-flow .ls-ad-search input { flex: 1; min-width: 0; height: 46px; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; outline: none; background: transparent !important; font: inherit; font-size: 15px; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.ls-simple-flow .ls-ad-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 14px; scrollbar-width: thin; }
body.ls-simple-flow .ls-ad-tab { flex-shrink: 0; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--ls-field); background: #fff; color: var(--ls-ink); font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
body.ls-simple-flow .ls-ad-tab.is-on { background: var(--ls-ink); border-color: var(--ls-ink); color: #fff; }
body.ls-simple-flow .ls-ad-badge { min-width: 18px; padding: 0 6px; border-radius: 999px; background: var(--ls-ink); color: #fff; font-size: 12px; font-weight: 600; line-height: 18px; text-align: center; }
body.ls-simple-flow .ls-ad-tab.is-on .ls-ad-badge { background: #fff; color: var(--ls-ink); }

body.ls-simple-flow .ls-ad-body { flex: 1; overflow-y: auto; padding: 20px 24px 28px; display: flex; flex-direction: column; gap: 28px; }
body.ls-simple-flow .ls-ad-group h3 { margin: 0 0 12px; font-family: var(--ls-sans); font-size: 16px; font-weight: 600; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr)); gap: 12px; }
body.ls-simple-flow .ls-ad-card { display: flex; flex-direction: column; border: 1px solid var(--ls-line); border-radius: 16px; background: #fff; overflow: hidden; }
body.ls-simple-flow .ls-ad-card.is-on { border-color: var(--ls-ink); background: #fafaf9; }
body.ls-simple-flow .ls-ad-media { height: 120px; background: var(--ls-sand); display: flex; align-items: center; justify-content: center; overflow: hidden; }
body.ls-simple-flow .ls-ad-media img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
body.ls-simple-flow .ls-ad-noimg { font-family: var(--ls-display); font-size: 28px; font-weight: 700; color: #8a8780; }
body.ls-simple-flow .ls-ad-card-body { flex: 1; padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 10px; }
body.ls-simple-flow .ls-ad-card-text { display: flex; flex-direction: column; gap: 2px; }
body.ls-simple-flow .ls-ad-name { font-weight: 600; font-size: 14.5px; line-height: 1.3; }
body.ls-simple-flow .ls-ad-price { font-size: 13px; color: var(--ls-muted); }
body.ls-simple-flow .ls-ad-desc { font-size: 12.5px; line-height: 1.4; color: var(--ls-muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.ls-simple-flow .ls-ad-card-body > button, body.ls-simple-flow .ls-ad-card-body > .ls-ad-step { margin-top: auto; }
body.ls-simple-flow .ls-ad-add, body.ls-simple-flow .ls-ad-added { width: 100%; min-height: 44px; border-radius: 12px; font: inherit; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
body.ls-simple-flow .ls-ad-add { border: 1px solid var(--ls-ink); background: #fff; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-add:hover { background: var(--ls-soft); }
body.ls-simple-flow .ls-ad-added { border: 1px solid var(--ls-ink); background: var(--ls-ink); color: #fff; }
body.ls-simple-flow .ls-ad-step { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 0 4px; border-radius: 12px; background: var(--ls-ink); color: #fff; font-weight: 600; }
body.ls-simple-flow .ls-ad-step button { width: 40px; height: 40px; border: 0; border-radius: 10px; background: transparent; color: #fff; font-size: 20px; cursor: pointer; }
body.ls-simple-flow .ls-ad-step button:disabled { opacity: .35; cursor: not-allowed; }
body.ls-simple-flow .ls-ad-step-sm { min-height: 36px; margin-top: 6px; }
body.ls-simple-flow .ls-ad-step-sm button { width: 34px; height: 34px; }

body.ls-simple-flow .ls-ad-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 12px; }
body.ls-simple-flow .ls-ad-swatch-btn { width: 100%; display: flex; flex-direction: column; gap: 6px; padding: 8px; border-radius: 16px; border: 2px solid var(--ls-line); background: #fff; font: inherit; text-align: left; cursor: pointer; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-swatch.is-on .ls-ad-swatch-btn { border-color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-swatch-face { position: relative; display: block; height: 76px; border-radius: 10px; overflow: hidden; background: var(--ls-sand); }
body.ls-simple-flow .ls-ad-swatch-face img { width: 100%; height: 100%; object-fit: cover; }
body.ls-simple-flow .ls-ad-swatch-face .ls-ad-noimg { display: flex; height: 100%; align-items: center; justify-content: center; }
body.ls-simple-flow .ls-ad-tick { position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border-radius: 999px; background: var(--ls-ink); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
body.ls-simple-flow .ls-ad-swatch-name { font-size: 13px; font-weight: 500; line-height: 1.25; }

body.ls-simple-flow .ls-ad-empty { margin: 0; padding: 48px 0; text-align: center; color: var(--ls-muted); }
body.ls-simple-flow .ls-ad-foot { padding: 14px 24px; border-top: 1px solid var(--ls-line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; }
body.ls-simple-flow .ls-ad-foot > div:first-child { display: flex; flex-direction: column; font-size: 13px; }
body.ls-simple-flow .ls-ad-foot strong { font-size: 15px; }
body.ls-simple-flow .ls-ad-foot-end { display: flex; align-items: center; gap: 16px; }
body.ls-simple-flow .ls-ad-total { font-family: var(--ls-display); font-size: 22px; font-weight: 700; }
body.ls-simple-flow .ls-ad-done { min-height: 48px; padding: 0 28px; border: 0; border-radius: 14px; background: var(--ls-ink); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }

@media (max-width: 640px) {
    body.ls-simple-flow .ls-ad-panel { width: 100%; }
    body.ls-simple-flow .ls-ad-head, body.ls-simple-flow .ls-ad-body, body.ls-simple-flow .ls-ad-foot { padding-left: 16px; padding-right: 16px; }
    body.ls-simple-flow .ls-ad-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.ls-simple-flow .ls-ad-media { height: 96px; }
}

body.ls-simple-flow .ls-ad-hint { margin: 16px 0 10px; font-size: 13px; font-weight: 600; color: var(--ls-muted); }
body.ls-simple-flow .ls-ad-group > .ls-ad-hint:first-of-type:first-child { margin-top: 0; }

/* Time grid: open stretches of the day, above the squares */
body.ls-simple-flow .ls-tg-free { margin: 0 0 10px; font-size: 13.5px; line-height: 1.45; color: var(--ls-ok-ink); font-weight: 500; }
/* "Too short to start here" squares: free time, not crossed out, clickable for an explanation */
body.ls-new-design .ls-tg-slot.is-short:not(.is-selected) { cursor: help; color: #5a5a5a; text-decoration: none; }

/* Price lines above the total */
body.ls-simple-flow .ls-price-lines { margin: 0 0 -6px; padding: 14px 16px 8px; background: var(--ls-soft); border-radius: 14px 14px 0 0; display: flex; flex-direction: column; gap: 8px; }
body.ls-simple-flow .ls-pl-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 14px; }
body.ls-simple-flow .ls-pl-label { display: flex; flex-direction: column; color: var(--ls-ink); font-weight: 500; }
body.ls-simple-flow .ls-pl-sub { font-size: 12.5px; font-weight: 400; color: var(--ls-muted); }
body.ls-simple-flow .ls-pl-amt { font-weight: 600; white-space: nowrap; }
body.ls-simple-flow .ls-price-lines + .booking-estimated-cost { border-top-left-radius: 0 !important; border-top-right-radius: 0 !important; }

/* "We kept your booking choices" note */
body.ls-simple-flow .ls-restored { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: var(--ls-ok-bg); color: var(--ls-ok-ink); font-size: 14px; }

/* Confirmation page: back link */
body.ls-confirm-new .ls-edit-booking { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: -8px 0 28px; font-size: 14px; color: var(--ls-muted); }
body.ls-confirm-new .ls-edit-booking a { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 14px 0 10px; border: 1px solid var(--ls-field); border-radius: 999px; color: var(--ls-ink) !important; font-weight: 500; }
body.ls-confirm-new .ls-edit-booking a:hover { border-color: var(--ls-ink); }
body.ls-confirm-new .ls-steps a { color: inherit !important; text-decoration: underline; }

/* Reserve while the price is still updating */
body.ls-simple-flow .booking-widget a.book-now.ls-waiting { opacity: .75; cursor: progress !important; }

/* =========================================================================
 * Payment page: black, white and grey (original layout)
 * ====================================================================== */
body.ls-pay-colors .tax_label { display: none !important; }
body.ls-pay-colors .nisl-pay-product-price,
body.ls-pay-colors .nisl-pay-product-price *,
body.ls-pay-colors .nisl-pay-total-value,
body.ls-pay-colors .nisl-pay-total-value *,
body.ls-pay-colors .nisl-pay-total-row,
body.ls-pay-colors .nisl-pay-total-row[style*="color"],
body.ls-pay-colors .woocommerce-Price-amount { color: #111111 !important; }
body.ls-pay-colors .nisl-pay-total-label { color: #5a5a5a !important; }
body.ls-pay-colors .nisl-pay-total-row.nisl-pay-grand-total .nisl-pay-total-label { color: #111111 !important; }
body.ls-pay-colors .nisl-pay-product-qty { background: #f4f4f2 !important; color: #5a5a5a !important; }
body.ls-pay-colors button#place_order,
body.ls-pay-colors .nisl-pay-submit { background: #111111 !important; background-image: none !important; border-color: #111111 !important; color: #fff !important; }
body.ls-pay-colors button#place_order:hover,
body.ls-pay-colors .nisl-pay-submit:hover { background: #2b2b2b !important; }
body.ls-pay-colors .nisl-pay-wrapper a { color: #111111 !important; }
body.ls-pay-colors .ls-pay-timer {
    background: #f4f4f2 !important; background-image: none !important;
    border: 1px solid #e8e8e6 !important; box-shadow: none !important; color: #111111 !important;
}
body.ls-pay-colors .ls-pay-timer * { color: #111111 !important; }
body.ls-pay-colors .ls-pay-timer [class*="timer"], body.ls-pay-colors .ls-pay-timer [id*="timer"],
body.ls-pay-colors .ls-pay-timer [class*="count"], body.ls-pay-colors .ls-pay-timer [id*="count"] { color: #111111 !important; }

/* =========================================================================
 * Tip prompt at Reserve
 * ====================================================================== */
body.ls-simple-flow .ls-tip { position: fixed; inset: 0; z-index: 2147483001; display: flex; align-items: center; justify-content: center; padding: 16px; font-family: var(--ls-sans); color: var(--ls-ink); }
body.ls-simple-flow .ls-tip-backdrop { position: absolute; inset: 0; background: rgba(17,17,17,.5); }
body.ls-simple-flow .ls-tip-card { position: relative; width: min(460px, 100%); background: #fff; border-radius: 22px; padding: 28px 24px 20px; box-shadow: 0 24px 60px rgba(17,17,17,.22); animation: lsTipIn .18s ease-out; }
@keyframes lsTipIn { from { transform: translateY(8px) scale(.98); } to { transform: none; } }
body.ls-simple-flow .ls-tip-card h2 { margin: 0 0 8px; font-family: var(--ls-display); font-size: 24px; font-weight: 700; letter-spacing: -.02em; color: var(--ls-ink); }
body.ls-simple-flow .ls-tip-card p { margin: 0 0 20px; font-size: 15px; line-height: 1.5; color: var(--ls-muted); }
body.ls-simple-flow .ls-tip-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
body.ls-simple-flow .ls-tip-opt { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 72px; padding: 10px; border: 1px solid var(--ls-field); border-radius: 14px; background: #fff; color: var(--ls-ink); font: inherit; font-size: 13px; cursor: pointer; text-align: center; }
body.ls-simple-flow .ls-tip-opt strong { font-size: 18px; font-weight: 700; }
body.ls-simple-flow .ls-tip-opt:hover, body.ls-simple-flow .ls-tip-opt:focus-visible { border-color: var(--ls-ink); background: var(--ls-soft); outline: none; }
body.ls-simple-flow .ls-tip-skip { display: block; width: 100%; min-height: 48px; margin-top: 14px; border: 0; border-radius: 14px; background: transparent; color: var(--ls-muted); font: inherit; font-size: 15px; font-weight: 500; cursor: pointer; text-decoration: underline; }
body.ls-simple-flow .ls-tip-skip:hover { color: var(--ls-ink); }
body.ls-simple-flow.ls-tip-open { overflow: hidden; }

/* Confirmation page: remembered answers folded away */
body.ls-confirm-new .listeo-custom-booking-fields-wrapper.ls-folded { display: none !important; }
body.ls-confirm-new .ls-saved-answers { margin: 4px 15px 20px; padding: 14px 16px; border-radius: 14px; background: var(--ls-soft); font-size: 14px; color: var(--ls-ink-2); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
body.ls-confirm-new .ls-saved-answers button { min-height: 40px; padding: 0 16px; border: 1px solid var(--ls-field); border-radius: 999px; background: #fff; color: var(--ls-ink); font: inherit; font-weight: 500; cursor: pointer; }
body.ls-confirm-new .ls-saved-answers button:hover { border-color: var(--ls-ink); }

/* =========================================================================
 * New studio page layout (templates/ls-single-listing.php, ?layout=new)
 * ====================================================================== */
body.ls-new-layout .ls-nl { max-width: 1480px; margin: 0 auto; padding: 0 24px 96px; box-sizing: border-box; font-family: var(--ls-sans); color: var(--ls-ink); }
body.ls-new-layout .ls-nl .ls-el { margin: 0; }
body.ls-new-layout .ls-nl .ls-el .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
body.ls-new-layout .ls-nl-hero { padding-top: 8px; }
body.ls-new-layout .ls-nl-hero #titlebar { padding: 32px 0 24px !important; }

body.ls-new-layout .ls-nl-facts { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.ls-new-layout .ls-nl-facts li { padding: 8px 14px; border: 1px solid var(--ls-line); border-radius: 999px; font-size: 14px; color: var(--ls-ink-2); background: #fff; }

body.ls-new-layout .ls-nl-cols { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
body.ls-new-layout .ls-nl-main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 56px; }
body.ls-new-layout .ls-nl-side { flex: 0 1 460px; max-width: 460px; min-width: 0; align-self: flex-start; }
@media (max-width: 991px) {
    body.ls-new-layout .ls-nl-side { position: static; max-width: none; order: -1; }
    body.ls-new-layout .ls-nl-cols { gap: 40px; }
}

body.ls-new-layout .ls-nl-nav { position: sticky; top: 0; z-index: 20; display: flex; gap: 4px 24px; flex-wrap: wrap; padding: 14px 0; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--ls-line); }
body.ls-new-layout .ls-nl-nav a { font-size: 14px; font-weight: 500; color: var(--ls-ink-2) !important; text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
body.ls-new-layout .ls-nl-nav a:hover { color: var(--ls-ink) !important; }

body.ls-new-layout .ls-nl-section { scroll-margin-top: 72px; }
body.ls-new-layout .ls-nl-section > h2, body.ls-new-layout .ls-nl-head-row h2 { margin: 0 0 8px; font-family: var(--ls-display); font-size: 28px; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; color: var(--ls-ink); }
body.ls-new-layout .ls-nl-lead { margin: 0 0 20px; font-size: 15.5px; line-height: 1.55; color: var(--ls-muted); }
body.ls-new-layout .ls-nl-head-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
body.ls-new-layout .ls-nl-addons-btn { min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--ls-ink); color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
body.ls-new-layout .ls-nl-addons-btn:hover { background: #2b2b2b; }

body.ls-new-layout .ls-nl-prose { font-size: 16px; line-height: 1.7; color: var(--ls-ink-2); }
body.ls-new-layout .ls-nl-prose h2, body.ls-new-layout .ls-nl-prose h3 { font-family: var(--ls-display); font-size: 19px; font-weight: 600; margin: 24px 0 8px; color: var(--ls-ink); }
body.ls-new-layout .ls-nl-prose.is-clamped { max-height: 340px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
body.ls-new-layout .ls-nl-more { margin-top: 12px; min-height: 44px; padding: 0 18px; border: 1px solid var(--ls-field); border-radius: 999px; background: #fff; color: var(--ls-ink); font: inherit; font-weight: 500; cursor: pointer; }
body.ls-new-layout .ls-nl-more:hover { border-color: var(--ls-ink); }

body.ls-new-layout .ls-nl-amenities { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 12px 24px; }
body.ls-new-layout .ls-nl-amenities li { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--ls-ink); min-height: 40px; }
body.ls-new-layout .ls-nl-amenity-icon { width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px; background: var(--ls-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--ls-ink); }
body.ls-new-layout .ls-nl-amenity-icon svg { width: 18px; height: 18px; }

body.ls-new-layout .ls-nl-details { border-top: 1px solid var(--ls-line); margin-top: 12px; }
body.ls-new-layout .ls-nl-details details { border-bottom: 1px solid var(--ls-line); }
body.ls-new-layout .ls-nl-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; min-height: 60px; font-size: 16px; font-weight: 600; color: var(--ls-ink); }
body.ls-new-layout .ls-nl-details summary::-webkit-details-marker { display: none; }
body.ls-new-layout .ls-nl-details summary::after { content: '+'; font-size: 22px; font-weight: 400; color: var(--ls-muted); }
body.ls-new-layout .ls-nl-details details[open] summary::after { content: '−'; }
body.ls-new-layout .ls-nl-details-body { padding: 0 0 20px; font-size: 15px; line-height: 1.6; color: var(--ls-ink-2); }
body.ls-new-layout .ls-nl-details-body img { max-width: 100%; height: auto; border-radius: 12px; }

body.ls-new-layout .ls-nl-location { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 20px; border: 1px solid var(--ls-line); border-radius: 18px; }
body.ls-new-layout .ls-nl-address { margin: 0; font-size: 16px; font-weight: 600; }
body.ls-new-layout .ls-nl-map-link { min-height: 44px; padding: 0 18px; border: 1px solid var(--ls-ink); border-radius: 999px; display: inline-flex; align-items: center; color: var(--ls-ink) !important; font-weight: 500; text-decoration: none; }

body.ls-new-layout .ls-nl-reviews { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr)); gap: 16px; }
body.ls-new-layout .ls-nl-reviews li { padding: 20px; border: 1px solid var(--ls-line); border-radius: 18px; }
body.ls-new-layout .ls-nl-reviews p { margin: 0 0 12px; font-size: 15px; line-height: 1.55; }
body.ls-new-layout .ls-nl-reviews span { font-size: 13px; color: var(--ls-muted); }

/* the reused add-ons list sits under our own heading */
body.ls-new-layout #ls-addons #price-info-module { margin-top: 0; }

/* Wider page: the title/gallery and the theme's own boxes fill it too */
body.ls-new-layout .ls-nl .ls-el .elementor-section .elementor-container,
body.ls-new-layout .ls-nl .ls-el .e-con-inner,
body.ls-new-layout .ls-nl .ls-el .container { max-width: none !important; width: 100% !important; }
body.ls-new-layout .ls-nl-side .listing-widget, body.ls-new-layout .ls-nl-side .boxed-widget { width: 100%; box-sizing: border-box; }

/* ---------- New layout: hourly rates ---------- */
body.ls-new-layout .ls-rt { margin-top: 20px; }
body.ls-new-layout .ls-rt + .ls-rt { margin-top: 36px; }
body.ls-new-layout .ls-rt-days { margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ls-muted); }
body.ls-new-layout .ls-rt-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
body.ls-new-layout .ls-rt-card { position: relative; padding: 18px 18px 16px; border: 1px solid var(--ls-line); border-radius: 16px; background: #fff; }
body.ls-new-layout .ls-rt-card.tone-0 { background: #f3f7f2; border-color: #d5e3d2; }
body.ls-new-layout .ls-rt-card-top { display: flex; align-items: center; justify-content: space-between; min-height: 22px; }
body.ls-new-layout .ls-rt-dot { width: 12px; height: 12px; border-radius: 4px; }
body.ls-new-layout .ls-rt-tag { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; background: #1f4d2b; color: #fff; }
body.ls-new-layout .ls-rt-price { margin: 10px 0 6px; font-family: var(--ls-display, inherit); font-size: 34px; line-height: 1; font-weight: 700; letter-spacing: -.02em; color: var(--ls-ink); }
body.ls-new-layout .ls-rt-price span { margin-left: 2px; font-size: 15px; font-weight: 500; letter-spacing: 0; color: var(--ls-muted); }
body.ls-new-layout .ls-rt-times { list-style: none; margin: 0; padding: 0; font-size: 14px; line-height: 1.6; color: #444; }
body.ls-new-layout .ls-rt-line { margin-top: 22px; }
body.ls-new-layout .ls-rt-bar { display: flex; height: 12px; border-radius: 999px; overflow: hidden; gap: 2px; background: #fff; }
body.ls-new-layout .ls-rt-bar span { flex-basis: 0; min-width: 4px; }
body.ls-new-layout .ls-rt-ticks { position: relative; height: 22px; margin-top: 8px; font-size: 12px; color: var(--ls-muted); }
body.ls-new-layout .ls-rt-tick { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
body.ls-new-layout .ls-rt-tick.is-first { transform: none; }
body.ls-new-layout .ls-rt-tick.is-last { transform: translateX(-100%); }
/* Colour scale: cheapest green, then light grey to black. */
body.ls-new-layout .tone-0 .ls-rt-dot, body.ls-new-layout .ls-rt-bar .tone-0 { background: #5f9a6b; }
body.ls-new-layout .tone-1 .ls-rt-dot, body.ls-new-layout .ls-rt-bar .tone-1 { background: #c9c9c3; }
body.ls-new-layout .tone-2 .ls-rt-dot, body.ls-new-layout .ls-rt-bar .tone-2 { background: #7d7d78; }
body.ls-new-layout .tone-3 .ls-rt-dot, body.ls-new-layout .ls-rt-bar .tone-3 { background: #1a1a1a; }
@media (max-width: 640px) {
    body.ls-new-layout .ls-rt-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.ls-new-layout .ls-rt-price { font-size: 28px; }
    body.ls-new-layout .ls-rt-tick:not(.is-first):not(.is-last) { display: none; }
}

/* ---------- New layout: add-ons on the page ---------- */
body.ls-new-layout .ls-nl-menu-source { display: none !important; }
body.ls-new-layout .ls-sc { margin-top: 18px; }
body.ls-new-layout .ls-sc-loading { color: var(--ls-muted); }
body.ls-new-layout .ls-sc .ls-ad-cards { grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: 14px; }
body.ls-new-layout .ls-sc .ls-ad-media { height: 160px; }
body.ls-new-layout .ls-sc-body { margin-top: 4px; }
body.ls-new-layout .ls-sc-more { margin-top: 14px; min-height: 44px; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--ls-ink); background: #fff; color: var(--ls-ink); font: inherit; font-weight: 600; cursor: pointer; }
body.ls-new-layout .ls-sc-foot { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px; border-radius: 12px; background: #f4f4f1; font-size: 14px; }
body.ls-new-layout .ls-sc-review { border: 0; background: none; padding: 0; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; color: var(--ls-ink); }
@media (max-width: 640px) {
    body.ls-new-layout .ls-sc .ls-ad-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.ls-new-layout .ls-sc .ls-ad-media { height: 110px; }
}

/* ---------- New layout: phone booking bar ---------- */
body.ls-new-layout .ls-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; display: flex; align-items: center; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--ls-line); box-shadow: 0 -6px 24px rgba(0,0,0,.08); font-family: var(--ls-sans); }
body.ls-new-layout .ls-mbar[hidden] { display: none; }
body.ls-new-layout .ls-mbar-text { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
body.ls-new-layout .ls-mbar-when { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ls-ink); }
body.ls-new-layout .ls-mbar-price { font-size: 13px; color: var(--ls-muted); }
body.ls-new-layout .ls-mbar-btn { flex: 0 0 auto; min-height: 46px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--ls-ink); color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
body.ls-new-layout.ls-mbar-on { padding-bottom: 80px; }
body.ls-new-layout.ls-mbar-on #backtotop { bottom: 96px; }
body.ls-new-layout .booking-sticky-footer { display: none !important; }

/* Add-on cards: same height in a row (names and notes clamped). */
body.ls-simple-flow .ls-ad-card .ls-ad-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.5em; line-height: 1.25; }
body.ls-simple-flow .ls-ad-card .ls-ad-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Paper colors: the color fills the photo area; short name ("Sky Blue"). */
body.ls-simple-flow .ls-ad-cards.ls-ad-colors { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
body.ls-simple-flow .ls-ad-color .ls-ad-media { height: 96px; }
body.ls-simple-flow .ls-ad-color .ls-ad-media img { object-fit: cover; }
body.ls-simple-flow .ls-ad-color .ls-ad-name { -webkit-line-clamp: 1; min-height: 0; }
body.ls-new-layout .ls-sc .ls-ad-color .ls-ad-media { height: 110px; }
@media (max-width: 640px) {
    body.ls-simple-flow .ls-ad-cards.ls-ad-colors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Category chips on the page: a slim visible scrollbar shows there's more. */
body.ls-new-layout .ls-sc .ls-ad-tabs { scrollbar-width: auto; scrollbar-color: #9d9d97 #efefec; padding-bottom: 16px; }
body.ls-new-layout .ls-sc .ls-ad-tabs::-webkit-scrollbar { height: 12px; }
body.ls-new-layout .ls-sc .ls-ad-tabs::-webkit-scrollbar-thumb:hover { background: #6f6f6a; }
body.ls-new-layout .ls-sc .ls-ad-tabs::-webkit-scrollbar-track { background: #efefec; border-radius: 999px; }
body.ls-new-layout .ls-sc .ls-ad-tabs::-webkit-scrollbar-thumb { background: #9d9d97; border-radius: 999px; border: 2px solid #efefec; }

/* Add-ons: category headings stand out (drawer and page). */
body.ls-simple-flow .ls-ad-group { padding-top: 4px; }
body.ls-simple-flow .ls-ad-group + .ls-ad-group { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--ls-line); }
body.ls-simple-flow .ls-ad-group h3 { margin: 0 0 14px; font-family: var(--ls-display); font-size: 15px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-hint { font-weight: 700; color: var(--ls-ink); }
body.ls-simple-flow .ls-ad-tab { font-weight: 600; }

/* Confirmation page: as wide as the studio page, form and summary side by side. */
@media (min-width: 992px) {
    body.ls-confirm-new .container:has(#booking-confirmation),
    body.ls-confirm-new #titlebar .container { width: auto; max-width: 1480px; padding-left: 24px; padding-right: 24px; }
    body.ls-confirm-new .row:has(> .col-lg-8 #booking-confirmation) { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 56px; margin-left: 0; margin-right: 0; }
    body.ls-confirm-new .row:has(> .col-lg-8 #booking-confirmation)::before,
    body.ls-confirm-new .row:has(> .col-lg-8 #booking-confirmation)::after { display: none; }
    body.ls-confirm-new .row:has(> .col-lg-8 #booking-confirmation) > .col-lg-8 { flex: 1 1 auto; width: auto; max-width: none; float: none; padding-left: 0; padding-right: 0 !important; }
    body.ls-confirm-new .row:has(> .col-lg-8 #booking-confirmation) > .col-lg-4 { flex: 0 0 460px; width: 460px; max-width: 460px; float: none; padding-left: 0; padding-right: 0; }
}

/* Add-on steppers: the count sits centered on one line. */
body.ls-simple-flow .ls-ad-step { display: flex; align-items: center; }
body.ls-simple-flow .ls-ad-step > span { flex: 1; min-width: 0; text-align: center; white-space: nowrap; }
body.ls-simple-flow .ls-ad-step > button { flex: 0 0 auto; }
body.ls-simple-flow .ls-ad-color .ls-ad-step > span { font-size: 15px; font-weight: 700; }

/* Spaces booked by request: a request card instead of the booking card */
body.ls-request-only .ls-nl-side .booking-widget, body.ls-request-only .ls-nl-side #widget_booking_listings, body.ls-request-only .ls-nl-side .ls-tg, body.ls-request-only .ls-mbar, body.ls-request-only .ls-nl-side .listing-widget.widget_listing_owner ~ .booking-widget { display: none !important; }
.ls-req-card { position: sticky; top: 100px; margin: 0 0 24px; padding: 28px; border: 1px solid #e8e8e6; border-radius: 22px; background: #fff; box-shadow: 0 14px 40px rgba(0,0,0,.06); font-family: 'Inter', system-ui, sans-serif; }
.ls-req-eyebrow { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #a4572a; }
.ls-req-card h3 { margin: 0 0 10px; font-family: 'Inter Tight', 'Inter', sans-serif; font-size: 26px; font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #111; }
.ls-req-card p { margin: 0 0 16px; font-size: 15px; line-height: 1.55; color: #5a5a5a; }
.ls-req-facts { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ls-req-facts li { padding: 6px 12px; border-radius: 999px; background: #f4f4f2; font-size: 13px; font-weight: 500; color: #111; }
.ls-req-btn { display: flex; align-items: center; justify-content: center; min-height: 54px; margin: 0 0 10px; padding: 0 24px; border-radius: 999px; background: #111; color: #fff !important; font-size: 16px; font-weight: 600; text-decoration: none !important; }
.ls-req-btn:hover { background: #333; }
.ls-req-btn.is-ghost { background: #fff; color: #111 !important; border: 1px solid #cfcfcc; }
.ls-req-btn.is-ghost:hover { background: #f4f4f2; }
.ls-req-card .ls-req-fine { margin: 6px 0 0; font-size: 13px; text-align: center; color: #8a8a86; }
@media (max-width: 991px) { .ls-req-card { position: static; } }

/* Section links under the photos: grey pills */
body.ls-new-layout .ls-nl-nav { gap: 8px; padding: 12px 0; border-bottom: 0; }
body.ls-new-header.ls-new-layout .ls-nl-nav { top: 68px; }
body.ls-new-layout .ls-nl-nav a { min-height: 40px; padding: 0 18px; border-radius: 999px; background: #f4f4f2; color: #111 !important; font-size: 15px; font-weight: 500; transition: background .15s, color .15s; }
body.ls-new-layout .ls-nl-nav a:hover, body.ls-new-layout .ls-nl-nav a:focus-visible { background: #e8e8e5; color: #111 !important; }
body.ls-new-layout .ls-nl-nav a.is-current { background: #111; color: #fff !important; }
@media (max-width: 1024px) { body.ls-new-header.ls-new-layout .ls-nl-nav { top: 60px; } }
@media (max-width: 700px) {
    body.ls-new-layout .ls-nl-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    body.ls-new-layout .ls-nl-nav::-webkit-scrollbar { display: none; }
    body.ls-new-layout .ls-nl-nav a { flex: none; min-height: 38px; padding: 0 14px; font-size: 14px; }
}

/* Price and minimum pills next to the studio name: black and white */
body.ls-new-design #titlebar.listing-titlebar span.listing-pricing-tag, body.ls-new-design span.listing-pricing-tag { display: inline-flex !important; align-items: center; gap: 8px; min-height: 32px; padding: 0 14px !important; border: 1px solid #e8e8e6 !important; border-radius: 999px !important; background: #f4f4f2 !important; color: #111 !important; font-family: 'Inter', system-ui, sans-serif; font-size: 13.5px !important; font-weight: 500 !important; line-height: 1 !important; }
body.ls-new-design span.listing-pricing-tag i { position: static !important; display: inline-flex !important; align-items: center; justify-content: center; width: 20px !important; height: 20px !important; margin: 0 !important; border-radius: 50%; background: #111 !important; color: #fff !important; font-size: 10px !important; line-height: 1 !important; }

/* ---------- Request form on studio pages booked by request ---------- */
.ls-req-sec { scroll-margin-top: 130px; }
.ls-req-form { margin-top: 18px; padding: 28px; border: 1px solid #e8e8e6; border-radius: 22px; background: #fff; font-family: 'Inter', system-ui, sans-serif; }
.ls-req-form fieldset { border: 0; margin: 0 0 26px; padding: 0; min-width: 0; }
.ls-req-form legend { font-size: 18px; font-weight: 700; color: #111; margin: 0 0 14px; padding: 0; border: 0; width: auto; }
.ls-req-form .lsc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.ls-req-form .lsc-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: #3d3d3a; margin: 0; }
.ls-req-form .lsc-grid label.is-wide { grid-column: 1 / -1; }
.ls-req-form input, .ls-req-form select, .ls-req-form textarea { font: inherit; font-size: 15px; font-weight: 400; color: #111; border: 1px solid #dadad7; border-radius: 12px; padding: 0 12px; min-height: 46px; height: 46px; background: #fff; box-sizing: border-box; width: 100%; margin: 0; box-shadow: none; }
.ls-req-form textarea { height: auto; padding: 12px; line-height: 1.5; resize: vertical; }
.ls-req-form input:focus, .ls-req-form select:focus, .ls-req-form textarea:focus { outline: 2px solid #111; outline-offset: 1px; }
.ls-req-form select { display: block !important; visibility: visible !important; opacity: 1 !important; position: static !important; appearance: auto; -webkit-appearance: menulist; }
.ls-req-form .chosen-container, .ls-req-form .select2-container, .ls-req-form .nice-select { display: none !important; }
.ls-req-form .lsc-agree { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; font-weight: 400; color: #3d3d3a; margin: 0 0 20px; }
.ls-req-form .lsc-agree input { width: 18px; height: 18px; min-height: 0; margin-top: 2px; flex: 0 0 auto; }
.ls-req-form .lsc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ls-req-form .lsh-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 34px; border: 0; border-radius: 999px; background: #111; color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; }
.ls-req-form .lsh-btn:hover { background: #333; }
.ls-req-ok, .ls-req-err { margin-top: 16px; padding: 18px 20px; border-radius: 16px; font-size: 15px; line-height: 1.5; }
.ls-req-ok { background: #f1f5ef; border: 1px solid #d5e2cf; color: #23361c; }
.ls-req-err { background: #fbf1ec; border: 1px solid #efd3c4; color: #7a3a1c; margin-bottom: 0; }
@media (max-width: 640px) {
    .ls-req-form { padding: 18px; }
    .ls-req-form .lsc-grid { grid-template-columns: 1fr; }
}
.ls-req-form .lsc-grid { align-items: end; }

/* Small phones (iPhone SE and similar, 320-380px wide) */
@media (max-width: 400px) {
    #ls-listing .fc .fc-toolbar { flex-wrap: wrap; gap: 8px; justify-content: center; }
    #ls-listing .fc .fc-toolbar-chunk { display: flex; flex-wrap: wrap; justify-content: center; }
    #ls-listing .fc .fc-button { padding: 6px 10px; font-size: 13px; }
}
@media (max-width: 400px) {
    #ls-listing .fc .fc-col-header-cell-cushion { font-size: 10px; padding: 2px 0; white-space: normal; line-height: 1.2; }
    #ls-listing .fc .fc-timegrid-axis-cushion, #ls-listing .fc .fc-timegrid-slot-label-cushion { font-size: 11px; }
}

/* ---------- Phones: studio title block ----------
 * Studio badge and name side by side, address underneath; the price and
 * minimum pills are already in the row of facts under the photo, so on
 * phones they aren't repeated above the name. */
@media (max-width: 767px) {
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar {
        display: grid !important;
        grid-template-columns: 64px minmax(0, 1fr);
        grid-template-areas: "tags tags" "logo name" "addr addr";
        align-items: center;
        gap: 12px 14px;
        padding: 20px 0 18px !important;
    }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar .listing-titlebar-title { display: contents; }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar .listing-logo {
        grid-area: logo;
        width: 64px !important; height: 64px !important; padding: 8px !important;
        display: flex; align-items: center; justify-content: center;
        border-radius: 14px; box-sizing: border-box;
    }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar .listing-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar h1 {
        grid-area: name;
        font-size: 24px !important; line-height: 1.2 !important; font-weight: 600 !important;
        margin: 0 !important;
    }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar .listing-titlebar-tags { grid-area: tags; }
    body.ls-new-design .ls-nl-hero:has(.ls-nl-facts) #titlebar.listing-titlebar .listing-titlebar-tags { display: none !important; }
    body.ls-new-design .ls-nl-hero:has(.ls-nl-facts) #titlebar.listing-titlebar { grid-template-areas: "logo name" "addr addr"; }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar .listing-titlebar-title > span {
        grid-area: addr;
        display: block; margin: 0 !important;
        padding-top: 12px; border-top: 1px solid #ececea;
    }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar a.listing-address {
        display: flex; align-items: flex-start; gap: 8px;
        margin: 0 !important; font-size: 15px !important; line-height: 1.45; color: #5a5a5a !important;
    }
    body.ls-new-design .ls-nl-hero #titlebar.listing-titlebar a.listing-address i { margin: 3px 0 0 !important; color: #111; }
    body.ls-new-design .ls-nl-hero .ls-nl-facts { margin-top: 16px !important; gap: 8px !important; }
    body.ls-new-design .ls-nl-hero .ls-nl-facts li { padding: 7px 12px !important; font-size: 14px !important; }
}

/* Special prices for single dates (inc/ls-special-prices.php) */
body.ls-new-layout .ls-nl-special { margin: 18px 0 0; padding: 16px 18px; border: 1px solid #ece4d8; border-radius: 16px; background: #fbf8f3; }
body.ls-new-layout .ls-nl-special-h { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #a4572a; }
body.ls-new-layout .ls-nl-special ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
body.ls-new-layout .ls-nl-special li { display: inline-flex; gap: 8px; align-items: baseline; padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid #ece4d8; font-size: 14px; color: #3d3d3a; }
body.ls-new-layout .ls-nl-special li strong { color: #111; }
/* Hourly studios: "Booked" under booked start times */
body.ls-new-design .ls-tg-slot.is-booked::after { content: 'Booked'; display: block; margin-top: 2px; font-size: 9.5px; font-weight: 500; color: #8a8a86; }

/* Good to know: Parking, Cancellation and Rescheduling policies */
body.ls-new-layout .ls-gtk { display: grid; gap: 12px; margin-top: 14px; }
body.ls-new-layout .ls-gtk-card { border: 1px solid var(--ls-line); border-radius: 16px; background: #fff; overflow: hidden; }
body.ls-new-layout .ls-gtk-card summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 16px 18px; cursor: pointer; }
body.ls-new-layout .ls-gtk-card summary::-webkit-details-marker { display: none; }
body.ls-new-layout .ls-gtk-icon { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: var(--ls-soft); color: var(--ls-ink); }
body.ls-new-layout .ls-gtk-title { flex: 1 1 auto; font-family: var(--ls-display, 'Inter Tight', 'Inter', sans-serif); font-size: 17px; font-weight: 700; letter-spacing: -.01em; color: var(--ls-ink); }
body.ls-new-layout .ls-gtk-toggle { position: relative; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--ls-line); }
/* A chevron that turns up when the card is open */
body.ls-new-layout .ls-gtk-toggle { transition: background .2s, border-color .2s; }
body.ls-new-layout .ls-gtk-toggle::before { content: ''; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-right: 1.8px solid var(--ls-ink); border-bottom: 1.8px solid var(--ls-ink); transform: translate(-50%, -70%) rotate(45deg); transition: transform .25s ease; }
body.ls-new-layout .ls-gtk-toggle::after { display: none; }
body.ls-new-layout .ls-gtk-card[open] .ls-gtk-toggle::before { transform: translate(-50%, -30%) rotate(-135deg); }
body.ls-new-layout .ls-gtk-card summary:hover .ls-gtk-toggle { background: var(--ls-ink); border-color: var(--ls-ink); }
body.ls-new-layout .ls-gtk-card summary:hover .ls-gtk-toggle::before { border-color: #fff; }
body.ls-new-layout .ls-gtk-body { padding: 0 18px 18px 74px; }
body.ls-new-layout .ls-gtk-intro { margin: 0 0 10px; font-size: 15px; line-height: 1.6; color: var(--ls-ink-2); }
body.ls-new-layout .ls-gtk-list { counter-reset: gtk; margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 0; }
body.ls-new-layout .ls-gtk-list li { counter-increment: gtk; position: relative; padding: 12px 0 12px 38px; border-top: 1px solid var(--ls-line); font-size: 15px; line-height: 1.55; color: var(--ls-ink-2); }
body.ls-new-layout .ls-gtk-list li:first-child { border-top: 0; padding-top: 4px; }
body.ls-new-layout .ls-gtk-list li::before { content: counter(gtk); position: absolute; left: 0; top: 11px; width: 24px; height: 24px; border-radius: 50%; background: var(--ls-ink); color: #fff; font-size: 12px; font-weight: 700; line-height: 24px; text-align: center; }
body.ls-new-layout .ls-gtk-list li:first-child::before { top: 3px; }
body.ls-new-layout .ls-gtk-list li.is-rule { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 4px 20px; }
body.ls-new-layout .ls-gtk-when { font-weight: 600; color: var(--ls-ink); }
body.ls-new-layout .ls-gtk-what { color: var(--ls-ink-2); }
@media (max-width: 640px) {
    body.ls-new-layout .ls-gtk-card summary { padding: 14px; gap: 12px; }
    body.ls-new-layout .ls-gtk-body { padding: 0 14px 16px; }
    body.ls-new-layout .ls-gtk-list li.is-rule { grid-template-columns: 1fr; }
}

/* Booking card: "How long" right under the Booking heading, and one summary line above the times */
body.ls-new-design .booking-widget h3.ls-tg-title { margin-bottom: 12px !important; }
body.ls-new-design .ls-tg-top { margin: 0 0 16px; padding: 12px 14px; border: 1px solid var(--ls-field, #d6d6d2); border-radius: 14px; background: #fafaf8; }
body.ls-new-design .ls-tg-top .ls-tg-dur.is-top { margin: 0; }
body.ls-new-design .ls-tg-top .ls-tg-dur.is-top strong { font-family: var(--ls-display); font-size: 20px; font-weight: 700; }
body.ls-new-design .ls-tg-top .ls-tg-dur-note { margin: 8px 0 0; }
body.ls-new-design .ls-tg-summary { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 14px; padding: 12px 14px; border-radius: 14px; background: var(--ls-ink, #111); color: #fff; }
body.ls-new-design .ls-tg-summary .ls-tg-sum-day { font-family: var(--ls-sans, Inter, sans-serif); font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #cfcfcc; }
body.ls-new-design .ls-tg-summary .ls-tg-sum-time { font-family: var(--ls-display); font-size: 19px; font-weight: 700; letter-spacing: -0.01em; color: #fff; }
body.ls-new-design .ls-tg-summary.is-empty { background: #f1f1ee; color: var(--ls-ink, #111); }
body.ls-new-design .ls-tg-summary.is-empty .ls-tg-sum-day { color: #6b6b67; }
body.ls-new-design .ls-tg-summary.is-empty .ls-tg-sum-time { font-size: 16px; font-weight: 600; color: #3d3d3a; }

/* Room engine: "Combined space 14A + 14B" tag above the booking card */
.ls-room-tag { margin: 0 0 14px; padding: 12px 16px; border: 1px solid #e8e8ed; border-radius: 14px; background: #fff; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; line-height: 1.45; color: #6e6e73; }
.ls-room-tag span { display: inline-block; margin-right: 6px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1d1d1f; }

/* =========================================================================
 * Space page header, 4 designs (inc/ls-listing-head.php)
 * ====================================================================== */
.lsx-head { --k: #1d1d1f; font-family: 'Inter', system-ui, -apple-system, sans-serif; color: #1d1d1f; padding: 44px 0 32px; }
.lsx-head .lsx-head-eyebrow { margin: 0 0 10px; font-size: 15px; font-weight: 600; letter-spacing: -.01em; color: var(--k); }
.lsx-head .lsx-head-title { margin: 0; font-family: 'Inter Tight', 'Inter', system-ui, sans-serif; font-weight: 700; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.04; letter-spacing: -.035em; color: #1d1d1f; text-wrap: balance; }
.lsx-head .lsx-head-sub { margin: 14px 0 0; font-size: 17px; line-height: 1.45; color: #6e6e73; letter-spacing: -.01em; }
.lsx-head .lsx-head-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 26px; border-radius: 980px; background: #1d1d1f; color: #fff !important; font-size: 16px; font-weight: 600; text-decoration: none !important; letter-spacing: -.01em; transition: background .2s, transform .2s; white-space: nowrap; }
.lsx-head .lsx-head-btn:hover { background: #3a3a3c; }
.lsx-head .lsx-head-link { font-size: 17px; font-weight: 500; color: #0066cc !important; text-decoration: none !important; }
.lsx-head .lsx-head-link::after { content: ' ›'; }
.lsx-head .lsx-head-link:hover { text-decoration: underline !important; }

/* 1 Product */
.lsx-head.is-product { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; border-bottom: 1px solid #e8e8ed; margin-bottom: 28px; }
.lsx-head.is-product .lsx-head-main { max-width: 860px; }
.lsx-head.is-product .lsx-head-side { flex: none; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.lsx-head.is-product .lsx-head-price { margin: 0; font-family: 'Inter Tight', 'Inter', sans-serif; font-size: 28px; font-weight: 700; letter-spacing: -.02em; }
.lsx-head.is-product .lsx-head-price span { font-size: 15px; font-weight: 500; color: #6e6e73; letter-spacing: 0; }
.lsx-head.is-product .lsx-head-price.is-text { font-size: 19px; }
.lsx-head.is-product .lsx-head-min { margin: 0 0 8px; font-size: 14px; color: #6e6e73; }

/* 2 Badge */
.lsx-head.is-badge { display: flex; align-items: center; gap: 22px; padding: 18px 0 18px; }
.lsx-head.is-badge .lsx-head-tile { flex: none; width: 84px; height: 84px; border-radius: 20px; box-shadow: 0 1px 2px rgba(0,0,0,.06), 0 10px 30px rgba(0,0,0,.08); }
.lsx-head.is-badge .lsx-head-main { flex: 1; min-width: 0; }
.lsx-head.is-badge .lsx-head-title { font-size: clamp(21px, 2vw, 28px); font-weight: 600; letter-spacing: -.02em; }
.lsx-head.is-badge .lsx-head-sub { margin-top: 6px; font-size: 13px; }
.lsx-head.is-badge .lsx-head-side { flex: none; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.lsx-head.is-badge .lsx-head-price { margin: 0; font-family: 'Inter Tight', 'Inter', sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; }
.lsx-head.is-badge .lsx-head-price span { font-size: 14px; font-weight: 500; color: #6e6e73; letter-spacing: 0; }
.lsx-head.is-badge .lsx-head-price.is-text { font-size: 17px; }
.lsx-head.is-badge .lsx-head-min { margin: 0 0 6px; font-size: 13px; color: #6e6e73; }
.lsx-head.is-badge .lsx-head-btn { min-height: 38px; padding: 0 22px; font-size: 15px; }

/* 3 Centered */
.lsx-head.is-center { text-align: center; padding: 56px 0 40px; max-width: 900px; margin: 0 auto; }
.lsx-head.is-center .lsx-head-eyebrow { font-size: 17px; }
.lsx-head.is-center .lsx-head-title { font-size: clamp(38px, 5vw, 68px); }
.lsx-head.is-center .lsx-head-sub { font-size: 19px; color: #1d1d1f; margin-top: 18px; }
.lsx-head.is-center .lsx-head-sub.is-addr { margin-top: 4px; font-size: 17px; color: #6e6e73; }
.lsx-head.is-center .lsx-head-btns { margin-top: 26px; display: flex; align-items: center; justify-content: center; gap: 28px; flex-wrap: wrap; }

/* 4 Specs */
.lsx-head.is-specs { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.lsx-head.is-specs .lsx-head-main { max-width: 760px; }
.lsx-head.is-specs .lsx-head-specs { flex: none; display: flex; margin: 0; }
.lsx-head.is-specs .lsx-head-specs > div { padding: 0 28px; border-left: 1px solid #d2d2d7; }
.lsx-head.is-specs .lsx-head-specs > div:first-child { border-left: 0; padding-left: 0; }
.lsx-head.is-specs .lsx-head-specs > div:last-child { padding-right: 0; }
.lsx-head.is-specs dt { margin: 0 0 4px; font-size: 13px; font-weight: 600; color: #6e6e73; text-transform: uppercase; letter-spacing: .06em; }
.lsx-head.is-specs dd { margin: 0; font-family: 'Inter Tight', 'Inter', sans-serif; font-size: 40px; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: #1d1d1f; }
.lsx-head.is-specs dd small { font-size: 17px; font-weight: 500; letter-spacing: 0; color: #6e6e73; }

@media (max-width: 991px) {
    .lsx-head.is-product, .lsx-head.is-specs { flex-direction: column; align-items: flex-start; gap: 20px; }
    .lsx-head.is-product .lsx-head-side { flex-direction: row; align-items: center; text-align: left; gap: 16px; flex-wrap: wrap; }
    .lsx-head.is-product .lsx-head-min { margin: 0; }
}
@media (max-width: 640px) {
    .lsx-head { padding: 24px 0 20px; }
    .lsx-head .lsx-head-title { font-size: 32px; }
    .lsx-head .lsx-head-sub { font-size: 15px; }
    .lsx-head.is-badge { gap: 16px; align-items: flex-start; }
    .lsx-head.is-badge .lsx-head-tile { width: 72px; height: 72px; border-radius: 16px; }
    /* Badge header on phones: tile and title centered on each other, then one tidy price bar */
    .lsx-head.is-badge { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 16px; align-items: center; }
    .lsx-head.is-badge .lsx-head-main { align-self: center; }
    .lsx-head.is-badge .lsx-head-title { font-size: 22px; line-height: 1.12; }
    .lsx-head.is-badge .lsx-head-sub { margin-top: 6px; font-size: 13px; line-height: 1.35; }
    .lsx-head.is-badge .lsx-head-side { grid-column: 1 / -1; margin-top: 18px; padding: 12px 12px 12px 18px; border: 1px solid #e8e8ed; border-radius: 18px; background: #fafafa;
        display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 12px; row-gap: 2px; align-items: center; text-align: left; }
    .lsx-head.is-badge .lsx-head-price { grid-column: 1; grid-row: 1; font-size: 22px; line-height: 1.1; }
    .lsx-head.is-badge .lsx-head-min { grid-column: 1; grid-row: 2; margin: 0; font-size: 13px; line-height: 1.3; }
    .lsx-head.is-badge .lsx-head-btn { grid-column: 2; grid-row: 1 / span 2; min-height: 44px; padding: 0 28px; }
    /* Facts under the photos: centered rows */
    body.ls-new-layout .ls-nl-facts { justify-content: center; }
    .lsx-head.is-center { padding: 32px 0 24px; }
    .lsx-head.is-specs .lsx-head-specs > div { padding: 0 16px; }
    .lsx-head.is-specs dd { font-size: 30px; }
}

/* Links inside the studio description look like links (internal SEO links to the category pages etc.) */
body.ls-new-layout .ls-nl-prose a { color: var(--ls-ink); font-weight: 600; text-decoration: none; }
body.ls-new-layout .ls-nl-prose a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Search box above the add-on cards on the studio page */
body.ls-simple-flow .ls-sc-search { margin: 0 0 14px; background: #fff; }
body.ls-simple-flow .ls-sc-search:focus-within { border-color: var(--ls-ink); box-shadow: 0 0 0 3px rgba(29,29,31,.07); }
body.ls-simple-flow .ls-sc-search input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
body.ls-simple-flow .ls-sc-clear { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: #f0f0ed; color: var(--ls-ink); cursor: pointer; }
body.ls-simple-flow .ls-sc-clear[hidden] { display: none; }
body.ls-simple-flow .ls-sc-found { margin: 0 0 10px; font-size: 13px; color: var(--ls-muted); }
body.ls-simple-flow #ls-addons-showcase .ls-ad-group { margin: 0 0 18px; }
body.ls-simple-flow #ls-addons-showcase .ls-ad-group h3 { margin: 0 0 10px; font-size: 15px; font-weight: 600; }
body.ls-simple-flow .ls-sc-reset { padding: 0; border: 0; background: none; color: var(--ls-ink); font: inherit; text-decoration: underline; cursor: pointer; }
@media (max-width: 600px) { body.ls-simple-flow .ls-sc-search input { font-size: 16px; } }
