/*
Theme Name: NOTEL Child
Description: NOTEL サイト用の子テーマ。不要箇所の非表示やカスタムスタイルをここに追加。
Author: NOTEL
Template: notel
Version: 1.5.49
*/

/* ===========================================
   Phase 2: デザイン基盤 — カラートークン
   茶+白ベース + NOTEL ルーツの差し色
   =========================================== */

:root {
  /* --- ベースカラー（茶 + 白） --- */
  --color-brown: #382626;
  --color-white: #faf8f4;
  --color-main: var(--color-brown);
  --color-text: var(--color-brown);
  --color-link: var(--color-brown);
  --color-border: var(--color-brown);
  --color-bg: var(--color-white);
  --color-bg-main: var(--color-brown);

  /* --- 薄茶（UI 差し色 — 茶+白のみ） --- */
  --color-tan-light: #f0ebe5;
  --color-tan-mid: #efe7dd;
  --color-tan-warm: #d8bfab;
  --color-muted: #6b5a5a;

  /* --- セマンティックエイリアス（後方互換・茶系に統一） --- */
  --color-accent-green: var(--color-brown);
  --color-accent-blue: var(--color-muted);
  --color-accent-pink: var(--color-tan-warm);
  --color-accent-yellow: var(--color-tan-warm);

  /* --- タイポグラフィ --- */
  --font-heading: "Shippori Mincho", "游明朝", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --font-base: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴ Pro W3", "Yu Gothic", "游ゴシック", Meiryo, "メイリオ", sans-serif;
  --font-base-en: "Inter", "Helvetica Neue", Arial, sans-serif;
}

/* ===========================================
   Phase 4: 不要箇所の非表示
   対象のセレクタを以下に追加してください
   =========================================== */

/*
例:
#footer-newsletter,
.elementor-section-xxx,
.hidden-section {
    display: none !important;
}
*/

/* ===========================================
   c-infoTable レスポンシブ（法人貸切・ガイド等）
   小さい画面で崩れないようにオーバーライド
   =========================================== */

/* 親グリッド内でカラムが狭くなっても縮小できるようにする */
.c-mediaColumn__body {
  min-width: 0;
}

.c-infoTable {
  max-width: 100%;
  min-width: 0;
}

.c-infoTable__row {
  min-width: 0;
  box-sizing: border-box;
}

/* 見出し・本文の折り返しとブロック表示を確保 */
.c-infoTable__head,
.c-infoTable__data {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  box-sizing: border-box;
}

.c-infoTable__head {
  display: block;
}

.c-infoTable__data {
  display: block;
}

/* 幅が狭いとき（2カラムでも左カラムが狭い場合含む）は見出しと説明を上下に組む */
@media (max-width: 1199px) {
  .c-infoTable__row {
    display: block !important;
    padding-top: 24px;
    padding-bottom: 20px;
  }

  .c-infoTable__head {
    margin-bottom: 8px;
  }
}

/* スマホ: 余白を少し抑えて収まりを良くする */
@media (max-width: 767px) {
  .c-infoTable {
    margin-top: 24px;
  }

  .c-infoTable__row {
    padding-top: 20px;
    padding-bottom: 18px;
  }

  .c-infoTable__head {
    font-size: 4.2vw;
    margin-bottom: 8px;
  }
}

/* ===========================================
   c-spotPanel 画像アスペクト比を統一（キッチン等）
   親の .c-img { height: auto } を上書き
   =========================================== */
