/* Newbook Booking Widget Styles */

/* ========================================
   CSS Reset for Booking Widget
   Prevents host website styles from interfering
   ======================================== */

/* Reset all elements within the widget container */
#nbw-booking-form *,
#nbw-booking-form *::before,
#nbw-booking-form *::after,
.nbw-container *,
.nbw-container *::before,
.nbw-container *::after,
.flatpickr-calendar *,
.flatpickr-calendar *::before,
.flatpickr-calendar *::after {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    letter-spacing: unset;
    word-spacing: unset;
    text-transform: none;
    text-decoration: none;
    text-align: left;
    line-height: 1.5;
    background: transparent;
    height: unset;
}

/* Reset HTML5 display-role for older browsers */
#nbw-booking-form article, #nbw-booking-form aside, #nbw-booking-form details, #nbw-booking-form figcaption,
#nbw-booking-form figure, #nbw-booking-form footer, #nbw-booking-form header, #nbw-booking-form hgroup,
#nbw-booking-form menu, #nbw-booking-form nav, #nbw-booking-form section,
.nbw-container article, .nbw-container aside, .nbw-container details, .nbw-container figcaption,
.nbw-container figure, .nbw-container footer, .nbw-container header, .nbw-container hgroup,
.nbw-container menu, .nbw-container nav, .nbw-container section {
    display: block;
}

/* Reset lists */
#nbw-booking-form ol, #nbw-booking-form ul,
.nbw-container ol, .nbw-container ul {
    list-style: none;
}

/* Reset blockquotes and quotes */
#nbw-booking-form blockquote, #nbw-booking-form q,
.nbw-container blockquote, .nbw-container q {
    quotes: none;
}

#nbw-booking-form blockquote:before, #nbw-booking-form blockquote:after,
#nbw-booking-form q:before, #nbw-booking-form q:after,
.nbw-container blockquote:before, .nbw-container blockquote:after,
.nbw-container q:before, .nbw-container q:after {
    content: '';
    content: none;
}

/* Reset table */
#nbw-booking-form table,
.nbw-container table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* Reset form elements */
#nbw-booking-form input,
#nbw-booking-form textarea,
#nbw-booking-form select,
#nbw-booking-form button,
.nbw-container input,
.nbw-container textarea,
.nbw-container select,
.nbw-container button {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    margin: 0;
    padding: 0;
    border: 0;
    outline: none;
    background: none;
    color: inherit;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

#nbw-booking-form button,
.nbw-container button {
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    outline: inherit;
}

/* Reset links */
#nbw-booking-form a,
.nbw-container a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
}

#nbw-booking-form a:active,
#nbw-booking-form a:hover,
.nbw-container a:active,
.nbw-container a:hover {
    outline: 0;
}

/* Reset text elements */
#nbw-booking-form b,
#nbw-booking-form strong,
.nbw-container b,
.nbw-container strong {
    font-weight: bold;
}

#nbw-booking-form i,
#nbw-booking-form em,
.nbw-container i,
.nbw-container em {
    font-style: italic;
}

/* Reset headings */
#nbw-booking-form h1, #nbw-booking-form h2, #nbw-booking-form h3,
#nbw-booking-form h4, #nbw-booking-form h5, #nbw-booking-form h6,
.nbw-container h1, .nbw-container h2, .nbw-container h3,
.nbw-container h4, .nbw-container h5, .nbw-container h6 {
    font-size: 100%;
    font-weight: normal;
    margin: 0;
    padding: 0;
}

/* Reset paragraphs */
#nbw-booking-form p,
.nbw-container p {
    margin: 0;
    padding: 0;
}

/* Reset images */
#nbw-booking-form img,
.nbw-container img {
    border: 0;
    max-width: 100%;
    height: auto;
    display: inline-block;
    vertical-align: middle;
}

/* Reset SVG */
#nbw-booking-form svg,
.nbw-container svg {
    display: inline-block;
    vertical-align: middle;
}

/* Reset fieldsets */
#nbw-booking-form fieldset,
.nbw-container fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

/* Reset legend */
#nbw-booking-form legend,
.nbw-container legend {
    border: 0;
    padding: 0;
    white-space: normal;
}

/* Reset label */
#nbw-booking-form label,
.nbw-container label {
    cursor: pointer;
    margin: 0;
    padding: 0;
}

