@charset "utf-8";
/* =========================================================
   location/css/style.css
   下層ページ「アクセス＆ロケーション（ACCESS & LOCATION）」固有スタイル

   下層MV / リード / 3つの魅力（NATURE・EDUCATION・FUTURE）/
   ACCESS（路線図・所要時間）/ LOCATION（Googleマップ・4カテゴリー）/ ページアップ

   ※ bgxx.png は背景画像（CSS background）として配置
   ※ PC はカンプ幅 1280px を基準に .inner（1280px）内へ絶対配置
     SP（〜768px）は縦積みのフロー組みに切り替え
   ========================================================= */

:root{
  /* 本文用（カンプ準拠：角ゴシック系） */
  --font-txt: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', YuGothic,
              'Noto Sans JP', sans-serif;
  --sumi:   #42210B;   /* 本文・見出しの茶（カンプ実測） */
  --c-nat:  #64BEA6;   /* NATURE キャッチ */
  --c-edu:  #F2A398;   /* EDUCATION キャッチ */
  --c-fut:  #77CAEB;   /* FUTURE キャッチ */

  /* カンプ幅1280pxの1pxに相当する可変単位。
     1280px未満＝1px（等倍）／1280px超＝画面幅に比例／1920px以上＝1.5倍で上限 */
  --u: clamp(1px, 0.078125vw, 1.5px);
}

/* =========================================================
   共通ラッパ
   ========================================================= */
/* ヘッダー（h84px・sticky）にMVを潜り込ませる */
.page{
  position:relative;
  margin-top:calc(var(--u) * -84);
  background:#fff;
  overflow-x:clip;   /* 装飾のはみ出しで横スクロールさせない */
}

/* アンカーリンク（カテゴリーナビ）：sticky ヘッダー分の余白を確保 */
html{ scroll-behavior:smooth; }
.loc__block{ scroll-margin-top:calc(var(--u) * 100); }

/* 本文ラッパ（幅100%）
   ※カンプ幅1280pxを基準に、中央から calc() でオフセットして配置し、
     端で切れている画像・装飾はその端（left:0 / right:0）に寄せる */
.inner{
  position:relative;
  z-index:3;
  width:100%;
  margin:0 auto;
}

/* 背景装飾（bgxx.png／CSS背景・本文の背面／波より前面）
   ※画像サイズは原寸のまま。位置のみカンプ比率に合わせて可変 */
