@charset "UTF-8";
/*========================================
　Goove
========================================*/
a {
    color: #000;
}
nav {
  display: flex; /* アイコンを横並びにするため */
  align-items: center; /* 垂直方向の中央揃え */
  justify-content: center; /* 水平方向の中央揃え (必要に応じて) */
    background-color: #f0f0f0;
    padding: 50px 0px;
}
.nav-item {
  display: flex;
  flex-direction: column; /* アイコンとテキストを縦に並べる場合 */
  align-items: center;
  padding: 0 20px; /* アイコンと線との間にスペースを設ける */
}


/* ヘッダーに記載 */
        #members-card-id-match-message {
            margin-top: 5px;
            font-size: 14px;
            font-weight: bold;
            padding: 5px 10px;
            border-radius: 4px;
            transition: all 0.3s ease;
        }

        .match-success {
            color: #28a745 !important;
            background-color: #d4edda;
            border: 1px solid #c3e6cb;
        }

        .match-error {
            color: #dc3545 !important;
            background-color: #f8d7da;
            border: 1px solid #f5c6cb;
        }

        .match-warning {
            color: #f39c12 !important;
            background-color: #fff3cd;
            border: 1px solid #ffeaa7;
        }

        input[name="members_card_id"]:focus,
        input[name="members_card_id_confirm"]:focus {
            border-color: #007cba;
            box-shadow: 0 0 0 1px #007cba;
            outline: none;
        }

        input[name="members_card_id"].error,
        input[name="members_card_id_confirm"].error {
            border-color: #dc3545;
            box-shadow: 0 0 0 1px #dc3545;
        }

        input[name="members_card_id"].success,
        input[name="members_card_id_confirm"].success {
            border-color: #28a745;
            box-shadow: 0 0 0 1px #28a745;
        }

        /* ヘッダーのマイページ・ログインリンクスタイル */
        .header__right {
            display: flex !important;
            flex-direction: row !important;
            align-items: center !important;
            gap: 15px !important;
            width: auto !important;
        }

        .header__mypage,
        .header__login {
            text-decoration: none;
            transition: opacity 0.3s ease;
            flex-shrink: 0 !important;
        }

        .header__mypage:hover,
        .header__login:hover {
            opacity: 0.7;
        }

        .header__mypage__link,
        .header__login__link {
            color: #333;
            font-size: 14px;
            font-weight: 500;
            margin: 0;
            padding: 8px 12px;
            border: 1px solid #ddd;
            border-radius: 4px;
            background-color: #f8f9fa;
            transition: all 0.3s ease;
        }

        .header__mypage__link:hover,
        .header__login__link:hover {
            background-color: #e9ecef;
            border-color: #adb5bd;
        }

        .header__reserve {
            flex-shrink: 0 !important;
        }

        /* レスポンシブ対応 */
        @media (max-width: 768px) {
            .header__right {
                gap: 8px;
            }

            .header__mypage__link,
            .header__login__link {
                font-size: 12px;
                padding: 6px 8px;
            }
        }

        @media (max-width: 480px) {

            .header__mypage__link,
            .header__login__link {
                font-size: 11px;
                padding: 4px 6px;
            }
        }



/* 最後の要素以外にボーダーを適用 */
.nav-item:not(:last-child) {
  border-right: 1px solid #ccc; /* 線のスタイル */
  margin-right: 20px; /* 線と次の要素の間のスペース */
}
.nav-item img {
  width: 100px; /* アイコンのサイズ調整 */
  height: 100px;
  margin-bottom: 5px; /* アイコンとテキストの間隔 */
}
.nav-item span {
  font-size: 14px;
  color: #333;
}
.menu-ttl {
    text-align: center;
    font-size: 130%;
}
.menu-txt {
    text-align: center;
}
table.mypage-tbl {
  width: 100%;
  border-collapse: collapse;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  background-color: #fff;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  border-radius: 8px;
  overflow: hidden;
}