/* Remove default button styles */
#nbw-booking-form button::-moz-focus-inner,
#nbw-booking-form input::-moz-focus-inner,
.nbw-container button::-moz-focus-inner,
.nbw-container input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/* Remove number input spinners */
#nbw-booking-form input[type="number"]::-webkit-inner-spin-button,
#nbw-booking-form input[type="number"]::-webkit-outer-spin-button,
.nbw-container input[type="number"]::-webkit-inner-spin-button,
.nbw-container input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

#nbw-booking-form input[type="number"],
.nbw-container input[type="number"] {
    -moz-appearance: textfield;
}

/* Remove search input styling */
#nbw-booking-form input[type="search"]::-webkit-search-cancel-button,
#nbw-booking-form input[type="search"]::-webkit-search-decoration,
.nbw-container input[type="search"]::-webkit-search-cancel-button,
.nbw-container input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/* Reset radio and checkbox */
#nbw-booking-form input[type="radio"],
#nbw-booking-form input[type="checkbox"],
.nbw-container input[type="radio"],
.nbw-container input[type="checkbox"] {
    box-sizing: border-box;
    padding: 0;
}

/* Normalize line-height */
#nbw-booking-form,
.nbw-container {
    line-height: 1.5;
}

/* Reset focus styles - will be defined specifically where needed */
#nbw-booking-form *:focus,
.nbw-container *:focus {
    outline: none;
}

/* Ensure proper text rendering */
#nbw-booking-form,
.nbw-container {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ========================================
   End CSS Reset
   ======================================== */

:root {
    /* Colors */
    --nbw-primary-color: red;
    --nbw-primary-hover: color-mix(in srgb, var(--nbw-primary-color) 90%, black);
    --nbw-selected-color: var(--nbw-primary-color);
    --nbw-inrange: color-mix(in srgb, var(--nbw-primary-color) 10%, white);
    --nbw-tariff-label-color: color-mix(in srgb, var(--nbw-primary-color) 10%, white);
    --nbw-border-color: #dbdbdb;
    --nbw-gray: #9b9b9b; /* disabled button color */
    --nbw-background-white: #ffffff; /* input fields*/

    /* Messages */
    --nbw-warning-bg: #fff3cd;
    --nbw-warning-border: #ffc107;
    --nbw-warning-text: #856404;
    --nbw-error-bg: #f8d7da;
    --nbw-error-border: #f5c6cb;
    --nbw-error-text: #721c24;
    
    --nbw-required-color: #920000;
    --nbw-text-color: black;
    --nbw-days-color: color-mix(in srgb, var(--nbw-text-color) 50%, transparent);
    --nbw-label-color: var(--nbw-days-color);
    --nbw-white: white;
    --nbw-inrange-shadow: var(--nbw-inrange);
    
    /* Typography */
    --nbw-font-family: Arial, sans-serif;
    --nbw-font-size-base: 14px;
    --nbw-font-size-large: calc(var(--nbw-font-size-base) * 1.125);
    --nbw-font-size-small: calc(var(--nbw-font-size-base) * 0.725);
    --nbw-font-size-h3: calc(var(--nbw-font-size-base) * 1.8);
    
    /* Spacing */
    --nbw-border-radius: 6px;
    --nbw-border-radius-md: 4px;
    --nbw-day-border-radius: 6px; /* Control day rounding - use 50% for fully rounded, or px values for less rounding */
    --nbw-tariff-border-radius: var(--nbw-border-radius);
    --nbw-tariff-padding: 16px;
    --nbw-tariff-gap: 16px;
    --nbw-tariff-margin-bottom: 12px;
    --nbw-radio-margin: 16px;
    --nbw-price-font-size: 1.5em;
    --nbw-days-font-size: 0.8em;
    --nbw-tariff-label-font-size: 1em;
    --nbw-loader-size: 32px;
}

#nbw-booking-form,
.nbw-container {
    max-width: 100%;
    margin: 0 auto;
    font-family: var(--nbw-font-family);
    width: unset;
    /* display: flex; */
    flex-direction: column;
}

#nbw-booking-form .nbw-booking-widget,
.nbw-booking-widget {
    /* padding: 20px; */
    /* background: var(--nbw-background); */
    /* border: 1px solid var(--nbw-border-color); */
    /* border-radius: var(--nbw-border-radius-md); */
    text-align: left;
    width: 333px;
}

#nbw-booking-form .nbw-booking-widget h3,
.nbw-booking-widget h3 {
    margin-top: 0;
    font-size: var(--nbw-font-size-h3);
    margin-bottom: 10px;
}

/* Month Selector */
.nbw-month-selector {
    margin: 20px 0;

}
     .nbw-form-row.nbw-guest-details.nbw-show {
        display: flex;
    }

.nbw-month-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.nbw-selector {
    padding: 8px 12px;
    background: var(--nbw-primary-color);
    color: var(--nbw-white);
    text-decoration: none;
    border-radius: var(--nbw-border-radius);
    min-width: 40px;
    text-align: center;
}

.nbw-selector:hover {
    background: var(--nbw-primary-hover);
}

.nbw-select {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-border-radius);
    font-size: var(--nbw-font-size-base);
}

