@charset "UTF-8";
/*
 * 関数定義用ファイル
 */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap");
/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.min.css */
*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  overflow-wrap: anywhere;
}

body {
  margin: 0;
}

main {
  display: block;
}

p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

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

dt {
  font-weight: 700;
}

dd {
  margin-left: 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

pre {
  font-family: monospace, monospace;
  font-size: inherit;
}

address {
  font-style: inherit;
}

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

abbr[title] {
  text-decoration: underline dotted;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: inherit;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

button,
input,
optgroup,
select,
textarea {
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
}

button,
[type=button],
[type=reset],
[type=submit] {
  cursor: pointer;
}

button:disabled,
[type=button]:disabled,
[type=reset]:disabled,
[type=submit]:disabled {
  cursor: default;
}

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

option {
  padding: 0;
}

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

[type=number] {
  -moz-appearance: textfield;
}

label[for] {
  cursor: pointer;
}

details {
  display: block;
}

summary {
  display: list-item;
}

[contenteditable]:focus {
  outline: auto;
}

table {
  border-color: inherit;
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: 700;
}

summary {
  display: block;
  list-style: none;
}

/* 一部ブラウザで消えなかった場合は以下も追記 */
summary::-webkit-details-marker {
  display: none;
}

/*
 * 流体タイポ計算用 関数
 *
 * @use parts/_fonts.scssファイルを参照
 */
/*
 * 逆流体タイポ計算用 関数
 * PCでは小さく、スマホでは大きく表示する場合に使用
 */
:root {
  --color-black: #000;
  --color-purple: #7B449A;
  --color-green: #00B1C5;
  --color-beige: #FAF5F5;
  --color-gray: #969696;
  --color-field-bg: #F4F4F4;
  --color-required: #42AEB1;
  /* 英字は Noto Sans、日本語は字形が無いので Noto Sans JP にフォールバック */
  --font-family-common: "Noto Sans", "Noto Sans JP", sans-serif;
  --duration: 0.3s;
  --space-x-small: clamp(8px, 0.7511737089vw + 5.1830985915px, 16px);
  --space-card-gap: clamp(12px, 1.1267605634vw + 7.7746478873px, 24px);
  --space-small: clamp(16px, 1.5023474178vw + 10.3661971831px, 32px);
  --space-small-plus: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  --space-medium: clamp(32px, 2.2535211268vw + 23.5492957746px, 56px);
  --space-large: clamp(56px, 2.2535211268vw + 47.5492957746px, 80px);
  --space-x-large-plus: clamp(32px, 0.7511737089vw + 29.1830985915px, 40px);
  --space-x-large: clamp(64px, 3.0046948357vw + 52.7323943662px, 96px);
  --space-xx-large-2: clamp(64px, 4.5070422535vw + 47.0985915493px, 112px);
  --space-xx-large: clamp(80px, 4.5070422535vw + 63.0985915493px, 128px);
  --leading-trim: calc((1em - 1lh) / 2);
}

/*
 * メディアクエリ用mixin
 */
* {
  letter-spacing: 0.05em;
}

body {
  background-color: #fff;
  font-family: var(--font-family-common);
  line-height: 2;
  color: var(--color-black);
  font-size: clamp(15px, 0.0938967136vw + 14.6478873239px, 16px);
  font-weight: 400;
}
body.is-scroll-stop {
  overflow: hidden;
}

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

a,
button {
  display: inline-block;
  transition: opacity var(--duration);
}
a:hover,
button:hover {
  opacity: 0.7;
}

b,
strong,
th {
  font-weight: inherit;
}

small {
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
}

strong {
  font-weight: 700;
}

p > b {
  font-weight: 700;
}

.c-relative {
  position: relative;
}

.header-height {
  padding-top: var(--header-height);
}

.w-100 {
  width: 100%;
}

a {
  color: inherit;
  display: inline;
}

strong {
  font-weight: 700;
}

.leading-trim {
  margin-block: var(--leading-trim);
}

.text-indent {
  text-indent: 1em !important;
}

.no-indent {
  text-indent: 0 !important;
}

/* ===============================================
#inner
=============================================== */
.inner {
  width: 91.4%;
  margin-inline: auto;
}
.inner.w-100 {
  width: 100%;
}
.inner.max-1340 {
  max-width: 1340px;
}
.inner.max-1200 {
  max-width: 1200px;
}
.inner.max-980 {
  max-width: 980px;
}
.inner.max-900 {
  max-width: 900px;
}

/* ===============================================
#ボタン
=============================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding-inline: 24px;
  background-color: #fff;
  border: 1px solid var(--color-black);
  border-radius: 50vw;
  font-size: 14px;
  line-height: 1;
}

/* ===============================================
#見出し
=============================================== */
.heading_h2 {
  font-size: clamp(22px, 1.3145539906vw + 17.0704225352px, 36px);
  font-weight: 600;
  line-height: 1.8;
  margin-block: var(--leading-trim);
}

/* ===============================================
#デバイス非表示
=============================================== */
@media (768px <= width) {
  .h-pc_tb {
    display: none !important;
  }
}

@media (1024px <= width) {
  .h-pc {
    display: none !important;
  }
}

@media (width <= 767px) {
  .h-sp {
    display: none !important;
  }
}

@media (width <= 1023px) {
  .h-tb_sp {
    display: none !important;
  }
}

/* ===============================================
#余白
=============================================== */
.flex-col {
  display: flex;
  flex-direction: column;
}
.flex-col.center {
  align-items: center;
}
.flex-col.flex-start {
  align-items: flex-start;
}

/* gap */
.gap-lh {
  gap: 1lh !important;
}

.gap-em {
  gap: 1em !important;
}

.gap-card {
  gap: var(--space-card-gap) !important;
}

.gap-x-small {
  gap: var(--space-x-small) !important;
}

.gap-small {
  gap: var(--space-small) !important;
}

.gap-medium {
  gap: var(--space-medium) !important;
}

.gap-large {
  gap: var(--space-large) !important;
}

.gap-x-large {
  gap: var(--space-x-large) !important;
}

.gap-xx-large {
  gap: var(--space-xx-large) !important;
}

/* margin */
.mb-0 {
  margin-bottom: 0 !important;
}

.mt-x-small {
  margin-top: var(--space-x-small) !important;
}

.mt-small {
  margin-top: var(--space-small) !important;
}

.mt-small-plus {
  margin-top: var(--space-small-plus) !important;
}

.mt-medium {
  margin-top: var(--space-medium) !important;
}

.mt-large {
  margin-top: var(--space-large) !important;
}

.mt-x-large {
  margin-top: var(--space-x-large) !important;
}

.mt-xx-large {
  margin-top: var(--space-xx-large) !important;
}

.mb-x-small {
  margin-bottom: var(--space-x-small) !important;
}

.mb-small-plus {
  margin-bottom: var(--space-small-plus) !important;
}

.mb-small {
  margin-bottom: var(--space-small) !important;
}

.mb-medium {
  margin-bottom: var(--space-medium) !important;
}

.mb-large {
  margin-bottom: var(--space-large) !important;
}

.mb-x-large {
  margin-bottom: var(--space-x-large) !important;
}

.mb-xx-large {
  margin-bottom: var(--space-xx-large) !important;
}

.my-x-small {
  margin-block: var(--space-x-small) !important;
}

.my-small {
  margin-block: var(--space-small) !important;
}

.my-medium {
  margin-block: var(--space-medium) !important;
}

.my-large {
  margin-block: var(--space-large) !important;
}

.my-x-large {
  margin-block: var(--space-x-large) !important;
}

.my-xx-large {
  margin-block: var(--space-xx-large) !important;
}

/* padding */
.pt-x-small {
  padding-top: var(--space-x-small) !important;
}

.pt-small {
  padding-top: var(--space-small) !important;
}

.pt-medium {
  padding-top: var(--space-medium) !important;
}

.pt-large {
  padding-top: var(--space-large) !important;
}

.pt-x-large {
  padding-top: var(--space-x-large) !important;
}

.pt-xx-large {
  padding-top: var(--space-xx-large) !important;
}

.pb-x-small {
  padding-bottom: var(--space-x-small) !important;
}

.pb-small {
  padding-bottom: var(--space-small) !important;
}

.pb-medium {
  padding-bottom: var(--space-medium) !important;
}

.pb-large {
  padding-bottom: var(--space-large) !important;
}

.pb-x-large {
  padding-bottom: var(--space-x-large) !important;
}

.pb-xx-large {
  padding-bottom: var(--space-xx-large) !important;
}

.py-x-small {
  padding-block: var(--space-x-small) !important;
}

.py-small {
  padding-block: var(--space-small) !important;
}

.py-medium {
  padding-block: var(--space-medium) !important;
}

.py-large {
  padding-block: var(--space-large) !important;
}

.py-x-large {
  padding-block: var(--space-x-large) !important;
}

.py-xx-large {
  padding-block: var(--space-xx-large) !important;
}

/* ===============================================
#背景
=============================================== */
.bg-beige {
  background-color: var(--color-beige);
}

/* ===============================================
#テキスト
=============================================== */
@media (768px <= width) {
  .pc-text-center {
    text-align: center;
  }
}

/* ===============================================
#color
=============================================== */
/* ===============================================
#grid
=============================================== */
.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}

/* ===============================================
#404
=============================================== */
.error_inner {
  height: 50vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: clamp(40px, 1.8779342723vw + 32.9577464789px, 60px);
  text-align: center;
}

/* ===============================================
#ヘッダー
=============================================== */
.header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: clamp(4px, 1.8779342723vw + -3.0422535211px, 24px) clamp(16px, 3.0046948357vw + 4.7323943662px, 48px) clamp(4px, 1.8779342723vw + -3.0422535211px, 24px) clamp(3px, 1.9718309859vw + -4.3943661972px, 24px);
  pointer-events: none;
}

.header_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.header_logo {
  position: relative;
  z-index: 100;
  flex-shrink: 0;
  width: clamp(320px, 11.7370892019vw + 275.985915493px, 445px);
  pointer-events: auto;
  /* 英語ロゴ（629×110）は日本語ロゴと同程度の高さになるよう幅を調整 */
}
.header_logo.en {
  padding: 26px;
}

.header_actions {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: clamp(12px, 1.1267605634vw + 7.7746478873px, 24px);
  pointer-events: auto;
}
@media (width <= 767px) {
  .header_actions {
    gap: 0;
  }
}

.header_cta {
  position: relative;
  z-index: 160;
  display: flex;
  align-items: center;
  gap: 10px;
  height: 41px;
  padding-inline: 16px 23px;
  background: linear-gradient(90deg, #ffd800 10%, #42aeb1 90%);
  border-radius: 20px 4px 20px 4px;
  color: #fff;
  font-weight: 500;
  line-height: 1.6;
  text-decoration: none;
  white-space: nowrap;
  margin-right: 146px;
}
.header_cta img {
  flex-shrink: 0;
  width: 24px;
}

.header_tools {
  position: absolute;
  top: clamp(16px, 3.0046948357vw + 4.7323943662px, 48px);
  right: clamp(16px, 3.0046948357vw + 4.7323943662px, 48px);
  z-index: 160;
  display: flex;
  align-items: center;
  gap: 8px;
  pointer-events: auto;
  opacity: 0;
  transition: opacity 0.7s ease;
  will-change: transform, opacity;
}
.header_tools.is-show {
  opacity: 1;
}
.header_tools.is-fixed {
  position: fixed;
}

.header_lang {
  display: grid;
  place-items: center;
  width: 41px;
  aspect-ratio: 1;
  background-color: #42aeb1;
  border-radius: 4px;
}
.header_lang img {
  width: 20px;
}

.header_menu-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 73px;
  height: 41px;
  background-color: #4b4b4b;
  border-radius: 4px;
  cursor: pointer;
}
@media (width <= 767px) {
  .header_menu-btn {
    width: 33px;
    height: 33px;
    gap: 0;
  }
}
.header_menu-btn.active .header_menu-btn_line span {
  width: 100%;
}
.header_menu-btn.active .header_menu-btn_line span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
@media (width <= 767px) {
  .header_menu-btn.active .header_menu-btn_line span:nth-child(1) {
    transform: translateY(5.5px) rotate(45deg);
  }
}
.header_menu-btn.active .header_menu-btn_line span:nth-child(2) {
  opacity: 0;
}
.header_menu-btn.active .header_menu-btn_line span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
@media (width <= 767px) {
  .header_menu-btn.active .header_menu-btn_line span:nth-child(3) {
    transform: translateY(-5.5px) rotate(-45deg);
  }
}

.header_menu-btn_line {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  width: 16px;
  height: 12px;
}
@media (768px <= width) {
  .header_menu-btn_line {
    width: 21px;
    height: 15px;
  }
}
.header_menu-btn_line span {
  display: block;
  width: 100%;
  height: 1px;
  background-color: #fff;
  transition: transform var(--duration), opacity var(--duration), width var(--duration);
}
.header_menu-btn_line span:last-child {
  width: 50%;
}

.header_menu-btn_icon {
  flex-shrink: 0;
  width: 24px;
  aspect-ratio: 1;
}

/* ===============================================
#ハンバーガーメニュー（オーバーレイ）
=============================================== */
.header_menu {
  position: fixed;
  inset: var(--space-x-small);
  border-radius: 8px;
  z-index: 150;
  display: flex;
  justify-content: center;
  background-color: #4b4b4b;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  overflow-y: auto;
  transition: opacity var(--duration), visibility var(--duration);
}
.header_menu.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.header_menu_inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-x-large);
  width: min(700px, 100%);
  margin-block: auto;
  padding: clamp(80px, 9.3896713615vw + 44.7887323944px, 180px) 16px var(--space-x-large);
  color: #fff;
}
@media (768px <= width) {
  .header_menu_inner {
    padding-inline: 0;
  }
}

.header_menu_nav {
  display: flex;
  gap: clamp(16px, 1.7840375587vw + 9.3098591549px, 35px) clamp(32px, 6.0093896714vw + 9.4647887324px, 96px);
}
@media (width <= 767px) {
  .header_menu_nav {
    flex-direction: column;
  }
}

.header_menu_list {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.7840375587vw + 9.3098591549px, 35px);
}
.header_menu_list a {
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.1877934272vw + 5.2957746479px, 8px);
  font-size: clamp(14px, 0.3755868545vw + 12.5915492958px, 18px);
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
@media (width <= 767px) {
  .header_menu_list a {
    white-space: normal;
  }
}
.header_menu_list a::before {
  content: "";
  flex-shrink: 0;
  width: clamp(15px, 0.3755868545vw + 13.5915492958px, 19px);
  aspect-ratio: 1;
  background: transparent url(../img/icon-arrow_4.svg) no-repeat center center/contain;
}

.header_menu_search {
  display: flex;
  align-items: center;
  width: 100%;
  height: 41px;
  padding-inline: 16px 12px;
  background-color: #fff;
  border-radius: 4px;
}
.header_menu_search input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: none;
  background: transparent;
  color: var(--color-black);
  font-size: 16px;
  line-height: 1.6;
  outline: none;
}
.header_menu_search button {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 25px;
  aspect-ratio: 1;
  border: none;
  background: transparent;
  cursor: pointer;
  margin-top: 2px;
}
.header_menu_search button img {
  width: 100%;
  filter: brightness(0);
}

/* ===============================================
#フッター
=============================================== */
.footer {
  padding-top: var(--space-medium);
  padding-bottom: clamp(14px, 1.3145539906vw + 9.0704225352px, 28px);
}

.footer_contact_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(320px, 12.20657277vw + 274.2253521127px, 450px);
  height: clamp(80px, 3.7558685446vw + 65.9154929577px, 120px);
  border-radius: 50vw;
  background: linear-gradient(90deg, var(--color-purple) 0%, var(--color-green) 100%);
  color: #fff;
  font-size: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
  font-weight: 700;
  line-height: 2;
  text-decoration: none;
}

