@charset "UTF-8";
/* ==========================================================================
   車山ギャラクシー トップページ専用スタイル【test 20260604】
   home.css のクローン + カンプ（galaxy-camp）寄せの追加スタイル
   （共通スタイル・ヘッダー・フッターは style.css 側 / フッターはテスト用に
    .home-footer をこのファイルで独自定義）
   ========================================================================== */

/* ==========================================================================
   共通: 見出し
   ========================================================================== */
.heading {
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  line-height: 1.3;
}
.heading--center { align-items: center; text-align: center; }
.heading__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 400;
  font-size: 40px;
  color: var(--color-accent);
  letter-spacing: 0.03em;
}
.heading__en--xl { font-size: 56px; }
.heading__jp {
  font-family: var(--font-jp-serif);
  font-size: 22px;
  font-weight: 500;
  color: var(--color-text);
}
.heading__jp--xl { font-size: 36px; }
.heading--jp-large {
  font-family: var(--font-jp-serif);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.6;
}

/* ==========================================================================
   ヒーロー
   ========================================================================== */
.hero {
  position: relative;
  width: 100%;
  height: 78vh;
  min-height: 560px;
  overflow: hidden;
}
.hero__image { position: absolute; inset: 0; }
.hero__image img { width: 100%; height: 100%; object-fit: cover; }
.hero__copy {
  position: absolute;
  left: 6%;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  text-shadow: 0 2px 24px rgba(0,0,0,0.4);
}
.hero__lead {
  font-family: var(--font-jp-serif);
  font-size: clamp(28px, 4vw, 56px);
  font-weight: 500;
  line-height: 1.5;
  margin: 0 0 24px;
}
.hero__brand {
  position: absolute;
  left: clamp(12px, 3vw, 10px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  margin: 0;
  line-height: 0;
}
.hero__brand-img {
  display: block;
  width: auto;
  height: clamp(260px, 52vh, 440px);
  max-height: calc(100% - 48px);
  object-fit: contain;
}

/* ==========================================================================
   予約検索バー
   ========================================================================== */
.reserve-bar {
  background: #fff;
  border-bottom: 1px solid var(--color-line);
  box-shadow: 0 4px 24px rgba(58, 45, 31, 0.06);
}
.reserve-bar__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 24px 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  gap: 20px;
  align-items: end;
}
.reserve-bar__field { display: flex; flex-direction: column; gap: 6px; }
.reserve-bar__field label {
  font-family: var(--font-jp-sans);
  font-size: 16px;
  color: var(--color-text-sub);
  letter-spacing: 0.1em;
}
.reserve-bar__field input,
.reserve-bar__field select {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  padding: 10px 12px;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  background: #fff;
  color: var(--color-text);
}
.reserve-bar__submit { padding: 12px 32px; }

/* ==========================================================================
   共通セクション
   ========================================================================== */
.section { padding: 120px 0; }
.section--alt { background: var(--color-bg-alt); }
.section__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 32px;
}
.section__inner--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.section__inner--reverse > .section__image { order: -1; }
.section__inner--reverse > .section__text { order: 1; }
.section__text > p { margin: 0 0 20px; }
.section__text .lead {
  font-size: 20px;
  font-weight: 500;
  margin-bottom: 28px;
  color: var(--color-accent-dk);
}
.section__image img { width: 100%; height: auto; border-radius: 4px; }
.section__image--right { padding-left: 40px; }
.section__more {
  margin-top: 56px;
  display: flex;
  justify-content: center;
}

/* ==========================================================================
   STORY セクション
   ========================================================================== */
.section--story { background: var(--color-bg-alt); }
.story__main { position: relative; }
.story__main > img { width: 100%; border-radius: 4px; }
.story__thumbs {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.story__thumbs img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; }

/* ==========================================================================
   ワイドバナー
   ========================================================================== */
.wide-banner { width: 100%; overflow: hidden; }
.wide-banner img { width: 100%; height: auto; display: block; }

/* ==========================================================================
   プラン
   ========================================================================== */
.section--plans, .section--plan-list { background: var(--color-bg); }
.plan-grid {
  display: grid;
  gap: 48px;
  margin-top: 56px;
}
.plan-grid--2 { grid-template-columns: 1fr 1fr; }
.plan-card { display: flex; flex-direction: column; gap: 16px; }
.plan-card__img img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: 4px;
}
.plan-card__title {
  font-family: var(--font-jp-serif);
  font-size: 22px;
  font-weight: 500;
  margin: 8px 0 4px;
  line-height: 1.5;
}
.plan-card__meta {
  font-family: var(--font-jp-serif);
  font-size: 14px;
  color: var(--color-text-sub);
  margin: 0;
}
.plan-card__text {
  font-size: 16px;
  margin: 0;
  line-height: 1.9;
}
.plan-card .btn { align-self: flex-start; margin-top: 12px; }

/* ==========================================================================
   Cuisine
   ========================================================================== */
.section--cuisine { background: var(--color-bg-alt); }
.cuisine__images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-top: 48px;
}
.cuisine__images img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
}
.cuisine__text {
  max-width: 900px;
  margin: 56px auto 0;
  text-align: center;
}
.cuisine__text p { margin: 0 0 20px; }

/* ==========================================================================
   Bath / Room
   ========================================================================== */
.section--bath { background: var(--color-bg); }
.section--room { background: var(--color-bg-alt); }

/* ==========================================================================
   周辺観光
   ========================================================================== */
.section--sightseeing { background: var(--color-bg); }
.sightseeing__lead {
  max-width: 800px;
  margin: 0 auto 56px;
  text-align: center;
}
.sightseeing__lead p { margin: 0 0 16px; }
.sightseeing__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 80px;
}
.tour-card__img img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
}
.sightseeing__sub {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 26px;
  font-weight: 500;
  margin: 0 0 32px;
  color: var(--color-text);
}
.sightseeing__news {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.news-thumb-card {
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 2px 16px rgba(58,45,31,0.06);
}
.news-thumb-card__img img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
}
.news-thumb-card__body { padding: 20px 22px 24px; }
.news-thumb-card__title {
  font-size: 18px;
  margin: 0 0 6px;
  font-weight: 500;
}
.news-thumb-card__text {
  font-size: 16px;
  color: var(--color-text-sub);
  margin: 0 0 10px;
}
.news-thumb-card__date {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 14px;
  color: var(--color-accent);
  margin: 0;
}

/* ==========================================================================
   お知らせ
   ========================================================================== */
.section--news { background: var(--color-bg-alt); }
.news-list {
  list-style: none;
  margin: 56px 0 0;
  padding: 0;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.news-list__item {
  display: grid;
  grid-template-columns: 120px 100px 1fr;
  gap: 24px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--color-line);
}
.news-list__date {
  font-family: var(--font-en-serif);
  font-style: italic;
  color: var(--color-accent-dk);
  font-size: 16px;
}
.news-list__cat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  border: 1px solid var(--color-accent);
  color: var(--color-accent-dk);
  font-family: var(--font-jp-sans);
  font-size: 14px;
  border-radius: 999px;
  width: max-content;
}
.news-list__title { font-size: 16px; color: var(--color-text); }

/* ==========================================================================
   イベント情報
   ========================================================================== */
.section--event { background: var(--color-bg); }
.event-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 56px;
}
.event-card { display: flex; flex-direction: column; gap: 10px; }
.event-card__img img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
}
.event-card__date {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 14px;
  color: var(--color-accent);
  margin: 4px 0 0;
}
.event-card__text {
  font-size: 16px;
  color: var(--color-text-sub);
  margin: 0;
}

/* ==========================================================================
   アクセス
   ========================================================================== */
.section--access { background: var(--color-bg-alt); }
.access__lead {
  font-size: 22px;
  font-weight: 500;
  color: var(--color-accent-dk);
  margin: 0 0 20px;
}

/* お問合せ（.section--contact / .contact__*）・共通フッター（.home-footer*）は style.css に集約（全ページ共通） */

/* ==========================================================================
   レスポンシブ（ベース）
   ========================================================================== */
@media (max-width: 900px) {
  .section { padding: 72px 0; }
  .section__inner { padding: 0 24px; }
  .section__inner--split { grid-template-columns: 1fr; gap: 40px; }
  .section__image--right { padding-left: 0; }
  .section__inner--reverse > .section__image { order: 0; }
  .section__inner--reverse > .section__text { order: 0; }

  .reserve-bar__inner {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
  .reserve-bar__submit { grid-column: 1 / -1; }

  .heading__en { font-size: 32px; }
  .heading__en--xl { font-size: 44px; }
  .heading__jp { font-size: 18px; }
  .heading__jp--xl { font-size: 28px; }
  .heading--jp-large { font-size: 24px; }

  .plan-grid--2, .cuisine__images, .sightseeing__cards, .sightseeing__news {
    grid-template-columns: 1fr;
  }
  .event-grid { grid-template-columns: 1fr 1fr; }

  .news-list__item {
    grid-template-columns: 100px 80px;
    grid-template-rows: auto auto;
    gap: 8px 16px;
  }
  .news-list__title { grid-column: 1 / -1; }

  .hero { height: 60vh; min-height: 420px; }
  .hero__copy { left: 6%; right: 6%; top: 50%; transform: translateY(-50%); }
  .hero__brand-img { height: clamp(200px, 42vh, 320px); }
}

@media (max-width: 600px) {
  .reserve-bar__inner { grid-template-columns: 1fr; }
  .event-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ▼▼▼ ここから test 追加分（カンプ寄せ）▼▼▼
   ========================================================================== */

/* --- 1) Cuisine: 料理5枚ギャラリー帯 --- */
.cuisine__gallery {
  margin-top: 64px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.cuisine__gallery img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 4px;
}

/* --- 2) 周辺観光: 大判風景写真2枚 --- */
.sightseeing__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.sightseeing__photos img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  border-radius: 4px;
}

/* --- 3) 車山高原のお花: スライダー --- */
.section--flower { background: var(--color-bg); padding-top: 0; }
.flower__title {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 26px;
  font-weight: 500;
  margin: 0 0 36px;
  padding-top: 8px;
  color: var(--color-text);
  border-top: 1px solid var(--color-line);
}
.flower-slider {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
}
.flower-slider__viewport {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex: 1 1 auto;
}
.flower-slider__viewport::-webkit-scrollbar { display: none; }
.flower-slider__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 48px) / 3);
  gap: 24px;
  padding: 8px 4px;
}
.flower-card {
  scroll-snap-align: start;
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(58,45,31,0.10);
}
.flower-card__img img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
}
.flower-card__body { padding: 14px 18px 20px; }
.flower-card__t { font-size: 16px; margin: 0 0 6px; color: var(--color-text-sub); }
.flower-card__d { font-size: 16px; margin: 0 0 8px; color: var(--color-text); }
.flower-card__date {
  text-align: right;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 14px;
  color: var(--color-accent);
  margin: 0;
}
.flower-slider__arrow {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--color-line);
  background: #fff;
  cursor: pointer;
  position: relative;
  box-shadow: 0 2px 10px rgba(58,45,31,0.08);
  transition: background .2s;
}
.flower-slider__arrow:hover { background: var(--color-bg-alt); }
.flower-slider__arrow::before {
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 10px; height: 10px;
  border-top: 2px solid var(--color-accent-dk);
  border-right: 2px solid var(--color-accent-dk);
  margin-top: -5px;
}
.flower-slider__arrow--prev::before { transform: translate(-30%,0) rotate(-135deg); }
.flower-slider__arrow--next::before { transform: translate(-70%,0) rotate(45deg); }
.section--flower .section__more { justify-content: flex-end; }

