@charset "UTF-8";

.section.banner-section {
  display: none;
}
/* ==========================================================================
   KIP WEBSITE / 共通スタイルシート
   --------------------------------------------------------------------------
   01. 全ページ共通
   02. 下層ページ共通
   03. 各ページ固有
   04. 旧インライン指定の共通ユーティリティ
   ========================================================================== */

/* ===== 01. 全ページ共通 ===== */
:root {
  --navy: #16305e;
  --blue: #1a5fb4;
  --blue-dark: #124a8f;
  --blue-light: #eaf2fb;
  --blue-pale: #ebf3f9;
  --orange: #f2761d;
  --orange-dark: #d9620e;
  --text: #2b3443;
  --muted: #6b7686;
  --line: #dde6f1;
  --white: #fff;
  --radius: 14px;
  --shadow: 0 6px 24px rgba(22, 48, 94, 0.08);
  --serif: "Noto Serif JP", serif;
  --sans: "Noto Sans JP", sans-serif;

  /* --------------------------------------------------------------------
     文字サイズ（一元管理）
     本文1rem(=16px)を基準にした8段のモジュラースケール。
     見出し側は 1.333倍（Perfect Fourth）で刻む。
     下2段(12px/14px)は可読性の下限なので比率から外してある。
     倍率: 0.75 / 0.875 / 1 / 1.3125 / 1.75 / 2.3125 / 3.125 / 4.5
     サイズの変更はこのブロックだけで完結する。
     CSS内の font-size は原則すべてこの変数を参照している。

     ■ 全体を一括で拡大縮小する場合
       直下の font-size の % を変えるだけで、比率を保ったまま全体が変わる。
       100% = 16px基準 / 93.75% = 15px基準 / 106.25% = 17px基準
       ※ % 指定なのでブラウザの文字サイズ設定にも追従する

     ■ スケール外の実数値（装飾グリフ。rem なので一括拡縮には追従する）
       ・.logo-en 0.5625rem ... ロゴの英字副題
       ・各 ::before / ::after 0.5〜0.8125rem ... 連番マーカー
       ・.circle-arrow 0.8125rem ... 矢印グリフ
     -------------------------------------------------------------------- */
  font-size: 100%;

  --fs-xs: 0.675rem;
  --fs-sm: 0.875rem; /* 14px  ナビ・ボタン・リンク・表・カード説明文 */
  --fs-base: 1rem; /* 16px  本文 / h6 */
  --fs-lg: 1.3125rem; /* 21px  カード見出し / h5 / ロゴ */
  --fs-xl: 1.75rem; /* 28px  h4 */
  --fs-1xl: 2rem;
  --fs-2xl: 2.3125rem; /* 37px  h3 */
  --fs-3xl: 2.725rem; /* 50px  セクション見出し / h2 */
  --fs-4xl: 3.25rem;

  /* --------------------------------------------------------------------
     役割別サイズ。画面幅による出し分けはこの変数だけで行う
     （:root の下にあるメディアクエリと対で見る）。
     コンポーネント側にメディアクエリを書く必要はない。
     -------------------------------------------------------------------- */
  --fs-title: clamp(
    var(--fs-3xl),
    5.1vw,
    var(--fs-4xl)
  ); /* h1・ページタイトル */
  --fs-head-1: var(--fs-3xl); /* h2・セクション見出し */
  --fs-head-2: var(--fs-2xl); /* h3 */
  --fs-head-3: var(--fs-xl); /* h4 */
  --fs-head-4: var(--fs-lg); /* h5・カード見出し */
  --fs-logo: var(
    --fs-lg
  ); /* 21px ロゴ。ヘッダー幅の制約があるため
                                   見出しの段とは切り離して管理する */
}

/* 文字サイズのブレークポイント。役割別変数を差し替えるだけで
   サイト全体の該当箇所が一括で切り替わる。 */
@media (max-width: 760px) {
  :root {
    --fs-title: var(--fs-1xl); /* 37px  h1 */
    --fs-head-1: var(--fs-xl); /* 28px  h2・セクション見出し */
    --fs-head-2: var(--fs-lg); /* 21px  h3 */
    --fs-head-3: var(--fs-lg); /* 21px  h4 */
    --fs-head-4: var(--fs-base); /* 16px  カード見出し */
    --fs-logo: var(--fs-base); /* 16px  ロゴ */
  }
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}

@media (max-width: 760px) {
  html {
    scroll-padding-top: 84px;
  }
}

/* 基本タイポグラフィ。各コンポーネント側の個別指定が優先されるため、
   ここは個別指定を持たない見出し・新規マークアップの基準値として働く。
   line-height と font-weight は既存デザインを変えないよう各所の指定に委ねる。 */
body {
  font-size: var(--fs-base);
}

h1 {
  font-size: var(--fs-title);
}

h2 {
  font-size: var(--fs-head-1);
}

h3 {
  font-size: var(--fs-head-2);
}

h4 {
  font-size: var(--fs-head-3);
}

h5 {
  font-size: var(--fs-head-4);
}

h6 {
  font-size: var(--fs-base);
}

@media (max-width: 760px) {
}

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

img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.container {
  width: min(1180px, 100% - 32px);
  margin-inline: auto;
}

.ph img {
  position: relative;
  z-index: 1;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: 700;
  border-radius: 8px;
  transition: 0.2s;
  white-space: nowrap;
}

.btn svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.btn-blue {
  background: var(--blue);
  color: #fff;
}

.btn-blue:hover {
  background: var(--blue-dark);
}

.btn-orange {
  background: var(--orange);
  color: #fff;
}

.btn-orange:hover {
  background: var(--orange-dark);
}

.btn-outline:hover {
  background: var(--blue);
  color: #fff;
}

.arrow {
  font-family: var(--sans);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 76px;
}

.logo {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.logo-ja {
  font-family: var(--serif);
  font-size: var(--fs-logo);
  font-weight: 600;
  color: var(--navy);
  letter-spacing: 0.06em;
}

.logo-en {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.5625rem; /* 9px */
  letter-spacing: 0.25em;
  color: var(--blue);
  margin-top: 2px;
}

.logo-en::before,
.logo-en::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--blue);
  opacity: 0.5;
}

.gnav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.gnav ul {
  display: flex;
  gap: 22px;
  font-size: var(--fs-sm);
  font-weight: 500;
}

.gnav ul a {
  position: relative;
  padding: 4px 0;
}

.gnav ul a.current::after,
.gnav ul a:hover::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 2px;
  background: var(--blue);
}

.gnav-btns {
  display: flex;
  gap: 8px;
}

.gnav-btns .btn {
  font-size: var(--fs-sm);
  padding: 10px 16px;
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: none;
  background: none;
  cursor: pointer;
}

.menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--navy);
  margin: 5px auto;
  transition: 0.3s;
}

.footer-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.4fr;
  gap: 32px;
  padding-bottom: 28px;
}

.footer h4 {
  font-size: var(--fs-base);
  color: var(--navy);
  font-weight: 600;
  margin-bottom: 8px;
}

.footer li {
  font-size: var(--fs-sm);
  line-height: 2;
}

.footer li a:hover {
  color: var(--blue);
}

.footer-logo {
  justify-self: end;
  text-align: left;
}

.footer-logo .logo-ja {
  font-size: var(--fs-logo);
}

.footer-addr {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-sm);
  margin-top: 14px;
}

.footer-addr svg {
  width: 16px;
  height: 16px;
  color: var(--navy);
}

.footer-bottom {
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 0 20px;
  font-size: var(--fs-sm);
  color: var(--muted);
}

.footer-bottom ul {
  display: flex;
  gap: 14px;
}

.footer-bottom li {
  font-size: var(--fs-sm);
  line-height: 1.7;
}

.footer-bottom small {
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  .gnav {
    /* ドロワーの上端位置。ブレークポイントごとに --gnav-top だけ差し替える */
    --gnav-top: 76px;
    position: fixed;
    inset: var(--gnav-top) 0 auto 0;
    /* 内容が画面より高いときにドロワー内でスクロールできるようにする。
       ドロワー内はドロップダウンが常時展開なので、小さい端末では必ず溢れる。
       dvh はモバイルのURLバーを除いた実際の表示高さ
       （非対応ブラウザは直前の vh 版が使われる） */
    max-height: calc(100vh - var(--gnav-top));
    max-height: calc(100dvh - var(--gnav-top));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #fff;
    flex-direction: column;
    align-items: stretch;
    /* 下端の余白は iPhone のホームバー分を足す */
    padding: 16px 24px calc(28px + env(safe-area-inset-bottom));
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-120%);
    opacity: 0;
    transition: 0.35s;
    pointer-events: none;
  }

  .gnav.open {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }

  .gnav ul {
    flex-direction: column;
    gap: 0;
  }

  .gnav ul a {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
  }

  .gnav ul a::after {
    display: none;
  }

  .gnav-btns .btn {
    flex: 1;
    padding: 14px;
  }

  .menu-toggle {
    display: block;
  }

  .menu-toggle.open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  .menu-toggle.open span:nth-child(2) {
    opacity: 0;
  }

  .menu-toggle.open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
}

.gnav > ul {
  display: flex;
  align-items: center;
  gap: 22px;
}

.gnav > ul > li {
  position: relative;
}

.nav-parent {
  position: relative;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
}

.nav-parent .nav-caret {
  font-size: var(--fs-sm);
  color: var(--blue);
  transition: 0.2s;
}

.nav-item-has-sub.open > .nav-parent .nav-caret {
  transform: rotate(180deg);
}

.nav-parent:hover,
.nav-parent.active {
  color: var(--blue);
}

.gnav .submenu {
  display: none !important;
  position: absolute;
  z-index: 120;
  top: calc(100% + 12px);
  left: -18px;
  min-width: 290px;
  padding: 8px 0;
  gap: 0 !important;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(22, 48, 94, 0.12);
}

.nav-item-has-sub.open > .submenu {
  display: flex !important;
}

.gnav .submenu li {
  width: 100%;
}

.gnav .submenu a {
  display: block;
  width: 100%;
  padding: 10px 16px;
  font-size: var(--fs-sm);
  line-height: 1.55;
  white-space: nowrap;
}

.gnav .submenu a:hover,
.gnav .submenu a.current {
  background: transparent;
  color: var(--blue);
}

/* 下線はリンク全体ではなく文字の幅だけに引く（疑似要素の線は消して text-decoration を使う） */
.gnav .submenu a:hover::after,
.gnav .submenu a.current::after {
  content: none;
}

.gnav .submenu a:hover,
.gnav .submenu a.current {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.gnav a.is-pending {
  cursor: default;
}

.gnav-btns a.is-pending {
  opacity: 0.72;
}

@media (max-width: 1080px) {
  .gnav > ul {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .gnav > ul > li {
    width: 100%;
  }

  .nav-parent {
    width: 100%;
    justify-content: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    font-weight: 700;
    color: var(--navy);
    cursor: default;
  }

  /* ドロワーではアコーディオンの開閉記号として使うので表示する
     （回転は .nav-item-has-sub.open>.nav-parent .nav-caret が担当） */
  .nav-parent .nav-caret {
    margin-left: auto;
  }

  .gnav .submenu {
    display: none !important;
    position: static;
    min-width: 0;
    padding: 2px 0 5px 16px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  /* アコーディオンで開いたときだけ表示。上の none より後に置いて優先させる */
  .nav-item-has-sub.open > .submenu {
    display: flex !important;
  }

  .gnav .submenu a {
    padding: 9px 0 9px 14px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    white-space: normal;
  }

  .gnav .submenu a:hover,
  .gnav .submenu a.current {
    background: transparent;
    color: var(--blue);
  }
}

.container {
  width: min(1420px, calc(100% - 64px));
}

.header-inner {
  height: 100px;
  padding-top: 0;
  gap: 36px;
}

.gnav {
  gap: 34px;
}

.gnav-btns {
  gap: 12px;
}

.gnav-btns .btn {
  padding: 12px 18px;
}

.footer h4 {
  margin-bottom: 14px;
}

.footer li {
  line-height: 2;
}

.footer-addr {
  margin-top: 20px;
}

.footer-bottom {
  padding: 22px 0 30px;
}

.footer-bottom ul {
  gap: 20px;
}

@media (max-width: 1080px) {
  .container {
    width: min(100% - 48px, 1420px);
  }
}

.logo-ja {
  font-size: var(--fs-logo);
}

/* ===== 02. 下層ページ共通 ===== */
body.site-subpage {
  font-family: var(--sans);
  color: var(--text);
  background: #fff;
  line-height: 1.9;
  font-size: var(--fs-base);
  -webkit-font-smoothing: antialiased;
}

body.site-subpage ul,
body.site-subpage ol {
  list-style: none;
}

body.site-subpage .ph {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #d7e5f5, #a9c5e6);
}

body.site-subpage .ph::after {
  content: attr(data-label);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.94);
  font-size: var(--fs-sm);
  letter-spacing: 0.1em;
}

body.site-subpage .btn-outline {
  border: 1.5px solid var(--blue);
  color: var(--blue);
  background: #fff;
  border-radius: 999px;
  padding: 8px 22px;
  font-size: var(--fs-sm);
}

body.site-subpage .header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(221, 230, 241, 0.7);
}

body.site-subpage .page-hero {
  padding: 28px 0 18px;
}

body.site-subpage .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-bottom: 18px;
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.site-subpage .breadcrumb li {
  display: flex;
  align-items: center;
  gap: 7px;
}

body.site-subpage .breadcrumb li:not(:last-child)::after {
  content: "/";
  color: #aeb9c7;
}

body.site-subpage .breadcrumb a:hover {
  color: var(--blue);
}

body.site-subpage .page-hero-box {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 370px;
  border-radius: 24px;
  overflow: hidden;
  background: var(--blue-pale);
  box-shadow: var(--shadow);
}

body.site-subpage .page-hero-copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 54px 58px;
}

body.site-subpage .page-kicker {
  font-family: var(--serif);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--blue);
  margin-bottom: 12px;
}

body.site-subpage .page-hero h1 {
  font-family: var(--serif);
  font-size: var(--fs-title);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.03em;
  color: var(--navy);
}

body.site-subpage .page-hero-lead {
  margin-top: 24px;
  max-width: 620px;
  font-size: var(--fs-base);
  line-height: 2;
  color: var(--muted);
}

body.site-subpage .page-hero-img {
  position: absolute;
  inset: 0 0 0 35%;
  min-height: 0;
}

body.site-subpage .page-hero-img::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    90deg,
    var(--blue-pale) 0%,
    rgba(244, 248, 253, 0.6) 25%,
    rgba(244, 248, 253, 0) 55%
  );
}

body.site-subpage .local-nav {
  padding: 18px 0 34px;
}

body.site-subpage .local-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 58px;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.site-subpage .local-nav a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

