@charset "UTF-8";

/* ===== Base ===== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent; /* SPでのタップ時の青ハイライト無効化 */
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable; /* モーダル開閉時のスクロールバー消失による横ズレ防止 */
}

body {
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho",
    serif;
  color: #fff;
  line-height: 1.6;
  background: #faf5eb; /* Hero 以下のベースカラー */
  -webkit-font-smoothing: antialiased;
}

ul {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

/* ===== Header ===== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(20, 22, 24, 0.7);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 57px;
  padding: 0 26px;
}

.header__logo .logo-img {
  height: 26px;
  width: auto;
}

/* Global nav */
.gnav__list {
  display: flex;
  align-items: center;
  gap: 38px;
}

.gnav__list a {
  font-size: 14px;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-thickness: 1px;
  white-space: nowrap;
  transition: opacity 0.25s ease;
}

.gnav__list a:hover {
  opacity: 0.65;
}

/* Language switch（GTranslate 独自UI） */
.lang {
  position: relative;
  user-select: none;
}

.lang__toggle {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  background: none;
  border: none;
  color: inherit;
  font: inherit;
  font-size: 14px;
  letter-spacing: 0.04em;
  cursor: pointer;
}

.lang__icon {
  display: block;
}

.lang__menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  min-width: 140px;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: rgba(20, 22, 24, 0.9);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 1001;
}

.lang__menu[hidden] {
  display: none;
}

.lang__menu li {
  margin: 0;
}

.lang__menu button {
  display: block;
  width: 100%;
  padding: 8px 16px;
  background: none;
  border: none;
  color: #fff;
  font: inherit;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s ease;
}

.lang__menu button:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* GTranslate 純正ウィジェット（内部エンジン用に読み込むが画面外へ）
   注：visibility:hidden / display:none にすると GT の初期化が走らないケースがあるので
   ここでは「見えないが描画されている」状態にする */
.gtranslate_wrapper {
  position: absolute;
  left: -99999px;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  pointer-events: none;
}

/* Google 翻訳が追加する上部バナーの非表示・body位置ズレの打ち消し */
body {
  top: 0 !important;
}

iframe.goog-te-banner-frame {
  display: none !important;
}

