/* 新規追加・調整用CSS */
.header__reserve-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 10px;
    height: 38px;
    background-color: #ec9b3d;
    color: #ffffff !important;
    border-radius: 20px;
    font-size: 15px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    line-height: 1;
    transition: opacity 0.3s;
    margin-left: 10px; /* 余白調整 */
}
.header__reserve-btn::before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 6px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}
.header__reserve-btn:hover {
    opacity: 0.8;
}

@media screen and (max-width: 1024px) {
    /* PC用ヘッダー内の要素がタブレット/スマホで非表示になっている場合を考慮、または不要なら無視される */
    .header__reserve-btn {
        display: none; /* スマホ版のメニューが別にあるため、ヘッダーに直接出さない可能性がある */
    }
}

/* 汎用テーブルスタイル */
.table-custom-border {
    border-collapse: collapse;
    font-size: 16px;
    width: 100%;
}
.table-custom-border th {
    border: 1px solid #E6E6E6;
    padding: 10px;
    background-color: #F7F7F5;
    width: auto;
}
.table-custom-border td {
    border: 1px solid #E6E6E6;
    padding: 10px;
    width: auto;
}
.table-custom-border .text-center {
    text-align: center;
}

/* テーブルのスマホ用横スクロール */
.scroll-table-bl {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.scroll-table-bl table {
    min-width: 600px; /* スマホでも縮みすぎずスクロールさせるための最小幅 */
}