/* --- 4) お知らせ: 左見出し+ボタン / 右一覧 の2カラム --- */
.news-block {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 56px;
  align-items: start;
}
.news-block__head .heading { align-items: flex-start; text-align: left; margin-bottom: 28px; }
.news-block .news-list { margin: 0; max-width: none; }
.news-block .news-list__item:first-child { padding-top: 0; }

/* --- 5) イベント: 2行テキスト（順序は本文側で text→date） --- */
.event-card__text { line-height: 1.7; }

/* --- 6) アクセス: 淡色ボックス内 文左/地図右 + 濃色GoogleMap --- */
.access__box {
  margin-top: 56px;
  background: var(--color-bg);
  border: 1px solid var(--color-line);
  border-radius: 6px;
  padding: 48px;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 48px;
  align-items: center;
}
.access__pin { margin-right: 6px; }
.access__box .access__lead { display: flex; align-items: center; }
.access__map { position: relative; }
.access__map img {
  width: 100%;
  border-radius: 4px;
  border: 1px solid var(--color-line);
}
.access__map-link {
  position: absolute;
  bottom: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  padding: 9px 18px;
  background: #1d1d1f;
  color: #fff;
  font-family: var(--font-en-sans);
  font-size: 14px;
  letter-spacing: 0.08em;
  border-radius: 6px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}

/* お問合せ詳細（.contact__*）・共通フッター（.home-footer*）は style.css に集約（全ページ共通） */

/* ==========================================================================
   ▼ test 追加分のレスポンシブ
   ========================================================================== */
@media (max-width: 900px) {
  .cuisine__gallery { grid-template-columns: repeat(3, 1fr); }
  .sightseeing__photos { grid-template-columns: 1fr; }
  .sightseeing__photos img { height: 240px; }
  .flower-slider__track { grid-auto-columns: calc((100% - 24px) / 2); }
  .news-block { grid-template-columns: 1fr; gap: 28px; }
  .news-block__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .news-block__head .heading { margin-bottom: 0; }
  .access__box { grid-template-columns: 1fr; gap: 28px; padding: 28px; }
}

@media (max-width: 600px) {
  .cuisine__gallery { grid-template-columns: repeat(2, 1fr); }
  .flower-slider__track { grid-auto-columns: 78%; }
}

/* ==========================================================================
   「お料理」ページ（page-cuisine.php）専用スタイル
   ※ Figma「ギャラクシー（お料理）」より起こし。
   すべて .page-cuisine 配下に cz- プレフィックスでスコープし、
   トップページや他ページのクラス（.cuisine__ ・.section 等）と競合しない。
   ========================================================================== */
.page-cuisine {
  --cz-accent:  #9e6a43; /* 英字大見出し・本文アクセント */
  --cz-gold:    #b2a566; /* 小ラベル・季節英字 */
  --cz-heading: #353535; /* 和文大見出し */
  --cz-text:    #515150; /* 本文 */
  --cz-maxw:    1180px;
}
.page-cuisine { color: var(--cz-text); }
.page-cuisine .cz-inner {
  max-width: var(--cz-maxw);
  margin: 0 auto;
  padding: 0 32px;
}

/* セクション共通 */
.page-cuisine .cz-section { padding: 110px 0; }
.page-cuisine .cz-section--alt { background: var(--color-bg-alt); }
.page-cuisine .cz-label {
  text-align: center;
  font-family: var(--font-en-sans);
  font-size: 14px;
  letter-spacing: 0.18em;
  color: var(--cz-gold);
  margin: 0 0 24px;
}
.page-cuisine .cz-note {
  font-size: 14px;
  color: var(--color-text-sub);
  margin: 18px 0 0;
}
.page-cuisine .cz-note--center { text-align: center; }

/* セクション見出し（和文大＋英字） */
.page-cuisine .cz-secttl { line-height: 1.2; margin: 0 0 18px; }
.page-cuisine .cz-secttl__jp {
  display: block;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(24px, 3.6vw, 37px);
  color: var(--cz-heading);
  letter-spacing: 0.04em;
}
.page-cuisine .cz-secttl__en {
  display: block;
  font-family: var(--font-en-serif);
  font-weight: 500;
  font-size: 24px;
  color: var(--cz-accent);
  margin-top: 8px;
}
.page-cuisine .cz-secttl--center { text-align: center; }
.page-cuisine .cz-secttl--left { text-align: left; }

/* 画像プレースホルダー（写真未入稿の箇所） */
.page-cuisine .cz-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  background: repeating-linear-gradient(45deg, #ece3d8, #ece3d8 12px, #e6dccf 12px, #e6dccf 24px);
  color: var(--color-text-sub);
  font-family: var(--font-en-sans);
  font-size: 13px;
  letter-spacing: 0.1em;
}

/* ---------- ヒーロー（ページタイトル） ---------- */
.page-cuisine .cz-hero { padding: 56px 0 0; }
.page-cuisine .cz-hero__head {
  max-width: var(--cz-maxw);
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}
.page-cuisine .cz-hero__title { position: relative; padding-left: 26px; }
.page-cuisine .cz-hero__title::before {
  content: "";
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 1px;
  background: var(--cz-accent);
}
.page-cuisine .cz-hero__en {
  display: block;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 58px;
  line-height: 1.1;
  color: var(--cz-accent);
}
.page-cuisine .cz-hero__jp {
  display: block;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 25px;
  color: var(--cz-text);
  margin-top: 10px;
}
.page-cuisine .cz-breadcrumb {
  font-family: var(--font-jp-serif);
  font-size: 15px;
  color: var(--cz-text);
  padding-top: 14px;
}
.page-cuisine .cz-hero__lead {
  max-width: var(--cz-maxw);
  margin: 28px auto 40px;
  padding: 0 32px 0 58px;
  font-family: var(--font-jp-serif);
  font-size: 19px;
  line-height: 2;
}
.page-cuisine .cz-hero__img img {
  width: 100%;
  max-height: 540px;
  object-fit: cover;
  border-radius: 4px;
}

/* ---------- MESSAGE ---------- */
.page-cuisine .cz-message { text-align: center; }
.page-cuisine .cz-message__title {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(22px, 3.2vw, 37px);
  color: var(--cz-heading);
  margin: 0 0 32px;
  line-height: 1.5;
}
.page-cuisine .cz-message__body {
  font-family: var(--font-jp-serif);
  font-size: 17px;
  line-height: 2.1;
  margin: 0 auto 56px;
}
.page-cuisine .cz-message__body p { margin: 0 0 22px; }
.page-cuisine .cz-message__imgs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  width: 65vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: auto;
}
.page-cuisine .cz-message__imgs img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  border-radius: 0;
}

/* ---------- ご夕食 Dinner ---------- */
.page-cuisine .cz-dinner,
.page-cuisine .cz-menu {
  background: #352b1d;
  color: #fff;
}
.page-cuisine .cz-dinner .cz-secttl { text-align: center; }
.page-cuisine .cz-dinner .cz-secttl__jp,
.page-cuisine .cz-menu .cz-menucard__jp { color: #fff; }
.page-cuisine .cz-dinner .cz-secttl__en { color: #a59d51; }
.page-cuisine .cz-dinner .cz-garden__sub {
  margin: 0 0 24px;
  color: #fff;
  text-align: center;
}
.page-cuisine .cz-dinner .cz-dinner__lead {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 17px;
  line-height: 2;
  color: #fff;
  margin: 0 0 56px;
}
.page-cuisine .cz-dinner__main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  margin-top: 50px;
  margin-bottom: 64px;
}
.page-cuisine .cz-dinner__img img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: cover;
  display: block;
}
.page-cuisine .cz-dinner__text p {
  margin: 0 0 22px;
  font-size: 16px;
  line-height: 2;
  color: #fff;
}
.page-cuisine .cz-dinner .cz-note {
  color: #ababab;
}

/* コース構成（Ⅰ〜Ⅵ） */
.page-cuisine .cz-course { list-style: none; margin: 36px 0 0; padding: 0; }
.page-cuisine .cz-course__row {
  display: grid;
  grid-template-columns: 32px 1fr;
  grid-template-rows: auto auto;
  align-items: start;
  gap: 4px 14px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}
.page-cuisine .cz-course__num {
  font-family: var(--font-en-serif);
  font-size: 18px;
  color: #a59d51;
  grid-row: 1 / -1;
  align-self: start;
  padding-top: 2px;
}
.page-cuisine .cz-course__jp {
  font-family: var(--font-jp-serif);
  font-size: 17px;
  color: #fff;
  grid-column: 2;
  grid-row: 1;
}
.page-cuisine .cz-course__fr {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 14px;
  color: #a59d51;
  grid-column: 2;
  grid-row: 2;
}

/* お料理写真グリッド */
.page-cuisine .cz-dishgrid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.page-cuisine .cz-dishgrid__item img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
}