.deco{
  position:absolute;
  z-index:2;
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
/* 波形の区切り（全幅） */
.wave{
  position:absolute;
  left:0;
  z-index:1;
  width:100%;
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:center top;
  background-size:100% 100%;
}
/* 円形写真の背面に敷く白帯（全幅） */
.band{
  position:absolute;
  left:0;
  z-index:2;
  width:100%;
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:center top;
  background-size:100% 100%;
}

/* =========================================================
   ① 下層ページMV
   ========================================================= */
.sub-mv{
  position:relative;
  z-index:0;
  line-height:0;
}
.sub-mv > img{ width:100%; }
/* ページタイトル：MV内 上から54.3%（カンプ y≈247 / MV高さ455）・幅421px（1280基準） */
.sub-mv__tit{
  position:absolute;
  left:50%;
  top:54.3%;
  width:32.9%;
  max-width:calc(var(--u) * 421);
  transform:translate(-50%,-50%);
  margin:0;
  line-height:0;
}
.sub-mv__tit img{ width:100%; }

/* =========================================================
   ② リード（白地）
   ========================================================= */
.access,
.intro{ position:relative; background:#fff; }

.intro{ padding:calc(var(--u) * 73) 0 calc(var(--u) * 161); }
.intro__tit{ text-align:center; line-height:0; }
.intro__tit img{ display:inline-block; }
.intro__text{
  margin-top:calc(var(--u) * 42);
  font-family:var(--font-txt);
  font-weight:600;
  font-size:calc(var(--u) * 17);
  line-height:calc(var(--u) * 42.5);
  letter-spacing:.13em;
  text-indent:.13em;
  text-align:center;
  color:var(--sumi);
}
/* 装飾（カンプ：ピンクのブロブ＋ドット／ベージュのブロブ＋ピンク斜線） */
.d-in1{ top:calc(var(--u) * -39); left:0;  width:286px; aspect-ratio:286/376; background-image:url(../img/bg01.png); }
.d-in2{ top:calc(var(--u) * -70); right:0;  width:176px; aspect-ratio:176/495; background-image:url(../img/bg02.png); }

/* =========================================================
   ③ 3つの魅力（NATURE / EDUCATION / FUTURE）
   カンプ：ベージュ地 y955〜2816（上下に波）
   ========================================================= */
.charm{
  position:relative;
  background:var(--beige);
  padding:calc(var(--u) * 23) 0 calc(var(--u) * 70);
}
.wave--charm-top{
top:calc(var(--u) * -108);
height:calc(var(--u) * 109);
background-image:url(../img/bg03.png);
background-size:contain;
background-position:top center;
}
.wave--charm-btm{
bottom:calc(var(--u) * -118);
height:calc(var(--u) * 118);
background-image:url(../img/bg10.png);
background-size:contain;
background-position:bottom center;
}

.d-ch1{ top:calc(var(--u) * 390);  left:calc(50% - (var(--u) * 469));  width:239px; aspect-ratio:239/236; background-image:url(../img/bg04.png); }
.d-ch2{ top:calc(var(--u) * 280);  right:calc(var(--u) * 9); width:186px; aspect-ratio:186/186; background-image:url(../img/bg05.png); }
.d-ch3{ top:calc(var(--u) * 1032); left:calc(var(--u) * 49);   width:186px; aspect-ratio:186/185; background-image:url(../img/bg17.png); }
.d-ch4{ top:calc(var(--u) * 1407); right:calc(var(--u) * 59); width:186px; aspect-ratio:186/195; background-image:url(../img/bg08.png); }
.d-ch5{ top:calc(var(--u) * 1722); left:calc(var(--u) * 140);  width:239px; aspect-ratio:239/236; background-image:url(../img/bg09.png); }
.d-ch6{ top:calc(var(--u) * 1085); right:calc(var(--u) * 16); width:239px; aspect-ratio:239/236; background-image:url(../img/bg07.png); }

.charm__item{ position:relative; }
.charm__item--nature{    height:calc(var(--u) * 521); }
.charm__item--education{ height:calc(var(--u) * 530); margin-top:calc(var(--u) * 104); }
.charm__item--future{    height:calc(var(--u) * 526); margin-top:calc(var(--u) * 90); }

/* 英字（白ヌキの大きな装飾文字）：カンプ同様に写真より前面 */
.charm__en{
  position:absolute;
  z-index:2;
  line-height:0;
}
.charm__en img{ width:100%; }
.charm__item--nature    .charm__en{ top:calc(var(--u) * 15); right:0; width:calc(var(--u) * 682); }
.charm__item--education .charm__en{ top:calc(var(--u) * 13); left:0;  width:calc(var(--u) * 1038); }
.charm__item--future    .charm__en{ top:calc(var(--u) * 18); right:0; width:calc(var(--u) * 634); }

/* 写真（ブロブ型・切り抜き済PNG） */
.charm__img{
  position:absolute;
  z-index:1;
  top:0;
  line-height:0;
}
.charm__img img{ width:100%; }
.charm__item--nature    .charm__img{ left:0;  width:calc(var(--u) * 579); }
.charm__item--education .charm__img{ right:0; width:calc(var(--u) * 579); }
.charm__item--future    .charm__img{ left:0;  width:calc(var(--u) * 577); }

/* テキストカラム（幅470px）：英字より前面 */
.charm__body{
  position:absolute;
  z-index:3;
  top:calc(var(--u) * 114);
  width:calc(var(--u) * 480);
}
.charm__item--nature    .charm__body,
.charm__item--future    .charm__body{ left:calc(50% - (var(--u) * 23)); }
.charm__item--education .charm__body{ left:calc(50% - (var(--u) * 440)); }

.charm__catch{
  font-family:var(--font-jp);
  font-weight:700;
  font-size:calc(var(--u) * 32);
  line-height:1;
  letter-spacing:.06em;
  white-space:nowrap;
}
.charm__item--nature    .charm__catch{ color:var(--c-nat); }
.charm__item--education .charm__catch{ color:var(--c-edu); }
.charm__item--future    .charm__catch{ color:var(--c-fut); letter-spacing:.027em; }

.charm__text{
  margin-top:calc(var(--u) * 38);
  font-family:var(--font-txt);
  font-weight:600;
  font-size:calc(var(--u) * 17);
  line-height:calc(var(--u) * 42);
  letter-spacing:.05em;
  color:var(--sumi);
}
/* 字送りはカンプの実測値に合わせてブロックごとに調整 */
.charm__item--nature    .charm__text{ letter-spacing:.097em; }
.charm__item--education .charm__text{ letter-spacing:.014em; }
.charm__btns{ margin-top:calc(var(--u) * 27); line-height:0; }
.charm__item--education .charm__btns{ margin-top:calc(var(--u) * 32); }
.charm__item--future    .charm__btns{ margin-top:calc(var(--u) * 33); }

/* =========================================================
   ④ ACCESS（白地／カンプ y2816〜4592）
   ========================================================= */
.access{ padding:calc(var(--u) * 239) 0 calc(var(--u) * 193); }

.d-ac1{ top:calc(var(--u) * 66);   left:0;   width:283px; aspect-ratio:283/376; background-image:url(../img/bg12.png); }
.d-ac2{ top:calc(var(--u) * 138);  right:calc(var(--u) * 168);  width:195px; aspect-ratio:195/144; background-image:url(../img/bg11.png); }
.d-ac3{ top:calc(var(--u) * 1500); right:calc(var(--u) * 2);  width:191px; aspect-ratio:191/203; background-image:url(../img/bg14.png); }
.d-ac4{ top:calc(var(--u) * 285);  right:0; width:179px; aspect-ratio:179/495; background-image:url(../img/bg13.png); }
.d-ac5{ top:calc(var(--u) * 1384); left:0;   width:389px; aspect-ratio:389/370; background-image:url(../img/bg15.png); }

.access__tit{ text-align:center; line-height:0; }
.access__tit img{ display:inline-block; }

/* 路線図＋2wayアクセス */
.access__route{
  position:relative;
  height:calc(var(--u) * 308);
  margin-top:calc(var(--u) * 85);
}
.access__map img{ width:calc(var(--u) * 523); }
.access__info img{ width:calc(var(--u) * 399); }
.access__map{ position:absolute; top:0;    left:calc(50% - (var(--u) * 513)); line-height:0; }
.access__info{ position:absolute; top:calc(var(--u) * 24); left:calc(50% + (var(--u) * 42)); line-height:0; }

/* 主要駅写真（全幅・3分割） */
.access__photos{
  position:relative;
  z-index:2;
  display:flex;
  margin-top:calc(var(--u) * 58);
  line-height:0;
}
.access__photos img{ width:33.3333%; height:auto; }

/* 所要時間 */
.access__times{
  display:flex;
  justify-content:center;
  gap:calc(var(--u) * 73);
  margin-top:calc(var(--u) * 63);
  line-height:0;
}
.access__note{
  width:calc(var(--u) * 850);
  max-width:94%;
  margin:calc(var(--u) * 38) auto 0;
  font-family:var(--font-txt);
  font-weight:600;
  font-size:calc(var(--u) * 13);
  line-height:calc(var(--u) * 17);
  letter-spacing:0;
  color:var(--sumi);
}

/* =========================================================
   ⑤ LOCATION（ベージュ地／カンプ y4592〜10518）
   ========================================================= */
.loc{
  position:relative;
  background:var(--beige);
  padding:calc(var(--u) * 119) 0 0;
}
.wave--loc-top{
top:calc(var(--u) * -110);
height:calc(var(--u) * 111);
background-image:url(../img/bg18.png);
background-size:contain;
background-position:top center;
}
.wave--loc-btm{
bottom:calc(var(--u) * -102);
height:calc(var(--u) * 102);
background-image:url(../img/bg33.png);
background-size:contain;
background-position:bottom center;
}

/* 円形写真の背面の白帯 */
.band--shop{
top:calc(var(--u) * 1758);
top:29.2%;
height:calc(var(--u) * 173);
background-image:url(../img/bg22.png);
}
.band--edu{
top:calc(var(--u) * 2866);
top:48.55%;
height:calc(var(--u) * 256);
background-image:url(../img/bg25.png);
}
.band--med{
top:calc(var(--u) * 4061);
top:69.4%;
height:calc(var(--u) * 165);
background-image:url(../img/bg29.png);
}
.band--pub{
top:calc(var(--u) * 5291);
top:90.85%;
height:calc(var(--u) * 168);
background-image:url(../img/bg32.png);
}
@media (max-width:1200px){
.band--shop{
background-image:none;
}
.band--edu{
background-image:none;
}
.band--med{
background-image:none;
}
.band--pub{
background-image:none;
}


}


.d-lo1{ top:calc(var(--u) * 37);  left:0;   width:188px; aspect-ratio:188/237; background-image:url(../img/bg16.png); }
.d-lo2{ top:calc(var(--u) * 164); right:calc(var(--u) * 24); width:186px; aspect-ratio:186/186; background-image:url(../img/bg06.png); }
.d-lo3{ top:calc(var(--u) * 888); right:calc(var(--u) * 28); width:187px; aspect-ratio:187/186; background-image:url(../img/bg19.png); }

.loc__tit{ text-align:center; line-height:0; }
.loc__tit img{ display:inline-block; }

/* Googleマップ（全幅） */
.loc__map{
  position:relative;
  z-index:2;
  width:100%;
  margin-top:calc(var(--u) * 69);
  aspect-ratio:1280/545;
  line-height:0;
  background:#e9e6dd;
}
.loc__map iframe{ display:block; width:100%; height:100%; border:0; }

/* カテゴリーナビ */
.loc__nav{
  display:flex;
  justify-content:center;
  margin-top:calc(var(--u) * 65);
}
.loc__nav li{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  height:calc(var(--u) * 119);
  padding:0 calc(var(--u) * 41) calc(var(--u) * 5);
  border-left:calc(var(--u) * 1) solid var(--sumi);
}
.loc__nav li:last-child{ border-right:calc(var(--u) * 1) solid var(--sumi); }
.loc__nav a{ display:block; line-height:0; }

/* ---------- 各カテゴリーブロック ---------- */
.loc__block{ position:relative; }
.loc__block--shop{ margin-top:calc(var(--u) * 115); height:calc(var(--u) * 1041); }
.loc__block--edu{  margin-top:calc(var(--u) * 132); height:calc(var(--u) * 956); }
.loc__block--med{  margin-top:calc(var(--u) * 170); height:calc(var(--u) * 1050); }
.loc__block--pub{  margin-top:calc(var(--u) * 165); height:calc(var(--u) * 1052); }

/* 写真＋見出し＋リード */
.loc__hero{ position:relative; }
.loc__block--shop .loc__hero{ height:calc(var(--u) * 482); }
.loc__block--edu  .loc__hero{ height:calc(var(--u) * 501); }
.loc__block--med  .loc__hero{ height:calc(var(--u) * 486); }
.loc__block--pub  .loc__hero{ height:calc(var(--u) * 501); }

.loc__photo{ position:absolute; z-index:1; line-height:0; }
.loc__photo img{ width:100%; }
.loc__block--shop .loc__photo{ top:calc(var(--u) * -4); right:0; width:calc(var(--u) * 671); }
.loc__block--edu  .loc__photo{ top:0;   left:0;  width:calc(var(--u) * 672); }
.loc__block--med  .loc__photo{ top:0;   right:0; width:calc(var(--u) * 671); }
.loc__block--pub  .loc__photo{ top:0;   left:0;  width:calc(var(--u) * 672); }

.loc__label,
.loc__en,
.loc__text{ position:absolute; z-index:2; }

.loc__label{
  font-family:var(--font-txt);
  font-weight:600;
  font-size:calc(var(--u) * 18);
  line-height:1;
  letter-spacing:.08em;
  color:var(--sumi);
}
.loc__en{ line-height:0; }
.loc__block--shop .loc__en img{ width:calc(var(--u) * 421); }
.loc__block--edu  .loc__en img{ width:calc(var(--u) * 632); }
.loc__block--med  .loc__en img{ width:calc(var(--u) * 757); }
.loc__block--pub  .loc__en img{ width:calc(var(--u) * 728); }
.loc__text{
  width:calc(var(--u) * 400);
  font-family:var(--font-txt);
  font-weight:600;
  font-size:calc(var(--u) * 16);
  line-height:calc(var(--u) * 42);
  letter-spacing:0;
  color:var(--sumi);
}
/* 買物施設（左組み） */
.loc__block--shop .loc__label{ top:calc(var(--u) * 44);  left:calc(50% - (var(--u) * 440)); }
.loc__block--shop .loc__en{    top:calc(var(--u) * 90);  left:calc(50% - (var(--u) * 439)); }
.loc__block--shop .loc__text{  top:calc(var(--u) * 196); left:calc(50% - (var(--u) * 440)); }
/* 教育施設（右組み） */
.loc__block--edu .loc__label{ top:calc(var(--u) * 51);  right:calc(50% - (var(--u) * 437)); }
.loc__block--edu .loc__en{    top:calc(var(--u) * 80);  left:calc(50% - (var(--u) * 175)); }
.loc__block--edu .loc__text{  top:calc(var(--u) * 203); left:calc(50% + (var(--u) * 73)); letter-spacing:.046em; }
/* 医療機関・金融機関（左組み） */
.loc__block--med .loc__label{ top:calc(var(--u) * 48);  left:calc(50% - (var(--u) * 440)); }
.loc__block--med .loc__en{    top:calc(var(--u) * 77);  left:calc(50% - (var(--u) * 458)); }
.loc__block--med .loc__text{  top:calc(var(--u) * 200); left:calc(50% - (var(--u) * 440)); letter-spacing:.038em; }
/* 公共機関・その他（右組み） */
.loc__block--pub .loc__label{ top:calc(var(--u) * 50);  right:calc(50% - (var(--u) * 433)); }
.loc__block--pub .loc__en{    top:calc(var(--u) * 80);  left:calc(50% - (var(--u) * 271)); }
.loc__block--pub .loc__text{  top:calc(var(--u) * 198); left:calc(50% + (var(--u) * 73)); letter-spacing:.04em; }

/* ヒーロー内のイラスト装飾 */
.d-sh2{ top:calc(var(--u) * 307); left:calc(50% - (var(--u) * 504)); width:434px; aspect-ratio:434/193; background-image:url(../img/bg21.png); }
.d-ed2{ top:calc(var(--u) * 279); left:calc(50% + (var(--u) * 7)); width:442px; aspect-ratio:442/161; background-image:url(../img/bg24.png); }
.d-me2{ top:calc(var(--u) * 297); left:calc(50% - (var(--u) * 464)); width:400px; aspect-ratio:400/187; background-image:url(../img/bg28.png); }
.d-pu2{ top:calc(var(--u) * 326); left:calc(50% + (var(--u) * 56)); width:472px; aspect-ratio:472/158; background-image:url(../img/bg31.png); }
/* ブロック脇のドット装飾 */
.d-sh1{ top:calc(var(--u) * 75);  left:calc(var(--u) * 36);   width:239px; aspect-ratio:239/236; background-image:url(../img/bg20.png); }
.d-ed1{ top:calc(var(--u) * 76);  right:calc(var(--u) * 21); width:239px; aspect-ratio:239/236; background-image:url(../img/bg23.png); }
.d-me1{ top:calc(var(--u) * 67);  left:calc(var(--u) * 39);   width:239px; aspect-ratio:239/237; background-image:url(../img/bg27.png); }
.d-pu1{ top:calc(var(--u) * 112); right:calc(var(--u) * 22); width:239px; aspect-ratio:239/224; background-image:url(../img/bg30.png); }

/* 円形写真（3カラム／ピッチ268px・中央寄せ） */
.loc__items{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3,calc(var(--u) * 268));
  justify-content:center;
  justify-items:center;
  align-items:start;
  line-height:0;
}
.loc__items img{ max-width:none; }

/* 施設リスト（上下に破線） */
.loc__lists{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding-top:calc(var(--u) * 36);
  padding-bottom:calc(var(--u) * 36);
  line-height:0;
}
.loc__lists::before,
.loc__lists::after{
  content:'';
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:calc(var(--u) * 812);
  max-width:100%;
  height:calc(var(--u) * 4);
  background:url(../img/bg26.png) no-repeat center/100% 100%;
}
.loc__lists picture{ display:block; line-height:0; }
.loc__lists::before{ top:0; }
.loc__lists::after{ bottom:0; }

.loc__block--shop .loc__items{ margin-top:0; }
.loc__block--shop .loc__lists{
margin-top:calc(var(--u) * 69);
/*height:calc(var(--u) * 191);*/
gap:calc(var(--u) * 47);
}
.loc__block--edu .loc__lists{
margin-top:calc(var(--u) * 69);
/*height:calc(var(--u) * 87);*/
gap:calc(var(--u) * 118);
}
.loc__block--med .loc__lists{
margin-top:calc(var(--u) * 74);
/*height:calc(var(--u) * 191);*/
gap:calc(var(--u) * 63);
}
.loc__block--pub .loc__lists{
margin-top:calc(var(--u) * 51);
/*height:calc(var(--u) * 136);*/
gap:calc(var(--u) * 59);
}

.loc__note{
  position:relative;
  z-index:2;
  margin-top:calc(var(--u) * 34);
  text-align:center;
  line-height:0;
}
.loc__note img{ display:inline-block; }

/* =========================================================
   ⑥ ページアップ
   ========================================================= */
.pageup{
  position:relative;
  background:#fff;
  padding:calc(var(--u) * 213) 0 calc(var(--u) * 103);
  text-align:center;
  line-height:0;
}
.pageup a{ display:inline-block; transition:transform .2s; }
.pageup a:hover{ transform:translateY(calc(var(--u) * -4)); }
.pageup img{ width:calc(var(--u) * 121); margin:0 auto; }

/* ---------- フッター（カンプ準拠の微調整） ---------- */
.footer__addr{ line-height:1.25; }
.footer__copy{ color:#497889; }
.nb{ white-space:nowrap; }
/* カンプの改行を再現するための br（SPでは解除） */
br.pc{ display:inline; }

/* =========================================================
   スマートフォン（〜768px）
   ・PCの絶対配置を解除し、縦積みのフロー組みへ
   ・横幅は % / vw を基本とする
   ========================================================= */
@media (max-width:768px){

  /* ---- ベース ---- */
  .page{ margin-top:0; }
  .inner{ width:100%; }
  .loc__block{ scroll-margin-top:74px; }
  br.pc{ display:none; }
  /* 背景装飾・白帯はカンプSP同様に非表示 */
  .deco{ display:none; }
  .band{ display:none; }

  /* ---- ① MV ---- */
  .sub-mv__tit{
    top:53.3%;
    width:46.4%;   /* カンプSP：幅297/640 */
    max-width:421px;
  }

  /* ---- ② リード ---- */
  /* カンプSP（幅640）比率：MV下68px → 見出し / 本文下148px → ベージュ */
  .intro{ padding:10.6vw 0 23vw; }
  .intro__tit img{ width:85.5%; }
  .intro__text{
    margin-top:6.5vw;
    padding:0 6%;
    font-size:15px;
    line-height:2.4;
    letter-spacing:.08em;
    text-indent:.08em;
  }

  /* ---- ③ 3つの魅力 ---- */
  .charm{ padding:11.4vw 0 9vw; }
  .wave--charm-top{ top:-8.5vw; }
  .wave--charm-btm{ bottom:-9.2vw; }

  .charm__item,
  .charm__item--nature,
  .charm__item--education,
  .charm__item--future{ height:auto; padding-top:1.7vw; }
  .charm__item--education,
  .charm__item--future{ margin-top:25.5vw; }

  /* 英字装飾：写真の背面に全幅で敷く */
  .charm__en,
  .charm__item--nature .charm__en,
  .charm__item--education .charm__en,
  .charm__item--future .charm__en{
    position:absolute;
    top:0;
    left:-6%;
    right:auto;
    width:112%;
    max-width:none;
  }
  .charm__en img{ width:100%; }

  /* 写真：全幅 */
  .charm__img,
  .charm__item--nature .charm__img,
  .charm__item--education .charm__img,
  .charm__item--future .charm__img{
    position:relative;
    top:auto; left:auto; right:auto;
    width:100%;
  }
  .charm__img img{ width:100%; }

  .charm__body,
  .charm__item--nature .charm__body,
  .charm__item--education .charm__body,
  .charm__item--future .charm__body{
    position:static;
    top:auto; left:auto;
    width:100%;
    padding:0 6.25%;
    margin-top:20vw;
  }
  .charm__catch,
  .charm__item--future .charm__catch{
    padding-left:6%;
    font-size:min(5.2vw,33px);
    letter-spacing:.03em;
  }
  .charm__text,
  .charm__item--nature .charm__text,
  .charm__item--education .charm__text{
    padding-left:6%;
    margin-top:6.4vw;
    font-size:15px;
    line-height:2.4;
    letter-spacing:.06em;
  }
  .charm__btns,
  .charm__item--education .charm__btns,
  .charm__item--future .charm__btns{
    margin-top:9vw;
    text-align:center;
  }
  .charm__btns img{ width:100%; }

  /* ---- ④ ACCESS ---- */
  .access{ padding:14vw 0 12vw; }

  .access__tit img{ width:88%; }

  .access__route{
    position:static;
    height:auto;
    margin-top:8vw;
    padding:0 5%;
  }
  .access__map,
  .access__info{ position:static; top:auto; left:auto; }
  .access__map img{ width:100%; }
  .access__info{ margin-top:5vw; }
  .access__info img{ width:100%; }

  .access__photos{ margin-top:8vw; }

  .access__times{
    flex-direction:column;
    align-items:center;
    gap:5vw;
    margin-top:8vw;
    padding:0 11%;
  }
  /* 2点は元画像の縦寸が同じ（249px）ため、幅比を保つと文字サイズが揃う */
  .access__times img{ width:100%; max-width:419px; }
  /*.access__times img:first-child{ width:85.4%; max-width:358px; }*/

  .access__note{
    width:auto;
    max-width:none;
    margin-top:6vw;
    padding:0 6%;
    font-size:11px;
    line-height:1.8;
  }

  /* ---- ⑤ LOCATION ---- */
  .loc{ padding:12vw 0 10vw; }
  .wave--loc-top{ top:-8.7vw; }
  .wave--loc-btm{ bottom:-8vw; }
  .loc__tit img{ width:90%; }

  .loc__map{ margin-top:7vw; aspect-ratio:4/3; }

  /* カテゴリーナビ：2列×2段 */
  .loc__nav{ flex-wrap:wrap; margin-top:8vw; }
  .loc__nav li{
    width:50%;
    height:auto;
    padding:18px 4%;
    border-left:0;
    border-bottom:1px dotted var(--sumi);
  }
  .loc__nav li:nth-child(odd){ border-right:1px dotted var(--sumi); }
  .loc__nav li:last-child{ border-right:0; }
  .loc__nav li:nth-child(-n+2){ border-top:1px dotted var(--sumi); }
  .loc__nav img{ max-height:60px; width:auto; }

  /* ブロック：縦積み */
  .loc__block,
  .loc__block--shop,
  .loc__block--edu,
  .loc__block--med,
  .loc__block--pub{ height:auto; margin-top:16vw; }

  /* SPは「ラベル → 英字 → 写真 → リード」の自然な縦積み（HTMLの記述順） */
  .loc__hero,
  .loc__block--shop .loc__hero,
  .loc__block--edu  .loc__hero,
  .loc__block--med  .loc__hero,
  .loc__block--pub  .loc__hero{ height:auto; }

  .loc__label,
  .loc__en,
  .loc__text,
  .loc__block--shop .loc__label,.loc__block--shop .loc__en,.loc__block--shop .loc__text,
  .loc__block--edu  .loc__label,.loc__block--edu  .loc__en,.loc__block--edu  .loc__text,
  .loc__block--med  .loc__label,.loc__block--med  .loc__en,.loc__block--med  .loc__text,
  .loc__block--pub  .loc__label,.loc__block--pub  .loc__en,.loc__block--pub  .loc__text{
    position:static;
    top:auto; left:auto; right:auto;
    width:auto;
    letter-spacing:.04em;
  }
  .loc__label{ padding:0 6%; font-size:14px; }
  .loc__en{ margin-top:2vw; padding:0 6%; }
  /* 各英字の字面高さが揃うように個別に調整 */
  .loc__en img{ width:82%; max-width:none; }
  .loc__block--shop .loc__en img{ width:76%; }
  .loc__block--edu  .loc__en img{ width:82%; }
  .loc__block--med  .loc__en img{ width:99%; }
  .loc__block--pub  .loc__en img{ width:95%; }
  .loc__photo,
  .loc__block--shop .loc__photo,
  .loc__block--edu  .loc__photo,
  .loc__block--med  .loc__photo,
  .loc__block--pub  .loc__photo{
    position:static;
    top:auto; left:auto; right:auto;
    width:100%;
    margin-top:5vw;
  }
  .loc__photo img{ width:100%; }
  .loc__text{
    margin-top:6vw;
    padding:0 6%;
    font-size:15px;
    line-height:2.2;
  }

  /* 円形写真：2列（3件目は中央） */
  .loc__items{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6vw 4%;
    margin-top:9vw;
    padding:0 4%;
  }
  .loc__items img{ width:46%; max-width:229px; }

  /* 施設リスト */
  .loc__lists,
  .loc__block--shop .loc__lists,
  .loc__block--edu  .loc__lists,
  .loc__block--med  .loc__lists,
  .loc__block--pub  .loc__lists{
    flex-direction:column;
    align-items:center;
    height:auto;
    gap:14px;
    margin-top:9vw;
    padding:24px 6%;
  }
  .loc__lists img{ width:100%; max-width:413px; }
  .loc__lists::before,
  .loc__lists::after{ width:88%; }

  .loc__note{ margin-top:5vw; padding:0 6%; }
  .loc__note img{ width:100%; max-width:583px; }

  /* ---- ⑥ ページアップ ---- */
  .pageup{ padding:16vw 0 10vw; }
  .pageup img{ width:88px; }
}
