/* --- Base --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; } /* これを追加 */

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Noto Serif JP', serif; background-color: #000; color: #fff; overflow-x: hidden; width: 100%; }

/* --- Header 固定設定 --- */
#main-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: 25px 0;
    transition: all 0.5s ease;
    
    /* ★ここが「最初」の状態：透明にします */
    background-color: transparent !important; 
}

/* --- スクロールした時の設定 --- */
/* 「#main-header」に「.scrolled」クラスが追加された時 */
#main-header.scrolled {
    /* ★ここが「スクロール後」の状態：濃いグレーにします */
    background-color: #333333 !important; 
    padding: 15px 0;
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.header-inner {
    max-width: 95%; margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between;
}
.logo img { height: 45px; filter: brightness(0) invert(1); }
.header-right { display: flex; align-items: center; }

.reserve-btn {
    border: 1px solid #fff; color: #fff; text-decoration: none;
    padding: 12px 30px; font-size: 0.8rem; letter-spacing: 0.1em;
    margin-right: 30px; transition: all 0.4s ease;
}
header.scrolled .reserve-btn { background-color: #fff; color: #000; }

.nav-links { display: flex; list-style: none; align-items: center; }
.nav-links li {
    padding: 0 20px; border-left: 1px solid rgba(255,255,255,0.4);
    font-size: 0.8rem;
}

/* リンク（aタグ）自体に縦並びの設定を移動します */
.nav-links li a {
    display: flex; 
    flex-direction: column; 
    line-height: 1.4;
    color: inherit;         /* 文字色を親（白）に合わせる */
    text-decoration: none;  /* 下線を消す */
}

.nav-links li .en { font-size: 0.55rem; opacity: 0.6; }
.lang-switch { margin-left: 15px; }
.lang-switch a { font-size: 0.75rem; color: #fff; text-decoration: none; transition: opacity 0.3s; }
.lang-switch a:hover { opacity: 0.6; }
/* --- Hero & Scroll --- */
.hero { position: relative; height: 100vh; display: flex; align-items: center; justify-content: center; }
.hero-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; }
.overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.25); }
.hero-content h1 { font-size: 1.1rem; font-weight: 200; letter-spacing: 0.5em; text-align: center; }
.scrolldown { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
.scroll-text { font-size: 0.6rem; letter-spacing: 0.4em; margin-bottom: 15px; }
.scroll-line { width: 1px; height: 70px; background: rgba(255,255,255,0.2); position: relative; overflow: hidden; }
.scroll-line::after { content: ""; position: absolute; top: -70px; left: 0; width: 100%; height: 100%; background: #fff; animation: scroll-move 3s infinite; }
@keyframes scroll-move { 0% { top: -70px; } 50% { top: 0; } 100% { top: 70px; } }

/* --- EXPERIENCE --- */
.experience-intro {
    background-color: #f7f6f2; color: #333;
    padding: 160px 20px; text-align: center;
}
.section-label { font-size: 0.7rem; letter-spacing: 0.4em; color: #999; margin-bottom: 40px; display: block; }
.experience-intro h2 { font-size: 1.8rem; font-weight: 200; letter-spacing: 0.2em; margin-bottom: 50px; color: #222; }
.intro-text p { font-size: 0.9rem; margin-bottom: 15px; letter-spacing: 0.1em; color: #555; line-height: 2.2; }

/* --- Content Wrapper (全セクション共通) --- */
.accommodations, 
.restaurant-shop, 
.secondary-room,
.sightseeing-detail-copy,
.content-wrapper {
    background-color: #fdfcf9 !important;
    padding: 100px 0;
    width: 100%;
    color: #333;
}
/* リストの「・」を削除する設定 */
.rules-list, .rules-list-dot {
    list-style: none; /* これでポッチが消えます */
    padding-left: 0;   /* 左側の余白を詰める */
    margin-bottom: 20px;
}

.rules-list li {
    margin-bottom: 8px;
    padding-left: 0;   /* 文頭を揃える */
}

/* もし「・」の代わりに少し隙間を空けたい場合などはここを調整 */
.rules-list li::before {
    content: none; /* 以前設定した「・」を出す疑似要素も無効化 */
}

/* サイト全体の中央揃えの器 */
.room-gallery {
    max-width: 1200px;
    margin: 0 auto !important;
    padding: 0 20px;
    width: 100%;
}

/* 画像グループと文章カードの横並び */
.gallery-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* 上端で揃える */
    gap: 5%; 
    width: 100%;
}

/* 【重要】左側：画像ユニット（62%） */
.gallery-image-group {
    flex: 0 0 62%;
    width: 62%;
}

.main-img-container {
    width: 100%;
    height: 500px; /* 必要に応じて調整 */
    overflow: hidden;
}

.main-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* サムネイル：画像幅（62%）の中で並べる */
.gallery-thumbs {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 20px;
    width: 100% !important;
}

.thumb-box {
    flex: 1;
    height: 100px;
    overflow: hidden;
}

.thumb-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 【重要】右側：テキストユニット（33%） */
.room-description-card {
    flex: 0 0 33% !important;
    width: 33% !important;
    background: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.room-description-card h3 {
    font-size: 1.6rem;
    margin-bottom: 20px;
    font-weight: 400;
    color: #333;
}

.room-description-card p {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 30px;
    line-height: 2;
}

/* --- 反転レイアウトの設定（CUISINE / SIGHTSEEING用） --- */
.reverse-layout .gallery-top {
    flex-direction: row-reverse; /* 画像が右、文章が左 */
}
/* PCではスマホ用を隠す（メディアクエリの外に記述） */
.sp-only {
    display: none !important;
}

/* スマホ表示 */
@media (max-width: 1024px) {
    .gallery-top, .reverse-layout .gallery-top {
        flex-direction: column;
    }
    .gallery-image-group, .room-description-card, .gallery-thumbs {
        width: 100% !important;
        flex: 0 0 100% !important;
    }
    .room-description-card {
        margin-top: 30px !important;
        text-align: center;
    }
}


@media (max-width: 1024px) {
    .header-right { display: none; }
    .gallery-top { flex-direction: column; }
    .main-img-container, .room-description-card, .gallery-thumbs { width: 100%; }
    .room-description-card { margin-left: 0; margin-top: -30px; padding: 40px 20px; }
    .footer-inner { flex-direction: column; gap: 40px; }
    .footer-right { text-align: left; }
    .f-sub { justify-content: flex-start; }
}

/* --- RESTAURANT & SHOP (反転レイアウト) --- */
.restaurant-shop {
    /* 1つ目の値（120px）が上の余白です。重なりを防ぐためにしっかり空けます */
    padding: 130px 5% 120px; 
    background-color: #fdfcf9;
    clear: both; /* 他の要素との干渉を防ぐお守り */
}



.restaurant-shop .room-gallery {
    max-width: 1200px;
    margin: 0 auto;
}

/* 反転レイアウトのコア設定 */


.restaurant-shop .main-img-container {
    width: 62%;
    height: 500px;
    overflow: hidden;
}

.restaurant-shop .main-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.4s;
}

/* 反転時のカード位置：右画像に食い込ませるためにmargin-rightをマイナスに */
.gallery-top.reverse .room-description-card {
    width: 50%;
    background: #fff;
    padding: 60px;
    margin-right: -12%; 
    margin-left: 0; 
    z-index: 2;
    box-shadow: 15px 15px 50px rgba(0,0,0,0.02);
}

/* サムネイルを右側の画像の下に合わせるためのラッパー */
.thumb-wrapper {
    display: flex;
    justify-content: flex-end; /* 右寄せ */
}

.restaurant-shop .gallery-thumbs {
    width: 62%; /* 画像と同じ幅 */
    display: flex;
    gap: 15px;
    margin-top: 25px;
}

.restaurant-shop .thumb-box {
    width: calc(25% - 12px);
    height: 120px;
    cursor: pointer;
    overflow: hidden;
}

.restaurant-shop .thumb-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
    transition: 0.3s;
}

/* スマホ表示での調整 */
@media (max-width: 1024px) {
    .gallery-top.reverse {
        flex-direction: column; /* 縦並びに戻す */
    }
    .gallery-top.reverse .room-description-card {
        width: 100%;
        margin-right: 0;
        margin-top: -30px;
        padding: 40px 20px;
    }
    .restaurant-shop .main-img-container,
    .restaurant-shop .gallery-thumbs {
        width: 100%;
    }
}

/* 追加：2つ目の客室セクションの余白調整 */
.secondary-room {
    padding: 20px 5% 100px;
    background-color: #fdfcf9; /* 背景色を統一 */
}

/* --- ACCESS --- */
.access {
    padding: 100px 5%;
    background-color: #fdfcf9;
}

.access .section-header {
    text-align: center;
    margin-bottom: 60px;
}

.access-container {
    max-width: 1200px;
    margin: 0 auto;
}

/* --- ACCESS (マップ・モノクロ加工版) --- */
.map-area {
    width: 100%;
    margin-bottom: 60px;
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
    
    /* マップを囲う枠の背景色を少し暗めにしておくと馴染みが良くなります */
    background-color: #f0f0f0; 
    line-height: 0; /* 下部の微かな隙間を消す */
}

.map-area iframe {
    /* マップを完全にモノクロにします (100%で完全な白黒) */
    filter: grayscale(100%) invert(5%) contrast(1.1);
    
    /* ホバーした時に色を戻す演出を入れる場合は以下を追加（お好みで） */
    transition: filter 0.5s ease;
}

/* マウスを乗せた時に少し色が戻るようにする場合（任意） */
.map-area:hover iframe {
    filter: grayscale(50%) contrast(1.0);
}

.access-info {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.info-block {
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 30px;
}

.info-block h4, .info-item h4 {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    letter-spacing: 0.1em;
    margin-bottom: 15px;
    color: #333;
}

.info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.info-item p {
    line-height: 1.8;
}

.note {
    font-size: 0.85rem;
    color: #888;
    margin-top: 5px;
}

/* スマホ対応 */
@media (max-width: 768px) {
    .info-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .access {
        padding: 60px 5%;
    }
}

/* --- ACCESS (幅調整版) --- */
.access {
    padding: 100px 5%;
    background-color: #fdfcf9;
    color: #333;
}

.access .section-header {
    text-align: center;
    margin-bottom: 60px;
}

.access-container {
    /* ここを 1000px から 1200px に変更して上のブロックと合わせます */
    max-width: 1200px; 
    margin: 0 auto;
}

.map-area {
    width: 100%;
    margin-bottom: 60px;
    filter: grayscale(20%);
    /* 地図の角を少し丸くしたり、影をつけたりすると馴染みが良くなります */
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
}

.access-info {
    display: flex;
    flex-direction: column;
    gap: 50px;
}

/* 情報エリアのレイアウト調整 */
.info-top-row {
    display: grid;
    /* 左右の比率を調整して余白を綺麗に見せます */
    grid-template-columns: 1fr 1fr;
    gap: 80px; /* 間隔を広げてゆとりを持たせます */
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 40px;
}

.info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px; /* 上と合わせます */
}

/* 以下、フォント設定などはそのまま */
.info-block h4, .info-item h4 {
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    color: #999;
    margin-bottom: 15px;
}

.info-block p, .info-item p {
    font-size: 0.95rem;
    line-height: 1.8;
    color: #444;
}

.tel {
    font-size: 1.2rem !important;
    letter-spacing: 0.05em;
    margin-top: 5px;
}

/* スマホ対応 */
@media (max-width: 1024px) {
    .info-top-row, .info-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

/* --- BLOG (HTML/CSS版) --- */
/* --- BLOG (余白調整版) --- */
.blog {
    /* 1つ目の値（100px）を 60px 程度に減らして、上の空きを狭くします */
    padding: 60px 5% 100px; 
    background-color: #fdfcf9;
}

/* もし見出し自体の上のマージンが影響している場合は、こちらも追記 */
.blog .section-header {
    margin-top: 0; /* セクション内の最上部に配置 */
    text-align: center;
    margin-bottom: 60px;
}

.blog-container {
    max-width: 1200px;
    margin: 0 auto;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 横に3つ並べる */
    gap: 30px;
}

.blog-card {
    background-color: #fff;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid #f0f0f0; /* 薄い枠線 */
}

.blog-card:hover {
    box-shadow: 0 15px 30px rgba(0,0,0,0.05); /* 浮き上がる影 */
}

/* 画像エリア */
.blog-thumb {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.blog-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.blog-card:hover .blog-thumb img {
    transform: scale(1.05); /* マウスホバーで少しズーム */
}

/* 文章エリア */
.blog-content {
    padding: 25px;
}

.blog-content time {
    font-size: 0.8rem;
    color: #999;
    letter-spacing: 0.1em;
    display: block;
    margin-bottom: 10px;
}

.blog-content h4 {
    font-size: 1.1rem;
    color: #333;
    line-height: 1.5;
    margin-bottom: 12px;
    font-weight: 500;
}

.blog-content p {
    font-size: 0.9rem;
    color: #666;
    line-height: 1.6;
    margin-bottom: 20px;
    /* 3行以上は省略する設定 */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.read-more {
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: #333;
    border-bottom: 1px solid #333;
    padding-bottom: 2px;
}

/* スマホ対応 */
@media (max-width: 1024px) {
    .blog-grid {
        grid-template-columns: 1fr; /* 縦1列に */
        gap: 40px;
    }
}

/* --- 共通見出しスタイル（ACCESSと同じにする） --- */
.blog .section-header,
.access .section-header {
    text-align: center;      /* 中央揃えにする */
    margin-bottom: 60px;     /* 下との余白 */
    width: 100%;             /* 幅いっぱいに広げる */
}

/* 英字ラベル (BLOG / ACCESS) */
.section-label {
    display: block;
    font-size: 0.85rem;
    letter-spacing: 0.3em;   /* 文字の間隔を広げて上品に */
    color: #999;             /* 落ち着いたグレー */
    margin-bottom: 15px;
    
}

/* 日本語見出し (久美浜の便り / アクセス) */
.blog h2, 
.access h2 {
    font-size: 1.8rem;
    color: #333;             /* 白抜きを解消し、濃いグレー（#333）に */
    font-weight: 500;
    margin: 0;
    letter-spacing: 0.1em;
}

/* ブログ全体の背景色も再確認（必要に応じて） */
.blog {
    padding: 100px 5%;
    background-color: #fdfcf9; /* 他のセクションと統一 */
}

/* 余白を強制的に上書きする設定 */
section.blog {
    padding-top: 30px !important; /* !important をつけることで最優先させます */
}

.blog .section-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* --- BLOGセクションの余白を極限まで詰める --- */

/* 1. ブログセクション自体の上の余白をさらに削る */
section.blog {
    padding-top: 10px !important; 
}

/* 2. 「BLOG / 久美浜の便り」という見出し全体の上の余白を消す */
.blog .section-header {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* 3. 【重要】ブログの「一つ上のセクション」の下の余白を削る */
/* これが原因で「ブログの上の空き」が広く見えていることが多いです */
section.blog + section, 
.secondary-room { 
    padding-bottom: 20px !important; 
}

/* --- ラインのアニメーション設定 --- */
.main-title {
    font-size: 1.8rem;
    font-weight: 400;
    position: relative;
    padding-bottom: 15px;
    display: inline-block;
}

.main-title::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0; /* 最初は 0 */
    height: 1px;
    background-color: #333;
    /* スルスル伸びる動きの設定 */
    transition: width 1.2s cubic-bezier(0.22, 1, 0.36, 1); 
}

/* JavaScriptでこのクラスが付与された瞬間に伸びる */
.main-title.is-active::after {
    width: 100%;
}
/* 「久美浜の魅力」セクションの下余白を調整 */
#experience {
    padding-bottom: 40px; /* 元の設定より小さく調整（お好みで 20px〜60px で調整してください） */
}

/* アクセスセクションの上余白を調整 */
.access {
    padding-top: 40px; /* ここも少し小さくすると、より距離が縮まります */
}
/* お問い合わせページ専用の余白調整 */
.sub-page .contact-page-content {
    padding-top: 150px; /* ヘッダーの下に潜り込まないように */
    min-height: 100vh;
}

/* 文字自体の設定 */
.hero-content h1 {
    color: #ffffff;
    font-weight: 500; /* 少し細めにするとより上品です */
    letter-spacing: 0.1em; /* 文字間を少し開けてゆとりを出す */
    
    /* 複数の影を重ねることで、
       「フチ」に見えない自然なグラデーションを作ります 
    */
    text-shadow: 
        0 0 15px rgba(0, 0, 0, 0.4),   /* 中心部の引き締め */
        0 0 30px rgba(0, 0, 0, 0.2),   /* 中間の広がり */
        0 4px 10px rgba(0, 0, 0, 0.3); /* 下方向へのわずかな影 */
}

/* 動画の上に被せているオーバーレイ層の調整（もしあれば） */
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* 動画全体に薄いグレーのグラデーションをかけると、
       さらに文字が浮き上がります 
    */
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.2) 0%, 
        rgba(0, 0, 0, 0) 50%, 
        rgba(0, 0, 0, 0.2) 100%
    );
    z-index: 1; /* 動画と文字の間に配置 */
}

.hero-content {
    position: relative;
    z-index: 2; /* オーバーレイより上に表示 */
}
/* セクション全体の余白 */
.accommodations {
    padding: 80px 0;
    background-color: #fff;
}

/* 画像とカードを包むコンテナを横並びに */
.gallery-top {
    display: flex;
    align-items: center; /* 上下中央揃え */
    justify-content: space-between;
    gap: 5%; /* 画像と文章の間のゆとり */
    max-width: 1200px;
    margin: 0 auto 30px; /* 下のサムネイルとの間隔 */
}

/* メイン画像エリア */
.main-img-container {
    flex: 0 0 60%; /* 幅を60%に固定 */
}

.main-img-container img {
    width: 100%;
    height: auto;
    display: block;
}

/* 文章エリア（白枠を消して右側に配置） */
.room-description-card {
    flex: 0 0 35%; /* 幅を35%に固定 */
    background: none !important; /* 白背景を強制削除 */
    padding: 0 !important;       /* 内側の余白をリセット */
    position: static !important;  /* 画像に重ねる設定を解除 */
    box-shadow: none !important;  /* もし影があれば削除 */
}

.room-id {
    display: block;
    font-size: 13px;
    letter-spacing: 0.2em;
    color: #999;
    margin-bottom: 15px;
}

.room-description-card h3 {
    font-size: 24px;
    margin-bottom: 20px;
    color: #333;
    font-weight: 500;
}

.room-description-card p {
    font-size: 15px;
    line-height: 1.8;
    color: #666;
}

/* 下のサムネイル部分（メイン画像と同じ幅に合わせる） */
.gallery-thumbs {
    display: flex;
    gap: 10px;
    max-width: 1200px;
    margin: 0 auto;
    width: 60%; /* メイン画像の幅(60%)に合わせると綺麗です */
    margin-left: 0; /* 左寄せ */
}

.thumb-box {
    flex: 1;
    cursor: pointer;
}

.thumb-box img {
    width: 100%;
    height: auto;
    display: block;
    transition: opacity 0.3s;
}

.thumb-box img:hover {
    opacity: 0.7;
}

/* スマホ表示：縦に並べる */
@media (max-width: 900px) {
    .gallery-top {
        flex-direction: column;
        padding: 0 20px;
    }
    .main-img-container, .room-description-card, .gallery-thumbs {
        width: 100%;
        flex: none;
    }
    .room-description-card {
        margin-top: 30px;
    }
}
/* 2. サムネイル画像の高さ統一 */
.gallery-thumbs {
    display: flex;
    gap: 10px;
    max-width: 1200px;
    margin: 30px 0 0 0; /* メイン画像との間隔を調整 */
    width: 60%; /* メイン画像の横幅と合わせる */
}

.thumb-box {
    flex: 1;
    /* 高さを固定することで、右端と左端の画像も強制的に揃えます */
    height: 120px; /* ここの数値を変えると全体の高さが変わります */
    overflow: hidden; /* はみ出た部分を隠す */
}

.thumb-box img {
    width: 100%;
    height: 100%; /* 親要素(thumb-box)の高さ一杯に広げる */
    object-fit: cover; /* 比率を保ったまま、枠内に収まりきらない部分を切り抜く */
    cursor: pointer;
    transition: opacity 0.3s ease;
    display: block;
}

.thumb-box img:hover {
    opacity: 0.8;
}

/* スマホ用の調整（高さが120pxだと高い場合は調整） */
@media (max-width: 768px) {
    .gallery-thumbs {
        width: 100%;
        margin-top: 15px;
    }
    .thumb-box {
        height: 80px; /* スマホでは高さを少し低く */
    }
}
/* セクション全体の共通設定 */
.feature-section {
    padding: 100px 0; /* 天地の空きをゆったり確保 */
    background-color: #f9f9f9; /* 背景色を統一 */
}

.gallery-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 上段：画像と文章の横並び */
.gallery-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 60px;
    margin-bottom: 30px; /* サムネイルとの間隔 */
}

.main-img-container {
    flex: 0 0 60%; /* 画像幅を60%に固定 */
}

.main-img-container img {
    width: 100%;
    height: auto;
    display: block;
}

.description-content {
    flex: 0 0 35%; /* 文章幅を35%に固定 */
}

.category-id {
    display: block;
    font-size: 13px;
    letter-spacing: 0.2em;
    color: #999;
    margin-bottom: 15px;
}

.description-content h3 {
    font-size: 24px;
    margin-bottom: 25px;
    color: #333;
}

.description-content p {
    font-size: 15px;
    line-height: 2;
    color: #666;
}

/* 下段：4点サムネイルの天地を揃える */
.gallery-thumbs {
    display: flex;
    gap: 10px;
    width: 60%; /* メイン画像の幅に合わせる */
}

.thumb-box {
    flex: 1;
    height: 120px; /* ここの高さ指定で天地がピシッと揃います */
    overflow: hidden;
}

.thumb-box img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像の比率を無視して枠いっぱいに表示 */
    display: block;
}

