@charset "utf-8";
/* =========================================================================
   page.css  ―  TOPページ固有スタイル (p-home__*)
   Figma: TOPデザイン(PC 1440) / SP(390)
   ========================================================================= */

/* =========================================================================
   FV / KV  ―  Figma 288:1055 (1440x904)
   ========================================================================= */
.p-home__fv {
  position: relative;
  width: 100%;
  height: 904px;
  max-height: 100vh;
  /* overflow:hidden にするとFV下端に重ねたお知らせバーの下半分が切れるため外す。
     クリップはスライダー側で行う。 */
}
/* FV全体にうっすら黒グラデーションを重ねる（テキスト可読性確保）。
   スライダー(z1)より上・コピー(z3)より下に敷く。上部はほぼ0%（透明）＝サムネ/枚数表示に影響しない。
   下部（テキストのある領域）を濃くして文字を浮かび上がらせる。 */
.p-home__fv::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.50) 0%,
    rgba(0, 0, 0, 0.30) 18%,
    rgba(0, 0, 0, 0.10) 40%,
    rgba(0, 0, 0, 0) 66%
  );
}
/* 背景スライダー（既存ACF slider を流用）
   ※ swiper-wrapper/slide には position:absolute を当てない（Swiperの動作を壊すため） */
.p-home__fv-slider {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;   /* スライダーのはみ出しだけここでクリップ */
}
.p-home__fv-slider .swiper-wrapper,
.p-home__fv-slider .swiper-slide { height: 100%; }
.p-home__fv-slide {
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
}
/* FVスライド動き：全スライドに同一の無限リニアパンを常時適用（アクティブ判定に依存しない）。
   ・全スライドが同位相・同速度で動くため、クロスフェード中も2枚の位置が完全一致＝継ぎ目なし。
   ・linear で速度を完全一定に保ち、切替直前でも減速・停止しない。
   ・alternate で端での折り返しも速度一定のまま（リセットによるカクつきが出ない）。
   ・scale を少し大きめにして translateX のはみ出し（見切れ）を隠す。
   （SP は scale/translateX を拡大して見切れを防止） */
.p-home__fv-slider .swiper-slide .p-home__fv-slide {
  transform: scale(1.06) translateX(2%);
  transform-origin: center;
  animation: kvPan 18s linear infinite alternate;
  will-change: transform;
}
@keyframes kvPan {
  from { transform: scale(1.06) translateX(2%); }    /* 右寄りから */
  to   { transform: scale(1.06) translateX(-2%); }   /* 左へゆっくり一定速で */
}
@media (max-width: 560px) {
  .p-home__fv-slider .swiper-slide .p-home__fv-slide {
    transform: scale(1.08) translateX(3%);
  }
  @keyframes kvPan {
    from { transform: scale(1.08) translateX(3%); }
    to   { transform: scale(1.08) translateX(-3%); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-home__fv-slider .swiper-slide .p-home__fv-slide { animation: none; }
}
.p-home__fv-copy {
  position: absolute;
  left: 8vw;
  bottom: 10vh;
  z-index: 3;
  color: var(--c-white);
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  padding: 28px 44px 32px 0;
}
.p-home__fv-tagline {
  font-family: var(--f-gothic);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}
.p-home__fv-title {
  font-family: var(--f-mincho);
  font-size: 75px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.1;
}
/* スライド枚数表示（右上） */
.p-home__fv-count {
  position: absolute;
  top: 104px; right: 60px;
  z-index: 4;
  color: var(--c-white);
  font-size: 16px;
  letter-spacing: var(--ls-text);
}
/* 右側サムネイル列 */
.p-home__fv-thumbs {
  position: absolute;
  top: 140px; right: 34px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 17px;
  width: 186px;
}
.p-home__fv-thumb {
  width: 100%;
  aspect-ratio: 186 / 116;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.6);
  cursor: pointer;
}
.p-home__fv-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* =========================================================================
   お知らせバー  ―  Figma 288:1062（FV下部に重ねる）
   ========================================================================= */
.p-home__fv-newswrap {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  z-index: 6;
  transform: translateY(50%);   /* FV下端に半分かぶせる（半分はコンセプト側へ） */
}
.p-home__news-inner {
  background: var(--c-white);
  padding: 24px 40px;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
}

/* =========================================================================
   コンセプト（引用文）  ―  Figma 299:1285
   横並び：本文（左）/ 縦組みコピー（右）
   ========================================================================= */
.p-home__concept {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9vw;
  padding-block: 16vw; /* 上を詰めてお知らせバーとの白い余白を解消 */
}
.p-home__concept-body p {
  font-family: var(--f-mincho);
  font-size: var(--fs-text);
  font-weight: 400;
  line-height: var(--lh-quote);
  letter-spacing: var(--ls-text);
  color: var(--c-black);
  margin-bottom: 0;
}
/* 背景動画セクション */
.p-home__concept-sec {
  position: relative;
  overflow: hidden;
}
.p-home__concept-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
  display: block;
}
/* 黒文字を読みやすくする薄い白幕（不要なら opacity を下げる/削除） */
.p-home__concept-sec::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.5);
  z-index: 1;
}
/* 低電力モード（動画→webp画像フォールバック）時は白幕をなくし、webp本来の見え方にする */
.p-home__concept-sec.is-video-fallback::before {
  display: none;
}
.p-home__concept-sec .p-home__concept {
  position: relative;
  z-index: 2;
}
/* 縦組みコピー「間 を大切にした家づくり」 */
.p-home__concept-vertical {
  writing-mode: vertical-rl;
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 23px;
  letter-spacing: 0.3em;
  line-height: 1.8;
  white-space: nowrap;
}
.p-home__concept-vertical .is-accent {
  font-size: 54px;
  color: var(--c-brown);
  margin-top: 4vw;
}

/* =========================================================================
   こだわり（テクスチャ背景 + 左右交互の画像/テキスト）
   ―  Figma 288:1084 Sidebar Section
   ========================================================================= */
.p-home__feature {
  position: relative;
  background: var(--c-white);     /* 背景：白 */
  color: var(--c-black);          /* 文字：黒(#121212) */
  padding-block: var(--space-10);
}
.p-home__feature { --edge-pad: max(var(--container-pad), calc((100vw - var(--container)) / 2)); }

.p-home__feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;       /* 高さが違ってもテキストは縦中央 */
  margin-bottom: 11vw;
}
.p-home__feature-row:first-child{
  margin-top: 6vw;
}

.p-home__feature-row--imgR { grid-template-columns: 0.9fr 1.15fr; }
.p-home__feature-row--imgL { grid-template-columns: 1.15fr 0.9fr; }


/* .p-home__feature-row--imgR .p-home__feature-text  { padding-left: var(--edge-pad); padding-right: 6vw; } */
.p-home__feature-row--imgR .p-home__feature-text  { padding: 8vw;} 
.p-home__feature-row--imgR .p-home__feature-media { order: 2; }

/* .p-home__feature-row--imgL .p-home__feature-text  { padding-right: var(--edge-pad); padding-left: 6vw; order: 2; } */
.p-home__feature-row--imgL .p-home__feature-text  { padding: 8vw; order: 2; }
.p-home__feature-row--imgL .p-home__feature-media { order: 1; }

.p-home__feature-text { color: var(--c-black); }
.p-home__feature-ttl {
  font-family: var(--f-mincho);
  font-size: var(--fs-subtitle);
  font-weight: 600;
  letter-spacing: var(--ls-title);
  margin-bottom: var(--space-6);
  color: var(--c-dark-black);
}
.p-home__feature-desc {
  font-size: var(--fs-text);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-text);
  margin-bottom: var(--space-6);
}
/* 詳しくはこちら：右揃え。ラベルは右端・下線は左へはみ出す */
.p-home__feature-text .c-btn-line {
  display: flex;
}

/* メディア：同じ位置で画像だけ切り替える */
.p-home__feature-media {
  position: relative;
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
.p-home__feature-slider {
  position: relative;
  width: 100%;
  aspect-ratio: 720 / 480;
  overflow: hidden;
}
.p-home__feature-slider .swiper-wrapper,
.p-home__feature-slider .swiper-slide {
  height: 100%;
}
.p-home__feature-slider .swiper-slide {
  overflow: hidden;
}
.p-home__feature-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-home__feature-slider .p-home__feature-bars {
  position: absolute;
  right: 0;
  bottom: 24px;
  left: 0;
  z-index: 5;
  display: flex;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 2px;
}
.p-home__feature-slider .p-home__feature-bars:empty { display: none; }
.p-home__feature-slider .p-home__feature-bars .swiper-pagination-bullet {
  display: block;
  width: 48px !important;
  height: 2px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: rgba(255, 255, 255, 0.5);
  opacity: 1;
  transition: background-color 0.3s;
}
.p-home__feature-slider .p-home__feature-bars .swiper-pagination-bullet-active {
  background: #fff;
}

/* 3つのリンクバナー（暮らしの工夫／代表の想い／暮らしの性能） */
.p-home__feature-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  margin-top: var(--space-9);
}
.c-linkcard {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 390 / 300;   /* 大きめ（添付準拠） */
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.c-linkcard::before {
  content: "";
  position: absolute; inset: 0;
  /* background: rgba(46, 26, 9, 0.35); */
  transition: background 0.3s;
}
.c-linkcard:hover { opacity: 1; }
.c-linkcard:hover::before { background: rgba(46, 26, 9, 0.2); }
.c-linkcard__label {
  position: relative; z-index: 1;
  writing-mode: vertical-rl;          /* 縦書き */
  color: var(--c-white);
  font-family: var(--f-mincho);
  font-size: 22px;
  letter-spacing: 0.2em;
  line-height: 1.4;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}
/* 背景画像（CSS管理） */
.c-linkcard--idea        { background-image: url("../img/top/top-link-btn01.webp"); }
.c-linkcard--message     { background-image: url("../img/top/top-link-btn02.webp"); }
.c-linkcard--performance { background-image: url("../img/top/top-link-btn03.webp"); }

/* =========================================================================
   施工事例 / ギャラリー  ―  Figma 288:1090 Featured Container
   ========================================================================= */
.p-home__case-section{

}
/* 施工事例セクションのテクスチャ全幅背景は .u-bg-texcha（base.css）に集約。
   マークアップ側で #case に u-bg-texcha を付与して使用。 */
.p-home__works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8) var(--space-5);
  margin-top: var(--space-9);
}
.p-home__btn-center {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin-top: var(--space-9);
}

/* 現在進行中の家 */
.p-home__progress { margin-top: var(--space-10); }
.p-home__progress-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  margin-top: var(--space-7);
}
.p-home__progress-meta {
  display: flex;
  gap: var(--space-4);
  margin-top: var(--space-3);
  font-size: var(--fs-sm);
  letter-spacing: var(--ls-text);
}
.p-home__progress-meta .date { color: var(--c-gray-line); }
.p-home__progress-meta .cat  { color: var(--c-brown); }
.p-home__progress .c-card__title { margin-top: 4px; }

/* PC（768px以上）：現在進行中の家はスライドさせず 3枚を中央寄せ
   （SPは footer.php で Swiper を有効化し、里やま日記と同じスライド動作にする） */
@media screen and (min-width: 768px) {
  .swiper-container-progress .swiper-wrapper {
    justify-content: center;
    gap: 48px;
  }
  .swiper-container-progress .swiper-slide { margin-right: 0 !important; }
}