table.mypage-tbl th,
table.mypage-tbl td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
  color: #333;
}

table.mypage-tbl th {
  background-color: #f7f9fc;
  font-weight: 600;
  color: #1a73e8;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-size: 14px;
}

table.mypage-tbl tr:hover td {
  background-color: #f1f5ff;
  transition: background-color 0.3s ease;
}

table.mypage-tbl tr:last-child td {
  border-bottom: none;
}

@media (max-width: 600px) {
  table.mypage-tbl,
  table.mypage-tbl thead,
  table.mypage-tbl tbody,
  table.mypage-tbl th,
  table.mypage-tbl td,
  table.mypage-tbl tr {
    display: block;
  }

  table.mypage-tbl tr {
    margin-bottom: 15px;
    border-bottom: 2px solid #ddd;
  }

  table.mypage-tbl td {
    padding-left: 50%;
    position: relative;
    text-align: right;
  }

  table.mypage-tbl td::before {
    content: attr(data-label);
    position: absolute;
    left: 16px;
    top: 12px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 12px;
    color: #1a73e8;
  }
}


/* PC用のスタイルは変更なし */
.booking-table-dl {
    display: grid;
    /* 5つの列を定義 */
    grid-template-columns: minmax(100px, 1fr) minmax(150px, 1.5fr) minmax(150px, 1.5fr) minmax(150px, 1.5fr) minmax(200px, auto);
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    max-width: 1000px;
    margin: 0 auto 20px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.booking-table-dl .dl-header-cell {
    background-color: #f0f0f0;
    text-align: left;
    padding: 15px 20px;
    font-weight: bold;
    color: #333;
    border-bottom: 1px solid #e0e0e0;
    border-right: 1px solid #e0e0e0;
}

.booking-table-dl .dl-header-cell:last-child {
    border-right: none;
}

.booking-card {
    display: contents;
}

.booking-card .card-item-list {
    display: contents;
}

/* PC時の各データセル (dt と dd) の基本スタイル */
.booking-card .card-item-list dt,
.booking-card .card-item-list dd {
    background-color: #fff;
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
    border-right: 1px solid #eee;
    vertical-align: middle;
    text-align: left;
}

/* PC時、ネストされたdt（SPヘッダー）は非表示 */
.booking-card .card-item-list dt {
    display: none;
}

/* PC時、各列の最後のセルには右線がないように */
.booking-card .card-item-list .button-data-item {
    border-right: none;
}

/* PC時、最後の booking-card の中のセルの下線はなし */
.booking-card:last-of-type .card-item-list dd {
    border-bottom: none;
}

/* ステータスバッジ */
.status-badge {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.85em;
    font-weight: bold;
    color: #31645e;
    background-color: #e0f2f1;
    border: 1px solid #b2dfdb;
    margin-right: 8px;
}

/* 詳細ボタン */
.detail-button {
    background-color: #333;
    color: #fff;
    border: none;
    padding: 10px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.9em;
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.detail-button:hover {
    background-color: #555;
}

.detail-button i {
    font-size: 0.8em;
}


/* === トップヘッダーボタン === */
p.top-bt {
    background-color: #31415d;
    border-radius: 0px;
    border: 0px;
    color: #ba9b68;
    padding: 9px;
}
.header__reserve {
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-basis: auto;
  -ms-flex-preferred-size: auto;
  flex-basis: auto;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);
  background-color: #ba9b68;
  color: #30415d;
    height: 100%;
    width: 40%;
}
.header__right {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0px !important;
    width: auto !important;
}
.header__logo {
  color: #ba9b68;
  font-family: 'Playfair Display';
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: .09rem;
  -webkit-transform: scale(0.8, 1);
  -ms-transform: scale(0.8, 1);
  transform: scale(0.8, 1);
  position: fixed;
  top: 13px;
  left: 0;
  right: 0;
}
/* デフォルトはPCで非表示、スマホで非表示にする前提 */
.pc-visible {
    display: none !important; /* 最初は非表示 */
}
.pc-hidden {
    display: block !important; /* 最初は非表示 */
}
/* 768px以上（PC）の場合だけ表示 */
@media screen and (min-width: 768px) {
    .pc-visible {
        display: block !important;
    }
    .pc-hidden {
    display: none !important; /* 最初は非表示 */
}
}

/* === フォーム input === */
input {
    padding: 20px !important;
    background-color: #f5fbff !important;
    border-radius: 5px !important;
}
input#pwd {
    background-color: #f5fbff !important;
    border-radius: 5px !important;
}
input.buttons {
    background-color: #ba9b68 !important;
    border: 1px solid #95794d;
    padding: 10px;
    width: 200px;
    color: #fff;
}
label.text {
    border-left: 5px solid #ba9b68;
    padding-left: 10px;
    font-size: 120%;
}
input[type="email"] {
    border: 1px solid rgba(0, 0, 0, .1)
}
/* === ページ上部タイトル部分 === */
.page__head {
    height: 40vh;
}
.page__head__title {
    font-weight: 100;
    font-size: 3rem;
    margin: 2rem 0 4rem;
}
@media screen and (min-width: 479px) {
      .header__right {
        width: 60px;
        }
}
/* === wp-members フォーム関連 === */
legend {
    display: none;
}
.wpmembers-ttl {
    font-size: 207%;
    text-align: center;
}