/* スマホ対応：縦に並べる */
@media (max-width: 900px) {
    .gallery-top {
        flex-direction: column;
        gap: 30px;
    }
    .main-img-container, .description-content, .gallery-thumbs {
        width: 100%;
    }
}
/* 反転レイアウトの時、サムネイルを右に寄せる */
.reverse-layout .gallery-thumbs {
    margin-left: auto;
    margin-right: 0;
}

/* スマホでは反転を解除して、常に画像を上にする設定（読みやすさのため） */
@media (max-width: 900px) {
    .reverse-layout .gallery-top {
        flex-direction: column-reverse; /* スマホでは画像が上、文章が下に自動で戻る */
    }
}

/* すべてのセクション共通：中央に固定する箱 */
.room-gallery {
    max-width: 1200px; /* ここをサイト全体の最大幅に設定 */
    margin: 0 auto !important; /* 強制的に左右中央へ */
    padding: 0 20px;
    width: 100%;
    display: block; /* 念のため */
}

/* 上段の並び：文字と画像を左右に振り分ける */
.gallery-top {
    display: flex;
    justify-content: space-between; /* 両端に配置 */
    align-items: center;
    gap: 5%; /* 間の隙間 */
    width: 100%;
}

/* 反転時（CUISINE, SIGHTSEEING）：左文字・右画像 */
.reverse-layout .room-description-card {
    flex: 0 0 35%; /* 文字の幅を35%に固定（これで左端が揃う） */
    text-align: left;
}