body.site-subpage .local-nav .num {
  font-family: var(--serif);
  font-size: var(--fs-sm);
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.site-subpage .local-nav .arr {
  color: var(--blue);
}

body.site-subpage .sub-section {
  padding: 40px 0;
}

body.site-subpage .sub-section + .sub-section {
  padding-top: 26px;
}

body.site-subpage .sub-panel {
  border-radius: 20px;
  background: var(--blue-pale);
  padding: 42px;
}

body.site-subpage .sub-panel.white {
  background: #fff;
  border: 1px solid var(--line);
}

body.site-subpage .section-label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--serif);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--blue);
}

body.site-subpage .section-title {
  font-family: var(--serif);
  font-size: var(--fs-head-2);
  font-weight: 600;
  line-height: 1.45;
  color: var(--navy);
  letter-spacing: 0.02em;
}

body.site-subpage .info-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  font-size: var(--fs-sm);
}

body.site-subpage .info-table th,
body.site-subpage .info-table td {
  padding: 17px 18px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}

body.site-subpage .info-table tr:last-child th,
body.site-subpage .info-table tr:last-child td {
  border-bottom: 0;
}

body.site-subpage .info-table th {
  width: 27%;
  color: var(--navy);
  font-weight: 700;
  background: #f9fbfe;
}

body.site-subpage .info-table a {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.site-subpage .note {
  margin-top: 16px;
  padding: 17px 20px;
  border-radius: 10px;
  background: #fff;
}

body.site-subpage .note strong {
  display: block;
  color: var(--navy);
  font-size: var(--fs-sm);
  margin-bottom: 3px;
}

body.site-subpage .note p {
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.site-subpage .related {
  padding: 50px 0 34px;
}

body.site-subpage .related-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}

body.site-subpage .related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

body.site-subpage .related-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 24px 22px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  transition: 0.22s;
}

body.site-subpage .related-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
  border-color: #c8d9ed;
}

body.site-subpage .related-card b {
  display: block;
  color: var(--navy);
  font-size: var(--fs-base);
  margin-bottom: 6px;
}

body.site-subpage .related-card small {
  display: block;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.7;
}

body.site-subpage .circle-arrow {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1.5px solid var(--line);
  display: grid;
  place-items: center;
  color: var(--blue);
  flex-shrink: 0;
}

body.site-subpage .related-card:hover .circle-arrow {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

body.site-subpage .consult {
  padding: 34px 0 64px;
}

body.site-subpage .consult-box {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
  padding: 38px 42px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--navy), #234d8b);
  color: #fff;
}

body.site-subpage .consult-box h2 {
  font-family: var(--serif);
  font-size: var(--fs-head-1);
  font-weight: 600;
}

body.site-subpage .consult-box p {
  margin-top: 8px;
  font-size: var(--fs-base);
  opacity: 0.84;
}

body.site-subpage .consult-btns {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

body.site-subpage .consult-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 18px;
  border-radius: 8px;
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
  color: var(--navy);
  white-space: nowrap;
}

body.site-subpage .consult-btn.sub {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.55);
}

body.site-subpage .footer {
  margin-top: 8px;
  border-top: 1px solid var(--line);
  padding: 32px 0 0;
}

@media (max-width: 1080px) {
  body.site-subpage .consult-box {
    grid-template-columns: 1fr;
  }

  body.site-subpage .consult-btns {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  body.site-subpage .header-inner {
    height: 64px;
  }

  body.site-subpage .gnav {
    --gnav-top: 64px;
  }

  body.site-subpage .page-hero {
    padding-top: 16px;
  }

  body.site-subpage .page-hero-box {
    flex-direction: column;
    align-items: stretch;
  }

  body.site-subpage .page-hero-copy {
    padding: 32px 22px;
  }

  body.site-subpage .page-hero-img {
    position: relative;
    inset: auto;
    min-height: 220px;
    order: -1;
  }

  body.site-subpage .page-hero-img::before {
    display: none;
  }

  body.site-subpage .sub-section {
    padding: 26px 0;
  }

  body.site-subpage .sub-panel {
    padding: 26px 20px;
  }

  body.site-subpage .related {
    padding-top: 34px;
  }

  body.site-subpage .consult {
    padding-bottom: 44px;
  }

  body.site-subpage .consult-box {
    padding: 28px 22px;
  }

  body.site-subpage .consult-btns {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  body.site-subpage .footer-inner {
    grid-template-columns: 1fr 1fr;
  }

  body.site-subpage .footer-logo {
    grid-column: 1/-1;
    justify-self: start;
  }
}

@media (max-width: 480px) {
  body.site-subpage .container {
    width: min(100% - 24px, 1180px);
  }

  body.site-subpage .footer-inner {
    grid-template-columns: 1fr;
  }

  body.site-subpage .footer-logo {
    grid-column: auto;
  }
}

body.site-subpage .gnav > ul,
body.site-subpage .gnav ul {
  gap: 28px;
}

body.site-subpage .page-hero {
  padding: 28px 0 28px;
}

body.site-subpage .breadcrumb {
  margin-bottom: 24px;
}

body.site-subpage .page-hero-box {
  min-height: 320px;
  border-radius: 28px;
}

body.site-subpage .page-hero-copy {
  padding: 62px 68px;
}

body.site-subpage .page-hero-img {
  inset: 0 0 0 15%;
  min-height: 0;
}

body.site-subpage .page-hero-lead {
  margin-top: 26px;
}

body.site-subpage .local-nav {
  padding: 24px 0 46px;
}

body.site-subpage .local-nav ul {
  gap: 16px;
}

body.site-subpage .local-nav a {
  min-height: 64px;
  padding: 16px 20px;
}

body.site-subpage .sub-section {
  padding: 62px 0;
}

body.site-subpage .sub-section + .sub-section {
  padding-top: 46px;
}

body.site-subpage .sub-panel {
  padding: 52px;
}

body.site-subpage .section-intro {
  margin-top: 18px;
}

body.site-subpage .split-grid {
  gap: 48px;
}

body.site-subpage .related {
  padding-top: 54px;
}

body.site-subpage .consult {
  padding-bottom: 72px;
}

body.site-subpage .news-page {
  padding-top: 48px;
  padding-bottom: 88px;
}

body.site-subpage .news-panel {
  padding: 48px 52px 56px;
}

body.site-subpage .contact-section {
  padding-top: 34px;
  padding-bottom: 48px;
}

body.site-subpage .faq-contact {
  padding-top: 52px;
  padding-bottom: 82px;
}

body.site-subpage .footer {
  margin-top: 88px;
  padding-top: 60px;
}

body.site-subpage .footer-inner {
  gap: 60px;
  padding-bottom: 50px;
}

@media (max-width: 1080px) {
  body.site-subpage .header-inner {
    height: 88px;
    padding-top: 12px;
  }

  body.site-subpage .gnav {
    --gnav-top: 88px;
  }

  body.site-subpage .page-hero {
    padding-top: 28px;
  }

  body.site-subpage .page-hero-box {
    min-height: 390px;
  }

  body.site-subpage .page-hero-copy {
    padding: 50px 46px;
  }

  body.site-subpage .page-hero-img {
    inset: 0 0 0 32%;
    min-height: 0;
  }

  body.site-subpage .local-nav {
    padding-bottom: 40px;
  }

  body.site-subpage .sub-section {
    padding: 52px 0;
  }

  body.site-subpage .sub-section + .sub-section {
    padding-top: 40px;
  }

  body.site-subpage .sub-panel {
    padding: 42px;
  }

  body.site-subpage .footer {
    margin-top: 72px;
    padding-top: 50px;
  }

  body.site-subpage .footer-inner {
    gap: 44px;
    padding-bottom: 42px;
  }
}

@media (max-width: 760px) {
  body.site-subpage .container {
    width: min(100% - 28px, 1420px);
  }

  body.site-subpage .header-inner {
    height: 68px;
  }

  body.site-subpage .gnav {
    --gnav-top: 68px;
  }

  body.site-subpage .page-hero {
    padding: 18px 0 14px;
  }

  body.site-subpage .breadcrumb {
    margin-bottom: 16px;
  }

  body.site-subpage .page-hero-box {
    min-height: auto;
    border-radius: 20px;
  }

  body.site-subpage .page-hero-copy {
    padding: 32px 22px 36px;
  }

  body.site-subpage .page-hero-img {
    position: relative;
    inset: auto;
    min-height: 0;
    aspect-ratio: 16/10;
  }

  body.site-subpage .page-hero-img::before {
    display: none;
  }
  body.site-subpage .page-hero-lead {
    margin-top: 18px;
  }

  body.site-subpage .local-nav {
    padding: 18px 0 32px;
  }

  body.site-subpage .local-nav ul {
    gap: 10px;
  }

  body.site-subpage .local-nav a {
    min-height: 58px;
    padding: 14px 16px;
  }

  body.site-subpage .sub-section {
    padding: 38px 0;
  }

  body.site-subpage .sub-section + .sub-section {
    padding-top: 30px;
  }

  body.site-subpage .sub-panel {
    padding: 30px 20px;
  }

  body.site-subpage .split-grid {
    gap: 28px;
  }

  body.site-subpage .related {
    padding-top: 38px;
  }

  body.site-subpage .consult {
    padding-bottom: 50px;
  }

  body.site-subpage .news-page {
    padding-top: 26px;
    padding-bottom: 62px;
  }

  body.site-subpage .news-panel {
    padding: 28px 18px 34px;
  }

  body.site-subpage .contact-section {
    padding-top: 22px;
    padding-bottom: 34px;
  }

  body.site-subpage .faq-contact {
    padding-top: 36px;
    padding-bottom: 58px;
  }

  body.site-subpage .footer {
    margin-top: 56px;
    padding-top: 42px;
  }

  body.site-subpage .footer-inner {
    gap: 36px;
    padding-bottom: 36px;
  }

  body.site-subpage .footer h4 {
    margin-bottom: 10px;
  }

  body.site-subpage .footer-bottom {
    padding: 20px 0 26px;
  }
}

/* ===== 03. Q&A・お問い合わせ / qa.html ===== */
body.page-qa .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-qa .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-qa .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-qa .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-qa .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-qa .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-qa .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-qa .split-grid.reverse .split-media {
  order: -1;
}

body.page-qa .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-qa .split-copy p + p {
  margin-top: 14px;
}

body.page-qa .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-qa .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-qa .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-qa .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-qa .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-qa .note.warn strong {
  color: #b95814;
}

body.page-qa .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-qa .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-qa .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-qa .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-qa .notes li + li {
  margin-top: 4px;
}

body.page-qa .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-qa .primary-link:hover {
  background: var(--blue-dark);
}

body.page-qa .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-qa .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-qa .action-row .primary-link,
body.page-qa .action-row .secondary-link {
  margin-top: 0;
}

body.page-qa .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-qa .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-qa .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-qa .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-qa .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-qa .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-qa .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-qa .flow li:nth-child(3)::after,
body.page-qa .flow li:last-child::after {
  display: none;
}

body.page-qa .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-qa .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-qa .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-qa .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-qa .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-qa .tenant-img {
  aspect-ratio: 4/3;
}

body.page-qa .tenant-body {
  padding: 19px 20px 20px;
}

body.page-qa .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-qa .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-qa .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-qa .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-qa .local-nav.cols-4 ul,
  body.page-qa .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-qa .local-nav ul,
  body.page-qa .local-nav.cols-2 ul,
  body.page-qa .local-nav.cols-3 ul,
  body.page-qa .local-nav.cols-4 ul,
  body.page-qa .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-qa .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-qa .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-qa .split-media {
    aspect-ratio: 16/10;
  }

  body.page-qa .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-qa .flow {
    grid-template-columns: 1fr;
  }

  body.page-qa .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-qa .flow li:last-child::after {
    display: none;
  }

  body.page-qa .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-qa .info-table th,
  body.page-qa .info-table td {
    padding: 12px 14px;
  }
}

body.page-qa .map-box {
  overflow: hidden;
  border-radius: 14px;
  background: var(--blue-pale);
  border: 1px solid var(--line);
}

body.page-qa .map-box iframe {
  display: block;
  width: 100%;
  height: 440px;
  border: 0;
}

body.page-qa .access-summary {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 32px;
  margin-top: 28px;
}

body.page-qa .access-cards {
  display: grid;
  gap: 14px;
}

body.page-qa .access-card {
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}

body.page-qa .access-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-qa .access-card ul {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-qa .download-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: center;
  margin-top: 28px;
}

body.page-qa .download-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-qa .bicycle-flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 26px;
}

body.page-qa .flow-panel {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-qa .flow-panel h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 12px;
}

body.page-qa .flow-panel ol {
  counter-reset: step;
  display: grid;
  gap: 10px;
}

body.page-qa .flow-panel ol li {
  counter-increment: step;
  position: relative;
  padding-left: 34px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-qa .flow-panel ol li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 1px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-size: 0.625rem; /* 10px */
  font-weight: 700;
}

body.page-qa .pdf-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

body.page-qa .pdf-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-qa .pdf-list a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

@media (max-width: 760px) {
  body.page-qa .map-box iframe {
    height: 320px;
  }

  body.page-qa .access-summary,
  body.page-qa .download-grid,
  body.page-qa .bicycle-flow {
    grid-template-columns: 1fr;
  }
}

body.page-qa .faq-note {
  margin: 22px 0 0;
  padding: 14px 18px;
  border-radius: 10px;
  background: #fff;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.9;
}

body.page-qa .faq-list {
  display: grid;
  gap: 12px;
  margin-top: 26px;
}

body.page-qa .faq-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  transition: 0.2s;
}

body.page-qa .faq-item[open] {
  border-color: #c8d9ed;
  box-shadow: 0 5px 18px rgba(22, 48, 94, 0.06);
}

body.page-qa .faq-item summary {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr 28px;
  gap: 14px;
  align-items: center;
  min-height: 68px;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-qa .faq-item summary::-webkit-details-marker {
  display: none;
}

body.page-qa .faq-q {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-family: var(--serif);
  font-size: var(--fs-base);
  font-weight: 700;
}

body.page-qa .faq-toggle {
  position: relative;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--line);
}

body.page-qa .faq-toggle::before,
body.page-qa .faq-toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 1px;
  background: var(--blue);
  transform: translate(-50%, -50%);
}

body.page-qa .faq-toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: 0.2s;
}

body.page-qa .faq-item[open] .faq-toggle::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

body.page-qa .faq-answer {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 14px;
  padding: 0 18px 18px;
  border-top: 1px solid #edf2f8;
}

body.page-qa .faq-a {
  width: 34px;
  height: 34px;
  margin-top: 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--navy);
  color: #fff;
  font-family: var(--serif);
  font-size: var(--fs-base);
  font-weight: 700;
}