/* ===== Hero ===== */
.hero {
  position: relative;
  width: 100%;
  height: 100vh;
  background: url("../img/FV.jpg") center center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero__logo .logo-img {
  width: 210px;
  height: auto;
}

/* ===== Concept ===== */
.concept {
  background: #faf5eb;
}

/* 水面ビジュアル + テキスト */
.concept__visual {
  position: relative;
}

.concept__bg {
  width: 100%;
  height: auto;
}

.concept__text {
  position: absolute;
  right: 3.5%;
  bottom: 20%;
  width: 46%;
  max-width: 640px;
  color: #4a4642;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-size: clamp(12px, 1.05vw, 16px);
  font-weight: 500;
  letter-spacing: 0.09em;
  line-height: 1.9;
  text-align: center;
}

.concept__text p + p {
  margin-top: 1.5em;
}

/* 画像ラッパー外・右端の黒ロゴ */
.concept__logo {
  display: flex;
  justify-content: flex-end;
  padding: 14px 3.5% 0;
}

.concept__logo img {
  width: clamp(120px, 13vw, 170px);
  height: auto;
}

/* 航空写真（左寄せ・右に余白） */
.concept__photo {
  margin-top: 18px;
}

.concept__photo img {
  width: 87%;
  height: auto;
}

/* ===== Section heading (共通) ===== */
.section-head {
  background: #ecdccb;
  width: 30%;
  min-width: 280px;
  max-width: 402px;
  padding: 19px 24px 19px 73px;
}

.section-head__title {
  color: #3a352f;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-weight: 500;
  font-size: clamp(15px, 1.3vw, 18px);
  letter-spacing: 0.16em;
}

/* ===== The Grounds ===== */
.grounds {
  background: #faf5eb;
  padding-top: 56px;
}

.grounds__map {
  text-align: center;
  margin-top: 90px;
  padding-bottom: 80px;
}

/* 画像＋SVGオーバーレイのラッパー（text-align: center で中央寄せ） */
.clickable-map {
  position: relative;
  display: inline-block;
  width: 64.5%;
  vertical-align: top;
  line-height: 0; /* img下の余白除去 */
}

.grounds__map img {
  width: 100%;
  height: auto;
}

/* クリッカブルマップのSVG（画像にぴったり重ねる） */
.clickable-map__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* 当たり判定エリア（今は rect。将来 polygon に差し替え可） */
.cmap__area {
  fill: transparent; /* 透明でもクリック・ホバー判定は有効 */
  cursor: pointer;
}

/* ===== Location ===== */
.location {
  position: relative;
  background: #faf5eb;
  padding-bottom: 0;
  overflow: hidden;
}

/* 上半分の親コンテナ（縦帯・横帯・見出し・マップを内包）
   deco--v の bottom: 0 がここの底＝location__lower の上端に自然接続する */
.location__upper {
  position: relative;
}

/* 装飾（十字帯） */
.location__deco {
  position: absolute;
  background: #e8dcc8;
  z-index: 0;
}

.location__deco--v {
  left: 3.7%;
  top: 34px;
  width: 17.2%;
  bottom: 0; /* upper の底＝location__lower の上端 */
}

/* 上部ライン（横帯 ＋ タブ）コンテナ */
.location__topline {
  position: absolute;
  top: 68px;
  left: 0;
  right: 0;
  height: 54px;
  display: flex;
  z-index: 3;
}

/* 横帯：flex で残り幅を埋め、タブの直前まで伸ばす */
.location__deco--h {
  position: static; /* topline 内の flex 子として配置 */
  flex: 1;
  height: 100%;
  margin-right: 5px; /* タブとの隙間 */
}

/* 右上タブ */
.location__tabs {
  display: flex;
  gap: 5px; /* 2ボタン間の隙間 */
}

.location__tab {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  padding: 0 40px;
  background: #e9ddc9;
  color: #3a352f;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-size: clamp(11px, 0.95vw, 13px);
  font-weight: 600;
  letter-spacing: 0.08em;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity 0.25s ease;
}

/* ボタン下部（内側）の暗いゴールドのライン */
.location__tab::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #5c481d, #c7a24c, #5c481d);
}

.location__tab.is-active {
  background: #d9c7ad;
}

.location__tab:hover {
  opacity: 0.8;
}

/* 見出し */
.location__label {
  position: absolute;
  left: 4.5%;
  top: 200px;
  z-index: 2;
  color: #3a352f;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-weight: 500;
  font-size: clamp(15px, 1.4vw, 19px);
  letter-spacing: 0.16em;
}

/* 地図 */
.location__map {
  position: relative;
  z-index: 1;
  padding-top: 140px;
}

.location__map img {
  width: 60vw;
  height: auto;
  margin: 0 30%;
}

/* 下部：衛星写真 + テキスト（枠内に横並び） */
.location__lower {
  position: relative;
  z-index: 1;
  display: flex;
  width: fit-content; /* 画像＋info のコンテンツ幅に合わせて枠を縮める */
  align-items: flex-end;
  gap: 40px;
  margin: 0 0 64px 0; /* 上・左を 0 にして上端・左端へ密着 */
  border: 2px solid #c9b89c;
  padding: 16px 52px 22px 0; /* 左側を除いて padding */
}

.location__photo {
  width: 60vw;
  height: auto;
}

.location__info {
  color: #3a3a3a;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
}

.location__info-block + .location__info-block {
  margin-top: 1.4em;
}

.location__info .ttl {
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-bottom: 0.5em;
}

.location__info p:not(.ttl) {
  font-size: clamp(10px, 0.85vw, 12px);
  letter-spacing: 0.05em;
  line-height: 1.75;
}

/* ===== A Changing Island ===== */
.island {
  background: #e3d5c0;
  padding: 66px 0 84px;
}

/* 中央見出し（下線付き） */
.island__head {
  text-align: center;
  margin-bottom: 50px;
}

.island__title {
  display: inline-block;
  color: #3a352f;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-weight: 500;
  font-size: clamp(18px, 1.7vw, 24px);
  letter-spacing: 0.18em;
  padding: 0 10px 12px;
  border-bottom: 1px solid #9a8c76;
}

/* 3列カードグリッド */
.island__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px 28px;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 5%;
}