.reverse-layout .main-img-container {
    flex: 0 0 60%; /* 画像の幅を60%に固定 */
}

/* サムネイルを右側の画像の下（60%幅）に寄せる */
.reverse-layout .gallery-thumbs {
    margin-left: auto !important; /* 左側を押し出す */
    margin-right: 0 !important;
    width: 60%; /* 上の画像と同じ幅にする */
    display: flex;
    gap: 10px;
}
/* 客室、料理、ショップ、観光の全セクション */
.accommodations,
.restaurant-shop,
.secondary-room,
.feature-section,
.content-wrapper {
    background-color: #fdfcf9 !important; /* アクセスと同じ色 */
}
/* --- TOPへ戻るボタン (Scroll Downの意匠を継承) --- */
.page-top {
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 9999 !important; /* 他の要素より必ず上に */
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s ease;
}

/* スクロールしたら表示されるクラス */
.page-top.is-show {
    opacity: 1 !important;
    visibility: visible !important;
}

.page-top-text {
    font-size: 10px;
    letter-spacing: 0.3em;
    color: #333 !important; /* 文字色を確実に黒系に */
    margin-top: 8px;
    font-weight: 600; /* 少し太くして視認性をアップ */
}

.page-top-line {
    width: 2px; /* 1pxだと細すぎる場合があるので2pxに */
    height: 60px;
    background: rgba(0,0,0,0.1); /* 下地の線（薄いグレー） */
    position: relative;
    overflow: hidden;
}