/* ---------- A DAY'S MENU ---------- */
.page-cuisine .cz-menu {
  --cz-menu-gold: #a59d51;
}
.page-cuisine .cz-menu .cz-menu__label {
  font-family: var(--font-en-serif);
  font-style: normal;
  font-size: 15px;
  letter-spacing: 0.22em;
  color: var(--cz-menu-gold);
  margin: 0 0 20px;
}
.page-cuisine .cz-menu__deco {
  display: flex;
  justify-content: center;
  align-items: center;
}
.page-cuisine .cz-menu__deco--top {
  margin: 0 auto 48px;
}
.page-cuisine .cz-menu__deco-img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(420px, 72vw);
}
.page-cuisine .cz-menu__cols {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0 56px;
  max-width: 1040px;
  margin: 0 auto;
  align-items: stretch;
}
.page-cuisine .cz-menu__divider {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 16px;
  flex-shrink: 0;
  align-self: stretch;
}
.page-cuisine .cz-menu__divider-line {
  flex: 1;
  width: 1px;
  min-height: 24px;
  background: var(--cz-menu-gold);
}
.page-cuisine .cz-menu__deco--center {
  flex-shrink: 0;
  padding: 10px 0;
}
.page-cuisine .cz-menu__deco--center .cz-menu__deco-img {
  max-width: 22px;
}
.page-cuisine .cz-menucard {
  min-width: 0;
}
.page-cuisine .cz-menucard__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 17px;
  color: var(--cz-menu-gold);
  margin: 0 0 6px;
  text-align: center;
}
.page-cuisine .cz-menucard__jp {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 24px;
  color: #fff;
  margin: 0 0 28px;
  text-align: center;
  letter-spacing: 0.06em;
}
.page-cuisine .cz-menulist { margin: 0; }
.page-cuisine .cz-menulist__row {
  display: flex;
  align-items: baseline;
  gap: 0;
  padding: 11px 0;
}
.page-cuisine .cz-menulist__row dt {
  flex-shrink: 0;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  color: #fff;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.page-cuisine .cz-menulist__row dd {
  flex: 1;
  display: flex;
  align-items: baseline;
  min-width: 0;
  margin: 0;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  color: #fff;
  letter-spacing: 0.02em;
}
.page-cuisine .cz-menulist__row dd::before {
  content: "";
  flex: 1;
  min-width: 12px;
  margin: 0 10px;
  border-bottom: 1px dotted rgb(179 172 101 / 65%);
  transform: translateY(-0.35em);
}
.page-cuisine .cz-menu .cz-note {
  color: #ababab;
  font-size: 13px;
  margin: 48px 0 0;
  letter-spacing: 0.04em;
}
.page-cuisine .cz-menu__more {
  margin-top: 32px;
  display: flex;
  justify-content: center;
}
.page-cuisine .cz-menu__btn {
  display: inline-block;
  padding: 10px 48px;
  border: 1px solid var(--cz-menu-gold);
  background: transparent;
  color: #fff;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.page-cuisine .cz-menu__btn:hover {
  background: #8f873e;
  color: #fff;
  opacity: 1;
}

/* ---------- ひとことバナー（おいしかった…） ---------- */
.page-cuisine .cz-quote {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
}
.page-cuisine .cz-quote__img {
  width: 100%;
  height: auto;
  display: block;
}
.page-cuisine .cz-quote__overlay {
  position: absolute; inset: 0;
  background: rgba(40, 30, 20, 0.42);
}
.page-cuisine .cz-quote__text {
  position: absolute;
  top: 50%;
  right: clamp(32px, 6vw, 96px);
  bottom: auto;
  left: auto;
  transform: translateY(-50%);
  max-height: calc(100% - 48px);
  height: fit-content;
  margin: 0;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(23px, 3.2vw, 23px);
  line-height: 2;
  color: #fff;
  text-shadow: 0 2px 18px rgba(0,0,0,0.35);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: 0.15em;
  white-space: nowrap;  /* 画面縮小時に各行が折り返されないように（縦書きの列を維持） */
}

/* ---------- 高原の朝ごはん Breakfast ---------- */
.page-cuisine .cz-breakfast__inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 64px;
  align-items: center;
}
.page-cuisine .cz-breakfast__text p { margin: 0 0 22px; font-size: 16px; line-height: 2; }
.page-cuisine .cz-breakfast__main {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  margin-bottom: 18px;
}
.page-cuisine .cz-breakfast__subs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.page-cuisine .cz-breakfast__subs img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}

/* ---------- 畑から From Our Garden ---------- */
.page-cuisine .cz-garden__sub {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 26px;
  color: var(--cz-text);
  margin: 0 0 28px;
}
.page-cuisine .cz-garden__lead {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 17px;
  line-height: 2.1;
  max-width: 860px;
  margin: 0 auto;
}
.page-cuisine .cz-garden__lead p { margin: 0 0 20px; }
.page-cuisine .cz-garden__split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 46vw;
  align-items: center;
  gap: 48px;
  width: 100%;
}
.page-cuisine .cz-garden__split-text {
  padding-left: max(32px, calc((100vw - var(--cz-maxw)) / 2 + 32px));
  padding-right: 0;
}
.page-cuisine .cz-garden__split .cz-garden__lead--after {
  text-align: left;
  max-width: none;
  margin: 0;
}
.page-cuisine .cz-garden__img {
  margin: 0;
  width: 100%;
}
.page-cuisine .cz-garden__slider-main img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  max-height: 560px;
  object-fit: cover;
  border-radius: 0;
  display: block;
  transition: opacity 0.6s ease;
}
.page-cuisine .cz-garden__img .story-gallery__dots {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
}
.page-cuisine .cz-garden__img .story-gallery__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c9bfb2;
  cursor: pointer;
  transition: background .25s, width .25s, height .25s;
  flex-shrink: 0;
}
.page-cuisine .cz-garden__img .story-gallery__dot.is-active {
  width: 12px;
  height: 12px;
  background: #776553;
}

/* ---------- 四季の恵み ---------- */
.page-cuisine .cz-seasons__lead {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 17px;
  line-height: 2;
  margin: 0 auto 56px;
}
.page-cuisine .cz-seasons__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.page-cuisine .cz-season__img,
.page-cuisine .cz-season__img img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
}
.page-cuisine .cz-season__img.cz-ph { aspect-ratio: 4/3; }
.page-cuisine .cz-season__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--cz-gold);
  margin: 18px 0 0;
}
.page-cuisine .cz-season__jp {
  font-family: var(--font-jp-serif);
  font-size: 20px;
  color: var(--cz-heading);
  margin: 0 0 8px;
}
.page-cuisine .cz-season__name {
  position: relative;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 18px;
  color: var(--cz-text);
  margin: 0 0 8px;
  padding-left: 18px;
}
.page-cuisine .cz-season__name::before {
  content: "";
  position: absolute;
  left: 0; top: 0.55em;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--cz-gold);
}
.page-cuisine .cz-season__desc { font-size: 15px; line-height: 1.85; margin: 0; }

/* ---------- シェフ Chef ---------- */
.page-cuisine .cz-chef {
  --cz-chef-gold: #a59d51;
  background: #2c2c2c;
  color: #fff;
}
.page-cuisine .cz-chef__frame {
  border: 1px solid var(--cz-chef-gold);
  padding: 56px 64px;
}
.page-cuisine .cz-chef__main {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: 56px;
  align-items: start;
}
.page-cuisine .cz-chef__photo {
  position: relative;
  margin: 0;
  width: 100%;
}
.page-cuisine .cz-chef__photo img {
  width: 100%;
  object-fit: cover;
  display: block;
  background: #c9b59a;
}
.page-cuisine .cz-chef__photo-note {
  position: absolute;
  right: 12px;
  bottom: 12px;
  color: #fff;
  font-size: 12px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .6);
}
.page-cuisine .cz-chef__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  margin: 0 0 28px;
}
.page-cuisine .cz-chef__title {
  flex-shrink: 0;
}
.page-cuisine .cz-chef__role {
  font-size: 28px;
  font-weight: 500;
  color: #fff;
  margin: 0;
  line-height: 1.2;
}
.page-cuisine .cz-chef__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--cz-chef-gold);
  margin: 6px 0 0;
  line-height: 1;
}
.page-cuisine .cz-chef__name {
  text-align: left;
  padding-top: 2px;
}
.page-cuisine .cz-chef__fullname {
  font-weight: 500;
  font-size: 28px;
  color: #fff;
  margin: 0;
  line-height: 1.35;
}
.page-cuisine .cz-chef__slash {
  font-family: var(--font-jp-serif);
  font-size: 22px;
  color: var(--cz-chef-gold);
  margin: 0 0.15em;
}
.page-cuisine .cz-chef__kana {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 400;
  color: var(--cz-chef-gold);
}
.page-cuisine .cz-chef__catch {
  font-weight: 500;
  font-size: 20px;
  color: #fff;
  text-align: left;
  margin: 0 0 24px;
  line-height: 1.6;
}
.page-cuisine .cz-chef__body > p {
  margin: 0 0 20px;
  font-size: 16px;
  line-height: 2;
  color: #fff;
}
.page-cuisine .cz-chef__more {
  margin: 32px 0 0;
}
.page-cuisine .cz-chef__btn {
  display: inline-block;
  padding: 5px 20px;
  border-radius: 999px;
  background: var(--cz-chef-gold);
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.08em;
}
.page-cuisine .cz-cheftable {
  padding: 0;
  border-top: 1px solid var(--cz-chef-gold);
}
.page-cuisine .cz-cheftable__row {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 20px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--cz-chef-gold);
}
.page-cuisine .cz-cheftable__row dt {
  font-size: 16px;
  color: var(--cz-chef-gold);
  letter-spacing: 0.06em;
}
.page-cuisine .cz-cheftable__row dd {
  margin: 0;
  font-size: 16px;
  line-height: 1.85;
  color: #fff;
}

/* ---------- ギャラリー（メイソンリー） ---------- */
.page-cuisine .cz-gallery__label {
  text-align: right;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 26px;
  color: var(--cz-text);
  margin: 0 0 36px;
}
.page-cuisine .cz-gallery__grid {
  column-count: 4;
  column-gap: 18px;
}
.page-cuisine .cz-gallery__item { margin: 0 0 18px; break-inside: avoid; }
.page-cuisine .cz-gallery__item img {
  width: 100%;
  border-radius: 4px;
}

/* ---------- ワンちゃんのこと → bt-section bt-message 共通デザインへ移行 ---------- */

/* ==========================================================================
   「お料理」ページ レスポンシブ
   ========================================================================== */