.footer_contact_info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  line-height: 2;
}
.footer_contact_info p {
  margin: 0;
}

.footer_contact_dept {
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
}

.footer_contact_lead {
  line-height: 2.5;
}

.footer_page-top {
  display: flex;
  align-items: center;
  gap: 8px;
  line-height: 1.8;
  margin-left: auto;
  margin-right: clamp(16px, 3.0046948357vw + 4.7323943662px, 48px);
  width: fit-content;
  color: var(--color-black);
}
.footer_page-top img {
  flex-shrink: 0;
  width: 25px;
}

.footer_contents {
  padding-block: var(--space-large);
  background-color: #f5f5f5;
  border-radius: 8px;
  margin-inline: var(--space-x-small);
}

.footer_contents_title {
  color: #4b4b4b;
  font-size: clamp(28px, 1.1267605634vw + 23.7746478873px, 40px);
  font-weight: 600;
  line-height: 1.8;
}

.footer_contents_columns {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr 0.8fr;
  gap: clamp(20px, 2.8169014085vw + 9.4366197183px, 50px);
}
@media (width <= 1023px) {
  .footer_contents_columns {
    grid-template-columns: repeat(1, auto);
  }
}

.footer_contents_heading {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  line-height: 1.8;
}
.footer_contents_heading::before {
  content: "";
  flex-shrink: 0;
  width: 12px;
  margin-top: 6px;
  aspect-ratio: 1;
  background: url(../img/icon-arrow_3.svg) no-repeat center center/contain;
}

.footer_contents_list {
  font-size: clamp(10px, 0.0938967136vw + 9.6478873239px, 11px);
  line-height: 2.2;
  padding-left: clamp(8px, 0.7511737089vw + 5.1830985915px, 16px);
}
.footer_contents_list .footer_contents_list_item-link a,
.footer_contents_list .footer_contents_list_item-nested a {
  display: inline-flex;
}
.footer_contents_list .footer_contents_list_item-link a::before,
.footer_contents_list .footer_contents_list_item-nested a::before {
  content: "> ";
  flex-shrink: 0;
  padding-right: 0.2em;
}
.footer_contents_list .footer_contents_list_item-nested a {
  margin-inline-start: 1.2em;
}

.footer_logo {
  flex-shrink: 0;
  max-width: clamp(320px, 11.7370892019vw + 275.985915493px, 445px);
}
.footer_logo.en {
  padding: clamp(15px, 0.4694835681vw + 13.2394366197px, 20px);
}

.footer_info {
  font-size: clamp(14px, 0.1877934272vw + 13.2957746479px, 16px);
  margin-block: var(--leading-trim);
  padding-left: clamp(17px, 0.4694835681vw + 15.2394366197px, 22px);
}
.footer_info b {
  font-weight: 600;
}

.footer_info_address {
  font-size: clamp(12px, 0.1877934272vw + 11.2957746479px, 14px);
}

.footer_bottom {
  padding-inline: clamp(3px, 1.9718309859vw + -4.3943661972px, 24px) clamp(16px, 3.0046948357vw + 4.7323943662px, 48px);
}

.footer_bottom_contents {
  padding-left: clamp(17px, 0.4694835681vw + 15.2394366197px, 22px);
}
@media (width <= 1023px) {
  .footer_bottom_contents {
    display: flex;
    flex-direction: column;
    gap: 13px;
  }
}

.footer_bottom_logos {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
}
@media (width <= 767px) {
  .footer_bottom_logos {
    align-items: flex-start;
  }
}

.footer_sdgs {
  display: flex;
  gap: 8px;
}
.footer_sdgs img {
  width: clamp(40px, 0.7511737089vw + 37.1830985915px, 48px);
}

.footer_univ_link {
  max-width: clamp(130px, 3.0985915493vw + 118.3802816901px, 163px);
}

.is-en .footer_univ_link {
  max-width: clamp(280px, 13.5211267606vw + 229.2957746479px, 424px);
}

.footer_utility {
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  display: flex;
  flex-wrap: wrap;
  gap: 0 3em;
  white-space: nowrap;
  margin-block: var(--leading-trim);
}
@media (width <= 767px) {
  .footer_utility {
    flex-direction: column;
  }
}

/* ===============================================
#news_header（NEWS詳細ヘッダー）
=============================================== */
.news_header_breadcrumb {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.news_header_breadcrumb-home {
  flex-shrink: 0;
  width: 10px;
  aspect-ratio: 10/13;
  background-color: #7b449a;
  clip-path: polygon(100% 30%, 100% 100%, 0 100%, 0 30%, 50% 0);
  margin-top: 0.3em;
}

.news_header_breadcrumb-text {
  color: #969696;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  line-height: 1.8;
  margin-bottom: var(--leading-trim);
}

.news_header_meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-x-small) var(--space-small);
  padding-top: var(--space-small);
}

.news_header_label {
  font-size: clamp(28px, 1.1267605634vw + 23.7746478873px, 40px);
  font-weight: 600;
  line-height: 1.8;
  margin-block: var(--leading-trim);
}

.news_header_badge_list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.news_header_badge {
  background-color: #00b1c5;
  border-radius: 0 14px 14px 0;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  mix-blend-mode: multiply;
  padding: 7.5px 13px;
}

.news_header_date {
  font-size: 13px;
  line-height: 1.8;
}

.news_title {
  font-size: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
  font-weight: 500;
  margin-block: var(--leading-trim);
}

/* ===============================================
#news_content（NEWS詳細・ブロックエディタ本文）
=============================================== */
.news_content {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
}
.news_content > :first-child {
  margin-top: 0;
}
.news_content > :last-child {
  margin-bottom: 0;
}
.news_content p {
  margin-block: var(--leading-trim);
}
.news_content .wp-block-columns {
  margin-bottom: 0;
  justify-content: center;
}
.news_content .wp-block-columns .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 24px var(--space-x-small);
}
.news_content .wp-block-image figure {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 16px;
}
.news_content .wp-block-image figcaption {
  margin: 0;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  text-align: center;
  margin-block: var(--leading-trim);
}
.news_content figure.wp-block-image {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 16px;
}
.news_content h2 {
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 500;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-block: var(--leading-trim);
}
.news_content h2:before {
  content: "";
  display: block;
  width: clamp(20px, 0.1877934272vw + 19.2957746479px, 22px);
  aspect-ratio: 1;
  border-radius: 4px;
  background: linear-gradient(90deg, #7b449a 0%, #00b1c5 100%);
  margin-top: 0.5em;
}
.news_content h3 {
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 500;
  margin-block: var(--leading-trim);
}
.news_content > h2,
.news_content > h3,
.news_content > h4,
.news_content > h5,
.news_content > h6,
.news_content > .wp-block-footnotes {
  margin-top: var(--space-x-large);
}
.news_content .wp-block-group:not(:has(.wp-block-flexible-table-block-table)) {
  border: clamp(3px, 0.2816901408vw + 1.9436619718px, 6px) solid #f5f5f5;
  border-radius: clamp(8px, 0.7511737089vw + 5.1830985915px, 16px);
  padding: var(--space-small);
  line-height: 1.8;
}
.news_content .wp-block-group:not(:has(.wp-block-flexible-table-block-table)) .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: 1lh;
}
.news_content .wp-block-group:has(.wp-block-flexible-table-block-table).js-scroll-hint {
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.news_content .wp-block-group:has(.wp-block-table) {
  border: none;
  padding: 0;
}
.news_content .wp-block-group:has(.wp-block-table) .wp-block-group__inner-container {
  gap: 0;
}
.news_content .wp-block-group:has(.wp-block-table) .wp-block-table td:first-child {
  padding-right: 0;
}
@media (width <= 767px) {
  .news_content .wp-block-group:has(.wp-block-table) td {
    display: table-cell;
  }
}
.news_content .wp-block-flexible-table-block-table {
  border: none !important;
  min-width: 700px;
}
.news_content .wp-block-flexible-table-block-table figcaption {
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  margin-block: var(--leading-trim);
}
.news_content .wp-block-flexible-table-block-table table {
  border-radius: 8px !important;
  border: 1px solid #969696 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.news_content .wp-block-flexible-table-block-table table th,
.news_content .wp-block-flexible-table-block-table table td {
  padding: clamp(8px, 0.7511737089vw + 5.1830985915px, 16px) clamp(12px, 1.1267605634vw + 7.7746478873px, 24px) !important;
  border: none !important;
  border-top: 1px solid #969696 !important;
}
.news_content .wp-block-flexible-table-block-table table tr > :not(:last-child) {
  border-right: 1px solid #969696 !important;
}
.news_content .wp-block-flexible-table-block-table table thead tr:first-child > :first-child {
  border-radius: 8px 0 0 0 !important;
}
.news_content .wp-block-flexible-table-block-table table thead tr:first-child > :last-child {
  border-radius: 0 8px 0 0 !important;
}
.news_content .wp-block-flexible-table-block-table table thead tr:first-child th,
.news_content .wp-block-flexible-table-block-table table thead tr:first-child td {
  border-top: none !important;
  white-space: nowrap;
}
.news_content .wp-block-flexible-table-block-table table tbody tr:nth-last-child(2) > :first-child[rowspan="2"] {
  border-radius: 0 0 0 8px !important;
}
.news_content .wp-block-flexible-table-block-table table tbody tr:last-child > :first-child {
  border-radius: 0 0 0 8px !important;
}
.news_content .wp-block-flexible-table-block-table table tbody tr:last-child > :last-child {
  border-radius: 0 0 8px 0 !important;
}
.news_content .wp-block-footnotes {
  padding-top: var(--space-medium);
  border-top: 2px solid #f5f5f5;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  display: flex;
  flex-direction: column;
  gap: 1lh;
  margin-block: var(--leading-trim);
}
.news_content .wp-block-separator {
  border-color: #dcdcdc;
}
.news_content .wp-block-embed__wrapper:has(iframe) {
  aspect-ratio: 16/9;
}
.news_content .wp-block-embed__wrapper:has(iframe) iframe {
  width: 100%;
  height: 100%;
}
.news_content .wp-block-table {
  overflow-x: initial;
  width: 100%;
  margin-block: var(--leading-trim);
}
.news_content .wp-block-table th,
.news_content .wp-block-table td {
  border: none;
  padding: 0;
}
.news_content .wp-block-table td:first-child {
  width: 0;
  white-space: nowrap;
  padding-right: 0.5em;
}
@media (width <= 767px) {
  .news_content .wp-block-table td {
    display: block;
  }
}
.news_content .wp-block-group.news_float_box {
  border: none;
  padding: 0;
}
.news_content .wp-block-group.news_float_box .wp-block-group__inner-container {
  display: block;
}
@media (768px <= width) {
  .news_content .wp-block-group.news_float_box.float_left .wp-block-image {
    float: left;
    margin-right: clamp(10px, 0.4694835681vw + 8.2394366197px, 15px);
    margin-bottom: clamp(5px, 0.4694835681vw + 3.2394366197px, 10px);
  }
}
@media (768px <= width) {
  .news_content .wp-block-group.news_float_box.float_right .wp-block-image {
    float: right;
    margin-left: clamp(10px, 0.4694835681vw + 8.2394366197px, 15px);
    margin-bottom: clamp(5px, 0.4694835681vw + 3.2394366197px, 10px);
  }
}

/* NEWS / 固定ページ本文：リンクの PDF・Word・Excel・外部アイコン */
.news_content mark,
.page_content mark,
.page_policy_content mark {
  background-color: transparent;
}
.news_content a,
.page_content a,
.page_policy_content a {
  color: var(--color-green);
  text-decoration: underline;
}
.news_content a[href$=".pdf" i]::after, .news_content a[href$=".doc" i]::after, .news_content a[href$=".docx" i]::after, .news_content a[href$=".xls" i]::after, .news_content a[href$=".xlsx" i]::after,
.page_content a[href$=".pdf" i]::after,
.page_content a[href$=".doc" i]::after,
.page_content a[href$=".docx" i]::after,
.page_content a[href$=".xls" i]::after,
.page_content a[href$=".xlsx" i]::after,
.page_policy_content a[href$=".pdf" i]::after,
.page_policy_content a[href$=".doc" i]::after,
.page_policy_content a[href$=".docx" i]::after,
.page_policy_content a[href$=".xls" i]::after,
.page_policy_content a[href$=".xlsx" i]::after {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 16px;
  padding: 0 4px;
  margin-inline: 4px;
  background-color: #969696;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  position: relative;
  top: -2px;
  text-indent: 0;
}
.news_content a[href$=".pdf" i]::after,
.page_content a[href$=".pdf" i]::after,
.page_policy_content a[href$=".pdf" i]::after {
  content: "PDF";
}
.news_content a[href$=".doc" i]::after, .news_content a[href$=".docx" i]::after,
.page_content a[href$=".doc" i]::after,
.page_content a[href$=".docx" i]::after,
.page_policy_content a[href$=".doc" i]::after,
.page_policy_content a[href$=".docx" i]::after {
  content: "Word";
}
.news_content a[href$=".xls" i]::after, .news_content a[href$=".xlsx" i]::after,
.page_content a[href$=".xls" i]::after,
.page_content a[href$=".xlsx" i]::after,
.page_policy_content a[href$=".xls" i]::after,
.page_policy_content a[href$=".xlsx" i]::after {
  content: "Excel";
}
.news_content a[target=_blank]:not([href^="mailto:" i]):not([href$=".pdf" i]):not([href$=".doc" i]):not([href$=".docx" i]):not([href$=".xls" i]):not([href$=".xlsx" i])::after,
.page_content a[target=_blank]:not([href^="mailto:" i]):not([href$=".pdf" i]):not([href$=".doc" i]):not([href$=".docx" i]):not([href$=".xls" i]):not([href$=".xlsx" i])::after,
.page_policy_content a[target=_blank]:not([href^="mailto:" i]):not([href$=".pdf" i]):not([href$=".doc" i]):not([href$=".docx" i]):not([href$=".xls" i]):not([href$=".xlsx" i])::after {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-inline: 4px;
  background: transparent url(../img/icon-blank.svg) no-repeat center center/contain;
  position: relative;
  top: 1px;
}

/* ===============================================
#news_pager（NEWS詳細・記事ナビ）
=============================================== */
.news_pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 0.7511737089vw + 21.1830985915px, 32px);
}

.news_pager_prev,
.news_pager_next {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
}
.news_pager_prev[aria-hidden=true],
.news_pager_next[aria-hidden=true] {
  visibility: hidden;
  pointer-events: none;
}
.news_pager_prev img,
.news_pager_next img {
  vertical-align: top;
}

.news_pager_next img {
  transform: scaleX(-1);
}

.news_pager_list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 clamp(8px, 0.4694835681vw + 6.2394366197px, 13px);
  border: 1px solid var(--color-black);
  border-radius: 50vw;
  text-align: center;
  line-height: 1.6;
}

/* ===============================================
#page_content（ページコンテンツ）
=============================================== */
.main-contents {
  padding-top: var(--header-height);
  padding-bottom: var(--space-xx-large);
}
.main-contents:has(.page_sidebar), .main-contents.no-sidebar {
  background-color: #f5f5f5;
  margin: var(--space-x-small) var(--space-x-small) 0;
  border-radius: 8px;
}
.main-contents.bg-white {
  background-color: #fff;
}
.main-contents.page-cat-top {
  padding-bottom: 30px;
}

.page_container {
  --row-gap: clamp(10px, 11.8870728083vw + -81.1738484398px, 90px);
  --sidebar-width: 0px;
  display: flex;
  align-items: flex-start;
  gap: 30px var(--row-gap);
  padding-top: 3px;
}
@media (768px <= width) {
  .page_container {
    --sidebar-width: 130px;
  }
}
@media (width <= 767px) {
  .page_container {
    flex-direction: column-reverse;
  }
}

.page_main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  width: 100%;
}

