/* ═══════════════════════════════════════════════════════════════════
   calendar.css — Availability calendar for Linardići Apartments
   Paired with calendar.js (window.initCalendar). Relies on the palette
   variables defined in apartment.css (--deep-navy, --sand, --cream …).
═══════════════════════════════════════════════════════════════════ */

/* Availability section */
.availability { background:var(--deep-navy); padding:130px 64px 40px; }
.avail-inner { max-width:960px; margin:0 auto; }
.avail-desc {
    font-size:15px; line-height:1.85; color:rgba(244,237,227,.68);
    margin-top:22px; margin-bottom:52px; max-width:560px;
}

/* Container */
.avail-cal { margin-top:52px; }

/* Nav row */
.cal-nav {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:28px;
}
.cal-nav-label {
    font-family:"Jost",sans-serif; font-size:10px; letter-spacing:.32em;
    text-transform:uppercase; color:rgba(244,237,227,.55);
}
.cal-nav-btns { display:flex; gap:6px; }
.cal-nav-btn {
    background:none; border:1px solid rgba(201,169,122,.4);
    color:rgba(244,237,227,.7); width:38px; height:38px;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:border-color .25s,color .25s; flex-shrink:0;
}
.cal-nav-btn:hover { border-color:var(--sand); color:var(--sand); }
.cal-nav-btn:disabled { opacity:.22; cursor:default; pointer-events:none; }

/* Two months */
.cal-months { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.cal-month {
    border:1px solid var(--border); padding:32px 28px;
    background:rgba(201,169,122,.025);
}

/* Month title */
.cal-month-title {
    font-family:"Cormorant Garamond",serif; font-size:20px;
    font-weight:300; letter-spacing:.08em; color:var(--cream);
    text-align:center; margin-bottom:22px; display:flex;
    align-items:baseline; justify-content:center; gap:.45em;
}
.cal-month-title-year {
    font-size:14px; color:rgba(201,169,122,.8);
    font-weight:300; letter-spacing:.06em;
}

/* Day-names header */
.cal-daynames {
    display:grid; grid-template-columns:repeat(7,1fr); margin-bottom:3px;
}
.cal-dayname {
    font-family:"Jost",sans-serif; font-size:9px; letter-spacing:.2em;
    text-transform:uppercase; color:rgba(244,237,227,.55);
    text-align:center; padding-bottom:7px;
}

/* Day grid */
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); }

/* Individual cell */
.cal-day {
    position:relative; aspect-ratio:1; display:flex;
    align-items:center; justify-content:center;
    font-family:"Jost",sans-serif; font-size:12px; font-weight:400;
    color:rgba(244,237,227,.92); cursor:default; user-select:none;
}

/* Range bar via ::before */
.cal-day::before {
    content:""; position:absolute;
    top:4px; bottom:4px; left:0; right:0; z-index:0; pointer-events:none;
}

/* Number badge */
.cal-day-n {
    position:relative; z-index:1;
    width:26px; height:26px; display:flex;
    align-items:center; justify-content:center; border-radius:50%;
}

/* ── Day state styles ── */

/* Past */
.cal-day--past { color:rgba(244,237,227,.3); pointer-events:none; }

/* Today */
.cal-day--today .cal-day-n {
    border:1px solid rgba(201,169,122,.55); color:var(--sand);
}

/* Available (hover feedback) */
.cal-day--available:not(.cal-day--past):hover .cal-day-n {
    background:rgba(201,169,122,.16);
}

/* Booked interior — full-width terracotta bar, sharp edges (connects neighbours) */
.cal-day--booked { color:rgba(244,237,227,.55); }
.cal-day--booked::before { background:rgba(181,103,74,.5); }

/* Check-in — right half bar, rounded on the left (entry edge) */
.cal-day--checkin { color:rgba(244,237,227,.85); }
.cal-day--checkin::before {
    left:50%; right:0; background:rgba(181,103,74,.5);
    border-radius:20px 0 0 20px;
}

/* Check-out — left half bar, rounded on the right (exit edge) */
.cal-day--checkout { color:rgba(244,237,227,.85); }
.cal-day--checkout::before {
    left:0; right:50%; background:rgba(181,103,74,.5);
    border-radius:0 20px 20px 0;
}

/* Turnover — split gradient: checkout tint left, checkin tint right */
.cal-day--turnover::before {
    background:linear-gradient(to right,
        rgba(181,103,74,.5) 50%,rgba(181,103,74,.5) 50%);
    border-radius:20px;
}
.cal-day--turnover .cal-day-n {
    background:rgba(201,169,122,.28);
    border:1px solid rgba(201,169,122,.6);
    color:var(--cream);
}

/* Legend */
.cal-legend {
    display:flex; gap:28px; flex-wrap:wrap;
    margin-top:32px; padding-top:24px; border-top:1px solid var(--border);
    align-items:center;
}
.cal-legend-item {
    display:flex; align-items:center; gap:10px;
    font-family:"Jost",sans-serif; font-size:10px;
    letter-spacing:.2em; text-transform:uppercase;
    color:rgba(244,237,227,.65);
}
.cal-legend-swatch {
    width:28px; height:11px; flex-shrink:0;
    border:1px solid rgba(201,169,122,.3);
}
.cal-legend-swatch--booked {
    background:rgba(181,103,74,.5); border-color:rgba(181,103,74,.6);
}
.cal-legend-swatch--turnover {
    background:rgba(201,169,122,.3); border-color:rgba(201,169,122,.55);
}

/* Loading / error */
.cal-state {
    padding:52px 0; text-align:center;
    font-family:"Jost",sans-serif; font-size:10px;
    letter-spacing:.36em; text-transform:uppercase;
    color:rgba(244,237,227,.5);
}
.cal-state--error { color:rgba(181,103,74,.8); }

/* ── Responsive ── */
@media (max-width:1000px) {
    .availability { padding:80px 24px 32px; }
    .cal-month { padding:24px 18px; }
}
@media (max-width:700px) {
    .cal-months { grid-template-columns:1fr; }
}
@media (max-width:480px) {
    .availability { padding:64px 16px 24px; }
    .cal-month { padding:18px 12px; }
    .cal-day { font-size:11px; }
    .cal-day-n { width:22px; height:22px; }
    .cal-dayname { font-size:8px; letter-spacing:.12em; }
    .cal-month-title { font-size:17px; }
    .cal-legend { gap:14px; }
    .avail-desc { font-size:14px; margin-bottom:36px; }
}