body.page-qa .faq-answer-body {
  padding-top: 15px;
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-qa .faq-answer-body a {
  color: var(--blue);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.page-qa .faq-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

body.page-qa .faq-links a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  text-decoration: none;
}

body.page-qa .faq-links a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

body.page-qa .faq-contact {
  padding: 34px 0 64px;
}

body.page-qa .faq-contact-box {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 26px;
  align-items: center;
  padding: 34px 38px;
  border-radius: 18px;
  background: var(--blue-pale);
  border: 1px solid var(--line);
}

body.page-qa .faq-contact-box h2 {
  font-family: var(--serif);
  font-size: var(--fs-2xl);
  color: var(--navy);
  font-weight: 600;
}

body.page-qa .faq-contact-box p {
  margin-top: 7px;
  font-size: var(--fs-base);
  color: var(--muted);
}

body.page-qa .faq-contact-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

body.page-qa .faq-phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border-radius: 8px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-base);
  font-weight: 700;
}

@media (max-width: 760px) {
  body.page-qa .faq-item summary {
    grid-template-columns: 30px 1fr 26px;
    padding: 13px 14px;
  }

  body.page-qa .faq-q,
  body.page-qa .faq-a {
    width: 30px;
    height: 30px;
  }

  body.page-qa .faq-answer {
    grid-template-columns: 30px 1fr;
    padding: 0 14px 16px;
  }

  body.page-qa .faq-contact-box {
    grid-template-columns: 1fr;
    padding: 26px 20px;
  }
}

body.page-qa .contact-section {
  padding: 10px 0 28px;
}

body.page-qa .contact-panel {
  padding: 30px 34px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
}

body.page-qa .contact-heading {
  display: block;
  margin-bottom: 20px;
  text-align: left;
}

body.page-qa .contact-heading h2 {
  font-family: var(--serif);
  font-size: var(--fs-head-2);
  font-weight: 600;
  line-height: 1.45;
  color: var(--navy);
}

body.page-qa .contact-main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

body.page-qa .contact-card {
  padding: 22px 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--blue-pale);
}

body.page-qa .contact-card-label {
  display: block;
  margin-bottom: 8px;
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--blue);
}

body.page-qa .contact-phone {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
}

body.page-qa .contact-phone-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  line-height: 1;
  flex-shrink: 0;
  background: var(--blue)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.6a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E")
    center / 50% no-repeat; /* 文字の☎は字形で中心がずれるためSVGを中央配置 */
  color: transparent;
  font-size: 0;
  overflow: hidden;
}

body.page-qa .contact-phone strong {
  font-size: var(--fs-head-1);
  line-height: 1.2;
  letter-spacing: 0.02em;
}

body.page-qa .contact-phone-meta {
  margin-top: 8px;
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.8;
}

body.page-qa .contact-email {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
}

/* メールアイコンは電話アイコンと同じ円形ブルー背景で、図柄だけ差し替える */
body.page-qa .contact-email-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2 8-5.2H4l8 5.2zm0 2.4L4 9.4V17h16V9.4l-8 5.2z'/%3E%3C/svg%3E");
}

body.page-qa .contact-email strong {
  font-size: var(--fs-head-1);
  line-height: 1.2;
  letter-spacing: 0.02em;
  word-break: break-all;
}

body.page-qa .contact-note {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: var(--fs-sm);
  line-height: 1.9;
  color: var(--muted);
}

body.page-qa .contact-note p + p {
  margin-top: 2px;
}

@media (max-width: 760px) {
  body.page-qa .contact-panel {
    padding: 24px 20px;
  }

  body.page-qa .contact-heading {
    text-align: left;
  }

  body.page-qa .contact-main {
    grid-template-columns: 1fr;
  }
}

/* ===== 03. アクセス / access.html ===== */
body.page-access .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-access .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-access .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-access .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-access .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-access .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-access .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-access .split-grid.reverse .split-media {
  order: -1;
}

body.page-access .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-access .split-copy p + p {
  margin-top: 14px;
}

body.page-access .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-access .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-access .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-access .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-access .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-access .note.warn strong {
  color: #b95814;
}

body.page-access .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-access .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-access .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-access .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-access .notes li + li {
  margin-top: 4px;
}

body.page-access .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-access .primary-link:hover {
  background: var(--blue-dark);
}

body.page-access .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-access .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-access .action-row .primary-link,
body.page-access .action-row .secondary-link {
  margin-top: 0;
}

body.page-access .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-access .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-access .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-access .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-access .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-access .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-access .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-access .flow li:nth-child(3)::after,
body.page-access .flow li:last-child::after {
  display: none;
}

body.page-access .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-access .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-access .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-access .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-access .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-access .tenant-img {
  aspect-ratio: 4/3;
}

body.page-access .tenant-body {
  padding: 19px 20px 20px;
}

body.page-access .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-access .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-access .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-access .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-access .local-nav.cols-4 ul,
  body.page-access .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-access .local-nav ul,
  body.page-access .local-nav.cols-2 ul,
  body.page-access .local-nav.cols-3 ul,
  body.page-access .local-nav.cols-4 ul,
  body.page-access .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-access .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-access .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-access .split-media {
    aspect-ratio: 16/10;
  }

  body.page-access .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-access .flow {
    grid-template-columns: 1fr;
  }

  body.page-access .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-access .flow li:last-child::after {
    display: none;
  }

  body.page-access .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-access .info-table th,
  body.page-access .info-table td {
    padding: 12px 14px;
  }
}

body.page-access .map-box {
  overflow: hidden;
  border-radius: 14px;
  background: var(--blue-pale);
  border: 1px solid var(--line);
}

body.page-access .map-box iframe {
  display: block;
  width: 100%;
  height: 440px;
  border: 0;
}

body.page-access .access-summary {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 32px;
  margin-top: 28px;
}

body.page-access .access-cards {
  display: grid;
  gap: 14px;
}

body.page-access .access-card {
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}

body.page-access .access-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-access .access-card ul {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-access .download-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: center;
  margin-top: 28px;
}

body.page-access .download-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-access .bicycle-flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 26px;
}

body.page-access .flow-panel {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-access .flow-panel h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 12px;
}

body.page-access .flow-panel ol {
  counter-reset: step;
  display: grid;
  gap: 10px;
}

body.page-access .flow-panel ol li {
  counter-increment: step;
  position: relative;
  padding-left: 34px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-access .flow-panel ol li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 1px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-size: 0.625rem; /* 10px */
  font-weight: 700;
}

body.page-access .pdf-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

body.page-access .pdf-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-access .pdf-list a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

@media (max-width: 760px) {
  body.page-access .map-box iframe {
    height: 320px;
  }

  body.page-access .access-summary,
  body.page-access .download-grid,
  body.page-access .bicycle-flow {
    grid-template-columns: 1fr;
  }
}

body.page-access .access-summary.access-only {
  display: block;
}

body.page-access .access-summary.access-only .access-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (max-width: 760px) {
  body.page-access .access-summary.access-only .access-cards {
    grid-template-columns: 1fr;
  }
}

/* ===== 03. レンタサイクル / bicycle.html ===== */
body.page-bicycle .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-bicycle .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-bicycle .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-bicycle .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-bicycle .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-bicycle .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-bicycle .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-bicycle .split-grid.reverse .split-media {
  order: -1;
}

body.page-bicycle .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-bicycle .split-copy p + p {
  margin-top: 14px;
}

body.page-bicycle .split-media {
  aspect-ratio: 5/3;
  border-radius: 14px;
}

body.page-bicycle .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-bicycle .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-bicycle .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-bicycle .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-bicycle .note.warn strong {
  color: #b95814;
}

body.page-bicycle .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-bicycle .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-bicycle .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-bicycle .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-bicycle .notes li + li {
  margin-top: 4px;
}

body.page-bicycle .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-bicycle .primary-link:hover {
  background: var(--blue-dark);
}

body.page-bicycle .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-bicycle .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-bicycle .action-row .primary-link,
body.page-bicycle .action-row .secondary-link {
  margin-top: 0;
}

body.page-bicycle .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-bicycle .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-bicycle .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-bicycle .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-bicycle .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-bicycle .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-bicycle .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-bicycle .flow li:nth-child(3)::after,
body.page-bicycle .flow li:last-child::after {
  display: none;
}

body.page-bicycle .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-bicycle .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-bicycle .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-bicycle .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-bicycle .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-bicycle .tenant-img {
  aspect-ratio: 4/3;
}

body.page-bicycle .tenant-body {
  padding: 19px 20px 20px;
}

body.page-bicycle .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-bicycle .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-bicycle .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-bicycle .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-bicycle .local-nav.cols-4 ul,
  body.page-bicycle .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-bicycle .local-nav ul,
  body.page-bicycle .local-nav.cols-2 ul,
  body.page-bicycle .local-nav.cols-3 ul,
  body.page-bicycle .local-nav.cols-4 ul,
  body.page-bicycle .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-bicycle .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-bicycle .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-bicycle .split-media {
    aspect-ratio: 16/10;
  }

  body.page-bicycle .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-bicycle .flow {
    grid-template-columns: 1fr;
  }

  body.page-bicycle .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-bicycle .flow li:last-child::after {
    display: none;
  }

  body.page-bicycle .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-bicycle .info-table th,
  body.page-bicycle .info-table td {
    padding: 12px 14px;
  }
}

body.page-bicycle .map-box {
  overflow: hidden;
  border-radius: 14px;
  background: var(--blue-pale);
  border: 1px solid var(--line);
}

body.page-bicycle .map-box iframe {
  display: block;
  width: 100%;
  height: 440px;
  border: 0;
}

body.page-bicycle .access-summary {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 32px;
  margin-top: 28px;
}

body.page-bicycle .access-cards {
  display: grid;
  gap: 14px;
}

body.page-bicycle .access-card {
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}

body.page-bicycle .access-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-bicycle .access-card ul {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-bicycle .download-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: center;
  margin-top: 28px;
}

body.page-bicycle .download-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-bicycle .bicycle-flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 26px;
}

body.page-bicycle .flow-panel {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-bicycle .flow-panel h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 12px;
}

body.page-bicycle .flow-panel ol {
  counter-reset: step;
  display: grid;
  gap: 10px;
}

body.page-bicycle .flow-panel ol li {
  counter-increment: step;
  position: relative;
  padding-left: 34px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-bicycle .flow-panel ol li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 1px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-size: 0.625rem; /* 10px */
  font-weight: 700;
}

body.page-bicycle .pdf-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

body.page-bicycle .pdf-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-bicycle .pdf-list a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

@media (max-width: 760px) {
  body.page-bicycle .map-box iframe {
    height: 320px;
  }

  body.page-bicycle .access-summary,
  body.page-bicycle .download-grid,
  body.page-bicycle .bicycle-flow {
    grid-template-columns: 1fr;
  }
}

/* 予約ボタンのみを中央に配置 */
body.page-bicycle .bicycle-reserve-box {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

body.page-bicycle .bicycle-reserve-box .btn {
  min-width: 320px;
  padding: 20px 44px;
  font-size: 1.15rem;
  font-weight: 700;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

body.page-bicycle .bicycle-documents {
  margin-top: 24px;
}

body.page-bicycle .bicycle-documents .pdf-list {
  margin-top: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
  body.page-bicycle .bicycle-reserve-box .btn {
    width: 100%;
    min-width: 0;
    padding: 18px 20px;
  }

  body.page-bicycle .bicycle-documents .pdf-list {
    grid-template-columns: 1fr;
  }
}

/* ===== 03. 講座・イベント / event.html ===== */
body.page-event .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-event .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-event .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-event .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-event .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-event .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-event .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-event .split-grid.reverse .split-media {
  order: -1;
}

body.page-event .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-event .split-copy p + p {
  margin-top: 14px;
}

body.page-event .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-event .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-event .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-event .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-event .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-event .note.warn strong {
  color: #b95814;
}

body.page-event .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-event .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-event .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-event .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-event .notes li + li {
  margin-top: 4px;
}

body.page-event .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-event .primary-link:hover {
  background: var(--blue-dark);
}

body.page-event .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-event .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-event .action-row .primary-link,
body.page-event .action-row .secondary-link {
  margin-top: 0;
}

body.page-event .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-event .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-event .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-event .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-event .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-event .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-event .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-event .flow li:nth-child(3)::after,
body.page-event .flow li:last-child::after {
  display: none;
}

body.page-event .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-event .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-event .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-event .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-event .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-event .tenant-img {
  aspect-ratio: 4/3;
}

body.page-event .tenant-body {
  padding: 19px 20px 20px;
}

body.page-event .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-event .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-event .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-event .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-event .local-nav.cols-4 ul,
  body.page-event .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-event .local-nav ul,
  body.page-event .local-nav.cols-2 ul,
  body.page-event .local-nav.cols-3 ul,
  body.page-event .local-nav.cols-4 ul,
  body.page-event .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-event .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-event .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-event .split-media {
    aspect-ratio: 16/10;
  }

  body.page-event .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-event .flow {
    grid-template-columns: 1fr;
  }

  body.page-event .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-event .flow li:last-child::after {
    display: none;
  }

  body.page-event .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-event .info-table th,
  body.page-event .info-table td {
    padding: 12px 14px;
  }
}

body.page-event .class-lead {
  margin-top: 18px;
  font-size: var(--fs-base);
  line-height: 2;
  color: var(--muted);
}

body.page-event .class-series {
  margin-top: 24px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
}

body.page-event .class-series + .class-series {
  margin-top: 22px;
}

body.page-event .class-series-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 26px 20px;
  background: var(--blue-pale);
  border-bottom: 1px solid var(--line);
}

body.page-event .class-series-kicker {
  display: block;
  margin-bottom: 5px;
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--blue);
}

body.page-event .class-series h3 {
  font-family: var(--serif);
  font-size: var(--fs-2xl);
  line-height: 1.5;
  color: var(--navy);
  font-weight: 600;
}

body.page-event .class-series-head p {
  margin-top: 7px;
  font-size: var(--fs-sm);
  line-height: 1.8;
  color: var(--muted);
}

body.page-event .class-apply {
  flex-shrink: 0;
  min-width: 220px;
  padding: 14px 16px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
}

body.page-event .class-apply small {
  display: block;
  font-size: var(--fs-sm);
  color: var(--blue);
  font-weight: 700;
  letter-spacing: 0.08em;
}

body.page-event .class-apply strong {
  display: block;
  margin-top: 3px;
  font-size: var(--fs-base);
  color: var(--navy);
}

body.page-event .class-series-body {
  padding: 24px 26px 26px;
}

body.page-event .class-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

body.page-event .class-summary {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}

body.page-event .class-summary small {
  display: block;
  margin-bottom: 4px;
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.page-event .class-summary strong {
  display: block;
  font-size: var(--fs-sm);
  line-height: 1.7;
  color: var(--navy);
}

body.page-event .class-table-wrap {
  overflow-x: auto;
  margin-top: 2px;
}

body.page-event .class-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}

