/* ======================================
   サイト全体：明朝体ベース（本文含む）
   ====================================== */
/* 全体フォントを明朝に上書き */
html, body{
	font-family:
		YakuHanJP,
		"Noto Serif JP",
		"Yu Mincho",
		"Hiragino Mincho ProN",
		serif;
}
/* 明朝に合わせて字間を調整（超重要） */
html{
	letter-spacing: 0.08em;   /* 0.17em → 明朝では広すぎるため調整 */
}

/* =====================================================
   線
   ===================================================== */
.kagetsu-divider{
  border: none;
  height: 1px;
  background: rgba(255,255,255,0.2);
  margin: 2rem auto 0;
  max-width: 240px;
}

/* =====================================================
   TOP画像
   ===================================================== */
.hero__swiper .swiper-slide .hero__img{
  transform: scale(1.1);
  will-change: transform;
}
@keyframes heroZoomUp {
  0%   { transform: scale(1); }
  100% { transform: scale(1.1); }
}
.hero__swiper .swiper-slide-active .hero__img{
  animation: heroZoomUp 7s linear both;
}

.hero{
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  background: #000;
}

/* Swiper */
.hero__swiper{
  position: absolute;
  inset: 0;
}

.hero__img{
  width: 100%;
  height: 100vh;
  object-fit: cover;
  display: block;
}

/* overlay */
.hero__overlay{
  position: absolute;
  inset: 0;
  z-index: 2;
  background: rgba(0,0,0,.25); /* 必要なら調整 */
}

/* text & logo */
.hero__content{
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  display: grid;
  place-items: center;
  text-align: center;
}

.hero__title{
  margin: 0;
  display: flex;
  flex-direction: row-reverse;
  gap: .35em;
  align-items: flex-start;
  justify-content: center;
}
.hero__titleLine{
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: .18em;
  line-height: 1.2;
  color: rgba(255,255,255,.92);
  font-size: 23px;
  text-shadow:
    0 0 6px rgba(255,255,255,.25),
    0 0 14px rgba(255,255,255,.15),
    0 2px 10px rgba(0,0,0,.25);
}

.hero__logo{
  position: absolute;
  left: 50%;
  bottom: 12%;
  transform: translateX(-50%);
  opacity: .95;
}

.hero__logo img{
  height: 185px;
  width: auto;
  display: block;
}

@media (max-width: 768px){
  .hero__title{ font-size: 22px; }
  .hero__logo img{ height: 120px; }
  .hero__titleLine{ font-size: 20px; }	
}

/* =====================================================
   Kagetsu Intro Section
   ===================================================== */
#kagetsu-intro {
  padding: 9rem 6%;
}
.kagetsu-intro-inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.kagetsu-intro-title {
  margin-bottom: 3.2rem;
  font-size: 1.8rem;
  letter-spacing: 0.12em;
}
.kagetsu-intro-text {
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.1em;
}
.kagetsu-intro-text + .kagetsu-intro-text {
  margin-top: 1.8rem;
}

/* ---------- SP調整 ---------- */
@media (max-width: 768px) {
  #kagetsu-intro {
    padding: 6.5rem 6%;
  }
  .kagetsu-intro-title {
    font-size: 1.6rem;
    margin-bottom: 2.4rem;
  }
  .kagetsu-intro-text {
    font-size: 1.4rem;
    line-height: 1.9;
    letter-spacing: 0.12em;
  }
}

/* ==========================
   お部屋・サウナ　テキスト
   ========================== */
.kagetsu-rooms-text {
  font-size: 1.6rem;
  margin: 0 0 2rem 0;
  text-align: center;
}
.kagetsu-rooms-text2 {
  margin: 6rem 0 0 0;
  font-size: 1.2rem;
  text-align: center;
  color: rgba(255,255,255,0.50);
}

/* ==========================
   施設概要（左：項目 / 右：詳細）
   ========================== */
