/* ── Product cards ───────────────────────────────────────── */
.product-card {
    transition: transform .15s, box-shadow .15s;
    border-radius: .75rem !important;
}
.product-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.12) !important;
}
.product-img {
    height: 220px;
    object-fit: contain;
    background: #f8f9fa;
    padding: 12px;
}

/* ── Calendar legend dots ────────────────────────────────── */
.badge-dot {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 4px;
    vertical-align: middle;
}

/* ── Availability calendar ───────────────────────────────── */
.availability-calendar {
    font-size: .85rem;
}
.availability-calendar .cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}
.availability-calendar .cal-day-name {
    text-align: center;
    font-weight: 600;
    color: #666;
    padding: 4px 0;
    font-size: .75rem;
}
.availability-calendar .cal-day {
    text-align: center;
    padding: 6px 2px;
    border-radius: 4px;
    cursor: pointer;
    font-size: .8rem;
    transition: opacity .1s;
}
.availability-calendar .cal-day.available   { background: #d1fae5; color: #065f46; }
.availability-calendar .cal-day.unavailable { background: #fee2e2; color: #7f1d1d; cursor: not-allowed; }
.availability-calendar .cal-day.closed      { background: #fef9c3; color: #713f12; cursor: not-allowed; }
.availability-calendar .cal-day.past        { background: #f3f4f6; color: #9ca3af; cursor: default; }
.availability-calendar .cal-day.selected-start,
.availability-calendar .cal-day.selected-end { background: #2563eb !important; color: #fff !important; }
.availability-calendar .cal-day.in-range    { background: #bfdbfe; color: #1e40af; }
.availability-calendar .cal-day.empty       { background: transparent; cursor: default; }
.availability-calendar .cal-day.hover-start { background: #93c5fd !important; color: #1e3a8a !important; }
.availability-calendar .cal-day.hover-end   { background: #93c5fd !important; color: #1e3a8a !important; }
.availability-calendar .cal-day.hover-range { background: #dbeafe !important; color: #1e40af !important; }
.availability-calendar .cal-month-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    font-weight: 600;
}

/* ── Flatpickr overrides ─────────────────────────────────── */
.flatpickr-day.available { background: #d1fae5 !important; color: #065f46 !important; }
.flatpickr-day.unavailable { background: #fee2e2 !important; color: #7f1d1d !important; pointer-events: none; }
.flatpickr-day.closed { background: #fef9c3 !important; color: #713f12 !important; pointer-events: none; }

/* ── Hero section ───────────────────────────────────────── */
.hero { padding: 3rem 2rem; }
@media (max-width: 576px) {
    .hero { padding: 2rem 1rem; }
}

/* ── Misc ──────────────────────────────────────────────── */
.sticky-top { z-index: 100; }
