@charset "UTF-8";
/* ==========================================================================
   Kakokura Special — main.css

   【スケーリング設計】1ks-rem ≒ カンプ上の10px（純vw式）
   ルート要素（html）の font-size は変更せず、ブラウザ既定値のまま維持する。
   代わりに --ks-rem というカスタムプロパティに vw 計算式を持たせ、
   本ファイル内の全サイズを calc(var(--ks-rem) * N) の形で指定する
   （rem単位そのものは使わない）。

   - 〜767px    : SP基準（390pxカンプ） --ks-rem = 100vw / 39
   - 768〜1599px: PC基準（1600pxカンプ） --ks-rem = 100vw / 160
   - 1600px〜   : 10px固定（カンプ上限）

   768px以上では画面幅に対して同一比率で縮小・拡大する。
   767px以下でSPレイアウトに切り替わり、390pxカンプ基準で vw スケールする。
   フォントサイズのみ --ks-font-min（12px）を下限とし、max() でクランプする。

   数値はFigma実測値（px÷10）。座標コメントはカンプ上のpx値。
   ========================================================================== */

:root {
  /* SP基準（〜767px）。html要素のfont-sizeには触れない。 */
  --ks-rem: calc(100vw / 39);
}

@media (min-width: 768px) {
  :root {
    /* PC基準（768〜1599px） */
    --ks-rem: calc(100vw / 160);
  }
}

@media (min-width: 1600px) {
  :root {
    --ks-rem: 10px;
  }
}

/* --------------------------------------------------------------------------
   Design tokens
   -------------------------------------------------------------------------- */
:root {
  --ks-color-primary: #2999a3;
  --ks-color-primary-light: #d6f2f5;
  --ks-color-secondary: #d65311;
  --ks-color-secondary-light: #fdefe7;
  --ks-color-tertiary: var(--ks-color-primary);
  --ks-color-tertiary-light: var(--ks-color-primary-light);
  --ks-color-surface: #ebf9fa;
  --ks-color-surface-dark: #c2ecf0;
  --ks-color-text: #333333;
  --ks-color-white: #ffffff;
  --ks-color-bg: #f0fafb;
  --ks-color-badge-bg: #fdefe7;
  --ks-color-badge-text: #d65311;
  --ks-color-grid-line: rgba(41, 153, 163, 0.12);
  --ks-color-divider: #e6e6e6;
  --ks-color-gray: #cccccc;

  --ks-font: "LINE Seed JP", "Hiragino Kaku Gothic ProN",
    "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;

  --ks-radius-card: calc(var(--ks-rem) * 3.2);
  --ks-container: calc(var(--ks-rem) * 101.6); /* 1016px */
  --ks-gutter: calc(var(--ks-rem) * 4); /* 画面端ガター PC 40 / SP は 767 以下で 20 */
  --ks-font-min: 12px;
  --ks-header-height: calc(var(--ks-rem) * 12); /* 120 */
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  overflow-x: hidden; /* 絶対配置イラストのはみ出しによる横スクロールを防止 */
  scroll-padding-top: var(--ks-header-height); /* 固定ヘッダー分（アンカーリンク用） */
}

body {
  margin: 0;
  padding-top: var(--ks-header-height);
  font-family: var(--ks-font);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  font-weight: 700;
  font-feature-settings: "palt" 1;
  color: var(--ks-color-text);
  background: var(--ks-color-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden; /* 絶対配置イラストのはみ出しによる横スクロールを防止 */
}

img {
  max-width: 100%;
  height: auto;
}

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

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

h1,
h2,
p,
figure {
  margin: 0;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.skip-link:focus {
  position: fixed;
  top: calc(var(--ks-rem) * 0.8);
  left: calc(var(--ks-rem) * 0.8);
  z-index: 100;
  width: auto;
  height: auto;
  clip: auto;
  clip-path: none;
  padding: calc(var(--ks-rem) * 0.8) calc(var(--ks-rem) * 1.6);
  background: var(--ks-color-tertiary);
  color: var(--ks-color-white);
  border-radius: calc(var(--ks-rem) * 0.8);
}

:focus-visible {
  outline: 3px solid var(--ks-color-tertiary);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   共通ボタン
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.btn:hover {
  transform: translateY(calc(var(--ks-rem) * -0.2));
}

.btn__icon--search {
  width: calc(var(--ks-rem) * 3.2);  /* 32 */
  height: calc(var(--ks-rem) * 3.2);
}

.btn__icon--arrow {
  width: calc(var(--ks-rem) * 2.4);  /* 24 */
  height: calc(var(--ks-rem) * 2.4);
  transition: transform 0.25s ease;
}

.btn:hover .btn__icon--arrow,
.btn:focus-visible .btn__icon--arrow {
  transform: translateX(calc(var(--ks-rem) * 0.3));
}

/* ヘッダーお問い合わせピル: h80 / px40 / gap16 / 24px / 青緑 */
.btn--contact-header {
  gap: calc(var(--ks-rem) * 1.6);
  height: calc(var(--ks-rem) * 8);
  padding: 0 calc(var(--ks-rem) * 4);
  background: var(--ks-color-primary);
  color: var(--ks-color-white);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  line-height: 1.4;
  white-space: nowrap;
  flex-shrink: 0;
}

.btn__icon--mail {
  width: calc(var(--ks-rem) * 3.2);
  height: calc(var(--ks-rem) * 3.2);
  flex-shrink: 0;
}

/* カテゴリ検索ボタン */
.btn--filter-search {
  gap: calc(var(--ks-rem) * 1.6);
  padding: calc(var(--ks-rem) * 1.6) calc(var(--ks-rem) * 2.4);
  background: var(--ks-color-secondary);
  color: var(--ks-color-white);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  line-height: 1.4;
  flex-shrink: 0;
  align-self: flex-start;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-weight: inherit;
  border-radius: 9999px;
}

/* ニュース一覧: px36 / py24 / gap16 / 24px */
.btn--news,
.btn--contact {
  gap: calc(var(--ks-rem) * 1.6);
  padding: calc(var(--ks-rem) * 2.4) calc(var(--ks-rem) * 3.6);
  background: var(--ks-color-secondary);
  color: var(--ks-color-white);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  line-height: 1.4;
  flex-shrink: 0;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-weight: inherit;
}


/* --------------------------------------------------------------------------
   Header（白背景 / h120 / px40）
   -------------------------------------------------------------------------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--ks-color-white);
}

/* ログイン時: 管理バーの下にヘッダーを配置（WP標準の html margin-top と併用） */
body.admin-bar .site-header {
  top: 32px;
}

@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(var(--ks-rem) * 12);
  padding-inline: var(--ks-gutter);
}

.site-header__brand {
  display: flex;
  align-items: center;
}

.site-header__logo {
  display: flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 2.4); /* 24 */
  color: inherit;
  text-decoration: none;
}

.site-header__logo img {
  display: block;
  width: calc(var(--ks-rem) * 19.8); /* 198 */
  height: calc(var(--ks-rem) * 4.8); /* 48 */
}

.site-header__divider {
  width: 0;
  height: calc(var(--ks-rem) * 3.2); /* 32 */
  border-left: 1px solid rgba(51, 51, 51, 0.3);
}

.site-header__tagline {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4)); /* 24 */
  line-height: 1;
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 1.6); /* 16 */
}

