/* Container and calendars */
.inline-booking-calendar .ibc-container{display:flex;gap:16px;align-items:stretch}
.inline-booking-calendar .ibc-calendar{flex:1;background:#fff;border-radius:10px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.05);display:flex;flex-direction:column}
.inline-booking-calendar .ibc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex:0 0 auto}
.inline-booking-calendar .ibc-header .ibc-title{font-weight:600}
.inline-booking-calendar .ibc-prev,.inline-booking-calendar .ibc-next{background:#f3f3f3;border:0;padding:6px 10px;border-radius:6px;cursor:pointer}

/* Make body stretch so both calendars match height */
.inline-booking-calendar .ibc-body{flex:1;display:flex;flex-direction:column;overflow:hidden}
.inline-booking-calendar .ibc-table{width:100%;border-collapse:collapse;flex:1;display:flex;flex-direction:column}
.inline-booking-calendar thead{flex:0 0 auto}
.inline-booking-calendar thead tr{display:flex;width:100%}
.inline-booking-calendar tbody{flex:1 1 auto;display:flex;flex-direction:column}
.inline-booking-calendar tbody tr{display:flex;flex:1}
.inline-booking-calendar th{color:#6b7280;font-weight:600;padding:8px 6px;text-align:center;font-size:12px;flex:1;display:flex;align-items:center;justify-content:center;text-transform:initial}
.inline-booking-calendar td{flex:1;min-height:30px;padding:6px;text-align:center;vertical-align:top;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.inline-booking-calendar td.empty{background:transparent}

.inline-booking-calendar .ibc-day{background:#fff;border-radius:6px;position:relative;z-index:2;cursor:pointer;display:flex;flex-direction:column;align-items:center}
.inline-booking-calendar .ibc-day .ibc-daynum{font-size:14px;color:#1f2937;margin-top:6px}
.inline-booking-calendar .ibc-day .ibc-price{font-size:9px;color:#6b7280;margin-top:2px;background:transparent;padding:0;border-radius:0;display:inline-block;font-weight:500}
.inline-booking-calendar .ibc-day.unavailable{opacity:.45;cursor:default}
/* dim overlay */
.inline-booking-calendar .ibc-day.unavailable::before{content:"";position:absolute;inset:0;border-radius:6px;background:rgba(255,255,255,0.6)}
/* unavailable slash using pseudo-element */
.inline-booking-calendar .ibc-day.unavailable::after{content:"/";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;color:#8b8b8b;pointer-events:none}

/* days from previous/next month */
.inline-booking-calendar .ibc-day.other-month{color:#9aa4b2;opacity:0.9}

/* (DOM slash removed; pseudo-element used) */

/* hover / available state */
.inline-booking-calendar .ibc-day:not(.unavailable):not(.disabled):hover{background:#FBF6EE;transform:translateY(-2px);transition:transform .12s ease,background .12s ease}
.inline-booking-calendar .ibc-day.selected{background:#ddc094;color:#fff}
.inline-booking-calendar .ibc-day.selected .ibc-price{background:transparent;color:#fff}

/* header styles to match design */
.inline-booking-calendar .ibc-header{padding:6px 8px}
.inline-booking-calendar .ibc-title{font-size:16px;text-align:center;color:#0f1724}
.inline-booking-calendar .ibc-prev,.inline-booking-calendar .ibc-next{width:36px;height:36px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;background:#fff;border:1px solid rgba(0,0,0,0.06);box-shadow:0 1px 2px rgba(0,0,0,0.04)}
.inline-booking-calendar .ibc-prev:hover,.inline-booking-calendar .ibc-next:hover{transform:translateY(-2px)}

/* weekday small muted */
.inline-booking-calendar thead th{color:#94a3b8;font-weight:600}

/* make day numbers small and centered */
.inline-booking-calendar .ibc-day .ibc-daynum{align-self:center;padding-left:0;text-align:center;font-weight:600}

/* range selection visuals */
.inline-booking-calendar .ibc-day.range-start{background:#ddc094;border-top-left-radius:5px;border-bottom-left-radius:5px;border-top-right-radius:0;border-bottom-right-radius:0}
.inline-booking-calendar .ibc-day.range-end{background:#ddc094;border-top-right-radius:5px;border-bottom-right-radius:5px;border-top-left-radius:0;border-bottom-left-radius:0}
.inline-booking-calendar .ibc-day.in-range{background:#fbf7f4}

/* Ensure only start/end cells have rounded corners. Clear radius for middle in-range cells */
.inline-booking-calendar .ibc-day.in-range{border-radius:0}
.inline-booking-calendar .ibc-day.in-range.range-start{border-top-left-radius:5px;border-bottom-left-radius:5px}
.inline-booking-calendar .ibc-day.in-range.range-end{border-top-right-radius:5px;border-bottom-right-radius:5px}

/* ensure single selected day uses same background */
.inline-booking-calendar .ibc-day.selected{background:#ddc094;color:#fff}
.inline-booking-calendar .ibc-day.selected .ibc-price{background:transparent;color:#fff}


/* disabled by min/max range */
.inline-booking-calendar .ibc-day.disabled{opacity:.28;cursor:not-allowed}

/* Create a visual gap between consecutive selected week rows without affecting layout.
    Using an absolutely-positioned pseudo-element on the second selected row avoids
    changing flex sizes and prevents the 'jerk' caused by margin/layout reflow. */
.inline-booking-calendar tbody{position:relative}
.inline-booking-calendar tbody tr{display:flex;flex:1;position:relative;overflow:visible;z-index:1}
.inline-booking-calendar tbody tr.ibc-week-selected + tr.ibc-week-selected::before{
    content:"";
    position:absolute;
    left:8px; /* inset a bit so the gap doesn't touch rounded edges */
    right:8px;
    height:6px; /* visual gap height */
    top:-6px; /* sit above the second row so it appears as a gap */
    background:#fff; /* match calendar background; adjust if you want a stripe color */
    border-radius:4px;
    z-index:0; /* behind cells so it doesn't visually cut into the cell background */
    pointer-events:none;
    opacity:1;
    transition:opacity .12s ease, transform .12s ease;
}

/* gap row styling (DOM-inserted) */
.inline-booking-calendar tbody tr.ibc-week-gap{display:flex;flex:0 0 auto;height:6px}
.inline-booking-calendar tbody tr.ibc-week-gap td.ibc-gap-cell{flex:1;padding:0;height:6px;background:transparent}

/* animations */
.inline-booking-calendar .ibc-container{transition:transform .32s ease,opacity .2s ease}
.inline-booking-calendar .ibc-anim[data-anim="left-next"]{transform:translateX(-8px)}
.inline-booking-calendar .ibc-anim[data-anim="left-prev"]{transform:translateX(8px)}
.inline-booking-calendar .ibc-anim[data-anim="right-next"]{transform:translateX(-8px)}
.inline-booking-calendar .ibc-anim[data-anim="right-prev"]{transform:translateX(8px)}

/* responsive: stack on smaller screens */
@media (max-width:800px){
    .inline-booking-calendar .ibc-container{flex-direction:column;align-items:stretch}
    .inline-booking-calendar .ibc-calendar{width:100%}
}

/* Custom tooltip styling */
.ibc-tooltip{position:absolute;z-index:9999;pointer-events:none;background:rgba(15,23,36,0.95);color:#fff;padding:6px 10px;border-radius:8px;font-size:13px;line-height:1;opacity:0;transform:translateY(-6px);transition:opacity .12s ease,transform .12s ease}
.ibc-tooltip.visible{opacity:1;transform:translateY(0)}
.ibc-tooltip::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:-6px;width:10px;height:10px;background:rgba(15,23,36,0.95);transform-origin:center;transform:translateX(-50%) rotate(45deg)}