/* スポットパネル画像エリア：Kitchen 近隣店は 3:2 横長 */
.p-kitchen__shopGrid .c-spotPanel__media,
.c-panelRail .c-spotPanel__media,
.p-localGuide__spotRail .c-spotPanel__media {
  aspect-ratio: 3 / 2;
  display: block;
  position: relative;
  overflow: hidden;
}
.p-kitchen__shopGrid .c-spotPanel__media .c-spotPanel__image.c-img,
.p-kitchen__shopGrid .c-spotPanel__media .c-img,
.c-panelRail .c-spotPanel__media .c-spotPanel__image.c-img,
.c-panelRail .c-spotPanel__media .c-img,
.p-localGuide__spotRail .c-spotPanel__media .c-spotPanel__image.c-img,
.p-localGuide__spotRail .c-spotPanel__media .c-img {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

/* =============================================================
   全ページ共通: コンテンツ最大幅 + 左右余白（About ページ同型）
   ============================================================= */
@media (min-width: 768px) {
  .l-block {
    padding-left: 50px;
    padding-right: 50px;
  }

  .l-block__inner {
    max-width: 1920px;
    width: 100%;
  }

  /* l-block__inner の 1920px より優先（Top / News / Access 等・About と同じ 1344px） */
  .l-block__inner.l-block--1344 {
    max-width: 1344px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =============================================================
   TOP: 2026-07 リニューアル
   ============================================================= */

/* --- ヒーロー: コンセプト文を画面中央揃え --- */
body.p-top .p-top__heroBottom--center {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  max-width: min(640px, 88vw);
  align-items: center;
  text-align: center;
}

body.p-top .p-top__heroBottom--center .p-top__heroCopy,
body.p-top .p-top__heroBottom--center .p-top__heroLead {
  text-align: center;
  width: 100%;
}

@media (max-width: 767px) {
  body.p-top .p-top__heroBottom--center {
    left: 50%;
    transform: translateX(-50%);
    /* フォントを縮めず、左右マージンを最小化して3行を収める */
    width: max-content;
    max-width: calc(100vw - 40px);
    padding: 0 2px;
    box-sizing: border-box;
  }

  body.p-top .p-top__heroLeadLine,
  body.p-top .p-top__heroLeadEn {
    display: block;
    white-space: nowrap;
  }

  /* 親テーマと同じフォントサイズを維持（縮小しない） */
  body.is-lang-ja.p-top .p-top__heroLead,
  .is-lang-ja body.p-top .p-top__heroLead {
    font-size: 4.6153846154vw;
    letter-spacing: 0.08em;
    line-height: 1.85;
  }

  body.is-lang-ja.p-top .p-top__heroLeadEn,
  .is-lang-ja body.p-top .p-top__heroLeadEn {
    font-size: 0.65em;
    letter-spacing: 0.05em;
  }
}

/* --- About: 背景写真 + 白文字オーバーレイ（ブロックは右、テキストは左揃え） --- */
.p-topRv-about--overlay {
  position: relative;
  overflow: hidden;
  padding: 0;
  min-height: clamp(520px, 72vh, 760px);
  display: flex;
  align-items: center;
}

.p-topRv-about__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.p-topRv-about__bg .c-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.p-topRv-about__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    rgba(20, 16, 14, 0.35) 0%,
    rgba(20, 16, 14, 0.5) 45%,
    rgba(20, 16, 14, 0.62) 100%
  );
}

.p-topRv-about--overlay .l-block {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-top: clamp(64px, 10vh, 120px);
  padding-bottom: clamp(64px, 10vh, 120px);
}

.p-topRv-about__content {
  margin-left: auto;
  max-width: min(560px, 100%);
  color: #fff;
  text-align: left;
}

.p-topRv-about--overlay .p-topRv-eyebrow,
.p-topRv-about--overlay .p-topRv-heading,
.p-topRv-about--overlay .p-topRv-prose {
  color: #fff;
}

.p-topRv-about--overlay .p-topRv-sectionHead {
  text-align: left;
  margin-bottom: 28px;
}

.p-topRv-about__prose {
  max-width: none;
  margin: 0;
  text-align: left;
}

.p-topRv-about__prose p {
  text-align: left;
}

.p-topRv-about__prose p + p {
  margin-top: 1.25em;
}

/* 2026-07-08 FB: Top About 本文を明朝体で試す（英字は既存の欧文フォント維持） */
.p-topRv-about__prose {
  font-family: var(--font-heading);
}

.is-lang-en .p-topRv-about__prose {
  font-family: var(--font-base-en);
}

/* 2026-07-08 FB: Local Guide の CTA をリード直下（スポット一覧の前）に移動しセンター配置 */
.p-topRv-ctaRow--underLead {
  margin-top: 8px;
  margin-bottom: 40px;
  text-align: center;
}

/* 2026-07-08 FB: Top Rooms の CTA を中央揃え（見出し・リード・CTAを画像の上に配置） */
.p-topRv-ctaRow--center {
  text-align: center;
}

.p-topRv-ctaRow--center + .p-topRv-roomSlider {
  margin-top: 40px;
}

.p-topRv-about--overlay .p-topRv-ctaRow {
  margin-top: 32px;
  text-align: right;
}

.p-topRv-link--onDark {
  color: #fff;
}

.p-topRv-link--onDark .p-topRv-link__arrow {
  color: #fff;
}

@media (max-width: 767px) {
  .p-topRv-about--overlay {
    min-height: auto;
  }

  .p-topRv-about__content {
    margin-left: 0;
    max-width: none;
  }
}

/* Rooms 見出し・リード文: 左揃え（スライダー下） */
.p-topRv-sectionHead--left {
  text-align: left;
  margin-left: 0;
  margin-right: auto;
  max-width: none;
}

.p-topRv-roomSlider + .p-topRv-sectionHead--left {
  margin-top: 40px;
  margin-bottom: 0;
}

.p-topRv-roomSlider + .p-topRv-sectionHead--left .p-topRv-eyebrow {
  margin-bottom: 8px;
}

.p-topRv-roomSlider + .p-topRv-sectionHead--left .p-topRv-heading {
  margin-bottom: 16px;
}

/* 各セクションの導入リード文 */
.p-topRv-leadProse {
  max-width: 720px;
  margin: 0 auto 40px;
  text-align: center;
}

.p-topRv-leadProse.p-topRv-leadProse--left {
  margin-left: 0;
  margin-right: auto;
  max-width: none;
  text-align: left;
}

@media (max-width: 767px) {
  .p-topRv-leadProse {
    text-align: left;
    margin-bottom: 24px;
  }

  .p-topRv-leadProse--left {
    margin-bottom: 24px;
  }
}

/* --- Rooms: 横長スライダー（3:2）+ ディゾルブ --- */
.p-topRv-roomSlider {
  margin-bottom: 32px;
}

.p-topRv-roomSlider .p-about__sliderViewport {
  position: relative;
  aspect-ratio: 3 / 2;
}

.p-topRv-roomSlider .p-about__sliderTrack {
  position: relative;
  height: 100%;
}

.p-topRv-roomSlider .p-about__sliderSlide {
  display: block;
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.9s ease;
  pointer-events: none;
  z-index: 0;
}

.p-topRv-roomSlider .p-about__sliderSlide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 1;
}

