/**
 * 診療時間テーブルスタイル
 * 記事内の診療時間表を整形
 */

/* テーブル全体のスタイル */
.wp-block-flexible-table-block-table table {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
    margin: 20px auto;
    font-size: 14px;
    table-layout: fixed;
}

/* ヘッダー行のスタイル */
.wp-block-flexible-table-block-table thead tr {
    background-color: #67bded;
}

.wp-block-flexible-table-block-table thead th {
    background-color: #67bded !important;
    color: #fff !important;
    border: 1px solid #67bded !important;
    padding: 8px 3px !important;
    text-align: center !important;
    vertical-align: middle !important;
    font-weight: bold;
    font-size: 14px;
}

/* 最初のヘッダーセル（時間）を狭く */
.wp-block-flexible-table-block-table thead th:first-child {
    width: 80px;
}

/* ボディのスタイル */
.wp-block-flexible-table-block-table tbody tr {
    background-color: #fff;
}

/* 時間帯のセル */
.wp-block-flexible-table-block-table tbody td:first-child {
    background-color: #FFF8F0;
    font-weight: 500;
    color: #333;
    font-size: 11px;
    width: 80px;
}

/* 通常のセル */
.wp-block-flexible-table-block-table tbody td {
    border: 1px solid #67bded !important;
    padding: 8px 2px !important;
    text-align: center !important;
    vertical-align: middle !important;
    background-color: #fff;
}

/* 診療マーク（●）のスタイル */
.wp-block-flexible-table-block-table tbody td:not(:first-child) {
    font-size: 16px;
    color: #333;
}

/* 空のセル（休診）の背景 */
.wp-block-flexible-table-block-table tbody td:empty,
.wp-block-flexible-table-block-table tbody td:not(:first-child):not(:contains('●')) {
    background-color: #FAFAFA;
}

/* ※注釈がある場合のスタイル */
.wp-block-flexible-table-block-table tbody td:contains('※') {
    position: relative;
}

/* ホバー効果 */
.wp-block-flexible-table-block-table tbody tr:hover {
    background-color: #FFF8F0;
}

.wp-block-flexible-table-block-table tbody tr:hover td {
    background-color: transparent;
}

/* レスポンシブ対応（タブレット） */
@media screen and (max-width: 768px) {
    .wp-block-flexible-table-block-table {
        overflow-x: hidden;
        display: block;
        width: 100%;
    }
    
    .wp-block-flexible-table-block-table table {
        width: 100%;
        font-size: 12px;
    }
    
    .wp-block-flexible-table-block-table thead th {
        padding: 6px 2px !important;
        font-size: 11px;
    }
    
    .wp-block-flexible-table-block-table tbody td {
        padding: 6px 2px !important;
    }
    
    .wp-block-flexible-table-block-table thead th:first-child,
    .wp-block-flexible-table-block-table tbody td:first-child {
        width: 65px;
        font-size: 10px;
        padding: 6px 1px !important;
    }
    
    /* 診療マーク（●）のサイズ調整 */
    .wp-block-flexible-table-block-table tbody td:not(:first-child) {
        font-size: 14px;
    }
}

/* スマホ画面用 */
@media screen and (max-width: 480px) {
    .wp-block-flexible-table-block-table table {
        font-size: 10px;
    }
    
    .wp-block-flexible-table-block-table thead th {
        padding: 5px 1px !important;
        font-size: 9px;
        font-weight: normal;
    }
    
    .wp-block-flexible-table-block-table tbody td {
        padding: 5px 1px !important;
    }
    
    .wp-block-flexible-table-block-table thead th:first-child,
    .wp-block-flexible-table-block-table tbody td:first-child {
        width: 50px;
        font-size: 8px;
    }
    
    /* 診療マーク（●）のサイズ調整 */
    .wp-block-flexible-table-block-table tbody td:not(:first-child) {
        font-size: 12px;
    }
}

/* 極小画面用（360px以下） */
@media screen and (max-width: 360px) {
    .wp-block-flexible-table-block-table thead th {
        padding: 4px 0 !important;
        font-size: 8px;
    }
    
    .wp-block-flexible-table-block-table tbody td {
        padding: 4px 0 !important;
    }
    
    .wp-block-flexible-table-block-table thead th:first-child,
    .wp-block-flexible-table-block-table tbody td:first-child {
        width: 40px;
        font-size: 7px;
    }
    
    /* 診療マーク（●）のサイズ調整 */
    .wp-block-flexible-table-block-table tbody td:not(:first-child) {
        font-size: 10px;
    }
}

/* フォントサイズクラスが指定されている場合の対応 */
.wp-block-flexible-table-block-table.has-xs-font-size table {
    font-size: 14px;
}

.wp-block-flexible-table-block-table.has-s-font-size table {
    font-size: 15px;
}

.wp-block-flexible-table-block-table.has-m-font-size table {
    font-size: 16px;
}

.wp-block-flexible-table-block-table.has-l-font-size table {
    font-size: 18px;
}

.wp-block-flexible-table-block-table.has-xl-font-size table {
    font-size: 20px;
}

/* 曜日の幅を均等に */
.wp-block-flexible-table-block-table thead th:not(:first-child),
.wp-block-flexible-table-block-table tbody td:not(:first-child) {
    width: calc((100% - 80px) / 8);
}

/* 休診日（ー）の表示 */
.wp-block-flexible-table-block-table tbody td:contains('ー'),
.wp-block-flexible-table-block-table tbody td:contains('−'),
.wp-block-flexible-table-block-table tbody td:contains('―') {
    color: #999;
    background-color: #FAFAFA;
}

/* 特別な記号のスタイル */
.wp-block-flexible-table-block-table tbody td:contains('●※') {
    font-weight: bold;
}

/* テーブル全体の影とボーダー調整 */
.wp-block-flexible-table-block-table {
    margin: 30px 0;
}

.wp-block-flexible-table-block-table table {
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    border: 2px solid #67bded;
    border-radius: 4px;
    overflow: hidden;
}

/* 角丸の処理 */
.wp-block-flexible-table-block-table thead th:first-child {
    border-top-left-radius: 2px;
}

.wp-block-flexible-table-block-table thead th:last-child {
    border-top-right-radius: 2px;
}

.wp-block-flexible-table-block-table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 2px;
}

.wp-block-flexible-table-block-table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 2px;
}