.calendar-widget{background:var(--c-bg);border:1px solid var(--c-border);border-top:3px solid #d97757;border-radius:12px;padding:2rem;box-shadow:0 1px 3px #3d39290f,0 8px 24px #3d39290a}@media(max-width:480px){.calendar-widget{padding:1.25rem 1rem}}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.calendar-header h3{margin:0;font-family:serif;font-size:1.25rem;letter-spacing:.03em;color:var(--c-text)}.nav-btn{background:none;border:2px solid var(--c-border);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:.9rem;color:var(--c-text);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.nav-btn:hover{border-color:#d97757;color:#d97757;background:#d977570f;transform:scale(1.1)}.nav-btn:active{transform:scale(.95)}.nav-btn:disabled{opacity:.25;cursor:default}.nav-btn:disabled:hover{background:none;border-color:var(--c-border);color:var(--c-text);transform:none}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--c-muted);margin-bottom:.5rem;padding:.5rem 0;border-bottom:1px solid var(--c-border)}.weekdays span{padding:.3rem 0}.days{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,auto);gap:4px;padding-top:.5rem}.day-cell{aspect-ratio:1.2;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;border-radius:6px;cursor:default;transition:all .15s ease;position:relative;color:var(--c-text);user-select:none;background:transparent;border:none}.day-cell.empty{visibility:hidden}.day-cell.past{color:var(--c-muted);font-weight:400;background:var(--c-surface);opacity:.5}.day-cell.available{background:#788c5d1f;color:#4a5a34;font-weight:600;cursor:pointer}.day-cell.available:hover{background:#788c5d40;box-shadow:inset 0 0 0 1.5px #788c5d66}.day-cell.available:active{background:#788c5d4d}.day-cell.limited{background:#d977571f;color:#8a4a30;font-weight:600;cursor:pointer}.day-cell.limited:hover{background:#d9775740;box-shadow:inset 0 0 0 1.5px #d9775766}.day-cell.limited:active{background:#d977574d}.day-cell.limited:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:#d97757}.day-cell.sold-out{background:#c0392b0f;color:var(--c-muted);cursor:not-allowed;font-weight:400;opacity:.45;text-decoration:line-through;text-decoration-color:#c0392b66}.day-cell.selected{background:#d97757;color:#fff;font-weight:700;cursor:pointer;box-shadow:0 0 0 2px #d9775759;z-index:1}.day-cell.selected:after{display:none}.day-cell.selected:hover{background:#c4654a}@media(max-width:480px){.day-cell{font-size:.8rem;aspect-ratio:1.1}}.calendar-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--c-border);font-size:.72rem;font-weight:500;color:var(--c-muted)}.calendar-legend .legend-item{display:flex;align-items:center;gap:.4rem}.calendar-legend .dot{width:16px;height:16px;border-radius:5px;flex-shrink:0}.calendar-legend .dot.available{background:#788c5d33;border:1px solid rgba(120,140,93,.35)}.calendar-legend .dot.limited{background:#d9775733;border:1px solid rgba(217,119,87,.35);position:relative}.calendar-legend .dot.limited:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:#d97757}.calendar-legend .dot.sold-out{background:#c0392b1a;border:1px solid rgba(192,57,43,.2);position:relative}.calendar-legend .dot.sold-out:before{content:"";position:absolute;top:50%;left:20%;width:60%;height:1px;background:#c0392b99;transform:rotate(-12deg)}@media(max-width:480px){.calendar-legend{gap:1rem;font-size:.65rem}}.calendar-message{margin-top:1.25rem;padding:.9rem 1.25rem;background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;font-size:.82rem;color:var(--c-muted);text-align:center;line-height:1.5}.calendar-widget.compact{max-width:100%;width:100%;padding:1.25rem 1.5rem;border-radius:10px;border-top-width:2px}.compact .calendar-header{margin-bottom:1rem}.compact .calendar-header h3{font-size:1.05rem;letter-spacing:.02em}.compact .nav-btn{width:30px;height:30px;font-size:.75rem;border-width:1.5px}.compact .weekdays{font-size:.58rem;letter-spacing:.1em;margin-bottom:.3rem;padding:.35rem 0}.compact .weekdays span{padding:.2rem 0}.compact .days{gap:3px;padding-top:.35rem}.compact .day-cell{aspect-ratio:1;font-size:.78rem;border-radius:5px}.compact .day-cell.limited:after{bottom:3px;width:3px;height:3px}@media(max-width:480px){.compact .day-cell{font-size:.72rem}}.compact .calendar-legend{margin-top:1rem;padding-top:.75rem;gap:1rem;font-size:.62rem}.compact .calendar-legend .dot{width:12px;height:12px;border-radius:3px}.compact .calendar-legend .dot.limited:after{width:2px;height:2px}.compact .calendar-legend .dot.sold-out:before{left:15%;width:70%}.compact .calendar-message{margin-top:.75rem;padding:.6rem 1rem;font-size:.75rem}.booking-bar{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--c-bg);border-top:2px solid #d97757;box-shadow:0 -4px 24px #3d39291f;padding:.85rem 1rem;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}.booking-bar[hidden]{display:block}.booking-bar.visible{transform:translateY(0)}.booking-bar-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:1.25rem}@media(max-width:600px){.booking-bar-inner{flex-direction:column;gap:.6rem;text-align:center}}.booking-bar-info{flex:1;min-width:0}.booking-bar-info .date-display{font-family:serif;font-weight:600;font-size:1.05rem;color:var(--c-text);margin:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-bar-info .availability-status{font-size:.78rem;margin:.15rem 0 0;line-height:1.3}.booking-bar-info .availability-status.available{color:#788c5d;font-weight:500}.booking-bar-info .availability-status.limited{color:#d97757;font-weight:600}.booking-bar .booking-form{flex-shrink:0}@media(max-width:600px){.booking-bar .booking-form{width:100%}}.booking-bar .book-now-btn{padding:.75rem 2.5rem;font-size:.95rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:#d97757;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 10px #d977574d;white-space:nowrap}.booking-bar .book-now-btn:hover{background:#c4654a;box-shadow:0 4px 16px #d9775766;transform:translateY(-1px)}.booking-bar .book-now-btn:active{transform:translateY(0)}@media(max-width:600px){.booking-bar .book-now-btn{width:100%;padding:.85rem 2rem}}