body.page-event .class-table th,
body.page-event .class-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

body.page-event .class-table thead th {
  background: var(--blue-light);
  color: var(--navy);
  font-weight: 700;
  white-space: nowrap;
}

body.page-event .class-table tbody th {
  color: var(--navy);
  font-weight: 700;
}

body.page-event .class-level {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-event .class-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.page-event .class-notes strong {
  color: var(--navy);
}

body.page-event .class-apply-box {
  margin-top: 26px;
  padding: 24px 26px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
  border-radius: 14px;
  background: var(--blue-pale);
  border: 1px solid var(--line);
}

body.page-event .class-apply-box h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  font-weight: 600;
}

body.page-event .class-apply-box p {
  margin-top: 5px;
  font-size: var(--fs-base);
  color: var(--muted);
}

body.page-event .class-phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border-radius: 8px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-base);
  font-weight: 700;
}

body.page-event .update-note {
  margin-top: 14px;
  font-size: var(--fs-sm);
  line-height: 1.8;
  color: var(--muted);
}

@media (max-width: 900px) {
  body.page-event .class-series-head {
    flex-direction: column;
  }

  body.page-event .class-apply {
    min-width: 0;
    width: 100%;
  }

  body.page-event .class-summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-event .class-series-head,
  body.page-event .class-series-body {
    padding: 20px;
  }

  body.page-event .class-summary-grid {
    grid-template-columns: 1fr 1fr;
  }

  body.page-event .class-apply-box {
    grid-template-columns: 1fr;
    padding: 22px 20px;
  }
}

@media (max-width: 480px) {
  body.page-event .class-summary-grid {
    grid-template-columns: 1fr;
  }
}

body.page-event .class-main-visual {
  margin-top: 24px;
  aspect-ratio: 16/7;
  border-radius: 14px;
  overflow: hidden;
}

@media (max-width: 760px) {
  body.page-event .class-main-visual {
    aspect-ratio: 16/10;
  }
}

@media (max-width: 760px) {
  body.page-event .class-table-wrap {
    overflow: visible;
  }

  body.page-event .class-table {
    min-width: 0;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
  }

  body.page-event .class-table thead {
    display: none;
  }

  body.page-event .class-table,
  body.page-event .class-table tbody,
  body.page-event .class-table tr,
  body.page-event .class-table th,
  body.page-event .class-table td {
    display: block;
    width: 100%;
  }

  body.page-event .class-table tbody {
    display: grid;
    gap: 14px;
  }

  body.page-event .class-table tbody tr {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
  }

  body.page-event .class-table tbody tr + tr {
    margin-top: 0;
  }

  body.page-event .class-table tbody th,
  body.page-event .class-table tbody td {
    position: relative;
    min-height: 43px;
    padding: 10px 14px 10px 102px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    line-height: 1.7;
  }

  body.page-event .class-table tbody tr > *:last-child {
    border-bottom: 0;
  }

  body.page-event .class-table tbody th::before,
  body.page-event .class-table tbody td::before {
    content: attr(data-label);
    position: absolute;
    left: 14px;
    top: 10px;
    width: 76px;
    color: var(--muted);
    font-size: 0.65625rem; /* 10.5px */
    font-weight: 700;
  }

  body.page-event .class-table tbody th {
    color: var(--navy);
  }

  body.page-event .class-table tbody td:first-child {
    padding: 12px 14px;
    background: var(--blue-pale);
  }

  body.page-event .class-table tbody td:first-child::before {
    display: none;
  }

  body.page-event .class-table tbody td:first-child .class-level {
    min-width: 48px;
  }
}

body.page-event .class-gallery {
  margin-top: 28px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}

body.page-event .class-gallery-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

body.page-event .class-gallery-head .section-label {
  margin-bottom: 4px;
}

body.page-event .class-gallery-head h3 {
  font-family: var(--serif);
  font-size: var(--fs-xl);
  font-weight: 600;
  color: var(--navy);
}

body.page-event .class-gallery-head p {
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.page-event .class-carousel-wrap {
  position: relative;
}

body.page-event .class-carousel {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 2px 2px 8px;
}

body.page-event .class-carousel::-webkit-scrollbar {
  display: none;
}

body.page-event .class-gallery-card {
  flex: 0 0 calc((100% - 42px) / 4);
  min-width: 0;
  scroll-snap-align: start;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}

body.page-event .class-gallery-img {
  aspect-ratio: 4/3;
}

body.page-event .class-gallery-caption {
  padding: 10px 12px 12px;
}

body.page-event .class-gallery-caption small {
  display: block;
  font-size: var(--fs-sm);
  color: var(--blue);
  font-weight: 700;
  letter-spacing: 0.08em;
}

body.page-event .class-gallery-caption p {
  margin-top: 2px;
  font-size: var(--fs-sm);
  color: var(--navy);
  font-weight: 700;
  line-height: 1.6;
}

body.page-event .class-carousel-controls {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}

body.page-event .class-carousel-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--blue);
  cursor: pointer;
  font-size: var(--fs-base);
  transition: 0.2s;
}

body.page-event .class-carousel-btn:hover {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

@media (max-width: 900px) {
  body.page-event .class-gallery-card {
    flex-basis: calc((100% - 28px) / 3);
  }
}

@media (max-width: 760px) {
  body.page-event .class-gallery-head {
    align-items: flex-start;
    flex-direction: column;
  }

  body.page-event .class-gallery-card {
    flex-basis: 72%;
  }

  body.page-event .class-carousel-controls {
    justify-content: flex-start;
  }
}

/* ===== 03. ものづくり・体験 / experience.html ===== */
body.page-experience .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-experience .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-experience .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-experience .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-experience .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-experience .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-experience .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-experience .split-grid.reverse .split-media {
  order: -1;
}

body.page-experience .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-experience .split-copy p + p {
  margin-top: 14px;
}

body.page-experience .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-experience .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-experience .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-experience .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-experience .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-experience .note.warn strong {
  color: #b95814;
}

body.page-experience .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-experience .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-experience .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-experience .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-experience .notes li + li {
  margin-top: 4px;
}

body.page-experience .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-experience .primary-link:hover {
  background: var(--blue-dark);
}

body.page-experience .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-experience .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-experience .action-row .primary-link,
body.page-experience .action-row .secondary-link {
  margin-top: 0;
}

body.page-experience .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-experience .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-experience .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-experience .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-experience .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-experience .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-experience .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-experience .flow li:nth-child(3)::after,
body.page-experience .flow li:last-child::after {
  display: none;
}

body.page-experience .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-experience .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-experience .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-experience .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-experience .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-experience .tenant-img {
  aspect-ratio: 4/3;
}

body.page-experience .tenant-body {
  padding: 19px 20px 20px;
}

body.page-experience .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-experience .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-experience .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-experience .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-experience .local-nav.cols-4 ul,
  body.page-experience .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-experience .local-nav ul,
  body.page-experience .local-nav.cols-2 ul,
  body.page-experience .local-nav.cols-3 ul,
  body.page-experience .local-nav.cols-4 ul,
  body.page-experience .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-experience .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-experience .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-experience .split-media {
    aspect-ratio: 16/10;
  }

  body.page-experience .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-experience .flow {
    grid-template-columns: 1fr;
  }

  body.page-experience .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-experience .flow li:last-child::after {
    display: none;
  }

  body.page-experience .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-experience .info-table th,
  body.page-experience .info-table td {
    padding: 12px 14px;
  }
}

body.page-experience .course-intro {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 28px;
  align-items: stretch;
  margin-top: 26px;
}

body.page-experience .course-lead {
  padding: 26px 28px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-experience .course-lead p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-experience .course-lead p + p {
  margin-top: 10px;
}

body.page-experience .course-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

body.page-experience .course-meta-card {
  padding: 22px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--navy);
}

body.page-experience .course-meta-card small {
  display: block;
  margin-bottom: 5px;
  font-size: var(--fs-sm);
  letter-spacing: 0.08em;
  color: var(--blue);
  font-weight: 700;
}

body.page-experience .course-meta-card strong {
  display: block;
  font-family: var(--serif);
  font-size: var(--fs-xl);
  font-weight: 600;
  line-height: 1.5;
  color: var(--navy);
}

body.page-experience .course-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 26px;
}

body.page-experience .course-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
}

body.page-experience .course-card-img {
  aspect-ratio: 16/9;
}

body.page-experience .course-card-body {
  padding: 22px 22px 24px;
}

body.page-experience .course-card-num {
  display: block;
  margin-bottom: 6px;
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--blue);
}

body.page-experience .course-card h3 {
  font-family: var(--serif);
  color: var(--navy);
  font-size: var(--fs-xl);
  line-height: 1.5;
  font-weight: 600;
}

body.page-experience .course-card .course-desc {
  margin-top: 12px;
  font-size: var(--fs-sm);
  line-height: 1.95;
  color: var(--muted);
}

body.page-experience .course-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