.page_title {
  font-size: clamp(24px, 1.5023474178vw + 18.3661971831px, 40px);
  font-weight: 600;
  line-height: 1.8;
  margin-block: var(--leading-trim);
}
@media (width <= 767px) {
  .page_title {
    line-height: 1.5;
  }
}
.page_title:not(:has(+ .page_tag_list)) {
  margin-bottom: calc(clamp(40px, 0.7511737089vw + 37.1830985915px, 48px) + var(--leading-trim));
}
.page_title.center {
  text-align: center;
}

.page_tag_list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.page_tag_list.has-drop {
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-small);
  margin-bottom: 0;
}

.page_tag_list_row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.page_tag_list_row.center {
  justify-content: center;
}

.page_tag,
.page_inline_tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0px 16px;
  background-color: #fff;
  border: 2px solid;
  border-radius: 50vw;
  font-size: clamp(12px, 0.1877934272vw + 11.2957746479px, 14px);
  font-weight: 500;
  line-height: 1.5;
  border-color: var(--color-green);
  color: var(--color-green);
}
.page_tag.purple,
.page_inline_tag.purple {
  border-color: var(--color-purple);
  color: var(--color-purple);
}

.page_inline_indent {
  display: inline-block;
  text-indent: -1em;
  margin-left: 1em;
}

.page_sidebar {
  flex-shrink: 0;
  align-self: stretch;
}
@media (768px <= width) {
  .page_sidebar {
    padding-top: 12px;
  }
}
.page_sidebar:not(:has(.sidebar_heading, .sidebar_illustration, .sidebar_nav)) {
  display: none;
}

.page_container:not(:has(.sidebar_heading, .sidebar_illustration, .sidebar_nav)) .page_title {
  text-align: center;
}
.page_container:not(:has(.sidebar_heading, .sidebar_illustration, .sidebar_nav)) .page_content {
  max-width: 900px;
  width: 100%;
  margin-inline: auto;
}