/* カード（padding は持たせず、media と text 側で制御） */
.card {
  position: relative; /* badge の基準 */
  background: #fbf8f0;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

/* 画像：左右はカード端までフィット、上だけ余白 */
.card__media {
  padding-top: 16px;
}

.card__media img {
  width: 100%;
  aspect-ratio: 16 / 9; /* 全カードで高さを揃える */
  object-fit: cover;   /* 両端フィット・上下は切れてよい */
}

/* pickup バッジ：card 基準で右上に固定し、上余白と同色で溶け込ませる */
.card__badge {
  position: absolute;
  top: 0;
  right: 0;
  background: #fbf8f0;
  color: #471e02;
  font-size: 12px;
  letter-spacing: 0.2em;
  padding: 11px 20px;
  border-radius: 0 0 14px 14px;
}

/* テキスト：全方向 padding */
.card__text {
  padding: 18px 20px 22px;
  color: #471e02;
  font-size: clamp(12px, 0.95vw, 14px);
  font-weight: 600;
  line-height: 1.85;
  letter-spacing: 0.04em;
}

/* ===== Around umui ===== */
.around {
  background: #faf5eb;
  padding: 70px 0 90px;
}

.around__inner {
  position: relative; /* 見出しバー（absolute）の基準 */
  padding-left: 3%;   /* 地図の左余白。右は 0 で画面端まで */
  display: flex;
  align-items: flex-start;
  gap: 3%;
}

/* 左：地図（文字内蔵のため歪めず元比率） */
.around__map {
  flex: 1;
}

.around__map img {
  width: 100%;
  height: auto;
}

/* 右上に食い込む見出しバー */
.around__head {
  position: absolute;
  top: 40px;
  right: 0;     /* 画面右端まで伸ばす */
  width: 47%;   /* 右端から左へ伸ばして地図右上に食い込ませる */
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center; /* タイトル中央配置 */
  background: #ecdccb;
  z-index: 5;
}

.around__title {
  color: #3a352f;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-weight: 500;
  font-size: clamp(15px, 1.4vw, 19px);
  letter-spacing: 0.16em;
}

/* 右：サムネイル列 */
.around__thumbs {
  width: 24%;
  flex-shrink: 0;
  margin-top: 94px;    /* 見出しバーの下端に接続（飛び出さず・隙間なし） */
  padding: 18px;       /* 背景パネルの内側余白 */
  background: #ecdccb;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.thumb {
  position: relative;
}

.thumb img {
  width: 100%;
  aspect-ratio: 16 / 7; /* 4枚で高さを揃える */
  object-fit: cover;
}

/* キャプション帯（画像下部・右寄せ） */
.thumb__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 7px 12px;
  background: rgba(0, 0, 0, 0.6); /* 黒60％の帯 */
  color: #fff;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-align: right;
}

/* ===== Info（物件概要） ===== */
.info__inner {
  padding: 40px 7vw;
}

.info__text {
  color: #000;
  font-size: 13px;
}

/* ===== Footer ===== */
.footer {
  margin-top: 100px;
  border-top: 1px solid #3a352f;
  background: #faf5eb;
}

.footer__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  padding: 70px 7vw;
}

.footer__logo img {
  width: 220px;
  height: auto;
}

.footer__divider {
  flex-shrink: 0;
  width: 1px;
  height: 150px;
  background: #3a352f;
}

.footer__companies {
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: center;
  column-gap: 24px;
  color: #3a352f;
  font-size: 15px;
  letter-spacing: 0.06em;
  line-height: 2.2;
}

/* ===== Modal ===== */
.modal[hidden] {
  display: none;
}

.modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 22, 24, 0.6);
}

.modal__dialog {
  position: relative;
  z-index: 1;
  width: min(880px, 92vw);
  max-height: 86vh;
  overflow-y: auto;
  background: #faf5eb;
  color: #3a352f;
  padding: 48px;
}

.modal__close {
  position: absolute;
  top: 12px;
  right: 16px;
  background: none;
  border: none;
  color: #3a352f;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.modal__title {
  font-weight: 500;
  font-size: clamp(18px, 1.6vw, 22px);
  letter-spacing: 0.12em;
  margin-bottom: 1em;
}