/* ハンバーガー: 80px円 / 白バー26x6 x3 / gap6 */
.menu-toggle {
  display: grid;
  place-items: center;
  width: calc(var(--ks-rem) * 8);
  height: calc(var(--ks-rem) * 8);
  border: 0;
  border-radius: 50%;
  background: var(--ks-color-secondary);
  cursor: pointer;
}

.menu-toggle__bars {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 0.6);
}

.menu-toggle__bar {
  display: block;
  width: calc(var(--ks-rem) * 2.6);
  height: calc(var(--ks-rem) * 0.6);
  border-radius: 9999px;
  background: var(--ks-color-white);
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(1) {
  transform: translateY(calc(var(--ks-rem) * 1.2)) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(2) {
  opacity: 0;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(3) {
  transform: translateY(calc(var(--ks-rem) * -1.2)) rotate(-45deg);
}

.global-nav {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 40;
  padding: calc(var(--ks-rem) * 1.6) var(--ks-gutter);
}

.global-nav[hidden] {
  display: none;
}

/* Figma 308:78548 — 白カード / p40 / 角丸24 / 枠線2px */
.global-nav__panel {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 2.4);
  max-width: var(--ks-container);
  margin: 0 auto;
  padding: calc(var(--ks-rem) * 4);
  background: var(--ks-color-white);
  border: 2px solid var(--ks-color-divider);
  border-radius: calc(var(--ks-rem) * 2.4);
  box-shadow: 0 calc(var(--ks-rem) * 0.8) calc(var(--ks-rem) * 2.4) rgba(51, 51, 51, 0.08);
  opacity: 0;
  transform: translateY(calc(var(--ks-rem) * -1.6)) scale(0.98);
  transform-origin: top center;
  transition:
    opacity 0.32s ease,
    transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
}

.global-nav.is-open .global-nav__panel {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.global-nav__item,
.global-nav__rule,
.global-nav__external li {
  opacity: 0;
  transform: translateY(calc(var(--ks-rem) * 0.6));
  transition:
    opacity 0.24s ease,
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: 0s;
}

.global-nav.is-open .global-nav__item,
.global-nav.is-open .global-nav__rule,
.global-nav.is-open .global-nav__external li {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.18s;
}

.global-nav__list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 2.4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.global-nav__link {
  display: flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 1.6);
  color: var(--ks-color-text);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  font-weight: 700;
  line-height: 1.4;
}

.global-nav__link:hover {
  text-decoration: underline;
}

.global-nav__icon {
  display: block;
  width: calc(var(--ks-rem) * 2.4);
  height: calc(var(--ks-rem) * 2.4);
  flex-shrink: 0;
  color: var(--ks-color-tertiary);
  transition: transform 0.2s ease;
}

.global-nav__link:hover .global-nav__icon,
.global-nav__link:focus-visible .global-nav__icon {
  transform: translateX(calc(var(--ks-rem) * 0.3));
}

.global-nav__rule {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--ks-color-divider);
}

.global-nav__external {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 1.6);
  margin: 0;
  padding: 0;
  list-style: none;
}

.global-nav__external-link {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 0.8);
  color: var(--ks-color-text);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  font-weight: 400;
  line-height: 1.4;
}

.global-nav__external-link:hover {
  text-decoration: underline;
}

body.nav-open {
  overflow: hidden;
}

/* PC：ハンバーガー右端（header gutter）にパネル右揃え */
@media (min-width: 768px) {
  .global-nav {
    left: auto;
    right: var(--ks-gutter);
    width: auto;
    padding: calc(var(--ks-rem) * 1.6) 0 0;
  }

  .global-nav__panel {
    width: max-content;
    min-width: calc(var(--ks-rem) * 19.1); /* Figma外部リンク幅191px */
    max-width: none;
    margin: 0;
    transform-origin: top right;
  }

  .global-nav__link {
    white-space: nowrap;
  }
}