body.page-experience .course-tag {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-experience .course-subnote {
  margin-top: 13px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: var(--fs-sm);
  line-height: 1.8;
  color: var(--muted);
}

body.page-experience .course-price-note {
  margin-top: 20px;
  padding: 16px 18px;
  border-radius: 10px;
  background: #fff;
  font-size: var(--fs-sm);
  line-height: 1.9;
  color: var(--muted);
}

@media (max-width: 900px) {
  body.page-experience .course-intro {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.page-experience .course-grid {
    grid-template-columns: 1fr;
  }

  body.page-experience .course-meta {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 480px) {
  body.page-experience .course-meta {
    grid-template-columns: 1fr;
  }

  body.page-experience .course-lead {
    padding: 22px 20px;
  }

  body.page-experience .course-card-body {
    padding: 20px;
  }
}

body.page-experience .course-contact {
  margin-top: 28px;
  padding: 24px 26px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-experience .course-contact-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

body.page-experience .course-contact h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
}

body.page-experience .course-contact p {
  margin-top: 6px;
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 1.8;
}

body.page-experience .course-contact .contact-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  padding: 11px 16px;
  border: 1px solid var(--blue);
  border-radius: 999px;
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-experience .course-contact .contact-link:hover {
  background: var(--blue);
  color: #fff;
}

body.page-experience .course-contact-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.page-experience .course-contact-meta strong {
  color: var(--navy);
  font-weight: 700;
}

@media (max-width: 760px) {
  body.page-experience .course-contact-main {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* ===== 03. 創業・インキュベーション / incubation.html ===== */
body.page-incubation .local-nav ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

body.page-incubation .section-intro {
  margin-top: 16px;
  max-width: 820px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-incubation .overview-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 44px;
  align-items: start;
  margin-top: 30px;
}

body.page-incubation .overview-img {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-incubation .office-grid {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-incubation .office-img {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-incubation .office-copy p {
  color: var(--muted);
  font-size: var(--fs-base);
  line-height: 2;
}

body.page-incubation .office-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 20px 0 22px;
}

body.page-incubation .meta-chip {
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-incubation .cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 20px;
  min-width: 310px;
  max-width: 100%;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-incubation .cta-link:hover {
  background: var(--blue-dark);
}

body.page-incubation .support-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-incubation .support-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 26px 24px;
  min-height: 190px;
}

body.page-incubation .support-icon {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  margin-bottom: 18px;
}

body.page-incubation .support-icon svg {
  width: 25px;
  height: 25px;
}

body.page-incubation .support-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 10px;
}

body.page-incubation .support-card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-incubation .consult-btn:hover {
  opacity: 0.88;
}

@media (max-width: 1080px) {
  body.page-incubation .support-grid,
  body.page-incubation .related-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.page-incubation .local-nav ul {
    grid-template-columns: 1fr;
  }

  body.page-incubation .overview-grid,
  body.page-incubation .office-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-incubation .overview-img,
  body.page-incubation .office-img {
    aspect-ratio: 16/10;
  }

  body.page-incubation .support-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation .cta-link {
    min-width: 0;
    width: 100%;
  }

  body.page-incubation .related-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  body.page-incubation .info-table th,
  body.page-incubation .info-table td {
    display: block;
    width: 100%;
    padding: 12px 14px;
  }

  body.page-incubation .info-table th {
    border-bottom: 0;
    padding-bottom: 4px;
    background: #fff;
    color: var(--blue);
  }

  body.page-incubation .info-table td {
    padding-top: 4px;
  }

  body.page-incubation .info-table tr:not(:last-child) td {
    border-bottom: 1px solid var(--line);
  }
}

/* ===== 03. 入居のご相談・申請書 / incubation-contact.html ===== */
body.page-incubation-contact .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-incubation-contact .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-incubation-contact .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-incubation-contact .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-incubation-contact .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-incubation-contact .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-incubation-contact .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-incubation-contact .split-grid.reverse .split-media {
  order: -1;
}

body.page-incubation-contact .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-incubation-contact .split-copy p + p {
  margin-top: 14px;
}

body.page-incubation-contact .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-incubation-contact .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-incubation-contact .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-incubation-contact .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-incubation-contact .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-incubation-contact .note.warn strong {
  color: #b95814;
}

body.page-incubation-contact .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-incubation-contact .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-incubation-contact .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-incubation-contact .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-incubation-contact .notes li + li {
  margin-top: 4px;
}

body.page-incubation-contact .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-incubation-contact .primary-link:hover {
  background: var(--blue-dark);
}

body.page-incubation-contact .dl-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

body.page-incubation-contact .dl-list .primary-link {
  margin-top: 0;
}

@media (max-width: 760px) {
  body.page-incubation-contact .dl-list .primary-link {
    width: 100%;
  }
}

body.page-incubation-contact .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-incubation-contact .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-incubation-contact .action-row .primary-link,
body.page-incubation-contact .action-row .secondary-link {
  margin-top: 0;
}

body.page-incubation-contact .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-incubation-contact .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-incubation-contact .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-incubation-contact .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-incubation-contact .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-incubation-contact .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-incubation-contact .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-incubation-contact .flow li:nth-child(3)::after,
body.page-incubation-contact .flow li:last-child::after {
  display: none;
}

body.page-incubation-contact .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-incubation-contact .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-incubation-contact .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-incubation-contact .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-incubation-contact .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-incubation-contact .tenant-img {
  aspect-ratio: 4/3;
}

body.page-incubation-contact .tenant-body {
  padding: 19px 20px 20px;
}

body.page-incubation-contact .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-incubation-contact .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-incubation-contact .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-incubation-contact .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-contact .local-nav.cols-4 ul,
  body.page-incubation-contact .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-incubation-contact .local-nav ul,
  body.page-incubation-contact .local-nav.cols-2 ul,
  body.page-incubation-contact .local-nav.cols-3 ul,
  body.page-incubation-contact .local-nav.cols-4 ul,
  body.page-incubation-contact .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-incubation-contact .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-incubation-contact .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-incubation-contact .split-media {
    aspect-ratio: 16/10;
  }

  body.page-incubation-contact .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-contact .flow {
    grid-template-columns: 1fr;
  }

  body.page-incubation-contact .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-incubation-contact .flow li:last-child::after {
    display: none;
  }

  body.page-incubation-contact .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-incubation-contact .info-table th,
  body.page-incubation-contact .info-table td {
    padding: 12px 14px;
  }
}

/* ===== 03. 入居までの流れ / incubation-flow.html ===== */
body.page-incubation-flow .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-incubation-flow .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-incubation-flow .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-incubation-flow .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-incubation-flow .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-incubation-flow .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-incubation-flow .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-incubation-flow .split-grid.reverse .split-media {
  order: -1;
}

body.page-incubation-flow .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-incubation-flow .split-copy p + p {
  margin-top: 14px;
}

body.page-incubation-flow .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-incubation-flow .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-incubation-flow .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-incubation-flow .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-incubation-flow .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-incubation-flow .note.warn strong {
  color: #b95814;
}

body.page-incubation-flow .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-incubation-flow .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-incubation-flow .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-incubation-flow .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-incubation-flow .notes li + li {
  margin-top: 4px;
}

body.page-incubation-flow .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-incubation-flow .primary-link:hover {
  background: var(--blue-dark);
}

body.page-incubation-flow .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-incubation-flow .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-incubation-flow .action-row .primary-link,
body.page-incubation-flow .action-row .secondary-link {
  margin-top: 0;
}

body.page-incubation-flow .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-incubation-flow .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-incubation-flow .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-incubation-flow .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-incubation-flow .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-incubation-flow .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-incubation-flow .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-incubation-flow .flow li:nth-child(3)::after,
body.page-incubation-flow .flow li:last-child::after {
  display: none;
}

body.page-incubation-flow .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-incubation-flow .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-incubation-flow .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-incubation-flow .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-incubation-flow .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-incubation-flow .tenant-img {
  aspect-ratio: 4/3;
}

body.page-incubation-flow .tenant-body {
  padding: 19px 20px 20px;
}

body.page-incubation-flow .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-incubation-flow .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-incubation-flow .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-incubation-flow .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-flow .local-nav.cols-4 ul,
  body.page-incubation-flow .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-incubation-flow .local-nav ul,
  body.page-incubation-flow .local-nav.cols-2 ul,
  body.page-incubation-flow .local-nav.cols-3 ul,
  body.page-incubation-flow .local-nav.cols-4 ul,
  body.page-incubation-flow .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-incubation-flow .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-incubation-flow .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-incubation-flow .split-media {
    aspect-ratio: 16/10;
  }

  body.page-incubation-flow .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-flow .flow {
    grid-template-columns: 1fr;
  }

  body.page-incubation-flow .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-incubation-flow .flow li:last-child::after {
    display: none;
  }

  body.page-incubation-flow .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-incubation-flow .info-table th,
  body.page-incubation-flow .info-table td {
    padding: 12px 14px;
  }
}

/* ===== 03. 入居者紹介 / incubation-tenants.html ===== */
body.page-incubation-tenants .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-incubation-tenants .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-incubation-tenants .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-incubation-tenants .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-incubation-tenants .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-incubation-tenants .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-incubation-tenants .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-incubation-tenants .split-grid.reverse .split-media {
  order: -1;
}

body.page-incubation-tenants .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-incubation-tenants .split-copy p + p {
  margin-top: 14px;
}

body.page-incubation-tenants .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-incubation-tenants .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-incubation-tenants .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-incubation-tenants .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-incubation-tenants .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-incubation-tenants .note.warn strong {
  color: #b95814;
}

body.page-incubation-tenants .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-incubation-tenants .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-incubation-tenants .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-incubation-tenants .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-incubation-tenants .notes li + li {
  margin-top: 4px;
}

body.page-incubation-tenants .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-incubation-tenants .primary-link:hover {
  background: var(--blue-dark);
}

body.page-incubation-tenants .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-incubation-tenants .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-incubation-tenants .action-row .primary-link,
body.page-incubation-tenants .action-row .secondary-link {
  margin-top: 0;
}

body.page-incubation-tenants .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-incubation-tenants .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-incubation-tenants .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-incubation-tenants .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-incubation-tenants .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-incubation-tenants .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-incubation-tenants .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-incubation-tenants .flow li:nth-child(3)::after,
body.page-incubation-tenants .flow li:last-child::after {
  display: none;
}

body.page-incubation-tenants .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-incubation-tenants .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-incubation-tenants .tenant-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 28px;
}

body.page-incubation-tenants .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  transition: 0.2s;
}

body.page-incubation-tenants .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-incubation-tenants .tenant-img {
  position: relative;
  aspect-ratio: 16/9;
}

body.page-incubation-tenants .tenant-room {
  position: absolute;
  z-index: 3;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  box-shadow: 0 3px 10px rgba(22, 48, 94, 0.12);
}

body.page-incubation-tenants .tenant-body {
  padding: 22px 22px 24px;
}

body.page-incubation-tenants .tenant-name {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

body.page-incubation-tenants .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-xl);
  color: var(--navy);
  line-height: 1.5;
}

body.page-incubation-tenants .tenant-representative {
  flex-shrink: 0;
  margin-top: 3px;
  padding: 4px 8px;
  border-radius: 6px;
  background: var(--blue-pale);
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-incubation-tenants .tenant-representative strong {
  color: var(--navy);
  font-weight: 700;
}

body.page-incubation-tenants .tenant-detail {
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}

body.page-incubation-tenants .tenant-detail-label {
  display: block;
  margin-bottom: 6px;
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.12em;
}

body.page-incubation-tenants .tenant-detail p {
  color: var(--muted);
  font-size: var(--fs-base);
  line-height: 1.9;
}

body.page-incubation-tenants .tenant-source-note {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-incubation-tenants .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-tenants .local-nav.cols-4 ul,
  body.page-incubation-tenants .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-incubation-tenants .local-nav ul,
  body.page-incubation-tenants .local-nav.cols-2 ul,
  body.page-incubation-tenants .local-nav.cols-3 ul,
  body.page-incubation-tenants .local-nav.cols-4 ul,
  body.page-incubation-tenants .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-incubation-tenants .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-incubation-tenants .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-incubation-tenants .split-media {
    aspect-ratio: 16/10;
  }

  body.page-incubation-tenants .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-tenants .flow {
    grid-template-columns: 1fr;
  }

  body.page-incubation-tenants .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-incubation-tenants .flow li:last-child::after {
    display: none;
  }

  body.page-incubation-tenants .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-incubation-tenants .info-table th,
  body.page-incubation-tenants .info-table td {
    padding: 12px 14px;
  }
}

body.page-incubation-tenants .tenant-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

body.page-incubation-tenants .tenant-links a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  text-decoration: none;
  transition: 0.2s;
}

body.page-incubation-tenants .tenant-links a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

body.page-incubation-tenants .graduate-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-incubation-tenants .graduate-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  transition: 0.2s;
}

body.page-incubation-tenants .graduate-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-incubation-tenants .graduate-img {
  position: relative;
  aspect-ratio: 4/3;
}

body.page-incubation-tenants .graduate-year {
  position: absolute;
  z-index: 3;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.06em;
  box-shadow: 0 3px 10px rgba(22, 48, 94, 0.12);
}

body.page-incubation-tenants .graduate-body {
  padding: 20px 20px 22px;
}

body.page-incubation-tenants .graduate-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  line-height: 1.55;
  color: var(--navy);
  font-weight: 600;
}

body.page-incubation-tenants .graduate-body p {
  margin-top: 10px;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.9;
}

body.page-incubation-tenants .graduate-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 15px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  text-decoration: none;
  transition: 0.2s;
}

body.page-incubation-tenants .graduate-link:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

@media (max-width: 900px) {
  body.page-incubation-tenants .graduate-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-incubation-tenants .graduate-grid {
    grid-template-columns: 1fr;
  }

  body.page-incubation-tenants .graduate-img {
    aspect-ratio: 16/10;
  }
}

body.page-incubation-tenants .tenant-date {
  margin-top: 10px;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.5;
  text-align: right;
}

body.page-incubation-tenants .tenant-date span {
  margin-right: 6px;
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--blue);
}

/* ===== 03. トップ / index.html ===== */
body.page-index {
  font-family: var(--sans);
  color: var(--text);
  background: #fff;
  line-height: 1.8;
  font-size: var(--fs-base);
  -webkit-font-smoothing: antialiased;
}

body.page-index ul {
  list-style: none;
}

body.page-index .ph {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #cfe0f3, #9dbde3);
}

body.page-index .ph::after {
  content: attr(data-label);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--fs-sm);
  letter-spacing: 0.1em;
}

body.page-index .btn-outline {
  border: 1px solid var(--line);
  color: var(--blue);
  background: #fff;
  border-radius: 999px;
  padding: 6px 20px;
  font-size: var(--fs-sm);
  transition:
    background 0.25s ease,
    color 0.25s ease;
}

body.page-index .btn-outline:hover {
  background: var(--blue);
  color: #fff;
}

body.page-index .header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid transparent;
}

body.page-index .hero {
  margin-top: 8px;
}

body.page-index .hero-box {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  min-height: 440px;
  display: flex;
  align-items: center;
  background: var(--blue-pale);
  box-shadow: var(--shadow);
}

body.page-index .hero-img {
  position: absolute;
  inset: 0 0 0 35%;
}

body.page-index .hero-img::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    90deg,
    var(--blue-pale) 0%,
    rgba(244, 248, 253, 0.6) 25%,
    rgba(244, 248, 253, 0) 55%
  );
}

body.page-index .hero-text {
  position: relative;
  z-index: 3;
  padding: 48px 56px;
}

body.page-index .hero-title {
  font-family: var(--serif);
  font-size: var(--fs-title);
  font-weight: 600;
  color: var(--navy);
  line-height: 1.5;
  letter-spacing: 0.06em;
}

body.page-index .hero-lead {
  font-family: var(--serif);
  font-size: var(--fs-base);
  color: var(--navy);
  margin-top: 20px;
  line-height: 1.6;
}

body.page-index .hero-en {
  font-size: var(--fs-xs);
  letter-spacing: 0.25em;
  color: var(--blue);
  margin-top: 24px;
  line-height: 1.8;
}

body.page-index .hero-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

body.page-index .hero-btns .btn {
  padding: 16px 24px;
  min-width: 200px;
  justify-content: space-between;
  font-size: var(--fs-sm);
}

body.page-index .section {
  padding: 28px 0;
}

body.page-index .panel {
  background: var(--blue-pale);
  border-radius: 20px;
  padding: 28px;
}

body.page-index .sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

body.page-index .sec-title {
  display: flex;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
}

body.page-index .sec-title h2 {
  font-family: var(--serif);
  font-size: var(--fs-head-2);
  font-weight: 600;
  color: var(--navy);
  letter-spacing: 0.02em;
  line-height: 1.3;
}

body.page-index .sec-title span {
  font-family: var(--serif);
  font-size: var(--fs-sm);
  color: var(--muted);
  letter-spacing: 0.1em;
}

body.page-index .about-intro {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 42px;
  align-items: center;
}

body.page-index .about-img {
  border-radius: 14px;
  aspect-ratio: 5/3;
}

body.page-index .about-copy {
  padding: 6px 4px;
}

body.page-index .about-label {
  font-size: var(--fs-sm);
  letter-spacing: 0.2em;
  color: var(--blue);
  font-weight: 700;
}

body.page-index .about-copy h2 {
  font-family: var(--serif);
  font-size: var(--fs-2xl);
  color: var(--navy);
  margin: 5px 0 14px;
  font-weight: 600;
  line-height: 1.55;
}

body.page-index .about-copy p {
  font-family: var(--serif);
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-index .about-copy .btn-outline {
  margin-top: 18px;
}

body.page-index .about-guide {
  margin-top: 30px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}

body.page-index .about-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

body.page-index .about-action {
  position: relative;
  overflow: hidden;
  min-height: 255px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--line);
  transition: 0.25s;
}

body.page-index .about-action:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
  border-color: #c8d9ed;
}

body.page-index .about-action-img {
  aspect-ratio: 2/1;
}

body.page-index .about-action-body {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: end;
  padding: 20px 20px 22px;
}

body.page-index .about-action-num {
  display: block;
  margin-bottom: 4px;
  font-family: var(--serif);
  font-size: var(--fs-sm);
  letter-spacing: 0.15em;
  color: var(--blue);
}

body.page-index .about-action h4 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  line-height: 1.5;
  color: var(--navy);
  font-weight: 600;
}

body.page-index .about-action p {
  margin-top: 7px;
  font-size: var(--fs-sm);
  line-height: 1.75;
  color: var(--muted);
}

body.page-index .about-action .circle-arrow {
  width: 36px;
  height: 36px;
}

body.page-index .about-action:hover .circle-arrow {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

body.page-index .news-list {
  background: #fff;
  border-radius: 12px;
  padding: 4px 20px;
}

body.page-index .news-list li + li {
  border-top: 1px solid var(--line);
}

body.page-index .news-list a {
  display: grid;
  grid-template-columns: 96px 84px 1fr 16px;
  align-items: center;
  gap: 18px;
  padding: 14px 0;
  font-size: var(--fs-sm);
  transition: 0.2s;
}

body.page-index .news-list a:hover .news-title {
  color: var(--blue);
}

body.page-index .news-date {
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-index .tag {
  display: inline-block;
  text-align: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-xs);
  font-weight: 700;
  border-radius: 4px;
  padding: 2px 0;
}

body.page-index .news-title {
  transition: 0.2s;
  font-size: var(--fs-base);
}

body.page-index .chev {
  color: var(--blue);
  font-size: var(--fs-sm);
}

body.page-index .cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

body.page-index .card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  transition: 0.25s;
  display: flex;
  flex-direction: column;
}

body.page-index .card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

body.page-index .card-img {
  aspect-ratio: 2/1;
}

body.page-index .tenant .card-img {
  aspect-ratio: 5/3;
}

body.page-index .card-body {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px 18px;
  flex: 1;
}

body.page-index .card-text {
  flex: 1;
}

body.page-index .card h3 {
  font-family: var(--serif);
  font-size: var(--fs-head-4);
  color: var(--blue);
  font-weight: 700;
  margin-bottom: 4px;
}

body.page-index .card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.8;
}

body.page-index .circle-arrow {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid var(--line);
  display: grid;
  place-items: center;
  color: var(--blue);
  font-size: 0.8125rem; /* 13px */
  flex-shrink: 0;
  transition: 0.2s;
}