/* Calendar */

#nbw-booking-form .nbw-date-range-container .flatpickr-day.inRange,
.nbw-date-range-container .flatpickr-day.inRange, 
.nbw-date-range-container .flatpickr-day.prevMonthDay.inRange, 
.nbw-date-range-container .flatpickr-day.nextMonthDay.inRange, 
.nbw-date-range-container .flatpickr-day.today.inRange, 
.nbw-date-range-container .flatpickr-day.prevMonthDay.today.inRange, 
.nbw-date-range-container .flatpickr-day.nextMonthDay.today.inRange, 
.nbw-date-range-container .flatpickr-day:not(.endRange):not(.startRange):hover, 
.nbw-date-range-container .flatpickr-day.prevMonthDay:not(.endRange):not(.startRange):hover, 
.nbw-date-range-container .flatpickr-day.nextMonthDay:not(.endRange):not(.startRange):hover, 
.nbw-date-range-container .flatpickr-day:not(.endRange):not(.startRange):focus, 
.nbw-date-range-container .flatpickr-day.prevMonthDay:not(.endRange):not(.startRange):focus, 
.nbw-date-range-container .flatpickr-day.nextMonthDay:not(.endRange):not(.startRange):focus {
    background: var(--nbw-inrange);
    border-color:  var(--nbw-inrange)
}
#nbw-booking-form .nbw-date-range-container .flatpickr-day.selected,
.nbw-date-range-container .flatpickr-day.selected, 
#nbw-booking-form .nbw-date-range-container .flatpickr-day.startRange,
.nbw-date-range-container .flatpickr-day.startRange, 
.nbw-date-range-container .flatpickr-day.endRange, 
.nbw-date-range-container .flatpickr-day.selected.inRange, 
.nbw-date-range-container .flatpickr-day.startRange.inRange, 
.nbw-date-range-container .flatpickr-day.endRange.inRange, 
.nbw-date-range-container .flatpickr-day.selected:focus, 
.nbw-date-range-container .flatpickr-day.startRange:focus, 
.nbw-date-range-container .flatpickr-day.endRange:focus, 
.nbw-date-range-container .flatpickr-day.selected:hover, 
.nbw-date-range-container .flatpickr-day.startRange:hover, 
.nbw-date-range-container .flatpickr-day.endRange:hover, 
.nbw-date-range-container .flatpickr-day.selected.prevMonthDay, 
.nbw-date-range-container .flatpickr-day.startRange.prevMonthDay, 
.nbw-date-range-container .flatpickr-day.endRange.prevMonthDay, 
.nbw-date-range-container .flatpickr-day.selected.nextMonthDay, 
.nbw-date-range-container .flatpickr-day.startRange.nextMonthDay, 
.nbw-date-range-container .flatpickr-day.endRange.nextMonthDay {
    background: var(--nbw-primary-color) !important;
    border-color:  var(--nbw-primary-color) !important;
}

#nbw-booking-form .nbw-date-range-container .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
.nbw-date-range-container .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), 
#nbw-booking-form .nbw-date-range-container .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
.nbw-date-range-container .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), 
#nbw-booking-form .nbw-date-range-container .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)),
.nbw-date-range-container .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
    -webkit-box-shadow: -10px 0 0 var(--nbw-primary-color);
    box-shadow: -10px 0 0 var(--nbw-primary-color);
}

.nbw-availability-table {
    width: 100%;
    border-collapse: collapse;
    margin: 15px 0;
    background: var(--nbw-background-white);
}

.nbw-availability-table th,
.nbw-availability-table td {
    padding: 10px;
    text-align: center;
    border: 1px solid var(--nbw-border-light);
}

.nbw-availability-table th {
    background: var(--nbw-table-header-bg);
    font-weight: bold;
    font-size: var(--nbw-font-size-small);
}