/* --------------------------------------------------------------------------
   Hero — 特設サイト MV（最大1600px・不足域は同画像ぼかし）
   -------------------------------------------------------------------------- */
.hero,
.hero--special {
  position: relative;
  display: flex;
  justify-content: center;
  height: auto;
  padding-inline: 0;
  overflow: hidden;
  background: #83ccd2; /* ぼかし下のフォールバック */
}

/* ページ見出し（視覚は MV、読み上げは screen-reader-text） */
.hero__heading {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  pointer-events: none;
}

/* 背景: 同じ MV を cover + blur で余白を埋める */
.hero__blur {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.hero__blur-img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate(-50%, -50%) scale(1.12); /* ぼかし端の白抜けを隠す */
  filter: blur(28px);
}

.hero__visual {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1600px;
  margin-inline: auto;
}

.hero__mv {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
}

/* --------------------------------------------------------------------------
   Link cards（S-01 コンテンツ node 308:67918 / カード 488x420 / gap40）
   -------------------------------------------------------------------------- */
.link-cards {
  position: relative;
  /* カード上へイラストがはみ出す分（-88）を確保 */
  padding: calc(var(--ks-rem) * 20.8) var(--ks-gutter) calc(var(--ks-rem) * 16);
  overflow: visible;
  background: var(--ks-color-white);
}

/* link-cards 右上装飾（feature__deco--top を共用） */
.feature__deco--top {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(var(--ks-rem) * 40);
  height: calc(var(--ks-rem) * 40);
  color: var(--ks-color-primary-light);
  pointer-events: none;
}

.feature__deco--top svg {
  display: block;
  width: 100%;
  height: 100%;
}

.link-cards__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--ks-container); /* 1016 */
  margin-inline: auto;
}

.link-cards__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  gap: calc(var(--ks-rem) * 4); /* 40 */
  margin: 0;
  padding: 0;
  list-style: none;
}

.link-cards__item {
  width: 100%;
  min-width: 0;
}

.link-cards__item--full {
  grid-column: 1 / -1;
}

.link-card {
  position: relative;
  display: block;
  width: 100%;
  height: calc(var(--ks-rem) * 42); /* 420 */
  border: calc(var(--ks-rem) * 0.8) solid var(--ks-color-primary-light); /* 8px */
  border-radius: var(--ks-radius-card); /* 32 */
  background: var(--ks-color-surface); /* #EBF9FA */
  color: var(--ks-color-primary);
  text-decoration: none;
  overflow: visible;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.link-card:hover {
  transform: translateY(calc(var(--ks-rem) * -0.6));
  box-shadow: 0 calc(var(--ks-rem) * 1.6) calc(var(--ks-rem) * 3.2) rgba(41, 153, 163, 0.18);
}

/* イラスト: カード枠 260×280 / 上端から -88 */
.link-card__illust {
  position: absolute;
  top: calc(var(--ks-rem) * -8.8);
  left: 50%;
  width: calc(var(--ks-rem) * 26); /* 260 */
  height: calc(var(--ks-rem) * 28); /* 280 */
  transform: translateX(-50%);
  pointer-events: none;
}

.link-card__illust img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom center;
}

/* Figma: 左右とも top 210 で揃える（説明文の有無でずれない） */
.link-card__body {
  position: absolute;
  top: calc(var(--ks-rem) * 21); /* 210 */
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--ks-rem) * 1.6); /* 16 */
  width: 100%;
  max-width: calc(var(--ks-rem) * 40);
  text-align: center;
  transform: translateX(-50%);
}

.link-card--no-eyebrow .link-card__body {
  top: calc(var(--ks-rem) * 26.6);
}

/* Figma: 20px / leading 1.2 / px20 py10 */
.link-card__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--ks-rem) * 1) calc(var(--ks-rem) * 2);
  border-radius: 9999px;
  background: var(--ks-color-white);
  color: var(--ks-color-primary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2)); /* 20 */
  line-height: 1.2;
  white-space: nowrap;
}

.link-card__titles {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--ks-rem) * 0.6); /* 6 */
  width: 100%;
}

/* Figma: 40px / leading 1.2 */
.link-card__title {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 4)); /* 40 */
  line-height: 1.2;
  color: var(--ks-color-primary);
}

/* Figma: 20px / leading 1.2 */
.link-card__desc {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2)); /* 20 */
  line-height: 1.2;
  color: var(--ks-color-primary);
}

.link-card__arrow {
  position: absolute;
  right: calc(var(--ks-rem) * 2.4); /* 24 */
  bottom: calc(var(--ks-rem) * 2.4);
  width: calc(var(--ks-rem) * 4.8); /* 48 */
  height: calc(var(--ks-rem) * 4.8);
  color: var(--ks-color-secondary); /* #D65311 */
  transition: transform 0.25s ease;
}

.link-card__arrow svg {
  display: block;
  width: 100%;
  height: 100%;
}

.link-card:hover .link-card__arrow,
.link-card:focus-visible .link-card__arrow {
  transform: translateX(calc(var(--ks-rem) * 0.6));
}

/* 3枚目: 2カラム幅いっぱい・タイトルのみ */
.link-card--title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: calc(var(--ks-rem) * 18); /* 180 */
}

.link-card--title .link-card__body {
  position: static;
  top: auto;
  left: auto;
  transform: none;
}

.link-card--title .link-card__arrow {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}

.link-card--title:hover .link-card__arrow,
.link-card--title:focus-visible .link-card__arrow {
  transform: translateY(-50%) translateX(calc(var(--ks-rem) * 0.6));
}

