/*
.calendar {
    border-collapse: collapse;
    width: 300px;
    text-align: center;
    font-family: sans-serif;
}

.calendar caption {
    font-size: 20px;
    margin-bottom: 10px;
}

.calendar th, .calendar td {
    border: 1px solid #ccc;
    width: 40px;
    height: 40px;
}

.calendar .holiday {
    background: #0D3A68; 
    color: #fff;
}

body{font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; padding:20px; background:#faf9f6;}*/
.controls{margin-bottom:12px;}
.cal{border-collapse:collapse; width:100%; max-width:540px; box-shadow:0 0 0 1px #ddd; background:#fff;}
.cal th,.cal td{border:1px solid #ddd; text-align:center; padding:18px; vertical-align:top; height:64px; position:relative;}
.cal td.holiday{background:#f9efe6;}
.cal td.closed{background:#153f70; color:#fff;}
.cal td.closed .hname{color:#fff;}
.cal td .hname{font-size:11px; margin-top:6px; color:#b33;}
.month-nav{display:flex; gap:8px; align-items:center; margin-bottom:8px;}
.btn{padding:6px 10px; border-radius:6px; background:#eee; border:1px solid #ddd; cursor:pointer;}
.patterns{margin-top:8px;}
.weekday-btn{display:inline-block; padding:6px 8px; border-radius:6px; margin-right:6px; background:#fff; border:1px solid #ccc; cursor:pointer;}
.weekday-btn.active{background:#153f70; color:#fff; border-color:#153f70;}
.note{margin-top:10px; font-size:13px; color:#666;}