@media (max-width: 980px) {
  .page-cuisine .cz-section { padding: 72px 0; }
  .page-cuisine .cz-secttl__en { font-size: 20px; }
  .page-cuisine .cz-hero__en { font-size: 44px; }
  .page-cuisine .cz-chef__frame { padding: 40px 32px; }
  .page-cuisine .cz-chef__main { grid-template-columns: 1fr; gap: 36px; }
  .page-cuisine .cz-chef__photo { max-width: 360px; margin: 0 auto; }
  .page-cuisine .cz-chef__head { flex-direction: column; gap: 20px; }
  .page-cuisine .cz-chef__catch { font-size: 18px; }
  .page-cuisine .cz-cheftable__row { grid-template-columns: 88px 1fr; gap: 14px; }

  .page-cuisine .cz-dinner__main,
  .page-cuisine .cz-breakfast__inner { grid-template-columns: 1fr; gap: 36px; }
  .page-cuisine .cz-menu__cols {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .page-cuisine .cz-menu__divider {
    flex-direction: row;
    width: 100%;
    padding: 32px 0;
    align-self: auto;
  }
  .page-cuisine .cz-menu__divider-line {
    flex: 1;
    width: auto;
    height: 1px;
    min-height: 0;
  }
  .page-cuisine .cz-menu__deco--center {
    padding: 0 12px;
  }
  .page-cuisine .cz-dishgrid { grid-template-columns: repeat(2, 1fr); }
  .page-cuisine .cz-seasons__grid { grid-template-columns: repeat(2, 1fr); }
  .page-cuisine .cz-gallery__grid { column-count: 3; }

  .page-cuisine .cz-garden__split {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .page-cuisine .cz-garden__split-text {
    padding-left: 32px;
    padding-right: 32px;
  }
  .page-cuisine .cz-garden__split .cz-garden__lead--after {
    text-align: center;
  }
  .page-cuisine .cz-garden__img {
    width: 100%;
  }
}

@media (max-width: 600px) {
  .page-cuisine .cz-inner { padding: 0 20px; }
  .page-cuisine .cz-hero__head { flex-direction: column; gap: 10px; }
  .page-cuisine .cz-hero__en { font-size: 38px; }
  .page-cuisine .cz-hero__lead { padding: 0 20px; font-size: 17px; }
  .page-cuisine .cz-secttl__jp { font-size: 28px; }
  .page-cuisine .cz-message__imgs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    width: 100%;
    margin-left: 0;
    max-width: none;
    margin-right: 0;
  }
  .page-cuisine .cz-dishgrid { grid-template-columns: 1fr 1fr; }
  .page-cuisine .cz-seasons__grid { grid-template-columns: 1fr; max-width: 360px; margin: 0 auto; }
  .page-cuisine .cz-gallery__grid { column-count: 2; }
  .page-cuisine .cz-breakfast__subs { grid-template-columns: 1fr 1fr; }
  .page-cuisine .cz-quote { padding: 0; }
  .page-cuisine .cz-garden__split {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .page-cuisine .cz-garden__split-text {
    padding: 0 20px;
  }
  .page-cuisine .cz-garden__split .cz-garden__lead--after {
    text-align: left;
  }
  .page-cuisine .cz-garden__img {
    width: 100%;
  }
  .page-cuisine .cz-garden__slider-main img {
    min-height: 280px;
    max-height: none;
    aspect-ratio: 4 / 3;
    height: auto;
  }
}

/* ==========================================================================
   「客室」ページ（page-room.php）専用スタイル
   ※ Figma「ギャラクシー（客室）」より起こし。
   すべて .page-room 配下に rm- プレフィックスでスコープし、
   トップページや他ページのクラス（.room__ ・.section ・cz- 等）と競合しない。
   ========================================================================== */
.page-room {
  --rm-accent:  #9e6a43; /* 英字見出し・本文アクセント */
  --rm-gold:    #b2a566; /* 小ラベル・Type ラベル */
  --rm-heading: #353535; /* 和文大見出し */
  --rm-text:    #515150; /* 本文 */
  --rm-maxw:    1180px;
  --bt-grey:    #EDEDED; /* 和室セクション帯（page-bath と同色） */
  --wd-tint:    #e8e0dc; /* 和室セクション帯（with-dogs と同色） */
  --rm-amenities-icon-w: 21px; /* 設備ラベル左 PNG の横幅（高さは比率で自動） */
}
.page-room { color: var(--rm-text); }
.page-room .rm-inner {
  max-width: var(--rm-maxw);
  margin: 0 auto;
  padding: 0 32px;
}

/* フォント下限保証（共通CSSに飲まれ防止・最低14px / 本文16px） */
.page-room p,
.page-room li,
.page-room dd,
.page-room dt,
.page-room td,
.page-room th,
.page-room summary,
.page-room label { font-size: 16px; }
.page-room small { font-size: 14px; }

/* セクション共通 */
.page-room .rm-section { padding: 100px 0; }
.page-room .rm-section--alt { background: var(--color-bg-alt); }
.page-room .rm-room.rm-section--alt { background: none; }
.page-room .rm-room--washitsu { background: var(--wd-tint); }
.page-room .rm-amenities { background: none; }
.page-room .rm-label {
  text-align: center;
  font-family: var(--font-en-sans);
  font-size: 14px;
  letter-spacing: 0.18em;
  color: var(--rm-gold);
  margin: 0 0 20px;
}
.page-room .tentative { font-size: 14px; color: #a64237; white-space: nowrap; }

/* セクション見出し（和文＋英字） */
.page-room .rm-secttl { line-height: 1.25; margin: 0; }
.page-room .rm-secttl__jp {
  display: block;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(22px, 3vw, 37px);
  color: var(--rm-heading);
  letter-spacing: 0.04em;
}
.page-room .rm-secttl__jp--sm { font-size: 22px; margin-top: 6px; }
.page-room .rm-secttl__en {
  display: block;
  font-family: var(--font-en-serif);
  font-weight: 500;
  font-size: 22px;
  color: var(--rm-accent);
  margin-top: 6px;
}
.page-room .rm-secttl__en--lg { font-style: italic; font-size: 32px; }
.page-room .rm-secttl--center { text-align: center; }
.page-room .rm-secttl--left   { text-align: left; }

/* ---------- ヒーロー（ページタイトル） ---------- */
.page-room .rm-hero { padding: 56px 0 0; }
.page-room .rm-hero__head {
  max-width: var(--rm-maxw);
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
}
.page-room .rm-hero__title { position: relative; padding-left: 26px; }
.page-room .rm-hero__title::before {
  content: "";
  position: absolute;
  left: 0; top: 6px; bottom: 6px;
  width: 1px;
  background: var(--rm-accent);
}
.page-room .rm-hero__en {
  display: block;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 58px;
  line-height: 1.1;
  color: var(--rm-accent);
}
.page-room .rm-hero__jp {
  display: block;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 25px;
  color: var(--rm-text);
  margin-top: 10px;
}
.page-room .rm-breadcrumb {
  font-family: var(--font-jp-serif);
  font-size: 15px;
  color: var(--rm-text);
  padding-top: 14px;
}
.page-room .rm-breadcrumb a { color: var(--rm-text); }
.page-room .rm-breadcrumb a:hover { color: var(--rm-accent); }
.page-room .rm-hero__lead {
  max-width: var(--rm-maxw);
  margin: 26px auto 0;
  padding: 0 32px 0 58px;
  font-family: var(--font-jp-serif);
  font-size: 19px;
  line-height: 2;
}

/* ---------- イントロ ---------- */
.page-room .rm-intro { text-align: center; padding-top: 80px; }
.page-room .rm-intro__title {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(24px, 3.4vw, 37px);
  color: var(--rm-heading);
  line-height: 1.6;
  margin: 0 0 28px;
}
.page-room .rm-intro__body {
  font-family: var(--font-jp-serif);
  font-size: 17px;
  line-height: 2.1;
}
.page-room .rm-intro__body p { margin: 0 0 20px; }
.page-room .rm-intro__body p:last-child { margin-bottom: 0; }

/* ---------- 客室タイプ ---------- */
.page-room .rm-room__head { text-align: center; margin: 0 0 44px; }
.page-room .rm-room__type {
  font-family: var(--font-en-serif);
  font-size: 18px;
  letter-spacing: 0.12em;
  color: var(--rm-gold);
  margin: 0 0 12px;
}
.page-room .rm-room__name {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(24px, 3.6vw, 37px);
  color: var(--rm-heading);
  letter-spacing: 0.05em;
  margin: 0;
}

/* ギャラリー（4枚・中央1枚＋左右に少し見える・3枚以上は見えない・自動ループ） */
.page-room .rm-gallery {
  --rm-gallery-gap: 100px;
  /* 62vw 幅 → 中央1枚＋左右に少し見える（隣の写真の一部のみ） */
  --rm-gallery-slide-w: min(680px, 62vw);
  margin: 0 0 56px;
}
.page-room .rm-gallery__viewport {
  overflow: hidden;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  touch-action: pan-y;
  cursor: grab;
}
.page-room .rm-gallery.is-dragging .rm-gallery__viewport {
  cursor: grabbing;
}
.page-room .rm-gallery__track {
  display: flex;
  gap: var(--rm-gallery-gap);
  align-items: stretch;
  will-change: transform;
}
.page-room .rm-gallery__item {
  flex: 0 0 var(--rm-gallery-slide-w);
  margin: 0;
}
.page-room .rm-gallery__item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 4px;
  display: block;
  -webkit-user-drag: none;
  user-select: none;
}
/* story-gallery__nav（トップページ STORY と同一デザイン） */
.page-room .rm-gallery .story-gallery__nav {
  max-width: var(--rm-maxw);
  margin: 18px auto 0;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
}
.page-room .rm-gallery .story-gallery__controls {
  display: flex;
  align-items: center;
  gap: 18px;
  grid-column: 3;
  justify-self: end;
}
.page-room .rm-gallery .story-gallery__dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  grid-column: 2;
  justify-self: center;
}
.page-room .rm-gallery .story-gallery__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c9bfb2;
  cursor: pointer;
  flex-shrink: 0;
  transition: background .25s, width .25s, height .25s;
}
.page-room .rm-gallery .story-gallery__dot.is-active {
  width: 12px;
  height: 12px;
  background: var(--color-brand, #776553);
}
.page-room .rm-gallery .story-gallery__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-size: 0;
  line-height: 0;
  color: transparent;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: opacity .2s;
}
.page-room .rm-gallery .story-gallery__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--color-brand, #776553);
  border-right: 2px solid var(--color-brand, #776553);
}
.page-room .rm-gallery .story-gallery__arrow--prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.page-room .rm-gallery .story-gallery__arrow--next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}
.page-room .rm-gallery .story-gallery__arrow:hover {
  opacity: .6;
}
.page-room .rm-gallery .story-gallery__counter {
  min-width: 3.2em;
  text-align: center;
  line-height: 1;
  font-family: var(--font-en-sans);
  font-size: 14px;
  color: var(--rm-text);
}

/* 詳細（左：Details＋本文 ／ 右：スペック表） */
.page-room .rm-room__detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
.page-room .rm-room__intro .rm-secttl { margin-bottom: 24px; }
.page-room .rm-room__lead {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 2.1;
}
.page-room .rm-room__lead p { margin: 0 0 6px; }
.page-room .rm-room__lead-img {
  margin: 28px 0 0;
}
.page-room .rm-room__lead-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  border-radius: 4px;
}

/* スペック表 */
.page-room .rm-spec { margin: 0; }
.page-room .rm-spec__row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 16px;
  padding: 16px 4px;
  border-bottom: 1px solid var(--color-line);
}
.page-room .rm-spec__row:first-child { border-top: none; }
.page-room .rm-spec__row dt {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 16px;
  color: var(--rm-accent);
}
.page-room .rm-spec__row dd {
  margin: 0;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 1.7;
  color: var(--rm-text);
}