.p-topRv-roomSlider .p-about__sliderSlide img {
  aspect-ratio: 3 / 2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 線のみの矢印（白・背景なし） */
.p-about__sliderBtn--line {
  background: none;
  border: none;
  border-radius: 0;
  width: 44px;
  height: 44px;
  color: #fff;
  font-size: 0;
}

.p-about__sliderBtn--line::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  margin: 0 auto;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
}

.p-about__sliderBtn--line.p-about__sliderBtn--prev::before {
  transform: translateX(2px) rotate(-135deg);
}

.p-about__sliderBtn--line.p-about__sliderBtn--next::before {
  transform: translateX(-2px) rotate(45deg);
}

.p-about__sliderBtn--line:hover {
  background: none;
  opacity: 0.75;
}

.p-topRv-roomSlider .p-about__sliderBtn--line {
  z-index: 2;
}

/* --- Cafe / Kitchen / Access: 3:2 横長 + テキスト上揃え・左揃え --- */
.p-topRv-featureRow--alignTop {
  align-items: start;
}

body.p-top .p-topRv-featureRow__body .p-topRv-prose {
  text-align: left;
}

.p-topRv-featureRow__media--ratio32 img {
  aspect-ratio: 3 / 2;
  width: 100%;
  object-fit: cover;
  display: block;
}

@media (min-width: 768px) {
  .p-topRv-featureRow--split50 {
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }
}

/* --- Local Guide: About と同じ autoScrollRail（速度 0.5px/frame）+ 矢印 --- */
.p-topSpotRail--autoScroll {
  margin-top: 28px;
  margin-bottom: 8px;
}

.p-topSpotRail--autoScroll .p-topSpotRail__viewport {
  position: relative;
  overflow: hidden;
}

.p-topSpotRail--autoScroll .p-topSpotRail__track {
  display: flex;
  /* 2026-07-10 FB: 18px の3倍 */
  --top-spot-rail-gap: 54px;
  gap: var(--top-spot-rail-gap);
  overflow-x: auto;
  scroll-snap-type: none;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
}