body.page-index .card:hover .circle-arrow {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

body.page-index .badge {
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 2;
  background: #fff;
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 999px;
}

body.page-index .contact-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

body.page-index .contact-card {
  background: #fff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 24px;
  transition: 0.25s;
}

body.page-index .contact-card:hover {
  box-shadow: var(--shadow);
}

body.page-index .contact-card .feature-icon {
  flex: 0 0 76px;
  width: 76px;
  height: 76px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  transition: background 0.25s;
}

body.page-index .contact-card .feature-icon svg {
  display: block;
  width: 38px;
  height: 38px;
}

body.page-index .contact-card:hover .feature-icon {
  background: var(--blue);
}

body.page-index .contact-card h3 {
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 2px;
}

body.page-index .contact-card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.7;
}

body.page-index .contact-card .card-text {
  flex: 1;
}

body.page-index .contact-card:hover .circle-arrow {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

body.page-index .access {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}

body.page-index .access-addr {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 28px;
  margin-top: 20px;
  font-size: var(--fs-sm);
}

body.page-index .access-addr .pin {
  display: flex;
  align-items: center;
  gap: 10px;
}

body.page-index .access-addr svg {
  width: 22px;
  height: 22px;
  color: var(--navy);
}

body.page-index .access-img {
  border-radius: 12px;
  aspect-ratio: 7/2.2;
}

body.page-index .footer {
  margin-top: 40px;
  border-top: 1px solid var(--line);
  padding: 32px 0 0;
}

@media (max-width: 1080px) {
  body.page-index .about-intro {
    grid-template-columns: 1fr 1fr;
  }

  body.page-index .about-actions {
    grid-template-columns: repeat(3, 1fr);
  }

  body.page-index .cards {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-index .contact-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body.page-index .header-inner {
    height: 64px;
  }

  body.page-index .gnav {
    --gnav-top: 64px;
  }

  body.page-index .hero-box {
    min-height: auto;
    flex-direction: column;
    align-items: stretch;
  }

  body.page-index .hero-img {
    position: relative;
    inset: auto;
    height: 220px;
    order: -1;
  }

  body.page-index .hero-img::before {
    background: linear-gradient(
      0deg,
      var(--blue-pale) 0%,
      rgba(244, 248, 253, 0) 40%
    );
  }

  body.page-index .hero-text {
    padding: 12px 20px 28px;
  }

  body.page-index .hero-btns .btn {
    min-width: 0;
    flex: 1 1 100%;
  }

  body.page-index .panel {
    padding: 20px 16px;
  }

  body.page-index .about-intro {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  body.page-index .about-actions {
    grid-template-columns: 1fr;
  }

  body.page-index .about-action {
    min-height: 0;
  }

  body.page-index .about-action-img {
    height: auto;
    aspect-ratio: 3/2;
  }

  body.page-index .news-list {
    padding: 4px 14px;
  }

  body.page-index .news-list a {
    grid-template-columns: auto 72px 1fr;
    gap: 6px 12px;
  }

  body.page-index .news-list .news-title {
    grid-column: 1/-1;
  }

  body.page-index .news-list .chev {
    display: none;
  }

  body.page-index .cards {
    grid-template-columns: 1fr;
  }

  body.page-index .access {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  body.page-index .footer-inner {
    grid-template-columns: 1fr 1fr;
  }

  body.page-index .footer-logo {
    grid-column: 1/-1;
    justify-self: start;
  }

  body.page-index .contact-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body.page-index .contact-card {
    width: 100%;
  }
}

body.page-index .hero-btns a.is-pending {
  opacity: 0.72;
  cursor: default;
}

body.page-index .hero {
  margin-top: 20px;
  margin-bottom: 40px;
}

body.page-index .section {
  padding: 60px 0;
}

body.page-index .panel {
  padding: 48px;
}

body.page-index .sec-head {
  margin-bottom: 30px;
}

body.page-index .about-intro {
  gap: 58px;
}

body.page-index .about-guide {
  margin-top: 44px;
  padding-top: 40px;
}

body.page-index .about-actions {
  gap: 24px;
}

body.page-index .about-action-body {
  padding: 22px 22px 26px;
}

body.page-index .news-list {
  padding: 8px 24px;
}

body.page-index .news-list a {
  padding: 18px 0;
}

body.page-index .cards {
  gap: 28px;
}

body.page-index .card-body {
  padding: 20px 20px 22px;
}

body.page-index .contact-grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

body.page-index .contact-card {
  padding: 18px 22px;
}

body.page-index .access {
  gap: 64px;
}

body.page-index .access-addr {
  margin-top: 26px;
}

body.page-index .footer {
  margin-top: 72px;
  padding-top: 48px;
}

body.page-index .footer-inner {
  gap: 44px;
  padding-bottom: 40px;
}

body.page-index .footer-bottom {
  padding: 18px 0 26px;
}

@media (max-width: 1080px) {
  body.page-index .hero {
    margin-bottom: 28px;
  }

  body.page-index .section {
    padding: 50px 0;
  }

  body.page-index .panel {
    padding: 40px;
  }

  body.page-index .about-intro {
    gap: 42px;
  }

  body.page-index .cards {
    gap: 22px;
  }

  body.page-index .access {
    gap: 44px;
  }
}

@media (max-width: 720px) {
  body.page-index .hero {
    margin-top: 12px;
    margin-bottom: 18px;
  }

  body.page-index .section {
    padding: 38px 0;
  }

  body.page-index .panel {
    padding: 28px 20px;
  }

  body.page-index .sec-head {
    margin-bottom: 24px;
  }

  body.page-index .about-intro {
    gap: 28px;
  }

  body.page-index .about-guide {
    margin-top: 32px;
    padding-top: 30px;
  }

  body.page-index .about-actions {
    gap: 20px;
  }

  body.page-index .about-action-body {
    padding: 20px 18px 22px;
  }

  body.page-index .news-list {
    padding: 6px 16px;
  }

  body.page-index .news-list a {
    padding: 16px 0;
  }

  body.page-index .cards {
    gap: 20px;
  }

  body.page-index .contact-grid {
    gap: 16px;
  }

  body.page-index .contact-card {
    padding: 16px 18px;
  }

  body.page-index .contact-card .feature-icon {
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
  }

  body.page-index .contact-card .feature-icon svg {
    width: 32px;
    height: 32px;
  }

  body.page-index .access {
    gap: 28px;
  }

  body.page-index .footer {
    margin-top: 48px;
    padding-top: 36px;
  }

  body.page-index .footer-inner {
    gap: 30px;
    padding-bottom: 32px;
  }
}

body.page-index .gnav > ul {
  gap: 28px;
}

body.page-index .gnav ul {
  gap: 28px;
}

body.page-index .logo-en {
  margin-top: 3px;
}

body.page-index .hero {
  margin-top: 24px;
  margin-bottom: 48px;
}

body.page-index .hero-box {
  min-height: 620px;
  border-radius: 28px;
}

body.page-index .hero-img {
  inset: 0 0 0 15%;
}

body.page-index .hero-text {
  padding: 64px 72px;
}

body.page-index .hero-title {
  font-size: var(--fs-title);
}

body.page-index .hero-lead {
  margin-top: 24px;
  font-size: var(--fs-lg);
}

body.page-index .hero-en {
  margin-top: 28px;
}

body.page-index .hero-btns {
  margin-top: 34px;
}

body.page-index .footer {
  margin-top: 0;
  padding-top: 64px;
}

body.page-index .footer-inner {
  gap: 64px;
  padding-bottom: 54px;
}

@media (max-width: 1080px) {
  body.page-index .header-inner {
    height: 108px;
    padding-top: 20px;
  }

  body.page-index .gnav {
    --gnav-top: 108px;
  }

  body.page-index .hero-box {
    min-height: 520px;
  }

  body.page-index .hero-img {
    inset: 0 0 0 32%;
  }

  body.page-index .hero-text {
    padding: 52px 48px;
  }

  body.page-index .footer {
    margin-top: 72px;
    padding-top: 52px;
  }

  body.page-index .footer-inner {
    gap: 46px;
    padding-bottom: 44px;
  }
}

@media (max-width: 720px) {
  body.page-index .container {
    width: min(100% - 28px, 1420px);
  }

  body.page-index .header-inner {
    height: 88px;
    padding-top: 12px;
  }

  body.page-index .gnav {
    --gnav-top: 88px;
  }

  body.page-index .hero {
    margin-top: 14px;
    margin-bottom: 24px;
  }

  body.page-index .hero-box {
    min-height: auto;
    border-radius: 20px;
  }

  body.page-index .hero-img {
    position: relative;
    inset: auto;
    height: auto;
    aspect-ratio: 16/10;
  }

  body.page-index .hero-text {
    padding: 24px 22px 30px;
  }

  body.page-index .hero-lead {
    margin-top: 18px;
  }

  body.page-index .hero-en {
    margin-top: 20px;
  }

  body.page-index .hero-btns {
    margin-top: 24px;
  }

  body.page-index .footer {
    margin-top: 56px;
    padding-top: 42px;
  }

  body.page-index .footer-inner {
    gap: 36px;
    padding-bottom: 36px;
  }

  body.page-index .footer h4 {
    margin-bottom: 10px;
  }

  body.page-index .footer-bottom {
    padding: 20px 0 26px;
  }
}

@media (max-width: 720px) {
  body.page-index .contact-grid {
    grid-template-columns: 1fr !important;
    gap: 14px;
  }

  body.page-index .contact-card {
    width: 100%;
    min-width: 0;
  }
}

/* --- 入居者紹介のスライダー ---------------------------------------------
   カード7枚を横送りで見せる。カードの見た目は .card をそのまま使う。
   1画面に出す枚数は --slider-per-view の1箇所だけで決め、
   JS側もこの変数を読む（幅の判定を2箇所に書かないため）。
   JSが動くまでは横スクロールで全件読め、.is-ready が付くと送り制御になる。 */
body.page-index .tenant-slider {
  --slider-per-view: 4;
  --slider-gap: 28px;
}

body.page-index .tenant-slider-stage {
  position: relative;
}

body.page-index .tenant-slider-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  /* カードの浮き上がり（translateY -4px）と影が切れないよう上下に逃がす。
     同じぶんを負のマージンで戻すので、前後の余白は従来のままになる */
  padding: 8px 0 22px;
  margin: -8px 0 -22px;
  scroll-snap-type: x mandatory;
}

body.page-index .tenant-slider.is-ready .tenant-slider-viewport {
  overflow-x: hidden;
  scroll-snap-type: none;
}

/* OSの「視差効果を減らす」設定でも送りのアニメーションは残す（ユーザー指定）。
   止めると5秒ごとにカードが瞬間移動して、かえって見づらくなるため
   prefers-reduced-motion の打ち消しはあえて置いていない。 */
body.page-index .tenant-slider-track {
  display: flex;
  gap: var(--slider-gap);
  transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}

body.page-index .tenant-slider-track > .card {
  flex: 0 0
    calc(
      (100% - var(--slider-gap) * (var(--slider-per-view) - 1)) /
        var(--slider-per-view)
    );
  min-width: 0;
  scroll-snap-align: start;
}

/* 前後ボタン。JSが動くまでは出さない */
body.page-index .tenant-slider .slider-arrow {
  display: none;
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  padding: 0;
  font-size: var(--fs-base);
  line-height: 1;
  color: var(--blue);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 50%;
  box-shadow: var(--shadow);
  cursor: pointer;
  transition:
    background-color 0.2s,
    color 0.2s,
    border-color 0.2s;
}

body.page-index .tenant-slider.is-ready .slider-arrow {
  display: grid;
  place-items: center;
}

body.page-index .tenant-slider .slider-prev {
  left: -14px;
}

body.page-index .tenant-slider .slider-next {
  right: -14px;
}

body.page-index .tenant-slider .slider-arrow:hover {
  color: #fff;
  background: var(--blue);
  border-color: var(--blue);
}

body.page-index .tenant-slider .slider-arrow:disabled {
  opacity: 0;
  pointer-events: none;
}

/* 位置を示す点。JSが枚数ぶん作る */
body.page-index .tenant-slider .slider-dots {
  display: none;
  justify-content: center;
  gap: 8px;
  margin-top: 24px;
}

body.page-index .tenant-slider.is-ready .slider-dots {
  display: flex;
}

body.page-index .tenant-slider .slider-dot {
  position: relative;
  width: 9px;
  height: 9px;
  padding: 0;
  background: #cdd9e8;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition:
    width 0.2s,
    background-color 0.2s;
}

/* 点そのものは小さいので、押せる範囲だけ広げる */
body.page-index .tenant-slider .slider-dot::before {
  content: "";
  position: absolute;
  inset: -11px -5px;
}

body.page-index .tenant-slider .slider-dot.is-active {
  width: 26px;
  background: var(--blue);
}

@media (max-width: 1080px) {
  body.page-index .tenant-slider {
    --slider-per-view: 2;
    --slider-gap: 22px;
  }
}

@media (max-width: 720px) {
  body.page-index .tenant-slider {
    --slider-per-view: 1;
    --slider-gap: 20px;
  }

  body.page-index .tenant-slider .slider-arrow {
    width: 38px;
    height: 38px;
    margin-top: -19px;
  }

  body.page-index .tenant-slider .slider-prev {
    left: 2px;
  }

  body.page-index .tenant-slider .slider-next {
    right: 2px;
  }
}

/* --- バナー（アクセスマップとフッターの間） -----------------------------
   画像は img/banner-1〜3.jpg。置かれるまでは .ph の青いプレースホルダに
   data-label の文字が出る（入居者カードなどと同じ作り）。 */
body.page-index .banner-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

body.page-index .banner-item {
  display: block;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  transition: 0.25s;
}

body.page-index .banner-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

/* リンク先が決まるまではクリックできない見た目にする（JS側で既定動作も止めている） */
body.page-index .banner-item.is-pending {
  cursor: default;
}

/* 一般的なバナーの比率（300×100 など）に合わせる */
body.page-index .banner-img {
  display: block;
  aspect-ratio: 3 / 1;
}

@media (max-width: 1080px) {
  body.page-index .banner-list {
    gap: 18px;
  }
}

@media (max-width: 720px) {
  body.page-index .banner-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ===== 03. ニュース＆トピックス / news.html ===== */
body.page-news .local-nav ul {
  display: grid;
  gap: 12px;
}

body.page-news .local-nav.cols-2 ul {
  grid-template-columns: repeat(2, 1fr);
}

body.page-news .local-nav.cols-3 ul {
  grid-template-columns: repeat(3, 1fr);
}

body.page-news .local-nav.cols-4 ul {
  grid-template-columns: repeat(4, 1fr);
}

body.page-news .local-nav.cols-5 ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-news .section-intro {
  margin-top: 16px;
  max-width: 860px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-news .split-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-news .split-grid.reverse .split-media {
  order: -1;
}

body.page-news .split-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-news .split-copy p + p {
  margin-top: 14px;
}

body.page-news .split-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-news .info-table caption {
  text-align: left;
  color: var(--muted);
  font-size: var(--fs-sm);
  margin-bottom: 8px;
}

body.page-news .info-table thead th {
  width: auto;
  background: var(--blue-light);
  color: var(--navy);
}

body.page-news .table-wrap {
  margin-top: 24px;
  overflow-x: auto;
}

body.page-news .note.warn {
  border-left-color: var(--orange);
  background: #fffaf6;
}

body.page-news .note.warn strong {
  color: #b95814;
}

body.page-news .clean-list {
  margin-top: 22px;
  display: grid;
  gap: 10px;
}

body.page-news .clean-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-base);
  color: var(--text);
}

body.page-news .clean-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-news .notes {
  margin-top: 14px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-news .notes li + li {
  margin-top: 4px;
}

body.page-news .primary-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 22px;
  padding: 15px 20px;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-news .primary-link:hover {
  background: var(--blue-dark);
}

body.page-news .secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 22px;
  padding: 14px 20px;
  border-radius: 9px;
  border: 1px solid var(--blue);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
  background: #fff;
}

body.page-news .action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

body.page-news .action-row .primary-link,
body.page-news .action-row .secondary-link {
  margin-top: 0;
}

body.page-news .docs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 24px;
}

body.page-news .doc-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: var(--fs-sm);
}

body.page-news .doc-icon {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-weight: 700;
  flex-shrink: 0;
}

body.page-news .flow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
  counter-reset: flow;
}