.welcome-txt {
    border: 1px solid #cccccc;
    padding: 10px;
    background-color: #ffffff;
    margin: 25px 0px;
}
/* === wp-members === */
#wpmem_login, #wpmem_msg, #wpmem_reg, .wpmem_msg {
    width: 75%;
    margin: 0 auto;
}


/* === フッター追従Bt === */
.foot-fix_cv {
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 1000;
}
a.foot-bt {
    background-color: #002359;
    display: block;
    margin-bottom: 2px;
    padding: 20px;
    color: #bfb7aa;
    z-index: 10;
}
a.foot-bt_sp {
    background-color: #97866c;
    display: block;
    margin-bottom: 2px;
    padding: 20px;
    color: #fff;
}
.foot-bt-en {
    display: block;
    font-size: 0.65em;
    opacity: 0.75;
    margin-top: 2px;
    letter-spacing: 0.5px;
}
.foot-fix_bt_area {
    position: fixed;
    bottom: 0;
    z-index: 1000;
    width: 100%;
}
.btn-area {
  display: flex;
  gap: 1px; /* すきまを均等に */
  background-color: #9e9e9e;
}

.btn-area a {
  flex: 1;               /* 均等幅 */
  text-align: center;    /* 文字を中央に */
  padding: 18px 0;
  /* background: #3498db; */
  color: #fff;
  text-decoration: none;
  /* border-radius: 5px; */
}