/* ---------- 設備・備品（Amenities） ---------- */
.page-room .rm-amenities__lead {
  text-align: center;
  font-family: var(--font-jp-serif);
  font-size: 17px;
  color: var(--rm-text);
  margin: 22px 0 0;
}
.page-room .rm-amenities__list {
  max-width: 900px;
  margin: 48px auto 0;
}
.page-room .rm-amenities__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid var(--color-line);
}
.page-room .rm-amenities__row:first-child { border-top: 1px solid var(--color-line); }
.page-room .rm-amenities__label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.page-room .rm-amenities__icon {
  width: var(--rm-amenities-icon-w);
  height: auto;
  flex-shrink: 0;
  display: block;
  object-fit: contain;
}
.page-room .rm-amenities__label-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.page-room .rm-amenities__en {
  font-family: var(--font-en-serif);
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--rm-gold);
}
.page-room .rm-amenities__jp {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 19px;
  color: var(--rm-heading);
}
.page-room .rm-amenities__items {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
}
.page-room .rm-amenities__item {
  position: relative;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  color: var(--rm-text);
  padding-left: 16px;
}
.page-room .rm-amenities__item::before {
  content: "";
  position: absolute;
  left: 0; top: 0.7em;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--rm-gold);
}

/* ---------- 貸し切り露天風呂（岩風呂）へのご案内バナー ---------- */
.page-room .rm-bathbanner__box {
  display: flex;
  align-items: center;
  gap: 32px;
  background: var(--fc-deco-panel, #e3dcd3);
  border-radius: 8px;
  padding: 32px 40px;
}
.page-room .rm-bathbanner__icon {
  flex-shrink: 0;
  color: var(--rm-accent);
}
.page-room .rm-bathbanner__text { flex: 1 1 auto; }
.page-room .rm-bathbanner__en {
  display: block;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.06em;
  color: var(--rm-accent);
  margin: 0 0 4px;
}
.page-room .rm-bathbanner__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 22px;
  color: var(--rm-heading);
  margin: 0 0 8px;
}
.page-room .rm-bathbanner__txt {
  font-size: 16px;
  line-height: 1.9;
  color: var(--rm-text);
  margin: 0;
}
.page-room .rm-bathbanner__cta { flex-shrink: 0; }

/* ==========================================================================
   「客室」ページ レスポンシブ
   ========================================================================== */
@media (max-width: 980px) {
  .page-room .rm-section { padding: 72px 0; }
  .page-room .rm-hero__en { font-size: 44px; }
  .page-room .rm-room__detail { grid-template-columns: 1fr; gap: 36px; }
  .page-room .rm-gallery {
    --rm-gallery-slide-w: min(480px, 72vw);
    --rm-gallery-gap: 48px;
  }
  .page-room .rm-gallery .story-gallery__nav { padding: 0 32px; }
}

@media (max-width: 600px) {
  .page-room .rm-inner { padding: 0 20px; }
  .page-room .rm-hero__head { flex-direction: column; gap: 10px; }
  .page-room .rm-hero__en { font-size: 38px; }
  .page-room .rm-hero__lead { padding: 0 20px; font-size: 17px; }
  .page-room .rm-room__name { font-size: 28px; }
  .page-room .rm-gallery {
    --rm-gallery-slide-w: min(300px, 88vw);
    --rm-gallery-gap: 24px;
    margin-bottom: 40px;
  }
  .page-room .rm-gallery__item img { aspect-ratio: 16 / 10; }
  .page-room .rm-gallery .story-gallery__nav {
    padding: 0 20px;
    gap: 16px;
  }
  .page-room .rm-spec__row { grid-template-columns: 100px 1fr; gap: 10px; }
  .page-room .rm-amenities__row { grid-template-columns: 1fr; gap: 10px; padding: 16px 0; }
  .page-room .tentative { white-space: normal; display: inline-block; }
  .page-room .rm-bathbanner__box { flex-direction: column; text-align: center; padding: 28px 24px; gap: 16px; }
}

/* ==========================================================================
   MESSAGE 枠カード（bt-section bt-message：お風呂・客室・お料理 共通）
   ========================================================================== */