.nbw-availability-table td.nbw-day {
    cursor: pointer;
    transition: background-color 0.2s;
}

.nbw-availability-table td.nbw-available {
    background: var(--nbw-available-bg);
}

.nbw-availability-table td.nbw-available:hover {
    background: var(--nbw-available-hover);
}

.nbw-availability-table td.nbw-booked {
    background: var(--nbw-booked-bg);
    color: var(--nbw-booked-text);
    cursor: not-allowed;
}

.nbw-availability-table td.nbw-selected {
    background: var(--nbw-selected-color) !important;
    color: var(--nbw-white);
}

.nbw-availability-table td.nbw-today {
    font-weight: bold;
    border: 2px solid var(--nbw-today-border);
}

.nbw-availability-table td.nbw-empty {
    background: var(--nbw-background-light);
    cursor: default;
}

/* Calendar Legend */
.nbw-calendar-legend {
    display: flex;
    gap: 15px;
    margin: 15px 0;
    flex-wrap: wrap;
}

.nbw-legend-item {
    display: inline-block;
    padding: 5px 10px;
    font-size: var(--nbw-font-size-small);
    border-radius: var(--nbw-border-radius);
}

.nbw-legend-item.nbw-available {
    background: var(--nbw-available-bg);
}

.nbw-legend-item.nbw-booked {
    background: var(--nbw-booked-bg);
}

.nbw-legend-item.nbw-selected {
    background: var(--nbw-selected-color);
    color: var(--nbw-white);
}

/* Booking Form */

#nbw-booking-form .nbw-form-row,
.nbw-form-row {
    margin-bottom: 15px;
    display: flex;
    gap: 15px;
}

#nbw-booking-form .nbw-form-row-small,
.nbw-form-row-small {
    max-width: 150px;
}

#nbw-booking-form .nbw-guests-row,
.nbw-guests-row {
    display: flex;
    gap: 10px;
}

#nbw-booking-form .nbw-form-group,
.nbw-form-group {
    flex: 1;
    position: relative;
    /* z-index: 1; */
}

#nbw-booking-form .nbw-form-group label,
.nbw-form-group label {
    display: block;
    /* margin-bottom: 5px; */
    font-weight: 400;
    font-size: var(--nbw-font-size-base);
    text-transform: uppercase;
    font-size: 12px;
    opacity: 0.7;
}

#nbw-booking-form .nbw-required,
.nbw-required {
    color: var(--nbw-required-color);
}

#nbw-booking-form .nbw-input,
.nbw-input {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-border-radius);
    font-size: var(--nbw-font-size-base);
    box-sizing: border-box;
}

#nbw-booking-form .nbw-input:focus,
.nbw-input:focus {
    outline: none;
    border-color: var(--nbw-primary-color);
}

/* Airbnb-style Guest Picker */
#nbw-booking-form .nbw-guests-trigger,
.nbw-guests-trigger {
    width: 100%;
    padding: unset;
    border: unset;
    /* border-radius: var(--nbw-border-radius); */
    background: unset;
    font-size: var(--nbw-font-size-base);
    text-align: left;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: border-color 0.2s;
}

#nbw-booking-form .nbw-guests-trigger:hover,
.nbw-guests-trigger:hover {
    border-color: var(--nbw-primary-color);
}

#nbw-booking-form .nbw-guests-trigger:focus,
.nbw-guests-trigger:focus {
    outline: none;
    border-color: var(--nbw-primary-color);
}

#nbw-booking-form .nbw-guests-trigger svg,
.nbw-guests-trigger svg {
    flex-shrink: 0;
    transition: transform 0.2s;
    margin-top: -15px;
}

#nbw-booking-form .nbw-guests-trigger.active svg,
.nbw-guests-trigger.active svg {
    transform: rotate(180deg);
}

#nbw-booking-form #nbw-guests-summary,
#nbw-guests-summary {
    color: var(--nbw-text-color);
}

#nbw-booking-form .nbw-guests-popover,
.nbw-guests-popover {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    background: var(--nbw-background-white);
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-border-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 1000;
    animation: nbwSlideDown 0.2s ease-out;
}

@keyframes nbwSlideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
#nbw-booking-form .nbw-guests-popover-content {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
#nbw-booking-form .nbw-guest-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* padding: 16px 0; */
    /* border-bottom: 1px solid var(--nbw-border-light); */
}