.page_content {
  display: flex;
  flex-direction: column;
  gap: var(--space-medium);
  min-width: 0;
}
.page_content.en > p {
  text-indent: 0;
}
.page_content .wp-block-group.is-layout-flex {
  min-width: 0;
  max-width: 100%;
}
.page_content .max-800 {
  max-width: 800px !important;
}
.page_content .max-400 {
  max-width: 400px !important;
}
.page_content .mi-auto {
  margin-inline: auto !important;
}
.page_content iframe {
  width: 100%;
}
.page_content > :first-child {
  margin-top: 0;
}
.page_content > :last-child {
  margin-bottom: 0;
}
.page_content :where(.wp-block-columns) {
  margin-bottom: 0;
}
.page_content :where(.is-layout-grid) {
  gap: var(--space-card-gap);
}
@media (width <= 1023px) {
  .page_content .wp-block-group.is-layout-grid {
    grid-template-columns: repeat(1, 1fr);
  }
}
.page_content .wp-block-group.is-layout-grid .page_card_pdf {
  width: 100%;
  max-width: 100%;
}
.page_content p {
  margin-block: var(--leading-trim);
}
.page_content p.line-clamp-2 {
  line-clamp: 2;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
.page_content > p {
  text-indent: 1em;
}
.page_content > h2,
.page_content .page_tabs .wp-block-group__inner-container > h2 {
  display: flex;
  align-items: center;
  padding: clamp(4px, 0vw + 4px, 4px) clamp(12px, 0.7511737089vw + 9.1830985915px, 20px);
  border-radius: 8px;
  background: linear-gradient(90deg, var(--color-purple) 20%, var(--color-green) 100%);
  color: #fff;
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
}
.page_content > h2:not(:first-child),
.page_content .page_tabs .wp-block-group__inner-container > h2:not(:first-child) {
  margin-top: var(--space-x-large-plus);
}
.page_content > h3,
.page_content .page_tabs .wp-block-group__inner-container > h3 {
  gap: calc(clamp(8px, 0.7511737089vw + 5.1830985915px, 16px) + var(--leading-trim));
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 500;
  letter-spacing: 1px;
  line-height: 2;
  margin-top: var(--leading-trim);
  padding-bottom: calc(24px + var(--leading-trim));
  position: relative;
}
.page_content > h3:not(:first-child),
.page_content .page_tabs .wp-block-group__inner-container > h3:not(:first-child) {
  margin-top: calc(var(--space-x-large-plus) + var(--leading-trim));
}
.page_content > h3::after,
.page_content .page_tabs .wp-block-group__inner-container > h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: clamp(80px, 4.3192488263vw + 63.8028169014px, 126px);
  height: 8px;
  border-radius: 50vw;
  background-color: var(--color-green);
}
.page_content > h4,
.page_content .page_tabs .wp-block-group__inner-container > h4 {
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 700;
  margin-block: var(--leading-trim);
}
.page_content .wp-block-list {
  list-style: disc;
  padding-left: 1em;
  margin-block: var(--leading-trim);
  display: flex;
  flex-direction: column;
  gap: var(--space-x-small);
}
.page_content .wp-block-list li.marker-none {
  list-style: none;
}
.page_content .wp-block-list.list-square {
  list-style: square;
}
.page_content .wp-block-list.list-check {
  list-style: none;
}
.page_content .wp-block-list.list-check li {
  position: relative;
}
.page_content .wp-block-list.list-check li::before {
  content: "✓";
  display: inline-block;
  position: absolute;
  left: -1em;
  top: 0;
  width: 1em;
  height: 1em;
  color: var(--color-green);
}
.page_content .wp-block-columns {
  gap: 24px var(--space-card-gap);
  width: 100%;
}
.page_content .wp-block-columns h4 {
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 700;
  margin-block: var(--leading-trim);
}
.page_content .wp-block-image figure {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 16px;
}
.page_content .wp-block-image figure img {
  border-radius: 8px;
}
.page_content .wp-block-image img {
  border-radius: 8px;
}
.page_content .wp-block-image figcaption {
  margin: 0;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  text-align: center;
  margin-block: var(--leading-trim);
}
.page_content .wp-block-image.page_img_border {
  /* 右・下のみの枠線（冊子表紙などの奥行き表現） */
}
.page_content .wp-block-image.page_img_border img {
  border-width: 0 2px 2px 0;
  border-style: solid;
  border-color: var(--color-gray);
}
.page_content figure.wp-block-image {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 16px;
}
.page_content .wp-block-table {
  overflow-x: initial;
  width: 100%;
}
.page_content .wp-block-table.first-text-wrap th:first-child:not(:last-child),
.page_content .wp-block-table.first-text-wrap td:first-child:not(:last-child) {
  white-space: normal;
}
.page_content .wp-block-table:has(thead), .page_content .wp-block-table.js-scroll-hint {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
@media (width <= 1023px) {
  .page_content .wp-block-table:has(thead), .page_content .wp-block-table.js-scroll-hint {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .page_content .wp-block-table:has(thead) th,
  .page_content .wp-block-table:has(thead) td, .page_content .wp-block-table.js-scroll-hint th,
  .page_content .wp-block-table.js-scroll-hint td {
    white-space: nowrap;
  }
}
.page_content .wp-block-table:has(thead) table, .page_content .wp-block-table.js-scroll-hint table {
  min-width: 100%;
}
@media (width <= 767px) {
  .page_content .wp-block-table.w-300 table {
    min-width: 300%;
  }
}
@media (1024px <= width) {
  .page_content .wp-block-table.td-20-1 thead :first-child {
    width: 20%;
  }
  .page_content .wp-block-table.td-20-1 tbody th:first-child,
  .page_content .wp-block-table.td-20-1 tbody td:first-child {
    white-space: normal;
  }
}
@media (1024px <= width) {
  .page_content .wp-block-table.td-30-1 thead :first-child {
    width: 30%;
  }
}
.page_content .wp-block-table.td-30-1 tbody th:first-child,
.page_content .wp-block-table.td-30-1 tbody td:first-child {
  white-space: normal;
}
.page_content .wp-block-table table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 4px;
}
.page_content .wp-block-table thead tr :first-child {
  border-radius: 8px 0 0 0;
}
.page_content .wp-block-table thead tr :last-child {
  border-radius: 0 8px 0 0;
}
.page_content .wp-block-table thead tr :first-child:last-child {
  border-radius: 8px 8px 0 0;
}
.page_content .wp-block-table thead th,
.page_content .wp-block-table thead td {
  background-color: rgba(0, 177, 197, 0.2);
  white-space: nowrap;
}
.page_content .wp-block-table tbody tr:last-child :first-child {
  border-radius: 0 0 0 8px;
}
.page_content .wp-block-table tbody tr:last-child :last-child {
  border-radius: 0 0 8px 0;
}
.page_content .wp-block-table tbody tr:last-child :first-child:last-child {
  border-radius: 0 0 8px 8px;
}
.page_content .wp-block-table th,
.page_content .wp-block-table td {
  padding: clamp(12px, 0.7511737089vw + 9.1830985915px, 20px);
  vertical-align: middle;
  border: none;
  background-color: #fff;
}
.page_content .wp-block-table th:first-child:not(:last-child),
.page_content .wp-block-table td:first-child:not(:last-child) {
  white-space: nowrap;
}
.page_content .wp-block-table th img,
.page_content .wp-block-table td img {
  margin-right: 8px;
  border-radius: 0px !important;
}
.page_content .wp-block-table:not(:has(thead)) tbody tr:first-child :first-child {
  border-radius: 8px 0 0 0;
}
.page_content .wp-block-table:not(:has(thead)) tbody tr:first-child :last-child {
  border-radius: 0 8px 0 0;
}
@media (width <= 767px) {
  .page_content .wp-block-table:not(:has(thead)) tbody tr:first-child :first-child {
    border-radius: 8px 8px 0 0;
  }
  .page_content .wp-block-table:not(:has(thead)) tbody tr:first-child :last-child {
    border-radius: 0;
  }
  .page_content .wp-block-table:not(:has(thead)) tbody tr:last-child :first-child {
    border-radius: 0;
  }
  .page_content .wp-block-table:not(:has(thead)) tbody tr:last-child :last-child {
    border-radius: 0 0 8px 8px;
  }
  .page_content .wp-block-table:not(:has(thead)) th,
  .page_content .wp-block-table:not(:has(thead)) td {
    display: block;
    width: 100%;
  }
  .page_content .wp-block-table:not(:has(thead)) th:first-child,
  .page_content .wp-block-table:not(:has(thead)) td:first-child {
    white-space: normal;
  }
  .page_content .wp-block-table:not(:has(thead)) th:not(:first-child),
  .page_content .wp-block-table:not(:has(thead)) td:not(:first-child) {
    margin-top: 4px;
  }
  .page_content .wp-block-table:not(:has(thead)) th:first-child,
  .page_content .wp-block-table:not(:has(thead)) td:first-child {
    background-color: rgba(0, 177, 197, 0.2);
  }
}
.page_content .wp-block-columns.page_card_columns {
  gap: var(--space-card-gap);
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}
.page_content .wp-block-columns.page_card_columns .wp-block-column {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--space-card-gap);
  padding: var(--space-card-gap);
}
.page_content .wp-block-columns.page_card_columns .wp-block-column:has(*) {
  background-color: #fff;
  border-radius: 8px;
}
.page_content .wp-block-columns.page_card_columns .wp-block-column h3 {
  color: var(--color-purple);
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 700;
  margin-block: var(--leading-trim);
  line-height: 1.8;
}
.page_content .wp-block-columns.page_card_columns {
  /* Pointカード（紫枠・番号丸付き見出し） */
}
.page_content .wp-block-columns.page_card_columns.point .wp-block-column:has(*) {
  border: 1px solid var(--color-purple);
}
.page_content .wp-block-columns.page_card_columns.point .wp-block-column h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--color-purple);
  font-size: clamp(15px, 0.0938967136vw + 14.6478873239px, 16px);
  font-weight: 700;
}
.page_content .wp-block-columns.page_card_columns.point .wp-block-column h2 strong {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(32px, 0.8450704225vw + 28.8309859155px, 41px);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--color-purple);
  color: #fff;
  font-size: clamp(20px, 0.3755868545vw + 18.5915492958px, 24px);
  font-weight: 700;
  line-height: 1;
}
.page_content {
  /* 利用手順カード（番号付きステップ・2カラム） */
}
.page_content .wp-block-columns.page_step_columns {
  --page-step-num-size: clamp(32px, 0.7511737089vw + 29.1830985915px, 40px);
  --page-step-indent: calc(var(--page-step-num-size) + clamp(12px, 0.3755868545vw + 10.5915492958px, 16px));
  gap: var(--space-card-gap);
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  counter-reset: page-step;
  align-items: stretch;
}
@media (width <= 767px) {
  .page_content .wp-block-columns.page_step_columns {
    flex-direction: column;
  }
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  width: 100%;
  padding: var(--space-small);
  background-color: #fff;
  border-radius: 8px;
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column > h3 {
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 700;
  text-align: center;
  margin-block: var(--leading-trim);
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column:first-child > h3 {
  color: var(--color-green);
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column:first-child > h4::before {
  background-color: var(--color-green);
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column:last-child > h3 {
  color: #e8336e;
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column:last-child > h4::before {
  background-color: #e8336e;
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column > h4 {
  counter-increment: page-step;
  position: relative;
  gap: clamp(12px, 0.3755868545vw + 10.5915492958px, 16px);
  color: #111;
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  font-weight: 700;
  padding-left: calc(var(--page-step-num-size) + clamp(12px, 0.3755868545vw + 10.5915492958px, 16px));
  margin-bottom: var(--leading-trim);
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column > h4 small {
  font-size: clamp(15px, 0.0938967136vw + 14.6478873239px, 16px);
  display: block;
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column > h4::before {
  content: counter(page-step);
  flex-shrink: 0;
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--page-step-num-size);
  aspect-ratio: 1;
  border-radius: 50%;
  color: #fff;
  font-size: clamp(20px, 0.3755868545vw + 18.5915492958px, 24px);
  font-weight: 700;
  line-height: 1;
  padding-bottom: 2px;
}
.page_content .wp-block-columns.page_step_columns > .wp-block-column > p {
  padding-left: var(--page-step-indent);
  margin-block: var(--leading-trim);
}
.page_content {
  /* スペックカード（配信形式・開講学期・単位数・対象年次など） */
}
.page_content .wp-block-columns.page_spec_cards {
  gap: var(--space-card-gap);
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
  flex-wrap: wrap !important;
}
.page_content .wp-block-columns.page_spec_cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: var(--space-small-plus);
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: 0 !important;
  min-width: 0;
  padding: clamp(16px, 1.3145539906vw + 11.0704225352px, 30px) clamp(12px, 1.1267605634vw + 7.7746478873px, 24px);
  background-color: #fff;
  border: 3px solid #e1e1e1;
  border-radius: 8px;
}
.page_content .wp-block-columns.page_spec_cards > .wp-block-column.center {
  justify-content: center;
}
@media (width <= 767px) {
  .page_content .wp-block-columns.page_spec_cards > .wp-block-column {
    flex-basis: 100% !important;
  }
}
.page_content .wp-block-columns.page_spec_cards > .wp-block-column .wp-block-paragraph strong {
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  font-weight: 700;
}
.page_content .wp-block-columns.page_spec_cards > .wp-block-column .wp-block-paragraph.number strong {
  font-size: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
}
.page_content .wp-block-columns.page_spec_cards > .wp-block-column > h3 {
  font-weight: 700;
}
.page_content .wp-block-columns.page_spec_cards {
  /* 1〜2カラム時: 3カラムと同じ幅で中央寄せ */
}
.page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(1):last-child), .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(2):last-child) {
  justify-content: center;
}
.page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(1):last-child) > .wp-block-column, .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(2):last-child) > .wp-block-column {
  flex-grow: 0;
  flex-basis: calc((100% - var(--space-card-gap) * 2) / 3) !important;
}
@media (width <= 767px) {
  .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(1):last-child) > .wp-block-column, .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(2):last-child) > .wp-block-column {
    flex-basis: 100% !important;
  }
}
.page_content .wp-block-columns.page_spec_cards {
  /* 4カラム時: タブレット（〜1023px）は2列 */
}
@media (width <= 1023px) {
  .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(4):last-child) {
    flex-wrap: wrap;
  }
  .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(4):last-child) > .wp-block-column {
    flex-basis: calc((100% - var(--space-card-gap)) / 2) !important;
  }
}
@media (width <= 767px) {
  .page_content .wp-block-columns.page_spec_cards:has(> .wp-block-column:nth-child(4):last-child) > .wp-block-column {
    flex-basis: 100% !important;
  }
}
.page_content .wp-block-group.page_card_pdf {
  background-color: #fff;
  border: none;
  border-radius: 16px;
  padding: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  height: 100%;
  min-width: 0;
  max-width: 100%;
}
@media (1024px <= width) {
  .page_content .wp-block-group.page_card_pdf {
    max-width: 486px;
    margin-inline: auto;
  }
}
.page_content .wp-block-group.page_card_pdf.wide {
  max-width: 100%;
}
.page_content .wp-block-group.page_card_pdf h3 {
  margin-block: var(--leading-trim);
}
.page_content .wp-block-group.page_card_pdf > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  height: 100%;
  min-width: 0;
  max-width: 100%;
}
.page_content .wp-block-group.page_card_pdf .page_card_pdf_btn {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 9px;
  margin-top: auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  flex-shrink: 0;
}
.page_content .wp-block-group.page_card_pdf .page_card_pdf_btn.is-vertical {
  flex-direction: column;
  flex-wrap: nowrap;
}
.page_content .wp-block-group.page_card_pdf .page_card_pdf_btn.is-vertical .wp-block-button {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
}
.page_content .wp-block-group.page_card_pdf .page_card_pdf_btn .wp-block-button {
  /* 基本は2列（50% - gap/2）。テキストが半分幅を超えるボタンは
     min-content により単独行へ折り返し、flex-grow で100%に広がる */
  flex: 1 1 calc(50% - 4.5px);
  margin: 0;
  min-width: 0;
  max-width: 100%;
}
.page_content .wp-block-group.page_card_pdf .page_card_pdf_btn .wp-block-button__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 2px 14px;
  background-color: #fff;
  border: 1px solid var(--color-black);
  border-radius: 50vw;
  color: var(--color-black);
  font-size: clamp(12px, 0.1877934272vw + 11.2957746479px, 14px);
  line-height: 1.8;
  text-align: center;
  text-decoration: none;
  white-space: normal;
}
.page_content .wp-block-group.page_card_pdf .page_card_pdf_btn .wp-block-button__link::after {
  display: none !important;
}
.page_content .wp-block-accordion {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
.page_content .wp-block-accordion .wp-block-accordion-item {
  background-color: #fff;
  border: 1px solid var(--color-gray);
  border-radius: 16px;
  overflow: hidden;
}
.page_content .wp-block-accordion .wp-block-accordion-heading {
  margin: 0;
}
.page_content .wp-block-accordion .wp-block-accordion-heading__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: clamp(16px, 1.3145539906vw + 11.0704225352px, 30px);
  gap: clamp(8px, 0.5633802817vw + 5.8873239437px, 14px);
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font: inherit;
}
.page_content .wp-block-accordion .wp-block-accordion-heading__toggle:hover {
  opacity: 1;
}
.page_content .wp-block-accordion .wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle {
  padding-bottom: 0;
}
.page_content .wp-block-accordion .wp-block-accordion-heading__toggle-title {
  flex: 1;
  min-width: 0;
  font-weight: 600;
}
.page_content .wp-block-accordion .wp-block-accordion-heading__toggle-icon {
  flex-shrink: 0;
  width: clamp(20px, 0.5633802817vw + 17.8873239437px, 26px);
  height: clamp(20px, 0.5633802817vw + 17.8873239437px, 26px);
  font-size: 0;
  background: transparent url(../img/icon-arrow_2.svg) no-repeat center center/contain;
  rotate: 180deg;
  transition: none;
}
.page_content .wp-block-accordion .wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle-icon {
  background: transparent url(../img/icon-close_1.svg) no-repeat center center/contain;
  transform: rotate(0deg);
}
.page_content .wp-block-accordion .wp-block-accordion-panel {
  padding: clamp(16px, 1.3145539906vw + 11.0704225352px, 30px);
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
}
.page_content .wp-block-accordion .wp-block-accordion-item:not(.is-open) .wp-block-accordion-panel {
  display: none;
}
.page_content .wp-block-accordion .wp-block-accordion-panel .has-di-pink-color {
  color: #e8336e;
  font-weight: 600;
}
.page_content .page_tabs {
  /* flex 親配下でもテーブル横スクロールが効くようにする */
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.page_content .page_tabs .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.page_content .page_tabs .wp-block-group__inner-container > .wp-block-group {
  min-width: 0;
  max-width: 100%;
}
.page_content .page_tabs .wp-block-group__inner-container > .wp-block-group.is-active {
  margin-top: calc(clamp(24px, 2.2535211268vw + 15.5492957746px, 48px) + var(--leading-trim));
}
.page_content .page_tabs .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container {
  min-width: 0;
  max-width: 100%;
}
.page_content .page_tabs .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > h3:not(:first-child),
.page_content .page_tabs .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > h4:not(:first-child) {
  margin-top: calc(clamp(24px, 2.2535211268vw + 15.5492957746px, 48px) + var(--leading-trim));
}
.page_content .page_tabs .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > .wp-block-paragraph {
  text-indent: 1em;
}
.page_content .page_tabs .wp-block-buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 0;
  margin: 0;
  border-bottom: 1px solid var(--color-black);
  overflow-x: auto;
}
.page_content .page_tabs .wp-block-buttons.is-scrollable {
  justify-content: flex-start;
}
.page_content .page_tabs .wp-block-buttons.action-plan-tab-btn .wp-block-button {
  min-width: clamp(233px, 8.1690140845vw + 202.3661971831px, 320px);
}
.page_content .page_tabs .wp-block-buttons .wp-block-button {
  margin: 0;
  background-color: #fff;
  border-radius: 12px 12px 0 0;
  min-width: clamp(100px, 7.5117370892vw + 71.8309859155px, 180px);
  flex-shrink: 0;
}
.page_content .page_tabs .wp-block-buttons .wp-block-button .wp-block-button__link,
.page_content .page_tabs .wp-block-buttons .wp-block-button button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(10px, 0.3755868545vw + 8.5915492958px, 14px) clamp(16px, 1.5023474178vw + 10.3661971831px, 32px);
  border-radius: 0;
  color: var(--color-black);
  background-color: transparent;
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  border-radius: 12px 12px 0 0;
}
.page_content .page_tabs .wp-block-buttons .wp-block-button.is-active .wp-block-button__link, .page_content .page_tabs .wp-block-buttons .wp-block-button.is-active button {
  background: linear-gradient(90deg, var(--color-purple) 0%, var(--color-green) 100%);
  color: #fff;
}
.page_content .page_tabs .wp-block-buttons .wp-block-button:hover .wp-block-button__link, .page_content .page_tabs .wp-block-buttons .wp-block-button:hover button {
  opacity: 1;
  background: linear-gradient(90deg, var(--color-purple) 0%, var(--color-green) 100%);
  color: #fff;
}
.page_content .page_tabs > .wp-block-group__inner-container > .wp-block-group:not(.is-active) {
  display: none;
}
.page_content .wp-block-group.page_tag_group {
  border: none;
  padding: 0;
}
.page_content .wp-block-group.page_tag_group .wp-block-group__inner-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.page_content .wp-block-group.page_tag_group .wp-block-paragraph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding-inline: clamp(12px, 0.3755868545vw + 10.5915492958px, 16px);
  background-color: #fff;
  border: 2px solid var(--color-green);
  border-radius: 50vw;
  color: var(--color-green);
  font-size: clamp(12px, 0.1877934272vw + 11.2957746479px, 14px);
  font-weight: 500;
  line-height: 1.8;
}
.page_content {
  /* 企業名などのボックス型タグ（グレー枠） */
}
.page_content .wp-block-group.page_tag_box {
  border: none;
  padding: 0;
}
.page_content .wp-block-group.page_tag_box .wp-block-group__inner-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.page_content .wp-block-group.page_tag_box .wp-block-paragraph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  min-height: 34px;
  padding: 2px 12px;
  background-color: #fff;
  border: 1px solid var(--color-gray);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 400;
  line-height: 2;
  text-indent: 0;
}
.page_content .wp-block-group.page_flow_list {
  border: none;
  padding: 0;
  counter-reset: page-flow-step;
}
.page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: var(--space-medium);
}
.page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container > .wp-block-group {
  counter-increment: page-flow-step;
  position: relative;
  padding-left: clamp(40px, 1.5023474178vw + 34.3661971831px, 56px);
}
.page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container > .wp-block-group::before {
  content: counter(page-flow-step);
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(32px, 0.7511737089vw + 29.1830985915px, 40px);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--color-green);
  color: #fff;
  font-size: clamp(20px, 0.3755868545vw + 18.5915492958px, 24px);
  font-weight: 700;
  line-height: 1;
  padding-bottom: 2px;
}
.page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  margin-top: -2px;
}
.page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > h3 {
  display: block;
  gap: 0;
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 700;
  margin-block: 0;
  padding-bottom: 0;
}
.page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > h3::before, .page_content .wp-block-group.page_flow_list > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > h3::after {
  content: none;
  display: none;
}
.page_content .wp-block-columns.page_info_cards {
  gap: var(--space-card-gap);
  align-items: stretch;
}
@media (width <= 1023px) {
  .page_content .wp-block-columns.page_info_cards {
    flex-direction: column;
  }
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  padding: clamp(20px, 0.7511737089vw + 17.1830985915px, 28px);
  flex: 1;
  width: 100%;
  background-color: #fff;
  border-radius: 8px;
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column:has(.dandi-column-link-overlay) {
  transition: opacity var(--duration);
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column:has(.dandi-column-link-overlay):hover {
  opacity: 0.7;
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column > .wp-block-columns {
  align-items: center;
  gap: clamp(4px, 0.3755868545vw + 2.5915492958px, 8px);
  padding-bottom: clamp(8px, 0.7511737089vw + 5.1830985915px, 16px);
  border-bottom: 1px solid var(--color-black);
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column > .wp-block-columns .wp-block-column:first-child {
  flex-shrink: 0;
  width: fit-content;
  flex-basis: auto !important;
  flex-grow: 0;
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column > .wp-block-columns .wp-block-column:first-child .wp-block-paragraph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 3px 8px;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--color-purple) 20%, var(--color-green) 100%);
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column > .wp-block-columns .wp-block-column:last-child {
  flex-basis: auto !important;
}
.page_content .wp-block-columns.page_info_cards > .wp-block-column > .wp-block-columns .wp-block-column:last-child .wp-block-paragraph {
  font-size: clamp(18px, 0.1877934272vw + 17.2957746479px, 20px);
  font-weight: 700;
  margin-top: calc(clamp(3px, 0.1877934272vw + 2.2957746479px, 5px) * -1);
}
.page_content .wp-block-columns.page_info_cards .wp-block-table {
  overflow-x: initial;
  width: 100%;
  margin-block: var(--leading-trim);
}
.page_content .wp-block-columns.page_info_cards .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}
.page_content .wp-block-columns.page_info_cards .wp-block-table td {
  padding: 0;
  background-color: transparent;
  border-radius: 0;
  vertical-align: top;
}
@media (768px <= width) {
  .page_content .wp-block-columns.page_info_cards .wp-block-table td:first-child {
    padding-right: clamp(5px, 4.6948356808vw + -12.6056338028px, 55px);
    white-space: nowrap;
    width: 0;
  }
}
@media (width <= 767px) {
  .page_content .wp-block-columns.page_info_cards .wp-block-table td {
    display: block;
    width: 100%;
  }
  .page_content .wp-block-columns.page_info_cards .wp-block-table td:not(:first-child) {
    margin-top: 0;
  }
}
.page_content {
  /* 協賛企業ロゴ（白背景バー） */
}
.page_content .wp-block-columns.page_sponsor_logos {
  max-width: 800px;
  width: 100%;
  margin-inline: auto;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: clamp(30px, 3.661971831vw + 16.2676056338px, 69px);
  padding: clamp(16px, 1.3145539906vw + 11.0704225352px, 30px);
  background-color: #fff;
  border-radius: 8px;
}
.page_content .wp-block-columns.page_sponsor_logos > .wp-block-column {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-basis: auto !important;
  flex-grow: 0;
  width: auto !important;
  min-width: 0;
}
.page_content .wp-block-columns.page_sponsor_logos .wp-block-image {
  margin: 0;
}
.page_content .wp-block-columns.page_sponsor_logos .wp-block-image figure {
  margin: 0;
}
.page_content .wp-block-columns.page_sponsor_logos .wp-block-image img {
  width: auto !important;
  max-width: none;
  height: 52px;
  border-radius: 0;
  object-fit: contain;
}
.page_content .wp-block-group.page_note_dashed {
  border: 2px dashed var(--color-purple);
  border-radius: 8px;
  padding: var(--space-small);
  color: var(--color-purple);
  background-color: #fff;
}
.page_content .wp-block-group.page_note_dashed .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
}
.page_content .wp-block-group.page_reservation {
  position: relative;
  background-color: #fff;
  border-radius: 8px;
  padding: clamp(12px, 1.5023474178vw + 6.3661971831px, 28px);
}
@media (width <= 767px) {
  .page_content .wp-block-group.page_reservation {
    padding: 50px clamp(12px, 1.5023474178vw + 6.3661971831px, 28px) clamp(12px, 1.5023474178vw + 6.3661971831px, 28px);
  }
}
.page_content .wp-block-group.page_reservation .wp-block-group__inner-container {
  text-align: center;
}
.page_content .wp-block-group.page_reservation .wp-block-paragraph:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  padding: 2px 8px;
  border-radius: 4px;
  background-color: #e8336e;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
  position: absolute;
  top: clamp(20px, 0.7511737089vw + 17.1830985915px, 28px);
  left: clamp(20px, 0.7511737089vw + 17.1830985915px, 28px);
}
.page_content .wp-block-group.page_reservation .wp-block-paragraph:nth-of-type(2) {
  font-weight: 700;
}
.page_content .wp-block-group.page_reservation .wp-block-paragraph:nth-of-type(2) strong {
  font-size: clamp(28px, 1.8779342723vw + 20.9577464789px, 48px);
}
.page_content .wp-block-group.page_reservation .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  margin-top: clamp(10px, 0.9389671362vw + 6.4788732394px, 20px);
}
.page_content .wp-block-group.page_reservation .wp-block-buttons .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 176px;
  padding: clamp(6px, 0.4694835681vw + 4.2394366197px, 11px) clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  border-radius: 50vw;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.page_content .wp-block-group.page_reservation .wp-block-buttons .wp-block-button:first-child .wp-block-button__link {
  background-color: #e8336e;
}
.page_content .wp-block-group.page_reservation .wp-block-buttons .wp-block-button:last-child .wp-block-button__link {
  background-color: #969696;
}
.page_content .wp-block-group.page_connection_box {
  background-color: #f5f5f5;
  border: clamp(3px, 0.2816901408vw + 1.9436619718px, 6px) solid #fff;
  border-radius: clamp(8px, 0.7511737089vw + 5.1830985915px, 16px);
  padding: clamp(20px, 1.3145539906vw + 15.0704225352px, 34px) clamp(22px, 1.5023474178vw + 16.3661971831px, 38px);
  line-height: 1.8;
}
.page_content .wp-block-group.page_connection_box.bg-white {
  background-color: #fff;
}
.page_content .wp-block-group.page_connection_box .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
}
.page_content .wp-block-group.page_connection_box small {
  font-weight: 400;
  font-size: 10px;
  color: #fff;
  background-color: #969696;
  padding: 2px 4px;
  position: relative;
  top: -2px;
  display: inline-block;
  line-height: 1;
}
.page_content .page_inline_tag {
  border-color: var(--color-green);
  color: var(--color-green);
  position: relative;
  top: -2px;
  margin-inline: 4px;
  text-indent: 0;
}
.page_content > .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
}
.page_content > .wp-block-buttons .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 176px;
  padding: clamp(6px, 0.4694835681vw + 4.2394366197px, 11px) clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  border-radius: 50vw;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  background-color: var(--color-green);
}
.page_content > .wp-block-buttons .wp-block-button__link:after {
  color: var(--color-green);
  background-color: #fff;
}
.page_content > .wp-block-buttons .wp-block-button__link {
  /* 外部リンクアイコンは SVG を mask にして background-color で着色する */
}
.page_content > .wp-block-buttons .wp-block-button__link[target=_blank]:not([href^="mailto:" i]):not([href$=".pdf" i]):not([href$=".doc" i]):not([href$=".docx" i]):not([href$=".xls" i]):not([href$=".xlsx" i])::after {
  background: #fff;
  mask: url(../img/icon-blank.svg) no-repeat center center/contain;
}
.page_content .column_image_text {
  gap: var(--space-small) clamp(20px, 7.2300469484vw + -7.1126760563px, 97px);
  background-color: #fff;
  border-radius: 16px;
  padding: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
}
@media (1024px <= width) {
  .page_content .column_image_text {
    min-height: 240px;
    padding: 24px clamp(24px, 3.8497652582vw + 9.5633802817px, 65px);
  }
}
.page_content .column_image_text > .wp-block-column:first-child .wp-block-image {
  max-width: 311px;
  margin-inline: auto;
}
.page_content {
  /* 一時預かり保育室などのキャンパス別カード（画像＋定員＋住所） */
}
.page_content .wp-block-columns.page_nursery_rooms {
  font-weight: 500;
  flex-wrap: wrap !important;
}
.page_content .wp-block-columns.page_nursery_rooms > .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
@media (width <= 1023px) {
  .page_content .wp-block-columns.page_nursery_rooms > .wp-block-column {
    flex-basis: calc(50% - var(--space-card-gap) / 2);
  }
}
.page_content .wp-block-columns.page_nursery_rooms > .wp-block-column .wp-block-separator {
  margin: 0;
  width: 100%;
  border: none;
  border-top: 1px dashed #000;
  opacity: 1;
}
.page_content {
  /* 介護支援グリッド（テーブル） */
}
.page_content .wp-block-group.page_svc_grid {
  border: none;
  padding: 0;
  overflow-x: auto;
  padding: 2px;
  -webkit-overflow-scrolling: touch;
}
.page_content .wp-block-group.page_svc_grid > .wp-block-group__inner-container {
  width: 1500px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  /* start だと低いテーブルの下に空きができ、隣の高いテーブル分だけ隙間が広く見える */
  align-items: stretch;
}
.page_content .wp-block-group.page_svc_grid {
  /* .wp-block-table と同じカード状テーブル（border-spacing）に揃える */
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table {
  min-width: 0;
  height: 100%;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table table {
  width: 100%;
  height: 100%;
  table-layout: fixed;
  border: none !important;
  border-radius: 0 !important;
  border-collapse: separate !important;
  border-spacing: 4px !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table th,
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table td {
  padding: clamp(12px, 0.7511737089vw + 9.1830985915px, 20px) !important;
  vertical-align: middle;
  border: none !important;
  border-top: none !important;
  background-color: #fff;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tr > :not(:last-child) {
  border-right: none !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table thead tr :first-child {
  border-radius: 8px 0 0 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table thead tr :last-child {
  border-radius: 0 8px 0 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table thead tr :first-child:last-child {
  border-radius: 8px 8px 0 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table thead th,
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table thead td {
  background-color: rgba(0, 177, 197, 0.2);
  white-space: nowrap;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:last-child :last-child {
  border-radius: 0 0 8px 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:last-child :first-child:last-child {
  border-radius: 0 0 8px 8px !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody {
  /* rowspan セルは最終行に現れないので、左下の角丸をセル自身に付ける。
     先頭行の rowspan は左上下、途中行の rowspan は左下のみ */
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:first-child > :first-child[rowspan],
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:first-child > .cat[rowspan] {
  border-radius: 8px 0 0 8px !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:not(:first-child) > :first-child[rowspan],
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:not(:first-child) > .cat[rowspan] {
  border-radius: 0 0 0 8px !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table {
  /* rowspan が無い最終行の .cat にも左下角丸を付ける（他行に rowspan があっても） */
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table tbody tr:last-child > .cat:not([rowspan]) {
  border-bottom-left-radius: 8px !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table {
  /* rowspan が無いときだけ、最終行先頭に左下の角丸を付ける */
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table:not(:has(tbody [rowspan])) tbody tr:last-child :first-child {
  border-radius: 0 0 0 8px !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table:not(:has(thead)) tbody tr:first-child :first-child:not([rowspan]) {
  border-radius: 8px 0 0 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table:not(:has(thead)) tbody tr:first-child :last-child {
  border-radius: 0 8px 0 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table:not(:has(thead)) tbody tr:first-child :first-child:last-child {
  border-radius: 8px 8px 0 0 !important;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table .cat {
  width: 190px;
  background-color: rgba(0, 177, 197, 0.2);
  font-weight: 700;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table .sname {
  width: 30%;
  font-weight: 700;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table .desc {
  vertical-align: top;
}
.page_content .wp-block-group.page_svc_grid .wp-block-flexible-table-block-table .solo {
  width: 190px;
  background-color: rgba(0, 177, 197, 0.2);
  font-weight: 700;
}
.page_content .wp-block-button.booking_button .wp-block-button__link {
  display: inline-flex;
  background-color: #e8336e;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 176px;
  min-height: 44px;
  padding: 10px 24px;
  border: none;
  border-radius: 50vw;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.3s ease, opacity 0.3s ease;
}

/* ===============================================
#sidebar（固定ページ・サイドバー）
=============================================== */
.sidebar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(16px, 1.5023474178vw + 10.3661971831px, 32px);
  color: var(--color-black);
  height: 100%;
  position: relative;
}
@media (768px <= width) {
  .sidebar {
    width: var(--sidebar-width);
    flex-direction: column;
    justify-content: flex-start;
  }
}

.sidebar_heading {
  display: flex;
  align-items: flex-start;
  gap: clamp(10px, 0.4694835681vw + 8.2394366197px, 15px);
}
@media (width <= 767px) {
  .sidebar_heading {
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 16px;
  }
}

.sidebar_heading-title {
  font-size: clamp(20px, 1.5023474178vw + 14.3661971831px, 36px);
  font-weight: 600;
}
@media (768px <= width) {
  .sidebar_heading-title {
    white-space: nowrap;
    writing-mode: vertical-rl;
    text-orientation: upright;
    line-height: 1.4;
    letter-spacing: 0.26em;
  }
}
@media (width <= 767px) {
  .sidebar_heading-title {
    line-height: 1.5;
    margin-block: var(--leading-trim);
  }
}

.sidebar_heading-label {
  font-size: clamp(10px, 0.9389671362vw + 6.4788732394px, 20px);
  font-weight: 400;
  line-height: 1.2;
}
@media (768px <= width) {
  .sidebar_heading-label {
    white-space: nowrap;
    writing-mode: vertical-rl;
    text-orientation: upright;
  }
}

/* 縦書き時の D&I / DE&I 字間（親の letter-spacing を打ち消す） */
@media (768px <= width) {
  .sidebar_heading-di {
    letter-spacing: -0.2em;
    margin-bottom: 0.2em;
  }
}

.sidebar_sticky {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 0.7511737089vw + 21.1830985915px, 32px);
  width: 100%;
  /* 幅の変数は sticky 側で定義し、nav の高さ計算からも参照できるようにする */
}
.sidebar_sticky:has(.sidebar_illustration-page) {
  --sidebar-illustration-max-width: clamp(110px, 5.0704225352vw + 90.985915493px, 164px);
}
.sidebar_sticky:has(.sidebar_illustration-term) {
  /* 幅ベースの現行値を上限、90px を下限とし、dvh で高さに追従 */
  --sidebar-illustration-max-width: clamp(110px, 30dvh, clamp(110px, 23.0312035661vw + -66.6493313522px, 265px));
}
@media (768px <= width) {
  .sidebar_sticky {
    align-items: center;
    position: sticky;
    --sidebar-sticky-top: var(--header-height);
    --sidebar-sticky-gap: clamp(24px, 0.7511737089vw + 21.1830985915px, 32px);
    top: calc(var(--sidebar-sticky-top));
    /* --sidebar-illustration-height は JS（common.js）が実測値をセットする */
  }
  .sidebar_sticky:has(.sidebar_illustration) {
    --sidebar-sticky-inner-gap: var(--sidebar-sticky-gap);
  }
  .sidebar_sticky.en-page {
    margin-top: auto;
  }
}
@media (width <= 767px) {
  .sidebar_sticky {
    flex-shrink: 0;
    width: auto;
  }
}

.sidebar_nav {
  width: 100%;
}
@media (768px <= width) {
  .sidebar_nav {
    /* 横幅が上部画像を超えるときだけ 12文字省略（JS が .is-truncated を付与） */
    /* 12文字 + … + letter-spacing 分の余裕（… 用に 1.4em を確保） */
    --sidebar-nav-collapsed-height: 16.5em;
    /* 画面高さではみ出すとき：幅省略・ホバーの有無に関係なく … を表示 */
  }
  .sidebar_nav .sidebar_nav_link-text.is-overflowing .sidebar_nav_link-ellipsis {
    display: block;
  }
  .sidebar_nav.is-truncated {
    transition: opacity 0.2s ease;
  }
  .sidebar_nav {
    /* 定常の省略表示：短縮＋…（.is-open 中は全文パネルへ切替） */
  }
  .sidebar_nav.is-truncated:not(.is-open) .sidebar_nav_link-text.has-ellipsis {
    max-height: var(--sidebar-nav-collapsed-height);
  }
  .sidebar_nav.is-truncated:not(.is-open) .sidebar_nav_link-text.has-ellipsis .sidebar_nav_link-full {
    display: none;
  }
  .sidebar_nav.is-truncated:not(.is-open) .sidebar_nav_link-text.has-ellipsis .sidebar_nav_link-short {
    display: inline;
  }
  .sidebar_nav.is-truncated:not(.is-open) .sidebar_nav_link-text.has-ellipsis .sidebar_nav_link-ellipsis {
    display: block;
  }
  .sidebar_nav {
    /* 元テキストをフェードアウト中 */
  }
  .sidebar_nav.is-truncated.is-fading {
    opacity: 0;
  }
  .sidebar_nav {
    /* ブラーボックスで全文表示（縮小→等倍。JS が .is-open を付与） */
  }
  .sidebar_nav.is-truncated.is-open {
    position: absolute;
    top: -24px;
    left: 50%;
    translate: -50% 0;
    z-index: 2;
    width: max-content;
    min-width: 100%;
    min-height: 100%;
    padding: 32px;
    border-radius: 8px;
    background-color: rgba(245, 245, 245, 0.6);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: none;
    transform-origin: center top;
    animation: sidebar-nav-expand 0.5s ease forwards;
  }
  .sidebar_nav.is-truncated.is-open.is-closing {
    animation: sidebar-nav-collapse 0.5s ease forwards;
  }
  .sidebar_nav.is-truncated.is-open {
    /* 閉じキャンセル時など、拡大完了状態を維持 */
  }
  .sidebar_nav.is-truncated.is-open.is-settled:not(.is-closing) {
    animation: none;
    opacity: 1;
    scale: 1;
  }
  .sidebar_nav.is-truncated.is-open .sidebar_nav_list {
    max-height: calc(100dvh - var(--sidebar-sticky-top) - 64px);
  }
  .sidebar_nav.is-truncated.is-open .sidebar_nav_link {
    max-height: calc(100dvh - var(--sidebar-sticky-top) - 64px);
    overflow: visible;
  }
  .sidebar_nav.is-truncated.is-open .sidebar_nav_link-text {
    max-height: calc(100dvh - var(--sidebar-sticky-top) - 64px - 16px);
    overflow: visible;
  }
  .sidebar_nav.is-truncated.is-open .sidebar_nav_link-body {
    overflow: visible;
  }
  .sidebar_nav.is-truncated.is-open .sidebar_nav_link-text.is-overflowing .sidebar_nav_link-body {
    -webkit-mask-image: none;
    mask-image: none;
  }
}
@media (width <= 767px) {
  .sidebar_nav {
    display: none;
  }
}

@keyframes sidebar-nav-expand {
  from {
    opacity: 0;
    scale: 0.88;
  }
  to {
    opacity: 1;
    scale: 1;
  }
}
@keyframes sidebar-nav-collapse {
  from {
    opacity: 1;
    scale: 1;
  }
  to {
    opacity: 0;
    scale: 0.88;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar_nav.is-truncated {
    transition: none;
  }
  .sidebar_nav.is-truncated.is-open,
  .sidebar_nav.is-truncated.is-open.is-closing {
    animation: none;
  }
}
.sidebar_illustration {
  width: var(--sidebar-illustration-max-width, 90px);
  position: relative;
}

.sidebar_nav_list {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-content: center;
  align-items: stretch;
  direction: rtl;
  gap: 0.8em;
}
@media (width <= 767px) {
  .sidebar_nav_list {
    flex-direction: row-reverse;
    justify-content: flex-end;
    direction: ltr;
    gap: 0 0.5em;
  }
}
@media (768px <= width) {
  .sidebar_nav_list {
    /* 利用可能高さ。超えた分は列方向へ折り返し、高さはみ出しを防ぐ */
    max-height: calc(100dvh - var(--sidebar-sticky-top) - var(--sidebar-sticky-inner-gap, 0px) - var(--sidebar-illustration-height, 0px));
  }
}

.sidebar_nav_item {
  direction: ltr;
  min-height: 0;
}

.sidebar_nav_link {
  display: inline-flex;
  min-height: 0;
  gap: 4px;
  color: var(--color-black);
  line-height: 1.5;
}
@media (768px <= width) {
  .sidebar_nav_link {
    /* inline-flex だと li の行ボックス（半レディング）分だけ下がり数px はみ出すため block レベルにする */
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.2;
    max-height: calc(100dvh - var(--sidebar-sticky-top) - var(--sidebar-sticky-inner-gap, 0px) - var(--sidebar-illustration-height, 0px));
    overflow: hidden;
  }
}
.sidebar_nav_link::before {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background: transparent url(../img/icon-arrow_4.svg) no-repeat center center/contain;
}
@media (768px <= width) {
  .sidebar_nav_link::before {
    rotate: 90deg;
    margin-left: 2px;
  }
}

@media (768px <= width) {
  .sidebar_nav_link-text {
    writing-mode: vertical-lr;
    white-space: nowrap;
    text-orientation: upright;
    /* vertical-lr では row の主軸が縦方向 → 本文＋… を縦に並べ、… を末尾に固定できる */
    display: flex;
    flex-direction: row;
    align-items: center;
    flex: 0 1 auto;
    min-height: 0;
    /* 矢印分を除いた高さ上限（定常表示用。ホバー時は .sidebar_nav 側で上書き） */
    max-height: calc(100dvh - var(--sidebar-sticky-top) - var(--sidebar-sticky-inner-gap, 0px) - var(--sidebar-illustration-height, 0px) - 16px);
    overflow: hidden;
    /* はみ出し時：本文末尾を白寄りに強めフェードして切れ端を目立たせない */
  }
  .sidebar_nav_link-text.is-overflowing .sidebar_nav_link-body {
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 1.6em), rgba(0, 0, 0, 0.35) calc(100% - 0.7em), transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 1.6em), rgba(0, 0, 0, 0.35) calc(100% - 0.7em), transparent 100%);
  }
}

@media (768px <= width) {
  .sidebar_nav_link-body {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
}

.sidebar_nav_link-short {
  display: none;
}

.sidebar_nav_link-ellipsis {
  display: none;
  flex: 0 0 1.4em;
  block-size: 1.4em;
  overflow: visible;
  line-height: 2.2;
  /* upright だと点が縦に積まれるため、省略記号だけ mixed で向きを分ける */
  text-orientation: mixed;
}

/* ===============================================
#ロール一覧 page
=============================================== */
.view-wrap:has(.roll-list),
.view-wrap:has(.roll-detail) {
  width: 100%;
}

.roll-list {
  margin: 0 auto;
  max-width: 1000px;
  color: #000;
  letter-spacing: 0.05em;
  line-height: 2;
}

.roll-list > :first-child {
  margin-block-start: 0 !important;
}

.roll-list > :last-child {
  margin-block-end: 0 !important;
}

.roll-list img {
  width: 100%;
  height: auto;
}

.roll-list > .wp-block-paragraph,
.roll-list > p {
  font-size: 16px;
  margin-block: 1lh;
}

.roll-list .roll-list_slide {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  margin-bottom: 100px;
}

/* コアのグループ: 内側ラッパーを透過にして子 figure を .roll-list_slide のグリッド子として重ねる */
.roll-list .roll-list_slide > .wp-block-group__inner-container {
  display: contents;
}

.roll-list .roll-list_slide .wp-block-image {
  position: relative;
  height: 100%;
}

.roll-list .roll-list_slide .wp-block-image img,
.roll-detail > .wp-block-image:nth-of-type(1) img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  object-fit: cover;
  aspect-ratio: 10/6;
  border-radius: 50px 0 50px 0;
}

.roll-list .roll-list_slide .wp-block-image::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: clamp(120px, 18.0281690141vw + 52.3943661972px, 312px);
  aspect-ratio: 312/64;
  background: transparent url(./../img/roll-text_1.svg) no-repeat center right/contain;
}

.roll-list .roll-list_slide .wp-block-image::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 50%;
  left: calc(50% + clamp(15px, 2.3474178404vw + 6.1971830986px, 40px));
  transform: translate(-50%, -50%);
  width: clamp(200px, 22.5352112676vw + 115.4929577465px, 440px);
  aspect-ratio: 440/190;
  background: transparent url(./../img/roll-text_3.svg) no-repeat center center/contain;
}

/* 複数 .wp-block-image を同一セルに重ねてフェード（JS で .is-active 切替） */
.roll-list .roll-list_slide .wp-block-image:not(:only-child) {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  opacity: 0;
  transition: opacity 0.9s ease;
  z-index: 0;
}

/* JS 適用前は先頭のみ表示（noscript 用） */
.roll-list .roll-list_slide:not(.roll-list_slide--initialized) .wp-block-image:not(:only-child):first-of-type {
  opacity: 1;
  z-index: 1;
}

.roll-list .roll-list_slide.roll-list_slide--initialized .wp-block-image.is-active {
  opacity: 1;
  z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
  .roll-list .roll-list_slide .wp-block-image {
    transition: none;
  }
}
.roll-list .roll-detail_related {
  margin-block: 100px;
}

.roll-list h2,
.roll-list h3,
.roll-list h4 {
  font-size: 20px;
  font-weight: 500;
  margin-top: 8px;
}

/* ===============================================
# ロールOGインタビュー詳細ページ (.roll-detail)
=============================================== */
.roll-detail {
  letter-spacing: 0.05em;
  line-height: 2;
}

.roll-detail p {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.05em;
}

.roll-detail > p {
  margin-block: 1lh;
  position: relative;
  z-index: 2;
}

/* --- メインイメージ --- */
.roll-detail > .wp-block-image:nth-of-type(1) {
  position: relative;
}

/* --- メインタイトル --- */
.roll-detail > h2 {
  font-size: clamp(22px, 0.9389671362vw + 18.4788732394px, 32px);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 2;
  margin-block: 70px 50px;
}

/* --- メタ行（バッジ＋名前 ／ プロフィール） --- */
.roll-detail .roll-detail_meta.wp-block-columns {
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-block: 50px;
}

.roll-detail .roll-detail_meta.wp-block-columns .wp-block-column {
  flex-basis: inherit;
  flex-grow: inherit;
}

.roll-detail .roll-detail_meta.wp-block-columns .wp-block-column:first-child {
  width: fit-content;
  flex-shrink: 0;
}

.roll-detail .roll-detail_meta.wp-block-columns .wp-block-column:last-child {
  max-width: 560px;
}

.roll-detail .roll-detail_meta .wp-block-buttons,
.roll-detail_related .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.roll-detail .roll-detail_meta .wp-block-button .wp-block-button__link,
.roll-detail_related .wp-block-button .wp-block-button__link {
  background: #7b449a;
  border-radius: 50vw;
  color: #fff;
  display: inline-flex;
  line-height: 1;
  padding: 6px 16px;
  cursor: text;
  text-decoration: none;
}

.roll-detail .roll-detail_meta .roll-detail_name {
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  letter-spacing: 0.05em;
  line-height: 2;
  font-weight: 400;
  margin-top: 20px;
}

.roll-detail .roll-detail_meta.wp-block-columns .wp-block-column:last-child strong {
  color: #7b449a;
  font-weight: 700;
}

/* --- リード文ボックス --- */
.roll-detail .roll-detail_lead {
  background: #faf5f5;
  border-radius: 8px;
  padding: clamp(12px, 1.3145539906vw + 7.0704225352px, 26px) clamp(20px, 1.1267605634vw + 15.7746478873px, 32px);
}
@media (768px <= width) {
  .roll-detail .roll-detail_lead {
    margin-block: clamp(30px, 1.8779342723vw + 22.9577464789px, 50px);
  }
}

/* --- セクション見出し (h3, 24px) --- */
.roll-detail > h3 {
  position: relative;
  font-size: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
  letter-spacing: 0.05em;
  font-weight: 500;
  margin-block: 90px 50px;
}
.roll-detail > h3::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
  width: 300px;
  aspect-ratio: 1;
  background: transparent url(./../img/roll-object_1.webp) no-repeat center center/contain;
  pointer-events: none;
}

/* --- Q&Aテキスト --- */
.roll-detail h4 {
  color: #7b449a;
  font-weight: 700;
  margin-block: 1lh;
  position: relative;
  z-index: 2;
}

.roll-detail > .wp-block-image:not(:nth-of-type(1)) {
  margin-block: 50px;
}

.roll-detail > .wp-block-image.aligncenter {
  display: block;
}

.roll-detail > .wp-block-image.aligncenter > figcaption {
  display: block;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  margin-block: var(--leading-trim);
}

.roll-detail > .wp-block-image:not(:nth-of-type(1)) img {
  border-radius: 8px;
  width: 100%;
}

/* --- My Object セクション（全幅グラデ） --- */
.roll-detail .roll-detail_my-object {
  position: relative;
  padding-block: 40px;
  margin-block: 110px;
}

.roll-detail .roll-detail_my-object::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: calc((var(--vw) * 100 - 100%) / -2);
  width: calc(var(--vw) * 100);
  border-radius: 8px;
  background: var(--Roll, linear-gradient(45deg, rgba(255, 215, 1, 0.3) 0%, rgba(0, 177, 197, 0.3) 100%));
  background-blend-mode: multiply;
  pointer-events: none;
}

.roll-detail .roll-detail_my-object::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 28px;
  left: -227px;
  width: 454px;
  aspect-ratio: 454/89;
  background: transparent url(./../img/roll-text_4.svg) no-repeat center center/contain;
  pointer-events: none;
  rotate: -15deg;
}

.roll-detail .roll-detail_my-object .wp-block-columns {
  align-items: center !important;
  gap: 60px;
  position: relative;
  z-index: 2;
}

.roll-detail .roll-detail_my-object .wp-block-column {
  flex-basis: inherit;
  flex-grow: inherit;
}

.roll-detail .roll-detail_my-object .wp-block-columns > .wp-block-column:first-child {
  width: calc(60% - 60px);
  position: relative;
}

.roll-detail .roll-detail_my-object .wp-block-columns > .wp-block-column:last-child {
  width: 40%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.roll-detail .roll-detail_my-object h4.wp-block-heading {
  font-size: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0;
  color: #000;
}

.roll-detail .roll-detail_my-object p {
  font-size: 16px;
  line-height: 2;
  margin-block: 1lh 0;
}

.roll-detail .roll-detail_my-object .wp-block-group__inner-container:not(:has(.wp-block-columns)) {
  max-width: 730px;
  margin-inline: auto;
  padding-block: 70px;
}

/* --- 関連カードグリッド --- */
.roll-detail_related {
  margin-top: 130px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.roll-detail_related h3 {
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 8px;
}

.roll-detail_related .wp-block-columns:not(:first-child) {
  gap: 40px;
  margin-top: 40px;
  margin-bottom: 0;
}

.roll-detail_related .wp-block-columns {
  gap: 40px;
}

.roll-detail_related .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.roll-detail_related .wp-block-image {
  position: relative;
}
.roll-detail_related .wp-block-image a {
  display: block;
}

.roll-detail_related .wp-block-image::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  width: 176px;
  aspect-ratio: 176/36;
  background-color: #833f9e;
  mix-blend-mode: multiply;
  border-radius: 0 0 0 50vw;
  pointer-events: none;
}

.roll-detail_related .wp-block-image::after {
  content: "";
  position: absolute;
  z-index: 3;
  top: 13px;
  right: 19px;
  width: 126px;
  aspect-ratio: 125/10;
  background: transparent url(./../img/roll-text_2.svg) no-repeat center right/contain;
  pointer-events: none;
}

.roll-detail_related .wp-block-buttons {
  margin-top: 8px;
}

/* ===============================================
#page_cat_top（カテゴリートップリンク一覧）
=============================================== */
.nav_image {
  max-width: var(--nav-image-width);
}
@media (width <= 767px) {
  .nav_image {
    max-width: max(0px, var(--nav-image-width) - 20px);
  }
}

.page_cat_top_nav {
  display: grid;
}
.page_cat_top_nav.is-detail-open .page_cat_top_cards {
  pointer-events: none;
}

.page_cat_top_cards {
  --card-gap: clamp(8px, 2.3774145617vw + -10.234769688px, 24px);
  grid-area: 1/1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--card-gap);
}
@media (width <= 1300px) {
  .page_cat_top_cards {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (width <= 1023px) {
  .page_cat_top_cards {
    grid-template-columns: repeat(2, 1fr);
    --card-gap: 8px;
  }
}

.page_cat_top_card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: clamp(8px, 0.3755868545vw + 6.5915492958px, 12px);
  min-height: clamp(140px, 3.7558685446vw + 125.9154929577px, 180px);
  padding: clamp(12px, 0.3755868545vw + 10.5915492958px, 16px) clamp(4px, 0.3755868545vw + 2.5915492958px, 8px) clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  background-color: #fff;
  border-radius: 16px;
  text-align: center;
  font-size: clamp(13px, 0.2816901408vw + 11.9436619718px, 16px);
  line-height: 1.6;
  cursor: pointer;
  min-width: 0;
}
.page_cat_top_card .page_cat_top_card_thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: clamp(72px, 2.441314554vw + 62.8450704225px, 98px);
  min-width: 0;
}
.page_cat_top_card .page_cat_top_card_thumb img {
  width: auto;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
.page_cat_top_card .page_cat_top_card_thumb .nav_image {
  max-width: var(--nav-image-width);
}
@media (width <= 767px) {
  .page_cat_top_card .page_cat_top_card_thumb .nav_image {
    max-width: max(0px, var(--nav-image-width) - 20px);
  }
}
.page_cat_top_card span {
  display: flex;
  align-items: center;
  justify-content: center;
}

.page_cat_top_card_roll {
  grid-column: span 2;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  min-height: auto;
  background-color: transparent;
}

.page_cat_top_detail {
  grid-area: 1/1;
  z-index: 1;
  align-self: stretch;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
  width: 100%;
  min-height: 100%;
  padding: clamp(10px, 0.5633802817vw + 7.8873239437px, 16px) clamp(16px, 0.7511737089vw + 13.1830985915px, 24px) clamp(34px, 2.7230046948vw + 23.7887323944px, 63px);
  border-radius: 16px;
  background-color: rgba(255, 255, 255, 0.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
@media (width <= 1023px) {
  .page_cat_top_detail {
    flex-direction: column;
  }
}
.page_cat_top_detail:not([hidden]) {
  animation: page-cat-top-detail-slide-in 0.35s ease-out forwards;
}
.page_cat_top_detail.is-closing {
  animation: page-cat-top-detail-slide-out 0.35s ease-in forwards;
}
.page_cat_top_detail[hidden] {
  display: none;
}

@keyframes page-cat-top-detail-slide-in {
  from {
    opacity: 0;
    translate: -40px 0;
  }
  to {
    opacity: 1;
    translate: 0;
  }
}
@keyframes page-cat-top-detail-slide-out {
  from {
    opacity: 1;
    translate: 0;
  }
  to {
    opacity: 0;
    translate: -40px 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .page_cat_top_detail:not([hidden]),
  .page_cat_top_detail.is-closing {
    animation: none;
  }
}
.page_cat_top_detail-close {
  position: absolute;
  top: clamp(12px, 2.6291079812vw + 2.1408450704px, 40px);
  right: clamp(12px, 2.6291079812vw + 2.1408450704px, 40px);
  width: clamp(18px, 0.7511737089vw + 15.1830985915px, 26px);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.page_cat_top_detail-close img {
  width: clamp(22px, 0.3755868545vw + 20.5915492958px, 26px);
  height: auto;
}

.page_cat_top_detail-head {
  flex-shrink: 0;
}

.page_cat_top_detail_content {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
}
@media (1024px <= width) {
  .page_cat_top_detail_content {
    padding-top: clamp(12px, 1.5023474178vw + 6.3661971831px, 28px);
  }
}

.page_cat_top_heading {
  font-size: clamp(18px, 0.5633802817vw + 15.8873239437px, 24px);
  line-height: 1.8;
  font-weight: 700;
  margin-block: var(--leading-trim);
}
@media (1024px <= width) {
  .page_cat_top_heading {
    padding-right: clamp(24px, 2.2535211268vw + 15.5492957746px, 48px);
  }
}

.page_cat_top_list {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.3755868545vw + 6.5915492958px, 12px);
}

.page_cat_top_link {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  position: relative;
  padding-left: 20px;
  font-size: clamp(14px, 0.1877934272vw + 13.2957746479px, 16px);
}
.page_cat_top_link img {
  position: absolute;
  top: clamp(9px, 0.0938967136vw + 8.6478873239px, 10px);
  left: 0;
  flex-shrink: 0;
  width: 12px;
}

/* ===============================================
#news_archive（NEWS一覧）
=============================================== */
.news_archive_container {
  display: flex;
  align-items: flex-start;
  gap: 32px clamp(40px, 5.7276995305vw + 18.5211267606px, 101px);
}
@media (width <= 1023px) {
  .news_archive_container {
    flex-direction: column;
  }
}

.news_archive_sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  width: 220px;
  flex-shrink: 0;
  align-self: stretch;
}
@media (width <= 1023px) {
  .news_archive_sidebar {
    width: 100%;
  }
}

.news_archive_sticky {
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
}
@media (1024px <= width) {
  .news_archive_sticky {
    position: sticky;
    top: 40px;
  }
}

.news_archive_featured {
  display: block;
  width: 100%;
  position: relative;
  padding: 10px 0 10px 16px;
  border-top: 1px solid var(--color-purple);
  border-bottom: 1px solid var(--color-purple);
  color: var(--color-purple);
  text-align: left;
  cursor: pointer;
}
.news_archive_featured::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(10px + 0.5lh - 6px);
  width: 12px;
  aspect-ratio: 1;
  background: transparent url(./../img/icon-arrow_3.svg) no-repeat center center/contain;
}

.news_archive_nav_list {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.1877934272vw + 7.2957746479px, 10px) 1em;
}
@media (width <= 1023px) {
  .news_archive_nav_list {
    flex-wrap: wrap;
    flex-direction: row;
  }
}

.news_archive_nav_link {
  display: inline-block;
  position: relative;
  padding-left: 16px;
  line-height: 1.5;
}
.news_archive_nav_link::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(0.5lh - 5px);
  width: 12px;
  aspect-ratio: 1;
  background: transparent url(./../img/icon-arrow_1.svg) no-repeat center center/contain;
  scale: -1;
}
.news_archive_nav_link.is-active {
  color: var(--color-green);
}
.news_archive_nav_link.is-active::before {
  scale: 1;
  background-image: url(./../img/icon-arrow_4.svg);
}

.news_archive_main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-small);
  margin-top: clamp(3px, 0.3755868545vw + 1.5915492958px, 7px);
}

.news_archive_label {
  font-size: clamp(24px, 0.7511737089vw + 21.1830985915px, 32px);
  line-height: 1.8;
  margin-block: var(--leading-trim);
}

.news_archive_list {
  /* 注目記事（先頭固定表示）を非表示にした状態 */
}
.news_archive_list.is-featured-hidden .news_archive_item.is-featured {
  display: none;
}
.news_archive_list.is-featured-hidden {
  /* 非表示の注目記事に隣接する項目の紫罫線を戻す */
}
.news_archive_list.is-featured-hidden .news_archive_item.is-featured + .news_archive_item {
  border-top-color: var(--color-black);
}
.news_archive_list.is-featured-hidden {
  /* 最後の項目が注目記事のときは下罫線をリストで補う */
}
.news_archive_list.is-featured-hidden:has(> .news_archive_item.is-featured:last-child) {
  border-bottom: 1px solid var(--color-black);
}

.news_archive_item {
  border-top: 1px solid var(--color-black);
}
.news_archive_item:last-child {
  border-bottom: 1px solid var(--color-black);
}
.news_archive_item.is-featured {
  border-top-color: var(--color-purple);
}
.news_archive_item.is-featured:last-child {
  border-bottom-color: var(--color-purple);
}
.news_archive_item.is-featured .news_archive_link {
  color: var(--color-purple);
}
.news_archive_item.is-featured .news_archive_badge {
  background-color: var(--color-purple);
}
.news_archive_item.is-featured + .news_archive_item {
  border-top-color: var(--color-purple);
}

.news_archive_link {
  display: flex;
  align-items: center;
  padding-block: clamp(16px, 1.1267605634vw + 11.7746478873px, 28px);
}
@media (width <= 767px) {
  .news_archive_link {
    flex-wrap: wrap;
    gap: 12px 16px;
  }
}

.news_archive_date {
  flex-shrink: 0;
  width: 124px;
  padding-left: 7px;
}
@media (width <= 767px) {
  .news_archive_date {
    width: auto;
  }
}

.news_archive_badge-box {
  flex-shrink: 0;
  min-width: 133px;
  padding-right: 10px;
}
@media (width <= 767px) {
  .news_archive_badge-box {
    width: auto;
  }
}

.news_archive_badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  padding: 0 6px 1px 3px;
  background-color: var(--color-green);
  border-radius: 0 50vw 50vw 0;
  color: #fff;
  font-size: 14px;
  line-height: 1;
}

.news_archive_title {
  flex: 1;
  min-width: 0;
  margin-block: var(--leading-trim);
  font-feature-settings: "palt";
  font-kerning: normal;
}
@media (width <= 767px) {
  .news_archive_title {
    flex: none;
    width: 100%;
  }
}

.news_archive_pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-small);
}

.news_archive_pagination-arrow {
  flex-shrink: 0;
  width: 25px;
  height: 25px;
}
.news_archive_pagination-arrow[aria-hidden=true] {
  visibility: hidden;
  pointer-events: none;
}
.news_archive_pagination-arrow img {
  vertical-align: top;
}
.news_archive_pagination-arrow.next img {
  transform: scaleX(-1);
}

.news_archive_pagination_numbers {
  display: flex;
  align-items: center;
  gap: 2px;
}
.news_archive_pagination_numbers .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 25px;
  height: 25px;
  padding-bottom: 1px;
}
.news_archive_pagination_numbers .page-numbers.current {
  border: 1px solid var(--color-black);
  border-radius: 50%;
}
.news_archive_pagination_numbers .page-numbers.dots {
  pointer-events: none;
}

/* ===============================================
#トップ／対象者ナビ
=============================================== */
.home_audience {
  --col-gap: clamp(16px, 8.9201877934vw + -17.4507042254px, 111px);
  --row-gap: clamp(24px, 0.4694835681vw + 22.2394366197px, 29px);
  /* ラベル見え高（min-height - 負の margin-top）× 2行分 */
  --label-stack: calc((clamp(30px, 1.3145539906vw + 25.0704225352px, 44px) - clamp(10px, 2.3474178404vw + 1.1971830986px, 35px)) * 2);
  --audience-h: min(calc(100dvh - var(--space-x-small) * 2), clamp(660px, 9.3896713615vw + 624.7887323944px, 760px));
  padding-top: var(--space-xx-large);
  padding-bottom: var(--space-medium);
  background: #f5f5f5 url(./../img/home-audience-bg_1.webp) no-repeat left center/auto clamp(120px, 26.2910798122vw + 21.4084507042px, 400px);
  border-radius: 8px;
  margin: var(--space-x-small) var(--space-x-small) 0;
  height: calc(100dvh - var(--space-x-small) * 2);
  max-height: clamp(660px, 9.3896713615vw + 624.7887323944px, 760px);
}
.home_audience .inner {
  width: calc(100% - var(--col-gap) * 2 - var(--space-x-small) * 2);
}

.home_audience_contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--row-gap) var(--col-gap);
}

.home_audience_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(33.3333333333% - var(--col-gap) * 2 / 3);
}
.home_audience_item img {
  /* --audience-h（100dvh / fluid 上限）内に 2 行分が収まるよう fluid と vh 計算の小さい方を採用 */
  height: min(clamp(138px, 15.2112676056vw + 80.9577464789px, 300px), (var(--audience-h) - var(--space-xx-large) - var(--space-medium) - var(--row-gap) - var(--label-stack)) / 2);
  width: auto;
}
@media (width <= 1023px) {
  .home_audience_item {
    width: calc(50% - var(--col-gap) / 2);
  }
  .home_audience_item img {
    /* 2 列 × 3 行 */
    height: min(clamp(138px, 15.2112676056vw + 80.9577464789px, 300px), (var(--audience-h) - var(--space-xx-large) - var(--space-medium) - var(--row-gap) * 2 - (clamp(30px, 1.3145539906vw + 25.0704225352px, 44px) - clamp(10px, 2.3474178404vw + 1.1971830986px, 35px)) * 3) / 3);
  }
}

.home_audience_label {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 85.67%;
  min-height: clamp(30px, 1.3145539906vw + 25.0704225352px, 44px);
  margin-top: calc(clamp(10px, 2.3474178404vw + 1.1971830986px, 35px) * -1);
  padding: 2px 5px;
  border-radius: 50vw;
  color: #fff;
  font-size: clamp(11px, 0.6572769953vw + 8.5352112676px, 18px);
  line-height: 1.5;
  text-align: center;
  position: relative;
}
.home_audience_label.en {
  font-weight: 500;
}
.home_audience_label > span {
  position: relative;
  z-index: 2;
}
.home_audience_label:before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #4b4b4b;
  border-radius: 50vw;
  mix-blend-mode: multiply;
  z-index: 1;
}

/* ===============================================
#トップ／リード文
=============================================== */
.home_lead {
  text-align: center;
  padding-block: var(--space-xx-large-2);
}

.home_lead_title {
  font-size: clamp(22px, 1.3145539906vw + 17.0704225352px, 36px);
  font-weight: 500;
  line-height: 2;
  margin-block: var(--leading-trim);
}

.home_lead_text {
  font-size: clamp(15px, 0.2816901408vw + 13.9436619718px, 18px);
  line-height: 2.2;
  margin-block: var(--leading-trim);
}

/* ===============================================
#トップ／インフォメーション枠（TOPICS・NEWS・関連リンク）
=============================================== */
.home_info {
  display: flex;
  flex-direction: column;
  gap: var(--space-xx-large);
  padding-block: var(--space-xx-large);
  margin-inline: var(--space-x-small);
  background-color: #f5f5f5;
  border-radius: 8px;
}

/* ===============================================
#トップ／TOPICS
=============================================== */
.home_topics {
  gap: var(--space-medium);
}

.home_topics_slider {
  display: flex;
  flex-direction: column;
  gap: var(--space-card-gap);
}

.home_topics_slider .splide__slide a {
  display: block;
}

.home_topics_controls {
  display: flex;
  justify-content: center;
  gap: 8px;
  line-height: 1;
}
.home_topics_controls button {
  width: clamp(20px, 0.4694835681vw + 18.2394366197px, 25px);
}
.home_topics_controls .splide__arrow--next img {
  transform: scaleX(-1);
}

/* ===============================================
#トップ／NEWS
=============================================== */
.home_news .inner {
  gap: var(--space-medium);
}
.home_news .news_archive_sidebar {
  margin-top: 16px;
}
@media (width <= 1023px) {
  .home_news .news_archive_sidebar {
    margin-top: 0;
  }
}
.home_news .news_archive_container {
  gap: var(--space-medium);
  justify-content: space-between;
}
.home_news .btn {
  margin-top: auto;
  align-self: flex-start;
}
.home_news .news_archive_nav_link.is-active {
  color: var(--color-purple);
}
.home_news .news_archive_nav_link.is-active::before {
  scale: 1;
  background-image: url(./../img/icon-arrow_3.svg);
}
.home_news .news_archive_item {
  border-bottom: 1px solid var(--color-black);
}
.home_news .news_archive_item:not(:first-child) {
  border-top: none;
}
.home_news .news_archive_item.is-featured {
  border-bottom-color: var(--color-purple);
}
.home_news .news_archive_item.is-featured .news_archive_badge {
  background-color: transparent;
}
.home_news .news_archive_badge {
  min-width: 69px;
  height: 24px;
  padding: 0 8px;
  background-color: transparent;
  border: 1px solid currentColor;
  border-radius: 0;
  color: inherit;
  font-feature-settings: "palt";
  font-kerning: normal;
}
.home_news .news_archive_empty {
  padding-block: clamp(16px, 1.1267605634vw + 11.7746478873px, 28px);
  list-style: none;
}

.home_news_panel {
  flex: 1;
  min-width: 0;
  padding: clamp(20px, 1.8779342723vw + 12.9577464789px, 40px) clamp(8px, 0.7511737089vw + 5.1830985915px, 16px) clamp(20px, 1.8779342723vw + 12.9577464789px, 40px) clamp(20px, 1.8779342723vw + 12.9577464789px, 40px);
  background-color: #fff;
  border-radius: 16px;
  max-width: 920px;
}
.home_news_panel .news_archive_list {
  overflow-y: scroll;
  max-height: 612px;
  padding-right: clamp(20px, 4.1314553991vw + 4.5070422535px, 64px);
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: var(--color-purple) transparent;
}
.home_news_panel .news_archive_list::-webkit-scrollbar {
  width: 10px;
  -webkit-appearance: none;
}
.home_news_panel .news_archive_list::-webkit-scrollbar-thumb {
  background-color: var(--color-purple);
  border-radius: 50vw;
}
.home_news_panel .news_archive_list::-webkit-scrollbar-track {
  background: transparent;
}

/* ===============================================
#トップ／関連リンク
=============================================== */
.home_links_contents {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-medium);
}

.home_links_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-card-gap);
  width: clamp(220px, 7.5117370892vw + 191.8309859155px, 300px);
}
.home_links_item img {
  border-radius: 16px;
}