/* --------------------------------------------------------------------------
   News filter（S-02 / S-03）
   -------------------------------------------------------------------------- */
.news-filter {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 4);
  margin-bottom: calc(var(--ks-rem) * 0.1);
}

.news-filter__row {
  display: flex;
  gap: calc(var(--ks-rem) * 4);
  align-items: flex-start;
}

.news-filter__label {
  flex: 0 0 calc(var(--ks-rem) * 12);
  padding-top: calc(var(--ks-rem) * 0.3);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  line-height: 1.4;
}

.news-filter__tags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--ks-rem) * 0.8);
  flex: 1;
  min-width: 0;
}

.news-filter__tag {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 0.4);
  padding: calc(var(--ks-rem) * 0.4) calc(var(--ks-rem) * 1.2);
  border-radius: 9999px;
  background: var(--ks-color-white);
  color: var(--ks-color-text);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  line-height: 1.4;
  cursor: pointer;
  user-select: none;
}

.news-filter__tag:has(.news-filter__input:checked) {
  background: var(--ks-color-primary-light);
  color: var(--ks-color-primary);
}

.news-filter__tag:has(.news-filter__input:focus-visible) {
  outline: 3px solid var(--ks-color-tertiary);
  outline-offset: 2px;
}

.news-filter__input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  opacity: 0;
}

.news-filter__input:focus-visible {
  outline: none;
}

.news-filter__divider {
  margin-block: calc(var(--ks-rem) * 8) calc(var(--ks-rem) * 8);
}

.sub-page__inner--narrow {
  max-width: calc(var(--ks-rem) * 72); /* 720 */
}

/* --------------------------------------------------------------------------
   News（白 / スカラップ560x64タイル / 黄円 / 浮遊イラスト3体）
   ※ section.news に限定（CPT の post_class "news" と衝突しないように）
   -------------------------------------------------------------------------- */
section.news {
  position: relative;
  padding-inline: var(--ks-gutter);
  background: var(--ks-color-surface);
}

/* スカラップ: 560px = 1タイルでX方向リピート */
.news__scallop {
  position: absolute;
  top: calc(var(--ks-rem) * -6.3);
  left: 0;
  right: 0;
  height: calc(var(--ks-rem) * 6.4); /* 64 */
  background-image: url("../img/scallop.svg");
  background-repeat: repeat-x;
  background-position: bottom center;
  background-size: calc(var(--ks-rem) * 28) 100%;
  pointer-events: none;
}

/* 黄円（x400 y1110 400px 相当・下端で見切れ） */
.news__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.news__circle {
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(var(--ks-rem) * 40);
  height: calc(var(--ks-rem) * 40);
  color: var(--ks-color-primary-light);
  transform: rotate(180deg);
}

.news__circle svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* 浮遊イラスト（カンプ絶対座標: news top = y1800 / 1600px枠 基準） */
.news__illusts {
  position: absolute;
  inset: 0;
  max-width: calc(var(--ks-rem) * 160); /* 1600px。これ以上の画面幅では中央に固定され、デザイン位置からずれない */
  margin-inline: auto;
  pointer-events: none;
}

.news__illust {
  position: absolute;
  z-index: 2;
  pointer-events: none;
}

.news__illust img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* 1=虫眼鏡(右上 186×224) / 2=ガッツ(左 224×240・水平反転) / 3=双眼鏡(右下 156×240・水平反転) */
.news__illust--1 { top: calc(var(--ks-rem) * -8); right: calc(var(--ks-rem) * 20); width: calc(var(--ks-rem) * 18.6); height: calc(var(--ks-rem) * 22.4); }
.news__illust--2 { top: calc(var(--ks-rem) * 14.4); left: calc(var(--ks-rem) * 16); width: calc(var(--ks-rem) * 22.4); height: calc(var(--ks-rem) * 24); }
.news__illust--3 { bottom: 0; right: calc(var(--ks-rem) * 16); width: calc(var(--ks-rem) * 15.6); height: calc(var(--ks-rem) * 24); }

.news__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--ks-container);
  margin-inline: auto;
  padding-block: calc(var(--ks-rem) * 22.4); /* Frame15005 y=64+160=224 */
}

/* 見出し: News16橙 + JA40 + ドット10x3 gap16 */
.section-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--ks-rem) * 0.8);
  margin-bottom: calc(var(--ks-rem) * 6.4); /* Title130 + 64 → List y194 */
  text-align: center;
}

.section-title__en {
  color: var(--ks-color-secondary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  line-height: 1;
}

.section-title__ja {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 4));
  line-height: 1.4;
}

.section-title__dots {
  display: flex;
  gap: calc(var(--ks-rem) * 1.6);
  margin-top: calc(var(--ks-rem) * 2.4); /* 見出し下88 → ドットy120 */
}

.section-title__dots i {
  width: calc(var(--ks-rem) * 1);
  height: calc(var(--ks-rem) * 1);
  border-radius: 50%;
  background: var(--ks-color-secondary);
}

/* カード: 312幅 x3 / gap40 */
.news__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(var(--ks-rem) * 4);
}

.news-card__link {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 2.4); /* 画像→テキスト群: 24px */
  align-items: flex-start;
}

.news-card__body {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 1.6); /* 日付・タイトル・バッジ間: 16px */
  align-items: flex-start;
  width: 100%;
}

.news-card__image {
  width: 100%;
  aspect-ratio: 312 / 197;
  overflow: hidden;
  border-radius: calc(var(--ks-rem) * 1.6);
  border: 1px solid var(--ks-color-grid-line);
  background: var(--ks-color-white);
}