/* 3つのカードを包むコンテナ */
.p-home__progress-list {
  display: flex;
  justify-content: center; /* これで中央に揃います */
  flex-wrap: wrap;         /* スマホなどで画面が狭いときは折り返す */
  gap: 20px;               /* カードとカードの間の隙間（お好みで調整） */
  max-width: 1200px;       /* 全体の最大幅（サイトのデザインに合わせて調整） */
  margin: var(--space-7) auto ;     /* 中央配置 ＆ 下に余白 */
  padding: 0 20px;         /* スマホ時の左右の余白 */
}

/* カード1つあたりの設定 */
.p-home__progress-item {
  width: calc((100% - 40px) / 3); /* 3段組みの計算（隙間20px×2分を引いて3等分） */
  max-width: 360px;               /* カードが広がりすぎないように制限 */
}

/* =========================================================================
   里やま日記 ＋ 里やま新聞  ―  Figma 288:1108（砂テクスチャ背景）
   ========================================================================= */
.p-home__diary {
  position: relative;
  z-index: 0;
  padding: var(--space-10) 0 0;
}
.p-home__diary::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  z-index: -1;
  background: url("../img/top/bg-suna.webp") repeat;
}
/* ブログスライダー：左はコンテナ基準、右は画面外へ流して“ちょうど切れる” */
.p-home__diary-slider {
  margin-top: var(--space-8);
  overflow: hidden;
}
.p-home__diary-slider .swiper-slide { width: 300px; }
.p-home__diary-slider .c-card__img { aspect-ratio: 300 / 220; }
.p-home__diary-date {
  margin-top: var(--space-3);
  font-size: var(--fs-sm);
  color: var(--c-gray-line);
  letter-spacing: var(--ls-text);
}
/* 里やま新聞（白カード） */
.p-home__newspaper--card {
  background: rgba(255, 255, 255, 0.70);
  padding: var(--space-6) var(--space-8);
  margin: 9vw;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05);
}

/* =========================================================================
   モデルハウス  ―  Figma 291:1999（背景画像＋情報表・白文字）
   ========================================================================= */
.p-home__model {
  position: relative;
  background: url("../img/top/modelhouse-back.webp") top center / cover no-repeat;
  color: var(--c-white);
  padding: 72vh 0 var(--space-10);
}
.p-home__model::before {
  content: "";
  position: absolute; inset: 0;
  /* background: rgba(0, 0, 0, 0.45); */
}
.p-home__model-inner {
  position: relative;
  z-index: 1;
  display: grid;
  justify-content: center;
  grid-template-columns: 0.35fr 0.45fr;
  gap: var(--space-8);
  align-items: start;
}
.p-home__model-ttl {
  font-family: var(--f-mincho);
  font-size: var(--fs-title);
  font-weight: 600;
  letter-spacing: var(--ls-title);
  margin-bottom: var(--space-5);
}
.p-home__model-desc {
  font-size: var(--fs-text);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-text);
}
.p-home__model-info {
  border-left: 1px solid rgba(255, 255, 255, 0.4);
  padding-left: var(--space-7);
}
.p-home__model-info > div {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: var(--space-4);
  font-size: var(--fs-text);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-text);
}
.p-home__model-info dt { font-weight: 500; }
.p-home__model-btnwrap {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  margin-top: var(--space-7);
}

/* =========================================================================
   里やま新聞  ―  Figma 288:1117 Newspaper Section
   ========================================================================= */
.p-home__newspaper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-8);
  align-items: center;
  margin-inline: auto;
}
.p-home__newspaper-img { width: 55%; margin: 0 auto; }
.p-home__newspaper-img img { width: 100%; }

.p-home__newspaper-desc {
  font-size: var(--fs-text);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-text);
  margin-block: var(--space-3) var(--space-5);
}

.p-home__newspaper .c-btn--light,.p-model__btnwrap .c-btn--light {
  border-color: var(--c-black);
  color: var(--c-black);
}
/* =========================================================================
   スライドショー（連続横流し）  ―  Figma 288:1188
   ========================================================================= */
.p-home__slideshow { width: 100%; overflow: hidden; }
.p-home__slideshow-track {
  display: flex;
  align-items: flex-end;       /* 高さがバラバラ＝下揃えでガタガタの上辺に */
  width: max-content;
  animation: p-home-slideshow 50s linear infinite;
}
.p-home__slideshow-track img {
  /* 幅を統一し、高さは画像のアスペクト比なり＝あえて不揃い（下揃えでガタガタの上辺） */
  width: 280px;
  height: auto;
  display: block;
  flex-shrink: 0;
}
.p-home__slideshow-track img.is-land { width: 420px; }   /* 横向きは大きく */
.p-home__slideshow:hover .p-home__slideshow-track { animation-play-state: paused; }
@keyframes p-home-slideshow {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }   /* 2セットの半分＝1セット分でループ */
}

/* =========================================================================
   イベント・お知らせ（統合リスト・日付降順）
   ========================================================================= */
.p-home__list {
  max-width: 760px;
  margin: var(--space-7) auto var(--space-6);
}
.p-home__list li.is-empty {
  padding: var(--space-6) 0;
  text-align: center;
  color: var(--c-gray-line);
}
.p-home__list a {
  display: flex;
  gap: var(--space-5);
  align-items: baseline;
  padding: 14px 4px;
  font-size: var(--fs-text);
  letter-spacing: var(--ls-text);
}
.p-home__list a .date { flex-shrink: 0; color: var(--c-gray-line); }
.p-home__list a .cat  { flex-shrink: 0; min-width: 5em; color: var(--c-brown);}
.p-home__list a .ttl  { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* -------------------------------------------------------------------------
   YouTube
   ------------------------------------------------------------------------- */
.youtube-block .inner{
	max-width:600px;
	margin:0 auto;
}
.youtube-block .inner .movie {
	border-radius: 0px;
}

/* =========================================================================
   お客様の声  ―  Figma 288:1143 Client Showcase
   ========================================================================= */
.p-home__voice-lead {
  text-align: center;
  font-size: var(--fs-text);
  line-height: var(--lh-base);
  letter-spacing: var(--ls-text);
  margin: var(--space-6) auto var(--space-9);
}
.p-home__voice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
}

/* =========================================================================
   ブログ  ―  Figma 288:1126 Blog Section
   ========================================================================= */
.p-home__blog { text-align: center; }
.p-home__blog-list {
  max-width: 694px;
  margin: var(--space-6) auto 0;
  text-align: left;
}
.p-home__blog-item {
  display: grid;
  grid-template-columns: 92px 80px 1fr;
  gap: var(--space-4);
  align-items: baseline;
  padding-block: 6px;
  font-size: var(--fs-text);
  letter-spacing: var(--ls-text);
}
.p-home__blog-item .date  { color: var(--c-gray-line); }
.p-home__blog-item .cat   { color: var(--c-brown); }
.p-home__blog-item .title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* =========================================================================
   CTA（お問い合わせ誘導）  ―  Figma 291:2013
   ========================================================================= */
.p-home__cta { text-align: center; padding-block: var(--space-10); }
.p-home__cta-text {
  font-weight: 600;
  letter-spacing: var(--ls-title);
  margin-bottom: var(--space-5);
}
.p-home__cta .c-btn--light{
  border-color: var(--c-black);
  color: var(--c-black);
}
/* =========================================================================
   バナー群  ―  Figma 293:2214 Content Section
   ========================================================================= */