.home_links_label {
  font-size: clamp(15px, 0.2816901408vw + 13.9436619718px, 18px);
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
  margin-block: var(--leading-trim);
}

/* ===============================================
#トップ／リンクバナー
=============================================== */
.home_banners {
  padding-top: var(--space-xx-large-2);
  padding-bottom: var(--space-medium);
}

.home_banners_contents {
  --row-gap: clamp(24px, 2.2535211268vw + 15.5492957746px, 48px);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--row-gap) var(--space-card-gap);
}

.home_banners_item {
  display: block;
  width: calc(25% - var(--space-card-gap) * 3 / 4);
}
@media (width <= 767px) {
  .home_banners_item {
    width: calc(50% - var(--space-card-gap) / 2);
  }
}

/* ===============================================
#英語カテゴリートップ
=============================================== */
.page_cat_top_en .page_cat_top_en_cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
}
.page_cat_top_en .page_cat_top_en_card {
  display: flex;
  align-items: center;
  gap: clamp(10px, 2.8169014085vw + -0.5633802817px, 40px);
  width: calc(50% - clamp(16px, 0.7511737089vw + 13.1830985915px, 24px) / 2);
  min-height: clamp(160px, 6.2910798122vw + 136.4084507042px, 227px);
  padding: clamp(16px, 1.5023474178vw + 10.3661971831px, 32px);
  background-color: #fff;
  border-radius: 16px;
}
@media (width <= 1023px) {
  .page_cat_top_en .page_cat_top_en_card {
    width: 100%;
  }
}
.page_cat_top_en .page_cat_top_en_card span {
  flex: 1;
  min-width: 0;
  font-size: clamp(14px, 0.1877934272vw + 13.2957746479px, 16px);
  font-weight: 500;
  line-height: 1.8;
}
.page_cat_top_en .page_cat_top_en_card_thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(110px, 5.3521126761vw + 89.9295774648px, 167px);
}
.page_cat_top_en .page_cat_top_en_card_thumb img {
  width: auto;
  max-width: 100%;
  max-height: clamp(90px, 2.8169014085vw + 79.4366197183px, 120px);
  object-fit: contain;
}
.page_cat_top_en .page_cat_top_en_card_thumb .nav_image {
  max-width: var(--nav-image-width);
}
@media (width <= 767px) {
  .page_cat_top_en .page_cat_top_en_card_thumb .nav_image {
    max-width: max(0px, var(--nav-image-width) - 20px);
  }
}