body.page-news .flow li {
  position: relative;
  padding: 26px 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-height: 190px;
  counter-increment: flow;
}

body.page-news .flow li::before {
  content: "0" counter(flow);
  display: inline-block;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: 0.8125rem; /* 13px */
  color: var(--blue);
  letter-spacing: 0.08em;
}

body.page-news .flow li::after {
  content: "→";
  position: absolute;
  right: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
}

body.page-news .flow li:nth-child(3)::after,
body.page-news .flow li:last-child::after {
  display: none;
}

body.page-news .flow-title {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-news .flow li p:last-child {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-news .tenant-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-news .tenant-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.2s;
}

body.page-news .tenant-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-news .tenant-img {
  aspect-ratio: 4/3;
}

body.page-news .tenant-body {
  padding: 19px 20px 20px;
}

body.page-news .tenant-body h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  line-height: 1.5;
}

body.page-news .tenant-body p {
  margin-top: 5px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

@media (max-width: 1080px) {
  body.page-news .tenant-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-news .related-grid {
    grid-template-columns: 1fr;
  }

  body.page-news .local-nav.cols-4 ul,
  body.page-news .local-nav.cols-5 ul {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 760px) {
  body.page-news .local-nav ul,
  body.page-news .local-nav.cols-2 ul,
  body.page-news .local-nav.cols-3 ul,
  body.page-news .local-nav.cols-4 ul,
  body.page-news .local-nav.cols-5 ul {
    grid-template-columns: 1fr;
  }

  body.page-news .split-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-news .split-grid.reverse .split-media {
    order: 0;
  }

  body.page-news .split-media {
    aspect-ratio: 16/10;
  }

  body.page-news .docs-grid {
    grid-template-columns: 1fr;
  }

  body.page-news .flow {
    grid-template-columns: 1fr;
  }

  body.page-news .flow li::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: auto;
    bottom: -23px;
    transform: translateX(-50%);
  }

  body.page-news .flow li:last-child::after {
    display: none;
  }

  body.page-news .tenant-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  body.page-news .info-table th,
  body.page-news .info-table td {
    padding: 12px 14px;
  }
}

body.page-news .map-box {
  overflow: hidden;
  border-radius: 14px;
  background: var(--blue-pale);
  border: 1px solid var(--line);
}

body.page-news .map-box iframe {
  display: block;
  width: 100%;
  height: 440px;
  border: 0;
}

body.page-news .access-summary {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 32px;
  margin-top: 28px;
}

body.page-news .access-cards {
  display: grid;
  gap: 14px;
}

body.page-news .access-card {
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
}

body.page-news .access-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-news .access-card ul {
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

body.page-news .download-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items: center;
  margin-top: 28px;
}

body.page-news .download-media {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-news .bicycle-flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 26px;
}

body.page-news .flow-panel {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-news .flow-panel h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 12px;
}

body.page-news .flow-panel ol {
  counter-reset: step;
  display: grid;
  gap: 10px;
}

body.page-news .flow-panel ol li {
  counter-increment: step;
  position: relative;
  padding-left: 34px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-news .flow-panel ol li::before {
  content: counter(step);
  position: absolute;
  left: 0;
  top: 1px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  font-size: 0.625rem; /* 10px */
  font-weight: 700;
}

body.page-news .pdf-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}

body.page-news .pdf-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-news .pdf-list a:hover {
  border-color: var(--blue);
  background: var(--blue-pale);
}

@media (max-width: 760px) {
  body.page-news .map-box iframe {
    height: 320px;
  }

  body.page-news .access-summary,
  body.page-news .download-grid,
  body.page-news .bicycle-flow {
    grid-template-columns: 1fr;
  }
}

body.page-news .access-summary.access-only {
  display: block;
}

body.page-news .access-summary.access-only .access-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (max-width: 760px) {
  body.page-news .access-summary.access-only .access-cards {
    grid-template-columns: 1fr;
  }
}

body.page-news .news-page {
  padding: 28px 0 70px;
}

body.page-news .news-panel {
  padding: 34px 36px 40px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
}

body.page-news .news-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
}

body.page-news .news-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.page-news .news-filter button {
  appearance: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 14px;
  background: #fff;
  color: var(--muted);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 700;
  cursor: pointer;
  transition: 0.2s;
}

body.page-news .news-filter button:hover,
body.page-news .news-filter button.active {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

body.page-news .news-count {
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.page-news .news-list {
  display: grid;
  gap: 18px;
}

body.page-news .news-post {
  padding: 24px 26px 26px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 15px;
}

body.page-news .news-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

body.page-news .news-meta time {
  font-family: var(--serif);
  font-size: var(--fs-sm);
  color: var(--muted);
  letter-spacing: 0.05em;
}

body.page-news .news-tag {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--blue-pale);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-news .news-post h2 {
  font-family: var(--serif);
  font-size: var(--fs-head-3);
  line-height: 1.7;
  font-weight: 600;
  color: var(--navy);
}

body.page-news .news-body {
  margin-top: 13px;
  font-size: var(--fs-base);
  line-height: 2;
  color: var(--muted);
}

body.page-news .news-body p + p {
  margin-top: 8px;
}

body.page-news .news-body-image {
  margin-top: 18px;
  width: min(100%, 680px);
  aspect-ratio: 16/9;
  border-radius: 12px;
  overflow: hidden;
}

body.page-news .news-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 30px;
}

body.page-news .news-pagination a,
body.page-news .news-pagination span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  color: var(--navy);
  font-size: var(--fs-sm);
}

body.page-news .news-pagination .current {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}

@media (max-width: 760px) {
  body.page-news .news-page {
    padding-top: 18px;
  }

  body.page-news .news-panel {
    padding: 24px 18px 30px;
  }

  body.page-news .news-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  body.page-news .news-post {
    padding: 20px 18px 22px;
  }

  body.page-news .news-body-image {
    width: 100%;
  }
}

/* ===== 03. 施設概要 / office.html ===== */
body.page-office .local-nav ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

body.page-office .section-intro {
  margin-top: 16px;
  max-width: 820px;
  color: var(--muted);
  font-size: var(--fs-base);
}

body.page-office .overview-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 44px;
  align-items: start;
  margin-top: 30px;
}

body.page-office .overview-img {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-office .office-grid {
  display: grid;
  grid-template-columns: 0.92fr 1.08fr;
  gap: 44px;
  align-items: center;
  margin-top: 28px;
}

body.page-office .office-img {
  aspect-ratio: 4/3;
  border-radius: 14px;
}

body.page-office .office-copy p {
  color: var(--muted);
  font-size: var(--fs-base);
  line-height: 2;
}

body.page-office .office-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 20px 0 22px;
}

body.page-office .meta-chip {
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-office .cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 20px;
  min-width: 310px;
  max-width: 100%;
  border-radius: 9px;
  background: var(--blue);
  color: #fff;
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
}

body.page-office .cta-link:hover {
  background: var(--blue-dark);
}

body.page-office .support-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-office .support-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 26px 24px;
  min-height: 190px;
}

body.page-office .support-icon {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--blue-light);
  color: var(--blue);
  margin-bottom: 18px;
}

body.page-office .support-icon svg {
  width: 25px;
  height: 25px;
}

body.page-office .support-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 10px;
}

body.page-office .support-card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-office .consult-btn:hover {
  opacity: 0.88;
}

@media (max-width: 1080px) {
  body.page-office .support-grid,
  body.page-office .related-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.page-office .local-nav ul {
    grid-template-columns: 1fr;
  }

  body.page-office .overview-grid,
  body.page-office .office-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-office .overview-img,
  body.page-office .office-img {
    aspect-ratio: 16/10;
  }

  body.page-office .support-grid {
    grid-template-columns: 1fr;
  }

  body.page-office .cta-link {
    min-width: 0;
    width: 100%;
  }

  body.page-office .related-head {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  body.page-office .info-table th,
  body.page-office .info-table td {
    display: block;
    width: 100%;
    padding: 12px 14px;
  }

  body.page-office .info-table th {
    border-bottom: 0;
    padding-bottom: 4px;
    background: #fff;
    color: var(--blue);
  }

  body.page-office .info-table td {
    padding-top: 4px;
  }

  body.page-office .info-table tr:not(:last-child) td {
    border-bottom: 1px solid var(--line);
  }
}

body.page-office .local-nav.office-nav ul {
  grid-template-columns: repeat(5, 1fr);
}

body.page-office .office-intro-grid {
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 44px;
  align-items: center;
  margin-top: 30px;
}

body.page-office .office-main-img {
  aspect-ratio: 5/3;
  border-radius: 14px;
}

body.page-office .office-intro-copy p {
  font-size: var(--fs-base);
  color: var(--muted);
  line-height: 2;
}

body.page-office .office-facts {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 20px;
}

body.page-office .office-fact {
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--blue-light);
  color: var(--blue);
  font-size: var(--fs-sm);
  font-weight: 700;
}

body.page-office .facility-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
}

body.page-office .facility-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  transition: 0.24s;
}

body.page-office .facility-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

body.page-office .facility-card-img {
  aspect-ratio: 2/1;
}

body.page-office .facility-card-body {
  padding: 20px 20px 22px;
}

body.page-office .facility-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 8px;
}

body.page-office .facility-card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-office .rate-table-wrap {
  margin-top: 26px;
  overflow-x: auto;
}

body.page-office .rate-table {
  width: 100%;
  min-width: 720px;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  font-size: var(--fs-sm);
}

body.page-office .rate-table th,
body.page-office .rate-table td {
  padding: 14px 15px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

body.page-office .rate-table tr:last-child th,
body.page-office .rate-table tr:last-child td {
  border-bottom: 0;
}

body.page-office .rate-table thead th {
  background: var(--blue-light);
  color: var(--navy);
  font-weight: 700;
}

body.page-office .rate-table tbody th {
  color: var(--navy);
  font-weight: 700;
  background: #f9fbfe;
}

body.page-office .rate-table .num {
  text-align: right;
  white-space: nowrap;
}

body.page-office .feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
}

body.page-office .feature-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 24px;
}

body.page-office .feature-card .mini {
  font-size: var(--fs-sm);
  letter-spacing: 0.14em;
  color: var(--blue);
  font-weight: 700;
}

body.page-office .feature-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin: 4px 0 8px;
}

body.page-office .feature-card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-office .request-list {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}

body.page-office .request-list li {
  position: relative;
  padding: 14px 18px 14px 42px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: var(--fs-sm);
  color: var(--text);
}

body.page-office .request-list li::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 22px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}

body.page-office .equipment-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 26px;
}

body.page-office .equipment-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 24px;
}

body.page-office .equipment-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 10px;
}

body.page-office .equipment-card p {
  font-size: var(--fs-sm);
  color: var(--muted);
  margin-bottom: 12px;
}

body.page-office .equipment-card ul {
  display: grid;
  gap: 10px;
}

body.page-office .equipment-card li {
  font-size: var(--fs-sm);
  line-height: 1.9;
  color: var(--text);
  padding-bottom: 10px;
  border-bottom: 1px solid #edf2f8;
}

body.page-office .equipment-card li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

body.page-office .floorplan-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  margin-top: 26px;
}

body.page-office .floorplan-card {
  padding: 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-office .floorplan-card img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #fff;
}

body.page-office .floorplan-note {
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
  margin-top: 12px;
}

body.page-office .reserve-box {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 26px;
  margin-top: 24px;
  padding: 28px 30px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--navy), #234d8b);
  color: #fff;
}

body.page-office .reserve-box h3 {
  font-family: var(--serif);
  font-size: var(--fs-xl);
  font-weight: 600;
}

body.page-office .reserve-box p {
  font-size: var(--fs-base);
  opacity: 0.84;
  margin-top: 6px;
}

body.page-office .reserve-box .btn {
  padding: 14px 22px;
}

body.page-office .small-banner-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 18px;
  padding: 14px 18px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--navy);
  font-size: var(--fs-sm);
  font-weight: 700;
  transition: 0.2s;
  max-width: 340px;
  width: 100%;
}

body.page-office .small-banner-link:hover {
  background: var(--blue-pale);
  border-color: var(--blue);
  box-shadow: var(--shadow);
}

body.page-office .small-banner-link .label {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

body.page-office .small-banner-link small {
  font-size: var(--fs-sm);
  letter-spacing: 0.08em;
  color: var(--blue);
  font-weight: 700;
}

body.page-office .small-banner-link .arrow {
  color: var(--blue);
}

body.page-office .use-facility-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 44px;
  align-items: start;
  margin-top: 24px;
}

body.page-office .use-facility-grid > * {
  min-width: 0;
}

body.page-office .use-facility-img {
  width: 100%;
  aspect-ratio: 5/3;
  border-radius: 14px;
  overflow: hidden;
}

body.page-office .use-facility-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.page-office .use-facility-grid .rate-table-wrap {
  margin-top: 20px;
}

body.page-office .meeting-rate-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  font-size: var(--fs-sm);
}

body.page-office .meeting-rate-table th,
body.page-office .meeting-rate-table td {
  padding: 12px 9px;
  overflow-wrap: anywhere;
}

body.page-office .meeting-rate-table thead th {
  white-space: normal;
  line-height: 1.5;
}

body.page-office .meeting-rate-table .num {
  white-space: nowrap;
  text-align: right;
}

body.page-office .meeting-rate-table .room-name {
  white-space: nowrap;
}

body.page-office .meeting-rate-table .remarks {
  line-height: 1.55;
}

@media (max-width: 1080px) {
  body.page-office .meeting-rate-table th,
  body.page-office .meeting-rate-table td {
    padding: 10px 7px;
  }
}

