/*
 * Guest2Owner Professional Edition
 * Author: Brian Rolland
 * Version: 8.8.8
 * Build Date: 2026-07-11
 */
/* ====================================================
   Six-Month Availability Overview
==================================================== */

.availability-overview{
    background:#f8fafc;
}

.availability-overview-key{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:14px;
    margin:-35px auto 34px;
    color:#334155;
    font-size:14px;
    font-weight:700;
}

.availability-overview-key span{
    display:flex;
    align-items:center;
    gap:8px;
}

.availability-key-box{
    width:18px;
    height:18px;
    display:inline-block;
    border-radius:5px;
    border:1px solid #d1d5db;
}

.key-available{
    background:#ffffff;
}

.key-booked{
    background:repeating-linear-gradient(
        135deg,
        rgba(190,0,0,.55) 0px,
        rgba(190,0,0,.55) 2px,
        #f6f6f6 2px,
        #f6f6f6 7px
    );
}

.key-checkin{
    background:linear-gradient(135deg,#5b6570 0%,#5b6570 50%,#fff 50%,#fff 100%);
}

.key-checkout{
    background:linear-gradient(135deg,#fff 0%,#fff 50%,#5b6570 50%,#5b6570 100%);
}

.key-past{
    background:#e5e7eb;
    opacity:.85;
}

.six-month-availability{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
}

.availability-loading{
    grid-column:1 / -1;
    text-align:center;
    color:#64748b;
    font-weight:700;
}

.availability-month{
    background:#fff;
    border-radius:20px;
    box-shadow:0 15px 38px rgba(11,34,57,.10);
    padding:18px;
    border:1px solid #e5e7eb;
}

.availability-month h3{
    margin:0 0 14px;
    color:#0b2239;
    text-align:center;
    font-family:'Cormorant Garamond',serif;
    font-size:30px;
}

.availability-weekdays,
.availability-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:6px;
}

.availability-weekdays span{
    text-align:center;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.8px;
    color:#64748b;
    font-weight:900;
    padding-bottom:4px;
}

.availability-day{
    min-height:44px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#fff;
    border:1px solid #e5e7eb;
    color:#0b2239;
    font-size:13px;
    font-weight:800;
    position:relative;
    overflow:hidden;
}

.availability-day-number{
    position:relative;
    z-index:2;
    line-height:1;
}

.availability-day-rate{
    position:relative;
    z-index:2;
    display:block;
    margin-top:3px;
    font-size:10px;
    line-height:1;
    font-weight:900;
    color:#0f766e;
}

.availability-day.blocked .availability-day-rate,
.availability-day.booked .availability-day-rate,
.availability-day.booked_half_after_open .availability-day-rate,
.availability-day.past .availability-day-rate{
    display:none;
}

.availability-day.empty{
    background:transparent;
    border:none;
}

.availability-day.blocked,
.availability-day.booked{
    color:#777;
    background:#f6f6f6;
}

.availability-day.booked_half_after_open{
    color:#0b2239;
    background:#fff;
    border-color:#d1d5db;
}

.availability-day.blocked::after,
.availability-day.booked::after{
    content:"";
    position:absolute;
    inset:2px;
    border-radius:8px;
    pointer-events:none;
    background:repeating-linear-gradient(
        135deg,
        rgba(190,0,0,.50) 0px,
        rgba(190,0,0,.50) 2px,
        transparent 2px,
        transparent 7px
    );
}

.availability-day.booked_half_after_open::before{
    content:"";
    position:absolute;
    inset:2px;
    border-radius:8px;
    pointer-events:none;
    background:repeating-linear-gradient(
        135deg,
        rgba(190,0,0,.50) 0px,
        rgba(190,0,0,.50) 2px,
        transparent 2px,
        transparent 7px
    );
    clip-path:polygon(0 0, 100% 0, 100% 100%);
}

.availability-day.booked_half_after_open::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:145%;
    height:2px;
    border-radius:999px;
    background:rgba(71,85,105,.55);
    transform:translate(-50%,-50%) rotate(45deg);
    pointer-events:none;
}

.availability-day.checkin_only{
    background:linear-gradient(135deg,#5b6570 0%,#5b6570 50%,#fff 50%,#fff 100%);
    border-color:#d4af37;
}


.availability-day.turnover_both{
    background:linear-gradient(135deg,#5b6570 0%,#5b6570 33%,#fff 33%,#fff 67%,#5b6570 67%,#5b6570 100%);
    border-color:#d4af37;
}

.availability-day.checkout_only{
    background:linear-gradient(135deg,#fff 0%,#fff 50%,#5b6570 50%,#5b6570 100%);
    border-color:#d4af37;
}

.availability-day.past{
    background:#e5e7eb;
    color:#94a3b8;
}

@media(max-width:1100px){
    .six-month-availability{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:700px){
    .six-month-availability{
        grid-template-columns:1fr;
    }

    .availability-day{
        min-height:42px;
        font-size:12px;
    }

    .availability-day-rate{
        font-size:9px;
    }
}

.key-blocked{background:#f6f6f6;background-image:repeating-linear-gradient(135deg,rgba(190,0,0,.50) 0px,rgba(190,0,0,.50) 2px,transparent 2px,transparent 7px);}

.availability-day.not-bookable{opacity:.45;background:repeating-linear-gradient(45deg,#f4f4f4,#f4f4f4 5px,#e7e7e7 5px,#e7e7e7 10px);color:#777;}

.key-half-booked{background:#fff;position:relative;overflow:hidden;}
.key-half-booked::before{content:"";position:absolute;inset:1px;border-radius:4px;background:repeating-linear-gradient(135deg,rgba(190,0,0,.50) 0px,rgba(190,0,0,.50) 2px,transparent 2px,transparent 6px);clip-path:polygon(0 0,100% 0,100% 100%);}
.key-half-booked::after{content:"";position:absolute;top:50%;left:50%;width:145%;height:2px;background:rgba(71,85,105,.55);transform:translate(-50%,-50%) rotate(45deg);}