/* 区画（Villa）モーダル：横幅を広く取る＋左30%を茶のベースカラー帯に（SP再現） */
.modal__dialog--wide {
  width: min(1080px, 94vw);
  padding: 56px;
  background: linear-gradient(to left, #eae1d2 0 35%, #faf5eb 35% 100%);
}

/* ===== Villa（区画）モーダルの中身 ===== */
/* 全体グリッド：左70%（間取り＋コンセプト） 右30%（見出し＋スペック） */
.villa {
  display: grid;
  grid-template-columns: 1fr 30%;
  column-gap: 48px;
}

/* 各カラムは内部で縦積み */
.villa__col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.villa__plan img {
  width: 100%;
  height: auto;
}

/* 右カラム：スペックを下端に固定（見出しは上、スペックは下） */
.villa__col--right .villa__spec {
  margin-top: auto;
}

/* 下段の要素はグリッド全幅に */
.villa__logo-sp,
.villa__gallery,
.villa__perse {
  grid-column: 1 / -1;
}

/* 見出し（上部固定） */
.villa__head {
  padding-top: 6px;
  text-align: center;
}

.villa__head-rule {
  border: none;
  border-top: 1px solid #3a352f;
  margin: 20px 0;
}

.villa__head-sub {
  font-size: 22px;
  letter-spacing: 0.08em;
  color: #3a352f;
}

.villa__head-block {
  margin-top: 6px;
  font-size: 64px;
  font-weight: 600;
  line-height: 1;
  color: #3a352f;
}

.villa__spec {
  margin-top: auto;
  padding-top: 6px;
  margin-bottom: 44px;
}

.villa__spec-logo {
  width: fit-content;
  margin: 20px auto;
}

.villa__spec-logo img {
  width: 100px;
  height: auto;
}

.villa__type {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-bottom: 16px;
}

.villa__area {
  font-size: 14px;
  letter-spacing: 0.06em;
  line-height: 1.9;
}

.villa__note {
  margin-top: 2px;
  margin-bottom: 24px;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-align: right;
  color: #6b655d;
}

.villa__equip {
  font-size: 13px;
  letter-spacing: 0.04em;
  line-height: 2;
}

/* コンセプト文（明朝・中央寄せ） */
.villa__concept {
  margin: 44px 0;
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.09em;
  line-height: 1.9;
  color: #4a4642;
}

.villa__concept p + p {
  margin-top: 1.4em;
}

/* SP専用改行（PCでは無効化） */
.sp-br {
  display: none;
}

/* SP専用のロゴ配置（PCでは非表示） */
.villa__logo-sp {
  display: none;
}

/* 共用部モーダル用：ページ下部のパースプレースホルダー */
.villa__perse {
  aspect-ratio: 16 / 9;
  background: #c9c9c9;
  color: #555;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  letter-spacing: 0.1em;
  margin-top: 24px;
}

/* 共用部モーダル用：写真リスト（villa__spec 内に配置） */
.villa__photos {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.villa__photos li {
  position: relative;
}

.villa__photos img {
  width: 100%;
  height: auto;
  display: block;
}

.villa__photo-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 4px 8px;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS PMincho", serif;
  font-size: 11px;
  letter-spacing: 0.05em;
  text-align: right;
}

/* 設備リストのトグルボタン（PCでは非表示） */
.villa__equip-toggle {
  display: none;
}

/* 写真スライダー（ドット・矢印・自動送り・スワイプ・ループ） */
.villa__gallery {
  position: relative;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-y; /* 縦スクロールは通し、横ジェスチャはJSに */
}

.villa__gallery-track {
  position: relative;
  /* 全スライドが同じ高さになる基準 */
  aspect-ratio: 16 / 9;
}

.villa__gallery-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.villa__gallery-slide.is-active {
  opacity: 1;
}

.villa__gallery-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; /* アスペクト比を保ったまま全辺フィット */
}

/* ドット */
.villa__gallery-dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14px;
  display: flex;
  justify-content: center;
  gap: 10px;
}

.villa__gallery-dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: background 0.2s ease;
}

.villa__gallery-dot.is-active {
  background: #fff;
}

/* 矢印ボタン */
.villa__gallery-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
  z-index: 2;
}

.villa__gallery-arrow:hover {
  background: rgba(0, 0, 0, 0.65);
}