.news-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.news-card__link:hover .news-card__image img {
  transform: scale(1.05);
}

.news-card__date {
  color: var(--ks-color-tertiary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  line-height: 1.6;
}

.news-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  line-height: 1.6;
}

/* バッジ: 重要なお知らせのみ / px16 py8 / 14px / Figma 304:22665 */
.news-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--ks-rem) * 0.8) calc(var(--ks-rem) * 1.6);
  border-radius: 9999px;
  background: var(--ks-color-badge-bg); /* #f2d9d9 */
  color: var(--ks-color-badge-text); /* #ac3939 */
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  line-height: 1;
  white-space: nowrap;
}

.news__empty {
  text-align: center;
}

/* ボタン: List下端581 → Button y645 = 64 */
.news__more {
  margin-top: calc(var(--ks-rem) * 6.4);
  text-align: center;
}

/* --------------------------------------------------------------------------
   広告バナー（Figma node 308:86312）
   py40 / コンテナ1016 / 行gap40 / 150×60 × 最大5列
   -------------------------------------------------------------------------- */
.kbm_banner {
  background: var(--ks-color-surface-dark);
  padding: calc(var(--ks-rem) * 4) var(--ks-gutter);
}

.kbm_banner__inner {
  width: 100%;
  max-width: var(--ks-container);
  margin-inline: auto;
}

.kbm_banner .kbm-banner-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: calc(var(--ks-rem) * 4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.kbm_banner .kbm-banner {
  width: calc(var(--ks-rem) * 15); /* 150 */
  height: calc(var(--ks-rem) * 6); /* 60 */
  background: var(--ks-color-white);
  border: none;
}

.kbm_banner .kbm-banner a,
.kbm_banner .kbm-banner__image {
  display: block;
  width: 100%;
  height: 100%;
  transition: opacity 0.2s ease;
}

.kbm_banner .kbm-banner a:hover {
  opacity: 0.7;
}

.kbm_banner .kbm-banner a:focus-visible {
  outline: 3px solid var(--ks-color-tertiary);
  outline-offset: 2px;
}

.kbm_banner .kbm-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --------------------------------------------------------------------------
   Footer（白背景 / p120 / gap64）
   -------------------------------------------------------------------------- */
.site-footer {
  background: var(--ks-color-white);
  padding: calc(var(--ks-rem) * 12) var(--ks-gutter);
}

.site-footer__main {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: calc(var(--ks-rem) * 8);
  height: calc(var(--ks-rem) * 12); /* 120 */
}

/* ブランド: ロゴ198x48 + タグライン24 縦gap12 */
.site-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--ks-rem) * 1.2);
  height: 100%;
  flex-shrink: 0;
}

.site-footer__brand img {
  display: block;
  width: calc(var(--ks-rem) * 19.8);
  height: calc(var(--ks-rem) * 4.8);
}

.site-footer__tagline {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  line-height: 1;
}

/* ナビ: 2列×2行 / gap-x64 gap-y32 / 20px / アイコン24 gap16 */
.footer-nav__list {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: calc(var(--ks-rem) * 3.2) calc(var(--ks-rem) * 6.4);
}

.footer-nav__list a {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 1.6); /* 16: グローバルナビと同じ */
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2));
  line-height: 1.4;
  white-space: nowrap;
}

/* グローバルナビと同じ arrow_circle_right */
.footer-nav__icon {
  display: block;
  width: calc(var(--ks-rem) * 2.4);
  height: calc(var(--ks-rem) * 2.4);
  flex-shrink: 0;
  color: var(--ks-color-tertiary);
  transition: transform 0.2s ease;
}

.footer-nav__list a:hover,
.footer-nav__list a:focus-visible {
  text-decoration: underline;
}

.footer-nav__list a:hover .footer-nav__icon,
.footer-nav__list a:focus-visible .footer-nav__icon {
  transform: translateX(calc(var(--ks-rem) * 0.3));
}

/* 罫線 */
.site-footer__rule {
  margin: calc(var(--ks-rem) * 6.4) 0;
  border: 0;
  border-top: 1px solid rgba(51, 51, 51, 0.2);
}

/* 下部: 外部リンク Regular16 + open_in_new20 gap8 / 項目gap40 / Copyright Regular14 */
.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--ks-rem) * 3.2);
  flex-wrap: wrap;
}

.site-footer__external {
  display: flex;
  gap: calc(var(--ks-rem) * 4);
  flex-wrap: wrap;
}

.site-footer__external a {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 0.8);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  font-weight: 400;
  line-height: 1.4;
}

.site-footer__external a:hover {
  text-decoration: underline;
}

.ext-icon {
  width: calc(var(--ks-rem) * 2);
  height: calc(var(--ks-rem) * 2);
  color: var(--ks-color-gray);
}

.site-footer__copyright {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  font-weight: 400;
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   Archive（フォールバックテンプレート）
   -------------------------------------------------------------------------- */
.archive-page__inner {
  padding-top: calc(var(--ks-rem) * 6.4); /* 64px @ 1600px */
}

/* --------------------------------------------------------------------------
   Motion preference
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .btn,
  .btn__icon--arrow,
  .news-card__image img,
  .menu-toggle__bar,
  .global-nav__panel,
  .global-nav__item,
  .global-nav__rule,
  .global-nav__external li,
  .global-nav__icon,
  .footer-nav__icon {
    transition: none;
  }

  .global-nav__panel,
  .global-nav__item,
  .global-nav__rule,
  .global-nav__external li {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   下層ページ共通
   -------------------------------------------------------------------------- */
/* コンテンツ内枠: py160 / gap80（検索・区切り・リスト・区切り・ページネーション） */
.sub-page__content {
  padding-inline: var(--ks-gutter);
}

.sub-page__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: calc(var(--ks-rem) * 8);
  width: 100%;
  max-width: var(--ks-container);
  margin-inline: auto;
  padding: calc(var(--ks-rem) * 16) 0;
}