#nbw-booking-form .nbw-guest-row:last-child {
    border-bottom: none;
}

#nbw-booking-form .nbw-guest-info {
    flex: 1;
}

#nbw-booking-form .nbw-guest-label {
    font-weight: 700;
    font-size: calc(var(--nbw-font-size-base) * 1.1);
    margin-bottom: 4px;
    line-height: 1;
}

#nbw-booking-form .nbw-guest-description {
    font-size: var(--nbw-font-size-small);
    color: var(--nbw-label-color);
}

#nbw-booking-form .nbw-guest-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

#nbw-booking-form .nbw-guest-btn {
    width: 32px;
    height: 32px;
    border: 1px solid var(--nbw-border-color);
    border-radius: 50%;
    background: var(--nbw-background-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    padding: 0;
}

#nbw-booking-form .nbw-guest-btn:hover:not(:disabled) {
    border-color: var(--nbw-primary-color);
    background: var(--nbw-background-light);
}

#nbw-booking-form .nbw-guest-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

#nbw-booking-form .nbw-guest-count {
    min-width: 24px;
    text-align: center;
    font-size: var(--nbw-font-size-base);
    font-weight: 500;
}

/* Price Table */
#nbw-booking-form .nbw-price-wrapper {
    margin: 15px 0;
}

#nbw-booking-form .nbw-tariffs-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--nbw-background-white);
    margin: 15px 0;
}

#nbw-booking-form .nbw-tariffs-table th,
#nbw-booking-form .nbw-tariffs-table td {
    padding: 12px;
    border: 1px solid var(--nbw-border-color);
    text-align: left;
}

#nbw-booking-form .nbw-tariffs-table th {
    background: var(--nbw-table-header-bg);
    font-weight: bold;
}

#nbw-booking-form .nbw-tariffs-table tr.nbw-selected {
    background: var(--nbw-selected-light);
}

#nbw-booking-form .nbw-tariffs-table input[type="radio"] {
    margin-right: 8px;
}

#nbw-booking-form .nbw-tariffs-table label {
    cursor: pointer;
    font-weight: normal;
}

/* Button */
#nbw-booking-form .nbw-btn,
.nbw-btn {
    background: var(--nbw-primary-color);
    color: var(--nbw-white);
    padding: 12px 30px;
    border: none;
    border-radius: var(--nbw-border-radius);
    font-size: var(--nbw-font-size-large);
    font-weight: bold;
    cursor: pointer;
    width: 100%;
    font-family: var(--nbw-font-family);
    text-align: center;
}

#nbw-booking-form .nbw-btn:hover,
.nbw-btn:hover {
    background: var(--nbw-primary-hover);
}

#nbw-booking-form .nbw-btn:disabled,
.nbw-btn:disabled {
    background: var(--nbw-gray);
    cursor: not-allowed;
    opacity: 0.6;
}

/* Loading */
#nbw-booking-form .nbw-please-wait {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    background: var(--nbw-warning-bg);
    border: 1px solid var(--nbw-warning-border);
    border-radius: var(--nbw-border-radius);
    margin-top: 10px;
}

#nbw-booking-form .nbw-loading {
    text-align: center;
    padding: 20px;
}

/* Messages */
#nbw-booking-form .nbw-message,
#nbw-booking-form .nbw-error,
.nbw-message,
.nbw-error {
    padding: 12px;
    margin: 15px 0;
    border-radius: var(--nbw-border-radius);
}

#nbw-booking-form .nbw-message,
.nbw-message {
    background: var(--nbw-warning-bg);
    border: 1px solid var(--nbw-warning-border);
    color: var(--nbw-warning-text);
}

#nbw-booking-form .nbw-error,
.nbw-error {
    background: var(--nbw-error-bg);
    border: 1px solid var(--nbw-error-border);
    color: var(--nbw-error-text);
}

/* Responsive */
@media (max-width: 768px) {
    #nbw-booking-form .nbw-form-row,
    #nbw-booking-form .nbw-guests-row {
        flex-direction: column;
    }

    #nbw-booking-form .nbw-form-row-small {
        max-width: 100%;
    }

    #nbw-booking-form .nbw-calendar-legend {
        flex-direction: column;
        gap: 5px;
    }

    #nbw-booking-form .nbw-availability-table th,
    #nbw-booking-form .nbw-availability-table td {
        padding: 8px 4px;
        font-size: var(--nbw-font-size-small);
    }
}