.villa__gallery-arrow--prev {
  left: 14px;
}

.villa__gallery-arrow--next {
  right: 14px;
}

/* ===== Responsive ===== */
@media (max-width: 1100px) {
  .gnav__list {
    gap: 22px;
  }
  .gnav__list a {
    font-size: 13px;
  }
}

@media (max-width: 768px) {
  /* ===== Header ===== */
  .header__inner {
    height: 52px;
    padding: 0 16px;
  }
  .gnav {
    display: none; /* SPではグローバルナビ非表示 */
  }
  .lang__label {
    display: none; /* SPでは地球アイコンのみ */
  }

  /* ===== Hero ===== */
  .hero {
    background-image: url("../img/FV_SP.jpg");
  }
  .hero__logo .logo-img {
    width: 150px;
  }

  /* ===== Concept ===== */
  .concept__visual {
    height: 100vh;
    overflow: hidden;
  }
  .concept__bg {
    width: auto;
    height: 100%;
    max-width: none; /* base .img の max-width:100% を打ち消し */
  }
  .concept__text {
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    width: 88%;
    max-width: none;
    transform: translate(-50%, -50%);
  }
  .concept__photo img {
    width: 100%;
  }

  /* ===== Grounds ===== */
  .clickable-map {
    width: 80%;
  }

  /* SP専用改行を有効化 */
  .sp-br {
    display: inline;
  }

  /* ===== Location: 見出しラベルを横帯にかかる位置に配置 ===== */
  .location__label {
    top: 80px;              /* 横帯（68〜122px）の中央付近 */
    left: 20px;
    font-size: 16px;
    z-index: 4;             /* 横帯より前面 */
  }

  /* タブ：SPは左右padding縮小 */
  .location__tab {
    padding: 0 20px;
  }

  /* マップ：85%幅・右寄せ（縦帯と地図内の文字が被らないように） */
  .location__map img {
    width: 85%;
    margin: 0 10px 0 auto;
  }

  /* ===== A Changing Island: SPは1列縦積み ===== */
  .island__grid {
    grid-template-columns: 1fr;
    gap: 30px;
    padding: 0 5%;
  }

  /* ===== Location: 下部（衛星写真＋情報）を縦積みに ===== */
  .location__lower {
    flex-direction: column;
    width: auto;
    align-items: stretch;
    gap: 20px;
    margin: 0 16px 40px;
    padding: 16px;
  }

  .location__photo {
    width: 100%;
  }

  .location__info .ttl {
    font-size: 13px;
  }

  .location__info p:not(.ttl) {
    font-size: 12px;
  }

  /* ===== Villa モーダル（SPレイアウト：全幅1カラム縦積み） ===== */
  .modal__dialog--wide {
    padding: 24px 16px 32px;
    /* 茶帯を左に：左30%（#eae1d2）／右70%（#faf5eb） */
    background: linear-gradient(to right, #eae1d2 0 30%, #faf5eb 30% 100%);
  }

  /* villa をフレックス縦積みに。カラム wrapper は display:contents で平坦化 */
  .villa {
    display: flex;
    flex-direction: column;
    column-gap: 0;
  }

  .villa__col {
    display: contents; /* 中身が villa の直接の子として扱われる */
  }

  /* order で並び替え：head → plan → spec → concept → logo → gallery */
  .villa__head    { order: 1; }
  .villa__plan    { order: 2; }
  .villa__spec    { order: 3; margin-top: 0; }
  .villa__concept { order: 4; }
  .villa__logo-sp { order: 5; }
  .villa__gallery { order: 6; }
  .villa__perse   { order: 6; }

  /* SP版ではロゴと横罫線は非表示（右カラム下部の villa__logo-sp が代替） */
  .villa__head .villa__spec-logo,
  .villa__head-rule {
    display: none;
  }

  /* 見出し：横並び・G を Places の下端に揃える */
  .villa__head {
    text-align: left;
    padding-top: 0;
    display: flex;
    align-items: last baseline;
    gap: 12px;
    margin-bottom: 16px;
  }

  .villa__head-sub {
    font-size: 14px;
    letter-spacing: 0.06em;
    line-height: 1.2;
  }

  .villa__head-block {
    margin-top: 0;
    font-size: 44px;
  }

  /* 間取り図：全幅表示 */
  .villa__plan {
    margin-bottom: 16px;
  }

  /* スペック */
  .villa__spec {
    margin-bottom: 20px;
  }

  /* スペック情報は右寄せ（茶帯を避け、クリーム側に置く） */
  .villa__type,
  .villa__area,
  .villa__note {
    text-align: right;
  }

  .villa__type {
    font-size: 14px;
    margin-bottom: 10px;
  }

  .villa__area {
    font-size: 12px;
  }

  .villa__note {
    font-size: 10px;
    margin-bottom: 14px;
  }

  /* 設備トグルとリスト・共用部写真は右側70%に収める */
  .villa__equip,
  .villa__equip-toggle,
  .villa__photos {
    width: 70%;
    margin-left: auto;
  }

  /* 共用部モーダルの写真リスト */
  .villa__photos {
    margin-top: 16px;
    gap: 8px;
  }

  .villa__photo-caption {
    font-size: 9px;
    padding: 3px 6px;
  }

  .villa__equip {
    font-size: 10.5px;
    line-height: 1.9;
    /* SP：折りたたみ（初期状態=閉） */
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease;
  }

  .villa__equip.is-open {
    max-height: 400px;
  }

  /* 設備トグルボタン（SPのみ表示。width は上の .villa__equip 共通ルールで指定） */
  .villa__equip-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    margin-bottom: 10px;
    background: none;
    border: 1px solid #3a352f;
    color: #3a352f;
    font: inherit;
    font-size: 12px;
    letter-spacing: 0.06em;
    cursor: pointer;
  }

  .villa__equip-toggle-icon {
    font-size: 14px;
    line-height: 1;
    transition: transform 0.2s ease;
  }

  .villa__equip-toggle[aria-expanded="true"] .villa__equip-toggle-icon {
    transform: rotate(45deg); /* ＋ → × */
  }

  /* コンセプト：全幅・読みやすい行間 */
  .villa__concept {
    margin: 8px 0 0;
    font-size: 12px;
    letter-spacing: 0.08em;
    line-height: 1.9;
    text-align: left;
  }

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

  /* スライダー矢印は SP では非表示（スワイプで操作） */
  .villa__gallery-arrow {
    display: none;
  }

  /* SP用ロゴ：コンセプト下・右寄せ */
  .villa__logo-sp {
    display: block;
    text-align: right;
    margin-top: 16px;
  }

  .villa__logo-sp img {
    width: 80px;
    height: auto;
    display: inline-block;
  }

  /* ===== Info: SP版では物件概要テキストを非表示（デザイン指示） ===== */
  .info__text {
    display: none;
  }

  /* ===== Footer: ロゴ・区切り線・各社名を縦積み ===== */
  .footer {
    margin-top: 50px;
  }
  .footer__inner {
    flex-direction: column;
    gap: 20px;
    padding: 40px 7vw;
  }
  .footer__logo img {
    width: 180px;
  }
  .footer__divider {
    width: 100px;
    height: 1px;         /* 縦線から横線に */
  }
  .footer__companies {
    grid-template-columns: 1fr; /* SPは1列縦積み */
    font-size: 12px;
    line-height: 2;
    text-align: center;
  }

  /* ===== Around: 縦積み・サムネは横4等分 ===== */
  .around {
    padding: 40px 0;
  }
  .around__inner {
    flex-direction: column;
    gap: 0;                 /* 各間隔は個別margin で制御 */
    padding-left: 0;
  }
  .around__head {
    position: static;
    order: -1;              /* map より上に */
    width: 50%;             /* 右側50%幅 */
    height: 35px;
    align-self: flex-end;   /* 右寄せ */
  }
  .around__thumbs {
    width: 100%;
    flex-direction: row;
    gap: 2px;
    padding: 12px 5px;
    margin-top: 24px;       /* map との間だけ空ける（head-map は gap:0 で密着） */
  }
  .thumb {
    flex: 1;
    min-width: 0;
  }
  .thumb img {
    aspect-ratio: 3 / 4; /* 横4等分でも潰れない縦長サムネに */
  }
  .thumb__caption {
    font-size: 10px;
    padding: 5px 7px;
    letter-spacing: 0.04em;
  }
}