.page-bath .bt-section.bt-message,
.page-room .bt-section.bt-message,
.page-cuisine .bt-section.bt-message {
  overflow: visible;
  padding: 40px 0 96px;
}
.bt-section.bt-message .bt-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 40px;
}
.bt-section.bt-message .bt-label {
  font-family: var(--font-en-sans);
  font-size: 14px;
  letter-spacing: 0.22em;
  color: #8C857D;
  margin: 0 0 14px;
}
.bt-section.bt-message .bt-label--center { text-align: center; }
.bt-msgcard {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
  background: #fff;
  border: 2px solid var(--wd-accent, #9e6a43);
  outline: 1px solid rgba(158, 106, 67, 0.45);
  outline-offset: -10px;
  padding: 48px 40px 44px;
  overflow: visible;
}
.bt-msgcard__paw {
  display: block;
  width: 32px;
  height: auto;
  margin: 0 auto 10px;
  object-fit: contain;
}
.bt-msgcard__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0 0 24px;
}
.bt-msgcard__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-size: 15px;
  color: var(--bt-accent, var(--wd-accent, #9e6a43));
  padding-right: 14px;
  margin-right: 14px;
  border-right: 1px solid var(--wd-accent, #9e6a43);
}
.bt-msgcard__jp {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 18px;
  color: var(--bt-heading, #3A3A3A);
}
.bt-msgcard__deco {
  position: absolute;
  top: var(--bt-msgcard-deco-top, auto);
  right: var(--bt-msgcard-deco-right, -14px);
  bottom: var(--bt-msgcard-deco-bottom, -12px);
  left: var(--bt-msgcard-deco-left, auto);
  width: var(--bt-msgcard-deco-w, 110px);
  margin: 0;
  pointer-events: none;
  z-index: 1;
}
.bt-msgcard__deco img {
  display: block;
  width: 100%;
  height: auto;
}
.bt-message__body {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 2.1;
  margin: 0 0 28px;
}
.bt-message__link {
  display: inline-block;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  color: var(--bt-heading, #3A3A3A);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--bt-accent, var(--wd-accent, #9e6a43));
  text-decoration: none;
}
.bt-message__link::after { content: " →"; color: var(--bt-accent, var(--wd-accent, #9e6a43)); }
.bt-message__link:hover { color: var(--bt-accent, var(--wd-accent, #9e6a43)); }

@media (max-width: 600px) {
  .bt-section.bt-message .bt-inner { padding: 0 20px; }
  .bt-msgcard { padding: 36px 24px; }
  .bt-msgcard__head { flex-direction: column; gap: 8px; }
  .bt-msgcard__en {
    padding-right: 0;
    margin-right: 0;
    border-right: none;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--wd-accent, #9e6a43);
  }
  .bt-msgcard__deco {
    top: var(--bt-msgcard-deco-top-sp, var(--bt-msgcard-deco-top, auto));
    right: var(--bt-msgcard-deco-right-sp, var(--bt-msgcard-deco-right, -20px));
    bottom: var(--bt-msgcard-deco-bottom-sp, var(--bt-msgcard-deco-bottom, -15px));
    left: var(--bt-msgcard-deco-left-sp, var(--bt-msgcard-deco-left, auto));
    --bt-msgcard-deco-w: 80px;
    width: var(--bt-msgcard-deco-w, 80px);
  }
}

/* ==========================================================================
   「お風呂」ページ（page-bath.php）専用スタイル
   ※ Figma「ギャラクシー_温泉」＋モックアップ_岩風呂.jpg より忠実に起こし。
   配色: 基本 #FBF6F0 ／ 01帯 #E9DFDD（モーヴ）／ 02-03帯 #EDEDED（グレー）／
          見出し #3A3A3A ／ アクセント #9E6A3D ／ 注意バー #3A3A3A。
   すべて .page-bath 配下に bt- でスコープし、他ページと競合しない。
   ========================================================================== */
.page-bath {
  --bt-cream:   #FBF6F0;
  --bt-mauve:   #E9DFDD;  /* 01セクション帯 */
  --bt-grey:    #EDEDED;  /* 02-03セクション帯 */
  --bt-heading: #3A3A3A;  /* 和文大見出し・注意バー */
  --bt-accent:  #9E6A3D;  /* 英字タイトル・アクセント */
  --bt-text:    #515150;  /* 本文 */
  --bt-line:    #DcD7D0;
  --bt-maxw:    1120px;
  --fc-deco-panel: #e3dcd3;  /* 横帯バナー背景（客室ページの岩風呂バナーと共通トークン） */
}
.page-bath { background: var(--bt-cream); color: var(--bt-text); }

/* フォント下限保証（共通CSSに飲まれ防止・最低14px / 本文16px） */
.page-bath p,
.page-bath li,
.page-bath dd,
.page-bath dt,
.page-bath td,
.page-bath th,
.page-bath summary,
.page-bath label { font-size: 16px; }
.page-bath small { font-size: 14px; }

.page-bath .bt-inner { max-width: var(--bt-maxw); margin: 0 auto; padding: 0 40px; }

/* セクション帯 */
.page-bath .bt-section { position: relative; padding: 96px 0; overflow: hidden; }
/* 01. BATH（モーヴ帯）はヒーロー直下に余白を持たせる */
.page-bath .bt-section--mauve { margin-top: 50px; }
.page-bath .bt-section.bt-feature:not(.bt-feature--rev) { overflow: visible; }
.page-bath .bt-section--mauve { background: var(--bt-mauve); }
.page-bath .bt-section--grey  { background: var(--bt-grey); }

/* 小ラベル（英字・レター間隔） */
.page-bath .bt-label {
  font-family: var(--font-en-sans);
  font-size: 14px;
  letter-spacing: 0.22em;
  color: #8C857D;
  margin: 0 0 14px;
}
.page-bath .bt-label--center { text-align: center; }

/* 大きな装飾番号（01.〜04.） */
.page-bath .bt-num {
  display: block;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(72px, 6vw, 104px);
  line-height: 0.9;
  color: rgba(58, 58, 58, 0.16);
  margin: 0 0 6px;
}
.page-bath .bt-num--center { text-align: center; margin-bottom: 20px; }

/* 中央見出し（03・04） */
.page-bath .bt-secthead { text-align: center; margin: 0 0 44px; }
.page-bath .bt-secttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(24px, 3.6vw, 37px);
  color: var(--bt-heading);
  letter-spacing: 0.06em;
  margin: 6px 0 0;
}
.page-bath .tentative { font-size: 14px; color: #a64237; }

/* ---------- ヒーロー（タイトル上＋ワイド画像下） ---------- */
.page-bath .bt-hero { padding: 40px 0 88px; }
.page-bath .bt-hero__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin: 0 0 28px;
}
.page-bath .bt-hero__en {
  display: block;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(40px, 5vw, 60px);
  line-height: 1.05;
  color: var(--bt-accent);
}
.page-bath .bt-hero__sub {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 22px;
  color: var(--bt-heading);
  margin: 12px 0 0;
}
.page-bath .bt-hero__lead {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 1.9;
  color: var(--bt-text);
  margin: 14px 0 0;
}
.page-bath .bt-breadcrumb {
  font-family: var(--font-jp-serif);
  font-size: 14px;
  color: var(--bt-text);
  white-space: nowrap;
}
.page-bath .bt-breadcrumb a { color: var(--bt-text); }
.page-bath .bt-breadcrumb a:hover { color: var(--bt-accent); }
.page-bath .bt-hero__img { margin: 0; }
.page-bath .bt-hero__img img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.10);
  display: block;
}

/* ---------- 01・02 フィーチャー（画像＋テキスト交互） ---------- */
.page-bath .bt-feature__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__inner {
  grid-template-columns: minmax(0, 50vw) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 64px);
  max-width: none;
  width: 100%;
  margin: 50px 0 0;
  padding: 0;
}
.page-bath .bt-feature--rev .bt-feature__inner {
  max-width: var(--bt-maxw);
  margin: 0 auto;
  padding: 0 40px;
}
.page-bath .bt-feature__media {
  margin: 0;
}
.page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__media {
  margin-left: 0;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__img {
  width: 100%;
}
.page-bath .bt-feature__img { margin: 0; }
.page-bath .bt-feature__img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
  display: block;
}
.page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__img img {
  border-radius: 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__body {
  padding-right: max(40px, calc((100vw - var(--bt-maxw)) / 2 + 40px));
}
/* story-gallery__nav（トップページ STORY と同一デザイン・装飾） */
.page-bath .bt-feature__media .story-gallery__nav {
  margin-top: 18px;
  display: flex;
  justify-content: flex-end;   /* dots を bt-feature__media の右ラインに合わせる */
  align-items: center;
  padding: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.page-bath .bt-feature__media .story-gallery__dots {
  display: flex;
  align-items: center;
  gap: 10px;
}
.page-bath .bt-feature__media .story-gallery__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c9bfb2;
  flex-shrink: 0;
  transition: background .25s, width .25s, height .25s;
}
.page-bath .bt-feature__media .story-gallery__dot.is-active {
  width: 12px;
  height: 12px;
  background: var(--color-brand, #776553);
}
.page-bath .bt-feature__media .story-gallery__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-size: 0;
  line-height: 0;
  color: transparent;
  position: relative;
  flex-shrink: 0;
}
.page-bath .bt-feature__media .story-gallery__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 2px solid var(--color-brand, #776553);
  border-right: 2px solid var(--color-brand, #776553);
}
.page-bath .bt-feature__media .story-gallery__arrow--prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.page-bath .bt-feature__media .story-gallery__arrow--next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}
.page-bath .bt-feature__media .story-gallery__counter {
  min-width: 3.2em;
  text-align: center;
  line-height: 1;
  font-family: var(--font-en-sans);
  font-size: 14px;
  color: var(--bt-text);
}

.page-bath .bt-feature__tag {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-jp-serif);
  font-size: 14px;
  color: #8C857D;
  margin: 0 0 12px;
}
.page-bath .bt-feature__tag::before {
  content: "";
  display: block;
  width: 56px;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}
.page-bath .bt-feature__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(30px, 2vw, 35px);
  line-height: 1.55;
  color: var(--bt-heading);
  letter-spacing: 0.04em;
  margin: 0 0 26px;
}
.page-bath .bt-feature__txt {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 2.15;
  margin: 0 0 18px;
}
.page-bath .bt-feature__txt--lg {
  font-size: 22px;
  line-height: 2;
}
.page-bath .bt-feature__txt:last-child { margin-bottom: 0; }

/* ---------- 03 SPRING DATA 白テーブル ---------- */
.page-bath .bt-table {
  max-width: 980px;
  margin: 0 auto;
  background: #fff;
  border: 2px solid #6B6560;
  outline: 1px solid var(--bt-line);
  outline-offset: -10px;
  padding: 10px 36px;
}
.page-bath .bt-table__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 24px;
  padding: 20px 4px;
  border-bottom: 1px solid #EFEAE4;
}
.page-bath .bt-table__row:last-child { border-bottom: none; }
.page-bath .bt-table__row dt {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  color: #6E665E;
}
.page-bath .bt-table__row dd {
  margin: 0;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 1.85;
  color: var(--bt-heading);
}
.page-bath .bt-note {
  max-width: 980px;
  margin: 18px auto 0;
  font-size: 14px;
  color: #8C857D;
}

/* ---------- 04 INFORMATION（地に行＋アイコン） ---------- */
.page-bath .bt-infolist { max-width: 920px; margin: 0 auto; }
.page-bath .bt-infolist__row {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  align-items: center;
  padding: 24px 8px;
  border-bottom: 1px solid var(--bt-line);
}
.page-bath .bt-infolist__row:first-child { border-top: 1px solid var(--bt-line); }
.page-bath .bt-infolist__row dt {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--font-jp-serif);
  font-size: 17px;
  color: var(--bt-heading);
}
.page-bath .bt-infolist__icon { width: 26px; height: 26px; color: var(--bt-accent); flex: none; }
.page-bath .bt-infolist__icon svg { width: 26px; height: 26px; display: block; }
.page-bath .bt-infolist__icon img { width: 26px; height: 26px; object-fit: contain; display: block; }
.page-bath .bt-infolist__row dd {
  margin: 0;
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 1.8;
  color: var(--bt-text);
}

/* 注意バー（チャコール #3A3A3A） */
.page-bath .bt-caution {
  max-width: 920px;
  margin: 32px auto 0;
  display: flex;
  gap: 16px;
  align-items: center;
  background: var(--bt-heading);
  color: #fff;
  border-radius: 6px;
  padding: 20px 26px;
}
.page-bath .bt-caution__icon { font-size: 20px; line-height: 1; }
.page-bath .bt-caution__ttl {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  margin: 0 0 4px;
}
.page-bath .bt-caution__txt {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.82);
  margin: 0;
}

/* ---------- 客室のお風呂について（横帯バナー：客室ページの岩風呂バナーと同スタイル） ---------- */
.page-bath .bt-roomnote__box {
  display: flex;
  align-items: center;
  gap: 32px;
  background: var(--fc-deco-panel);
  border-radius: 8px;
  padding: 32px 40px;
}
.page-bath .bt-roomnote__icon {
  flex-shrink: 0;
  color: var(--bt-accent);
  width: 59px;
  height: 59px;
  background: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 10px rgba(58,45,31,0.05);
}
.page-bath .bt-roomnote__text { flex: 1 1 auto; }
.page-bath .bt-roomnote__en {
  display: block;
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.06em;
  color: var(--bt-accent);
  margin: 0 0 4px;
}
.page-bath .bt-roomnote__ttl {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 22px;
  color: var(--bt-heading);
  margin: 0 0 8px;
}
.page-bath .bt-roomnote__txt {
  font-size: 16px;
  line-height: 1.9;
  color: var(--bt-text);
  margin: 0;
}
.page-bath .bt-roomnote__cta { flex-shrink: 0; }

/* ---------- MESSAGE（枠カード）→ 共通スタイルは上部「bt-section bt-message」ブロック参照 ---------- */

/* ==========================================================================
   「お風呂」ページ レスポンシブ
   ========================================================================== */
@media (max-width: 980px) {
  .page-bath .bt-section { padding: 64px 0; }
  .page-bath .bt-hero { padding: 32px 0 64px; }
  .page-bath .bt-hero__head { flex-direction: column; align-items: flex-start; gap: 14px; }
  .page-bath .bt-hero__img img { aspect-ratio: 16 / 9; }
  .page-bath .bt-feature__inner { grid-template-columns: 1fr; gap: 28px; }
  .page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__inner {
    grid-template-columns: 1fr;
    padding: 0;
  }
  .page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__media {
    margin-left: 0;
    width: 100%;
  }
  .page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__img img {
    border-radius: 6px;
  }
  .page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__body {
    padding: 0 40px;
  }
  .page-bath .bt-feature--rev .bt-feature__inner { padding: 0 40px; }
  .page-bath .bt-feature--rev .bt-feature__img { order: -1; }   /* 02は積み重ね時に画像を上へ */
  .page-bath .bt-num { font-size: clamp(60px, 14vw, 84px); }
}

@media (max-width: 600px) {
  .page-bath .bt-inner { padding: 0 20px; }
  .page-bath .bt-hero__en { font-size: 38px; }
  .page-bath .bt-table { padding: 6px 20px; }
  .page-bath .bt-table__row { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; }
  .page-bath .bt-infolist__row { grid-template-columns: 1fr; gap: 8px; padding: 18px 0; }
  .page-bath .bt-caution { flex-direction: column; align-items: flex-start; gap: 8px; padding: 18px 20px; }
  .page-bath .bt-feature__txt--lg { font-size: 20px; }
  .page-bath .bt-feature:not(.bt-feature--rev) .bt-feature__body {
    padding: 0 20px;
  }
  .page-bath .bt-feature--rev .bt-feature__inner { padding: 0 20px; }
  .page-bath .bt-feature__media .story-gallery__nav {
    padding: 0;
    gap: 16px;
  }
  .page-bath .bt-roomnote__box { flex-direction: column; text-align: center; padding: 28px 24px; gap: 16px; }
}

/* ==========================================================================
   施設案内（page-facilities）
   左写真・右テキストの横並びを全施設統一。余白たっぷり・上品でナチュラル。
   スマホ／タブレットは縦並び（写真上・テキスト下）。.page-facilities 配下 fc- でスコープ。
   ========================================================================== */
.page-facilities { color: var(--color-text, #3A2D1F); }

/* ---------- ドッグラン（枠付きパネル＋メイン写真＋3枚ギャラリー） ---------- */
.page-facilities .fc-spot {
  background: #eae4dd;
  padding: 80px 0 88px;
}
.page-facilities .fc-spot__top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: stretch;
  margin-bottom: 28px;
}
.page-facilities .fc-spot__panel {
  position: relative;
  border: 1px solid rgba(120, 110, 100, 0.35);
  background: #eae4dd;
  padding: 48px 36px 36px;
  box-sizing: border-box;
}
.page-facilities .fc-spot__label {
  position: absolute;
  top: 0;
  left: 24px;
  transform: translateY(-50%);
  display: inline-block;
  padding: 8px 18px;
  background: #4b6332;
  color: #fff;
  font-family: var(--font-jp-serif);
  font-size: 15px;
  letter-spacing: 0.08em;
  line-height: 1;
}
.page-facilities .fc-spot__panel .fc-item__name {
  margin: 0 0 16px;
}
.page-facilities .fc-spot__title {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.65;
  color: var(--wd-heading, #3f3f3f);
  margin: 0 0 20px;
}
.page-facilities .fc-spot__desc {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 2;
  color: var(--wd-text, #515150);
  margin: 0;
}
.page-facilities .fc-spot__main {
  margin: 0;
  min-height: 0;
}
.page-facilities .fc-spot__main img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
}
.page-facilities .fc-spot__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.page-facilities .fc-spot__gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

/* ---------- 外観と玄関（2カラム：画像＋見出し＋本文） ---------- */
.page-facilities .fc-entrance {
  padding: 88px 0 96px;
}
.page-facilities .fc-entrance__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
}
.page-facilities .fc-entrance__media {
  margin: 0 0 28px;
}
.page-facilities .fc-entrance__media img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.page-facilities .fc-entrance__item .fc-item__name {
  margin: 0 0 18px;
}
.page-facilities .fc-entrance__desc {
  font-family: var(--font-jp-serif);
  font-size: 16px;
  line-height: 2;
  color: var(--wd-text, #515150);
  margin: 0;
}

/* 共有スペース fc-item（外観・玄関の直下） */
.page-facilities .fc-section--solo {
  padding: 0 0 88px;
  background: none;
}
.page-facilities .fc-section--solo .fc-list {
  gap: 0;
}

/* ダイニング／バー（共有スペースの直下・外観と玄関と同デザイン） */
.page-facilities .fc-entrance--follow {
  padding: 0 0 96px;
}
.page-facilities .fc-entrance--follow + .fc-section {
  padding-top: 0;
}

.page-facilities .fc-section {
  padding: 96px 0 120px;
}
.page-facilities .fc-inner {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 40px;
}
.page-facilities .fc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 84px;          /* 各施設の間にたっぷり余白 */
}
.page-facilities .fc-item {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 56px;
  align-items: stretch;
}
/* 左：写真（固定 300×220） */
.page-facilities .fc-item__media {
  width: 300px;
  flex-shrink: 0;
}
.page-facilities .fc-item__media img {
  display: block;
  width: 300px;
  height: 220px;
  object-fit: cover;
  box-shadow: 0 10px 30px rgba(60, 45, 30, 0.10);
}
/* 右：白背景ボックス（英字＋施設名＋区切り線＋説明文） */
.page-facilities .fc-item__body {
  min-width: 0;
  background: #fff;
  padding: 20px 30px 20px;
  box-sizing: border-box;
  box-shadow: rgba(0, 0, 0, .24) 0px 3px 8px;
}
.page-facilities .fc-spot__panel .btn--ghost,
.page-facilities .fc-entrance__item .btn--ghost {
  margin-top: 24px;
}
.page-facilities .fc-item__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid rgba(120, 110, 100, 0.25);
  padding-bottom: 20px;
  margin-bottom: 24px;
}
.page-facilities .fc-item__head-titles {
  min-width: 0;
  flex: 1 1 auto;
}
.page-facilities .fc-item__head .btn--ghost {
  flex-shrink: 0;
}
.page-facilities .fc-item__en {
  font-family: var(--font-en-serif);
  font-style: normal;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #666;
  margin: 0 0 10px;
}
.page-facilities .fc-item__name {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: var(--wd-heading, #3f3f3f);
  margin: 0;
}
.page-facilities .fc-item__desc {
  font-size: 16px;
  line-height: 1.8;
  color: var(--wd-text, #515150);
  margin: 0;
}

/* ---------- 天狗水（fc-section--natural：車山の自然の恵みを他施設と差別化した専用デザイン） ---------- */
.page-facilities .fc-section--natural {
  --fc-deco-panel: #e3dcd3;
  background: var(--fc-deco-panel);
  border-top: 1px solid rgba(120, 110, 100, 0.25);
  padding: 50px 0;
}
.page-facilities .fc-section--natural .fc-inner {
  max-width: 1200px;
  text-align: center;
}
.page-facilities .fc-natural__en {
  font-family: var(--font-en-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #666;
  margin: 0 0 14px;
}
.page-facilities .fc-natural__name {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: 32px;
  line-height: 1.45;
  letter-spacing: 0.5em;
  color: var(--wd-heading, #3f3f3f);
  margin: 0 0 32px;
}
.page-facilities .fc-natural__name span {
  /* letter-spacingが最後の文字の後ろにも入るため、中央揃えが右にずれるのを打ち消す */
  margin-right: -0.5em;
}
.page-facilities .fc-natural__divider {
  width: 48px;
  height: 1px;
  background: rgba(120, 110, 100, 0.4);
  margin: 0 auto 48px;
}
.page-facilities .fc-natural__body {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 56px;
  align-items: center;
  max-width: 880px;
  margin: 0 auto;
  text-align: left;
}
.page-facilities .fc-natural__media img {
  display: block;
  width: 300px;
  height: auto;
  box-shadow: 0 10px 30px rgba(60, 45, 30, 0.14);
}
.page-facilities .fc-natural__desc {
  font-size: 16px;
  line-height: 2;
  color: var(--wd-text, #515150);
  margin: 0;
}

/* タブレット：写真をやや縮小しつつ横並び維持 */
@media (max-width: 900px) {
  .page-facilities .fc-spot { padding: 64px 0 72px; }
  .page-facilities .fc-spot__top { gap: 28px; }
  .page-facilities .fc-spot__panel { padding: 44px 28px 28px; }
  .page-facilities .fc-entrance { padding: 72px 0 80px; }
  .page-facilities .fc-entrance--follow { padding: 0 0 72px; }
  .page-facilities .fc-section--solo { padding: 0 0 64px; }
  .page-facilities .fc-entrance__grid { gap: 40px; }
  .page-facilities .fc-section { padding: 72px 0 96px; }
  .page-facilities .fc-inner { padding: 0 32px; }
  .page-facilities .fc-item {
    grid-template-columns: 240px 1fr;
    gap: 40px;
  }
  .page-facilities .fc-item__media,
  .page-facilities .fc-item__media img { width: 240px; }
  .page-facilities .fc-item__media img { height: 180px; }
  .page-facilities .fc-item__name { font-size: 24px; }
  .page-facilities .fc-item__body { padding: 20px 30px 20px; }
  .page-facilities .fc-item__head {
    flex-wrap: wrap;
    align-items: flex-end;
  }
  .page-facilities .fc-section--natural { padding: 72px 0; }
  .page-facilities .fc-natural__body {
    grid-template-columns: 240px 1fr;
    gap: 40px;
  }
  .page-facilities .fc-natural__media img { width: 240px; height: auto; }
}

/* スマホ：縦並び（写真上・テキスト下）。写真は中央寄せで横幅いっぱい（最大300px） */
@media (max-width: 640px) {
  .page-facilities .fc-spot { padding: 48px 0 56px; }
  .page-facilities .fc-spot__top {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .page-facilities .fc-spot__main img { min-height: 220px; }
  .page-facilities .fc-spot__gallery {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .page-facilities .fc-entrance { padding: 56px 0 64px; }
  .page-facilities .fc-entrance--follow { padding: 0 0 56px; }
  .page-facilities .fc-section--solo { padding: 0 0 48px; }
  .page-facilities .fc-entrance__grid {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .page-facilities .fc-section { padding: 56px 0 80px; }
  .page-facilities .fc-inner { padding: 0 22px; }
  .page-facilities .fc-list { gap: 56px; }
  .page-facilities .fc-item {
    grid-template-columns: 1fr;
    gap: 22px;
    justify-items: stretch;
    text-align: left;
  }
  .page-facilities .fc-item__media {
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
  }
  .page-facilities .fc-item__media img {
    width: 100%;
    height: auto;
    aspect-ratio: 300 / 220;
  }
  .page-facilities .fc-item__body { width: 100%; padding: 20px 30px 20px; }
  .page-facilities .fc-item__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .page-facilities .fc-item__desc { text-align: left; }

  .page-facilities .fc-section--natural { padding: 56px 0; }
  .page-facilities .fc-natural__name { font-size: 26px; letter-spacing: 0.35em; }
  .page-facilities .fc-natural__name span { margin-right: -0.35em; }
  .page-facilities .fc-natural__body {
    grid-template-columns: 1fr;
    gap: 22px;
    max-width: 300px;
    text-align: center;
  }
  .page-facilities .fc-natural__media img { width: 100%; height: auto; }
  .page-facilities .fc-natural__desc { text-align: left; }
}

/* ==========================================================================
   宿泊プラン（page-plan）— 一覧 archive-plan.php / 詳細 single-plan.php
   色はすべてサイト共通の :root 変数（--color-*）を使用（ハードコードしない）。
   ========================================================================== */
.page-plan { color: var(--color-text); }
.page-plan .pl-inner { max-width: 1080px; margin: 0 auto; padding: 0 40px; }
.page-plan .pl-section { padding: 80px 0 96px; }

/* 共通ボタン（アウトライン/塗り） */
.page-plan .pl-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 30px; border: 1px solid var(--color-accent); border-radius: 999px;
  background: transparent; color: var(--color-accent);
  font-family: var(--font-jp-serif); font-size: 16px; letter-spacing: 0.04em;
  text-decoration: none; transition: background .25s, color .25s;
}
.page-plan .pl-btn:hover { background: var(--color-accent); color: #fff; }
.page-plan .pl-btn--solid { background: var(--color-accent); color: #fff; }
.page-plan .pl-btn--solid:hover { background: var(--color-accent-dk); border-color: var(--color-accent-dk); }
.page-plan .pl-btn__arrow { transition: transform .25s; }
.page-plan .pl-btn:hover .pl-btn__arrow { transform: translateX(4px); }

/* ---- 一覧：プランカード（左画像40%・右テキスト60%） ---- */
.page-plan .pl-list { display: flex; flex-direction: column; gap: 40px; }
.page-plan .pl-card {
  display: grid; grid-template-columns: 40% 1fr; gap: 40px; align-items: center;
  background: #fff;
  overflow: hidden; box-shadow: 4px 4px 3px rgba(58, 45, 31, 0.06);
}
.page-plan .pl-card__media {
  display: block; align-self: stretch; min-height: 100%;
  background: var(--color-bg-alt); line-height: 0;
}
.page-plan .pl-card__media img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; display: block; }
.page-plan .pl-card__ph {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 240px;
  font-family: var(--font-en-sans); font-size: 14px; letter-spacing: 0.08em; color: var(--color-text-sub);
}
.page-plan .pl-card__body { padding: 28px 36px 28px 0; }
.page-plan .pl-card__title {
  margin: 0 0 12px; font-family: var(--font-jp-serif); font-weight: 500; font-size: 23px;
  line-height: 1.5; color: var(--color-text);
}
.page-plan .pl-card__price {
  margin: 0 0 14px; font-family: var(--font-jp-serif); font-size: 17px; color: var(--color-accent);
}
.page-plan .pl-card__desc {
  margin: 0 0 20px; font-family: var(--font-jp-serif); font-size: 16px; line-height: 1.95; color: var(--color-text);
}
.page-plan .pl-empty { text-align: center; font-family: var(--font-jp-serif); color: var(--color-text-sub); }

/* ---- ご予約について ---- */
.page-plan .pl-reserve { background: var(--color-bg-alt); }
.page-plan .pl-sechead { text-align: center; margin-bottom: 40px; }
.page-plan .pl-sechead__en { display: block; font-family: var(--font-en-serif); font-style: italic; font-weight: 500; font-size: 32px; color: var(--color-accent); }
.page-plan .pl-sechead__jp { display: block; margin-top: 8px; font-family: var(--font-jp-serif); font-weight: 500; font-size: 22px; color: var(--color-text); }
.page-plan .pl-resv { max-width: 760px; margin: 0 auto 36px; }
.page-plan .pl-resv:last-child { margin-bottom: 0; }
.page-plan .pl-resv__ttl {
  margin: 0 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--color-line);
  font-family: var(--font-jp-serif); font-weight: 500; font-size: 18px; color: var(--color-text);
}
.page-plan .pl-resv__list { margin: 0; padding-left: 1.3em; font-family: var(--font-jp-serif); }
.page-plan .pl-resv__list li { margin: 0 0 8px; font-size: 16px; line-height: 1.8; color: var(--color-text); }
.page-plan .pl-resv__txt { margin: 0; font-family: var(--font-jp-serif); font-size: 16px; line-height: 1.9; color: var(--color-text); }
.page-plan .pl-table { width: 100%; border-collapse: collapse; font-family: var(--font-jp-serif); }
.page-plan .pl-table th, .page-plan .pl-table td {
  padding: 14px 16px; border-bottom: 1px solid var(--color-line); text-align: left; font-size: 16px; color: var(--color-text);
}
.page-plan .pl-table th { font-weight: 500; background: var(--color-bg); width: 45%; }

/* ---- 詳細 ---- */
.page-plan .pl-detail__hero { width: 100%; line-height: 0; }
.page-plan .pl-detail__hero img { width: 100%; max-height: 520px; object-fit: cover; display: block; }
.page-plan .pl-detail__inner { padding-top: 48px; padding-bottom: 8px; max-width: 860px; }
.page-plan .pl-detail__crumb { font-family: var(--font-jp-serif); font-size: 14px; color: var(--color-text-sub); margin: 0 0 18px; }
.page-plan .pl-detail__crumb a:hover { color: var(--color-accent); }
.page-plan .pl-detail__title {
  margin: 0 0 16px; font-family: var(--font-jp-serif); font-weight: 500; font-size: clamp(26px, 4vw, 34px);
  line-height: 1.45; color: var(--color-text);
}
.page-plan .pl-detail__price {
  margin: 0 0 28px; font-family: var(--font-jp-serif); font-size: 22px; font-weight: 500; color: var(--color-accent);
}
.page-plan .pl-detail__body { font-family: var(--font-jp-serif); font-size: 16px; line-height: 2; color: var(--color-text); }
.page-plan .pl-detail__body p { margin: 0 0 1.5em; }
.page-plan .pl-detail__body img { max-width: 100%; height: auto; }
.page-plan .pl-detail__cta { text-align: center; margin: 36px 0 0; }
.page-plan .pl-detail__foot { padding-top: 0; }
.page-plan .pl-detail__foot-inner { text-align: center; }
.page-plan .pl-back { margin: 28px 0 0; }
.page-plan .pl-back a { font-family: var(--font-jp-serif); font-size: 15px; color: var(--color-text-sub); text-decoration: none; }
.page-plan .pl-back a:hover { color: var(--color-accent); }

/* ---- タブレット ---- */
@media (max-width: 900px) {
  .page-plan .pl-inner { padding: 0 32px; }
  .page-plan .pl-section { padding: 64px 0 80px; }
  .page-plan .pl-card__body { padding: 24px 28px 24px 0; }
}

/* ---- スマホ：カードは縦並び（画像上・テキスト下） ---- */
@media (max-width: 600px) {
  .page-plan .pl-inner { padding: 0 20px; }
  .page-plan .pl-section { padding: 48px 0 64px; }
  .page-plan .pl-card { grid-template-columns: 1fr; gap: 0; }
  .page-plan .pl-card__media img, .page-plan .pl-card__ph { min-height: 200px; }
  .page-plan .pl-card__body { padding: 22px 22px 26px; }
  .page-plan .pl-table th { width: 42%; }
  .page-plan .pl-detail__inner { padding-top: 32px; }
}

/* ==========================================================================
   新着情報（page-news）— ブログ一覧 home.php/archive.php・記事 single.php
   サイト共通の見た目（共通ヘッダー/フッター・サイトフォント）に統一。
   色・フォントはすべて :root 変数（ハードコードしない）。SNS/著者/関連は出さない。
   ========================================================================== */
.page-news { color: var(--color-text); font-family: var(--font-jp-serif); }
.page-news .nw-inner { max-width: 1400px; margin: 0 auto; padding: 0 40px; }
.page-news .nw-section { padding: 72px 0 0px; }

/* ---- 一覧：3列カードグリッド ---- */
.page-news .nw-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 28px; }
.page-news .nw-card {
  background: #fff; border: 1px solid var(--color-line); border-radius: 10px; overflow: hidden;
  box-shadow: 0 4px 18px rgba(58, 45, 31, 0.05); transition: transform .25s, box-shadow .25s;
}
.page-news .nw-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(58, 45, 31, 0.10); }
.page-news .nw-card__link { display: block; color: inherit; text-decoration: none; }
.page-news .nw-card__media { aspect-ratio: 4 / 3; background: var(--color-bg-alt); line-height: 0; overflow: hidden; }
.page-news .nw-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.page-news .nw-card__ph {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
  font-family: var(--font-en-sans); font-size: 14px; letter-spacing: 0.08em; color: var(--color-text-sub);
}
.page-news .nw-card__body { padding: 18px 20px 22px; }
.page-news .nw-card__meta { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.page-news .nw-card__date { font-family: var(--font-en-sans); font-size: 13px; color: var(--color-text-sub); }
.page-news .nw-card__cat {
  font-family: var(--font-jp-serif); font-size: 12px; line-height: 1; color: #fff; background: var(--color-accent);
  padding: 5px 10px; border-radius: 999px;
}
.page-news .nw-card__title { margin: 0 0 8px; font-family: var(--font-jp-serif); font-weight: 500; font-size: 17px; line-height: 1.6; color: var(--color-text); }
.page-news .nw-card__excerpt { margin: 0; font-family: var(--font-jp-serif); font-size: 16px; line-height: 1.85; color: var(--color-text-sub); }

/* ---- ページネーション ---- */
.page-news .nw-pagination { margin-top: 48px; }
.page-news .nw-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.page-news .nw-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px;
  font-family: var(--font-en-sans); font-size: 14px; color: var(--color-text); border: 1px solid var(--color-line);
  border-radius: 6px; text-decoration: none; transition: all .2s;
}
.page-news .nw-pagination .page-numbers.current,
.page-news .nw-pagination .page-numbers:hover { background: var(--color-accent); border-color: var(--color-accent); color: #fff; }
.page-news .nw-empty { text-align: center; color: var(--color-text-sub); }

/* ---- 一覧／記事 共通：本文＋サイドバー2カラム ---- */
.page-news .nw-list__layout,
.page-news .nw-single__layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 56px; align-items: start; }
.page-news .nw-list__main { min-width: 0; }
.page-news .nw-article { min-width: 0; }
.page-news .nw-bc { font-family: var(--font-jp-serif); font-size: 14px; color: var(--color-text-sub); margin: 0 0 18px; }
.page-news .nw-bc a:hover { color: var(--color-accent); }
.page-news .nw-article__meta { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; }
.page-news .nw-article__date { font-family: var(--font-en-sans); font-size: 14px; color: var(--color-text-sub); }
.page-news .nw-article__cat { font-family: var(--font-jp-serif); font-size: 12px; line-height: 1; color: #fff; background: var(--color-accent); padding: 5px 12px; border-radius: 999px; }
.page-news .nw-article__title { margin: 0 0 24px; font-family: var(--font-jp-serif); font-weight: 500; font-size: clamp(24px, 3.5vw, 30px); line-height: 1.5; color: var(--color-text); }
.page-news .nw-article__hero { margin: 0 0 28px; line-height: 0; }
.page-news .nw-article__hero img { width: 100%; max-height: 460px; object-fit: cover; border-radius: 8px; }
.page-news .nw-article__body { font-family: var(--font-jp-serif); font-size: 16px; line-height: 2; color: var(--color-text); }
.page-news .nw-article__body p { margin: 0 0 1.5em; }
.page-news .nw-article__body img { max-width: 100%; height: auto; border-radius: 6px; }
.page-news .nw-back { margin: 36px 0 0; }
.page-news .nw-back a { font-family: var(--font-jp-serif); font-size: 15px; color: var(--color-text-sub); text-decoration: none; }
.page-news .nw-back a:hover { color: var(--color-accent); }

/* ---- サイドバー（カテゴリー/アーカイブ ウィジェット） ---- */
.page-news .nw-aside { font-family: var(--font-jp-serif); }
.page-news .nw-aside .wp-block-group { margin: 0 0 32px; }
.page-news .nw-aside h2 {
  margin: 0 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--color-line);
  font-family: var(--font-jp-serif); font-weight: 500; font-size: 17px; color: var(--color-text);
}
.page-news .nw-aside ul { list-style: none; margin: 0; padding: 0; }
.page-news .nw-aside li { margin: 0 0 8px; font-size: 16px; line-height: 1.7; }
.page-news .nw-aside a { color: var(--color-text); text-decoration: none; }
.page-news .nw-aside a:hover { color: var(--color-accent); }

/* ---- SWELL 投稿リストのカテゴリーラベル（c-postThumb__cat）をブランドカラーに ---- */
.page-news .c-postThumb__cat { background-color: var(--color-brand) !important; }

/* ---- SWELL ページネーション（c-pagination）の現在地・hover をブランドカラーに ---- */
.page-news .c-pagination .page-numbers.current,
.page-news .c-pagination a.page-numbers:hover {
  background-color: var(--color-brand) !important;
  border-color: var(--color-brand) !important;
  color: #fff !important;
}

/* ---- SWELL 投稿リスト（カードタイプ）リンクの hover を淡いブラウンに ---- */
.page-news .-type-card .p-postList__link { transition: background-color .25s; }
.page-news .-type-card .p-postList__link:hover { background-color: rgba(119, 101, 83, 0.08); }

/* ---- タブレット ---- */
@media (max-width: 980px) {
  .page-news .nw-inner { padding: 0 32px; }
  .page-news .nw-section { padding: 56px 0 80px; }
  .page-news .nw-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 22px; }
  .page-news .nw-list__layout,
  .page-news .nw-single__layout { grid-template-columns: 1fr; gap: 48px; }
}

/* ---- スマホ ---- */
@media (max-width: 600px) {
  .page-news .nw-inner { padding: 0 20px; }
  .page-news .nw-section { padding: 44px 0 64px; }
  .page-news .nw-grid { grid-template-columns: 1fr; gap: 24px; }
}