.dandi-column-link {
  position: relative;
}

.dandi-column-link-overlay {
  position: absolute;
  z-index: 1;
  inset: 0;
}

/* ===============================================
#page_policy
=============================================== */
.page_policy_content {
  max-width: 840px;
  width: 100%;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  /* 見出し→本文の視覚ギャップ（Figma: 字面間44px ≈ 1lh） */
  gap: var(--space-small);
}
.page_policy_content > :first-child {
  margin-top: 0;
}
.page_policy_content > :last-child {
  margin-bottom: 0;
}
.page_policy_content > h2 {
  color: var(--color-purple);
  font-weight: 700;
  margin-block: var(--leading-trim);
  /* セクション間56px = gap(32) + 24（SPは space-medium 相当に寄せる） */
}
.page_policy_content > h2:not(:first-child) {
  padding-top: clamp(16px, 0.7511737089vw + 13.1830985915px, 24px);
}
.page_policy_content > h2 a {
  color: inherit;
}
.page_policy_content > p {
  margin-block: var(--leading-trim);
}
.page_policy_content > .wp-block-group {
  /* Figma: 連絡先ブロックは16pxインデント、導入文から字面間76px ≈ gap+32 */
  padding-left: 1em;
  padding-top: var(--space-small);
  margin-block: 0;
}
.page_policy_content > .wp-block-group p {
  margin-block: var(--leading-trim);
}
.page_policy_content {
  /* サイトマップ：フッター CONTENTS と同構成を policy 余白で表示 */
}
.page_policy_content > .page_sitemap_list {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
  padding-left: 1.1em;
  margin-block: var(--leading-trim);
  line-height: 1.8;
}
.page_policy_content iframe {
  width: 100%;
}
.page_policy_content .page_sitemap_list_item-label {
  font-weight: 700;
}
.page_policy_content .page_sitemap_list_item-nested {
  padding-left: 1.1em;
}
.page_policy_content .wp-block-image {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.page_policy_content .wp-block-image figcaption {
  margin: 0;
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  margin-block: var(--leading-trim);
}

/* ===============================================
#contact_form（お問い合わせフォーム／Contact Form 7）
=============================================== */
.contact_form {
  display: flex;
  flex-direction: column;
  gap: clamp(48px, 3.0046948357vw + 36.7323943662px, 80px);
  max-width: 900px;
  margin-inline: auto;
  font-size: 16px;
  letter-spacing: 0.8px;
}

.contact_form_fields,
.contact_form_footer {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 2.2535211268vw + 23.5492957746px, 56px);
}