.sub-page__divider {
  border: 0;
  border-top: 1px solid var(--ks-color-divider);
  margin: 0;
  width: 100%;
}

/* ページタイトル帯: py48 */
.page-header {
  position: relative;
  background: var(--ks-color-surface);
  padding: calc(var(--ks-rem) * 4.8) var(--ks-gutter);
}

.page-header__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--ks-container);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 1.6);
}

.page-header__title {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 3.2));
  line-height: 1.4;
  color: var(--ks-color-text);
}

/* イラスト: 149×160 / bottom-24 / コンテナ右端揃え（Figmaと同位置クリップ） */
.page-header__illust {
  position: absolute;
  right: max(var(--ks-gutter), calc((100% - var(--ks-container)) / 2));
  bottom: calc(var(--ks-rem) * -2.4);
  width: calc(var(--ks-rem) * 14.9);
  height: calc(var(--ks-rem) * 16);
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.page-header__illust-img {
  position: absolute;
  display: block;
  width: 426.22%;
  height: 296.01%;
  max-width: none;
  left: -169.51%;
  top: -162.39%;
}

/* パンくず: 14px / gap16 / ホームアイコン gap8 */
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(var(--ks-rem) * 1.6);
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.breadcrumb__item {
  display: flex;
  align-items: center;
  gap: calc(var(--ks-rem) * 0.8);
}

.breadcrumb__sep {
  color: var(--ks-color-primary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  line-height: 1.4;
}

.breadcrumb__home {
  display: inline-flex;
  color: var(--ks-color-primary);
}

.breadcrumb__home .icon {
  width: calc(var(--ks-rem) * 2);
  height: calc(var(--ks-rem) * 2);
}

.breadcrumb__link,
.breadcrumb__current {
  color: var(--ks-color-primary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  line-height: 1.4;
}

.breadcrumb__link:hover {
  text-decoration: underline;
}

/* ページネーション: 40角 / radius4 / gap8 / Regular16（現行のみ Bold） */
.pagination {
  display: flex;
  justify-content: center;
  width: 100%;
}

.pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: calc(var(--ks-rem) * 0.8);
}

.pagination__link,
.pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(var(--ks-rem) * 4);
  height: calc(var(--ks-rem) * 4);
  border-radius: calc(var(--ks-rem) * 0.4);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  font-weight: 400;
  line-height: 1;
  background: var(--ks-color-primary-light);
  color: var(--ks-color-text);
}

.pagination__link.is-current {
  background: var(--ks-color-primary);
  font-weight: 700;
}

.pagination__link:hover:not(.is-current) {
  background: var(--ks-color-primary);
}

.pagination__ellipsis {
  width: calc(var(--ks-rem) * 3.2);
  background: transparent;
}

.page-header__illust--news {
  width: calc(var(--ks-rem) * 42.6); /* 426 */
  height: calc(var(--ks-rem) * 12); /* 120 */
}

.page-header__illust--news .page-header__illust-img {
  width: 158.89%;
  height: 100.21%;
  left: 0;
  top: -0.11%;
}

.page-header__illust--contact {
  width: calc(var(--ks-rem) * 15.1); /* 151 */
  height: calc(var(--ks-rem) * 16); /* 160 */
}

.page-header__illust--contact .page-header__illust-img {
  position: static;
  width: 100%;
  height: 100%;
  left: auto;
  top: auto;
  object-fit: contain;
}

.news-archive__list {
  gap: calc(var(--ks-rem) * 6.4) calc(var(--ks-rem) * 4);
}

/* --------------------------------------------------------------------------
   P-07 お問い合わせ
   Figma: node 304:35183
   -------------------------------------------------------------------------- */
.contact-faq {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 6.4);
  width: 100%;
}

.contact-faq__title {
  margin: 0;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 3.2));
  line-height: 1.4;
  color: var(--ks-color-text);
}

.contact-faq__empty {
  margin: 0;
  font-weight: 400;
}

.contact-faq__group {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 4);
  width: 100%;
}

.contact-faq__category {
  margin: 0;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  line-height: 1.4;
  color: var(--ks-color-primary);
}

.contact-faq__list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.contact-faq__item {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 2.4);
  width: 100%;
}

.contact-faq__question {
  display: flex;
  align-items: baseline;
  gap: calc(var(--ks-rem) * 1.6);
  width: 100%;
}

.contact-faq__q {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: calc(var(--ks-rem) * 4);
  height: calc(var(--ks-rem) * 4);
  border-radius: 9999px;
  background: var(--ks-color-primary-light);
  color: var(--ks-color-primary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2));
  line-height: 1;
}

.contact-faq__question-text {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  line-height: 1.4;
  color: var(--ks-color-text);
}

.contact-faq__answer {
  width: 100%;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  font-weight: 400;
  line-height: 1.8;
  color: var(--ks-color-text);
}

.contact-faq__answer p {
  margin: 0;
}

.contact-form-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--ks-rem) * 4);
  width: 100%;
  text-align: center;
}

.contact-form-cta__title {
  margin: 0;
  width: 100%;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 3.2));
  line-height: 1.4;
  color: var(--ks-color-text);
  text-align: left;
}

.contact-form-cta__lead {
  width: 100%;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  font-weight: 400;
  line-height: 1.8;
  color: var(--ks-color-text);
  text-align: left;
}