.p-home__banners {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4);
  max-width: 840px;
  margin-inline: auto;
  padding-top: 2vw;
}
/* バナー（背景画像＋ラベル） */
.c-bnr {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  aspect-ratio: 400 / 115;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  color: var(--c-white);
  text-align: center;
}
.c-bnr::before {
  content: "";
  position: absolute; inset: 0;
  background: rgba(0, 0, 0, 0.35);
  transition: background 0.3s;
}
.c-bnr:hover { opacity: 1; }
.c-bnr:hover::before { background: rgba(0, 0, 0, 0.2); }
.c-bnr__label {
  position: relative; z-index: 1;
  font-family: var(--f-mincho);
  font-size: 20px;
  letter-spacing: var(--ls-title);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.c-bnr__sub {
  position: relative; z-index: 1;
  font-family: var(--f-mincho);
  font-size: 14px;
  letter-spacing: var(--ls-text);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.c-bnr__sub:first-child{
  border: 1px solid rgba(255, 255, 255, 0.6);
  padding: 2px 6px;
}
/* バナー背景画像（CSS管理） */
.c-bnr--rental { background-image: url("../img/top/footer-link04.webp"); }
.c-bnr--jutaku { background-image: url("../img/top/footer-link03.webp"); }
.c-bnr--owners { background-image: url("../img/top/footer-link02.webp"); }
.c-bnr--chikyu { background-image: url("../img/top/footer-link01.webp"); }
/* 横長：グループ会社バナー */
.c-bnr--wide {
  aspect-ratio: 840 / 174;
  max-width: 840px;
  margin: var(--space-4) auto 0;
  background-image: url("../img/top/svillage_back.webp");
}
/* 横長は白幕を薄めに（ロゴが見えるよう） */
.c-bnr--wide::before { background: rgba(255, 255, 255, 0.25); }
.c-bnr--wide:hover::before { background: rgba(255, 255, 255, 0.25); }
.c-bnr__group { display: none; }   /* PCは非表示（SPのみ表示） */
.c-bnr__logo {
  position: relative; z-index: 1;
  width: 240px; max-width: 60%;
  transition: opacity 0.3s;
}
/* ホバー時：白ぼかし＋説明文 */
.c-bnr__hover {
  position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  text-align: center;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.35s ease;
}
.c-bnr__hover p {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.c-bnr--wide:hover .c-bnr__hover { opacity: 1; }
.c-bnr--wide:hover .c-bnr__logo { opacity: 0; }
/* 外部リンク：上向き矢印 */
.c-bnr__ext {
  position: absolute;
  right: 24px; bottom: 24px;
  z-index: 3;
  width: 22px; height: 22px;
  color: var(--c-black);
}
.c-bnr__ext svg { width: 100%; height: 100%; display: block; }

/* =========================================================================
   レスポンシブ（SP）  ―  Figma 458:4174 (390幅)
   ========================================================================= */
@media screen and (max-width: 767px) {
  /* ===== FV ===== */
  .p-home__fv { height: 100svh; }
  .p-home__fv-copy { left: 8vw; bottom: 20vw; padding: 20px 28px 24px 0; }
  .p-home__fv-copy::before { inset: -16px -34px -18px -36px; }
  .p-home__fv-title { font-size: 48px; }
  .p-home__feature-ttl { font-size: var(--fs-lg);margin-bottom: var(--space-4);}
  .p-home__fv-tagline { font-size: 18px; }
  .p-home__fv-thumbs,
  .p-home__fv-count { display: none; } /* SPはサムネ列なし */

  /* ===== お知らせバー：1段目=日付＋NEW、2段目=本文1行（省略）＋右に矢印 ===== */
  .p-home__news-inner { position: relative; padding: 18px 46px 18px 22px; }
  .c-news { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
  .c-news__text { flex-basis: 100%; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .c-news__arrow { display: block; position: absolute; right: 16px; bottom: 22px; width: 30px; }

  /* ===== コンセプト：縦コピー（人間〜）を先頭に、本文を後に ===== */
  .p-home__concept { flex-direction: column; gap: var(--space-5); align-items: flex-start; text-align: left;padding-block: 40vw; }
  .p-home__concept-vertical { order: -1; writing-mode: horizontal-tb; font-size: 20px; letter-spacing: 0.175em;}
  .p-home__concept-vertical .is-accent { font-size: 2.3em; margin-top: 0; }
  .p-home__concept-body p { font-size: var(--fs-sm); }
  .p-home__feature-text .c-btn-line {margin-left: auto; }
  /* 背景動画セクション
     SPでも動画再生を試みる。webp は base 背景として常に敷いておき、
     ・動画が再生できれば動画が前面を覆う
     ・省電力モード等で再生不可なら JS が .is-video-fallback を付与し、動画を隠して webp を見せる */
  .p-home__concept-sec {
    position: relative;
    overflow: hidden;
    background: url("../img/top/concept-bg-sp.webp") top / cover no-repeat;
  }
  .p-home__concept-video {
    display: block;
    /* poster画像・動画とも背景webp（top / cover）と同じ位置・倍率で見えるように揃える */
    object-fit: cover;
    object-position: center top;
  }
  .p-home__concept-sec.is-video-fallback .p-home__concept-video {
    display: none;
  }

  /* ===== こだわり：写真は画面いっぱいにせずコンテナ内に ===== */
  .p-home__feature-row,
  .p-home__feature-row--imgR,
  .p-home__feature-row--imgL {
    grid-template-columns: 1fr;
    padding-inline: var(--container-pad);
    margin-bottom: 48px;
  }
  .p-home__feature-row--imgR .p-home__feature-text,
  .p-home__feature-row--imgL .p-home__feature-text { order: 2; padding: 20px 0 0; }
  .p-home__feature-row--imgR .p-home__feature-media,
  .p-home__feature-row--imgL .p-home__feature-media { order: 0; height: auto; }

  /* 3リンク：縦並び */
  .p-home__feature-links { grid-template-columns: 1fr; }
  /* .c-linkcard { aspect-ratio: 16 / 9; } */
  .c-linkcard__label {
  font-size: 20px;
}

  /* グリッド類は1列 */
  .p-home__works-grid,
  .p-home__gallery,
  .p-home__showcase-grid,
  .p-home__newsevent,
  .p-home__voice-grid { grid-template-columns: 1fr; }

  .p-home__works-grid{margin-top: var(--space-6);}
  /* 施工事例：PCは6件、SPは3件のみ表示（4件目以降を非表示） */
  .p-home__works-grid > .c-card:nth-child(n + 4) { display: none; }
  .p-home__btn-center{margin-top: var(--space-6);}

  /* ===== 現在進行中：横スライド（縦に積まない） ===== */
    .p-home__progress-item {
    width: 100%;
    max-width: 100%;
  }
  .p-home__progress-grid > .c-card { flex: 0 0 78%; scroll-snap-align: start; }
  .p-home__progress-meta .cat{font-size: 13.5px;}
  /* ===== お客様の声 ===== */
  .p-home__voice-lead {
  text-align: left;
      margin: var(--space-6) auto ;
  }
  

  /* ===== モデルハウス：写真を上に、テキスト背景は茶色グラデーション ===== */
  .p-home__model { 
    background-size: 115% auto;
    background-position: top center;
    background-repeat: no-repeat;
    padding: 280px 0 var(--space-8);
  }
  .p-home__model::before {
    background: linear-gradient(180deg, rgba(51, 25, 9, 0) 0%, rgba(51, 25, 9, 0.5) 25%, #331909 33%);
  }
  .p-home__model-inner { grid-template-columns: 1fr; gap: var(--space-5); }
  .p-home__model-info { border-left: none; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.4); padding-top: var(--space-5); }
  .p-home__model-info > div {
  gap: 0;
}

  /* ===== スライドショー ===== */
    .p-home__slideshow-track img.is-land { 
      width: 240px; 
    }   /* 横向きは大きく */
    .p-home__slideshow-track img {
        width: 180px;
    }
  /* ===== 里やま新聞 ===== */
  .p-home__newspaper { grid-template-columns: 1fr; text-align: center; gap: var(--space-5);}
  .p-home__newspaper-img { width: 100%;max-width: 300px; margin-inline: auto; }
  .p-home__newspaper .c-btn { width: 100%; max-width: 286px; }
  .p-home__newspaper-desc{ text-align: left; }
  .p-home__newspaper--card{
    margin: 12vw 0 20vw;
    padding: var(--space-6);}

  /* ===== イベント・お知らせ：日付＋タグ横並び、本文は下 ===== */
  .p-home__list{margin: var(--space-6) auto;}
  .p-home__list a { flex-wrap: wrap; gap: 4px 12px; }
  .p-home__list a .ttl { flex-basis: 100%; white-space: normal; }

  /* ブログ */
  .p-home__blog-item { grid-template-columns: 1fr; gap: 2px; }
  .p-home__blog-item .title { white-space: normal; }

  /* バナー2列 */
  .p-home__banners { grid-template-columns: 1fr; gap: var(--space-5); }
  
  .c-bnr{ aspect-ratio: 340 / 115;}
  /* ===== svillage：ホバー不可のため常時 ロゴ＋説明を縦表示 ===== */
  /* SVillange：写真＋グループ会社＋ロゴ（上）／説明は白ボックス（下）。添付準拠 */
  .c-bnr--wide { aspect-ratio: auto; display: block; background-size: 200%; background-position:top center; background-repeat: no-repeat; }
  .c-bnr__group { display: block; position: relative; z-index: 1; margin-top: 40px; color: var(--c-white); text-align: center; font-family: var(--f-mincho); font-size: 14px; letter-spacing: var(--ls-text); text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); }
  .c-bnr--wide .c-bnr__logo { position: relative; z-index: 1; display: block; width: 200px; max-width: 70%; margin: 6.8vw auto; opacity: 1; }
  .c-bnr--wide .c-bnr__hover { 
    position: static; 
    opacity: 1; 
    display: block; background: #fff; backdrop-filter: none; padding: 26px 22px 42px; text-align: left;border-right: 1px solid #E1E1E1;
border-bottom: 1px solid #E1E1E1;
border-left: 1px solid #E1E1E1; }
  .c-bnr--wide .c-bnr__hover p { color: var(--c-black); font-size: 13px; line-height: 1.9; }
  .c-bnr--wide .c-bnr__ext { right: 20px; bottom: 18px; }

  /* 里やま日記スライダー */
  .p-home__diary-slider .swiper-slide { width: 240px; }
  .p-home__diary-slider{ margin-top: var(--space-6); }

  /* ===== ボタン：幅をそろえる ===== */
  .c-btn-line { width: 200px; }
  .c-fcta__btns .c-btn--light { width: 100%; max-width: 320px; }

  .youtube-block .inner{
    padding:0px 6% 20px;
  }
}

/* =========================================================================
   施工事例 一覧ページ（archive.php）  ―  Figma 403:2946
   ========================================================================= */
.p-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 30px;
  row-gap: 60px;
}
@media screen and (max-width: 767px) {
  .p-works__grid { grid-template-columns: 1fr; row-gap: 40px;}
}

/* =========================================================================
   コンセプト（concept.php）  p-concept  ―  Figma PC 199:3307 / SP 493:6169
   ========================================================================= */
/* .p-concept { background: #f5f3ee; } */

/* セクション共通アンカー位置（固定ヘッダー分） */
.p-concept__anchor { scroll-margin-top: var(--header-h); }

/* --- 導入（リード） --- */
.p-concept__intro { padding-top: var(--space-10); }
/* セクションが連続するとき、前セクション(.p-concept__rows)の padding-bottom と
   次セクションの padding-top が重なって余白が2倍になるのを防ぐ（先頭の上余白は残す） */
.p-concept__intro + .p-concept__intro { padding-top: 0; }
.p-concept__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 34px;
  padding-bottom: 120px;
  text-align: center;
}
.p-concept__lead-line { width: 1px; height: 64px; background: var(--c-black); }
.p-concept__lead-ttl {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 28px;
  line-height: 2.07;
  letter-spacing: var(--ls-title);
  color: var(--c-brown);
}
.p-concept__lead-text {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2.3;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}

/* --- 画像＋テキスト行（導入3行 / その他の快適性2行で共用） --- */
.p-concept__rows {
  display: flex;
  flex-direction: column;
  gap: 64px;
  padding-bottom: var(--space-10);
}
.p-concept__row {
  display: flex;
  gap: 45px;
  align-items: center;
}
.p-concept__row--rev {
  display: flex;
  gap: 45px;
  align-items: center;
}
.p-concept__row--rev {
  flex-direction: row-reverse;
}
/* .p-concept__row--rev {
  direction: rtl;
}
.p-concept__row--rev > * {
  direction: ltr;
} */
.p-concept__row-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding-block: 32px;
}
.p-concept__row-img {
  flex: 1;
  aspect-ratio: 555 / 395;
  overflow: hidden;
}
.p-concept__row-img img { width: 100%; height: 100%; object-fit: cover; }
.p-concept__row-num {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.05em;
  color: var(--c-brown);
}
.p-concept__row-ttl {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 28px;
  line-height: 1.4;
  letter-spacing: var(--ls-title);
  color: var(--c-black);
}
.p-concept__row-text {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-concept__row-text p + p { margin-top: 1em; }

/* --- パッシブデザイン --- */
.p-concept__passive { 
  padding-block: var(--space-10); 
  backgroundi;
}
.p-concept__passive-intro { margin: var(--space-7) 0 var(--space-8); }
.p-concept__passive-sub {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 24px;
  letter-spacing: var(--ls-title);
  color: var(--c-brown);
  margin-bottom: 16px;
}
.p-concept__passive-lead {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-dark-black);
}
.p-concept__passive-lead strong {
  font-weight: 600;
  font-size: 19px;
  letter-spacing: 0.08em;
  color: var(--c-black);
}

/* タブ（夏／冬） */
.p-concept__tabs { display: flex; }
.p-concept__tab {
  flex: 1;
  padding: 10px;
  text-align: center;
  font-family: var(--f-mincho);
  font-weight: 500;
  font-size: 24px;
  letter-spacing: 0.05em;
  background: #f0f0f0;
  color: #888;
  border-top: 3px solid transparent;
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
}
.p-concept__tab--summer.is-active {
  background: rgba(183, 1, 0, 0.1);
  border-top-color: #b70100;
  color: #b70100;
}
.p-concept__tab--winter.is-active {
  background: rgba(87, 185, 225, 0.2);
  border-top-color: #57b9e1;
  color: #57b9e1;
}

/* パネル */
.p-concept__panel { display: none; background: #fff; padding: 60px 0 80px; }
.p-concept__panel.is-active { display: block; }
.p-concept__panel-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}
.p-concept__diagram { position: relative; width: 750px; max-width: 100%; }
.p-concept__diagram img { display: block; width: 100%; }
.p-concept__panel--summer .p-concept__badge { color: #b70100; }
.p-concept__panel--winter .p-concept__badge { color: #57b9e1; }

/* 3カラム（敷地 / 太陽 / 風） */
.p-concept__cols {
  display: flex;
  justify-content: center;
  gap: 43px;
  width: 100%;
  max-width: 1001px;
  margin-inline: auto;
}
.p-concept__col { width: 246px; flex-shrink: 0; }
.p-concept__col-head {
  font-family: var(--f-mincho);
  font-weight: 500;
  font-size: 24px;
  letter-spacing: 0.05em;
  margin-bottom: 16px;
}
.p-concept__panel--summer .p-concept__col-head { color: #b70100; }
.p-concept__panel--winter .p-concept__col-head { color: #57b9e1; }
.p-concept__col-sub {
  font-family: var(--f-mincho);
  font-weight: 500;
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
  padding-bottom: 11px;
  margin-bottom: 11px;
  border-bottom: 2px solid #d9d9d9;
}
.p-concept__col-text {
  font-family: var(--f-mincho);
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: var(--c-black);
}

/* --- その他の快適性のコツ --- */
.p-concept__comfort { padding-block: var(--space-10); }
.p-concept__comfort-rows { margin-top: var(--space-9); }
.p-concept__other-label {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.05em;
  color: var(--c-brown);
  margin-bottom: var(--space-5);
}
.p-concept__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 43px;
}
.p-concept__card-img { aspect-ratio: 336 / 242; overflow: hidden; }
.p-concept__card-img img { width: 100%; height: 100%; object-fit: cover; }
.p-concept__card-ttl {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0.05em;
  margin: 16px 0 8px;
  color: var(--c-black);
}
.p-concept__card-text {
  font-family: var(--f-mincho);
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.05em;
  color: var(--c-black);
}

@media screen and (max-width: 767px) {
  .p-concept__lead { gap: 24px; padding-bottom: 64px; }
  .p-concept__lead-ttl { font-size: 22px; }
  .p-concept__rows { gap: 48px; margin-top: var(--space-7); }
  .p-concept__row,
  .p-concept__row--rev { display: flex; flex-direction: column; gap: 16px; }
  .p-concept__row-body { padding-block: 0; gap: 16px; }
  .p-concept__row-img { order: -1; aspect-ratio: 340 / 227; }
  .p-concept__row-ttl { font-size: 22px; }
  .p-concept__col-head { font-size: 20px; margin-bottom: 8px; }
  .p-concept__passive-sub { font-size: 22px; }
  .p-concept__tab { font-size: 20px; }
  .p-concept__panel { padding: 32px 0 40px; }
  .p-concept__panel-inner { gap: 32px; }
  .p-concept__diagram { width: 90%; }
  .p-concept__cols { flex-direction: column; align-items: stretch; gap: 32px; padding:0 24px; }
  .p-concept__col { width: 100%; }

  .p-concept__cards { grid-template-columns: 1fr; gap: 32px; }
}

/* =========================================================================
   家づくりの流れ（flow.php）  p-flow  ―  Figma PC 353:3090 / SP 498:7407
   タイトル/見出しは共通パーツ（c-pagehead / c-section-title / c-anchnav / c-linetitle / c-btn-line）
   ========================================================================= */
.p-flow__sec {
  padding-block: var(--space-10);
  scroll-margin-top: var(--header-h);   /* 固定ヘッダー分のアンカー位置調整 */
}
/* セクションが連続するとき、上下 padding が重なって余白が2倍になるのを防ぐ（先頭の上余白は残す） */
.p-flow__sec + .p-flow__sec { padding-top: 0; }

/* --- 10ステップ --- */
.p-flow__steps { max-width: 1100px; margin: var(--space-9) auto 0; }
.p-flow__note {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
  margin-bottom: var(--space-6);
}
.p-flow__list { display: flex; flex-direction: column; gap: 36px; }
.p-flow__step { display: flex; gap: 20px; align-items: flex-start; }
.p-flow__num {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--c-brown);
  color: var(--c-white);
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 22px;
  letter-spacing: 0.05em;
}
.p-flow__step-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: 2px;
}
.p-flow__step-ttl {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 24px;
  line-height: 1.4;
  letter-spacing: var(--ls-title);
  color: var(--c-brown);
}
.p-flow__step-desc {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}

/* --- 保証と保険（2カード／テクスチャ背景） --- */
.p-flow__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  max-width: 1100px;
  margin: var(--space-9) auto 0;
}
.p-flow__card {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 56px 40px 40px;
  background: url("../img/top/bg-texcha.webp") repeat;
}
.p-flow__card-ttl {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: var(--fs-lg);
  letter-spacing: var(--ls-title);
  color: var(--c-black);
  text-align: center;
  padding-bottom: 6px;
}
.p-flow__card-list {
  flex: 1; 
  list-style: disc;
  padding-left: 24px;
}
.p-flow__card-list li {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-flow__card-btn { align-self: flex-end; width: 198px; }

@media screen and (max-width: 767px) {
  .p-flow__steps { margin-top: var(--space-8); }
  .p-flow__list { gap: 28px; }
  .p-flow__step { gap: 14px; }
  .p-flow__num { width: 32px; height: 32px; font-size: 18px; }
  .p-flow__step-ttl { font-size: 20px; }

  .p-flow__cards { grid-template-columns: 1fr; gap: 24px; }
  .p-flow__card { padding: 40px 24px 32px; }
}

/* =========================================================================
   代表の想い（page-ceo-story.php）  p-ceo  ―  Figma PC 365:3786 / SP 498:7876
   本文は投稿エディタの .ceo_story 構造を流用し、デザインは新assets CSSで当てる。
   ※ 旧 style-custom.css の .ceo_* 装飾（丸背景カード / 円形画像 / 背景付きh3）は
     ここで打ち消し、Figma通りに統一する。
   タイトル/見出しは共通パーツ（c-pagehead / c-section-title / c-anchnav / c-linetitle）。
   ========================================================================= */
.p-ceo__body { padding-block: var(--space-10); }
.p-ceo .ceo_story { max-width: 1100px; margin-inline: auto; }
.p-ceo .ceo_story p {
  margin: 0;
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-ceo .ceo_story p + p { margin-top: 1.5em; }

/* アンカー位置（固定ヘッダー分） */
.p-ceo__anchor { scroll-margin-top: var(--header-h); }
/* ご挨拶見出し（JS挿入の c-linetitle）の余白 */
.p-ceo__greeting { margin-bottom: var(--space-8); }
/* アンカーナビ：8件のため横幅広め（2段で4列ずつ） */
.p-ceo .c-anchnav--ceo { max-width: 1100px; }

/* --- ご挨拶（写真左 + テキスト右 + 署名右） --- */
.p-ceo .ceo_message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 60px;
  margin-bottom: var(--space-10);
  padding: 0;                  /* 旧カードの padding を打ち消し */
  background: none;            /* 旧 bg_caicle.jpg を打ち消し */
  border-radius: 0;
}
.p-ceo .ceo_message .img { order: -1; flex-shrink: 0; width: 267px; }
.p-ceo .ceo_message .message_txt { flex: 1; min-width: 0; width: auto; }
.p-ceo .ceo_message .img img,
.p-ceo .ceo_message .ceo_img {
  width: 100%;
  height: auto;
  aspect-ratio: 267 / 377;
  object-fit: cover;
  border-radius: 0;            /* 円形→長方形ポートレートに */
}
.p-ceo .ceo_message .message_txt p { font-size: 16px; line-height: 2; }
.p-ceo .ceo_message .ceo_name {
  margin: var(--space-6) 0 0;
  text-align: right;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: var(--ls-title);
}

/* --- 各章 --- */
.p-ceo .ceo_story section {
  margin-top: 0;               /* 旧 margin-top:7em を打ち消し */
  padding-block: var(--space-9);
}
.p-ceo .ceo_story section h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin: 0 0 var(--space-7);
  padding: 0;                  /* 旧 padding を打ち消し */
  background: none;            /* 旧 bg_concept_title_1.jpg を打ち消し */
  border-radius: 0;
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 24px;
  letter-spacing: var(--ls-title);
  color: var(--c-black);       /* 旧 #BD8A64 を打ち消し */
  text-align: center;
}
.p-ceo .ceo_story section h3::before,
.p-ceo .ceo_story section h3::after {
  content: "";
  flex-shrink: 0;
  width: 48px;
  height: 1px;
  background: var(--c-brown);
}

/* 本文：テキスト左 + 画像右（.no_img は全幅） */
.p-ceo .story_txt { display: flex; gap: 64px; align-items: flex-start; justify-content: flex-start; }
.p-ceo .story_txt .txt { flex: 1 1 auto; min-width: 0; }
.p-ceo .story_txt .img { flex: 0 0 473px; max-width: 45%; }
.p-ceo .story_txt .img img { width: 100%; height: auto; object-fit: cover; }
.p-ceo section.no_img .story_txt { display: block; }

@media screen and (max-width: 767px) {
  .p-ceo .ceo_message { flex-direction: column; align-items: stretch; gap: 24px; }
  .p-ceo .ceo_message .img { width: 240px; margin-inline: auto; }
  .p-ceo .ceo_story section { padding-block: var(--space-8); }
  .p-ceo .ceo_story section h3 { font-size: 20px; gap: 16px; }
  .p-ceo .ceo_story section h3::before,
  .p-ceo .ceo_story section h3::after { width: 32px; }
  .p-ceo .story_txt { flex-direction: column; gap: 24px; }
  .p-ceo .story_txt .img { order: -1; flex-basis: auto; width: 100%; max-width: 100%; }
}

/* 各章の赤字サブ見出し（要約文）：投稿本文に <p class="lead"> もしくは <h4> で追記すると表示
   Figma: brown #77252b / 20px / 本文の20px上 */
.p-ceo .ceo_story .lead,
.p-ceo .ceo_story h4 {
  margin: 0 0 20px;
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: var(--ls-title);
  color: var(--c-brown);
}
@media screen and (max-width: 767px) {
  .p-ceo .ceo_story .lead,
  .p-ceo .ceo_story h4 { font-size: 18px; }
}

/* =========================================================================
   モデルハウス（page-model-house.php）  p-model  ―  Figma PC 365:4467 / SP 500:5412
   共通パーツ：c-pagehead / c-section-title / c-anchnav / c-linetitle / c-btn
   ========================================================================= */
.p-model__sec {
  padding-block: var(--space-10);
  scroll-margin-top: var(--header-h);
}
.p-model__sec > .l-container > .c-linetitle { margin-bottom: var(--space-8); }

/* アンカーナビ：3件 */
.p-model .c-anchnav--model { max-width: 820px; }

/* 共通：見出し・本文 */
.p-model__subttl {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: var(--fs-lg);
  letter-spacing: var(--ls-title);
  color: var(--c-black);
  margin-bottom: 16px;
}
.p-model p {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-model p + p { margin-top: 1em; }

/* --- 導入：テキスト左 + 写真右 --- */
.p-model__intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 45px;
}
.p-model__intro-text { flex: 1; min-width: 0; }
.p-model__intro-img { flex: 0 0 638px; max-width: 55%; aspect-ratio: 638 / 416; overflow: hidden; }
.p-model__intro-img img { width: 100%; height: 100%; object-fit: cover; }

/* --- ギャラリー（3列×2段） --- */
.p-model__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: var(--space-8);
}
.p-model__gallery-item { aspect-ratio: 353 / 235; overflow: hidden; }
.p-model__gallery-item img { width: 100%; height: 100%; object-fit: cover; }

/* --- 情報表（行：ラベル + 値、下線） --- */
.p-model__info {
  margin-top: var(--space-8);
  padding: 40px;
  background: url("../img/top/bg-texcha.webp") repeat;   /* texcha */
}
.p-model__info--white { background: #fff; }
/* モデルハウス：表 左 + MAP 右 */
.p-model #model .p-model__info { display: flex; gap: 40px; align-items: flex-start; justify-content: space-between; }
.p-model #model .p-model__rows { flex: 1; min-width: 0; }
.p-model__map {
  flex: 0 0 467px;
  height: 269px;
  background: #d9d9d9;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--f-serif-en);
  font-size: 36px;
  letter-spacing: 0.05em;
}
/* 2列グリッド版（レンタル / 講座） */
.p-model__info--grid2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 90px;
  row-gap: 8px;
}
.p-model__row {
  display: flex;
  gap: 20px;
  align-items: center;
  min-height: 40px;
  padding-block: 4px;
  border-bottom: 1px solid #ddd;
}
.p-model__k {
  flex-shrink: 0;
  width: 135px;
  padding-inline: 16px;
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-model__v {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-model__rental-line{
  display: block;
  padding: 2vw 0;
  width: 15%;
}
.p-model__rental .p-model__rental-text span{
  text-decoration: underline;
  padding-bottom: 1px;
}

/* --- ボタン（中央・幅広） --- */
.p-model__btnwrap { display: flex; justify-content: center; margin-top: var(--space-8); }
.p-model__btn { padding: 14px 40px; font-size: 16px; }

/* --- レンタル：テキスト左 + カテゴリ6枚 右 --- */
.p-model__rental {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;
}
.p-model__rental-text { flex: 0 0 417px; max-width: 45%; }
.p-model__cards {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 21px 22px;
}
.p-model__cat-img { aspect-ratio: 186 / 132; overflow: hidden; }
.p-model__cat-img img { width: 100%; height: 100%; object-fit: cover; }
.p-model__cat-label {
  margin-top: 8px;
  text-align: center;
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}

/* --- 住まいづくり講座 --- */
.p-model__seminar-img { aspect-ratio: 1100 / 404; overflow: hidden; }
.p-model__seminar-img img { width: 100%; height: 100%; object-fit: cover; }
.p-model__seminar-text { margin-top: var(--space-7); }
.p-model__notes { margin-top: var(--space-6); }
.p-model__notes li {
  font-family: var(--f-mincho);
  font-size: 14px;
  line-height: 2;
  color: var(--c-black);
}

@media screen and (max-width: 767px) {
  .p-model__intro { flex-direction: column; align-items: stretch; gap: 24px; }
  .p-model__intro-img { flex-basis: auto; max-width: 100%; }
  .p-model__gallery { gap: 8px; }

  .p-model #model .p-model__info { flex-direction: column; }
  .p-model__info { padding: 24px; }
  .p-model__map { flex-basis: auto; width: 100%; height: 220px; }
  .p-model__info--grid2 { grid-template-columns: 1fr; column-gap: 0; }

  .p-model__rental { flex-direction: column; align-items: stretch; gap: 24px; }
  .p-model__rental-text { flex-basis: auto; max-width: 100%; }
  .p-model__cards { gap: 12px; }

  .p-model__btn { width: 100%; }
  .p-model__row:last-child {border-bottom: none;}
}

/* MAP：iframe を枠いっぱいに */
.p-model__map { overflow: hidden; }
.p-model__map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* --- モデルハウス SP調整：導入画像を上 / ギャラリーをスライドショー / カード2列 --- */
/* ギャラリーのグリッドはトラック側に移動（PC：3列×2段） */
.p-model__gallery { display: block; }
.p-model__gallery-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.p-model__gallery-item.is-clone { display: none; }   /* PCでは複製を隠す */
/* 1セット分（6枚×235px + 6個×12px gap = 1482px）ぴったり動かして継ぎ目を無くす */
@keyframes p-model-gallery-flow { from { transform: translateX(0); } to { transform: translateX(-1482px); } }

@media screen and (max-width: 767px) {
  /* 導入：写真をテキストより上に */
  .p-model__intro-img { order: -1; }

  /* ギャラリー：自動で横に流れるスライドショー（1枚 235px） */
  .p-model__gallery { overflow: hidden; }
  .p-model__gallery-track {
    display: flex;
    grid-template-columns: none;
    flex-wrap: nowrap;
    gap: 12px;
    width: max-content;
    animation: p-model-gallery-flow 40s linear infinite;
  }
  .p-model__gallery-item { flex: 0 0 235px; }
  .p-model__gallery-item.is-clone { display: block; }

  /* レンタルのカテゴリ：2列（→3段） */
  .p-model__cards { grid-template-columns: repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .p-model__gallery-track { animation: none; }
}

/* スライダー（流れるタイプ）の向きを 右→左 から 左→右 へ反転 */
.p-home__slideshow-track,
.p-model__gallery-track { animation-direction: reverse; }

/* =========================================================================
   会社案内（page-company.php）  p-company  ―  Figma PC 403:3417 / SP 500:7700
   共通：c-pagehead / c-section-title / c-anchnav / c-linetitle。スタッフは ACF 流用。
   ========================================================================= */
.p-company__sec { padding-block: var(--space-10); scroll-margin-top: var(--header-h); }
.p-company__sec > .l-container > .c-linetitle { margin-bottom: var(--space-8); }

/* --- 会社情報 --- */
.p-company__main-img { aspect-ratio: 1105 / 681; overflow: hidden; }
.p-company__main-img img { width: 100%; height: 100%; object-fit: cover; }

.p-company__info { margin-top: var(--space-8); }
.p-company__logo { width: 229px; height: auto; margin-bottom: 24px; }
.p-company__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 55px;
  row-gap: 8px;
}
.p-company__row {
  display: flex;
  gap: 20px;
  align-items: center;
  min-height: 40px;
  padding-block: 4px;
  border-bottom: 1px solid #ddd;
}
.p-company__k {
  flex-shrink: 0;
  width: 132px;
  padding-inline: 16px;
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-company__v {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 1.6;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}

.p-company__map { margin-top: var(--space-8); height: 515px; overflow: hidden; }
.p-company__map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* --- スタッフ紹介（2列） --- */
.p-company__team {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 45px;
  row-gap: 64px;
}
.p-company__member { display: flex; gap: 24px; align-items: flex-start; }
.p-company__member-img { flex: 0 0 251px; aspect-ratio: 251 / 355; overflow: hidden; }
.p-company__member-img img { width: 100%; height: 100%; object-fit: cover; }
.p-company__member-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.p-company__role {
  width: auto;
  max-width: 100%;
  padding-bottom: 6px;
  border-bottom: 1px solid #888;
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-company__name-wrap { display: flex; flex-direction: column;}
.p-company__furi { font-family: var(--f-mincho); font-size: 14px; color: var(--c-black); }
.p-company__name {
  font-family: var(--f-mincho);
  font-weight: 600;
  font-size: 23px;
  letter-spacing: var(--ls-title);
  color: var(--c-black);
}
.p-company__bio {
  font-family: var(--f-mincho);
  font-size: 14px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}

@media screen and (max-width: 767px) {
  .p-company__grid { grid-template-columns: 1fr; column-gap: 0; }
  .p-company__member-body { align-items: center; }
  .p-company__name-wrap { align-items: center; }
  .p-company__map { height: 320px; }
  .p-company__team { grid-template-columns: 1fr; row-gap: 40px; }
  .p-company__member { flex-direction: column; gap: 16px; }
  .p-company__member-img { flex-basis: auto; width: 100%; max-width: 280px; margin:0 auto; }
}

/* =========================================================================
   里やま新聞（page-newspaper.php）  p-news  ―  Figma PC 500:9336 / SP 500:9923
   共通：c-pagehead / c-section-title / c-anchnav / c-linetitle / c-btn
   ========================================================================= */
.p-news__sec { padding-block: var(--space-10); scroll-margin-top: var(--header-h); }
.p-news__sec > .l-container > .c-linetitle { margin-bottom: var(--space-7); }
.p-news .c-anchnav--news { max-width: 900px; }

/* 導入文（中央） */
.p-news__lead {
  text-align: center;
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
  margin-bottom: var(--space-9);
}

/* --- 最新号プレビュー（テクスチャ背景） --- */
.p-news__latest {
  display: flex;
  gap: 80px;
  align-items: center;
  justify-content: center;
  padding: 40px;
  background: url("../img/top/bg-texcha.webp") repeat;
}
.p-news__latest-imgs { display: flex; gap: 14px; flex-shrink: 0; }
.p-news__latest-imgs img { width: 242px; height: 332px; object-fit: cover; display: block; }
.p-news__latest-text { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.p-news__latest-label { font-family: var(--f-mincho); font-size: 16px; letter-spacing: var(--ls-text); color: var(--c-black); }
.p-news__latest-issue { font-family: var(--f-mincho); font-weight: 600; font-size: 24px; letter-spacing: var(--ls-title); color: var(--c-black); }
.p-news__latest-desc {
  width: 417px;
  max-width: 100%;
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-news__latest-desc p + p { margin-top: 1em; }
.p-news__form-btn { padding: 8px 40px; font-size: 18px; background: #fff; }

/* --- バックナンバー --- */
.p-news__back { display: flex; flex-direction: column; gap: 40px; }
.p-news__year-label {
  text-align: center;
  font-family: var(--f-serif-en);
  font-size: 22px;
  letter-spacing: 0.08em;
  color: var(--c-black);
  margin-bottom: var(--space-6);
}
.p-news__issue-row { display: flex; justify-content: space-between; gap: 24px; }
.p-news__issue-row--single { justify-content: center; }
.p-news__issue { width: 246px; }
.p-news__issue-imgs { position: relative; width: 246px; height: 203px; margin-inline: auto; }
.p-news__issue-main { position: absolute; left: 0; top: 0; width: 143px; height: 203px; object-fit: cover; }
.p-news__issue-sub  { position: absolute; left: 154px; top: 73px; width: 92px; height: 130px; object-fit: cover; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.p-news__issue-title {
  margin-top: 16px;
  text-align: center;
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}

/* --- 設置店舗一覧 --- */
.p-news__store-label {
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
  margin-bottom: var(--space-5);
}
.p-news__stores {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  column-gap: 15px;
  row-gap: 24px;
}
.p-news__store { display: flex; gap: 8px; align-items: center; }
.p-news__store-icon { flex-shrink: 0; width: 62px; height: 62px; background: #d9d9d9; }
.p-news__store-name {
  font-family: var(--f-mincho);
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
}
.p-news__continue {
  margin-top: var(--space-7);
  text-align: center;
  font-family: var(--f-mincho);
  font-size: 16px;
  letter-spacing: 0.3em;
  color: var(--c-black);
}

@media screen and (max-width: 767px) {
  /* 里やま新聞、会社案内共通 */
  .p-news__sec,.p-company__sec { padding: var(--space-10) 0 0; }
  .p-news__sec:last-child ,.p-company__sec:last-child{ padding-bottom: var(--space-10); }

  .p-news__latest { flex-direction: column; gap: 24px; padding: 24px; }
  .p-news__latest-imgs { justify-content: center; }
  .p-news__latest-imgs img { width: 100%; height: auto; }
  .p-news__latest-text { align-items: stretch; }
  .p-news__latest-desc { width: 100%; }
  .p-news__form-btn { width: 100%; text-align: center; justify-content: center; }

  .p-news__issue-row { flex-wrap: wrap; gap: 24px 16px; justify-content: center; }
  .p-news__issue { width: 46%; max-width: 246px; }
  .p-news__issue-imgs { width: 100%; aspect-ratio: 246 / 203; height: auto; }

  .p-news__stores { grid-template-columns: repeat(2, 1fr); }
}

/* 里やま新聞：ACF画像（lightboxリンク）/ 店舗ロゴ・エリア対応 */
.p-news__latest-imgs a { display: block; }
.p-news__issue-main img, .p-news__issue-sub img { width: 100%; height: 100%; object-fit: cover; display: block; }
.p-news__area + .p-news__area { margin-top: var(--space-8); }
.p-news__store-link { display: flex; gap: 8px; align-items: center; color: inherit; }
a.p-news__store-link:hover { opacity: 0.7; }
.p-news__store-icon { overflow: hidden; }
.p-news__store-icon img { width: 100%; height: 100%; object-fit: cover; }


/* =========================================================================
   コンタクト（contact.php）  p-contact  ― 
   ========================================================================= */
/* --- 導入（リード） --- */
.p-contact__intro { padding-top: var(--space-10); }
.p-contact__intro .p-concept__rows {
    padding-top: var(--space-10);
}
.p-contact .p-home__newspaper--card{
    background: url("../img/top/bg-texcha.webp") repeat;
    box-shadow: none;
    margin:5vw auto;
}
@media screen and (max-width: 767px) {
  .p-contact__intro .p-concept__rows{
    padding-top: 0;
  }
}

/* -------------------------------------------------------------------------
   フォームセクション共通枠  .p-contact__form
   ※ お問い合わせ・資料請求 とも <main class="p-contact"> 配下で共通適用。
      資料請求ページ（p-contact--request）はイントロ直後のためフォーム上余白を 0 に。
   ------------------------------------------------------------------------- */
.p-contact__form { padding-block: var(--space-9) var(--space-10); }
.p-contact--request .p-contact__form { padding-top: 0; }
.p-contact--request .p-home__newspaper-img { width: 85%; margin: 0 auto; }
@media screen and (max-width: 767px) {
  .p-contact--request .p-home__newspaper-img { width: 100%; margin: 0 auto; }
}
/* -------------------------------------------------------------------------
   お問い合わせフォーム（Snow Monkey Forms）  Figma PC 537:6530 / SP 537:6648
   ※ 固定ページ本文に置いた Snow Monkey Forms（simple-table）を Figma に合わせる。
     必須/任意バッジは項目（Item）ブロックの「追加CSSクラス」で制御：
       required → 必須（赤）／未指定 → 任意（グレー・既定）
     ご予定など横並びにしたい項目は is-inline を追加。
   ------------------------------------------------------------------------- */
.p-contact .smf-form { max-width: 900px; margin-inline: auto; }

/* テーブルレイアウト：行間は薄いグレー罫線（#ccc） */
.p-contact .smf-form--simple-table { display: table; width: 100%; border-collapse: collapse; }
.p-contact .smf-form--simple-table .smf-item { display: table-row; }
.p-contact .smf-form--simple-table .smf-item__col {
  display: table-cell; vertical-align: top; border-bottom: 1px solid #ccc;
}
/* 最終項目（その他ご要望）の下線は消す */
.p-contact .smf-form--simple-table .smf-item:last-child .smf-item__col { border-bottom: 0; }
.p-contact .smf-form--simple-table .smf-item__col--label {
  width: 190px; padding: 16px 10px 16px 16px;
}
.p-contact .smf-form--simple-table .smf-item__col--controls {
  width: auto; padding: 16px 16px 16px 20px;
}

/* 見出しセル：必須/任意バッジ＋ラベルを横並び（Figma：バッジが左） */
.p-contact .smf-item__col--label .smf-item__label {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0;
}
.p-contact .smf-item__label__text {
  font-family: var(--f-gothic); font-weight: 500; font-size: 15px; line-height: 1.65;
  letter-spacing: var(--ls-text); color: var(--c-black);
}
.p-contact .smf-item__description {
  font-family: var(--f-gothic); font-size: 13px; color: var(--c-gray-line);
  margin-top: 4px; line-height: 1.65;
}

/* 必須/任意バッジ（既定＝任意。項目ブロックに required クラスで必須に上書き） */
.p-contact .smf-item__col--label .smf-item__label::before {
  content: "任意";
  flex-shrink: 0; padding: 5px 8px; border-radius: 5px;
  font-family: var(--f-gothic); font-weight: 500; font-size: 10px; line-height: 1.65;
  white-space: nowrap; background: #f0f0f0; color: var(--c-black);
}
.p-contact .smf-item.required .smf-item__col--label .smf-item__label::before {
  content: "必須"; background: #b70100; color: #fff;
}

/* コントロール：複数入力（住所など）は縦に間隔 */
.p-contact .smf-item__controls { display: flex; flex-direction: column; gap: 10px; }

/* 入力欄 */
.p-contact .smf-text-control__control,
.p-contact .smf-textarea-control__control,
.p-contact .smf-select-control__control {
  font-family: var(--f-gothic); font-size: 15px; color: var(--c-black);
  background: #fff; border: 1px solid #ccc; border-radius: 5px;
  padding: 8px; box-sizing: border-box; width: 100%; max-width: 405px;
}
.p-contact .smf-textarea-control__control { max-width: 100%; min-height: 90px; }
.p-contact .smf-text-control__control#zip { max-width: 160px; }

/* ラジオ／チェックボックス（既定＝縦並び。is-inline で横並び） */
.p-contact .smf-radio-buttons-control__control,
.p-contact .smf-checkboxes-control__control {
  display: flex; flex-direction: column; gap: 8px;
}
.p-contact .smf-item.is-inline .smf-radio-buttons-control__control,
.p-contact .smf-item.is-inline .smf-checkboxes-control__control {
  flex-direction: row; flex-wrap: wrap; gap: 8px 18px;
}
.p-contact .smf-label { display: block; margin: 0; }
.p-contact .smf-radio-button-control,
.p-contact .smf-checkbox-control { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.p-contact .smf-radio-button-control__control,
.p-contact .smf-checkbox-control__control { margin: 0; flex-shrink: 0; }
.p-contact .smf-radio-button-control__label,
.p-contact .smf-checkbox-control__label {
  font-family: var(--f-gothic); font-size: 15px; line-height: 1.65; color: var(--c-black);
}

/* バリデーションエラー */
.p-contact .smf-item__controls__error,
.p-contact .smf-validation-error { display: block; margin-top: 4px; color: #b70100; font-size: 13px; }

/* 送信／確認ボタン（Figma：枠線ボタン／矢印なし） */
.p-contact .smf-action { display: flex; justify-content: center; gap: 20px; margin-top: 48px; }
.p-contact .smf-action button,
.p-contact .smf-button-control__control {
  font-family: var(--f-mincho); font-weight: 500; font-size: 20px; letter-spacing: 0.05em;
  color: var(--c-black); background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--c-black); border-radius: 0;
  padding: 12px 59px; width: auto; line-height: 1.5;
  cursor: pointer; transition: background var(--transition), color var(--transition);
}
.p-contact .smf-action button:hover,
.p-contact .smf-button-control__control:hover { background: var(--c-black); color: #fff; }
/* 「戻る」ボタンはグレー */
.p-contact .smf-action button[name="back-button"],
.p-contact .smf-action .smf-backward-button .smf-button-control__control {
  background: #f0f0f0; border-color: #ccc; color: var(--c-black);
}
.p-contact .smf-action button[name="back-button"]:hover,
.p-contact .smf-action .smf-backward-button .smf-button-control__control:hover { background: #ccc; color: var(--c-black); }

@media screen and (max-width: 767px) {
  .p-contact .smf-form--simple-table,
  .p-contact .smf-form--simple-table .smf-item,
  .p-contact .smf-form--simple-table .smf-item__col { display: block; width: 100%; }
  .p-contact .smf-form--simple-table .smf-item { border-bottom: 1px solid #ccc; }
  .p-contact .smf-form--simple-table .smf-item:last-child { border-bottom: 0; }
  .p-contact .smf-form--simple-table .smf-item__col { border-bottom: 0; }
  .p-contact .smf-form--simple-table .smf-item__col--label { padding: 16px 0 8px; }
  .p-contact .smf-form--simple-table .smf-item__col--controls { padding: 0 0 16px; }
  .p-contact .smf-text-control__control,
  .p-contact .smf-textarea-control__control { max-width: 100%; padding: 12px 8px;}
  .p-contact .smf-action { flex-direction: column; align-items: stretch; }
  .p-contact .smf-action button,
  .p-contact .smf-button-control__control { width: 100%; padding-inline: 0; }
}

/* 里やま新聞：SPはバックナンバーを全て縦1列・画面幅からはみ出さない */
@media screen and (max-width: 767px) {
  .p-news__issue-row,
  .p-news__issue-row--single {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    gap: 32px;
  }
  .p-news__issue { width: 100%; }
  .p-news__issue-imgs {
    width: 246px;
    max-width: 100%;
    height: 203px;
    aspect-ratio: auto;
    margin-inline: auto;
  }
}

/* TOPのスライドショーはホバーでも止めず動き続ける（既存のpause指定を上書き） */
.p-home__slideshow:hover .p-home__slideshow-track { animation-play-state: running; }

/* =========================================================================
   施工事例 詳細（single-work.php）  p-work  ―  Figma PC 441:3821 / SP 478:5006
   ACFフレキシブル相当を種別ごとに表示。共通：c-pagehead / c-section-title / c-btn
   ========================================================================= */
.p-work { overflow-x: clip; }
.p-work__article {
  min-width: 0;
  padding-top: var(--space-9);
  padding-bottom: var(--space-10);
}
.p-work__sns{display:none;}
.p-work__block,
.p-work__intro,
.p-work__grid-item,
.p-work__split-row,
.p-work__split-text,
.p-work__ba-item { min-width: 0; }
/* 本文系は1100幅で中央（メイン画像のみコンテナ全幅） */
.p-work__head,
.p-work__desc,
.p-work__info,
.p-work__story-link,
.p-work__block,
.p-work__nav { max-width: 1100px; margin-inline: auto; }

/* --- 物件ヘッダー --- */
.p-work__head { margin-bottom: var(--space-7); }
.p-work__head-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.p-work__cats { display: flex; flex-wrap: wrap; gap: 8px; }
.p-work__cat {
  display: inline-flex; align-items: center;
  padding: 3px 16px;
  background: #acacb2; color: var(--c-white);
  font-family: var(--f-mincho); font-size: 14px; letter-spacing: var(--ls-text);
}
.p-work__cat--renovation { background: #b3a07a; }
.p-work__cat--kominka { background: #5a4636; }
.p-work__cat--reform { background: #8c8c8c; }
.p-work__cat--voice { background: var(--c-brown); }
.p-work__title {
  margin-top: 16px;
  font-family: var(--f-mincho); font-weight: 600; font-size: 28px;
  letter-spacing: var(--ls-title); color: var(--c-black);
}

/* --- イントロ --- */
.p-work__intro { display: flex; flex-direction: column; align-items: center; gap: 40px; margin-bottom: var(--space-10); }
.p-work__main-img { width: 100%; aspect-ratio: 1200 / 800; overflow: hidden; }
.p-work__main-img img { width: 100%; height: 100%; object-fit: cover; }
.p-work__desc, .p-work__info { width: 100%; }
.p-work__desc { font-family: var(--f-mincho); font-size: 16px; line-height: 2; letter-spacing: var(--ls-text); color: var(--c-black); }
.p-work__desc p { margin: 0 0 1em; }
.p-work__desc p:last-child { margin-bottom: 0; }
/* 情報テーブル（biko のHTMLテーブルを整形） */
.p-work__info table { width: 100%; border-collapse: collapse; }
.p-work__info th, .p-work__info td {
  font-family: var(--f-mincho); font-weight: 500; font-size: 16px; line-height: 2;
  letter-spacing: var(--ls-text); color: var(--c-black);
  text-align: left; vertical-align: top;
  padding: 8px 16px; border-bottom: 1px solid #ddd;
}
.p-work__info th { width: 160px; white-space: nowrap; }
.p-work__story-link { width: 100%; display: flex; justify-content: center; }
.p-work__story-link .c-btn { padding: 12px 40px; font-size: 16px; }

/* --- ブロック共通 --- */
.p-work__block { margin-bottom: var(--space-6); }
.p-work__block-heading {
  margin-bottom: 40px; text-align: center;
  font-family: var(--f-mincho); font-weight: 600; font-size: 28px;
  letter-spacing: var(--ls-title); color: var(--c-dark-black);
}
.p-work__cap {
  font-family: var(--f-mincho); font-size: 16px; line-height: 2;
  letter-spacing: var(--ls-text); color: var(--c-black);
}
.p-work__cap p { margin:0; }
.p-work img { display: block; max-width: 100%; }

/* 画像テキスト（col1） */
.p-work__col1 { display: flex; flex-direction: column; gap: 40px; }
.p-work__col1-item { width: 100%; }
.p-work__col1-item img { width: 100%; height: auto; }
.p-work__col1-item .p-work__cap { margin-top: 16px; }

/* N列グリッド（col2/col3/col4/col5） */
.p-work__grid { display: grid; gap: 32px 24px; }
.p-work__grid--2 { grid-template-columns: repeat(2, 1fr); }
.p-work__grid--3 { grid-template-columns: repeat(3, 1fr); }
.p-work__grid--4 { grid-template-columns: repeat(4, 1fr); }
.p-work__grid--5 { grid-template-columns: repeat(5, 1fr); }
.p-work__grid-img img { width: 100%; height: auto; }
.p-work__grid-item .p-work__cap { margin-top: 12px; font-size: 15px; }

/* 画像＋テキスト 横並び（col2r=画像左 / col2l=画像右） */
.p-work__split-row { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.p-work__split-row + .p-work__split-row { margin-top: 40px; }
.p-work__split-img img { width: 100%; height: auto; }
.p-work__split--imgR .p-work__split-img { order: 2; }

/* リフォーム：ビフォーアフター（PC横 / SP縦） */
.p-work__ba { display: flex; align-items: flex-start; gap: 24px; }
.p-work__ba + .p-work__ba { margin-top: 48px; padding-top: 48px; border-top: 1px solid #e5e5e5; }
.p-work__ba-item { flex: 1; min-width: 0; }
.p-work__ba-img { margin: 8px 0; }
.p-work__ba-img img { width: 100%; height: auto; }
.p-work__ba-label {
  display: inline-block;
  font-family: var(--f-serif-en); font-size: 14px; letter-spacing: 0.08em;
  color: #888;
}
.p-work__ba-label--after { color: var(--c-brown); }
.p-work__ba-arrow {
  flex-shrink: 0; align-self: center;
  width: 18px; height: 18px;
  border-top: 2px solid var(--c-brown); border-right: 2px solid var(--c-brown);
  transform: rotate(45deg);   /* PC：右向き */
  margin-top: 80px;
}

/* ギャラリー（5列） */
.p-work__gallery { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.p-work__gallery-item { aspect-ratio: 1 / 1; overflow: hidden; display: block; }
.p-work__gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition); }
.p-work__gallery-item:hover img { transform: scale(1.05); }

/* 前後ナビ + 一覧へ戻る */
.p-work__nav { margin-top: var(--space-10); }
.p-work__nav-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.p-work__nav-prev, .p-work__nav-next {
  display: inline-flex; align-items: center; gap: 12px;
  height: 54px; padding-inline: 18px;
  font-family: var(--f-mincho); font-size: 16px; letter-spacing: var(--ls-text); color: var(--c-black);
  transition: color var(--transition), opacity var(--transition);
}
.p-work__nav-prev:hover, .p-work__nav-next:hover { opacity: 0.6; }
.p-work__nav-arrow {
  width: 8px; height: 8px;
  border-top: 1px solid currentColor; border-right: 1px solid currentColor;
}
.p-work__nav-arrow--prev { transform: rotate(-135deg); }
.p-work__nav-arrow--next { transform: rotate(45deg); }
.p-work__back { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: var(--space-8); }
.p-work__back-btn { padding: 12px 40px; font-size: 16px; min-width: 320px; text-align: center; justify-content: center; }

@media screen and (max-width: 767px) {
  .p-work__title { font-size: 22px; }
  .p-work__intro { gap: 24px; }
  .p-work__block-heading { font-size: 22px; margin-bottom: 24px; }
  .p-work__block { margin-bottom: var(--space-6); }
  .p-work__grid--2, .p-work__grid--3 { grid-template-columns: 1fr; }
  .p-work__grid--4, .p-work__grid--5 { grid-template-columns: repeat(2, 1fr); }
  .p-work__col1-item .p-work__cap { text-align: center; }
  .p-work__split-row { grid-template-columns: 1fr; gap: 16px; }
  .p-work__split--imgR .p-work__split-img { order: 0; }   /* SPは画像を上に */

  /* ビフォーアフター：SPは縦 */
  .p-work__ba { flex-direction: column; gap: 12px; }
  .p-work__ba-arrow { transform: rotate(135deg); margin: 4px auto; }  /* 下向き */

  .p-work__gallery { grid-template-columns: repeat(3, 1fr); gap: 8px; }

  .p-work__back-btn { width: 100%; min-width: 0; }
}

/* 施工事例 情報テーブル（biko）：Figma 441:4258 の 2列×3行グリッドに整形（上書き） */
.p-work__info table { display: block; width: 100%; border-collapse: collapse; }
.p-work__info tbody {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 55px;
  row-gap: 8px;
}
.p-work__info tr {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 40px;
  border-bottom: 1px solid #ddd;
}
.p-work__info th,
.p-work__info td {
  padding: 0;
  border: 0;
  font-family: var(--f-mincho);
  font-weight: 500;
  font-size: 16px;
  line-height: 2;
  letter-spacing: var(--ls-text);
  color: var(--c-black);
  text-align: left;
}
.p-work__info th { flex: 0 0 auto; width: 132px; padding-left: 16px; white-space: nowrap; }
.p-work__info td { flex: 1; min-width: 0; }
@media screen and (max-width: 767px) {
  .p-work__info tbody { grid-template-columns: 1fr; column-gap: 0; }
  /* SPでは見出しラベルを固定幅にして、全ての td が同じ位置から始まるように揃える */
  /* 長い項目名はこの固定幅内で折り返す（white-space: normal） */
  .p-work__info th { flex: 0 0 6.5em; width: 6.5em; max-width: none; padding-left: 8px; white-space: normal; }
  .p-work__info tr { gap: 12px; }
}

/* -------------------------------------------------------------------------
   施工事例 詳細：SP横スクロール対策（overflow-x: clip は旧iOS Safariで無効なため、
   はみ出し源そのものを塞ぐ）。本文・キャプション・テーブル等の埋め込みを画面内に収める。
   ------------------------------------------------------------------------- */
.p-work__desc,
.p-work__cap,
.p-work__split-text,
.p-work__block { overflow-wrap: anywhere; word-break: break-word; }
.p-work__desc img,
.p-work__cap img,
.p-work__split-text img,
.p-work__block img { max-width: 100%; height: auto; }
/* ギャラリーは正方形トリミングを維持（上の height:auto に勝つよう詳細度を上げる） */
.p-work__block .p-work__gallery-item img { height: 100%; object-fit: cover; }
.p-work__desc iframe,
.p-work__cap iframe,
.p-work__split-text iframe,
.p-work__block iframe,
.p-work__desc embed,
.p-work__desc object,
.p-work__desc video { max-width: 100%; }
/* 本文中の固定幅テーブルははみ出さず、必要時のみ局所スクロール */
.p-work__desc table,
.p-work__split-text table { display: block; max-width: 100%; overflow-x: auto; }
/* 万一の長要素に備え、情報テーブルも局所スクロールで受け止める（安全網） */
@media screen and (max-width: 767px) {
  .p-work__info { overflow-x: auto; }
  .p-work__cap p { margin: 4vw 0 0; }
}

/* 施工事例 詳細：カテゴリタブ（/work/上部と共通の c-cattab を中央配置） */
.p-work__cattab { display: flex; justify-content: center; margin-top: var(--space-8); }
.p-work__cattab .c-cattab { margin-top: 0; }

/* biko テーブル内の段落余白をリセット（td内の<p>） */
.p-work__info td p { margin: 0; }

/* =========================================================================
   お知らせ・イベント 一覧（_parts/newsevent-list.php）  p-newsevent
   ========================================================================= */
.p-newsevent__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 21px;
  row-gap: 64px;
}
@media screen and (max-width: 767px) {
  .p-newsevent__grid { grid-template-columns: 1fr; row-gap: 40px; }
}

/* =========================================================================
   お知らせ・イベント 詳細（_parts/newsevent-single.php）  p-newsevent--single
   ========================================================================= */
.p-newsevent__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 60px;
  align-items: start;
  padding-block: var(--space-9) var(--space-10);
}
.p-newsevent__main { min-width: 0; }

/* 見出し */
.p-newsevent__head { margin-bottom: var(--space-7); width: auto;}
.p-newsevent__meta { display: flex; align-items: center; gap: 17px; margin-bottom: 12px; }
.p-newsevent__title {
  font-family: var(--f-mincho); font-weight: 600; font-size: 28px; line-height: 1.6;
  letter-spacing: var(--ls-title); color: var(--c-black);
}
.p-newsevent__event-date {
  margin-top: 8px;
  font-family: var(--f-mincho); font-size: 16px; line-height: 2;
  letter-spacing: var(--ls-text); color: var(--c-brown);
}

/* 本文 */
.p-newsevent__body { font-family: var(--f-mincho); font-size: 16px; line-height: 2; letter-spacing: var(--ls-text); color: var(--c-black); }
.p-newsevent__body p { margin: 0 0 1.5em; }
.p-newsevent__body img { max-width: 100%; height: auto; margin: 8px 0; }
.p-newsevent__body img.aligncenter,
.p-newsevent__body .aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
/* 横スクロール防止：本文内の埋め込み・長い文字列・固定幅テーブルを画面内に収める（どんな時も横スクロールを出さない） */
.p-newsevent__body { overflow-wrap: anywhere; word-break: break-word; }
.p-newsevent__body iframe,
.p-newsevent__body video,
.p-newsevent__body embed,
.p-newsevent__body object { max-width: 100%; }
.p-newsevent__body table { display: block; max-width: 100%; overflow-x: auto; }
.p-newsevent__body pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
.p-newsevent__body h2, .p-newsevent__body h3, .p-newsevent__body h4 {
  font-family: var(--f-mincho); font-weight: 600; letter-spacing: var(--ls-title); margin: 1.5em 0 .6em;
}
.p-newsevent__body a { color: var(--c-brown); text-decoration: underline; }

/* 既存ページの崩れ修正 */
.p-newsevent__body .wp-block-image .aligncenter > figcaption {
    display: block;
}

/* 前後ナビ */
.p-newsevent__pager { display: flex; justify-content: space-between; gap: 16px; margin-top: var(--space-9); }
.p-newsevent__pager a {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--f-mincho); font-size: 16px; letter-spacing: var(--ls-text); color: var(--c-black);
  transition: opacity var(--transition);
}
.p-newsevent__pager a:hover { opacity: 0.6; }
.p-newsevent__pager-arrow { width: 8px; height: 8px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; }
.p-newsevent__pager-arrow--prev { transform: rotate(-135deg); }
.p-newsevent__pager-arrow--next { transform: rotate(45deg); }

/* 一覧へ戻る */
.p-newsevent__back { display: flex; justify-content: center; margin-top: var(--space-8); }
.p-newsevent__back .c-btn { padding: 12px 40px; font-size: 16px; min-width: 320px; justify-content: center; }
/* /story/（お客様ストーリー詳細）だけ：戻るボタンの下に余白を確保（フッターとの間隔） */
body.single-story .p-newsevent__back { margin-bottom: var(--space-9); }

/* --- サイドバー（既存ウィジェットを新デザインに） --- */
.p-newsevent__side .side_content { margin-bottom: var(--space-7); }
.p-newsevent__side .side_content h3 {
  margin: 0 0 14px;
  padding: 8px 16px;
  background: var(--c-brown); color: var(--c-white);
  font-family: var(--f-mincho); font-weight: 500; font-size: 16px; letter-spacing: var(--ls-text);
}
.p-newsevent__side .side_content ul { list-style: none; padding: 0; margin: 0; }
.p-newsevent__side .side_content li { border-bottom: 1px solid #e5e5e5; }
.p-newsevent__side .side_content li a {
  display: block; padding: 8px 4px;
  font-family: var(--f-mincho); font-size: 15px; line-height: 1.7; letter-spacing: var(--ls-text); color: var(--c-black);
}
.p-newsevent__side .side_content li a:hover { color: var(--c-brown); opacity: 1; }
.p-newsevent__side .side_content .time { font-size: 13px; color: var(--c-gray-line); }
.p-newsevent__side #searchform { display: flex; gap: 0; }
.p-newsevent__side #searchform .s {
  flex: 1; min-width: 0; height: 40px; padding: 0 12px;
  border: 1px solid #ccc; font-family: var(--f-mincho); font-size: 15px;
}
.p-newsevent__side #searchform .searchsubmit {
  width: 44px; height: 40px; flex-shrink: 0;
  border: 1px solid var(--c-brown); background: var(--c-brown); color: #fff;
  font-family: FontAwesome; cursor: pointer;
}
.sidebar_li_icon a:before {content: none; }
@media screen and (max-width: 767px) {
  .p-newsevent__layout { grid-template-columns: 1fr; gap: 40px; }
  .p-newsevent__title { font-size: 22px; }
  .p-newsevent__back .c-btn { width: 100%; min-width: 0; }
}

/* =========================================================================
   里やま日記 一覧（_parts/blog-list.php）  p-blog  ―  Figma PC 419:2874 / SP 500:6582
   詳細(blog-single)と共通の p-newsevent レイアウト／サイドバーを流用。
   ========================================================================= */
.p-blog__list { list-style: none; margin: 0; padding: 0; }
.p-blog__item { border-bottom: 1px solid #ddd; }
.p-blog__item:first-child { border-top: 1px solid #ddd; }
.p-blog__card { display: flex; gap: 40px; align-items: stretch; padding: 40px 0; }
.p-blog__thumb {
  flex: 0 0 280px; align-self: flex-start;
  aspect-ratio: 4 / 3; overflow: hidden; background: #d9d9d9;
}
.p-blog__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition); }
.p-blog__card:hover .p-blog__thumb img { transform: scale(1.05); }
.p-blog__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.p-blog__meta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.p-blog__title {
  font-family: var(--f-mincho); font-weight: 600; font-size: 20px; line-height: 1.6;
  letter-spacing: var(--ls-text); color: var(--c-black); overflow-wrap: anywhere;
  transition: color var(--transition);
}
.p-blog__card:hover .p-blog__title { color: var(--c-brown); }
.p-blog__excerpt {
  font-family: var(--f-mincho); font-size: 15px; line-height: 1.9; letter-spacing: var(--ls-text); color: var(--c-black);
  display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.p-blog__more {
  align-self: flex-end; margin-top: auto;
  display: inline-block; padding-bottom: 4px; border-bottom: 1px solid var(--c-black);
  font-family: var(--f-mincho); font-size: 16px; letter-spacing: 0.05em; color: var(--c-black);
  transition: color var(--transition), border-color var(--transition);
}
.p-blog__card:hover .p-blog__more { color: var(--c-brown); border-color: var(--c-brown); }

@media screen and (max-width: 767px) {
  .p-blog__card { flex-direction: column; gap: 16px; padding: 24px 0; }
  .p-blog__thumb { flex: none; width: 100%; }
  .p-blog__title { font-size: 18px; }
  .p-blog__more { align-self: flex-start; margin-top: 4px; }
}

/* --- 詳細／一覧 サイドバー 微調整 ------------------------------------------ */
/* カテゴリーの「タイトル＋件数(cat-item-9 等)」を改行せず横並びに */
.p-newsevent__side .side_content li.cat-item,.p-newsevent__side .side_content li,
.p-newsevent__side .cat_name li {
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; padding: 8px 4px;
} 
.p-newsevent__side .side_content li.cat-item a,
.p-newsevent__side .cat_name li a { display: inline; padding: 0; }
.p-newsevent__side .side_content li.cat-item .count { color: var(--c-gray-line); font-size: 13px; }

/* p-newsevent__title と検索窓が被らないよう：本文側を確実に内包＆長語折り返し、
   検索入力の旧 width:calc(100% - 34px) を打ち消して列内に収める */
.p-newsevent__side { min-width: 0; }
.p-newsevent__title { overflow-wrap: anywhere; word-break: break-word; }
.p-newsevent__side #searchform { box-sizing: border-box; width: 100%; max-width: 100%; }
.p-newsevent__side #searchform .s { width: auto; box-sizing: border-box; }

/* =========================================================================
   TOPページ オープニング演出（参考: oneit.co.jp）
   ・読み込み時、白いオーバーレイに左上のロゴだけを表示
   ・約1.1秒後、画面（オーバーレイ）が下→上へ捲れて中身が現れる
   ・ロゴ位置はヘッダーのロゴ(top:13px / left:32px / 122px)に合わせ、
     捲れ終わるとそのままヘッダーのロゴへ自然につながる
   ========================================================================= */
.p-opening {
  position: fixed;
  inset: 0;
  z-index: 9998;            /* ヘッダー(1000)より前、Lightbox等の最前面より下 */
  background: var(--c-white, #fff);
  transform: translateY(0);
  transform-origin: top center;
  animation: p-opening-reveal 0.9s cubic-bezier(0.76, 0, 0.24, 1) 1.1s forwards;
  will-change: transform;
}
.p-opening__logo {
  position: absolute;
  top: 13px;
  left: 32px;
  width: 122px;
  opacity: 0;
  animation: p-opening-logo 0.6s ease 0.2s forwards;
}
.p-opening__logo img {
  display: block;
  width: 100%;
  height: auto;
}
@keyframes p-opening-logo {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes p-opening-reveal {
  from { transform: translateY(0); }
  to   { transform: translateY(-100%); }
}
/* アクセシビリティ：視差効果を減らす設定では演出を出さない */
@media (prefers-reduced-motion: reduce) {
  .p-opening { display: none; }
}

/* =========================================================================
   オンライン見学会一覧（taxonomy-case-online.php）― 新デザイン
   ========================================================================= */
.p-online__intro { text-align: center; }
.p-online__lead {
  font-family: var(--f-mincho); font-size: 20px; line-height: 1.8;
  letter-spacing: var(--ls-title); color: var(--c-brown); margin: 0 0 16px;
}
.p-online__text {
  font-family: var(--f-mincho); font-size: 16px; line-height: 2;
  letter-spacing: var(--ls-text); color: var(--c-black); margin: 0 auto 48px; max-width: 760px;
}
.p-online__flow { max-width: 860px; margin: 0 auto; }
.p-online__subtit {
  font-family: var(--f-mincho); font-size: 22px; letter-spacing: var(--ls-title);
  color: var(--c-black); text-align: center; margin: 0 0 32px;
}
.p-online__steps {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; margin-bottom: 40px;
}
.p-online__step {
  flex: 1 1 280px; max-width: 360px; text-align: center;
}
.p-online__step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--c-brown); color: #fff; font-family: var(--f-mincho);
  font-size: 18px; margin-bottom: 12px;
}
.p-online__step img { display: block; width: 100%; height: auto; }
.p-online__note {
  font-family: var(--f-mincho); font-size: 15px; line-height: 1.9;
  letter-spacing: var(--ls-text); color: var(--c-black);
  max-width: 680px; margin: 0 auto 28px; text-align: left;
}
.p-online__btn { text-align: center; }

/* 物件一覧 */
.p-online__list { display: flex; flex-direction: column; gap: var(--space-9); }
.p-online__item {
  border-top: 1px solid #e4e0da; padding-top: var(--space-7);
}
.p-online__item:first-child { border-top: 0; padding-top: 0; }
.p-online__item-title {
  font-family: var(--f-mincho); font-size: 22px; letter-spacing: var(--ls-title);
  color: var(--c-black); text-align: center; margin: 0 0 24px;
}
.p-online__video { position: relative; width: 100%; max-width: 860px; margin: 0 auto 24px; aspect-ratio: 16 / 9; }
.p-online__video iframe,
.p-online__video video,
.p-online__video embed { position: absolute; inset: 0; width: 100%; height: 100%; }
.p-online__desc,
.p-online__sub {
  font-family: var(--f-mincho); font-size: 16px; line-height: 2;
  letter-spacing: var(--ls-text); color: var(--c-black);
  max-width: 760px; margin: 0 auto;
}
.p-online__sub { margin-top: 16px; font-size: 15px; color: #555; }

@media (max-width: 767px) {
  .p-online__lead { font-size: 17px; }
  .p-online__subtit, .p-online__item-title { font-size: 19px; }
  .p-online__step { flex-basis: 100%; }
}

/* =========================================================================
   但馬・丹後の四季ギャラリー（page.php → _parts/season-gallery）― 新デザイン
   ========================================================================= */
.p-season__block { margin-top: var(--space-9); }
.p-season__block:first-child { margin-top: var(--space-7); }
.p-season__head { text-align: center; margin-bottom: 32px; }
.p-season__en {
  display: block; font-family: var(--f-mincho); font-size: 14px;
  letter-spacing: var(--ls-en); color: var(--c-brown); text-transform: uppercase;
}
.p-season__title {
  font-family: var(--f-mincho); font-size: 26px; letter-spacing: var(--ls-title);
  color: var(--c-black); margin: 4px 0 0;
}
.p-season__intro {
  font-family: var(--f-mincho); font-size: 15px; line-height: 1.9;
  letter-spacing: var(--ls-text); color: var(--c-black);
  max-width: 720px; margin: 16px auto 0;
}
.p-season__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
.p-season__item { display: block; text-decoration: none; color: var(--c-black); }
.p-season__img { margin: 0; overflow: hidden; aspect-ratio: 4 / 3; }
.p-season__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform var(--transition);
}
.p-season__item:hover .p-season__img img { transform: scale(1.05); }
.p-season__cap { margin-top: 10px; text-align: center; }
.p-season__cap-title {
  display: block; font-family: var(--f-mincho); font-size: 15px;
  letter-spacing: var(--ls-text); color: var(--c-black);
}
.p-season__cap-sub {
  display: block; font-size: 12px; color: #888; margin-top: 2px;
}
.p-season__switch { text-align: center; margin-top: var(--space-8); }

@media (max-width: 991px) {
  .p-season__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .p-season__title { font-size: 22px; }
  .p-season__grid { gap: 16px; }
}

/* =========================================================================
   汎用ページ本文の用語リスト（/word/ 里やま辞典など）
   <dl>（dt=用語 / dd=説明）が続いて読みづらいので、項目ごとに余白を確保
   ※ page.php / other.php 本文（.p-page__body）にのみ適用
   ========================================================================= */
.p-page__body dl { margin: 0 0 2em; padding-bottom: 2em; border-bottom: 1px solid #eae6df; }
.p-page__body dl:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }
.p-page__body dt { font-weight: 600; margin: 0 0 .5em; color: var(--c-brown); }
.p-page__body dd { margin: 0; }