.contact_form_group {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.3755868545vw + 10.5915492958px, 16px);
}

.contact_form_row {
  display: grid;
  gap: 8px;
}
@media (768px <= width) {
  .contact_form_row {
    grid-template-columns: 152px 1fr;
    align-items: start;
  }
}

.contact_form_label {
  line-height: 2;
}
.contact_form_label:has(br) {
  line-height: 1.8;
}
@media (768px <= width) {
  .contact_form_label {
    padding-top: 8px;
  }
}

.contact_form_required {
  color: var(--color-required);
}

.contact_form_field {
  min-width: 0;
}

/* 補足文を伴う項目（添付ファイル）は入力欄と補足文を縦積みにする */
.contact_form_field:has(.contact_form_note) {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.contact_form_input,
.contact_form_textarea {
  display: block;
  width: 100%;
  padding: 8px 16px;
  background-color: var(--color-field-bg);
  line-height: 2;
}

.contact_form_input {
  height: clamp(44px, 0.3755868545vw + 42.5915492958px, 48px);
}

.contact_form_textarea {
  height: clamp(140px, 1.8779342723vw + 132.9577464789px, 160px);
  resize: vertical;
}

.contact_form_file {
  display: block;
  width: 100%;
  padding: 8px 16px;
  background-color: var(--color-field-bg);
  font-size: clamp(13px, 0.0938967136vw + 12.6478873239px, 14px);
  line-height: 2;
}

.contact_form_file::file-selector-button {
  padding: 4px 16px;
  background-color: #fff;
  border: 1px solid var(--color-green);
  border-radius: 4px;
  color: var(--color-green);
  font-family: inherit;
  font-size: inherit;
  font-weight: 600;
  line-height: 1.8;
  cursor: pointer;
  transition: opacity var(--duration);
}

.contact_form_file::file-selector-button:hover {
  opacity: 0.7;
}

/* 添付ファイル欄の補足文（確認画面には出さないので avoid-confirm を併用する） */
.contact_form_note {
  color: var(--color-gray);
  font-size: clamp(12px, 0.0938967136vw + 11.6478873239px, 13px);
  line-height: 1.8;
}

.contact_form_input:focus-visible,
.contact_form_textarea:focus-visible,
.contact_form_file:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: -2px;
}

