
.spb-wrap{--navy:#30445f;--blue:#8299b6;--border:#637188;position:relative;box-sizing:border-box;width:260px;border:1px solid var(--border);background:#fff;padding:29px 19px 18px;color:var(--navy);font-family:Georgia,"Times New Roman",serif}
.spb-wrap *{box-sizing:border-box}.spb-price{display:flex;gap:13px;margin:0 0 29px}.spb-price-rule{width:1px;height:77px;background:var(--border)}.spb-from{font-size:16px;margin-bottom:5px}.spb-rate{font-size:34px;line-height:1}.spb-per{font-size:16px;margin-top:5px}
.spb-fields{border:1px solid var(--border)}.spb-field{width:100%;min-height:39px;border:0;border-bottom:1px solid var(--border);background:#fff;color:var(--navy);font:16px Georgia,"Times New Roman",serif}.spb-date-field{display:flex;justify-content:space-between;align-items:center;padding:0 14px;cursor:pointer}.spb-fields .spb-field:last-child{border-bottom:0}
.spb-calendar-icon{width:15px;height:15px;border:1px solid #738399;border-radius:1px;position:relative;background:linear-gradient(to bottom,transparent 4px,#738399 4px,#738399 5px,transparent 5px)}.spb-calendar-icon:before,.spb-calendar-icon:after{content:"";position:absolute;top:-4px;width:1px;height:5px;background:#738399}.spb-calendar-icon:before{left:3px}.spb-calendar-icon:after{right:3px}
.spb-guests{display:flex;align-items:center;justify-content:space-between;padding-left:14px}.spb-guest-arrows{width:24px;display:flex;flex-direction:column;align-items:center}.spb-guest-arrows button{border:0;background:transparent;color:#7d8999;padding:0;height:12px;font-size:10px;cursor:pointer}
.spb-summary{padding:15px 14px 9px;font-size:15px}.spb-summary>div{display:flex;justify-content:space-between;line-height:1.45}.spb-total-row{font-size:16px}.spb-book-button{width:100%;border:0;display:flex;align-items:center;justify-content:center;height:45px;margin-top:23px;background:var(--blue);color:#fff;font:17px Georgia,"Times New Roman",serif;cursor:pointer}
.spb-calendar-popover{position:absolute;z-index:10001;width:275px;background:#fff;border:1px solid var(--border);padding:18px 16px 16px}.spb-calendar-popover[hidden]{display:none}.spb-arrow{position:absolute;right:-11px;top:17px;width:20px;height:20px;background:#fff;border-top:1px solid var(--border);border-right:1px solid var(--border);transform:rotate(45deg)}
.spb-cal-head{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;margin-bottom:12px}.spb-cal-head button{border:0;background:transparent;color:#65768c;font-size:20px;cursor:pointer}.spb-month-title{text-align:center;font-size:16px}.spb-weekdays,.spb-days{display:grid;grid-template-columns:repeat(7,1fr)}.spb-weekdays span{text-align:center;font-size:10px;padding-bottom:9px}.spb-day{border:1px solid #9aa5b3;border-right:0;border-bottom:0;height:27px;background:#fff;color:#6d7b8d;font:13px Georgia,"Times New Roman",serif;cursor:pointer}.spb-day:nth-child(7n){border-right:1px solid #9aa5b3}.spb-day.last-row{border-bottom:1px solid #9aa5b3}.spb-day.empty{border:0;background:transparent}.spb-day.disabled{color:#bcc3cb;cursor:not-allowed}.spb-day.selected{background:#7f95b1;color:#fff}.spb-day.in-range{background:#eef2f6}

.spb-modal-backdrop{position:fixed;inset:0;z-index:999999;background:rgba(30,30,24,.30);display:flex;align-items:flex-start;justify-content:center;padding:8px 16px;overflow:auto}.spb-modal-backdrop[hidden]{display:none}
.spb-modal{position:relative;width:min(982px,calc(100vw - 32px));min-height:690px;background:#fff;box-shadow:0 6px 30px rgba(0,0,0,.25);display:grid;grid-template-columns:2fr 1fr;color:#3d3d3d;font-family:Arial,Helvetica,sans-serif}
.spb-modal-close{position:absolute;right:11px;top:10px;z-index:2;border:0;background:transparent;font-size:24px;color:#777;cursor:pointer}
.spb-modal-main{padding:35px 35px 30px}.spb-order-summary{border-left:1px solid #ddd;padding:35px 35px 30px;background:#fff}.spb-modal h2{font-size:19px;margin:1px 0 9px;font-weight:700}.spb-section-line{height:1px;background:#d0d0d0;margin-bottom:27px}
.spb-form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;row-gap:16px}.spb-form-grid label{font-size:16px;display:flex;flex-direction:column;gap:10px}.spb-form-grid input,.spb-form-grid select,.spb-form-grid textarea{width:100%;border:1px solid #cfcfcf;background:#fff;min-height:31px;padding:6px 12px;font-size:14px;color:#555}.spb-form-grid textarea{height:62px;resize:vertical}.spb-form-grid select{color:#929da9}
.spb-policy-note{font-size:12px;margin:26px 0 23px;color:#555}.spb-policy-note a{color:#22a8e3}.spb-checkout-button{display:block;width:275px;height:40px;margin-left:auto;border:0;border-radius:22px;background:#31a7dd;color:#fff;font-weight:700;font-size:14px;cursor:pointer}.spb-form-message{margin:0 0 12px;padding:10px;background:#f2f6f8;font-size:14px}
.spb-property-image{display:block;width:100%;height:180px;object-fit:cover;margin-bottom:25px}.spb-image-placeholder{display:flex;align-items:center;justify-content:center;background:#eee;color:#888}
.spb-order-details>div,.spb-order-money>div{display:grid;grid-template-columns:82px 1fr;gap:10px;margin:0 0 9px;font-size:14px}.spb-order-details strong,.spb-order-money strong{text-align:left}.spb-order-money>div{grid-template-columns:1fr auto}.spb-order-divider{height:1px;background:#ddd;margin:18px 0}.spb-order-total{display:flex;justify-content:space-between;font-size:18px;font-weight:700}.spb-order-total strong{font-size:18px}

@media(max-width:760px){
 .spb-wrap{width:100%;max-width:320px}.spb-calendar-popover{width:min(285px,calc(100vw - 32px));left:0!important}.spb-arrow{display:none}
 .spb-modal{grid-template-columns:1fr}.spb-order-summary{border-left:0;border-top:1px solid #ddd}.spb-form-grid{grid-template-columns:1fr}.spb-checkout-button{width:100%}
}


/* v3: protect the calendar from theme / Elementor button styles */
.spb-calendar-popover{
    overflow:visible;
}
.spb-days{
    width:100%;
    min-width:0;
}
.spb-days .spb-day{
    min-width:0 !important;
    width:100% !important;
    max-width:none !important;
    padding:0 !important;
    margin:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    line-height:1 !important;
    appearance:none;
    -webkit-appearance:none;
}
.spb-days .spb-day.empty{
    min-width:0 !important;
    width:100% !important;
    padding:0 !important;
    margin:0 !important;
}
.spb-cal-head button{
    min-width:0 !important;
    width:30px !important;
    padding:0 !important;
    margin:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}


/* v6: force a complete visible border around every real calendar date cell.
   Uses inset lines so adjacent cells do not create thick double borders. */
.spb-calendar-popover .spb-days {
    gap: 0 !important;
    background: #fff !important;
}

.spb-calendar-popover .spb-days .spb-day:not(.empty) {
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow:
        inset 0 1px 0 #9aa5b3,
        inset 1px 0 0 #9aa5b3,
        inset -1px 0 0 #9aa5b3,
        inset 0 -1px 0 #9aa5b3 !important;
    background-clip: padding-box !important;
}

.spb-calendar-popover .spb-days .spb-day.empty {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.spb-calendar-popover .spb-days .spb-day.selected {
    background: #7f95b1 !important;
    color: #fff !important;
    box-shadow:
        inset 0 1px 0 #637188,
        inset 1px 0 0 #637188,
        inset -1px 0 0 #637188,
        inset 0 -1px 0 #637188 !important;
}

.spb-calendar-popover .spb-days .spb-day.in-range:not(.selected) {
    background: #eef2f6 !important;
}


/* v7 — uniform 1px calendar grid.
   Each cell draws ONLY its top + left edge.
   Right and bottom edges are added only where needed, preventing doubled 2px lines. */
.spb-calendar-popover .spb-days .spb-day:not(.empty) {
    border: 0 !important;
    border-top: 1px solid #9aa5b3 !important;
    border-left: 1px solid #9aa5b3 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
}

/* Last real date in each populated row gets the outside right edge. */
.spb-calendar-popover .spb-days .spb-day.row-last:not(.empty) {
    border-right: 1px solid #9aa5b3 !important;
}

/* Dates in the final populated row get the outside bottom edge. */
.spb-calendar-popover .spb-days .spb-day.final-date-row:not(.empty) {
    border-bottom: 1px solid #9aa5b3 !important;
}

.spb-calendar-popover .spb-days .spb-day.selected {
    background:#7f95b1 !important;
    color:#fff !important;
}


/* v8 — calendar rebuilt as a real HTML table for perfectly uniform borders */
.spb-calendar-popover .spb-calendar-table {
    width: 100%;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    table-layout: fixed;
    margin: 0 !important;
    background: #fff;
}

.spb-calendar-popover .spb-calendar-table thead th {
    border: 0 !important;
    padding: 0 0 9px !important;
    margin: 0 !important;
    background: transparent !important;
    color: #30445f !important;
    text-align: center !important;
    font: 10px Georgia, "Times New Roman", serif !important;
    font-weight: 400 !important;
    height: auto !important;
}

.spb-calendar-popover .spb-calendar-table tbody tr,
.spb-calendar-popover .spb-calendar-table tbody td {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent;
}

.spb-calendar-popover .spb-calendar-table tbody td {
    border: 1px solid #9aa5b3 !important;
    height: 27px !important;
    width: 14.285714%;
    vertical-align: middle;
    text-align: center;
}

.spb-calendar-popover .spb-calendar-table tbody td.spb-empty-cell {
    border: 0 !important;
    background: transparent !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day {
    display: block !important;
    width: 100% !important;
    height: 26px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
    color: #6d7b8d !important;
    font: 13px Georgia, "Times New Roman", serif !important;
    line-height: 26px !important;
    text-align: center !important;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.spb-calendar-popover .spb-calendar-table .spb-day.disabled {
    color: #bcc3cb !important;
    cursor: not-allowed;
}

.spb-calendar-popover .spb-calendar-table .spb-day.selected {
    background: #7f95b1 !important;
    color: #fff !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day.in-range:not(.selected) {
    background: #eef2f6 !important;
}


/* v9 — mirror the original Wix calendar's table structure */
.spb-calendar-body {
    width: 100%;
}

.spb-calendar-popover .spb-calendar-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.spb-calendar-popover .spb-calendar-table thead,
.spb-calendar-popover .spb-calendar-table tbody,
.spb-calendar-popover .spb-calendar-table tr {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.spb-calendar-popover .spb-calendar-table thead th {
    width: 14.285714% !important;
    height: 26px !important;
    padding: 0 0 8px !important;
    border: 0 !important;
    background: transparent !important;
    color: #30445f !important;
    font: 10px Georgia, "Times New Roman", serif !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    text-align: center !important;
    vertical-align: middle !important;
}

.spb-calendar-popover .spb-calendar-table tbody td {
    width: 14.285714% !important;
    height: 27px !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid #9aa5b3 !important;
    background: #fff !important;
    vertical-align: middle !important;
    text-align: center !important;
}

/* The original has seven cells per row even where no day is visible.
   Empty cells are structurally present, but their separators are hidden. */
.spb-calendar-popover .spb-calendar-table tbody td.spb-empty-cell {
    border-color: transparent !important;
    background: transparent !important;
}

.spb-calendar-popover .spb-calendar-table tbody td.spb-visible-cell {
    border-color: #9aa5b3 !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day {
    display: block !important;
    width: 100% !important;
    height: 26px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #6d7b8d !important;
    font: 13px/26px Georgia, "Times New Roman", serif !important;
    text-align: center !important;
    vertical-align: middle !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day:disabled {
    opacity: 1 !important;
    color: #b5bdc7 !important;
    background: transparent !important;
    cursor: default !important;
}

.spb-calendar-popover .spb-calendar-table td.spb-focused-cell {
    background: #7f95b1 !important;
}

.spb-calendar-popover .spb-calendar-table td.spb-focused-cell .spb-day {
    color: #fff !important;
    background: transparent !important;
}

.spb-calendar-popover .spb-calendar-table td.spb-range-cell {
    background: #eef2f6 !important;
}

/* Prevent any global WordPress/Elementor table styling from changing line weight. */
.spb-calendar-popover table,
.spb-calendar-popover th,
.spb-calendar-popover td {
    box-shadow: none !important;
    border-radius: 0 !important;
}


/* v10 — force genuine table layout and neutralize legacy .spb-days grid rules */
.spb-calendar-popover .spb-calendar-table {
    display: table !important;
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}

.spb-calendar-popover .spb-calendar-table thead {
    display: table-header-group !important;
}

.spb-calendar-popover .spb-calendar-table tbody.spb-days {
    display: table-row-group !important;
    width: auto !important;
    grid-template-columns: none !important;
    gap: 0 !important;
}

.spb-calendar-popover .spb-calendar-table tr {
    display: table-row !important;
    width: auto !important;
}

.spb-calendar-popover .spb-calendar-table th,
.spb-calendar-popover .spb-calendar-table td {
    display: table-cell !important;
    width: 14.285714% !important;
    max-width: 14.285714% !important;
}

.spb-calendar-popover .spb-calendar-table tbody td {
    height: 27px !important;
    padding: 0 !important;
    border: 1px solid #9aa5b3 !important;
    box-sizing: border-box !important;
}

.spb-calendar-popover .spb-calendar-table tbody td.spb-empty-cell {
    border-color: transparent !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day {
    display: block !important;
    width: 100% !important;
    height: 26px !important;
    line-height: 26px !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Keep the calendar fully inside its popover */
.spb-calendar-popover {
    width: 275px !important;
    padding: 18px 16px 16px !important;
}

.spb-calendar-body {
    width: 100% !important;
    overflow: visible !important;
}


/* v11 — date buttons have no border; hover uses requested color */
.spb-calendar-popover .spb-calendar-table .spb-day,
.spb-calendar-popover .spb-calendar-table .spb-day:hover,
.spb-calendar-popover .spb-calendar-table .spb-day:focus,
.spb-calendar-popover .spb-calendar-table .spb-day:active {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day:not(:disabled):hover {
    background: #788ca5 !important;
    color: #fff !important;
}

.spb-calendar-popover .spb-calendar-table .spb-day:not(:disabled):hover span {
    color: #fff !important;
}


/* v12 — remove the boxed-cell appearance.
   Date buttons have no border. Table cells use only shared separators. */
.spb-calendar-popover .spb-calendar-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.spb-calendar-popover .spb-calendar-table tbody td {
    border: 0 !important;
    border-right: 1px solid #9aa5b3 !important;
    border-bottom: 1px solid #9aa5b3 !important;
    background: #fff !important;
}

/* Top edge for the first populated row */
.spb-calendar-popover .spb-calendar-table tbody tr:first-child td.spb-visible-cell {
    border-top: 1px solid #9aa5b3 !important;
}

/* Left edge only on the first visible cell in a populated run */
.spb-calendar-popover .spb-calendar-table tbody tr td.spb-visible-cell:first-of-type {
    border-left: 1px solid #9aa5b3 !important;
}

/* When a row begins with empty cells, give the first visible date its left edge */
.spb-calendar-popover .spb-calendar-table tbody td.spb-empty-cell + td.spb-visible-cell {
    border-left: 1px solid #9aa5b3 !important;
}

/* Empty structural cells from the original-style table should not show separators */
.spb-calendar-popover .spb-calendar-table tbody td.spb-empty-cell {
    border: 0 !important;
    background: transparent !important;
}

/* Absolutely no border/outline/shadow on the clickable date itself */
.spb-calendar-popover .spb-calendar-table button.spb-day,
.spb-calendar-popover .spb-calendar-table button.spb-day:hover,
.spb-calendar-popover .spb-calendar-table button.spb-day:focus,
.spb-calendar-popover .spb-calendar-table button.spb-day:active {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* Requested hover state */
.spb-calendar-popover .spb-calendar-table button.spb-day:not(:disabled):hover {
    background: #788ca5 !important;
    color: #fff !important;
}

.spb-calendar-popover .spb-calendar-table button.spb-day:not(:disabled):hover span {
    color: #fff !important;
}