.contact-form-cta__lead p {
  margin: 0;
}

.contact-form-cta__lead strong {
  font-weight: 700;
}

.btn--contact-external {
  flex-direction: column;
  gap: 0;
  width: calc(var(--ks-rem) * 32);
  max-width: 100%;
  justify-content: center;
  padding: calc(var(--ks-rem) * 1.6) calc(var(--ks-rem) * 2.4);
  background: var(--ks-color-secondary);
  color: var(--ks-color-white);
  text-align: center;
  text-decoration: none;
}

.btn--contact-external .btn__label {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  line-height: 1.4;
}

.btn--contact-external .btn__sub {
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  line-height: 1.4;
}

.contact-phone {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 4);
  width: 100%;
}

.contact-phone__title {
  margin: 0;
  width: 100%;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 3.2));
  line-height: 1.4;
  color: var(--ks-color-text);
}

.contact-phone__body {
  width: 100%;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.8));
  font-weight: 400;
  line-height: 1.8;
  color: var(--ks-color-text);
}

.contact-phone__body p {
  margin: 0;
}

.contact-phone__tel {
  color: var(--ks-color-secondary);
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   P-06 ニュース詳細
   Figma: node 304:27351
   -------------------------------------------------------------------------- */
.news-single {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 6.4);
  width: min(100%, calc(var(--ks-rem) * 72)); /* 720 */
  margin-inline: auto;
}

.news-single__header {
  display: flex;
  flex-direction: column;
  gap: calc(var(--ks-rem) * 2.4);
  width: 100%;
}

.news-single__date {
  color: var(--ks-color-tertiary);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  line-height: 1.4;
}

.news-single__title {
  margin: 0;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  line-height: 1.4;
  color: var(--ks-color-text);
}

.news-single__meta {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.news-single__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--ks-rem) * 0.8) calc(var(--ks-rem) * 1.6);
  border-radius: 9999px;
  background: var(--ks-color-badge-bg);
  color: var(--ks-color-badge-text);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  line-height: 1;
  white-space: nowrap;
}

a.news-single__badge:hover,
a.news-single__badge:focus-visible {
  text-decoration: underline;
}

.news-single__image {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 760 / 480;
  border: 1px solid var(--ks-color-divider);
  border-radius: calc(var(--ks-rem) * 1.6);
  background: #e5e5e5;
  margin: 0;
}

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

.news-single__image--placeholder img {
  object-fit: contain;
  mix-blend-mode: darken;
}

.news-single__body {
  width: 100%;
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  font-weight: 400;
  line-height: 1.8;
  color: var(--ks-color-text);
}

/* グローバルリセット（ul/p/h 等）を打ち消し、本文はブラウザ既定スタイルを使う */
.news-single__body :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, dl, dt, dd, hr, pre, table) {
  all: revert;
}

.news-single__body a {
  color: var(--ks-color-secondary);
  text-decoration: underline;
}

.news-single__body blockquote {
  margin-block: calc(var(--ks-rem) * 2.4);
  margin-inline: 0;
  padding: calc(var(--ks-rem) * 1.6) calc(var(--ks-rem) * 2.4);
  border-left: calc(var(--ks-rem) * 0.4) solid var(--ks-color-primary);
  background: var(--ks-color-surface);
  color: var(--ks-color-text);
}

.news-single__body blockquote > *:first-child {
  margin-block-start: 0;
}

.news-single__body blockquote > *:last-child {
  margin-block-end: 0;
}

.news-single__body blockquote cite {
  display: block;
  margin-block-start: calc(var(--ks-rem) * 0.8);
  font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  font-style: normal;
  color: var(--ks-color-primary);
}

