.gac-calendar{
    width:100%;
    max-width:1200px;
    margin:40px auto;
    padding:30px;
    background:#fff;
    border-radius:20px;
    box-shadow:0 12px 35px rgba(0,0,0,.08);
}

.gac-navigation{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:30px;
}

.gac-nav-title{
    font-size:30px;
    font-weight:700;
    color:#243746;
}

.gac-nav-button{
    width:48px;
    height:48px;
    border-radius:50%;
    background:#f5f7fa;
    display:flex;
    justify-content:center;
    align-items:center;
    text-decoration:none;
    color:#243746;
    font-size:24px;
    transition:.25s;
}

.gac-nav-button:hover{
    background:#dfe8ef;
    transform:scale(1.08);
}

.gac-month-wrapper{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:35px;
}

.gac-month h3{
    text-align:center;
    margin-bottom:18px;
    color:#243746;
    font-size:24px;
}

.gac-table{
    width:100%;
    border-collapse:separate;
    border-spacing:8px;
}

.gac-table th{
    padding:10px;
    color:#8a97a5;
    font-size:14px;
    font-weight:600;
}

.gac-table td{
    width:14.28%;
    aspect-ratio:1;
    border-radius:12px;
    text-align:center;
    vertical-align:middle;
    position:relative;
    font-weight:600;
    transition:.25s;
    cursor:default;
}

.gac-day{
    background:#f4f5f7;
}

.gac-free{
    background:#d8efd6;
    color:#1c5d1b;
}

.gac-busy{
    background:#d96b6b;
    color:#fff;
}

.gac-day:hover{
    transform:scale(1.05);
}

.gac-number{
    position:relative;
    z-index:5;
}
.gac-today{
    outline:3px solid #1f6feb;
    outline-offset:-3px;
}

.gac-arrival::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:0;
    height:0;
    border-top:18px solid #2e8b57;
    border-right:18px solid transparent;
}

.gac-departure::after{
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:0;
    height:0;
    border-bottom:18px solid #d35454;
    border-left:18px solid transparent;
}

.gac-empty{
    background:transparent;
    box-shadow:none;
}

.gac-legend{
    display:flex;
    justify-content:center;
    gap:30px;
    flex-wrap:wrap;
    margin-top:35px;
    padding-top:25px;
    border-top:1px solid #ececec;
}

.gac-legend-item{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:15px;
    color:#495057;
}

.gac-box{
    width:20px;
    height:20px;
    border-radius:6px;
    display:inline-block;
}

.gac-box.free{
    background:#d8efd6;
}

.gac-box.busy{
    background:#d96b6b;
}

.gac-box.arrival{
    background:linear-gradient(
        135deg,
        #2e8b57 50%,
        #d8efd6 50%
    );
}

.gac-box.departure{
    background:linear-gradient(
        315deg,
        #d35454 50%,
        #d8efd6 50%
    );
}

@media (max-width:900px){

    .gac-calendar{
        padding:20px;
    }

    .gac-month-wrapper{
        grid-template-columns:1fr;
    }

    .gac-desktop-only{
        display:none;
    }

    .gac-nav-title{
        font-size:24px;
    }

    .gac-table{
        border-spacing:5px;
    }

    .gac-table td{
        font-size:14px;
    }

}

@media (max-width:600px){

    .gac-calendar{
        padding:15px;
    }

    .gac-nav-button{
        width:42px;
        height:42px;
        font-size:20px;
    }

    .gac-nav-title{
        font-size:20px;
    }

    .gac-month h3{
        font-size:20px;
    }

    .gac-table th{
        font-size:12px;
        padding:6px;
    }

    .gac-table td{
        border-radius:8px;
    }

    .gac-legend{
        gap:15px;
        font-size:13px;
    }

}