.p-topSpotRail--autoScroll .p-topSpotRail__track::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.p-topSpotRail--autoScroll .p-topSpotRail__track.is-paused {
  scroll-behavior: auto;
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  color: #fff;
  cursor: pointer;
  transition: opacity 0.25s ease;
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow--prev {
  left: 8px;
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow--prev::before {
  transform: translateX(2px) rotate(-135deg);
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow--next {
  right: 8px;
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow--next::before {
  transform: translateX(-2px) rotate(45deg);
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow:hover {
  opacity: 0.75;
}

.p-topSpotRail--autoScroll .p-topSpotRail__arrow.is-disabled {
  opacity: 0.35;
  pointer-events: none;
}

@media (min-width: 768px) {
  .p-topSpotRail--autoScroll .p-topSpotRail__card {
    flex: 0 0 calc((100% - 2 * var(--top-spot-rail-gap, 54px)) / 3);
  }
}

/* ヒーローの英語コピー */
.p-top__heroLeadEn {
  display: block;
  margin-top: 0.8em;
  font-family: "Cormorant Garamond", "Times New Roman", serif;
  font-style: italic;
  letter-spacing: 0.04em;
  opacity: 0.92;
}

/* ===========================================
   About ページ（2026-07-02 フィードバック）
   =========================================== */

.p-about__leadBlock {
  padding-top: 40px;
  padding-bottom: 40px;
}

@media (min-width: 768px) {
  .p-about__leadBlock {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}

/* 下層ページリード文（JA は従来サイズ、EN のみ本文 p-topRv-prose に合わせる） */
.p-about__pageLead {
  margin: 0;
  text-align: center;
  color: var(--color-brown);
  opacity: 1;
}

@media (max-width: 767px) {
  .is-lang-ja .p-about__pageLead.p-top__heroLead {
    font-size: 4.6153846154vw;
    letter-spacing: 0.08em;
    line-height: 1.85;
  }
}

.is-lang-en .p-about__pageLead.p-top__heroLead,
body.is-lang-en .p-about__leadBlock .p-about__pageLead.p-top__heroLead {
  font-family: var(--font-base-en);
  font-size: 3.3333333333vw;
  font-weight: 400;
  line-height: 2.1;
  letter-spacing: 0;
}

@media (min-width: 768px) {
  .is-lang-en .p-about__pageLead.p-top__heroLead,
  body.is-lang-en .p-about__leadBlock .p-about__pageLead.p-top__heroLead {
    font-size: calc(1.2rem * var(--typo-scale, 1));
  }
}

/* 2026-07-09 FB: 本文 eyebrow は sentence case（HTML 表記をそのまま表示。親 CSS の uppercase を解除） */
.p-topRv-eyebrow {
  text-transform: none;
}

/* Farm Stay / Active Rest: トップ Cafe 等と同じタイポ（p-topRv-* 併用） */
.p-about .p-topRv-featureRow__body .p-topRv-prose {
  text-align: left;
  margin-bottom: 0;
}

.p-about .l-block--1344 {
  max-width: 1344px;
}

/* Farm Stay: スライダー上 → テキスト下（トップ Room 同型 3:2 ディゾルブ） */
.p-about__farmStayStack {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-about .p-about__section--farmStay {
  border-bottom: none;
  padding-top: 0;
  padding-bottom: 48px;
}

@media (min-width: 768px) {
  .p-about .p-about__section--farmStay {
    padding-bottom: 64px;
  }
}

.p-about__farmStaySlider.p-topRv-roomSlider {
  margin-bottom: 0;
}

/* リード文下余白（About / Rooms / Kitchen / Cafe / 貸切プラン 共通・3倍） */
.p-about__leadBlock:has(+ .p-about),
.p-about__leadBlock:has(+ .p-rooms),
.p-about__leadBlock:has(+ .p-kitchen),
.p-about__leadBlock:has(+ .p-cafe),
.p-about__leadBlock:has(+ .p-privateRv) {
  padding-bottom: 120px;
}

@media (min-width: 768px) {
  .p-about__leadBlock:has(+ .p-about),
  .p-about__leadBlock:has(+ .p-rooms),
  .p-about__leadBlock:has(+ .p-kitchen),
  .p-about__leadBlock:has(+ .p-cafe),
  .p-about__leadBlock:has(+ .p-privateRv) {
    padding-bottom: 168px;
  }
}

/* Farm Stay テキスト: スライダー画像幅の 70%（SP は 100%） */
.p-about__farmStayText {
  width: 100%;
}

@media (min-width: 768px) {
  .p-about__farmStayText {
    width: 70%;
    margin-inline: auto;
  }
}

/* Active Rest: 左スライダー（2:3 ディゾルブ）+ 右テキスト */
.p-about__section--activeRest .p-about__activeRestBody {
  display: grid;
  gap: 40px;
  align-items: flex-start;
  margin-top: 0;
}

@media (min-width: 768px) {
  .p-about__section--activeRest .p-about__activeRestBody {
    grid-template-columns: 1fr 1fr;
    gap: 56px;
  }
}

.p-about__activeRestSlider.p-topRv-roomSlider {
  margin-bottom: 0;
}

.p-about__activeRestSlider.p-topRv-roomSlider .p-about__sliderViewport {
  aspect-ratio: 2 / 3;
}

.p-about__activeRestSlider.p-topRv-roomSlider .p-about__sliderSlide img {
  aspect-ratio: 2 / 3;
}

.p-about__section--activeRest {
  border-bottom: none;
}

/* History: トップ News と同じ見出し・リード */
.p-about__section--history .p-topRv-sectionHead {
  margin-bottom: 48px;
}

@media (min-width: 768px) {
  .p-about__section--history .p-topRv-sectionHead {
    margin-bottom: 56px;
  }
}

.p-about__section--history .p-topRv-leadProse {
  margin-bottom: 48px;
}

@media (min-width: 768px) {
  .p-about__section--history .p-topRv-leadProse {
    margin-bottom: 56px;
  }
}

/* History */
.p-about__historyCards {
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-about__section--history {
  border-bottom: none;
}

.p-about__historyCards .p-top__infoItem {
  border-top: none;
  padding-top: 0;
}

/* ===========================================
   共通ヒーロー: 下層ページオーバーレイ（c-hero--overlay）
   notel_render_hero() のデフォルト。全下層ページで同一スタイル。
   =========================================== */

.c-hero--overlay .c-hero__media {
  position: relative;
}

.c-hero--overlay .c-hero__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 32px;
  background: rgba(56, 38, 38, 0.45);
  color: var(--color-white);
}

@media (min-width: 768px) {
  .c-hero--overlay .c-hero__overlay {
    padding: 48px 70px;
  }
}

.c-hero--overlay .c-hero__head {
  padding: 0;
  text-align: center;
}

.c-hero--overlay .c-hero__subtitle {
  margin: 0;
  font-family: var(--font-base-en);
  font-size: 3.0769230769vw;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-white) !important;
}

@media (min-width: 768px) {
  .c-hero--overlay .c-hero__subtitle {
    font-size: 1.2rem;
  }
}

.c-hero--overlay .c-hero__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 6.1538461538vw;
  font-weight: 600;
  line-height: 1.25;
  color: var(--color-white) !important;
}

@media (min-width: 768px) {
  .c-hero--overlay .c-hero__title {
    font-size: 2.88rem;
  }
}

.c-hero--overlay .c-hero__titleJa {
  margin: 0.3em 0 0;
  font-family: var(--font-base);
  font-size: 3.5897435897vw;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: var(--color-white) !important;
}

@media (min-width: 768px) {
  .c-hero--overlay .c-hero__titleJa {
    font-size: 1.65rem;
  }
}

/* リード文は写真下・白背景上（ヒーロー内 lead 使用時） */
.c-hero--overlay .c-hero__body {
  padding: 40px 0 0;
  text-align: center;
}

@media (min-width: 768px) {
  .c-hero--overlay .c-hero__body {
    padding: 56px 0 0;
  }
}

.c-hero--overlay .c-hero__lead {
  margin: 0 auto;
  max-width: 720px;
  font-family: var(--font-base);
  font-size: 3.0769230769vw;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.06em;
  color: var(--color-brown) !important;
}

@media (min-width: 768px) {
  .c-hero--overlay .c-hero__lead {
    font-size: 1.1rem;
  }
}

/* ===========================================
   Room ページ（2026-07-02 フィードバック）
   =========================================== */

.p-rooms .l-block--1344 {
  max-width: 1344px;
}

.p-rooms .p-topRv-featureRow__body .p-topRv-prose,
.p-rooms .p-rooms__roomProse,
.p-rooms .p-rooms__privateProse {
  text-align: left;
  margin-bottom: 0;
}

/* 客室: About Farm Stay 同型（スライダー上 → テキスト下、3:2 横長） */
.p-rooms__room {
  padding-top: 48px;
  padding-bottom: 48px;
  border-bottom: none;
}

.p-rooms__room:first-of-type {
  padding-top: 0;
}

@media (min-width: 768px) {
  .p-rooms__room {
    padding-top: 64px;
    padding-bottom: 64px;
  }

  .p-rooms__room:first-of-type {
    padding-top: 0;
  }
}

.p-rooms__roomStack {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-rooms__roomSlider.p-topRv-roomSlider {
  margin-bottom: 0;
}

/* PC: 左（見出し・本文・CTA）/ 右（図面・スペック） */
.p-rooms__roomBody {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

@media (min-width: 768px) {
  .p-rooms__roomBody {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: flex-start;
  }
}

.p-rooms__roomMain .p-topRv-eyebrow {
  margin-bottom: 8px;
}

.p-rooms__roomMain .p-topRv-heading {
  margin-bottom: 20px;
}

.p-rooms__roomMain .p-rooms__roomSpecProse {
  margin-top: 20px;
}

.p-rooms__roomCta.c-buttonCta {
  margin-top: 32px;
  justify-content: flex-end;
}

.p-rooms__roomFloor {
  margin: 0 0 20px;
}

.p-rooms__roomFloor img {
  width: 100%;
  max-width: 320px;
  height: auto;
  display: block;
  margin-inline: auto;
}

/* 出入口を下に揃える（トリプル・コンパクトツイン） */
.p-rooms__roomFloor--flip img {
  transform: rotate(180deg);
}

.p-rooms__roomSpecProse {
  margin: 0;
  font-size: calc(3.3333333333vw - 2px);
  line-height: 2.1;
  letter-spacing: 0.04em;
  color: #5c4848;
}

@media (min-width: 768px) {
  .p-rooms__roomSpecProse {
    font-size: calc(1.2rem - 2px);
  }
}

.p-rooms__privateNote {
  margin: 20px 0 0;
  font-size: 0.875rem;
  line-height: 1.8;
  color: #8b6f5c;
  letter-spacing: 0.03em;
}

.p-rooms__privateNote a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.p-rooms__privateCta {
  padding-top: 64px;
  padding-bottom: 64px;
  border-top: none;
  border-bottom: none;
}

.p-rooms__privateBody {
  display: grid;
  gap: 40px;
  align-items: flex-start;
}

@media (min-width: 768px) {
  .p-rooms__privateBody {
    grid-template-columns: 1fr 1fr;
    gap: 56px;
  }
}

.p-rooms__privateCta .p-topRv-heading {
  margin-bottom: 20px;
}

.p-rooms__privateProse {
  margin-bottom: 32px;
}

.p-rooms__privateCtaBtn.c-buttonCta {
  justify-content: flex-end;
}

.p-rooms__privateMedia {
  margin: 0;
}

.p-rooms__privateMedia img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  display: block;
}

.p-rooms__amenity {
  padding-top: 64px;
  padding-bottom: 64px;
  border-bottom: none;
}

.p-rooms__amenityBody {
  display: grid;
  gap: 40px;
  align-items: flex-start;
}

@media (min-width: 768px) {
  .p-rooms__amenityBody {
    grid-template-columns: 1fr 1fr;
    gap: 56px;
  }
}

.p-rooms__amenity .p-topRv-heading {
  margin-bottom: 20px;
}

.p-rooms .p-rooms__amenityIntro {
  text-align: left;
  margin-bottom: 40px;
}

.p-rooms__amenityMediaStack {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

@media (min-width: 768px) {
  .p-rooms__amenityMediaStack {
    gap: 40px;
  }
}

.p-rooms__amenityMedia {
  margin: 0;
}

.p-rooms__amenityMedia img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.p-rooms__amenityDetails {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-rooms__amenityDetail {
  width: 100%;
}

.p-rooms__amenityDetailTitle {
  margin: 0 0 12px;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-brown);
}

.p-rooms__amenityDetailBody {
  margin: 0;
}

/* ===========================================
   Cafe ページ（2026-07-02 フィードバック）
   =========================================== */

.p-cafe .l-block--1344 {
  max-width: 1344px;
}

.p-cafe .p-topRv-prose {
  text-align: left;
  margin-bottom: 0;
}

/* スライダー: Room 客室スライダー同型（全幅・3:2 横長ディゾルブ） */
.p-cafe__homemakers {
  padding-bottom: 48px;
  border-bottom: none;
}

@media (min-width: 768px) {
  .p-cafe__homemakers {
    padding-bottom: 64px;
  }
}

.p-cafe__sliderStack {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.p-cafe__mainSlider.p-topRv-roomSlider {
  margin-bottom: 0;
}

/* FARMER'S CAFE */
.p-cafe__farmersCafe {
  padding-top: 48px;
  padding-bottom: 64px;
  border-top: none;
  border-bottom: none;
}

@media (min-width: 768px) {
  .p-cafe__farmersCafe {
    padding-top: 64px;
    padding-bottom: 80px;
  }
}

/* FARMER'S CAFE: スライダー画像幅の 70%（SP は 100%）— Farm Stay / Kitchen ダイニング同型 */
.p-cafe__farmersCafe > .p-topRv-eyebrow,
.p-cafe__farmersCafe > .p-topRv-heading,
.p-cafe__farmersCafe > .p-cafe__farmersProse,
.p-cafe__farmersCafe > .p-cafe__hours,
.p-cafe__farmersCafe > .p-cafe__links {
  width: 100%;
}

@media (min-width: 768px) {
  .p-cafe__farmersCafe > .p-topRv-eyebrow,
  .p-cafe__farmersCafe > .p-topRv-heading,
  .p-cafe__farmersCafe > .p-cafe__farmersProse,
  .p-cafe__farmersCafe > .p-cafe__hours,
  .p-cafe__farmersCafe > .p-cafe__links {
    width: 70%;
    margin-inline: auto;
  }
}

/* Hours 内はコンテナ幅いっぱい（二重 70% で左にずれるのを防ぐ） */
.p-cafe__hours .p-topRv-eyebrow,
.p-cafe__hours .p-cafe__hoursHeading,
.p-cafe__hours .p-cafe__hoursProse {
  width: 100%;
  margin-inline: 0;
}

.p-cafe__farmersCafe .p-topRv-heading {
  margin-bottom: 20px;
}

.p-cafe__farmersProse {
  margin-bottom: 0;
}

.p-cafe__hours {
  margin-top: 40px;
}

.p-cafe__hoursHeading {
  margin-bottom: 16px;
}

.p-cafe__hoursProse {
  margin-bottom: 0;
}

.p-cafe__hoursProse p + p {
  margin-top: 0.4em;
}

/* ===========================================
   Kitchen ページ（2026-07-02 フィードバック）
   =========================================== */

.p-kitchen .l-block--1344 {
  max-width: 1344px;
}

.p-kitchen .p-topRv-prose:not(.p-topRv-leadProse) {
  text-align: left;
  margin-bottom: 0;
}

.p-kitchen__dining {
  padding-bottom: 0;
  margin-bottom: 20px;
  border-bottom: none;
}

.p-kitchen__sliderStack {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-bottom: 32px;
}

@media (min-width: 768px) {
  .p-kitchen__sliderStack {
    margin-bottom: 40px;
  }
}

.p-kitchen__mainSlider.p-topRv-roomSlider {
  margin-bottom: 0;
}

/* ダイニング本文: スライダー画像幅の 70%（SP は 100%）— Farm Stay 同型 */
.p-kitchen__dining .p-topRv-eyebrow,
.p-kitchen__detailHeading,
.p-kitchen__detailProse {
  width: 100%;
}

@media (min-width: 768px) {
  .p-kitchen__dining .p-topRv-eyebrow,
  .p-kitchen__detailHeading,
  .p-kitchen__detailProse {
    width: 70%;
    margin-inline: auto;
  }
}

.p-kitchen__dining .p-topRv-heading {
  margin-bottom: 20px;
}

.p-kitchen__detailProse {
  margin-bottom: 0;
}

/* 道具＆調味料: 左テキスト + 右に 3:2 写真2枚（Rooms アメニティ同型） */
.p-kitchen__tools {
  padding-top: 48px;
  padding-bottom: 48px;
  border-top: none;
  border-bottom: none;
}

@media (min-width: 768px) {
  .p-kitchen__tools {
    padding-top: 80px;
    padding-bottom: 64px;
  }
}

.p-kitchen__toolsBody {
  display: grid;
  gap: 40px;
  align-items: flex-start;
}

@media (min-width: 768px) {
  .p-kitchen__toolsBody {
    grid-template-columns: 1fr 1fr;
    gap: 56px;
  }
}

.p-kitchen__tools .p-topRv-heading {
  margin-bottom: 20px;
}

.p-kitchen__toolsMediaStack {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

@media (min-width: 768px) {
  .p-kitchen__toolsMediaStack {
    gap: 40px;
  }
}

.p-kitchen__toolsMedia {
  margin: 0;
}

.p-kitchen__toolsMedia img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.p-kitchen .p-topRv-prose.p-kitchen__toolsProse {
  margin-bottom: 30px;
}

.p-kitchen__toolsProse p + p {
  margin-top: 1.2em;
}

.p-kitchen__toolsMain .p-kitchen__noteGroup:first-of-type {
  margin-top: 32px;
}

.p-kitchen__noteGroup + .p-kitchen__noteGroup {
  margin-top: 32px;
}

.p-kitchen__noteTitle {
  margin: 0 0 12px;
  font-weight: 600;
  color: var(--color-brown);
}

.p-kitchen__noteProse {
  margin-bottom: 0;
}

.p-kitchen__spot {
  padding-top: 0;
  padding-bottom: 64px;
  border-top: none;
}

@media (min-width: 768px) {
  .p-kitchen__spot {
    padding-top: 0;
    padding-bottom: 80px;
  }
}

.p-kitchen__spotHeading {
  margin-bottom: 24px;
}

.p-kitchen__spotLead.p-topRv-leadProse {
  margin-bottom: 40px;
}

@media (max-width: 767px) {
  .p-kitchen__spotLead.p-topRv-leadProse {
    margin-bottom: 24px;
  }
}

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

@media (min-width: 768px) {
  .p-kitchen__shopGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 48px 50px;
  }
}

.p-kitchen__shopGrid .c-spotPanel {
  width: 100%;
  min-width: 0;
  height: auto;
}

.p-kitchen__shopGrid .c-spotPanel__link {
  padding: 0;
  background: none;
  border-radius: 0;
}

/* ===========================================
   News ページ（2026-07-02 フィードバック）
   =========================================== */

.p-news .c-postCards {
  padding-top: 0;
}

.c-postTags__link {
  border-radius: 0;
}

.p-kitchen__shopGrid .c-tagLabel.c-tagLabel--patternA {
  border-radius: 0;
  background-color: #fff;
}

/* ===========================================
   Access ページ（2026-07-02 フィードバック）
   =========================================== */

.p-access__sectionHeading {
  margin: 0 0 32px;
}

.p-access__regional {
  padding-top: 48px;
}

@media (min-width: 768px) {
  .p-access__regional {
    padding-top: 64px;
  }
}

.p-access__regionalMapFigure {
  margin: 0 0 32px;
}

/* 正式地図に差し替え済み — サンプル用の点線枠を除去 */
.p-access__regionalMapInner {
  border: none;
  background: transparent;
}

/* SP のみタップで拡大（貸切フロア図と同型モーダル） */
.p-access__regionalMapLink {
  display: block;
  cursor: zoom-in;
}

.p-access__regionalMapLink .p-access__regionalMapImg {
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 768px) {
  .p-access__regionalMapLink {
    cursor: default;
    pointer-events: none;
  }
}

/* 地域マップ下テキスト: マップ幅の 70%（SP は 100%）— Farm Stay 同型 */
.p-access__regionalProse {
  width: 100%;
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .p-access__regionalProse {
    width: 70%;
    margin-inline: auto;
  }
}

.p-access__detail {
  padding-top: 48px;
  padding-bottom: 64px;
}

@media (min-width: 768px) {
  .p-access__detail {
    padding-top: 64px;
    padding-bottom: 80px;
  }
}

.p-access__detailContent .c-noteBox__group + .c-noteBox__group {
  margin-top: 24px;
}

.p-access__mapCol {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.p-access__mapAddress {
  margin: 0;
  font-size: 3.0769230769vw;
  line-height: 1.8;
  color: var(--color-brown);
}

@media (min-width: 768px) {
  .p-access__mapAddress {
    font-size: 1.3rem;
  }
}

.p-access__mapAddressName {
  display: block;
  font-weight: 500;
  margin-bottom: 4px;
}

/* ===========================================
   Local Guide — デザイン調整（2026-07-08）
   マップ／スポット画像を 3:2 横長に変更し、
   スポットカードを「写真上・説明下」の縦積みへ。
   ※ グローバル style.css の 2:3 縦長ルールを上書き
   =========================================== */

/* マップは固定（sticky）しない */
.p-localGuide__mapWrap {
  position: static;
}

/* マップを 3:2 横長に */
.c-googlemap--localGuide {
  height: auto;
  aspect-ratio: 3 / 2;
}
@media (min-width: 768px) {
  .c-googlemap--localGuide {
    height: auto;
  }
}

/* スポットリストを読みやすい幅で中央寄せ（1枚ずつ大きく見せる） */
.p-localGuide__spotList {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

/* カード: 写真（3:2）を上、説明を下に縦積み */
.p-localGuide__spotItem {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (min-width: 640px) {
  .p-localGuide__spotItem {
    grid-template-columns: none;
    gap: 20px;
  }
}
@media (min-width: 1024px) {
  .p-localGuide__spotItem {
    grid-template-columns: none;
    gap: 24px;
  }
}

/* 写真を 3:2 横長に */
.p-localGuide__spotMedia {
  aspect-ratio: 3 / 2;
}

/* マップ内ポップアップのサムネイルも 3:2 に統一 */
.p-localGuide__popupMedia {
  width: 96px;
  aspect-ratio: 3 / 2;
}

/* ===========================================
   お問い合わせフォーム: 角丸を削除（2026-07-08）
   パネル（白背景）と入力欄・セレクト・テキストエリアの
   border-radius を 0 に。※contact フォームにのみ適用
   =========================================== */

.l-block__panel:has(.c-contactForm) {
  border-radius: 0;
}

.c-contactForm__control {
  border-radius: 0;
}

/* ===========================================
   貸切プラン（Private Reservation）ページ
   2026-07-02 フィードバック反映
   ヒーロー／リード／見出しは About〜Kitchen と同型、
   スライダーは 3:2 横長。セクション余白は padding-top のみ。
   =========================================== */

.p-privateRv .l-block--1344 {
  max-width: 1344px;
}

/* 本文プロセ: 左揃え・下マージンなし（リード文は別途調整） */
.p-privateRv .p-topRv-prose:not(.p-topRv-leadProse) {
  text-align: left;
  margin-bottom: 0;
}

/* --- セクション余白（中間セクションは padding-top のみ） --- */
.p-privateRv__intro,
.p-privateRv__floor,
.p-privateRv__pricing {
  padding-top: 48px;
  border-top: none;
  border-bottom: none;
}

@media (min-width: 768px) {
  .p-privateRv__intro,
  .p-privateRv__floor,
  .p-privateRv__pricing {
    padding-top: 64px;
  }
}

/* --- 利用シーン（スライダー + 見出し + テーブル） --- */
.p-privateRv__scene {
  padding-top: 0;
  border-top: none;
  border-bottom: none;
}

.p-privateRv__sliderStack {
  margin-bottom: 40px;
}

@media (max-width: 767px) {
  .p-privateRv__sliderStack {
    margin-bottom: 32px;
  }
}

.p-privateRv__mainSlider.p-topRv-roomSlider {
  margin-bottom: 0;
}

.p-privateRv__sceneHeading {
  margin-bottom: 24px;
}

.p-privateRv__caseTable {
  margin-top: 0;
  margin-bottom: 0;
}

/* --- メイン見出し（7つの個室〜）: スライダー画像幅の 70%（SP は 100%）— Farm Stay 同型 --- */
.p-privateRv__introHeading,
.p-privateRv__introProse,
.p-privateRv__floor .p-topRv-eyebrow,
.p-privateRv__floorHeading,
.p-privateRv__floorIntro,
.p-privateRv__pricing .p-topRv-eyebrow,
.p-privateRv__pricingHeading,
.p-privateRv__pricingProse {
  width: 100%;
}

@media (min-width: 768px) {
  .p-privateRv__introHeading,
  .p-privateRv__introProse,
  .p-privateRv__floor .p-topRv-eyebrow,
  .p-privateRv__floorHeading,
  .p-privateRv__floorIntro,
  .p-privateRv__pricing .p-topRv-eyebrow,
  .p-privateRv__pricingHeading,
  .p-privateRv__pricingProse {
    width: 70%;
    margin-inline: auto;
  }
}

.p-privateRv__introHeading {
  margin-bottom: 20px;
}

.p-privateRv__introProse {
  margin-bottom: 0;
}

/* --- 2階フロア図 --- */
.p-privateRv__floorHeading {
  margin-bottom: 20px;
}

.p-privateRv__floorIntro.p-topRv-prose {
  margin-bottom: 0;
}

.p-privateRv__floorPlan {
  margin: 0 0 32px;
  background: transparent;
  border: 1px solid var(--color-tan-mid);
}

.p-privateRv__floorPlanLink {
  display: block;
  cursor: zoom-in;
}

.p-privateRv__floorPlan img {
  width: 100%;
  height: auto;
  display: block;
}

/* 客室番号リスト: 2カラム（PC）→ 1カラム（SP） */
.p-privateRv__roomList {
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px 40px;
  border-top: 1px solid var(--color-tan-mid);
}

@media (min-width: 640px) {
  .p-privateRv__roomList {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.p-privateRv__roomItem {
  padding: 12px 4px;
  border-bottom: 1px solid var(--color-tan-mid);
  color: var(--color-brown);
  line-height: 1.6;
}

.p-privateRv__roomNo {
  display: inline-block;
  min-width: 3.2em;
  margin-right: 0.8em;
  font-family: var(--font-base-en);
  font-weight: 600;
  letter-spacing: 0.04em;
}

.p-privateRv__floorBody.p-topRv-prose {
  margin-bottom: 0;
}

/* --- 料金について + お問い合わせ CTA --- */
.p-privateRv__pricingHeading {
  margin-bottom: 20px;
}

.p-privateRv__pricingProse {
  margin-bottom: 0;
}

/* --- 最下部 CTA --- */
.p-privateRv__cta {
  padding-top: 48px;
  padding-bottom: 64px;
  text-align: center;
}

@media (min-width: 768px) {
  .p-privateRv__cta {
    padding-top: 64px;
    padding-bottom: 80px;
  }
}

/* --- 404: 手書きフォント廃止・英字メッセージ --- */
.c-notFound--english {
  padding-top: 48px;
  padding-bottom: 48px;
}

@media (min-width: 768px) {
  .c-notFound--english {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.c-notFound--english .c-notFound__message {
  margin: 0;
  color: var(--color-brown);
  font-family: var(--font-base-en);
  font-size: 5.1282051282vw;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.55;
}

@media (min-width: 768px) {
  .c-notFound--english .c-notFound__message {
    max-width: 720px;
    margin-inline: auto;
    font-size: 2rem;
    line-height: 1.6;
  }
}

.c-notFound--english .c-notFound__button {
  margin-top: 32px;
}

@media (min-width: 768px) {
  .c-notFound--english .c-notFound__button {
    margin-top: 40px;
  }
}

/* ===========================================
   News 個別ページ（読みやすさ調整）
   =========================================== */

.l-block--1160 {
  max-width: 1160px;
}

.p-newsDetail {
  padding-top: 40px;
}

@media (min-width: 768px) {
  .p-newsDetail {
    padding-top: 64px;
  }
}

.p-newsDetail .l-block__panel {
  border-radius: 0;
}

.p-newsDetail .c-articleDetail__reading {
  max-width: 730px;
  margin-inline: auto;
}

.p-newsDetail .c-articleDetail__mv {
  margin-bottom: 28px;
  padding-left: 0;
  padding-right: 0;
}

@media (min-width: 768px) {
  .p-newsDetail .c-articleDetail__mv {
    margin-bottom: 36px;
  }
}

.p-newsDetail .c-articleDetail__mvImage {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.p-newsDetail .c-articleDetail__content img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  .p-newsDetail .c-articleDetail__content img {
    width: 100%;
    max-width: 100%;
  }
}

/* ===========================================
   Contact FAQ: 手書き風 SVG → ゴシック体の + / −
   =========================================== */

.c-faq__summary::after {
  content: "+";
  width: auto;
  height: auto;
  background: none;
  font-family: var(--font-base-en);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  color: #382626;
  text-align: center;
}

@media (min-width: 768px) {
  .c-faq__summary::after {
    font-size: 2.2rem;
  }
}

.c-faq__item[open] .c-faq__summary::after {
  content: "−";
  background: none;
}