.contact_form_consent {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(72px, 1.5023474178vw + 66.3661971831px, 88px);
  padding: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px) 10px;
  background-color: #fff;
  border: 2px solid var(--color-green);
  line-height: 1.8;
  margin-inline: auto;
  max-width: 580px;
  width: 100%;
  /* 確認画面での項目名だけに使う非表示ラベル（入力画面には表示しない） */
}
.contact_form_consent .contact_form_consent-title {
  display: none;
}
.contact_form_consent {
  /* CF7 既定の左マージン・ラベル前後の空白文字を打ち消す */
}
.contact_form_consent .wpcf7-list-item {
  margin-inline: 0;
}
.contact_form_consent .wpcf7-list-item-label::before,
.contact_form_consent .wpcf7-list-item-label::after {
  content: none;
}
.contact_form_consent .wpcf7-list-item label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
.contact_form_consent a {
  color: var(--color-green);
  font-weight: 700;
  text-decoration: underline;
}
.contact_form_consent a:after {
  display: none !important;
}
.contact_form_consent input[type=checkbox] {
  position: relative;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background-color: #fff;
  border: 1px solid var(--color-black);
  appearance: none;
  cursor: pointer;
}
.contact_form_consent input[type=checkbox]:checked::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 4px;
  width: 6px;
  height: 11px;
  border-right: 2px solid var(--color-green);
  border-bottom: 2px solid var(--color-green);
  transform: rotate(45deg);
}

.contact_form_actions {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.1267605634vw + 7.7746478873px, 24px);
}

.contact_form_btn,
.wpcf7cp-cfm-edit-btn,
.wpcf7cp-cfm-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(150px, 8.7323943662vw + 117.2535211268px, 243px);
  height: clamp(48px, 0.7511737089vw + 45.1830985915px, 56px);
  padding: 12px 24px;
  background-color: var(--color-green);
  border-radius: 10px;
  color: #fff !important;
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 1px;
  text-align: center;
  transition: opacity var(--duration);
  text-decoration: none !important;
}
.contact_form_btn[disabled],
.wpcf7cp-cfm-edit-btn[disabled],
.wpcf7cp-cfm-submit-btn[disabled] {
  opacity: 0.5;
}
.contact_form_btn[disabled]:hover,
.wpcf7cp-cfm-edit-btn[disabled]:hover,
.wpcf7cp-cfm-submit-btn[disabled]:hover {
  opacity: 0.5;
}

.contact_form_btn.reset,
.wpcf7cp-cfm-edit-btn {
  background-color: var(--color-gray);
}

.contact_form_btn:hover,
.wpcf7cp-cfm-edit-btn:hover,
.wpcf7cp-cfm-submit-btn:hover {
  opacity: 0.7;
}

.contact_form .wpcf7-spinner {
  position: absolute;
  top: 100%;
  left: 50%;
  translate: -50% 8px;
}

.contact_form .wpcf7-not-valid-tip {
  padding-top: 4px;
  color: #d00;
  font-size: 14px;
  line-height: 1.6;
}

.wpcf7 form .wpcf7-response-output {
  max-width: 900px;
  margin-inline: auto;
  padding: 12px 16px;
  font-size: 14px;
  line-height: 1.8;
}

/* ===============================================
#wpcf7cpcnf（お問い合わせ確認画面／Confirm Plus Contact Form 7）
Figmaに確認画面のデザインがないため、入力画面のトークンを流用して構成する
=============================================== */
div#wpcf7cpcnf {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 2.2535211268vw + 23.5492957746px, 56px);
  max-width: 900px;
  margin-inline: auto;
  font-size: 16px;
  letter-spacing: 0.8px;
}

div#wpcf7cpcnf table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 8px 16px;
  /* プラグイン既定の下マージンを打ち消し、余白は親のgapで管理する */
  margin-block: 0;
}

div#wpcf7cpcnf th,
div#wpcf7cpcnf td {
  padding: 8px 16px;
  border-bottom: 0;
  line-height: 2;
  vertical-align: top;
}

div#wpcf7cpcnf th {
  width: 152px;
  padding-inline: 0;
  font-weight: 400;
}

div#wpcf7cpcnf td {
  width: auto;
  background-color: var(--color-field-bg);
}

@media (width <= 767px) {
  div#wpcf7cpcnf table {
    border-spacing: 0;
  }
  div#wpcf7cpcnf tr,
  div#wpcf7cpcnf th,
  div#wpcf7cpcnf td {
    display: block;
    width: 100%;
  }
  div#wpcf7cpcnf tr {
    padding-block: 0 16px;
  }
  div#wpcf7cpcnf th {
    padding: 0 0 8px;
  }
}
div#wpcf7cpcnf .wpcf7cp-btns {
  justify-content: center;
  gap: clamp(12px, 1.1267605634vw + 7.7746478873px, 24px);
  /* プラグイン既定の上マージンを打ち消し、余白は親のgapで管理する */
  margin-top: 0;
}

button.wpcf7cp-cfm-edit-btn,
button.wpcf7cp-cfm-submit-btn {
  /* ボタン文言が長いため固定幅ではなく最小幅で伸縮させる */
  width: auto;
  min-width: clamp(150px, 8.7323943662vw + 117.2535211268px, 243px);
  /* プラグイン既定の下マージンを打ち消す */
  margin-block: 0;
}

/* ===============================================
#contact_form_complete（お問い合わせ送信完了画面）
送信成功時に common.js が form へ付与する .is-contact-sent で入力フォームと切り替える。
CF7標準の .sent は送信直後の form.reset() で一時的に外れ、入力フォームがちらつくため使わない。
Figmaに完了画面のデザインがないため、入力画面のトークンを流用して構成する
=============================================== */
.contact_form_complete {
  display: none;
}

.wpcf7 form.is-contact-sent .contact_form {
  display: none;
}

/* 完了画面では、フォーム外（固定ページ本文・ページタイトル）も隠す */
.page_content:has(.wpcf7 form.is-contact-sent) > *:not(.wpcf7),
.page_main:has(.wpcf7 form.is-contact-sent) > .page_title {
  display: none;
}

.wpcf7 form.is-contact-sent .contact_form_complete {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(32px, 2.2535211268vw + 23.5492957746px, 56px);
  max-width: 900px;
  margin-inline: auto;
  text-align: center;
}

.contact_form_complete-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-medium);
}

.contact_form_complete-text {
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.8px;
}

/* 完了画面では独自メッセージを出すため、CF7既定の完了メッセージは視覚的に隠す。
   プラグインが送信後にこの要素へスクロールするので、位置を保つため display: none にはしない */
.wpcf7 form.is-contact-sent .wpcf7-response-output {
  visibility: hidden;
  height: 0;
  padding: 0;
  border-width: 0;
  margin-block: 0;
  overflow: hidden;
}

/* ===============================================
#支援・情報を一覧で見る（ライフステージ）
=============================================== */
.page_life_stage {
  --life-stage-label-w: 123px;
  --life-stage-col-gap: 19px;
  --life-stage-col2-w: clamp(470px, 3.5680751174vw + 456.6197183099px, 508px);
  --life-stage-col3-w: clamp(490px, 5.4460093897vw + 469.5774647887px, 548px);
  --life-stage-card-bleed: clamp(16px, 1.1267605634vw + 11.7746478873px, 28px);
  --life-stage-matrix-w: calc(
    var(--life-stage-label-w) + var(--life-stage-col2-w) + var(--life-stage-col3-w) + (var(--life-stage-col-gap) * 2)
  );
  display: flex;
  flex-direction: column;
  gap: clamp(40px, 3.7558685446vw + 25.9154929577px, 80px);
}
.page_life_stage .page_life_stage_title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 0.3755868545vw + 10.5915492958px, 16px);
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  padding: 16px clamp(20px, 1.1267605634vw + 15.7746478873px, 32px);
  background-color: #fff;
  border-radius: 40px 4px 40px 4px;
  font-size: clamp(20px, 1.8779342723vw + 12.9577464789px, 40px);
  font-weight: 500;
  line-height: 1.6;
}
.page_life_stage .page_life_stage_title img {
  width: clamp(40px, 1.5023474178vw + 34.3661971831px, 56px);
  height: auto;
  flex-shrink: 0;
  object-fit: contain;
}
.page_life_stage .page_life_stage_lead {
  max-width: 791px;
  margin-inline: auto;
  margin-block: var(--leading-trim);
  font-size: 16px;
  line-height: 2;
}
@media (768px <= width) {
  .page_life_stage .page_life_stage_lead {
    text-align: center;
  }
}
.page_life_stage {
  /* .inner.max-1200 を超え、main-contents 幅まで広げて 1200 マトリクスを収める */
}
.page_life_stage .page_life_stage_scroll {
  --life-stage-scroll-w: calc((var(--vw) * 100) - (var(--space-x-small) * 2));
  max-width: none;
  min-width: 0;
  padding-inline: var(--life-stage-card-bleed);
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
@media (1300px <= width) {
  .page_life_stage .page_life_stage_scroll {
    margin-inline: calc((100% - var(--life-stage-scroll-w)) / 2);
    width: var(--life-stage-scroll-w);
  }
}
.page_life_stage .page_life_stage_scroll {
  /* 行ラベル・カード（z-index: 2）より手前にヒントを出す */
}
.page_life_stage .page_life_stage_scroll .scroll-hint-icon-wrap {
  z-index: 10;
}
.page_life_stage .page_life_stage_matrix {
  position: relative;
  display: flex;
  flex-direction: column;
  width: var(--life-stage-matrix-w);
  min-width: var(--life-stage-matrix-w);
  max-width: var(--life-stage-matrix-w);
  margin-inline: auto;
  /* 色カラムを最終行より下へ伸ばす分（overflow 外にはみ出さない） */
  padding-bottom: 40px;
  /* 黄・青カラムは白カードより前面（リンク文言より背面） */
}
.page_life_stage .page_life_stage_matrix::before, .page_life_stage .page_life_stage_matrix::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  border-radius: 16px;
  pointer-events: none;
  z-index: 1;
}
.page_life_stage .page_life_stage_matrix::before {
  left: calc(var(--life-stage-label-w) + var(--life-stage-col-gap));
  width: var(--life-stage-col2-w);
  background-color: rgba(255, 216, 0, 0.15);
}
.page_life_stage .page_life_stage_matrix::after {
  right: 0;
  width: var(--life-stage-col3-w);
  background-color: rgba(0, 177, 197, 0.15);
}
.page_life_stage .page_life_stage_head {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: var(--life-stage-label-w) var(--life-stage-col2-w) var(--life-stage-col3-w);
  gap: 0 var(--life-stage-col-gap);
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  line-height: 1.8;
  text-align: center;
  height: 80px;
}
.page_life_stage .page_life_stage_head-systems {
  grid-column: 2;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page_life_stage .page_life_stage_head-info {
  grid-column: 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page_life_stage .page_life_stage_contents {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 1200px;
}
.page_life_stage .page_life_stage_row {
  /* z-index を付けない（スタッキングコンテキストを作らず、色カラムを前面に出せるようにする） */
  position: relative;
  display: grid;
  grid-template-columns: var(--life-stage-label-w) var(--life-stage-col2-w) var(--life-stage-col3-w);
  gap: 0 var(--life-stage-col-gap);
  align-items: flex-start;
  padding-block: clamp(20px, 0.7511737089vw + 17.1830985915px, 28px);
  border-radius: 16px;
}
.page_life_stage .page_life_stage_row::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--life-stage-card-bleed) * -1);
  right: calc(var(--life-stage-card-bleed) * -1);
  z-index: 0;
  background-color: #fff;
  border-radius: 16px;
}
.page_life_stage .page_life_stage_label {
  position: relative;
  z-index: 2;
  min-width: 0;
  margin-block: calc(16px + var(--leading-trim)) var(--leading-trim);
  font-size: clamp(16px, 0.3755868545vw + 14.5915492958px, 20px);
  line-height: 1.8;
}
.page_life_stage .page_life_stage_systems,
.page_life_stage .page_life_stage_info {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding-inline: clamp(12px, 2.6291079812vw + 2.1408450704px, 40px);
}
.page_life_stage .page_life_stage_col-title {
  display: none;
}
.page_life_stage .page_life_stage_links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  min-width: 0;
  width: 100%;
}
.page_life_stage .page_life_stage_link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  min-height: 50px;
  padding: 2px 14px 2px 10px;
  background-color: #fff;
  border-radius: 8px;
  font-size: 16px;
  line-height: 1.5;
}
.page_life_stage .page_life_stage_link-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  flex-shrink: 0;
}
.page_life_stage .page_life_stage_link-icon img {
  width: 48px;
  height: auto;
  object-fit: contain;
}
.page_life_stage .page_life_stage_link-text {
  min-width: 0;
  white-space: nowrap;
}