.spec-list{
	list-style:none;
	margin: 0 auto;              /* 中央寄せ */
	padding: 0;
	max-width: 1080px;            /* 画面いっぱいを防ぐ */
	padding-left: 18px;          /* 左右余白 */
	padding-right: 18px;         /* 左右余白 */
}
.spec-item{
	display:flex;
	gap: 22px;
	padding: 18px 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.5); /* 薄い下線 */
}
.spec-key{
	width: 180px;
	flex: 0 0 180px;
	font-weight: 600;
	line-height: 1.6;
	font-size: 1.1em; /* ← ここを追加（詳細より少し大きく） */
}
.spec-val{
	flex: 1 1 auto;
	line-height: 1.8;
}
/* もしテーマ側でp等の余白が強い場合の保険 */
.spec-val p{
  margin: 0;
}
/* スマホ：上下に並べる */
@media (max-width: 768px){
.spec-list{
	max-width: 100%;
	padding-left: 14px;
	padding-right: 14px;
	}
.spec-item{
	flex-direction: column;
	gap: 6px;
	}
.spec-key{
	width: auto;
	flex: none;
	}
}

/* ======================================
   【間取り】
   ====================================== */
.floorplan{
  margin: 0 auto;
  max-width: 1100px;
  padding: 0 18px;
}
.floorplan img{
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
}

/* ==========================
   【3枚画像】
   PC：左大1 + 右上下2（既存）
========================== */
.photo-3grid{
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 18px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 18px;
}
.photo-3grid figure{
  margin: 0;
}
.photo-3grid img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.photo-3grid__side{
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 18px;
}
/* ==========================
   スマホ：上に大1、下に小2を横並び
========================== */
@media (max-width: 768px){
  .photo-3grid{
    grid-template-columns: 1fr; /* 縦構成 */
  }
  .photo-3grid__main{
    aspect-ratio: 8.5 / 4;
  }
  .photo-3grid__side{
    grid-template-rows: none;
    grid-template-columns: 1fr 1fr; /* ← 横並び */
    gap: 12px;
  }
  .photo-3grid__side figure{
    aspect-ratio: 8.5 / 4; /* 少しコンパクトに */
  }
}

/* =========================================================
   【Photo Gallery】
   - PC: ギャラリーは中央パネル
   - SP: ギャラリーは全画面 + 右からスライド
   - Lightbox: PC/SPとも安定表示（track方式で横スライド）
   ※ HTML: #pgModal / #lb / #lbTrack / #lbImgA / #lbImgB 前提
   ※ JS: .is-open / .is-animating を付け外しする前提
========================================================= */
/* =========================================================
   Gallery Modal（PC既定）
========================================================= */
.pg-modal{
  position: fixed;
  inset: 0;
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, visibility .25s ease;
}
.pg-modal.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.pg-modal__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.65);
}
.pg-modal__panel{
  position: absolute;
  inset: 24px;
  background: #fff;
  color: #111;
  border-radius: 14px;
  overflow: auto;
  padding: 18px;
  -webkit-overflow-scrolling: touch;
  transform: none;
}
.pg-modal__close{
  position: sticky;
  top: 10px;
  left: 10px;
  display: inline-flex;
  align-items: center;
  gap: .6em;
  border: none;
  background: #fff !important;
  cursor: pointer;
  font-size: 14px;
  font-weight: bold;
  opacity: .9;
  padding: 6px 8px;
  z-index: 2;
}
.pg-menu{
  display: flex;
  gap: 14px;
  overflow: auto;
  padding: 10px 4px 14px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  -webkit-overflow-scrolling: touch;
}
.pg-menu__item{
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  padding: 0;
  min-width: 120px;
}
.pg-menu__item img{
  width: 150px;
  height: 100px;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}