/* 線がスルスルと動くアニメーション */
.page-top-line::after {
    content: "";
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    background: #333; /* 動く線（濃いグレー） */
    animation: top-line-move 3s infinite;
}

@keyframes top-line-move {
    0% { transform: translateY(100%); }
    100% { transform: translateY(-100%); }
}

/* ホバー時に少し浮き上がらせる */
.page-top:hover {
    transform: translateY(-5px);
}

@media (max-width: 768px) {
    .page-top {
        right: 20px;
        bottom: 20px;
    }
    .page-top-line {
        height: 40px;
    }
}


/* スマホでは縦に並べる調整 */
@media (max-width: 768px) {
    .footer-nav {
        flex-direction: column;
        gap: 20px;
        align-items: center;
    }
}
/* セクション全体の余白調整 */
.sightseeing-detail-copy {
    padding: 100px 0;
    background-color: #fff;
}

/* 横並びのベース（Flexbox） */
.gallery-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    gap: 40px; /* 画像とテキストの間の距離 */
}

/* 【重要】画像グループを横幅の約6割に固定 */
.gallery-image-group {
    flex: 0 0 62%;
    width: 62%;
}

.main-img-container {
    width: 100%;
    aspect-ratio: 3 / 2; /* 見本の比率に合わせる */
    overflow: hidden;
}

