/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）  有限会社キク商会 site.css
 * ======================================
 *
 * .kiku-header / __inner / __contact / __tel / __hours / __dm   - デザイン準拠ヘッダー（sticky・電話列・オレンジDMブロック）
 * .kiku-logo / __ja / __en                                       - テキスト2段ロゴ
 * .kiku-nav / __link / __bar                                     - EN+JA+下線バー付きグローバルナビ（active時オレンジ）
 * .kiku-btn (--primary/--insta/--white/--outline/--full/--sm)    - 角ばった塗りボタン各種（外部リンク・申込系）
 * .kiku-cbtn (--light)                                          - 円形矢印＋テキストのリンク（サイト内遷移の主要リンク）
 * .kiku-footer__cta / __cta-tel / __cta-hours                    - フッター上に重ねる白い連絡先CTA帯
 * .kiku-eyebrow (--sm/--light)                                   - 英字ラベル（MESSAGE / OUR SERVICES 等）
 * .kiku-h2 / .kiku-lead / .kiku-section                          - 見出し・本文・セクション余白
 * .kiku-hero / __overlay / __inner / __badge / __title           - TOP フルブリード動画ヒーロー
 * .kiku-intro / .kiku-media                                      - 画像/動画付き2カラム導入
 * .kiku-service-grid / .kiku-service-card (--community/__more)    - 事業紹介カード（カード全体が各事業ページへのリンク）
 * .kiku-video-cap / .kiku-media-wrap                             - 動画の右下に重ねるキャプション
 * .kiku-info / .kiku-newslist / __row / __date / __cat / __title - お知らせ（CMS差し替え用）
 * .kiku-greet / __media / __caption / __body / __sign            - TOP 代表挨拶（写真＋本文＋署名）
 * .kiku-history / .kiku-hist / __mark / __gen / __body / __list  - TOP 会社沿革（世代バッジ付き縦タイムライン）
 * .kiku-join / .kiku-igcard / .kiku-steps / .kiku-step           - わいわい団参加案内（Instagram風カード＋手順）
 * .kiku-members-cta / .kiku-fan / __card / __nav                 - メンバー扇形スライダー誘導
 * .kiku-phero / __inner                                          - 下層ページヒーロー（水色＋円装飾）
 * .kiku-biz-panel / .kiku-biz / __num / __box / __sub            - 事業内容ページ本文
 * .kiku-hotel-grid / .kiku-hotel / __links / .kiku-hotel-insta   - 宿泊施設カード（予約サイト複数ボタン＋公式Instagram帯）
 * .kiku-h2-bar / .kiku-check-grid / .kiku-check                  - わいわい団：見出しバー・チェックリスト
 * .kiku-cond / __badge / .kiku-merit-grid / .kiku-merit          - 開催条件・メリット
 * .kiku-ideal / .kiku-sales / .kiku-cta-box                      - 理想開催内容・売上イメージ・CTA
 * .kiku-member-grid / .kiku-member-card / __more                 - メンバー紹介グリッド（カードはbutton＝詳細モーダルを開く）
 * .kiku-mmodal / __panel / __sns / .kiku-mslider / __dot         - メンバー詳細モーダル（写真スライド＋SNSリンク）
 * .kiku-footer ...                                               - デザイン準拠フッター
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：フルブリード動画ヒーロー、扇形メンバースライダー、Instagram風プロフィールカード
 * ・装飾パターン不足：水色ヒーローの大楕円＋放射円あしらい、破線ディバイダー付きカード
 * ・値の粒度不足：デザイン固有のpadding/フォントサイズ（Kosugi Maru前提の行間）
 */