/* Flatpickr Custom Styles for Availability */
#nbw-booking-form .nbw-date-range-container,
.nbw-date-range-container {
    min-width: 307.88px; /* Flatpickr default width */
    min-height: 307.88px; /* Flatpickr default height */
    z-index: 1;
    padding: 12px;
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-border-radius);
    background: var(--nbw-background-white);
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar,
#nbw-date-range + .flatpickr-calendar {
    box-shadow: none !important;
    border: unset;
    /* padding: 8px; */
}

/* Make year selector display-only (not editable) */
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-current-year input,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .numInput,
#nbw-date-range + .flatpickr-calendar .flatpickr-current-year input,
#nbw-date-range + .flatpickr-calendar .numInput {
    pointer-events: none !important;
    background: transparent !important;
    border: none !important;
    color: inherit !important;
    cursor: default !important;
    font-weight: bold;
    padding: 0 0 0 .5ch;
    margin: 0;
}

/* Day border radius control */
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day,
#nbw-date-range + .flatpickr-calendar .flatpickr-day {
    border-radius: var(--nbw-day-border-radius) !important;
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.inRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.inRange {
    border-radius: 0 !important;
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.selected.endRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.startRange.endRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar  .flatpickr-day.endRange.endRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.selected.endRange, #nbw-date-range + .flatpickr-calendar .flatpickr-day.startRange.endRange, #nbw-date-range + .flatpickr-calendar  .flatpickr-day.endRange.endRange {
    border-radius: 0 var(--nbw-day-border-radius) var(--nbw-day-border-radius) 0 !important;
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.selected.startRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.startRange.startRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.endRange.startRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.selected.startRange, #nbw-date-range + .flatpickr-calendar .flatpickr-day.startRange.startRange, #nbw-date-range + .flatpickr-calendar .flatpickr-day.endRange.startRange {
    border-radius: var(--nbw-day-border-radius) 0 0 var(--nbw-day-border-radius) !important;
}

/* Saturday rounding - right side only when selected or in range */
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.flatpickr-disabled:nth-child(7n),
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).selected,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.flatpickr-disabled:nth-child(7n),
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).selected,

#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).endRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).inRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).endRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).inRange {
    border-radius: 0 var(--nbw-day-border-radius) var(--nbw-day-border-radius) 0 !important;
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).startRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).startRange {
     border-radius: var(--nbw-day-border-radius) !important;
}

#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.inRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.inRange {
    border-radius: 0;
    -webkit-box-shadow: -5px 0 0 var(--nbw-inrange), 5px 0 0 var(--nbw-inrange);
    box-shadow: -5px 0 0 var(--nbw-inrange), 5px 0 0 var(--nbw-inrange);
}

/* Sunday rounding - left side only when selected or in range */
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.flatpickr-disabled:nth-child(7n+1),
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).selected,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).startRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).endRange,
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).inRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.flatpickr-disabled:nth-child(7n+1),
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).selected,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).startRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).endRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).inRange {
    border-radius: var(--nbw-day-border-radius) 0 0 var(--nbw-day-border-radius) !important;
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).endRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).endRange {
   border-radius: var(--nbw-day-border-radius) !important; 
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).inRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n+1).inRange {
    -webkit-box-shadow: -1px 0 0 var(--nbw-inrange), 5px 0 0 var(--nbw-inrange);
    box-shadow: -1px 0 0 var(--nbw-inrange), 5px 0 0 var(--nbw-inrange);
}
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).inRange,
#nbw-date-range + .flatpickr-calendar .flatpickr-day:nth-child(7n).inRange {
    -webkit-box-shadow: -5px 0 0 var(--nbw-inrange), 0 0 0 var(--nbw-inrange);
    box-shadow: -5px 0 0 var(--nbw-inrange), 0 0 0 var(--nbw-inrange);
}

/* Checkout-only dates - styled like endRange but not clickable after selection */
#nbw-booking-form #nbw-date-range + .flatpickr-calendar .flatpickr-day.selected.endRange.nbw-checkout-only,
#nbw-date-range + .flatpickr-calendar .flatpickr-day.selected.endRange.nbw-checkout-only {
    pointer-events: none !important;
    cursor: not-allowed !important
}

/* Add legend for Flatpickr */
#nbw-booking-form .nbw-flatpickr-legend {
    display: flex;
    gap: 15px;
    margin: 15px 0;
    padding: 10px;
    background: var(--nbw-background-white);
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-border-radius);
}