.main-img-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* サムネイルをメイン画像の真下に整列 */
.gallery-thumbs {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 20px;
}

.thumb-box {
    flex: 1;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}

.thumb-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 【重要】テキストグループを横幅の約3割に固定 */
.room-description-card {
    flex: 0 0 33%;
    width: 33%;
    padding-top: 10px;
}

/* テキストのスタイリング */
.room-description-card h3 {
    font-size: 24px;
    line-height: 1.6;
    margin: 15px 0 25px;
}

.en-text {
    font-size: 14px;
    line-height: 1.8;
    color: #666;
    margin-top: 20px;
}
/* --- レイアウトの基本ルールを確定させる --- */

/* 1. 基本は【画像：左 / 文章：右】 */
.gallery-top {
    display: flex !important;
    flex-direction: row !important; /* 基本は左から右 */
    justify-content: space-between;
    align-items: flex-start;
    gap: 5%;
    max-width: 1200px;
    margin: 0 auto;
}

/* 2. 画像グループ（左側）の幅を固定 */
.gallery-image-group {
    flex: 0 0 62% !important;
}

/* 3. 文章カード（右側）の幅を固定 */
.room-description-card {
    flex: 0 0 33% !important;
    background: transparent !important; /* 余計な背景色や枠を消す */
    padding: 0 !important;
    text-align: left !important;
}

/* 4. 反転用クラスがある時だけ【文章：左 / 画像：右】にする */
.reverse-layout .gallery-top {
    flex-direction: row-reverse !important;
}

/* 5. ショップ専用：強制的に反転を解除（念のため） */
.restaurant-shop .gallery-top {
    flex-direction: row !important;
}
/* メイン画像を枠いっぱいに広げる設定 */
.gallery-image-group .main-img-container {
    width: 100% !important;
    height: auto !important;
    margin-bottom: 20px; /* サムネイルとの間隔 */
}

.gallery-image-group .main-img-container img {
    width: 100% !important;   /* 横幅いっぱいに */
    height: 500px !important; /* 高さを固定して揃える（お好みで調整してください） */
    object-fit: cover !important; /* 画像を切り抜いて枠にフィットさせる */
    display: block;
}

/* サムネイルも横幅いっぱいに並ぶよう調整 */
.gallery-thumbs {
    display: flex !important;
    justify-content: space-between !important;
    gap: 10px !important;
    width: 100% !important;
}

.thumb-box {
    flex: 1 !important; /* 全てのサムネイルを均等な幅に */
}

.thumb-box img {
    width: 100% !important;
    height: 80px !important; /* サムネイルの高さを揃える */
    object-fit: cover !important;
}
/* サムネイル画像のサイズ調整 */
.thumb-box img {
    width: 100% !important;
    /* ここの数値を 80px から 120px〜150px くらいに上げると天地が伸びます */
    height: 130px !important; 
    object-fit: cover !important; /* 高さを出しても画像が歪まないように固定 */
    cursor: pointer;
    transition: opacity 0.3s;
}

/* ついでに：マウスを乗せた時に少し薄くすると「クリックできる」感が出ます */
.thumb-box img:hover {
    opacity: 0.7;
}

/* サムネイル同士の間隔を少し広げたい場合はここ */
.gallery-thumbs {
    display: flex !important;
    gap: 15px !important; /* 10pxから15pxに微増 */
    margin-top: 15px !important;
}
/* --- Privacy Page Content Styles --- */
.privacy-page {
    background-color: #fff;
    color: #333;
    line-height: 1.8;
}

.privacy-container {
    max-width: 800px; /* 文章を読みやすくするために幅を絞る */
    margin: 100px auto; /* 上下に余白 */
    padding: 0 20px;
    font-family: 'Noto Serif JP', serif;
}

.privacy-container h1 {
    font-size: 1.8rem;
    font-weight: 400;
    margin-bottom: 60px;
    text-align: center;
    letter-spacing: 0.1em;
}