/* === レスポンシブ対応 (SP閲覧時) === */
@media screen and (max-width: 768px) {
    .booking-table-dl {
        display: block;
        border: none;
        box-shadow: none;
        padding-bottom: 0;
    }

    .booking-table-dl .dl-header-cell.pc-only {
        display: none;
    }

    .booking-card {
        display: block;
        margin-bottom: 20px;
        border: 1px solid #ddd;
        border-radius: 8px;
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        overflow: hidden;
        background-color: #fff;
    }

    .booking-card .card-item-list {
        display: block;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .booking-card .card-item-list dt,
    .booking-card .card-item-list dd {
        display: block;
        border-right: none;
    }

    .booking-card .card-item-header {
        background-color: #f7f7f7;
        padding: 10px 15px;
        font-weight: bold;
        color: #333;
        border-bottom: 1px solid #eee;
    }

    /* ここを修正: !important を追加して確実に非表示にする */
    .booking-card .button-header-item {
        display: none !important;
    }

    .booking-card .card-item-data {
        background-color: #fff;
        padding: 10px 15px;
        border-bottom: 1px dashed #eee;
        text-align: left;
    }

    /* 最後の項目データの下線はなし */
    .booking-card .card-item-data:last-child {
        border-bottom: none;
    }

    .booking-card .date-data-item {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 15px;
    }

    .booking-card .button-data-item {
        text-align: center;
        padding: 15px;
    }
    .detail-button {
        width: 100%;
        justify-content: center;
    }
}


        /* ==================================== */
        /* ボタンコンテナのスタイル */
        /* ==================================== */
        .button-container {
            display: flex; /* Flexboxで横並び */
            justify-content: center; /* 水平方向の中央揃え */
            align-items: center; /* 垂直方向の中央揃え */
            gap: 20px; /* ボタン間の間隔 */
            flex-wrap: wrap; /* 画面幅が狭いときに折り返す */
            padding: 20px; /* 内側の余白 */
            width: 100%; /* コンテナの幅 */
            max-width: 960px; /* 最大幅 */
            box-sizing: border-box; /* paddingをwidthに含める */
        }

        /* ==================================== */
        /* 各ボタンのスタイル */
        /* !important はここでは使用せず、各ボタンの色を個別に設定 */
        /* ==================================== */
        .btt { /* クラス名を 'btt' に変更 */
            display: inline-block; /* パディングやサイズ指定のため */
            padding: 15px 30px; /* 内側の余白 */
            border: none; /* ボーダーなし */
            border-radius: 8px; /* 角丸 */
            text-decoration: none; /* 下線なし */
            font-size: 18px; /* フォントサイズ */
            font-weight: bold; /* フォントの太さ */
            cursor: pointer; /* カーソルをポインターに */
            transition: all 0.3s ease; /* ホバー時のアニメーション */
            text-align: center; /* テキスト中央揃え */
            min-width: 150px; /* 最小幅 */
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 影 */
            /* デフォルトの文字色は白だが、黄色ボタンでは上書きされる */
            color: #fff;
        }

        /* ボタン1: 青 */
        .btt:nth-child(1) { /* クラス名を 'btt' に変更 */
            background-color: #708fb0;
        }

        .btt:nth-child(1):hover { /* クラス名を 'btt' に変更 */
            background-color: #0056b3;
            transform: translateY(-2px); /* 少し上に移動 */
            box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
        }

        /* ボタン2: 緑 */
        .btt:nth-child(2) { /* クラス名を 'btt' に変更 */
            background-color: #7fc58f;
        }

        .btt:nth-child(2):hover { /* クラス名を 'btt' に変更 */
            background-color: #1e7e34;
            transform: translateY(-2px);
            box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
        }

        /* ボタン3: 黄色 (文字色は黒) */
        .btt:nth-child(3) { /* クラス名を 'btt' に変更 */
            background-color: #9e9e9e;
            color: #ffffff; /* 黄色に合うように文字色を変更 */
        }

        .btt:nth-child(3):hover { /* クラス名を 'btt' に変更 */
            background-color: #e0a800;
            transform: translateY(-2px);
            box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15);
        }

        /* ==================================== */
        /* レスポンシブ対応 (SP時) */
        /* ==================================== */
        @media (max-width: 768px) { /* 画面幅が768px以下の場合に適用 */
            .button-container {
                flex-direction: column; /* 縦並びにする */
                gap: 15px; /* 縦並び時のボタン間の余白 */
            }

            .btt { /* クラス名を 'btt' に変更 */
                width: 90%; /* SP時に幅を広げる */
                max-width: 300px; /* 必要に応じて最大幅を設定 */
            }
        }

        /* さらに小さいSP向け (例: 480px以下) */
        @media (max-width: 480px) {
            .btt { /* クラス名を 'btt' に変更 */
                padding: 12px 25px; /* SP用にパディングを調整 */
                font-size: 16px; /* フォントサイズを調整 */
            }
        }

.link-text-forgot a {
    display: inline-block;
}