/* Open Calendar Styles */
.oc-wrap {
    max-width: 420px;
    margin: 0 0 2em;
    font-family: inherit;
    border-radius: 4px;
    overflow: hidden;
}

/* ヘッダー */
.oc-header {
    width: calc(100% - 1px);
    display: flex;
    align-items: center;
    border: 1px solid #ddd;
    padding: .6em 1em;
    gap: .3em;
    background-color: #FFF;
}

.oc-title {
    flex: 1;
    font-weight: bold;
    font-size: 1em;
    letter-spacing: .03em;
    text-align: center;
}

.oc-nav {
    background: none;
    border-radius: 3px;
    padding: .2em .5em;
    cursor: pointer;
    font-size: .85em;
    color: #444;
    line-height: 1;
    transition: background .15s;
}
.oc-nav:hover { background: transparent; }

/* テーブル */
.oc-table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin-bottom: 15px;
    border-spacing: 0;
    border-left: none !important;
    border-top: none !important;
    background: transparent !important;
}

.oc-table thead tr th {
    background: #dedede !important;
}

.oc-table thead th {
    background: #fff;
    text-align: center;
    padding: .4em 0;
    font-size: .85em;
    border: 1px solid #ddd;
    font-weight: bold;
}

.oc-table thead th.sun { color: #c00; }
.oc-table thead th.sat { color: #339; }

/* セル共通 */
.oc-day,
.oc-empty {
    text-align: center;
    padding: .45em .2em .35em;
    border: 1px solid #ddd;
    min-height: 44px;
    vertical-align: middle;
}

.oc-empty { background: #fafafa; }

/* 営業日（白） */
.oc-day.oc-open {
    background: #fff;
    color: #333;
}

/* 休業日（ピンク） */
.oc-day.oc-closed {
    background: #e8508a;
    color: #fff;
}

/* 臨時営業日（水色） */
.oc-day.oc-special {
    background: #7ecef4;
    color: #fff;
}

/* 曜日カラー（営業日のみ） */
.oc-day.oc-open.sun .oc-day-num { color: #c00; }
.oc-day.oc-open.sat .oc-day-num { color: #339; }

/* 今日 */
.oc-today-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7em;
    height: 1.7em;
    background: #333;
    color: #fff;
    border-radius: 50%;
    font-weight: bold;
    font-size: .9em;
}

.oc-day.oc-closed .oc-today-circle,
.oc-day.oc-special .oc-today-circle {
    background: rgba(0,0,0,.35);
}

.oc-day-num {
    display: block;
    font-size: .95em;
    line-height: 1.6;
    font-weight: bold;
}

.oc-day-label {
    display: block;
    font-size: .62em;
    line-height: 1.2;
    margin-top: .1em;
    opacity: .85;
    word-break: break-all;
}

/* 凡例 */
.oc-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .5em 1.5em;
    font-size: .875em;
}

.oc-legend-item {
    display: flex;
    align-items: center;
    gap: .4em;
}

.oc-legend-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 2px;
    flex-shrink: 0;
}

.oc-legend-closed .oc-legend-dot { background: #e8508a; }
.oc-legend-special .oc-legend-dot { background: #7ecef4; }

/* レスポンシブ */
@media (max-width: 480px) {
    .oc-wrap { max-width: 100%; }
    .oc-day  { padding: .3em .1em; }
    .oc-day-label { display: none; }
}