.privacy-container h2 {
    font-size: 1.1rem;
    font-weight: 500;
    margin: 40px 0 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.privacy-container p, .privacy-container li {
    font-size: 0.95rem;
    color: #555;
}
/* =================================================
   Footer Area - Fix Link Colors & Layout Overlap
   ================================================= */
.site-footer { 
    background: #333 !important; 
    color: #fff !important; 
    padding: 100px 0 20px !important; 
    width: 100%; 
    margin: 0;
    font-family: 'Noto Serif JP', serif;
}

.footer-inner {
    /* マップの幅と完全に一致させるための設定 */
    width: 90%; 
    max-width: 1200px; 
    margin: 0 auto; 
    display: flex; 
    justify-content: space-between; /* ロゴ左・電話右 */
    align-items: flex-start;
}

/* 左：ロゴ */
.footer-left {
    flex: 0 0 auto;
}
.footer-logo { 
    height: 30px; 
    display: block;
    filter: brightness(0) invert(1); 
}

/* 中央：メニュー（色が青くなる・重なる問題を解消） */
.footer-nav { 
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    list-style: none !important; 
    padding: 0 !important;
    margin: 0 !important;
    gap: 16px; /* 行間の重なりを解消 */
    transform: translateY(-2px); 
    /* 配置バランスの調整：少しだけロゴよりにする */
    margin-right: auto;
    margin-left: 100px;
}

.footer-nav li {
    list-style: none !important;
    line-height: 1.2;
}

/* リンクが青くなる問題を強制上書き */
.footer-nav li a {
    color: #fff !important; 
    text-decoration: none !important;
    display: flex;
    align-items: baseline;
    gap: 25px;
}

.footer-nav .jp {
    font-size: 0.9rem;
    font-weight: 300;
    letter-spacing: 0.15em;
    min-width: 135px;
    color: #fff !important; /* 日本語部分を白に固定 */
}

.footer-nav .en {
    font-size: 0.65rem;
    font-weight: 200;
    opacity: 0.5;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #fff !important; /* 英語部分も白（透過）に固定 */
}

/* 右側：3行構成（電話・住所・ポリシー） */
.footer-right { 
    flex: 0 0 auto;
    text-align: right; 
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    transform: translateY(-7px); 
}

.f-tel { 
    font-size: 1.9rem; 
    font-weight: 300; 
    margin: 0 0 10px 0;
    letter-spacing: 0.05em; 
    color: #fff !important; 
    line-height: 1;
}

.f-addr { 
    font-size: 0.75rem; 
    font-weight: 400; 
    margin: 0 0 18px 0;
    opacity: 0.8;
}

.f-sub { 
    display: flex; 
    gap: 20px; 
    justify-content: flex-end; 
    align-items: center; 
}

.f-sub a { 
    font-size: 0.75rem; 
    color: #fff !important; 
    text-decoration: none !important; 
    opacity: 0.8;
}

.insta-link { 
    font-size: 1.1rem; 
    color: #fff !important;
}

/* コピーライトエリア */
.footer-bottom { 
    border-top: 1px solid rgba(255,255,255,0.05); 
    margin-top: 60px; 
    padding: 10px 0; 
    text-align: center; 
}

.copyright { 
    font-size: 0.65rem; 
    opacity: 0.4; 
    color: #fff !important;
    margin: 0;
}
/* --- Header Styles for Privacy Page --- */
.site-header {
    width: 100%;
    padding: 30px 0;
    background: #fff; /* 白背景にする場合 */
    border-bottom: 1px solid #eee;
}

/* ヘッダーの中の横幅を決める要素 */
.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    
    /* ここがポイント！ */
    width: 95%;            /* 画面の横幅に対して常に95%を維持（可変にする） */
    max-width: none;       /* もし max-width があったら解除する */
    margin: 0 auto;        /* 中央寄せ */
    padding: 20px 0;       /* 上下の余白 */
}

/* 右側のメニューグループ */
.header-right {
    display: flex;
    align-items: center;
    gap: 30px;             /* アイテム同士の間隔 */
}

.main-logo {
    height: 40px; /* ロゴの大きさを調整 */
    width: auto;
}
/* プライバシーページ専用の余白調整 */
.privacy-page-wrapper {
    padding-top: 150px; /* ヘッダーが重ならないように上の余白を確保 */
    padding-bottom: 100px;
}

.policy-content h3 {
    font-size: 1.1rem;
    margin: 40px 0 15px;
    font-weight: 500;
}

.policy-content p {
    margin-bottom: 20px;
    font-size: 0.95rem;
    color: #555;
}
/* --- Sub Page Hero Area --- */
.sub-hero {
    height: 400px; /* 中面用の高さ */
    background: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), 
                url('images/hero-poster.jpg'); /* 背景画像は適宜変更してください */
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
}



/* --- Legal Content Layout --- */
.legal-content {
    max-width: 800px;
    margin: 80px auto;
    padding: 0 20px;
    line-height: 1.8;
    color: #333;
}

.legal-content h2 {
    font-size: 1.25rem;
    margin: 40px 0 20px;
    font-weight: 400;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.legal-content ul {
    margin-bottom: 20px;
    padding-left: 20px;
}

.contact-box {
    background: #f9f9f9;
    padding: 20px;
    margin-top: 30px;
    border-radius: 4px;
}
/* --- 下層ページ共通スタイル --- */
.sub-page .sub-hero {
    position: relative;
    width: 100%;
    height: 450px; /* 画像の高さ */
    background: url('images/hero-poster.jpg') no-repeat center center; /* 宿泊約款と同じ画像 */
    background-size: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
}

.sub-page .sub-hero .overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.4);
}

.sub-page .sub-hero .hero-content {
    position: relative;
    z-index: 1;
}

.sub-page .sub-hero h1 {
    font-size: 1.2rem;
    font-weight: 300;
    letter-spacing: 0.15em;
    margin-top: 10px;
}

.sub-page .section-label {
    font-size: 0.9rem;
    letter-spacing: 0.3em;
    opacity: 0.8;
}

/* コンテンツの器 */
.sub-container {
    max-width: 1000px;
    margin: 80px auto;
    padding: 0 20px;
    min-height: 400px; /* コンテンツが少なくてもフッターが浮かないように */
}
/* --- Sub Page Hero Area (Privacy, Terms, etc.) --- */
.sub-page .sub-hero {
    position: relative;
    width: 100%;
    height: 450px; /* 画像の高さ。見え方に合わせて調整してください */
    background: url('images/heron-poster.jpg') no-repeat center center; /* 画像パス */
    background-size: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff; /* 文字色を白に */
}

/* 画像の上に薄い黒を重ねて、文字を読みやすくする（オーバーレイ） */
.sub-page .sub-hero::before {
    content: "";
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.3); /* 0.3は暗さの度合い（0〜1） */
}

.sub-page .hero-content {
    position: relative;
    z-index: 1; /* オーバーレイより上に表示 */
}

.sub-page .sub-hero h1 {
    font-size: 1.5rem; /* タイトルの大きさ */
    font-weight: 300;
    letter-spacing: 0.15em;
    margin-top: 10px;
}

.sub-page .section-label {
    font-size: 0.9rem;
    letter-spacing: 0.3em;
    text-transform: uppercase; /* 英字を大文字に */
    opacity: 0.8;
}
/* 下層ページのヒーローエリア設定 */
.sub-hero {
    position: relative;
    width: 100%;
    height: 60vh;           /* 画面の高さの60%くらい使うとポスターらしくなります */
    min-height: 400px;
    background-image: url('images/heron-poster.jpg'); /* ここで画像を指定 */
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;            /* 文字を白に */
    margin-top: 0;          /* ヘッダーとの隙間を埋める */
}

/* 文字を読みやすくするために画像に薄い膜を敷く */
.sub-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.4); /* 0.4は暗さの調整です */
}