/* ============ base tweaks ============ */
html { overflow-x: hidden; }                 /* モバイルの横ずれ防止（ルートにもガード）*/
body { color: #2C3E46; overflow-x: hidden; max-width: 100%; }
.font-poppins { font-family: "Poppins", sans-serif; }

/* スマホのみ改行する<br> */
.kiku-sp-br { display: none; }
@media screen and (max-width: 640px) { .kiku-sp-br { display: inline; } }

/* ============ 汎用パーツ ============ */
.kiku-eyebrow {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.2em;
  color: #1E93C4;
  line-height: 1;
  margin-bottom: 10px;   /* 英語ラベルと日本語見出しの間隔 */
}
.kiku-eyebrow--sm { font-size: 1.3rem; letter-spacing: 0.24em; color: #4FB2DC; }
.kiku-eyebrow--light { color: #BEEBFB; }

.kiku-h2 {
  font-weight: 700;
  font-size: clamp(2.2rem, 3.8vw, 3.9rem);
  line-height: 1.4;
  color: #23303A;
}
.kiku-lead {
  font-size: 1.5rem;
  line-height: 2.1;
  color: #2B414B;
}

.kiku-section { padding: clamp(56px, 8vw, 100px) 0; }
.kiku-container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.kiku-container--wide { max-width: 1200px; }
.kiku-container--narrow { max-width: 1200px; }

/* ============ ボタン ============ */
.kiku-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  text-decoration: none;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.4;
  padding: 15px 32px;
  border-radius: 999px;
  cursor: pointer;
  transition: transform 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
  border: none;
}
.kiku-btn i { font-size: 1.1em; }
.kiku-btn:hover { opacity: 0.92; transform: translateY(-2px); }
.kiku-btn--primary { background: #1E93C4; color: #fff; }
.kiku-btn--insta   { background: #FF9B54; color: #fff; }
.kiku-btn--white   { background: #fff; color: #0B4C66; }
.kiku-btn--white-teal { background: #fff; color: #0E5E7E; }
.kiku-btn--outline { background: #fff; color: #B4571A; border: 2px solid #F9C99E; }
.kiku-btn--full    { width: 100%; }
.kiku-btn--sm      { font-size: 1.35rem; padding: 12px 22px; }
@media screen and (max-width: 640px) {
  .kiku-btn { font-size: 1.2rem; padding: 13px 20px; white-space: normal; text-align: center; line-height: 1.5; }
}

/* ============ ヘッダー ============ */
.kiku-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  box-shadow: 0 1px 0 rgba(14, 94, 126, 0.06);
}
.kiku-header__inner {
  align-items: stretch;
  height: auto;
  min-height: 74px;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0;
}
.kiku-logo {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  padding: 12px 28px;
  text-decoration: none;
  flex: 1 1 0;      /* 右側アクションと同じ伸縮率でナビを中央に */
  min-width: 0;
}
.kiku-logo:hover { opacity: 1; }
.kiku-logo__ja {
  font-weight: 700;
  font-size: 2.1rem;
  color: #0E5E7E;
  white-space: nowrap;
  line-height: 1.2;
}
.kiku-logo__en {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.18em;
  color: #7FB9CE;
}

/* PCナビ（左右アクションで挟んで中央配置） */
.kiku-nav { flex: 0 0 auto; justify-content: center; gap: 4px; margin: 0; }
.kiku-header__actions { display: flex; align-items: stretch; justify-content: flex-end; flex: 1 1 0; min-width: 0; }
.kiku-nav .header__nav-item { display: flex; }
.kiku-nav .header__nav-item a::after { display: none; }  /* 共通の下線アニメを無効化 */
.kiku-nav__link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 14px 16px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.25s ease;
}
.kiku-nav__link:hover { background: #F6FCFE; opacity: 1; }
.kiku-nav__link .header__nav-en {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.12em;
  color: #9FC4D3;
}
.kiku-nav__link .header__nav-ja {
  font-weight: 700;
  font-size: 1.5rem;
  color: #2C3E46;
  margin-top: 0;
}
.kiku-nav__bar { display: none; }   /* ナビ下の棒線は非表示 */
.kiku-nav__link.is-current .header__nav-ja { color: #0E5E7E; }   /* 現在ページは文字色で表示 */
.kiku-nav__link.is-current .header__nav-en { color: #1E93C4; }

/* 右側：電話＋営業時間 */
.kiku-header__contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 22px;
  gap: 3px;
  flex-shrink: 0;
}
.kiku-header__tel {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  text-decoration: none;
  color: #0E5E7E;
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: 2rem;
  white-space: nowrap;
  line-height: 1;
}
.kiku-header__tel i { color: #1E93C4; font-size: 0.85em; }
.kiku-header__tel:hover { opacity: 0.75; }
.kiku-header__hours { font-size: 1.2rem; color: #7C868C; }

/* オレンジDMブロック */
.kiku-header__dm {
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  background: #1E93C4;          /* 水色（メインの青）*/
  color: #fff;
  padding: 12px 26px;
  border-radius: 999px;         /* 角丸ボタン */
  margin: 0 22px 0 10px;
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  transition: background 0.25s ease, transform 0.2s ease;
  flex-shrink: 0;
}
.kiku-header__dm i { font-size: 1.8rem; }
.kiku-header__dm:hover { background: #0E5E7E; opacity: 1; transform: translateY(-1px); }

/* ヘッダーのレスポンシブ（1100px以下でナビ・連絡先・DM非表示、ハンバーガー表示） */
@media screen and (max-width: 1100px) {
  .kiku-header__actions { display: none; }
  .kiku-logo { flex: 0 1 auto; }
  .kiku-logo__ja { font-size: 1.8rem; }
  .kiku-footer__col--pages { display: none; }   /* ハンバーガー表示幅ではフッターのページ項目を非表示 */
}

/* SPナビ下部 */
.kiku-header__tel--sp { color: #fff; font-size: 2.2rem; justify-content: center; margin-bottom: 16px; }
.kiku-header__tel--sp i { color: #fff; }

/* SPナビ調整：背景メインカラー／英語を大きく／矢印を日本語のすぐ横（8px）に */
.sp-nav { background: linear-gradient(150deg, #1E93C4, #0E5E7E); }
.sp-nav__en { font-size: 1.05rem; opacity: 0.75; }
.sp-nav__link { justify-content: flex-start; }
.sp-nav__link::after { margin-left: 8px; }

/* ============ TOP ヒーロー ============ */
.kiku-hero {
  position: relative;
  width: 100%;
  height: 98vh;                        /* PC・大画面は98vh */
  overflow: hidden;
  background: #0A0F12;
}
.kiku-hero__video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;     /* 横幅いっぱい、縦は指定高さに合わせて表示 */
}
@media screen and (max-width: 900px) {
  .kiku-hero { height: auto; }          /* タブレット：動画全体を表示（見切れ防止）*/
  .kiku-hero__video { height: auto; }   /* 16:9の比率で表示 */
}
.kiku-hero__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.35); z-index: 1; }   /* 黒レイヤー（少し明るめ）*/
.kiku-hero__inner {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;   /* キャッチコピーは上下中央 */
  z-index: 2;
}
/* あしらい：水色の光の円 */
.kiku-hero__deco { position: absolute; border-radius: 50%; z-index: 1; pointer-events: none; }
.kiku-hero__deco--1 { width: 460px; height: 460px; left: -90px; top: 4%;
  background: radial-gradient(circle, rgba(190,235,251,.40) 0%, rgba(190,235,251,0) 70%); }
.kiku-hero__deco--2 { width: 320px; height: 320px; right: 6%; bottom: 16%;
  background: radial-gradient(circle, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 70%); }
.kiku-hero__deco--3 { width: 200px; height: 200px; right: 28%; top: 12%;
  background: radial-gradient(circle, rgba(190,235,251,.30) 0%, rgba(190,235,251,0) 70%); }
/* あしらい：下部の白い曲線で次セクションへつなぐ */
.kiku-hero::after {
  content: "";
  position: absolute;
  left: -6%;
  right: -6%;
  bottom: -1px;
  height: 84px;
  background: #fff;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  z-index: 3;
}
/* モバイル：動画の下にキャッチコピーを配置（動画は横幅いっぱいの比率のまま） */
@media screen and (max-width: 640px) {
  .kiku-hero { height: 56vh; min-height: 360px; }          /* 高さを確保 */
  .kiku-hero__video { height: 100%; object-fit: cover; object-position: center; }  /* 動画で高さを埋める */
  .kiku-hero__overlay { display: block; }                  /* 可読性のため暗幕 */
  .kiku-hero__deco { display: none; }
  .kiku-hero::after { height: 40px; }
  .kiku-hero__box { padding: 0 24px; }
  .kiku-hero__badge { font-size: 1rem; }
  .kiku-hero__title { font-size: clamp(2.4rem, 7.5vw, 3.3rem); }
}
.kiku-hero__box { max-width: 1200px; width: 100%; margin: 0 auto; padding: 0 24px; }
.kiku-hero__badge {
  display: inline-block;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 1.2rem;
  letter-spacing: 0.24em;
  color: #fff;
  background: rgba(255, 255, 255, 0.18);
  padding: 6px 14px;
  border-radius: 999px;
  backdrop-filter: blur(4px);
}
.kiku-hero__title {
  margin: 20px 0 0;
  font-weight: 700;
  font-size: clamp(3rem, 5.6vw, 7rem);
  line-height: 1.35;
  color: #fff;
  letter-spacing: 0.02em;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

/* ============ 導入（MESSAGE / OUR SERVICES 2カラム） ============ */
.kiku-intro { display: flex; flex-wrap: wrap; align-items: stretch; gap: clamp(28px, 5vw, 56px); }
.kiku-intro__text { flex: 1 1 380px; min-width: 300px; display: flex; flex-direction: column; justify-content: center; }
.kiku-intro__text .kiku-h2 { margin: 12px 0 22px; }
.kiku-intro__text p { margin: 0; font-size: 1.5rem; line-height: 2.15; color: #2B414B; }
.kiku-intro__media { flex: 1 1 380px; min-width: 300px; display: flex; align-items: center; }
.kiku-media {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: #0E5E7E;
  border-radius: 18px;
  display: block;
  border: 6px solid #fff;
  box-shadow: 0 16px 40px rgba(14, 94, 126, 0.22);
}
.kiku-media--43 { aspect-ratio: 4 / 3; border-radius: 20px; }

/* ============ 事業紹介カード ============ */
.kiku-services { background: #E4F3FB; border-top: 1px solid #D3E8F2; border-bottom: 1px solid #D3E8F2; }
.kiku-head-center { text-align: center; margin-bottom: 48px; }
.kiku-head-center .kiku-h2 { margin: 10px 0 12px; }
.kiku-head-center p { max-width: 620px; margin: 0 auto; font-size: 1.45rem; line-height: 1.95; color: #39434A; }
@media screen and (max-width: 640px) {
  .kiku-head-center p { text-align: center; text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
}
.kiku-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 22px;
}
.kiku-service-card {
  background: #fff;
  border: 2px solid #9FCADD;
  border-radius: 18px;
  padding: 18px 18px 24px;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.kiku-service-card:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(14, 94, 126, 0.14); }
.kiku-service-card__img { aspect-ratio: 16 / 11; border-radius: 12px; overflow: hidden; }
.kiku-service-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-service-card__title { text-align: center; margin-top: 20px; }
.kiku-service-card__title h3 { margin: 0; font-weight: 700; font-size: 1.9rem; color: #0E5E7E; }
.kiku-service-card__divider { border-top: 1px dashed #CFE3EC; margin: 16px 0 14px; }
.kiku-service-card p { margin: 0; font-size: 1.35rem; line-height: 1.9; color: #39434A; }
.kiku-service-card--community { background: #FFF8F0; border-color: #EDB985; }
.kiku-service-card--community h3 { color: #B4571A; }
.kiku-service-card--community .kiku-service-card__divider { border-top-color: #F3D3B3; }
.kiku-service-card--community p { color: #5A4433; }

/* ============ お知らせ（INFORMATION） ============ */
.kiku-info__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 34px;
}
.kiku-info__head .kiku-h2 { margin: 8px 0 6px; }
.kiku-link-arrow {
  font-family: "Kosugi Maru", sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  color: #1E93C4;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.kiku-link-arrow:hover { opacity: 0.75; }
.kiku-newslist { background: #fff; border: 1px solid #E9F4F8; border-radius: 18px; overflow: hidden; }
.kiku-newslist__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding: 22px 26px;
  text-decoration: none;
  border-bottom: 1px solid #EEF5F8;
  transition: background 0.25s ease;
}
.kiku-newslist__row:last-child { border-bottom: none; }
.kiku-newslist__row:hover { background: #F6FCFE; opacity: 1; }
.kiku-newslist__date {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  font-size: 1.3rem;
  color: #7FB9CE;
  min-width: 96px;
}
.kiku-newslist__cat {
  font-weight: 700;
  font-size: 1.2rem;
  color: #fff;
  padding: 4px 12px;
  border-radius: 999px;
}
.kiku-newslist__cat--event  { background: #F47B2A; }
.kiku-newslist__cat--report { background: #1E93C4; }
.kiku-newslist__cat--info   { background: #D7F1FB; color: #0E5E7E; }
.kiku-newslist__title { flex: 1 1 260px; font-size: 1.45rem; font-weight: 500; color: #2C3E46; }

/* ============ 代表挨拶 ============ */
.kiku-greet-sec {
  background: #F6FCFE;
  border-top: 1px solid #E3EEF3;
  border-bottom: 1px solid #E3EEF3;
  padding: clamp(56px, 8vw, 100px) 0;
}
.kiku-greet { display: flex; flex-wrap: wrap; gap: clamp(28px, 4vw, 52px); align-items: flex-start; }
.kiku-greet__media { flex: 0 0 300px; max-width: 300px; }
.kiku-greet__media img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
  border-radius: 20px;
  background: #E4F3FB;
}
.kiku-greet__caption { margin-top: 16px; text-align: center; }
.kiku-greet__gen { display: block; font-size: 1.25rem; color: #4C6673; letter-spacing: 0.04em; }
.kiku-greet__name { display: block; margin-top: 4px; font-weight: 700; font-size: 2rem; color: #0E5E7E; }
.kiku-greet__body { flex: 1 1 420px; min-width: 300px; }
.kiku-greet__body p { margin: 0 0 20px; font-size: 1.45rem; line-height: 2.05; color: #2B414B; }
.kiku-greet__body p:last-child { margin-bottom: 0; }
.kiku-greet__sign {
  margin-top: 28px !important;
  padding-top: 20px;
  border-top: 1px dashed #C7E2EC;
  text-align: right;
  font-weight: 700;
  color: #0E5E7E;
}
.kiku-greet__sign span { font-size: 1.7rem; }
@media screen and (max-width: 767px) {
  .kiku-greet { display: block; }
  .kiku-greet__media { max-width: 240px; margin: 0 auto 28px; }
  .kiku-greet__body p { font-size: 1.35rem; line-height: 1.95; }
}

/* ============ 会社沿革 ============ */
.kiku-history-sec { padding: clamp(56px, 8vw, 100px) 0; }
.kiku-history { position: relative; }
.kiku-history::before {
  content: "";
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: 43px;
  width: 2px;
  background: linear-gradient(180deg, #BEEBFB 0%, #1E93C4 50%, #FF9B54 100%);
}
.kiku-hist { position: relative; display: flex; gap: clamp(20px, 3vw, 34px); align-items: flex-start; }
.kiku-hist + .kiku-hist { margin-top: 32px; }
.kiku-hist__mark { position: relative; z-index: 1; flex: 0 0 88px; }
.kiku-hist__gen {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid #1E93C4;
  font-weight: 700;
  font-size: 1.5rem;
  color: #0E5E7E;
  text-align: center;
  line-height: 1.3;
}
.kiku-hist--now .kiku-hist__gen { border-color: #FF9B54; color: #B4571A; }
.kiku-hist__body {
  flex: 1 1 auto;
  min-width: 0;
  background: #fff;
  border: 1px solid #E3EEF3;
  border-radius: 18px;
  padding: clamp(22px, 3vw, 32px) clamp(20px, 3vw, 34px);
  box-shadow: 0 8px 22px rgba(14, 94, 126, 0.05);
}
.kiku-hist__title { margin: 0; font-weight: 700; font-size: clamp(1.9rem, 2.6vw, 2.3rem); color: #0E5E7E; }
.kiku-hist--now .kiku-hist__title { color: #B4571A; }
.kiku-hist__person {
  display: inline-block;
  margin: 12px 0 16px;
  padding: 5px 14px;
  border-radius: 999px;
  background: #E4F3FB;
  font-weight: 700;
  font-size: 1.3rem;
  color: #0E5E7E;
}
.kiku-hist__body p { margin: 0 0 14px; font-size: 1.4rem; line-height: 2; color: #39434A; }
.kiku-hist__title + p { margin-top: 16px; }   /* 世代名の帯がないブロック（現在）用の余白 */
.kiku-hist__body p:last-child { margin-bottom: 0; }
.kiku-hist__list { margin: 0 0 16px; padding: 0; list-style: none; }
.kiku-hist__list li {
  position: relative;
  padding-left: 20px;
  font-size: 1.35rem;
  line-height: 1.9;
  color: #39434A;
}
.kiku-hist__list li::before {
  content: "";
  position: absolute;
  top: 0.85em;
  left: 4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #FF9B54;
}
@media screen and (max-width: 767px) {
  .kiku-history::before { left: 25px; }
  .kiku-hist { gap: 14px; }
  .kiku-hist__mark { flex: 0 0 52px; }
  .kiku-hist__gen { width: 52px; height: 52px; font-size: 1.15rem; border-width: 2px; }
  .kiku-hist__body { padding: 20px 18px; }
  .kiku-hist__body p { font-size: 1.3rem; line-height: 1.9; }
}

/* ============ わいわい団参加案内 ============ */
.kiku-join-sec { padding: 0 24px clamp(28px, 4vw, 52px); }
.kiku-join-box {
  max-width: 1320px;
  margin: 0 auto;
  background: #FFF3E8;
  border-radius: 32px;
  padding: clamp(40px, 6vw, 72px) clamp(28px, 5vw, 64px);
}
@media screen and (max-width: 640px) {
  .kiku-join-sec { padding-left: 0; padding-right: 0; }   /* オレンジ背景を横幅いっぱいに */
  .kiku-join-box { border-radius: 0; }
  .kiku-join__body { text-align: center; }                /* 見出しを中央に */
  .kiku-join__body p { text-align: left; }                /* 説明文は左揃え */
  .kiku-join__body .kiku-btn-row { justify-content: center; }  /* ボタンを中央に */
}
.kiku-join { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(30px, 5vw, 56px); }
.kiku-igcard {
  flex: 1 1 320px;
  min-width: 280px;
  max-width: 400px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #F1E2D3;
  border-radius: 22px;
  overflow: hidden;
}
.kiku-igcard__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid #F3ECE4; }
.kiku-igcard__avatar {
  width: 46px; height: 46px; border-radius: 50%; background: #F47B2A;
  display: flex; align-items: center; justify-content: center; flex: none; color: #fff; font-size: 2.2rem;
}
.kiku-igcard__meta { flex: 1; line-height: 1.3; }
.kiku-igcard__name { font-weight: 700; font-size: 1.4rem; color: #2C3E46; }
.kiku-igcard__handle { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 1.2rem; color: #9A8677; }
.kiku-igcard__follow { flex-shrink: 0; white-space: nowrap; font-weight: 700; font-size: 1.25rem; color: #fff; background: #F47B2A; padding: 7px 16px; border-radius: 10px; }
.kiku-igcard__meta { min-width: 0; }
.kiku-igcard__handle { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kiku-igcard__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
.kiku-igcard__grid img { aspect-ratio: 1; width: 100%; object-fit: cover; display: block; }
.kiku-igcard__caption { padding: 14px 18px; font-size: 1.25rem; color: #9A8677; text-align: center; }
.kiku-join__body { flex: 1 1 380px; min-width: 300px; }
.kiku-tag {
  display: inline-block; font-weight: 700; font-size: 1.2rem; color: #B4571A;
  background: #FCE0C9; padding: 6px 14px; border-radius: 999px;
  align-self: flex-start;   /* flexカラム内で横に伸びないようにする */
  width: fit-content;
}
.kiku-join__body .kiku-h2 { margin: 14px 0 14px; font-size: clamp(2.2rem, 3.4vw, 3rem); line-height: 1.45; }
.kiku-join__body p { margin: 0 0 24px; font-size: 1.4rem; line-height: 1.95; color: #573D2C; }
.kiku-join__body p strong { color: #B4571A; }
.kiku-steps { display: flex; flex-direction: row; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.kiku-step {
  flex: 1 1 0; min-width: 150px;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px;
  background: #fff; border: 1px solid #F3E1D0; border-radius: 14px;
  padding: 16px 18px;
  box-shadow: 0 4px 14px rgba(180, 87, 26, 0.05);
}
.kiku-step__txt { line-height: 1.5; }
.kiku-step__num { display: none; }
.kiku-step__body { display: flex; flex-direction: column; line-height: 1.4; }
@media screen and (max-width: 640px) {
  .kiku-steps { flex-direction: column; gap: 12px; }   /* スマホは縦積み */
  .kiku-step { align-items: center; text-align: center; padding: 14px 18px; }  /* 内容を中央に */
}
.kiku-step__label {
  font-family: "Poppins", sans-serif; font-weight: 600; font-size: 1.2rem;
  letter-spacing: 0.14em; color: #F47B2A;
}
.kiku-step__txt { font-size: 1.55rem; font-weight: 500; color: #39434A; }
.kiku-btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ============ メンバー誘導（扇形スライダー） ============ */
.kiku-members-cta { background: #1E93C4; position: relative; overflow: hidden; padding: clamp(48px, 7vw, 88px) 24px; }
.kiku-members-cta__circle { position: absolute; border-radius: 50%; z-index: 0; }
.kiku-members-cta__circle--1 { top: -18%; left: -6%; width: 360px; height: 360px; background: radial-gradient(circle, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 70%); }
.kiku-members-cta__circle--2 { bottom: -24%; right: -4%; width: 440px; height: 440px; background: radial-gradient(circle, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 70%); }
.kiku-members-cta__circle--3 { top: 30%; right: 26%; width: 180px; height: 180px; background: radial-gradient(circle, rgba(255,255,255,.07) 0%, rgba(255,255,255,0) 70%); }
@media screen and (max-width: 640px) { .kiku-members-cta__circle { display: none; } }
.kiku-members-cta__inner { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; }
.kiku-members-cta__title { text-align: center; color: #fff; margin-bottom: 36px; }
.kiku-members-cta__title .kiku-h2 { margin: 10px 0 0; color: #fff; }
.kiku-members-cta__desc { text-align: center; color: #fff; margin-top: 34px; }
.kiku-members-cta__desc p { max-width: 640px; margin: 0 auto 26px; font-size: 1.45rem; line-height: 2; color: #E3F5FC; }
@media screen and (max-width: 640px) { .kiku-members-cta__desc p { text-align: left; } }

.kiku-fan { display: flex; justify-content: center; align-items: flex-end; gap: clamp(6px, 1.2vw, 18px); overflow: hidden; padding: 26px 8px 40px; }
.kiku-fan__card {
  flex: none;
  width: clamp(132px, 15vw, 205px);
  aspect-ratio: 3 / 4;
  transform-origin: 50% 100%;
  transition: transform 0.5s cubic-bezier(.22,.61,.36,1);
  cursor: pointer;
}
.kiku-fan { gap: clamp(6px, 1.2vw, 16px); padding-left: 20px; padding-right: 20px; }
.kiku-fan__inner { position: relative; width: 100%; height: 100%; border-radius: 16px; overflow: hidden; border: 2px solid rgba(255,255,255,.3); }
.kiku-fan__card.is-center .kiku-fan__inner { border: 3px solid rgba(255,255,255,.95); }
.kiku-fan__inner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-fan__name {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 14px;
  background: rgba(6,50,68,.55); display: flex; align-items: center; gap: 7px;
}
.kiku-fan__name span:first-child { width: 8px; height: 8px; border-radius: 50%; background: #FFC24A; flex: none; }
.kiku-fan__name span:last-child { font-weight: 700; font-size: 1.4rem; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kiku-fan__nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; }
.kiku-fan__btn {
  cursor: pointer; width: 46px; height: 46px; border-radius: 50%; background: #fff; border: none;
  display: flex; align-items: center; justify-content: center; transition: background 0.25s ease; color: #0E5E7E; font-size: 1.8rem;
}
.kiku-fan__btn:hover { background: #EAF7FC; }

/* ============ 下層ページヒーロー ============ */
.kiku-phero {
  background-color: #A6DEF5;
  /* 全サイズで同じ淡いドームを描く（固定サイズ装飾に依存しない） */
  background-image: radial-gradient(ellipse 82% 240% at 50% 40%, #DAF2FC 0%, #CBECFA 50%, rgba(166, 222, 245, 0) 78%);
  padding: clamp(36px, 5vw, 24px) 24px;
  position: relative;
  overflow: hidden;
}
.kiku-phero__c { display: none; }   /* 装飾はグラデーション背景に統一（固定サイズ円は非表示） */
.kiku-phero__c--legacy { position: absolute; border-radius: 50%; z-index: 0; }
.kiku-phero__c--1 { top: -30%; left: -8%; width: 340px; height: 340px; background: radial-gradient(circle, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 70%); }
.kiku-phero__c--2 { bottom: -40%; right: -6%; width: 420px; height: 420px; background: radial-gradient(circle, rgba(255,255,255,.5) 0%, rgba(255,255,255,0) 70%); }
.kiku-phero__c--3 { top: 20%; right: 22%; width: 160px; height: 160px; background: radial-gradient(circle, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 70%); }
.kiku-phero__ellipse { display: none; }   /* グラデーション背景に置き換え */
.kiku-phero__inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; padding: clamp(28px, 5vw, 56px) 24px; text-align: center; }
.kiku-phero__title { margin: 10px 0 0; font-weight: 700; font-size: clamp(2.5rem, 4.6vw, 4.4rem); color: #23303A; letter-spacing: 0.08em; }

/* ============ 事業内容ページ ============ */
.kiku-biz-sec { background: #F4F6F7; }
.kiku-biz-panel {
  background: transparent;
  border-radius: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 3vw, 40px);
}
/* 01〜04 コンテンツごとの個別背景カード */
.kiku-biz-card {
  background: #fff;
  border: 1px solid #E9F0F3;
  border-radius: 24px;
  padding: clamp(20px, 4vw, 48px);
  box-shadow: 0 10px 30px rgba(14, 94, 126, 0.06);
}
.kiku-biz { display: flex; flex-wrap: wrap; gap: 36px; align-items: flex-start; }
.kiku-biz--fill { align-items: stretch; }   /* 右画像をコンテンツ高さに合わせて伸ばす */
.kiku-biz--border { border-top: 1px solid #E3EEF3; padding-top: clamp(40px, 5vw, 60px); }
.kiku-biz__col { flex: 1 1 300px; min-width: 280px; }
.kiku-biz__media { flex: 1 1 300px; min-width: 260px; border-radius: 20px; overflow: hidden; min-height: 280px; }
.kiku-biz__side { flex: 1 1 300px; min-width: 260px; display: flex; flex-direction: column; align-items: center; }
.kiku-biz__side .kiku-biz__media { width: 100%; flex: 0 0 auto; min-height: 0; }
.kiku-biz__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-biz__head { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.kiku-biz__num { font-family: "Poppins", sans-serif; font-weight: 700; font-size: 3rem; color: #BEEBFB; }
.kiku-biz__num--orange { color: #FBD9BE; }
.kiku-biz__head h2 { margin: 2px 0 0; font-weight: 700; font-size: 2.4rem; color: #23303A; }
.kiku-biz__col p, .kiku-biz__lead { font-size: 1.45rem; line-height: 2; color: #2B414B; }
.kiku-biz__lead { max-width: 820px; }
.kiku-biz__lead strong { color: #0E5E7E; }
.kiku-biz__box { background: #F6FCFE; border: 1px solid #E3EEF3; border-radius: 14px; padding: 20px 22px; margin-top: 18px; }
.kiku-biz__box-title { font-weight: 700; font-size: 1.4rem; color: #0E5E7E; margin-bottom: 8px; }
.kiku-biz__box p { margin: 0; font-size: 1.35rem; line-height: 1.95; color: #39434A; }
.kiku-biz__props { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.kiku-prop { background: #fff; border: 1px solid #E3EEF3; border-radius: 12px; padding: 14px 16px; }
.kiku-prop__name { font-weight: 700; color: #2C3E46; font-size: 1.4rem; }
.kiku-prop__addr { font-size: 1.2rem; color: #7FB9CE; margin-top: 4px; }
.kiku-note { margin: 16px 0 0; font-size: 1.25rem; color: #556169; line-height: 1.8; }

/* エステ・コミュニティ用クリームボックス */
.kiku-biz__box--cream { background: #FFF8F0; border-color: #FCE3CC; }
.kiku-biz__box--cream .kiku-biz__box-title { color: #B4571A; }
.kiku-biz__box--cream p { color: #573D2C; }
.kiku-biz__cbox { background: #FFF8F0; border: 1px solid #FCE3CC; border-radius: 20px; padding: clamp(23px, 4vw, 40px); margin-top: 12px; }
.kiku-biz__cbox-title { font-weight: 700; font-size: 2rem; color: #B4571A; margin-bottom: 14px; }
.kiku-biz__cbox p { font-size: 1.4rem; line-height: 2; color: #573D2C; margin: 0 0 14px; }

/* エステ 主なメニュー：枠外にタグ表示で見やすく */
.kiku-menu-out { margin-top: 18px; }
.kiku-biz__box-title--orange { color: #B4571A; }
.kiku-menu-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 12px; }
.kiku-menu-tags li {
  background: #fff;
  border: 1px solid #F3D3B3;
  color: #7A5230;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.5;
  padding: 7px 15px;
  border-radius: 999px;
}
.kiku-menu-note { margin: 0; font-size: 1.25rem; line-height: 1.9; color: #5A4433; }

/* 宿泊カード */
.kiku-hotel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 22px; margin-top: 24px; }
.kiku-hotel { background: #fff; border: 1px solid #E3EEF3; border-radius: 18px; overflow: hidden; }
.kiku-hotel__img { aspect-ratio: 16 / 9; overflow: hidden; }
.kiku-hotel__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-hotel__img--placeholder { background: #CDEDF9; display: flex; align-items: center; justify-content: center; color: #4E9BB8; font-size: 1.2rem; }
.kiku-hotel__body { padding: 24px 24px 26px; }
@media screen and (max-width: 640px) { .kiku-hotel__body { padding: 16px 16px 18px; } }
.kiku-hotel__body h3 { margin: 0 0 8px; font-weight: 700; font-size: 1.8rem; color: #0E5E7E; }
.kiku-hotel__body p { margin: 0 0 16px; font-size: 1.35rem; line-height: 1.9; color: #39434A; }
.kiku-hotel__links { display: flex; flex-wrap: wrap; gap: 10px; }
.kiku-hotel-insta {
  margin-top: 24px;
  padding: 20px 22px;
  background: #FFF3E8;
  border-radius: 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.kiku-hotel-insta p { margin: 0; font-size: 1.35rem; line-height: 1.9; color: #573D2C; }
@media screen and (max-width: 640px) {
  .kiku-hotel-insta { justify-content: center; text-align: center; }
}

/* ============ わいわい団ページ ============ */
.kiku-h2-bar {
  font-weight: 700; font-size: clamp(2.2rem, 3.2vw, 3rem); color: #23303A;
  margin: 0 0 20px; display: flex; align-items: center; gap: 12px;
}
.kiku-h2-bar::before { content: ""; display: inline-block; width: 8px; height: 28px; border-radius: 4px; background: #F47B2A; flex: none; }
.kiku-h2-bar--blue::before { background: #1E93C4; }
.kiku-blocks { display: flex; flex-direction: column; gap: clamp(44px, 5vw, 64px); }
.kiku-check-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media screen and (max-width: 900px) { .kiku-check-grid { grid-template-columns: repeat(2, 1fr); } }
.kiku-check {
  background: #FBF7F0; border: 1px solid #EFE6D8; border-radius: 12px; padding: 16px 18px;
  font-size: 1.35rem; color: #2B414B; display: flex; gap: 10px;
}
.kiku-check::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: #F47B2A; }
.kiku-lead-indent { margin: 0 0 22px; font-size: 1.4rem; line-height: 1.95; color: #39434A; padding-left: 20px; }
.kiku-conds { display: flex; flex-direction: column; gap: 14px; }
.kiku-cond { background: #F6FCFE; border: 1px solid #D7EDF5; border-radius: 14px; padding: 22px 24px; }
.kiku-cond__head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.kiku-cond__badge { font-weight: 700; font-size: 1.3rem; color: #fff; background: #1E93C4; padding: 4px 12px; border-radius: 8px; }
.kiku-cond__title { font-weight: 700; font-size: 1.5rem; color: #0E5E7E; }
.kiku-cond p { margin: 0; font-size: 1.35rem; line-height: 1.9; color: #2B414B; }
.kiku-cond p strong { color: #0E5E7E; }
.kiku-merit-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.kiku-merit { background: #FFF8F0; border: 1px solid #FCE3CC; border-radius: 14px; padding: 22px 24px; }
.kiku-merit__title { font-weight: 700; font-size: 1.5rem; color: #B4571A; margin-bottom: 6px; }
.kiku-merit p { margin: 0; font-size: 1.3rem; line-height: 1.85; color: #573D2C; }
.kiku-ideal { background: #F6FCFE; border: 1px solid #D7EDF5; border-radius: 16px; padding: 26px 28px; }
.kiku-ideal ul { margin: 0; padding-left: 20px; font-size: 1.35rem; line-height: 2.1; color: #2B414B; list-style: disc; }
.kiku-sales { background: #0E5E7E; border-radius: 20px; padding: clamp(28px, 4vw, 40px); color: #fff; }
.kiku-sales__label { font-weight: 600; font-size: 1.4rem; color: #BEEBFB; margin-bottom: 6px; }
.kiku-sales__intro { margin: 0 0 18px; font-size: 1.4rem; line-height: 1.9; color: #E3F5FC; }
.kiku-sales__calc { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; background: rgba(255,255,255,.12); border-radius: 14px; padding: 22px 26px; }
.kiku-sales__cap { font-size: 1.2rem; color: #BEEBFB; }
.kiku-sales__cap--accent { color: #FFD9B8; }
.kiku-sales__num { font-family: "Poppins", sans-serif; font-weight: 700; font-size: 2.6rem; }
.kiku-sales__num--big { font-size: 3rem; color: #FFB877; }
.kiku-sales__num span { font-size: 1.5rem; }
.kiku-sales__op { font-family: "Poppins", sans-serif; font-weight: 700; font-size: 2.2rem; color: #BEEBFB; }
.kiku-sales__foot { margin: 18px 0 0; font-size: 1.3rem; line-height: 1.9; color: #D7EEF6; }
.kiku-cta-box { background: #FFF8F0; border: 1px solid #FCE3CC; border-radius: 20px; padding: clamp(30px, 4vw, 44px); text-align: center; }
.kiku-cta-box h2 { margin: 0 0 12px; font-weight: 700; font-size: clamp(2rem, 3vw, 2.6rem); color: #23303A; text-align: center; text-wrap: balance; }
.kiku-cta-box p { max-width: 600px; margin: 0 auto 24px; font-size: 1.4rem; line-height: 1.9; color: #573D2C; text-align: center; text-wrap: balance; word-break: keep-all; }

/* ============ メンバー紹介ページ ============ */
.kiku-member-intro { text-align: center; margin-bottom: 38px; }
.kiku-member-intro > p { max-width: 680px; margin: 0 auto 44px; font-size: 1.5rem; line-height: 2; color: #39434A; text-align: center; text-wrap: balance; overflow-wrap: anywhere; }
.kiku-member-intro .kiku-h2 { margin: 6px 0 0; font-size: clamp(2.2rem, 3.2vw, 3rem); }
.kiku-member-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kiku-member-card {
  background: #fff; border: 1px solid #E3EEF3; border-radius: 16px; overflow: hidden;
  display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease;
  /* button 要素で使うためのリセット */
  width: 100%; padding: 0; margin: 0; text-align: left; font: inherit; color: inherit; cursor: pointer;
  -webkit-appearance: none; appearance: none;
}
.kiku-member-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(14,94,126,.12); }
.kiku-member-card:focus-visible { outline: 3px solid #1E93C4; outline-offset: 2px; }
.kiku-member-card > img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.kiku-member-card__body { padding: 14px 16px 18px; display: flex; flex-direction: column; flex: 1 1 auto; }
.kiku-member-card__name { font-weight: 700; font-size: 1.8rem; color: #0E5E7E; }
.kiku-member-card__desc { margin: 6px 0 0; font-size: 1.2rem; line-height: 1.8; color: #39434A; }
.kiku-member-card__more {
  display: inline-flex; align-items: center; gap: 6px; align-self: flex-start;
  margin-top: 12px; padding: 6px 14px; border-radius: 999px;
  background: #E4F3FB; color: #0E5E7E; font-weight: 700; font-size: 1.2rem;
  transition: background 0.25s ease, color 0.25s ease;
}
.kiku-member-card__more i { font-size: 0.95em; }
.kiku-member-card:hover .kiku-member-card__more { background: #FF9B54; color: #fff; }
@media screen and (max-width: 768px) { .kiku-member-grid { grid-template-columns: repeat(2, 1fr); } }
@media screen and (max-width: 640px) {
  .kiku-member-grid { grid-template-columns: 1fr; }
  .kiku-check-grid { grid-template-columns: 1fr; }
  .kiku-member-card__name { font-size: 1.6rem; }
  .kiku-member-card__desc { font-size: 1.25rem; }
}

/* ============ メンバー詳細モーダル ============ */
.kiku-mmodal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.kiku-mmodal[hidden] { display: none; }
.kiku-mmodal__overlay {
  position: absolute; inset: 0; background: rgba(11, 76, 102, 0.62);
  opacity: 0; transition: opacity 0.25s ease; cursor: pointer;
}
.kiku-mmodal.is-open .kiku-mmodal__overlay { opacity: 1; }
.kiku-mmodal__panel {
  position: relative; z-index: 1; width: min(920px, 100%); max-height: calc(100vh - 48px);
  overflow-y: auto; background: #fff; border-radius: 22px; box-shadow: 0 24px 60px rgba(11, 76, 102, 0.28);
  opacity: 0; transform: translateY(18px) scale(0.98); transition: opacity 0.25s ease, transform 0.3s cubic-bezier(.22,.61,.36,1);
}
.kiku-mmodal.is-open .kiku-mmodal__panel { opacity: 1; transform: none; }
.kiku-mmodal__close {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  width: 42px; height: 42px; border: none; border-radius: 50%;
  background: rgba(255, 255, 255, 0.92); color: #0E5E7E; font-size: 1.9rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(14, 94, 126, 0.18); transition: background 0.25s ease, color 0.25s ease;
}
.kiku-mmodal__close:hover { background: #FF9B54; color: #fff; }
.kiku-mmodal__inner { display: flex; flex-wrap: wrap; }
.kiku-mmodal__body {
  flex: 1 1 340px; min-width: 280px; padding: clamp(24px, 3vw, 36px);
  display: flex; flex-direction: column; justify-content: center;
}
.kiku-mmodal__name { margin: 8px 0 14px; font-weight: 700; font-size: clamp(2rem, 3vw, 2.6rem); line-height: 1.45; color: #0E5E7E; }
/* 紹介文の全文（$members の full）を原文の改行・箇条書きのまま出すため pre-line */
.kiku-mmodal__desc { margin: 0; font-size: 1.4rem; line-height: 2; color: #39434A; white-space: pre-line; }
/* 本文中のURLリンク。長いURLでも枠からはみ出さないよう途中で折り返す */
.kiku-mmodal__link { color: #1E93C4; text-decoration: underline; overflow-wrap: anywhere; word-break: break-all; }
.kiku-mmodal__link:hover { color: #FF9B54; }
.kiku-mmodal__sns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; padding-top: 20px; border-top: 1px dashed #C7E2EC; }
.kiku-mmodal__sns[hidden] { display: none; }
.kiku-mmodal__sns-link {
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
  padding: 9px 18px; border-radius: 999px; background: #E4F3FB; color: #0E5E7E;
  font-weight: 700; font-size: 1.3rem; transition: background 0.25s ease, color 0.25s ease;
}
.kiku-mmodal__sns-link:hover { background: #FF9B54; color: #fff; opacity: 1; }

/* 詳細内 写真スライド */
.kiku-mslider { position: relative; flex: 1 1 380px; min-width: 280px; background: #E4F3FB; border-radius: 22px 0 0 22px; overflow: hidden; }
.kiku-mslider__stage { position: relative; width: 100%; aspect-ratio: 1 / 1; }
.kiku-mslider__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity 0.4s ease;
}
.kiku-mslider__img.is-active { opacity: 1; }
.kiku-mslider__btn {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 40px; height: 40px; border: none; border-radius: 50%;
  background: rgba(255, 255, 255, 0.9); color: #0E5E7E; font-size: 1.5rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 10px rgba(14, 94, 126, 0.2); transition: background 0.25s ease, color 0.25s ease;
}
.kiku-mslider__btn:hover { background: #1E93C4; color: #fff; }
.kiku-mslider__btn--prev { left: 12px; }
.kiku-mslider__btn--next { right: 12px; }
.kiku-mslider__dots { position: absolute; bottom: 12px; left: 0; right: 0; z-index: 2; display: flex; justify-content: center; gap: 8px; }
.kiku-mslider__dot {
  width: 9px; height: 9px; padding: 0; border: none; border-radius: 50%;
  background: rgba(255, 255, 255, 0.75); cursor: pointer; transition: background 0.25s ease, transform 0.25s ease;
}
.kiku-mslider__dot.is-active { background: #FF9B54; transform: scale(1.25); }
.kiku-mslider.is-single .kiku-mslider__btn,
.kiku-mslider.is-single .kiku-mslider__dots { display: none; }
@media screen and (max-width: 767px) {
  .kiku-mmodal { padding: 14px; }
  .kiku-mmodal__panel { max-height: calc(100vh - 28px); }
  .kiku-mslider { flex: 1 1 100%; border-radius: 22px 22px 0 0; }
  .kiku-mslider__stage { aspect-ratio: 4 / 3; }
  .kiku-mmodal__desc { font-size: 1.3rem; line-height: 1.95; }
}

/* ============ フッター ============ */
.kiku-footer__body { background: #0B4C66; padding: clamp(48px, 6vw, 72px) 0 clamp(36px, 5vw, 56px); }
.kiku-footer__body .footer-body__inner { max-width: 1200px; padding: 0 24px; }
.kiku-footer__col { }
.kiku-footer__logo { display: flex; flex-direction: column; gap: 2px; margin-bottom: 16px; }
.kiku-footer__logo-ja { font-weight: 700; font-size: 1.8rem; color: #fff; }
.kiku-footer__logo-en { font-family: "Poppins", sans-serif; font-weight: 600; font-size: 1rem; letter-spacing: 0.18em; color: #8FCBE0; }
.kiku-footer__addr { margin: 0 0 14px; font-size: 1.3rem; line-height: 1.9; color: #B9DBE9; }
.kiku-footer__heading { font-weight: 700; font-size: 1.4rem; color: #7ED5F5; margin-bottom: 14px; }
.kiku-footer__links { display: flex; flex-direction: column; gap: 10px; }
.kiku-footer__links a { font-size: 1.35rem; color: #DCEFF6; text-decoration: none; }
.kiku-footer__links a:hover { color: #fff; opacity: 1; }
.kiku-footer__note { margin: 0 0 14px; font-size: 1.25rem; line-height: 1.85; color: #B9DBE9; }
/* 電話・Instagramのボタンは文字数が違っても幅を揃える（列いっぱい） */
.kiku-footer__col .kiku-btn { display: flex; width: 100%; margin: 0 0 12px; }
.kiku-footer__bottom { background: #083A4F; }
.kiku-footer__bottom .footer-bottom__copyright { font-size: 1.2rem; color: #8FCBE0; text-align: center; margin: 0; }

/* ============ お知らせ（ブログCMS：一覧・記事詳細） ============ */
.kiku-news-tabs { margin: 0 auto 28px; }
.kiku-news-page { max-width: 980px; }
/* 件数が多い場合はリスト内スクロール（PC:20件超／スマホ:15件超）*/
.kiku-news-page .kiku-newslist { max-height: 1500px; overflow-y: auto; overflow-x: hidden; }
@media screen and (max-width: 640px) { .kiku-news-page .kiku-newslist { max-height: 1755px; } }
.kiku-article-page { max-width: 860px; }
.kiku-article {
  background: #fff;
  border: 1px solid #E9F0F3;
  border-radius: 18px;
  padding: clamp(24px, 4vw, 44px);
  font-size: 1.5rem;
  line-height: 2;
  color: #2B414B;
}
.kiku-article h1, .kiku-article h2, .kiku-article h3, .kiku-article h4 { color: #23303A; line-height: 1.5; }
.kiku-article h2 { font-size: 2.2rem; margin: 1.4em 0 .6em; padding-bottom: .4em; border-bottom: 2px solid #E3EEF3; }
.kiku-article h3 { font-size: 1.8rem; margin: 1.3em 0 .5em; padding-left: 12px; border-left: 4px solid #1E93C4; }
.kiku-article p { margin: 0 0 1.2em; }
.kiku-article img { max-width: 100%; height: auto; border-radius: 12px; margin: .6em 0; }
.kiku-article a { color: #1E93C4; text-decoration: underline; }
.kiku-article ul, .kiku-article ol { margin: 0 0 1.2em; padding-left: 1.4em; }
.kiku-article ul { list-style: disc; }
.kiku-article ol { list-style: decimal; }
.kiku-article li { margin-bottom: .4em; }
/* CMS記事ヘッダ（日付・カテゴリ・タイトル）が出力される場合の余白調整 */
.kiku-article > *:first-child { margin-top: 0; }
.kiku-article__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.kiku-article__cat { display: inline-block; background: #F47B2A; color: #fff; font-size: 1.2rem; font-weight: 700; line-height: 1.6; padding: 4px 14px; border-radius: 999px; }
.kiku-article__cat span, .kiku-article__cat a { color: #fff; background: transparent; text-decoration: none; }
.kiku-article__cat:empty { display: none; }
.kiku-article__date { font-family: "Poppins", sans-serif; color: #7FB9CE; font-weight: 600; font-size: 1.3rem; }
.kiku-article__title { margin: 0 0 20px; padding: 0; border: none; font-size: clamp(2rem, 3vw, 2.8rem); font-weight: 700; color: #23303A; line-height: 1.5; }
.kiku-article__body { font-size: 1.5rem; line-height: 2; color: #2B414B; }
.kiku-article__thumb { margin: 0 0 24px; border-radius: 14px; overflow: hidden; }
.kiku-article__thumb img { width: 100%; height: auto; display: block; }
.kiku-article__pager { margin: 24px 0 0; font-size: 1.4rem; }
.kiku-article__pager a { color: #1E93C4; text-decoration: none; }

/* 記事サイドバー（カテゴリ） */
.kiku-article-layout { align-items: flex-start; }
.kiku-sidebar { background: #F6FCFE; border: 1px solid #E3EEF3; border-radius: 16px; padding: 20px 22px; }
.kiku-sidebar__title { font-weight: 700; font-size: 1.5rem; color: #0E5E7E; margin-bottom: 6px; padding-bottom: 10px; border-bottom: 2px solid #D7EDF5; }
.kiku-sidebar__list li { border-bottom: 1px dashed #D7EDF5; }
.kiku-sidebar__list li:last-child { border-bottom: none; }
.kiku-sidebar__list a { display: flex; align-items: center; gap: 8px; padding: 12px 4px; font-size: 1.4rem; color: #2C3E46; text-decoration: none; transition: color 0.2s ease; }
.kiku-sidebar__list a::before { content: "\f105"; font-family: "Font Awesome 6 Free"; font-weight: 900; color: #1E93C4; font-size: 0.9em; }
.kiku-sidebar__list a:hover { color: #1E93C4; opacity: 1; }

/* ============ page-top ============ */
.page-top__link i { color: #fff; }

/* ==========================================================================
 * リデザイン層（参考サイト＝屋島組のデザイン／レイアウトに合わせた上書き）
 *   方針：配色・掲載文言はそのまま。角丸をゼロにし、
 *         「特大英字見出し＋小さな日本語」「写真タイル」「円形矢印ボタン」
 *         「濃色ベタ帯」「罫線ベースの一覧」で構成し直す。
 *   フォント：日本語 Noto Sans JP／英数字 Oswald（condensed）
 * ========================================================================== */

/* ---- ベース ---- */
body {
  font-family: "Noto Sans JP", "YakuHanJP", "游ゴシック体", YuGothic, "Yu Gothic", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  letter-spacing: 0.07em;
  line-height: 2;
}
.font-poppins,
.kiku-logo__en,
.kiku-nav__link .header__nav-en,
.kiku-header__tel,
.kiku-hero__badge,
.kiku-eyebrow,
.kiku-newslist__date,
.kiku-igcard__handle,
.kiku-step__label,
.kiku-biz__num,
.kiku-sales__num,
.kiku-sales__op,
.kiku-article__date,
.sp-nav__en,
.kiku-hist__gen,
.kiku-footer__logo-en,
.footer-bottom__copyright {
  font-family: "Oswald", "Noto Sans JP", sans-serif;
}
.kiku-btn { font-family: "Noto Sans JP", sans-serif; }
.kiku-link-arrow { font-family: "Noto Sans JP", sans-serif; }

/* ---- 角丸ゼロ（円形パーツだけ例外） ---- */
.kiku-btn,
.kiku-media, .kiku-media--43,
.kiku-service-card, .kiku-service-card__img,
.kiku-newslist,
.kiku-join-box, .kiku-igcard, .kiku-igcard__follow, .kiku-step, .kiku-tag,
.kiku-fan__inner,
.kiku-biz-card, .kiku-biz__media, .kiku-biz__box, .kiku-biz__cbox, .kiku-prop,
.kiku-menu-tags li,
.kiku-hotel, .kiku-hotel-insta,
.kiku-check, .kiku-cond, .kiku-cond__badge, .kiku-merit, .kiku-ideal,
.kiku-sales, .kiku-sales__calc, .kiku-cta-box,
.kiku-member-card, .kiku-member-card__more,
.kiku-mmodal__panel, .kiku-mslider, .kiku-mmodal__sns-link,
.kiku-greet__media img, .kiku-hist__body,
.kiku-article img, .kiku-article__thumb, .kiku-article__cat,
.kiku-sidebar, .kiku-hero__badge,
.kiku-header__dm, .kiku-h2-bar::before {
  border-radius: 0;
}

/* ---- 見出し：特大英字＋小さな日本語 ---- */
.kiku-eyebrow {
  font-size: clamp(3.4rem, 6vw, 6rem);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: 0.005em;
  color: #0E5E7E;
  margin-bottom: 6px;
}
.kiku-eyebrow--light { color: #fff; }
.kiku-eyebrow--sm {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #BEEBFB;
  line-height: 1.4;
  margin-bottom: 2px;
}
.kiku-h2 {
  font-size: clamp(1.9rem, 2.5vw, 2.5rem);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: #0E5E7E;
}
.kiku-head-center { margin-bottom: 52px; }
.kiku-head-center .kiku-h2 { margin: 0 0 18px; }
.kiku-head-center p { max-width: 760px; font-size: 1.4rem; line-height: 2.1; }
.kiku-intro__text .kiku-h2 { margin: 0 0 20px; }
.kiku-intro__text p { font-size: 1.4rem; line-height: 2.15; letter-spacing: 0.07em; }

/* ---- ボタン：角ばった塗り／円形矢印＋テキスト ---- */
.kiku-btn {
  font-weight: 700;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  padding: 17px 34px;
}
.kiku-btn:hover { transform: none; opacity: 1; }
.kiku-btn--primary:hover { background: #0E5E7E; }
.kiku-btn--insta:hover  { background: #E0782F; }
.kiku-btn--outline { border: 1px solid #E4B187; }
.kiku-btn--outline:hover { background: #FFF8F0; }
.kiku-btn--sm { font-size: 1.3rem; padding: 13px 24px; }
@media screen and (max-width: 767px) {
  .kiku-btn { padding: 17px 25px; }
}

/* 円形矢印＋テキスト（参考サイトの主要リンク表現） */
.kiku-cbtn {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  text-decoration: none;
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  color: #0E5E7E;
  background: none;
  border: none;
  padding: 0;
}
.kiku-cbtn::before {
  content: "\f054";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 1.4rem;
  color: #fff;
  background: #0E5E7E;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  transition: background 0.3s ease, transform 0.3s ease;
}
.kiku-cbtn i { display: none; }              /* 既存の矢印アイコンは円形側に置き換える */
.kiku-cbtn:hover { opacity: 1; color: #1E93C4; }
.kiku-cbtn:hover::before { background: #1E93C4; transform: translateX(4px); }
.kiku-cbtn--light { color: #fff; }
.kiku-cbtn--light::before { background: #fff; color: #0E5E7E; }
.kiku-cbtn--light:hover { color: #BEEBFB; }
.kiku-cbtn--light:hover::before { background: #BEEBFB; color: #0E5E7E; }
@media screen and (max-width: 640px) {
  .kiku-cbtn { gap: 12px; font-size: 1.35rem; }
  .kiku-cbtn::before { width: 44px; height: 44px; font-size: 1.2rem; }
}
.kiku-link-arrow { font-weight: 700; letter-spacing: 0.08em; }

/* ---- ヘッダー ---- */
.kiku-header { box-shadow: 0 1px 0 rgba(14, 94, 126, 0.12); }
.kiku-logo {
  background: #fff;
  border-right: 1px solid #E3EEF3;
  padding: 14px 30px;
  gap: 4px;
}
.kiku-logo__ja { letter-spacing: 0.1em; }
.kiku-logo__en { font-weight: 500; letter-spacing: 0.2em; color: #1E93C4; }
.kiku-nav { gap: 0; }
.kiku-nav .header__nav-item + .header__nav-item { border-left: 1px solid #E3EEF3; }
.kiku-nav__link { padding: 16px 20px; gap: 5px; }
.kiku-nav__link .header__nav-en { font-weight: 600; font-size: 1.1rem; letter-spacing: 0.1em; }
.kiku-nav__link .header__nav-ja { font-size: 1.35rem; letter-spacing: 0.06em; }
.kiku-nav__link.is-current { background: #F6FCFE; }   /* 現在ページは背景と文字色で表示（下線なし） */
.kiku-header__tel { font-weight: 600; font-size: 2.4rem; letter-spacing: 0.02em; }
.kiku-header__hours { font-size: 1.15rem; letter-spacing: 0.06em; }
.kiku-header__dm { padding: 0 26px; margin: 0; align-self: stretch; font-weight: 700; font-size: 1.35rem; }
.kiku-header__dm:hover { transform: none; }

/* ---- TOP ヒーロー：左下寄せ・曲線と光の円は使わない ---- */
.kiku-hero::after { display: none; }
.kiku-hero__deco { display: none; }
.kiku-hero__inner { align-items: center; }   /* キャッチコピーは上下中央 */
.kiku-hero__overlay { background: linear-gradient(180deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.20) 45%, rgba(0,0,0,.55) 100%); }
.kiku-hero__badge {
  background: #0E5E7E;
  backdrop-filter: none;
  font-weight: 500;
  font-size: 1.3rem;
  letter-spacing: 0.2em;
  padding: 9px 20px;
}
.kiku-hero__title {
  margin: 22px 0 0;
  font-size: clamp(3rem, 5.4vw, 8.4rem);
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-shadow: 0 3px 20px rgba(0, 0, 0, 0.45);
}

/* ---- 導入：写真は枠なしフルブリード寄り ---- */
.kiku-media { border: none; box-shadow: none; }

/* ---- 事業紹介：写真タイル＋左下ラベル ---- */
.kiku-services { background: #F6FCFE; border-color: #E3EEF3; }
.kiku-service-grid { gap: 26px 20px; }
.kiku-service-card {
  position: relative;
  background: none;
  border: none;
  padding: 0;
}
.kiku-service-card:hover { transform: none; box-shadow: none; }
.kiku-service-card__img { position: relative; aspect-ratio: 4 / 3; }
.kiku-service-card__img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(6, 50, 68, 0.72) 100%);
}
.kiku-service-card__img img { transition: transform 0.6s ease; }
.kiku-service-card:hover .kiku-service-card__img img { transform: scale(1.05); }
.kiku-service-card__title {
  position: relative;
  z-index: 2;
  margin: -58px 0 0;              /* 負のマージンで写真の下部に重ねる */
  padding: 0 18px 18px;
  text-align: left;
  pointer-events: none;
}
.kiku-service-card__title h3 {
  font-size: 1.9rem;
  letter-spacing: 0.08em;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}
.kiku-service-card--community .kiku-service-card__title h3 { color: #fff; }
.kiku-service-card__divider { display: none; }
.kiku-service-card p { padding: 16px 2px 0; font-size: 1.3rem; line-height: 2; }
.kiku-service-card--community { background: none; }

/* ---- お知らせ：罫線ベース ---- */
.kiku-newslist { border: none; border-top: 1px solid #DCE8ED; }
.kiku-newslist__row { padding: 22px 6px; border-bottom: 1px solid #DCE8ED; }
.kiku-newslist__row:last-child { border-bottom: 1px solid #DCE8ED; }
.kiku-newslist__date { font-weight: 500; font-size: 1.4rem; letter-spacing: 0.06em; color: #1E93C4; }
.kiku-newslist__cat { border-radius: 0; font-size: 1.15rem; letter-spacing: 0.08em; }
.kiku-newslist__title { font-weight: 700; letter-spacing: 0.06em; }

/* ---- 代表挨拶：本文が左・写真が右（参考サイトの Greeting 型） ---- */
.kiku-greet-sec { background: #F6FCFE; }
.kiku-greet {
  background: #fff;
  border: 1px solid #DCE8ED;
  padding: clamp(26px, 4vw, 56px);
  align-items: flex-start;
  flex-direction: row-reverse;      /* 写真を右へ */
}
.kiku-greet__media { flex: 0 0 300px; max-width: 300px; }
.kiku-greet__caption { text-align: left; }
.kiku-greet__gen { font-size: 1.2rem; letter-spacing: 0.1em; }
.kiku-greet__name { font-size: 2.2rem; letter-spacing: 0.1em; }
.kiku-greet__body p { font-size: 1.4rem; line-height: 2.2; letter-spacing: 0.07em; }
.kiku-greet__sign { border-top: 1px solid #DCE8ED; }
@media screen and (max-width: 767px) {
  .kiku-greet__media { margin: 0 auto 24px; }
  .kiku-greet__caption { text-align: center; }
}

/* ---- 会社沿革：年表（左に世代ラベル・右に本文／罫線区切り） ---- */
.kiku-history::before { display: none; }
.kiku-hist { gap: 0; align-items: stretch; border-top: 1px solid #DCE8ED; }
.kiku-hist + .kiku-hist { margin-top: 0; }
.kiku-history .kiku-hist:last-child { border-bottom: 1px solid #DCE8ED; }
.kiku-hist__mark { flex: 0 0 190px; padding: 30px 24px 30px 0; }
.kiku-hist__gen {
  width: auto;
  height: auto;
  border: none;
  border-radius: 0;
  background: #0E5E7E;
  color: #fff;
  font-weight: 500;
  font-size: 1.6rem;
  letter-spacing: 0.12em;
  padding: 8px 0;
  display: block;
  text-align: center;
}
.kiku-hist--now .kiku-hist__gen { background: #FF9B54; color: #fff; }
.kiku-hist__body {
  background: none;
  border: none;
  box-shadow: none;
  padding: 30px 0 34px;
}
.kiku-hist__title { font-size: clamp(1.9rem, 2.4vw, 2.2rem); letter-spacing: 0.08em; }
.kiku-hist__person {
  border-radius: 0;
  background: none;
  padding: 0;
  margin: 8px 0 14px;
  font-size: 1.4rem;
  letter-spacing: 0.08em;
  color: #1E93C4;
}
.kiku-hist__body p { font-size: 1.35rem; line-height: 2.15; }
.kiku-hist__list li::before { border-radius: 0; width: 8px; height: 2px; top: 1.1em; }
@media screen and (max-width: 767px) {
  .kiku-hist { flex-direction: column; }
  .kiku-hist__mark { flex: none; padding: 22px 0 0; max-width: 140px; }
  .kiku-hist__body { padding: 14px 0 26px; }
}

/* ---- わいわい団参加案内 ---- */
.kiku-join-sec { padding-left: 0; padding-right: 0; }
.kiku-join-box { max-width: none; padding: clamp(44px, 6vw, 84px) clamp(24px, 5vw, 64px); }
.kiku-join { max-width: 1200px; margin: 0 auto; }
.kiku-igcard { border-color: #EFDECE; }
.kiku-step { box-shadow: none; }
.kiku-tag { font-weight: 700; letter-spacing: 0.12em; padding: 7px 16px; }
.kiku-join__body .kiku-h2 { color: #B4571A; }
.kiku-join__body p { font-size: 1.35rem; line-height: 2.1; }

/* ---- メンバー誘導（扇形） ---- */
.kiku-members-cta { background: linear-gradient(115deg, #0E5E7E 0%, #1E93C4 100%); }
.kiku-members-cta__circle { display: none; }
.kiku-members-cta__title .kiku-h2 { color: #fff; }
.kiku-members-cta__desc p { font-size: 1.4rem; line-height: 2.15; }
.kiku-members-cta__desc .kiku-cbtn { justify-content: center; }
.kiku-fan__inner { border-width: 1px; border-color: rgba(255,255,255,.45); }
.kiku-fan__card.is-center .kiku-fan__inner { border-width: 2px; }
.kiku-fan__name { background: rgba(6, 50, 68, .72); }
.kiku-fan__name span:first-child { border-radius: 0; width: 10px; height: 2px; }
.kiku-fan__name span:last-child { font-size: 1.3rem; letter-spacing: 0.06em; }

/* ---- 下層ページヒーロー：濃色ベタ＋左下に英小＋日本語特大 ---- */
.kiku-phero {
  background-color: #0E5E7E;
  background-image: linear-gradient(115deg, #0E5E7E 0%, #1E93C4 100%);
  padding: 0 24px;
}
.kiku-phero__inner {
  max-width: 1200px;
  padding: clamp(52px, 8vw, 104px) 24px clamp(30px, 5vw, 48px);
  text-align: left;
}
.kiku-phero__title {
  margin: 0;
  font-size: clamp(2.8rem, 5vw, 5rem);
  letter-spacing: 0.1em;
  color: #fff;
}

/* ---- 事業内容ページ ---- */
.kiku-biz-sec { background: #fff; }
.kiku-biz-card { border-color: #DCE8ED; box-shadow: none; }
/* 事業見出しは濃色のベタ帯（参考サイトの濃色パネル見出し） */
.kiku-biz__head {
  align-items: center;
  gap: 16px;
  margin: 0 0 26px;
  padding: 16px 24px;
  background: #0E5E7E;
}
.kiku-biz__num { font-weight: 600; font-size: 3.2rem; line-height: 1; color: #BEEBFB; }
.kiku-biz__num--orange { color: #FFD9B8; }
.kiku-biz__head h2 { font-size: clamp(1.9rem, 2.6vw, 2.4rem); letter-spacing: 0.08em; color: #fff; }
@media screen and (max-width: 640px) {
  .kiku-biz__head { padding: 14px 16px; gap: 12px; }
  .kiku-biz__num { font-size: 2.6rem; }
}
.kiku-biz__col p, .kiku-biz__lead { font-size: 1.35rem; line-height: 2.15; }
.kiku-biz__box-title { letter-spacing: 0.08em; }
.kiku-biz__cbox-title { letter-spacing: 0.08em; }
.kiku-hotel { border: none; }
.kiku-hotel__body { padding: 20px 2px 0; }
.kiku-hotel__body h3 { font-size: 1.9rem; letter-spacing: 0.08em; }
.kiku-hotel-insta { padding: 22px 24px; }

/* 管理物件ごとの写真ブロック（不動産管理業カード内で2列に並べる） */
.kiku-props-gallery {
  flex: 1 1 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px 28px;
  padding-top: 4px;
}
.kiku-props-gallery .kiku-biz__box-title { margin-bottom: 10px; }
@media screen and (max-width: 767px) {
  .kiku-props-gallery { grid-template-columns: minmax(0, 1fr); gap: 26px; }
}

/* 写真がまだ無い施設は、隣のビューアのサムネイル列と同じ高さを空けて見出し位置を揃える
   （8px margin + 72px サムネ + 6px padding = 86px） */
.kiku-hotel__thumbs-spacer { height: 86px; }
@media screen and (max-width: 640px) {
  .kiku-hotel__thumbs-spacer { display: none; }
}

/* 施設写真ビューア（大画像＋横スクロールのサムネイル） */
.kiku-viewer { width: 100%; max-width: 860px; margin: 0; min-width: 0; }
.kiku-viewer__stage {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #E3F1F6;
}
.kiku-viewer__stage img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-viewer__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.86);
  color: #0E5E7E;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease;
}
.kiku-viewer__nav:hover { background: #fff; }
.kiku-viewer__nav--prev { left: 12px; }
.kiku-viewer__nav--next { right: 12px; }
.kiku-viewer__cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 34px 16px 12px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(6, 50, 68, 0.78) 62%);
  color: #fff;
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  line-height: 1.5;
  pointer-events: none;
}
.kiku-viewer__count {
  position: absolute;
  right: 12px;
  top: 12px;
  padding: 4px 12px;
  background: rgba(6, 50, 68, 0.72);
  color: #fff;
  font-size: 1.2rem;
  letter-spacing: 0.06em;
}
.kiku-viewer__thumbs {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: 72px;
  grid-auto-columns: 96px;
  gap: 8px;
  margin-top: 8px;
  padding-bottom: 6px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-color: #9EC9D8 #E3F1F6;
}
.kiku-viewer__thumbs::-webkit-scrollbar { height: 8px; }
.kiku-viewer__thumbs::-webkit-scrollbar-track { background: #E3F1F6; }
.kiku-viewer__thumbs::-webkit-scrollbar-thumb { background: #9EC9D8; }
.kiku-viewer__thumb {
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  background: #E3F1F6;
  cursor: pointer;
  opacity: 0.62;
  transition: opacity 0.2s ease;
}
.kiku-viewer__thumb:hover { opacity: 1; }
.kiku-viewer__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-viewer__thumb.is-active { opacity: 1; outline: 2px solid #1E93C4; outline-offset: -2px; }
@media screen and (max-width: 640px) {
  .kiku-viewer__nav { width: 36px; height: 36px; font-size: 1.4rem; }
  .kiku-viewer__thumbs { grid-template-rows: 56px; grid-auto-columns: 76px; gap: 6px; }
  .kiku-viewer__cap { font-size: 1.15rem; padding: 26px 12px 9px; }
}

/* ---- わいわい団ページ ---- */
.kiku-h2-bar { color: #0E5E7E; letter-spacing: 0.08em; font-size: clamp(2rem, 2.8vw, 2.6rem); }
.kiku-h2-bar::before { width: 5px; height: 30px; }
.kiku-cond__title, .kiku-merit__title { letter-spacing: 0.08em; }
.kiku-sales__num, .kiku-sales__op { font-weight: 600; }
.kiku-cta-box h2 { letter-spacing: 0.08em; color: #0E5E7E; }

/* ---- メンバー紹介グリッド：枠なし・写真＋名前 ---- */
/* 見出し（英字→日本語）を先に出し、リード文はその下へ */
.kiku-member-intro { display: flex; flex-direction: column; }
.kiku-member-intro > .kiku-eyebrow { order: 1; }
.kiku-member-intro > .kiku-h2 { order: 2; }
.kiku-member-intro > p { order: 3; margin: 22px auto 0; }
.kiku-member-grid { gap: 30px 20px; }
.kiku-member-card { background: none; border: none; }
.kiku-member-card:hover { transform: none; box-shadow: none; }
.kiku-member-card > img { transition: transform 0.6s ease; }
.kiku-member-card:hover > img { transform: scale(1.05); }
.kiku-member-card__body { padding: 14px 2px 0; }
.kiku-member-card__name { font-size: 1.6rem; letter-spacing: 0.06em; }
.kiku-member-card__desc { font-size: 1.25rem; line-height: 2; }
.kiku-member-card__more {
  background: none;
  color: #1E93C4;
  padding: 0;
  margin-top: 10px;
  font-size: 1.25rem;
  letter-spacing: 0.08em;
}
.kiku-member-card__more i { font-size: 1rem; }
.kiku-member-card:hover .kiku-member-card__more { background: none; color: #FF9B54; }
/* 画像を切り出す枠（hoverズームのはみ出しを抑える） */
.kiku-member-card { overflow: hidden; }

/* ---- メンバー詳細モーダル ---- */
.kiku-mmodal .kiku-eyebrow--sm { color: #1E93C4; }   /* 白背景なので濃いめに */
.kiku-mmodal__name { font-size: clamp(1.9rem, 2.6vw, 2.4rem); letter-spacing: 0.08em; }
.kiku-mmodal__desc { font-size: 1.35rem; line-height: 2.15; }
.kiku-mmodal__sns-link { font-weight: 700; font-size: 1.25rem; letter-spacing: 0.08em; }
.kiku-mmodal__sns { border-top: 1px solid #DCE8ED; }
.kiku-greet__sign, .kiku-mmodal__sns { border-top-style: solid; }

/* 詳細モーダル：左に写真＋サムネイル小窓／右に内容（参考スクショの構成） */
.kiku-mmodal__panel { width: min(1020px, 100%); display: flex; flex-direction: column; }
.kiku-mmodal__inner { display: flex; flex-wrap: wrap; align-items: stretch; }
.kiku-mmodal__figure { flex: 1 1 520px; min-width: 300px; display: flex; flex-direction: column; background: #F6FCFE; }
.kiku-mmodal__body { flex: 1 1 380px; min-width: 280px; justify-content: flex-start; }
.kiku-mslider { flex: 0 0 auto; width: 100%; background: #F6FCFE; border: none; display: flex; }
/* 紹介文が長いメンバーでも写真が縦に引き伸ばされないよう上限を設ける */
.kiku-mslider__stage { aspect-ratio: auto; height: auto; flex: 1 1 auto; min-height: min(48vh, 440px); max-height: min(60vh, 520px); }
.kiku-mslider__img { object-fit: contain; }          /* 縦横比の違う写真を切らずに収める */
.kiku-mslider__btn {
  width: 46px;
  height: 56px;
  border-radius: 0;
  background: rgba(14, 94, 126, 0.82);
  color: #fff;
  box-shadow: none;
}
.kiku-mslider__btn:hover { background: #1E93C4; }
.kiku-mslider__btn--prev { left: 0; }
.kiku-mslider__btn--next { right: 0; }
.kiku-mthumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px clamp(12px, 2vw, 20px);
  background: #fff;
  border-top: 1px solid #DCE8ED;
}
.kiku-mthumbs[hidden] { display: none; }
.kiku-mthumbs__track {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scroll-behavior: smooth;
  flex: 1 1 auto;
  scrollbar-width: none;
}
.kiku-mthumbs__track::-webkit-scrollbar { display: none; }
.kiku-mthumbs__item {
  flex: 0 0 auto;
  width: 96px;
  aspect-ratio: 4 / 3;
  padding: 0;
  border: 2px solid transparent;
  background: #F6FCFE;
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.25s ease, opacity 0.25s ease;
  opacity: 0.75;
}
.kiku-mthumbs__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kiku-mthumbs__item:hover { opacity: 1; }
.kiku-mthumbs__item.is-active { border-color: #FF9B54; opacity: 1; }
.kiku-mthumbs__btn {
  flex: none;
  width: 26px;
  height: 40px;
  border: none;
  background: #E4F3FB;
  color: #0E5E7E;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s ease, color 0.25s ease;
}
.kiku-mthumbs__btn:hover { background: #0E5E7E; color: #fff; }
.kiku-mthumbs.is-static .kiku-mthumbs__btn { display: none; }
/* 閉じるボタンはパネル内をスクロールしても右上に留める */
.kiku-mmodal__close {
  position: sticky;
  top: 0;
  right: auto;
  align-self: flex-end;
  margin-bottom: -46px;
  border-radius: 0;
  background: #0E5E7E;
  color: #fff;
  width: 46px;
  height: 46px;
  flex: 0 0 auto;        /* パネルが縦flexのため、縮んで横長になるのを防ぐ */
  z-index: 5;
}
.kiku-mmodal__close:hover { background: #FF9B54; }
@media screen and (max-width: 767px) {
  .kiku-mmodal__inner { display: block; }              /* スマホは縦積み */
  .kiku-mslider { border-radius: 0; }
  .kiku-mslider__stage { height: min(40vh, 320px); }
  .kiku-mthumbs__item { width: 76px; }
}
/* ハンバーガー（1100px以下で右上に固定表示）と閉じるボタンが重ならないよう、パネルをボタンの下から始める */
@media screen and (max-width: 1100px) {
  .kiku-mmodal { padding-top: 64px; }
  .kiku-mmodal__panel { max-height: calc(100vh - 88px); }
}
@media screen and (max-width: 767px) {
  .kiku-mmodal { padding-top: 64px; }
  .kiku-mmodal__panel { max-height: calc(100vh - 78px); }
}

/* 一覧（クリック前）は写真と名前だけ ---- */
.kiku-member-card__desc { display: none; }
.kiku-member-card__more { margin-top: 6px; }

/* ---- 記事・サイドバー ---- */
.kiku-article h2 { letter-spacing: 0.06em; }
.kiku-sidebar { border-radius: 0; }
.kiku-sidebar__list li { border-bottom-style: solid; border-bottom-color: #E3EEF3; }

/* ---- フッター：上に白いCTA帯／本体は濃色グラデ ---- */
.kiku-footer { position: relative; }
.kiku-footer__cta {
  max-width: 1240px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  background: #fff;
  border: 1px solid #DCE8ED;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 4vw, 56px);
  padding: 26px clamp(20px, 4vw, 48px);
  transform: translateY(50%);
}
.kiku-footer__cta-tel { text-align: center; }
.kiku-footer__cta-tel .kiku-header__tel { font-size: clamp(2.8rem, 4vw, 4rem); }
.kiku-footer__cta-hours { display: block; font-size: 1.2rem; letter-spacing: 0.08em; color: #7C868C; margin-top: 2px; }
.kiku-footer__body {
  background: linear-gradient(115deg, #0B4C66 0%, #0E5E7E 60%, #1E93C4 100%);
  padding: calc(clamp(48px, 6vw, 72px) + 60px) 0 clamp(36px, 5vw, 56px);
}
.kiku-footer__logo-en { letter-spacing: 0.2em; }
.kiku-footer__heading { letter-spacing: 0.12em; }
.kiku-footer__bottom { background: #0B4C66; }
.footer-bottom__copyright { font-weight: 500; letter-spacing: 0.1em; font-size: 1.15rem; }
@media screen and (max-width: 767px) {
  .kiku-footer__cta { transform: none; margin: 0 20px -1px; padding: 22px 20px; text-align: center; }
  .kiku-footer__body { padding-top: clamp(48px, 6vw, 72px); }
}

/* ---- スマホ調整 ---- */
@media screen and (max-width: 1100px) {
  .kiku-logo { border-right: none; }              /* ハンバーガー表示幅ではロゴの区切り線を消す */
}
@media screen and (max-width: 640px) {
  /* メンバー一覧は2列（1列だと縦に長くなりすぎる） */
  .kiku-member-grid { grid-template-columns: repeat(2, 1fr); gap: 22px 12px; }
  .kiku-member-card__name { font-size: 1.35rem; line-height: 1.6; }
  .kiku-member-card__more { font-size: 1.15rem; }
  /* 並ぶボタンは横幅を揃えて押しやすくする */
  .kiku-hotel__links .kiku-btn,
  .kiku-footer__col .kiku-btn,
  .kiku-hotel-insta .kiku-btn { width: 100%; }
  .kiku-btn-row .kiku-btn { width: 100%; }
  /* 見出しの英字は行間を詰める */
  .kiku-eyebrow { line-height: 1; }
}

/* ============ 動画の右下キャプション（TOPヒーロー／MESSAGE動画） ============ */
.kiku-video-cap {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 4;
  padding: 11px 20px;
  background: rgba(6, 50, 68, 0.78);
  color: #fff;
  font-size: 1.35rem;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
.kiku-media-wrap { position: relative; width: 100%; }                     /* 動画と同じ大きさ＝キャプションの位置基準 */
.kiku-media-wrap .kiku-media { border-radius: 0; }                        /* キャプションを角丸なしで置くため動画も直角にする */
@media screen and (max-width: 640px) {
  .kiku-video-cap { padding: 8px 12px; font-size: 1.15rem; }
}

/* ============ 事業紹介カードのリンク化（各事業ページへ遷移） ============ */
a.kiku-service-card { display: block; text-decoration: none; color: inherit; }
a.kiku-service-card:hover { opacity: 1; }
.kiku-service-card__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 0 2px;
  font-weight: 700;
  font-size: 1.3rem;
  letter-spacing: 0.06em;
  color: #1E93C4;
}
.kiku-service-card__more i { font-size: 0.9em; transition: transform 0.25s ease; }
a.kiku-service-card:hover .kiku-service-card__more i { transform: translateX(4px); }
.kiku-service-card--community .kiku-service-card__more { color: #B4571A; }

/* ============ PCナビ6項目化に伴う幅調整（1101〜1400px） ============ */
@media screen and (min-width: 1101px) and (max-width: 1400px) {
  .kiku-logo { padding: 14px 18px; }
  .kiku-logo__ja { font-size: 1.9rem; }
  .kiku-nav__link { padding: 16px 11px; }
  .kiku-nav__link .header__nav-ja { font-size: 1.25rem; letter-spacing: 0.02em; }
  .kiku-nav__link .header__nav-en { font-size: 1rem; letter-spacing: 0.06em; }
  .kiku-header__contact { padding: 0 14px; }
  .kiku-header__tel { font-size: 2rem; }
  .kiku-header__dm { padding: 0 16px; font-size: 1.25rem; }
}

/* ============ SPメニュー：ホーム直下のサブリンク（ページ内リンク用・ナビ項目とは別デザイン） ============ */
.sp-nav__item--sub { background: rgba(255, 255, 255, 0.06); }
.sp-nav__sub { display: flex; flex-direction: column; padding: 6px 10px 8px 22px; }
.sp-nav__sublink {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 4px;
  color: #DCF1FA;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-align: left;
}
.sp-nav__sublink i { font-size: 0.85em; color: #7FD0EE; }
.sp-nav__sublink:hover { color: #fff; opacity: 1; }