#nbw-booking-form .nbw-flatpickr-legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: var(--nbw-font-size-small);
}

#nbw-booking-form .nbw-flatpickr-legend-color {
    width: 20px;
    height: 20px;
    border-radius: var(--nbw-border-radius);
    border: 1px solid var(--nbw-border-color);
}

#nbw-booking-form .nbw-flatpickr-legend-color.available {
    background: var(--nbw-available-bg);
}

#nbw-booking-form .nbw-flatpickr-legend-color.booked {
    background: var(--nbw-booked-bg);
}

#nbw-booking-form .nbw-flatpickr-legend-color.selected {
    background: var(--nbw-selected-color);
}
#nbw-booking-form .nbw-form-row.nbw-guest-details {
        display: none;
}
#nbw-booking-form .nbw-form-row.nbw-guest-details.nbw-show {
    display: flex;
}
#nbw-booking-form .nbw-floating-label-group-fake {
    display: none;
}
/* Airbnb-style floating labels for input fields */
#nbw-booking-form .nbw-floating-label-group {
    position: relative;
    /* margin-bottom: 20px; */
}
#nbw-booking-form .nbw-floating-label-group input,
#nbw-booking-form .nbw-floating-label-group select,
#nbw-booking-form .nbw-floating-label-group textarea,
#nbw-booking-form .nbw-floating-label-group-button > button {
    width: 100%;
    padding: 23px 12px 8px 12px !important;
    font-size: var(--nbw-font-size-base);
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-border-radius) !important;
    background: var(--nbw-background-white);
    box-sizing: border-box;
    line-height: 1.5;
    font-family: var(--nbw-font-family);
    margin: 0 !important;
}
#nbw-booking-form .nbw-floating-label-group label {
    position: absolute;
    left: 16px;
    top: 18px;
    /* color: #888; */
    font-size: var(--nbw-font-size-base);
    background: transparent;
    pointer-events: none;
    transition: all 0.2s ease;
    font-size: 12px;
}
#nbw-booking-form .nbw-floating-label-group input:focus + label,
#nbw-booking-form .nbw-floating-label-group input:not(:placeholder-shown) + label,
#nbw-booking-form .nbw-floating-label-group select:focus + label,
#nbw-booking-form .nbw-floating-label-group select:not([value=""]) + label,
#nbw-booking-form .nbw-floating-label-group textarea:focus + label,
#nbw-booking-form .nbw-floating-label-group textarea:not(:placeholder-shown) + label,
#nbw-booking-form .nbw-floating-label-group-button > button > label {
    top: 8px;
    left: 8px;
    font-size: 11px !important;
    color: var(--nbw-label-color);
    /* background: var(--nbw-background-white); */
    padding: 0 4px;
    font-weight: 500;
}

/* Tariff selection styles */
#nbw-booking-form .nbw-tariff-label,
.nbw-tariff-label {
    display: flex;
    align-items: center;
    gap: var(--nbw-tariff-gap);
    padding: var(--nbw-tariff-padding);
    border: 1px solid var(--nbw-border-color);
    border-radius: var(--nbw-tariff-border-radius);
    margin-bottom: var(--nbw-tariff-margin-bottom);
    cursor: pointer;
    transition: border-color 0.2s;
}

#nbw-booking-form .nbw-tariff-label.nbw-tariff-selected,
.nbw-tariff-label.nbw-tariff-selected {
    border-color: var(--nbw-selected-color);
}

#nbw-booking-form .nbw-tariff-label.nbw-interactive,
.nbw-tariff-label.nbw-interactive {
    cursor: pointer;
}

#nbw-booking-form .nbw-tariff-label.nbw-default,
.nbw-tariff-label.nbw-default {
    cursor: default;
}

#nbw-booking-form .nbw-tariff-radio,
.nbw-tariff-radio {
    margin-right: var(--nbw-radio-margin);
}

#nbw-booking-form .nbw-tariff-content,
.nbw-tariff-content {
    flex: 1;
    display: grid;
    flex-wrap: wrap;
    justify-content: end;
    grid-template-columns: auto 1fr;
    column-gap: 1em;
    flex-grow: 1;
}

#nbw-booking-form .nbw-tariff-price,
.nbw-tariff-price {
    font-size: var(--nbw-price-font-size);
    font-weight: bold;
    line-height: 1.2;
    flex-grow: 1;
    text-align: right;
}