.hero-content {
    position: relative;
    z-index: 1;             /* 膜より上に文字を出す */
    text-align: center;
}
/* --- 下層ページ（format.htmlなど）だけを細くする専用命令 --- */
.sub-page header {
    padding: 10px 0 !important; /* 強制的に細くする */
}

.sub-page .logo img {
    height: 30px !important;    /* 強制的にロゴを小さくする */
}
/* --- format.html（下層ページ）専用の背景色と余白設定 --- */

.sub-page .content-wrapper {
    /* 背景色：index.htmlのexperience-introと同じ温かい白 */
    background-color: #f7f6f2 !important; 
    padding: 100px 0; /* 上下にゆったりとした余白 */
    min-height: 50vh; /* コンテンツが少なくても寂しくならないよう高さを確保 */
}

.content-inner {
    max-width: 800px; /* 文章を読みやすくするために幅を制限 */
    margin: 0 auto;   /* 中央寄せ */
    padding: 0 5%;
    color: #333;       /* 文字色を読みやすい黒に */
    line-height: 2.0; /* 行間を広くして「ゆとり」を演出 */
    font-family: 'Noto Serif JP', serif;
}

.content-inner h2 {
    font-size: 1.4rem;
    font-weight: 400;
    margin: 60px 0 30px;
    border-bottom: 1px solid #dcdcdc; /* 繊細な区切り線 */
    padding-bottom: 15px;
}
/* --- 下層ページ（format.html）専用スタイル --- */

/* 1. ヒーローエリアの高さを半分に */
.sub-hero {
    position: relative;
    height: 50vh; /* 天地半分 */
    min-height: 400px;
    background-image: url('images/heron-poster.jpg'); /* 背景画像 */
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

/* 文字の視認性を高めるオーバーレイ */
.sub-hero::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.3); /* 画像の上に薄い膜を敷く */
}

.hero-content {
    position: relative;
    z-index: 1;
    text-align: center;
}

/* 2. ヘッダーの初期状態を透明にする（index.htmlと同一にする） */
/* さきほどの .sub-page header { background: #333 !important; } の記述は削除してください */

header {
    background: transparent !important; /* 初期は透明 */
}

header.scrolled {
    background: #333 !important; /* スクロールしたら濃いグレー */
    padding: 15px 0 !important;
}

/* 3. コンテンツエリアの背景色と余白 */
.content-wrapper {
    background-color: #f7f6f2; /* index.htmlのexperienceセクション等と同じ色 */
    padding: 100px 0;
    color: #333;
}

.content-inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
    line-height: 2.0;
}
/* 宿泊約款・テーブルの調整 */
.legal-table {
    width: 100%;
    border-collapse: collapse;
    margin: 30px 0;
    font-size: 0.85rem;
    background: #fff; /* テーブル内は白で見やすく */
}

.legal-table th, .legal-table td {
    border: 1px solid #dcdcdc;
    padding: 12px 8px;
    text-align: center;
}

.legal-table th {
    background-color: #eee;
    font-weight: 500;
}

.table-note {
    font-size: 0.8rem;
    color: #666;
    margin-top: -20px;
    margin-bottom: 40px;
}

/* 箇条書きの調整 */
.legal-list {
    margin: 20px 0;
    padding-left: 20px;
}

.legal-list li {
    margin-bottom: 10px;
    list-style-type: disc;
}

.terms-content h3 {
    font-size: 1.1rem;
    margin-top: 50px;
    border-left: 3px solid #333;
    padding-left: 15px;
    line-height: 1.2;
}
/* 別表セクション全体の調整 */
.appendix-section {
    margin-bottom: 60px;
}

.appendix-title {
    font-size: 1rem;
    font-weight: bold;
    margin-bottom: 20px;
    color: #333;
    line-height: 1.5;
}

.appendix-relation {
    font-size: 0.85rem;
    margin-top: -15px;
    margin-bottom: 20px;
}

/* テーブル共通スタイル */
.appendix-table {
    width: 100%;
    border-collapse: collapse;
    background-color: #fff;
    border: 1px solid #ccc;
    font-size: 0.9rem;
    margin-bottom: 10px;
}

.appendix-table th, .appendix-table td {
    border: 1px solid #ccc;
    padding: 12px 15px;
    vertical-align: middle;
}

/* 別表第1のレイアウト */
.table-type-1 th {
    background-color: #f9f9f7;
    font-weight: bold;
    text-align: left;
    width: 25%;
}

/* 別表第2（垂直レイアウト） */
.penalty-table-vertical {
    max-width: 400px; /* 見本のように横幅を抑える */
}

.penalty-table-vertical thead th {
    background-color: #eee;
    text-align: center;
    font-weight: bold;
}

.penalty-table-vertical tbody th {
    background-color: #f9f9f7;
    text-align: center;
    width: 50%;
}

.penalty-table-vertical td {
    text-align: center;
    font-weight: bold; /* 比率を強調 */
}

/* 注釈 */
.note {
    font-size: 0.8rem;
    color: #666;
    line-height: 1.6;
    margin-top: 10px;
}

/* スマホ表示で表がはみ出さないように */
@media (max-width: 768px) {
    .penalty-table-vertical {
        max-width: 100%;
    }
}
/* --- 利用規則のリストを枠内に完全固定する設定 --- */

/* リスト全体の余白を作り、枠外への飛び出しを物理的に不可能にする */
.rules-section ul.rules-list, 
.rules-section ul.rules-list-dot {
    list-style: none !important;      /* 標準のポッチを消す */
    padding-left: 1.5rem !important;  /* ★左側に十分な余白を作って枠内に入れる */
    margin-left: 0 !important;
    margin-bottom: 20px;
}

/* 各項目の設定（ぶら下げインデント：2行目もきれいに揃える） */
.rules-section li {
    position: relative !important;
    padding-left: 0 !important;       /* li自体の余白はリセット */
    margin-bottom: 10px;
    line-height: 1.7;
    color: #333;
    list-style-type: none !important;
}

/* 全ての項目に「・」を付け、枠内に配置する */
.rules-section li::before {
    content: "・" !important;         /* ★「・」を表示 */
    position: absolute !important;
    left: -1.2rem !important;         /* padding-leftで作ったスペースに配置 */
    font-weight: bold;
}

/* 「おやめ頂きたい事」の1. 2. などの見出しは「・」を付けない */
.rules-section h4 {
    margin-left: 0 !important;
    padding-left: 0 !important;
}
/* マップ切り替えエリアのスタイル */
.map-switch {
    margin-bottom: 10px;
    display: flex;
    justify-content: flex-end; /* 右寄せ */
}

