/* ---- レイアウト ---- */
#endo-business-calendar {
    padding: 0;
    font-family: 'Hiragino Sans', 'Noto Sans JP', 'Yu Gothic', sans-serif;
}

.endo-cal-wrap {
    display: flex;
    gap: 48px;
    justify-content: center;
    flex-wrap: wrap;
}

.endo-cal-month {
    flex: 1;
    min-width: 320px;
    max-width: 520px;
}

.endo-cal-month-title {
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 16px;
    color: #3a3028;
}

/* ---- グリッド ---- */
.endo-cal-grid {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.endo-cal-grid th {
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    padding: 8px 4px;
    color: #6b5e52;
    letter-spacing: 0.04em;
}

.endo-cal-grid th.sun { color: #b94040; }
.endo-cal-grid th.sat { color: #3a6396; }

.endo-cal-grid td {
    text-align: center;
    padding: 0;
    height: 44px;
    font-size: 16px;
    position: relative;
    line-height: 1;
    color: #3a3028;
    vertical-align: middle;
}

.endo-cal-grid td.empty { background: none; }

/* 定休日 */
.endo-cal-grid td.regular-holiday {
    color: #aaa;
    background: #f0ede8;
}
.endo-cal-grid td.regular-holiday .day-num {
    text-decoration: line-through;
    text-decoration-color: #aaa;
}

/* 臨時休業 */
.endo-cal-grid td.closed {
    background: #fde8e8;
    color: #b94040;
}

/* 午前休（午後のみ診療） */
.endo-cal-grid td.am_off {
    background: #fef3e2;
    color: #9a5a00;
}

/* 午後休（午前のみ診療） */
.endo-cal-grid td.pm_off {
    background: #e8f0fb;
    color: #2d5a9a;
}

/* 日曜・土曜 */
.endo-cal-grid td.sun:not(.regular-holiday):not(.closed):not(.am_off):not(.pm_off) {
    color: #b94040;
}
.endo-cal-grid td.sat:not(.regular-holiday):not(.closed):not(.am_off):not(.pm_off) {
    color: #3a6396;
}

/* 今日 */
.endo-cal-grid td.today .day-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #2d4a1e;
    color: #fff !important;
}

.day-note {
    display: block;
    font-size: 11px;
    margin-top: 3px;
    line-height: 1.2;
}

/* ---- 凡例 ---- */
.endo-cal-legend {
    display: flex;
    gap: 20px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 28px;
    font-size: 13px;
    color: #6b5e52;
}
.endo-cal-legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
}
.endo-cal-legend-dot {
    width: 14px;
    height: 14px;
    border-radius: 2px;
    flex-shrink: 0;
}
.endo-cal-legend-dot.regular-holiday { background: #f0ede8; border: 1px solid #ccc; }
.endo-cal-legend-dot.closed  { background: #fde8e8; }
.endo-cal-legend-dot.am_off  { background: #fef3e2; }
.endo-cal-legend-dot.pm_off  { background: #e8f0fb; }

/* ---- レスポンシブ ---- */
@media (max-width: 768px) {
    .endo-cal-wrap { gap: 32px; }
    .endo-cal-month { min-width: 280px; }
    .endo-cal-grid td,
    .endo-cal-grid th { font-size: 13px; padding: 8px 2px; }
    .endo-cal-month-title { font-size: 16px; }
    .endo-cal-jp-title { font-size: 15px; }
}