.pg-menu__item span{
  display: block;
  margin-top: 6px;
  font-size: 14px;
}
.pg-section{
  padding: 18px 0;
}
.pg-section__title{
  margin: 0 0 14px;
  padding: 0 0 0 2px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .06em;
}
.pg-grid{
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.pg-photo{
  display: block;
  overflow: hidden;
  border-radius: 10px;
  background: #000;
}
.pg-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pg-grid .pg-photo:first-child{
  grid-column: 1 / -1;
  aspect-ratio: 3 / 2;
}
.pg-grid .pg-photo:nth-child(2),
.pg-grid .pg-photo:nth-child(3){
  aspect-ratio: 4 / 3;
}
.pg-grid .pg-photo:nth-child(n+4){
  aspect-ratio: 4 / 3;
}

/* =========================================================
   Lightbox（PC/SP共通・track方式）
========================================================= */
.lb{
  position: fixed;
  inset: 0;
  z-index: 11000;
  background: #000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, visibility .25s ease;
  overflow: hidden; /* trackがはみ出さない */
}
.lb.is-open{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.lb__overlay{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.88);
}
.lb__ui{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
}
.lb__close{
  pointer-events: auto;
  position: absolute;
  top: 16px;
  left: 16px;
  border: none;
  background: transparent;
  color: #fff;
  font-size: 14px;
  opacity: .95;
  cursor: pointer;
}
.lb__counter{
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 14px;
  opacity: .95;
}
.lb__nav{
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.7);
  background: rgba(0,0,0,.35);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 22px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  z-index: 6;
}
.lb__nav--prev{ left: 16px; }
.lb__nav--next{ right: 16px; }
.lb__stage{
  position: absolute;
  inset: 64px 90px 24px;
  overflow: hidden;
  z-index: 1;
  display: block;
}
.lb__track{
  width: 300%;
  height: 100%;
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
  transform: translateX(-33.3333%);
}
.lb__slide{
  /* ★flex item として幅を固定（縮み防止） */
  flex: 0 0 33.3333%;
  width: 33.3333%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lb__slide img{
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.lb.is-animating .lb__track{
  transition: transform .30s ease;
}

/* =========================================================
   SP only（max-width: 768px）
   - ギャラリー：全画面 + 右からスライド
========================================================= */
@media (max-width: 768px){
  .pg-modal{
    background: rgba(0,0,0,.35);
  }
  .pg-modal__panel{
    inset: 0;
    border-radius: 0;
    padding: 0;
    transform: translateX(100%);
    transition: transform .35s ease;
  }
  .pg-modal.is-open .pg-modal__panel{
    transform: translateX(0);
  }
  .pg-modal__close{
    margin: 10px 0 0 10px;
  }
  .pg-sections{
    padding: 0 !important;
  }
  .pg-section{
    padding: 0 !important;
    margin: 0 0 22px !important;
  }
  .pg-section__title{
    padding: 18px 16px 12px !important;
    margin: 0 !important;
    font-size: 21px;
  }
  .pg-grid{
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    padding: 0 !important;
  }
  .pg-grid .pg-photo:nth-child(3n+1){
    grid-column: 1 / -1 !important;
  }
  .pg-photo{
    border-radius: 0;
  }
  .pg-grid .pg-photo:nth-child(3n+1){
    aspect-ratio: 4 / 3;
  }
  .pg-grid .pg-photo:not(:nth-child(3n+1)){
    aspect-ratio: 16 / 9;
  }
  .lb{
    transform: translateX(100%);
    transition: transform .35s ease, opacity .25s ease, visibility .25s ease;
  }
  .lb.is-open{
    transform: translateX(0);
  }
  .lb__stage{
    inset: 64px 0 88px !important;
    padding: 0 !important;
  }
  .lb__stage{
    overflow: hidden;
  }
  .lb__slide img{
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    max-height: 100% !important;
    object-fit: contain;
  }
  .lb__nav{
    border: none !important;
    background: transparent !important;
    width: auto !important;
    height: auto !important;
    padding: 8px 12px !important;
    top: 120px !important;
    transform: none !important;
    z-index: 7;
  }
  .lb__nav--prev{ left: 70px !important; }
  .lb__nav--next{ right: 70px !important; }
}

/* ===== Top: Flowing Photo Gallery（PC幅制限 + SP安定版） ===== */
.hero-gallery{
  display:block;
  text-decoration:none;
  color:inherit;
}
.hero-gallery__viewport{
  overflow:hidden;
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 0 18px;
  box-sizing: border-box;
}
.hero-gallery__track{
  display:flex;
  gap: 14px;
  width: max-content;
  will-change: transform;
  animation: hg-marquee 26s linear infinite;
  animation-duration: 50s; /* ← 今より長く */
}
@keyframes hg-marquee{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ========== ブロック（3枚構成） ========== */
.hg-block{
  width: 420px;
  height: 520px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  flex: 0 0 auto;
  box-sizing: border-box;
}
.hg-img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  border-radius: 10px;
}
/* Block A：上が大（横2列）／下が小2枚 */
.hg-block--a .hg-img--big{
  grid-column: 1 / -1;
  grid-row: 1;
}
.hg-block--a .hg-img--small:nth-of-type(2){ /* small 1 */
  grid-column: 1;
  grid-row: 2;
}
.hg-block--a .hg-img--small:nth-of-type(3){ /* small 2 */
  grid-column: 2;
  grid-row: 2;
}
/* Block B：上が小2枚／下が大（横2列） */
.hg-block--b .hg-img--small:nth-of-type(1){ /* small 1 */
  grid-column: 1;
  grid-row: 1;
}
.hg-block--b .hg-img--small:nth-of-type(2){ /* small 2 */
  grid-column: 2;
  grid-row: 1;
}
.hg-block--b .hg-img--big{
  grid-column: 1 / -1;
  grid-row: 2;
}

/* ========== SP（スマホ）崩れ対策 ========== */
@media (max-width: 768px){
  .hero-gallery__viewport{
    width: 100%;
    padding: 0 14px;
  }
  .hero-gallery__track{
    gap: 10px;
    animation-duration: 65s;
  }
  .hg-block{
    width: 78vw;
    height: 96vw;
    max-width: 360px;
    max-height: 445px;
    gap: 8px;
  }
  .hg-img{
    border-radius: 8px;
  }
}
@media (prefers-reduced-motion: reduce){
  .hero-gallery__track{ animation: none; }
}

/* =====================================
   フォトギャラリー：操作フィードバック
   ===================================== */
.hero-gallery .hg-img{
  transition:
    transform 0.35s ease,
    filter 0.35s ease;
  will-change: transform, filter;
}

/* =====================
   PC：hover 表現
===================== */
@media (hover: hover) and (pointer: fine){
  .hero-gallery:hover .hg-img{
    filter: brightness(0.96);
  }
  .hero-gallery .hg-img:hover{
    filter: brightness(1.05);
    transform: scale(1.03);
    z-index: 2;
  }
}

/* =====================
   スマホ：タップ時フィードバック
===================== */
@media (hover: none) and (pointer: coarse){
  .hero-gallery .hg-img:active{
    filter: brightness(0.94);
    transform: scale(0.97);
  }
}
.hero-gallery{
  -webkit-tap-highlight-color: transparent;
}

/* =========================
   【FAQ Page】
========================= */
.faq-page{
  background:#fff;
  color:#111;
  padding-bottom: calc(96px + env(safe-area-inset-bottom));
}

.faq-hero{
  padding: 98px 18px 24px;
  text-align: center;
}
.faq-title{
  margin: 0;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: .12em;
}

.faq{
  max-width: 980px;
  margin: 0 auto;
  padding: 0 18px;
}

/* =========================
   Category
========================= */

/* カテゴリーの「下線」はここでは持たない（QA側の下線と干渉するため） */
.faq-category{
  border-bottom: 1px solid rgba(0,0,0,.12);
  margin-bottom: 6px;
}
/* カテゴリが開いている間だけ、カテゴリの下線を消す（＝二重防止） */
.faq-category.is-open{
  border-bottom-color: transparent;
}
/* 見出し */
.faq-category__head{
  position: relative;
  width: 100%;
  text-align: left;
  background: none;
  border: none;

  /* 左右余白（背景も含めて余白ができる） */
  padding: 22px 38px;

  font-size: 20px;
  font-weight: 600;
  cursor: pointer;

  display: flex;
  justify-content: space-between;
  align-items: center;

  -webkit-tap-highlight-color: transparent;
}

/* 斜めカット背景（開いた時だけ表示） */
.faq-category__head::before{
  content: "";
  position: absolute;
  inset: 6px 10px;                  /* 背景の内側余白 */
  background: rgba(0,0,0,.04);

  /* 斜めカット */
  clip-path: polygon(
    10px 0%,
    100% 0%,
    calc(100% - 10px) 100%,
    0% 100%
  );


  opacity: 0;
  transition: opacity .28s ease;
  z-index: 0;                       /* 背景は0 */
}

/* 文字・＋−は背景より前 */
.faq-category__head > *{
  position: relative;
  z-index: 1;
}

.faq-category.is-open > .faq-category__head::before{
  opacity: 1;
}

/* ＋／− */
.faq-category__head::after{
  content: "＋";
  position: relative;
  z-index: 1;
  line-height: 1;
  transition: transform .35s ease;
}
.faq-category.is-open .faq-category__head::after{
  content: "−";
}

/* 開閉（あなたのgrid方式を維持） */
.faq-category__body{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .5s cubic-bezier(.4,0,.2,1);
}
.faq-category__inner{
  overflow: hidden;
}
.faq-category.is-open .faq-category__body{
  grid-template-rows: 1fr;
}

/* =========================
   Q&A underline rules
   - 閉：Qの下に下線
   - 開：Aの下だけに下線（Qの下線は消す）
   - カテゴリー境界と被らない
========================= */

/* 各QAのコンテナ（境界管理用） */
.faq-item{
  position: relative;
}

/* Q（閉じている時はここに下線） */
.faq-q{
  width: 100%;
  background: none;
  border: none;

  /* 右矢印がはみ出ないように余白を確保 */
  padding: 18px 38px 18px;

  text-align: left;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;

  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;

  -webkit-tap-highlight-color: transparent;

  /* ▼閉じてる時の下線 */
  border-bottom: 1px solid rgba(0,0,0,.10);
}

/* 開いたらQの下線は消す（Aの下にだけ出すため） */
.faq-item.is-open .faq-q{
  border-bottom-color: transparent;
}

/* 右の矢印 */
.faq-q::after{
  content: "›";
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 1.2em;
  line-height: 1;

  transform: rotate(90deg);
  transition: transform .35s ease;
}
.faq-item.is-open .faq-q::after{
  transform: rotate(-90deg);
}

/* A（開いた時だけ下線をAの下に出す） */
.faq-a{
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  padding: 0px 45px 0px;
  transition:
  grid-template-rows .45s cubic-bezier(.4,0,.2,1),
  opacity .25s ease;
  color: rgba(17,17,17,.85);
}

/* 中身をクリップ */
.faq-a > *{
  overflow: hidden;
}

/* 開いた時 */
.faq-item.is-open .faq-a{
  grid-template-rows: 1fr;
  opacity: 1;

  /* ▼開いた時の下線はAの下だけ */
  border-bottom: 1px solid rgba(0,0,0,.10);
}

.faq-a p{
  margin: 0;
  padding: 0 0 18px 14px;
  position: relative;
  font-size: 16px;
  line-height: 1.9;
}

/* =========================
   SP（スマホ）最適化
========================= */
@media (max-width: 768px){

  .faq-hero{
    padding: 68px 16px 18px;
  }

  .faq-title{
    font-size: 24px;
    letter-spacing: .10em;
  }

  .faq{
    padding: 0 16px;
  }

  /* スマホでも左右に余白ができるように（0 にしない） */
  .faq-category__head{
    padding: 18px 20px;
    font-size: 17px;
  }
  .faq-category__head::before{
    inset: 6px 10px; /* 背景自体も左右に少し逃がす */
    /* 斜めのサイズも少しだけ分かりやすく */
    clip-path: polygon(
      10px 0%,
      100% 0%,
      calc(100% - 10px) 100%,
      0% 100%
    );
  }

  /* ＋／− が端に寄りすぎる場合の微調整 */
  .faq-category__head::after{
    margin-left: 12px;
  }

  .faq-q{
    padding: 16px 10px; /* 右矢印の分を少し確保 */
    font-size: 15px;
  }

  .faq-a p{
    padding-bottom: 16px;
    font-size: 15px;
	line-height: 1.9;
  }

  .faq-page{
    padding-bottom: calc(112px + env(safe-area-inset-bottom));
  }
}

/* ===== FAQ 検索 ===== */
.faq-search{
  position: relative;
  max-width: 980px;
  margin: 0 auto 18px;
  padding: 0 18px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}
.faq-search__label{
  grid-column: 1 / -1;
  font-size: 12px;
  letter-spacing: .10em;
  color: rgba(0,0,0,.65);
}
.faq-search__input{
  width: 100%;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 999px;
  padding: 12px 16px;
  font-size: 16px;
  outline: none;
}
.faq-search__input:focus{
  border-color: rgba(0,0,0,.35);
}
.faq-search__clear{
  border: 1px solid rgba(0,0,0,.18);
  background: #fff;
  border-radius: 999px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}

@media (max-width: 768px){
  .faq-search{ padding: 0 16px; }
}
/* ===== FAQ カテゴリ見出し：アイコン ===== */
.faq-category__label{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0; /* 長文で崩れない */
}

.faq-category__icon{
  width: 25px;
  height: 25px;
  flex: 0 0 20px;
  display: block;
}

/* テキストが長い時の折返し */
.faq-category__text{
  display: inline-block;
  min-width: 0;
}

/* スマホだけ少し小さく */
@media (max-width: 768px){
  .faq-category__icon{
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }
}

/* =====================================================
   Access
   ===================================================== */

.kagetsu-access{
  padding: 10rem 0;
}

.kagetsu-access__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

/* 画像領域（1100px幅いっぱい） */
.kagetsu-access__media{
  position: relative;
  width: 100%;
}

.kagetsu-access__image img{
  display: block;
  width: 100%;
  height: auto;
}

/* 左テキストカード（半透明黒） */
.kagetsu-access__card{
  position: absolute;
  left: 28px;
  top: 28px;
  width: min(380px, calc(100% - 56px));
  padding: 28px 26px;
  background: rgba(0,0,0,.45);
  box-shadow:
    0 0 24px rgba(0,0,0,.35),
    0 8px 32px rgba(0,0,0,.25);
  border-radius: 4px;
  backdrop-filter: blur(2px);
  color: rgba(255,255,255,.92);
}

/* タイポ */
.kagetsu-access__subtitle{
  margin-top: 2.2rem;
  margin-bottom: 0.8rem;
  line-height: 1.2;
  letter-spacing: .08em;
}
.kagetsu-access__subtitle:first-of-type{
  font-size: 1.45rem;
  letter-spacing: .12em;
}

.kagetsu-access__subtitle:first-child{
  margin-top: 0;
}

.kagetsu-access__text{
  font-size: 1.3rem;
  line-height: 2;
  letter-spacing: .08em;
  color: rgba(255,255,255,.86);
}

.kagetsu-access__link{
  color: rgba(255,255,255,.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.kagetsu-access__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 44px;
  margin-top: 2.2rem;
  padding: 0 18px;
  border: 1px solid rgba(255,255,255,.25);
  color: rgba(255,255,255,.85);
  text-decoration: none;
  letter-spacing: .12em;
}

/* hover（PCのみ） */
@media (hover:hover){
  .kagetsu-access__btn:hover{
    background: rgba(255,255,255,.06);
  }
  .kagetsu-access__link:hover{
    border-bottom-color: rgba(255,255,255,.5);
  }
}

/* SP：テキストは画像の上に重ねると狭いので、画像の上→下に落とす */
@media (max-width: 768px){
  .kagetsu-access{
    padding: 7rem 0;
  }

  .kagetsu-access__card{
    position: static;
    width: 100%;
    margin-top: 16px;
    left: auto;
    top: auto;
    padding: 22px 18px;
    background: rgba(0,0,0,.65);
  }

  .kagetsu-access__text{
    font-size: 1.2rem;
  }
}

/* =====================================================
   Kagetsu Floating CTA (PC left / SP bottom)
   ===================================================== */

.kagetsu-cta{ position: relative; z-index: 9999; }

/* --- PC 縦ボタン --- */
.kagetsu-cta__pc{
  position: fixed;
  right: 0;
  left: auto;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;

  width: 54px;
  height: 180px;

  background: #391c5c; /* 紫 */
  color: #fff;
  text-decoration: none;

  border-top-left-radius: 10px;
  border-bottom-left-radius: 10px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;

  box-shadow: 0 10px 28px rgba(0,0,0,.25);
}

.kagetsu-cta__pc span{
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: .23em;
  font-size: 16px;
}

/* hover（PCのみ） */
@media (hover:hover){
  .kagetsu-cta__pc:hover{ filter: brightness(1.08); }
}

/* --- SP 下段2分割 --- */
.kagetsu-cta__sp{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;

  display: none; /* PCでは非表示 */
  height: 56px;
  z-index: 9999;
}

.kagetsu-cta__spBtn{
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;

  color: #fff;
  text-decoration: none;
  letter-spacing: .12em;
  font-size: 14px;
  gap: 0.6em; /* 文字とアイコンの間 */
}
/* 空室検索アイコン */
.kagetsu-cta__spBtn--reserve::before{
  content: "";
  width: 18px;
  height: 18px;
  background: url("/wp-content/themes/enishi/images/miyama-kagetsu/cta-sp.svg") center / contain no-repeat;
}

/* FAQアイコン */
.kagetsu-cta__spBtn--faq::before{
  content: "";
  width: 16px;
  height: 16px;
  background: url("/wp-content/themes/enishi/images/miyama-kagetsu/faq-sp.svg") center / contain no-repeat;
}
.kagetsu-cta__spBtn--reserve{ background: #391c5c; } /* 紫 */
.kagetsu-cta__spBtn--faq{ background: #002426; }        /* 紺 */

/* SPだけ切り替え */
@media (max-width: 768px){
  .kagetsu-cta__pc{ display: none; }
  .kagetsu-cta__sp{ display: flex; }

  /* 下段バーの分、ページの下が隠れないように */
  body{ padding-bottom: 56px; }
}

/* 固定ヘッダー分だけ下げる */
#photogallery,
#floorplan{
  scroll-margin-top: 92px; /* PC: ヘッダー72px + 余白 */
}

@media (max-width: 768px){
#photogallery,
#floorplan{
    scroll-margin-top: 76px; /* SP: ヘッダー58px + 余白 */
  }
}

/* =====================================================
   Kagetsu Footer
   ===================================================== */

.kagetsu-footer{
  background: #002426;
  color: rgba(255,255,255,.92);
  padding: 84px 0 56px;
}

.kagetsu-footer__inner{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
  text-align: center;
}

/* logo */
.kagetsu-footer__logo{
  width: 190px;
  margin: 0 auto 26px;
}
.kagetsu-footer__logo img{
  width: 100%;
  height: auto;
  display: block;
}

/* top links row */
.kagetsu-footer__nav{
  display: flex;
  justify-content: center;
  gap: 26px;
  flex-wrap: wrap;
  margin: 0 auto 30px;
}
.kagetsu-footer__link{
  color: rgba(255,255,255,.9);
  text-decoration: none;
  letter-spacing: .12em;
  font-size: 13px;
  line-height: 1;
  padding: 10px 2px;
  border-bottom: 1px solid rgba(255,255,255,.16);
}
@media (hover:hover){
  .kagetsu-footer__link:hover{
    opacity: .7;
    border-bottom-color: rgba(255,255,255,.3);
  }
}

/* facilities (future) */
.kagetsu-footer__facilities{
  margin-top: 26px;
  padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.10);
}
.kagetsu-footer__facilities-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)); /* 均等 */
  gap: 18px;
  align-items: start;
}
.kagetsu-footer__facility{
  display: block;
  text-decoration: none;
  padding: 10px 6px;
  color: rgba(255,255,255,.9);
}
.kagetsu-footer__facility-name{
  display: block;
  font-size: 12.5px;
  letter-spacing: .10em;
  line-height: 1.4;
}
.kagetsu-footer__facility-area{
  display: block;
  margin-top: 6px;
  font-size: 11px;                 /* 少し小さく */
  letter-spacing: .10em;
  color: rgba(255,255,255,.55);    /* グレー */
  line-height: 1.2;
}

@media (hover:hover){
  .kagetsu-footer__facility:hover{
    opacity: .75;
  }
}

/* hidden utility施設一覧非表示 */
.kagetsu-footer__facilities.is-hidden{
  display: none;
}

/* bottom */
.kagetsu-footer__bottom{
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.10);
}
.kagetsu-footer__copyright{
  font-size: 12px;
  letter-spacing: .08em;
  opacity: .72;
}

/* SP：すべて縦並び */
@media (max-width: 768px){
  .kagetsu-footer{
    padding: 64px 0 46px;
  }

  .kagetsu-footer__logo{
    width: 170px;
    margin-bottom: 22px;
  }

  /* 上段リンク：縦並び */
  .kagetsu-footer__nav{
    flex-direction: column;
    gap: 14px;
    margin-bottom: 22px;
  }
  .kagetsu-footer__link{
    border-bottom: none;
    padding: 8px 0;
  }

  /* 施設一覧：縦並び（増えてもOK） */
  .kagetsu-footer__facilities-grid{
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .kagetsu-footer__facility{
    padding: 10px 0;
  }

  .kagetsu-footer__bottom{
    margin-top: 26px;
    padding-top: 18px;
  }
}