@media (max-width: 760px) {
  body.page-office .meeting-rate-table {
    min-width: 620px;
    table-layout: auto;
  }

  body.page-office .meeting-rate-table th,
  body.page-office .meeting-rate-table td {
    padding: 12px 10px;
  }
}

@media (max-width: 760px) {
  body.page-office .use-facility-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-office .use-facility-img {
    order: -1;
    aspect-ratio: 16/10;
  }
}

@media (max-width: 1080px) {
  body.page-office .local-nav.office-nav ul {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-office .facility-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  body.page-office .feature-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  body.page-office .local-nav.office-nav ul {
    grid-template-columns: 1fr;
  }

  body.page-office .office-intro-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.page-office .office-main-img {
    aspect-ratio: 16/10;
    order: -1;
  }

  body.page-office .facility-grid,
  body.page-office .feature-grid,
  body.page-office .equipment-grid {
    grid-template-columns: 1fr;
  }

  body.page-office .reserve-box {
    grid-template-columns: 1fr;
    padding: 24px 20px;
  }
}

body.page-office .request-info-card {
  margin-top: 26px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}

body.page-office .request-info-card h3 {
  font-family: var(--serif);
  font-size: var(--fs-lg);
  color: var(--navy);
  margin-bottom: 12px;
}

body.page-office .request-info-card ul {
  display: grid;
  gap: 7px;
}

body.page-office .request-info-card li {
  position: relative;
  padding-left: 16px;
  font-size: var(--fs-sm);
  color: var(--muted);
  line-height: 1.9;
}

body.page-office .request-info-card li::before {
  content: "●";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--blue);
  font-size: 0.5rem; /* 8px */
}

/* ===== 04. 旧インライン指定の共通ユーティリティ ===== */

.u-inline-001 {
  margin-top: 26px !important;
}

.u-inline-002 {
  color: var(--navy) !important;
}

.u-inline-003 {
  color: var(--blue) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.u-inline-004 {
  object-fit: contain !important;
  background: #fff7ee !important;
}

.u-inline-005 {
  object-position: center 15% !important;
}

.u-inline-006 {
  object-fit: contain !important;
  background: #fff !important;
  padding: 6% 12% !important;
}

.u-inline-007 {
  object-fit: contain !important;
  background: #fff !important;
  padding: 8% 14% !important;
}

.u-inline-008 {
  object-fit: contain !important;
  background: #fff !important;
  padding: 14% 16% !important;
}

.u-inline-009 {
  object-position: center 30% !important;
}

.u-inline-010 {
  object-position: center 45% !important;
}

.u-inline-011 {
  object-position: center 20% !important;
}

.u-inline-012 {
  object-position: center 25% !important;
}

.u-inline-013 {
  margin-top: 14px !important;
}

.u-inline-014 {
  margin-top: 34px !important;
}

.u-inline-015 {
  font-size: var(--fs-2xl) !important;
}

.u-inline-016 {
  margin-top: 0 !important;
}

.u-inline-017 {
  width: 25% !important;
}

.u-inline-018 {
  width: 12% !important;
}

.u-inline-019 {
  width: 18% !important;
}

.u-inline-020 {
  width: 27% !important;
}

.u-inline-021 {
  margin-top: 42px !important;
  padding-top: 42px !important;
  border-top: 1px solid var(--line) !important;
}

.u-inline-022 {
  min-width: 0 !important;
}

.u-inline-023 {
  font-size: var(--fs-xs) !important;
  color: var(--muted) !important;
  font-weight: 400 !important;
}

/* ヒーロー画像のフェード切替スライド */
body.page-index .hero-img .hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s ease;
}

body.page-index .hero-img .hero-slide.is-active {
  opacity: 1;
}

/* サブページのヒーロー下にパンくずリストを表示する */
body.site-subpage .page-hero .container {
  display: flex;
  flex-direction: column;
}

body.site-subpage .page-hero .breadcrumb {
  order: 2;
  margin-top: 18px;
  margin-bottom: 0;
}

@media (min-width: 1081px) {
  body.site-subpage .page-hero .breadcrumb {
    margin-top: 24px;
  }
}

@media (max-width: 760px) {
  body.site-subpage .page-hero .breadcrumb {
    margin-top: 16px;
  }
}

/* トップページのアクセスマップ(横幅100%・高さ460px) */
.access-map {
  width: 100%;
  height: 460px;
}

.access-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* アクセスページの地図はトップより高く表示する */
body.page-access .access-map {
  height: 600px;
}

/* 地図の前後の余白を、他のパネル間（.sub-section + .sub-section）と同じ値にそろえる */
body.page-access #access-04 {
  padding-bottom: 46px;
}

body.page-access .access-map + .sub-section {
  padding-top: 46px;
}

@media (max-width: 760px) {
  body.page-access .access-map {
    height: 480px;
  }

  body.page-access #access-04 {
    padding-bottom: 30px;
  }

  body.page-access .access-map + .sub-section {
    padding-top: 30px;
  }
}

/* 駐車場の写真（3枚横並び） */
body.page-access .parking-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 26px;
}

body.page-access .parking-photo {
  margin: 0;
  aspect-ratio: 4 / 3;
  border-radius: 12px;
}

body.page-access .parking-photo img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 760px) {
  body.page-access .parking-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* ===== プライバシーポリシー ===== */
body.page-privacy .policy-body h3 {
  margin: 2em 0 0.6em;
  padding-left: 0.7em;
  border-left: 4px solid var(--blue);
  font-size: var(--fs-lg);
  line-height: 1.5;
  color: var(--navy);
}

body.page-privacy .policy-body p {
  margin-top: 0.6em;
  line-height: 1.9;
}

body.page-privacy .policy-body ul {
  margin: 0.6em 0 0 1.4em;
  list-style: disc;
}

body.page-privacy .policy-body li {
  line-height: 1.9;
}

body.page-privacy .policy-body a {
  color: var(--blue);
  text-decoration: underline;
}

body.page-privacy .policy-body .policy-date {
  margin-top: 1.6em;
  text-align: right;
  color: var(--muted);
}

/* ===== サイトマップ ===== */
body.page-sitemap .sitemap-list li {
  border-bottom: 1px solid var(--line);
}

body.page-sitemap .sitemap-list li:first-child {
  border-top: 1px solid var(--line);
}

body.page-sitemap .sitemap-list a {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 16px 8px;
  color: var(--text);
  transition: background 0.2s;
}

body.page-sitemap .sitemap-name {
  flex: 0 0 18em;
  font-weight: 700;
  color: var(--blue);
}

body.page-sitemap .sitemap-desc {
  flex: 1;
  font-size: var(--fs-sm);
  color: var(--muted);
}

body.page-sitemap .sitemap-arr {
  color: var(--blue);
  transition: transform 0.2s;
}

body.page-sitemap .sitemap-list a:hover {
  background: var(--blue-pale);
}

body.page-sitemap .sitemap-list a:hover .sitemap-arr {
  transform: translateX(4px);
}

@media (max-width: 760px) {
  body.page-sitemap .sitemap-list a {
    flex-wrap: wrap;
    gap: 2px 12px;
  }

  body.page-sitemap .sitemap-name {
    flex: 1 1 calc(100% - 40px);
  }

  body.page-sitemap .sitemap-desc {
    order: 3;
    flex: 1 1 100%;
  }
}

/* ============================================================
   セクション99 スマホでの表の見え方（2026-10-21 追加）
   ------------------------------------------------------------
   会議室の料金表は5列あり、狭い画面では枠（.rate-table-wrap）に
   収まりきらず横に切れて見えていた。横スクロールはできるものの、
   スクロールできると分かる手がかりが無いため読み飛ばされてしまう。
   そこで狭い画面では「1行＝1カード」に積み替える。
   見出しは各セルの data-label から出す
   （講座ページの .class-table と同じ手法。並べ方もそろえてある）。

   ★ このファイルの後ろに置くこと。前方にある
     @media (max-width:760px) の min-width:620px を打ち消している。
   ============================================================ */
@media (max-width: 760px) {
  /* 横スクロールの枠はもう要らない */
  body.page-office .use-facility-grid .rate-table-wrap {
    overflow-x: visible;
  }

  body.page-office .meeting-rate-table {
    min-width: 0;
    width: 100%;
    table-layout: auto;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  /* 列幅の指定と見出し行はカードでは使わない */
  body.page-office .meeting-rate-table colgroup,
  body.page-office .meeting-rate-table thead {
    display: none;
  }

  body.page-office .meeting-rate-table,
  body.page-office .meeting-rate-table tbody,
  body.page-office .meeting-rate-table tr,
  body.page-office .meeting-rate-table th,
  body.page-office .meeting-rate-table td {
    display: block;
    width: 100%;
  }

  body.page-office .meeting-rate-table tbody {
    display: grid;
    gap: 14px;
  }

  body.page-office .meeting-rate-table tbody tr {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
  }

  /* 1列目（会議室名）はカードの見出しにする */
  body.page-office .meeting-rate-table tbody th.room-name {
    padding: 11px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--blue-light);
    color: var(--navy);
    font-weight: 700;
    text-align: left;
    white-space: normal;
  }

  /* 2列目以降は「項目名｜値」の横並び */
  body.page-office .meeting-rate-table tbody td {
    display: flex;
    gap: 12px;
    align-items: baseline;
    padding: 9px 14px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    line-height: 1.7;
  }

  body.page-office .meeting-rate-table tbody tr > *:last-child {
    border-bottom: 0;
  }

  body.page-office .meeting-rate-table tbody td::before {
    content: attr(data-label);
    flex: 0 0 84px;
    color: var(--muted);
    font-size: var(--fs-xs);
    font-weight: 700;
  }

  /* 金額は右寄せをやめ、項目名の右にそろえる */
  body.page-office .meeting-rate-table tbody td.num {
    text-align: left;
  }

  body.page-office .meeting-rate-table tbody td.remarks {
    line-height: 1.6;
  }
}

/* ------------------------------------------------------------
   2列の info-table（項目名｜内容）は、狭い画面では項目名を上に出す。
   th は width:27% なので、360px では 80px ほどしか取れず
   「自転車設置場所（貸出受付）」のような長い項目名が
   1文字ずつ折り返されて読みにくかった。
   4列ある「貸事務室の一覧」(.room-list-table) は下で別に扱う。
   ------------------------------------------------------------ */
@media (max-width: 600px) {
  body.site-subpage .info-table:not(.room-list-table),
  body.site-subpage .info-table:not(.room-list-table) tbody,
  body.site-subpage .info-table:not(.room-list-table) tr,
  body.site-subpage .info-table:not(.room-list-table) th,
  body.site-subpage .info-table:not(.room-list-table) td {
    display: block;
    width: 100%;
  }

  body.site-subpage .info-table:not(.room-list-table) tr:not(:last-child) {
    border-bottom: 1px solid var(--line);
  }

  /* 項目名（上段） */
  body.site-subpage .info-table:not(.room-list-table) th {
    padding: 12px 15px 0 15px;
    border-bottom: 0;
    background: transparent;
    font-size: var(--fs-xs);
    line-height: 1.6;
  }

  /* 内容（下段） */
  body.site-subpage .info-table:not(.room-list-table) td {
    padding: 3px 15px 13px 15px;
    border-bottom: 0;
    line-height: 1.8;
  }
}

/* ------------------------------------------------------------
   「貸事務室の一覧」は4列あり、狭い画面では1列あたり 60px ほどしか
   取れず「31,774円」が途中で折り返されていた。
   会議室の料金表と同じく、1行＝1カードに積み替える。
   ------------------------------------------------------------ */
@media (max-width: 760px) {
  body.site-subpage .info-table.room-list-table {
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  body.site-subpage .info-table.room-list-table thead {
    display: none;
  }

  body.site-subpage .info-table.room-list-table,
  body.site-subpage .info-table.room-list-table tbody,
  body.site-subpage .info-table.room-list-table tr,
  body.site-subpage .info-table.room-list-table th,
  body.site-subpage .info-table.room-list-table td {
    display: block;
    width: 100%;
  }

  body.site-subpage .info-table.room-list-table tbody {
    display: grid;
    gap: 14px;
  }

  body.site-subpage .info-table.room-list-table tbody tr {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
  }

  /* 1列目（室名）はカードの見出し */
  body.site-subpage .info-table.room-list-table tbody th {
    padding: 11px 15px;
    border-bottom: 1px solid var(--line);
    background: var(--blue-light);
    color: var(--navy);
    font-weight: 700;
    text-align: left;
  }

  /* 2列目以降は「項目名｜値」の横並び */
  body.site-subpage .info-table.room-list-table tbody td {
    display: flex;
    gap: 12px;
    align-items: baseline;
    padding: 9px 15px;
    border-bottom: 1px solid var(--line);
    line-height: 1.7;
  }

  body.site-subpage .info-table.room-list-table tbody tr > *:last-child {
    border-bottom: 0;
  }

  body.site-subpage .info-table.room-list-table tbody td::before {
    content: attr(data-label);
    flex: 0 0 84px;
    color: var(--muted);
    font-size: var(--fs-xs);
    font-weight: 700;
  }
}

/* ------------------------------------------------------------
   表をブロック表示に積み替えると、caption の親が表でなくなるため
   幅が内容なりに縮んで1〜2文字ずつ折り返されてしまう。
   積み替えたときだけ caption もブロックにして横幅いっぱいに戻す。
   ------------------------------------------------------------ */
@media (max-width: 760px) {
  body.site-subpage .info-table.room-list-table caption,
  body.page-office .meeting-rate-table caption {
    display: block;
    width: 100%;
    text-align: left;
  }
}

@media (max-width: 600px) {
  body.site-subpage .info-table:not(.room-list-table) caption {
    display: block;
    width: 100%;
    text-align: left;
  }
}

/* ------------------------------------------------------------
   スマホのメニュー内に並ぶ2つの予約ボタンは、画面幅が 360px ほどより
   狭いと横に収まりきらず「レンタサイクル予約」の右側が切れていた
   （.btn が flex:1 でも、文字の最小幅より縮まないため）。
   収まらないときは折り返して1行に1つずつ並べる。
   ------------------------------------------------------------ */
@media (max-width: 1080px) {
  .gnav-btns {
    flex-wrap: wrap;
  }

  .gnav-btns .btn {
    flex: 1 1 140px;
    min-width: 0;
  }
}

/* ------------------------------------------------------------
   入居者紹介の「代表 ○○」バッジは flex-shrink:0 で縮まないため、
   画面が狭いと英字名と並びきらずカードの外に出て切れていた
   （320px で「代表 長谷川 ななみ」の後半が欠けていた）。
   並びきらないときは下の行へ折り返す。広い画面では今までどおり。
   ------------------------------------------------------------ */
body.page-incubation-tenants .tenant-name {
  flex-wrap: wrap;
}