.map-switch button {
    background: #fff;
    border: 1px solid #333;
    padding: 6px 20px;
    font-size: 11px;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: 'Noto Serif JP', serif;
    color: #333;
}

/* 選択されているボタンのスタイル */
.map-switch button.active {
    background: #333;
    color: #fff;
}

/* ボタンの角を少し丸める処理 */
.map-switch button:first-child {
    border-radius: 2px 0 0 2px;
}
.map-switch button:last-child {
    border-radius: 0 2px 2px 0;
    border-left: none; /* 境界線の重複を防ぐ */
}

/* マップ表示の切り替えアニメーション（任意） */
.map-frame {
    animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ==========================================
   スマホ用ハンバーガーメニュー設定 (768px以下)
   ========================================== */
@media screen and (max-width: 768px) {
    /* キャッチコピー（景色となって佇む…）の調整 */
    .concept-message p {
        font-size: 12px !important; 
        line-height: 2.2 !important;
        color: #fff !important;
        letter-spacing: 0.15em !important;
        margin-top: 15px !important;
        padding: 0 20px !important;
        text-align: center !important;
    }

    /* 見出し（CONCEPTなど）の調整：1つにまとめました */
    .concept-text h2, .concept h2 {
        font-size: 18px !important;
        margin-bottom: 10px !important;
    }

    /* 1. 画面全体のはみ出しを強制カット */
    html, body {
        overflow-x: hidden !important;
        width: 100% !important;
        position: relative;
    }

    /* 2. ヘッダー内の要素の調整 */
    .header-inner {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 15px !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }

    /* 3. ロゴのサイズ調整 */
    .logo img {
        height: 25px !important;
        width: auto !important;
    }
    @media screen and (max-width: 768px) {
    /* --- 他のコードがすでに入っているはずです --- */

    /* ★ここに追加！閉じカッコの「内側」に入れます */
    .concept-text h2 {
        font-size: 20px !important; 
        line-height: 1.6 !important;
        margin-bottom: 15px !important;
    }
    
    /* --- 省略：前のコードの続き --- */
    .reserve-btn {
        padding: 5px 8px !important;
        font-size: 9px !important;
        margin-right: 8px !important;
        letter-spacing: 0 !important;
    }

    /* 5. ハンバーガーボタンの表示確定 */
    .hamburger {
        display: block !important;
        width: 30px !important;
        height: 25px !important;
        position: relative !important;
        cursor: pointer;
        z-index: 9999 !important;
        flex-shrink: 0 !important;
    }

    /* ★ここが重要：スマホ用の見出しサイズ調整（閉じカッコの内側に入れる） */
    .concept-text h2 {
        font-size: 20px !important; /* スマホでちょうど良いサイズ */
        line-height: 1.6 !important;
        margin-bottom: 15px !important;
    }

} /* ←【重要】これが348行目くらいに来る「一番最後」の閉じカッコです */
    /* 3. 三本線の位置を調整 */
    .hamburger span:nth-child(1) { top: 0 !important; }
    .hamburger span:nth-child(2) { top: 10px !important; }
    .hamburger span:nth-child(3) { top: 20px !important; }
    
    /* 2. 中の三本線の太さと色を強制指定 */
    .hamburger span {
        display: block !important;
        position: absolute !important;
        width: 100% !important;
        height: 2px !important; /* 線の太さ */
        background-color: #ffffff !important; /* 線の色を白に固定 */
        left: 0 !important;
        transition: all 0.3s;
    }
/* 4. ヘッダー内での並び順を固定 */
    .header-right {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important; /* 予約ボタンとハンバーガーの間隔 */
    }
    /* 2. PC用のナビゲーションを一旦隠し、スマホ用の全画面スタイルに設定 */
    .main-nav {
        display: none; /* 通常時は非表示 */
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: rgba(0, 0, 0, 0.95); /* 背景を暗くしてメニューを目立たせる */
        z-index: 2000;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    /* 3. JavaScriptで「active」クラスがついた時だけ表示 */
    .main-nav.active {
        display: flex !important;
    }

    /* 4. メニュー内のリストを縦並びに */
    .nav-links {
        flex-direction: column !important;
        text-align: center;
        gap: 30px !important;
    }

    .nav-links li a {
        font-size: 18px !important;
        color: #fff !important;
        text-decoration: none;
    }

    /* 5. ハンバーガーアイコンのアニメーション（クリック時） */
    .hamburger.active span:nth-child(1) {
        transform: translateY(10px) rotate(45deg);
    }
    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }
    .hamburger.active span:nth-child(3) {
        transform: translateY(-10px) rotate(-45deg);
    }
    @media screen and (max-width: 768px) {
    /* --- スマホ時の基本ルール --- */
    .pc-only { display: none !important; } /* スマホではPC用を消す */
    .sp-only { display: block !important; } /* スマホではスマホ用を出す */

    /* --- カードデザイン（A.pngの再現） --- */
    .sp-card-layout {
        background-color: #ffffff;
        margin: 0 20px 20px;
        border-radius: 2px;
        overflow: hidden;
        box-shadow: 0 4px 20px rgba(0,0,0,0.3);
    }
    .sp-thumb-grid {
        display: flex; gap: 5px; padding: 5px 10px; background: #fff;
    }
    .sp-thumb-grid img {
        width: calc(25% - 4px); aspect-ratio: 1 / 1; object-fit: cover;
    }
    .sp-card-content {
        padding: 30px 20px; text-align: center; background-color: #fff;
    }
    .sp-card-title {
        font-size: 18px; color: #333; line-height: 1.6; margin-bottom: 20px;
    }
    .sp-card-text {
        font-size: 13px; line-height: 1.8; color: #333; text-align: justify; margin-bottom: 15px;
    }
    .sp-card-text-en {
        font-size: 11px; line-height: 1.6; color: #888; font-family: serif; text-align: justify;
    }
}
/* style.css のメディアクエリ内に追加 */

    .sp-card-image img {
        width: 100% !important; /* 横幅をいっぱいに広げる */
        height: auto !important; /* 高さを自動調整（これで縦長が解消されます） */
        aspect-ratio: 4 / 3; /* ★もし正方形にしたい場合はこれ（見本に合わせて調整してください） */
        object-fit: cover; /* 画像を切り抜いて枠にフィットさせる */
    }
}