#nbw-booking-form .nbw-tariff-days,
.nbw-tariff-days {
    font-size: var(--nbw-days-font-size);
    color: var(--nbw-days-color);
    /* margin-bottom: 4px; */
    width: 100%;
    text-align: right;
    grid-column: 2;
}

#nbw-booking-form .nbw-tariff-name,
.nbw-tariff-name {
    font-size: var(--nbw-tariff-label-font-size);
    font-weight: normal;
    background: var(--nbw-tariff-label-color);
    border-radius: 10px;
    padding: 8px 10px 7px;
    font-size: 12px;
    display: inline-flex;
    line-height: 1.2;
    align-items: center;
    /* margin-right: auto; */
    text-align: center;
    grid-row: span 2;
    align-self: center;
}

/* Calendar loading overlay */
#nbw-booking-form .nbw-calendar-loading,
.nbw-calendar-loading {
    display: none;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    z-index: 10;
    align-items: center;
    justify-content: center;
    border-radius: var(--nbw-border-radius);
}

#nbw-booking-form .nbw-calendar-loading.nbw-show,
.nbw-calendar-loading.nbw-show {
    display: flex;
}

/* Loader image */
#nbw-booking-form .nbw-loader-img,
.nbw-loader-img {
    width: var(--nbw-loader-size);
    height: var(--nbw-loader-size);
}

/* Date range fake input */
#nbw-booking-form .nbw-date-range-fake {
    background: transparent;
    pointer-events: none;
    border: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
}

/* Guests trigger button */
#nbw-booking-form .nbw-guests-trigger {
    width: 100%;
}

/* Guests popover */
#nbw-booking-form .nbw-guests-popover {
    display: none;
}

/* Guest details */
#nbw-booking-form .nbw-guest-details {
    display: none;
}

#nbw-booking-form .nbw-guest-details.nbw-show {
    display: flex;
}

/* Loading */
#nbw-booking-form .nbw-loading {
    display: none;
}
#nbw-booking-form .nbw-date-range-container .flatpickr-current-month span.cur-month:hover,
.nbw-date-range-container .flatpickr-current-month span.cur-month:hover {
    background: unset !important;
}
#nbw-booking-form .nbw-date-range-container .numInputWrapper,
.nbw-date-range-container .numInputWrapper {
    background: unset !important;
    
}
#nbw-booking-form .nbw-date-range-container .numInputWrapper input,
.nbw-date-range-container .numInputWrapper input {
    pointer-events: none;
    font-weight: 400 !important;
}
#nbw-booking-form .nbw-date-range-container .numInputWrapper span:is(.arrowUp, .arrowDown),
.nbw-date-range-container .numInputWrapper span:is(.arrowUp, .arrowDown) {
    display: none !important;
}
#nbw-booking-form .nbw-date-range-container .flatpickr-months .flatpickr-prev-month:hover svg,
#nbw-booking-form .nbw-date-range-container .flatpickr-months .flatpickr-next-month:hover svg,
.nbw-date-range-container .flatpickr-months .flatpickr-prev-month:hover svg, 
.nbw-date-range-container .flatpickr-months .flatpickr-next-month:hover svg {
    fill: currentColor;
}
#nbw-booking-form .nbw-date-range-container .flatpickr-months .flatpickr-prev-month,
#nbw-booking-form .nbw-date-range-container .flatpickr-months .flatpickr-next-month,
.nbw-date-range-container .flatpickr-months .flatpickr-prev-month,
.nbw-date-range-container .flatpickr-months .flatpickr-next-month{
    padding:0;
    display: flex;
    align-items: center;
    min-width: 34px;
    justify-content: center;
    border-radius: var(--nbw-border-radius);
}
#nbw-booking-form .nbw-date-range-container .flatpickr-months .flatpickr-prev-month:hover,
#nbw-booking-form .nbw-date-range-container .flatpickr-months .flatpickr-next-month:hover,
.nbw-date-range-container .flatpickr-months .flatpickr-prev-month:hover, 
.nbw-date-range-container .flatpickr-months .flatpickr-next-month:hover {
    color: var(--nbw-primary-color);
    border: 1px solid var(--nbw-primary-color);
}
#nbw-booking-form .nbw-date-range-container .flatpickr-current-month,
.nbw-date-range-container .flatpickr-current-month {
    padding:0;
    display: flex;
    align-items:center;
    justify-content: center
}