/* --------------------------------------------------------------------------
   SP（〜767px / calc(var(--ks-rem) * 1) = 390pxカンプの10px）
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  :root {
    --ks-header-height: calc(var(--ks-rem) * 8); /* 80 */
    --ks-gutter: calc(var(--ks-rem) * 2); /* SP 片側 20 */
  }

  .site-header__inner {
    height: calc(var(--ks-rem) * 8);
    gap: calc(var(--ks-rem) * 1.2);
  }

  .site-header__actions {
    gap: calc(var(--ks-rem) * 1.2);
  }

  .site-header__logo img {
    width: calc(var(--ks-rem) * 13.2);
    height: calc(var(--ks-rem) * 3.2);
  }

  .site-header__logo .site-header__divider,
  .site-header__logo .site-header__tagline {
    display: none;
  }

  .btn--contact-header {
    height: calc(var(--ks-rem) * 4.8);
    padding: 0 calc(var(--ks-rem) * 2);
    gap: calc(var(--ks-rem) * 0.8);
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  }

  .btn__icon--mail,
  .btn__icon--search {
    width: calc(var(--ks-rem) * 2);
    height: calc(var(--ks-rem) * 2);
  }

  .menu-toggle {
    width: calc(var(--ks-rem) * 4.8);
    height: calc(var(--ks-rem) * 4.8);
  }

  .menu-toggle__bar {
    width: calc(var(--ks-rem) * 1.8);
    height: calc(var(--ks-rem) * 0.4);
  }

  .menu-toggle__bars {
    gap: calc(var(--ks-rem) * 0.4);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(1) {
    transform: translateY(calc(var(--ks-rem) * 0.8)) rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__bar:nth-child(3) {
    transform: translateY(calc(var(--ks-rem) * -0.8)) rotate(-45deg);
  }

  .hero,
  .hero--special {
    height: auto;
    min-height: 0;
    padding: 0;
  }

  /* SP: リンクカード */
  .link-cards {
    padding: calc(var(--ks-rem) * 12) var(--ks-gutter) calc(var(--ks-rem) * 9.6);
  }

  .link-cards__list {
    grid-template-columns: 1fr;
    width: min(calc(var(--ks-rem) * 39), 88%);
    margin-inline: auto;
    gap: calc(var(--ks-rem) * 6.4);
  }

  .link-cards__item,
  .link-cards__item--full {
    width: 100%;
  }

  .link-cards__item--full {
    margin-top: calc(var(--ks-rem) * -3.2); /* gap 6.4 の半分 */
  }

  .link-card {
    height: calc(var(--ks-rem) * 22);
    border-width: calc(var(--ks-rem) * 0.6); /* 6px @390 */
  }

  /* 高さ上限を付けて文字帯と重ならないようにする */
  .link-card__illust {
    top: calc(var(--ks-rem) * -5);
    width: calc(var(--ks-rem) * 14.5);
    height: calc(var(--ks-rem) * 15.6);
  }

  .link-card__body {
    top: calc(var(--ks-rem) * 9.5); /* イラスト下端直下 */
    gap: calc(var(--ks-rem) * 0.6);
    max-width: 90%;
  }

  .link-card--no-eyebrow .link-card__body {
    top: calc(var(--ks-rem) * 12.7);
  }

  .link-card__eyebrow {
    padding: calc(var(--ks-rem) * 0.6) calc(var(--ks-rem) * 1.4);
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
    white-space: normal;
  }

  .link-card__titles {
    gap: calc(var(--ks-rem) * 0.4);
  }

  .link-card__title {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.2));
  }

  .link-card__desc {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.4));
  }

  .link-card__arrow {
    right: calc(var(--ks-rem) * 1.6);
    bottom: calc(var(--ks-rem) * 1.6);
    width: calc(var(--ks-rem) * 3.2);
    height: calc(var(--ks-rem) * 3.2);
  }

  .link-card--title {
    height: calc(var(--ks-rem) * 12);
  }

  .link-card--title .link-card__arrow {
    top: auto;
    bottom: calc(var(--ks-rem) * 1.6);
    transform: none;
  }

  .link-card--title:hover .link-card__arrow,
  .link-card--title:focus-visible .link-card__arrow {
    transform: translateX(calc(var(--ks-rem) * 0.6));
  }

  .news-filter__row {
    flex-direction: column;
    gap: calc(var(--ks-rem) * 1.6);
  }

  .news-filter__label {
    flex-basis: auto;
  }

  .feature__deco--top {
    width: calc(var(--ks-rem) * 24);
    height: calc(var(--ks-rem) * 24);
    top: calc(var(--ks-rem) * -8);
    right: calc(var(--ks-rem) * -8);
  }

  .news__scallop {
    height: calc(var(--ks-rem) * 3.2);
    top: calc(var(--ks-rem) * -3.1);
    background-size: calc(var(--ks-rem) * 14) 100%;
  }

  .news__inner {
    padding-top: calc(var(--ks-rem) * 9.6);
    padding-bottom: calc(var(--ks-rem) * 14); /* 下段イラスト（h10）分を確保 */
  }

  .news__illust--1 { top: calc(var(--ks-rem) * -4); right: calc(var(--ks-rem) * 1.6); width: calc(var(--ks-rem) * 9.3); height: calc(var(--ks-rem) * 11.2); }
  .news__illust--2 { top: auto; bottom: 0; left: calc(var(--ks-rem) * 3.2); width: calc(var(--ks-rem) * 11.2); height: calc(var(--ks-rem) * 12); }
  .news__illust--3 { bottom: 0; right: calc(var(--ks-rem) * 3.2); width: calc(var(--ks-rem) * 7.8); height: calc(var(--ks-rem) * 12); }

  .news__circle {
    width: calc(var(--ks-rem) * 24);
    height: calc(var(--ks-rem) * 24);
  }

  .section-title__ja {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.8));
  }

  .news__list {
    grid-template-columns: 1fr;
    gap: calc(var(--ks-rem) * 4.8);
  }


  /* 下層 */
  .page-header {
    padding-block: calc(var(--ks-rem) * 3.2);
  }

  .page-header__illust {
    display: none;
  }

  .page-header__title {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  }

  .sub-page__inner {
    gap: calc(var(--ks-rem) * 4.8);
    padding: calc(var(--ks-rem) * 4.8) 0 calc(var(--ks-rem) * 6.4);
  }


  .news-single {
    gap: calc(var(--ks-rem) * 4);
  }

  .news-single__title {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2));
  }

  .contact-faq__title,
  .contact-form-cta__title,
  .contact-phone__title {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2.4));
  }

  .contact-faq__category {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 2));
  }

  .contact-faq__question-text {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
    white-space: normal;
  }

  .btn--contact-external {
    width: 100%;
  }

  .site-footer {
    padding: calc(var(--ks-rem) * 6.4) var(--ks-gutter);
  }

  .site-footer__main {
    flex-direction: column;
    align-items: flex-start;
    height: auto;
  }

  .site-footer__brand {
    align-self: center;
  }

  .footer-nav__list {
    max-width: none;
    grid-template-columns: 1fr;
    gap: calc(var(--ks-rem) * 2);
  }

  .footer-nav__list a {
    font-size: max(var(--ks-font-min), calc(var(--ks-rem) * 1.6));
  }

  .site-footer__rule {
    margin: calc(var(--ks-rem) * 4) 0;
  }

  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--ks-rem) * 2);
  }

  .site-footer__external {
    flex-direction: column;
    gap: calc(var(--ks-rem) * 1.6);
  }
}
