@charset "UTF-8";
/**
 * PCファースト
 * - ベーススタイルは PC（メディアクエリなし）
 * - 上書きは @include mq(sp) など max-width で下方向へ
 * SWELL 目安: PC 960px / タブ 600px（front-page-editing.md）
 */
:root {
  --yzrh-rem-scale: 1;
}

@media screen and (max-width: 599px) {
  :root {
    --yzrh-rem-scale: 1.1851851852;
  }
}
/**
 * フルードコンテナ（SWELL の .l-container と同系）
 * max-width: --container_size + 左右 pad、pad は --swl-pad_container
 */
/**
 * セクション背景の「もや」（ノイズ GIF）
 * - 親の ::before に載せ、子コンテンツより背面に回す
 * - isolation + z-index: -1 で背景色の上・中身の下に固定
 * - pointer-events: none でクリックを妨げない
 * 使い方: 背景色付きセクションに @include haze-overlay;
 */
.sp-only {
  display: none;
}
@media screen and (max-width: 959px) {
  .sp-only {
    display: block;
  }
}

.is-sp {
  display: none;
}
@media screen and (max-width: 959px) {
  .is-sp {
    display: revert;
  }
}

.is-pc {
  display: block;
}
@media screen and (max-width: 959px) {
  .is-pc {
    display: none;
  }
}

.tab-only {
  display: none;
}
@media screen and (min-width: 600px) and (max-width: 959px) {
  .tab-only {
    display: block;
  }
}

.pc-only {
  display: block;
}
@media screen and (max-width: 959px) {
  .pc-only {
    display: none;
  }
}

:root {
  --white: #ffffff;
  --black: #000;
  --leading-trim: calc((1em - 1lh) / 2);
  --lineseed: "LINE Seed JP", sans-serif;
  --anton: "Anton", sans-serif;
  --notosans: "Noto Sans JP", "Noto Sans", sans-serif;
  --sidebar-nav-width: 236px;
  --header-bg: #0f3c3c;
  --accent-teal: #2ba0a3;
  --btn-mint: #56f0e1;
  --text-dark: #171717;
  --section-gray: #f0f0f0;
  --section-gray-light: #f5f5f5;
}

/**
 * フォントは Google Fonts（functions.php の yzrh-fonts）で読み込み
 * - Anton
 * - LINE Seed JP
 * - Noto Sans JP
 */
/**
 * SWELL 親テーマとの衝突を避けるため、破壊的なグローバル reset は置かない。
 * 必要なときだけコンポーネント／ページ単位で箱のスタイルを足す。
 */
/**
 * SWELL 子テーマ向け foundation
 * ※ style.css / カスタマイザー追加 CSS から一旦集約。不要なものは後で削る。
 */
body {
  font-family: var(--lineseed);
  transition: background 0.3s ease-in;
}

/* リンク要素の下線を非表示にする */
a {
  text-decoration: none;
  transition: 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  a:hover {
    transition: 0.3s;
  }
}

.palt {
  font-feature-settings: "palt";
}

.material-icons {
  vertical-align: middle;
  margin-right: 8px;
}

/* 8px 間隔を追加（既存追加 CSS。スコープが広いので要見直し候補） */
span {
  margin-top: 6px;
  margin-bottom: 6px;
}

/**
 * 自前セクション用フルードコンテナ
 * SWELL の .l-container と同じ考え方（最大幅あり＋内側が流動）
 */
.l-fluid {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
}

/**
 * TOP 初回ローディング（旧 style.css から移行）
 */
#loader_wrap {
  z-index: 999;
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  top: 0;
  background: var(--header-bg);
  pointer-events: none;
  transition: all 0.3s;
}

.loader {
  width: 40%;
  height: 80vh;
  background: url("https://directors-forest.com/wp-content/uploads/2026/08/logo.png") var(--header-bg);
  background-repeat: no-repeat;
  background-position: 50%;
  background-size: contain;
  opacity: 0;
  animation: blinkAnime 3s infinite linear;
}
@media screen and (max-width: 959px) {
  .loader {
    width: 80%;
  }
}

@keyframes blinkAnime {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}
/**
 * ダークモードトグル／色補正（旧 style.css から移行）
 */
/*--------------------------------------
ダークモードトグル
--------------------------------------*/
.mode-wrap #mode-toggle {
  display: none;
}

.mode-wrap #mode-toggle + label {
  font-size: 1rem;
  display: flex;
  height: 2em;
  width: 4em;
  box-sizing: border-box;
  border-radius: 1em;
  background-size: auto 8em;
  background-position: bottom;
  background-image: linear-gradient(180deg, #021037 0%, #20206a 19%, #4184b1 66%, #62e7f7 100%);
  transition: 0.2s;
  border: 0.125em solid #eef3f6;
  overflow: hidden;
  cursor: pointer;
}

.mode-wrap #mode-toggle + label span {
  background: #fffad8;
  border-radius: 50%;
  height: 2em;
  width: 2em;
  transform: translateX(-0.125em) scale(0.65);
  transition: 0.2s;
  cursor: pointer;
  box-shadow: 0 0 0.25em 0.0625em #fbee8d, 0 0 2em 0 #ffeb3b, inset -0.25em -0.25em 0 0 #fbee8e, inset -0.3125em -0.3125em 0 0.625em #fff5b2;
  margin-top: -0.125em;
}

.mode-wrap #mode-toggle:checked + label {
  background-position: top;
  border-color: #1a242f;
}

.mode-wrap #mode-toggle:checked + label span {
  background: transparent;
  transform: translateX(calc(100% - 0.125em)) scale(0.65);
  box-shadow: inset -0.1875em -0.1875em 0 0 #fbe7ef, inset -0.5625em -0.5625em 0 0 #fffff7;
}

/*--------------------------------------
ダークモード
--------------------------------------*/
.darkmode {
  --color_main: #07263c;
  --color_text: #f7f7f7;
  --color_link: #2f95d8;
  --color_gray: #333;
  --color_htag: var(--color_main);
  --color_bg: #1d1d1d;
  --color_header_bg: #1d1d1d;
  --color_header_text: #ffffff;
  --color_footer_bg: #1d1d1d;
  --color_footer_text: #ffffff;
}

/*--------------------------------------
色調整
--------------------------------------*/
.darkmode #body_wrap #breadcrumb {
  background: var(--color_bg);
}

.p-indexModal__inner {
  background: var(--color_bg);
  color: var(--color_text);
  opacity: 0.8;
}

.darkmode .c-balloon__text {
  filter: brightness(0.7) saturate(150%) contrast(150%);
}

.darkmode p[class*=is-style] {
  filter: brightness(0.7) saturate(150%) contrast(150%);
}

.darkmode .is-style-crease {
  color: var(--swl-text_color--black);
}

.darkmode .is-style-desktop > .wp-block-group__inner-container,
.darkmode .is-style-browser_mac > .wp-block-group__inner-container {
  background: var(--color_bg);
  color: var(--color_text);
}

.darkmode .post_content .wp-block-image img,
.darkmode .c-postThumb__figure .c-postThumb__img,
.darkmode .p-articleThumb__img {
  filter: brightness(0.8) saturate(120%);
}

.darkmode .c-fixBtn {
  background: var(--main-color);
  color: var(--color_text);
}

.c-shareBtns__btn:not(:hover) .c-shareBtns__icon,
.-fix .c-shareBtns__btn:not(:hover) {
  filter: brightness(0.9);
}

.darkmode .p-spMenu__inner::before {
  background: var(--color_bg);
  opacity: 0.9;
}

.darkmode .p-spMenu__body {
  color: var(--color_text);
}

.darkmode .p-spMenu__closeBtn {
  color: var(--color_text);
}

.darkmode .p-spMenu__body::-webkit-scrollbar {
  background: rgba(255, 255, 255, 0.1);
  height: 24px;
  border-radius: 24px;
}

/**
 * ヘッダー／グローバルナビ（カスタマイザー追加 CSS から移行）
 * ※ PC 固定サイドバー型。不要になれば削る。
 */
.-series .l-header__inner,
.-series .l-fixHeader__inner {
  align-items: center;
  padding-inline: calc(1.875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media (max-width: 1200px) {
  .-series .l-header__inner,
  .-series .l-fixHeader__inner {
    padding-inline: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

.-img .c-headLogo__link {
  padding: 0;
}

.-series .c-headLogo {
  margin-right: 0;
}

.-series .l-header__logo,
.-series .l-fixHeader__logo {
  padding-block: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-right: 0;
}

.l-header .l-container,
.l-fixHeader .l-container {
  max-width: 100%;
}

/* メニュー内のリンク下線を非表示 */
.l-header .c-gnav a,
.l-fixHeader .c-gnav a {
  text-decoration: none;
}
.l-header .c-gnav a:hover,
.l-fixHeader .c-gnav a:hover {
  text-decoration: none;
}

/* gnav 内の複数ボタン（PC・通常ヘッダー／固定ヘッダー共通） */
.l-header__gnav.c-gnavWrap,
.l-fixHeader__gnav.c-gnavWrap {
  display: flex;
  align-items: center;
  padding-block: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-inline: calc(1.1875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(62.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  box-shadow: calc(0.3125 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.3125 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.875 * var(--yzrh-rem-scale, 1) * 1rem) rgba(0, 0, 0, 0.2);
  background: #fff;
}
@media screen and (max-width: 959px) {
  .l-header__gnav.c-gnavWrap,
  .l-fixHeader__gnav.c-gnavWrap {
    display: none;
  }
}

/* メニュー項目間の仕切り（Figma: /） */
.c-gnav > .menu-item {
  position: relative;
}
.c-gnav > .menu-item:not(:first-child)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(-50%, -50%);
  width: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.84375 * var(--yzrh-rem-scale, 1) * 1rem);
  background: url(../images/gnav-divider.webp) no-repeat center/contain;
  pointer-events: none;
}

.c-gnav > .menu-item > a {
  padding-inline: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media (max-width: 1200px) {
  .c-gnav > .menu-item > a {
    padding-inline: calc(0.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

.c-gnav > .menu-item > a .ttl {
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
}
@media (max-width: 1200px) {
  .c-gnav > .menu-item > a .ttl {
    font-size: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

/* サブメニュー付き親は遷移させず、クリックでドロップダウン（PC gnav 専用） */
.c-gnav > .menu-item-has-children > a {
  cursor: pointer;
}

/* サブメニュー付き親項目の右キャレット（Figma: 下矢印→開時は上向き） */
.c-gnav > .menu-item-has-children > a .ttl {
  display: inline-flex;
  align-items: center;
  gap: calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-gnav > .menu-item-has-children > a .ttl::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.5625 * var(--yzrh-rem-scale, 1) * 1rem);
  background: url(../images/gnav-submenu-caret.svg) no-repeat center/contain;
  transform: rotate(180deg);
  transition: transform 0.2s ease;
}

.c-gnav > .menu-item-has-children.is-open > a .ttl::after {
  transform: rotate(0deg);
}

/* PC クリック時ドロップダウン（Figma: 白角丸＋区切り線＋右矢印） */
.c-gnav > .menu-item > .sub-menu {
  top: 100%;
  left: 50%;
  margin-top: 0;
  padding: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  width: max-content;
  min-width: calc(11.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  list-style: none;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  text-align: left;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(calc(0.25 * var(--yzrh-rem-scale, 1) * 1rem));
  transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s ease;
}
.c-gnav > .menu-item > .sub-menu::before {
  content: "";
  position: absolute;
  inset: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  border-radius: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  background: #fff;
  box-shadow: calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem) rgba(204, 204, 204, 0.2);
  z-index: 0;
  pointer-events: none;
}
.c-gnav > .menu-item > .sub-menu > .menu-item {
  position: relative;
  z-index: 1;
  margin: 0 calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-gnav > .menu-item > .sub-menu > .menu-item:first-child {
  padding-top: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-gnav > .menu-item > .sub-menu > .menu-item:last-child {
  padding-bottom: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-gnav > .menu-item > .sub-menu > .menu-item:not(:last-child) {
  padding-bottom: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-bottom: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  border-bottom: 1px solid #eee;
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: calc(-0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  text-decoration: none;
  background: none;
  white-space: nowrap;
  transition: background-color 0.15s ease;
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a::before {
  content: none !important;
  display: none !important;
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  background: url(../images/gnav-submenu-arrow.svg) no-repeat center/calc(0.5625 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  transform: rotate(-45deg);
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a:hover {
  background: var(--section-gray-light, #f5f5f5);
  text-decoration: none;
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a .ttl {
  position: static;
  left: auto;
  display: block;
  font: inherit;
  color: inherit;
  line-height: inherit;
  transition: none;
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a .ttl::after {
  content: none;
  display: none;
}
.c-gnav > .menu-item > .sub-menu > .menu-item > a i,
.c-gnav > .menu-item > .sub-menu > .menu-item > a [class*=icon-] {
  display: none !important;
}
.c-gnav > .menu-item > .sub-menu > .menu-item .c-submenuToggleBtn {
  display: none;
}
.c-gnav > .menu-item > .sub-menu > .menu-item .sub-menu {
  display: none;
}

/* SWELL 本体のホバー展開を打ち消し */
.c-gnav > .menu-item:hover > .sub-menu,
.c-gnav > .menu-item:focus-within > .sub-menu {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-50%) translateY(calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem));
}

/* クリックで付与する .is-open でのみ展開 */
.c-gnav > .menu-item.is-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem));
}

.l-header__btns {
  display: flex;
  align-items: center;
  margin-left: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  flex-shrink: 0;
}

.c-headerBtns {
  display: flex;
  align-items: center;
  gap: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-headerBtns__item {
  margin: 0;
}
.c-headerBtns__item.-secondary .c-headerBtns__link {
  background: #05a3b1;
}
.c-headerBtns__item.-third .c-headerBtns__link {
  background: #ff74b0;
}
.c-headerBtns__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(0.125 * var(--yzrh-rem-scale, 1) * 1rem);
  min-height: calc(2.40625 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(62.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.5714285714;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.25s ease;
  position: relative;
  background: #5e86ea;
  color: #fff;
  box-sizing: border-box;
}
@media screen and (max-width: 1200px) {
  .c-headerBtns__link {
    font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-headerBtns__link.-external::after, .c-headerBtns__link.-internal::after {
  content: "";
  display: block;
  width: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  flex-shrink: 0;
}
.c-headerBtns__link.-external::after {
  background: url(../images/header-btn-arrow.svg) no-repeat center/calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-headerBtns__link.-internal::after {
  background: url(../images/header-btn-internal-arrow.png) no-repeat center/calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-headerBtns__link:hover {
  text-decoration: none;
  opacity: 0.8;
}

/**
 * SP ヘッダー右端アクション＆ドロワー
 * Figma: node 27:30（閉じ）/ 28:50（開き）
 */
/* ---------- SP ヘッダー右端 ---------- */
.l-header__spActions {
  display: none;
  align-items: center;
  gap: calc(0.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-left: auto;
  flex-shrink: 0;
}
@media screen and (max-width: 959px) {
  .l-header__spActions {
    display: flex;
  }
}

.c-spHeaderJoin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(0.25 * var(--yzrh-rem-scale, 1) * 1rem);
  min-height: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.5625 * var(--yzrh-rem-scale, 1) * 1rem) calc(1 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.5625 * var(--yzrh-rem-scale, 1) * 1rem) calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(62.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  background: #05a3b1;
  color: #fff;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.3125 * var(--yzrh-rem-scale, 1) * 1rem) rgba(204, 204, 204, 0.1);
  box-sizing: border-box;
}
.c-spHeaderJoin.-external::after, .c-spHeaderJoin.-internal::after {
  content: "";
  display: block;
  width: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  flex-shrink: 0;
}
.c-spHeaderJoin.-external::after {
  background: url(../images/header-btn-arrow.svg) no-repeat center/contain;
}
.c-spHeaderJoin.-internal::after {
  background: url(../images/header-btn-internal-arrow.png) no-repeat center/contain;
}
.c-spHeaderJoin:hover {
  text-decoration: none;
  opacity: 0.85;
}

/* ---------- 一体化ハンバーガー（Figma SVG） ---------- */
.c-spMenuTrigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  line-height: 0;
}
.c-spMenuTrigger__icon {
  display: block;
  width: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.875 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: contain;
  pointer-events: none;
}

/* ---------- 閉じるボタン（Figma SVG） ---------- */
.c-spMenuClose {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  line-height: 0;
}
.c-spMenuClose__icon {
  display: block;
  width: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: contain;
  pointer-events: none;
}

/* ---------- ドロワー本体 ---------- */
.p-spMenu__inner {
  background: #fafafa !important;
  width: 100% !important;
  max-width: 100%;
  padding-top: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem) !important;
  box-shadow: none;
}
.p-spMenu__inner::before {
  display: none;
}
.p-spMenu__closeBtn {
  position: absolute;
  top: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  right: calc(1 * var(--yzrh-rem-scale, 1) * 1rem) !important;
  left: auto !important;
  z-index: 2;
  width: auto !important;
  height: auto !important;
  text-align: right;
  line-height: 0;
}
.p-spMenu__closeBtn .c-iconBtn {
  display: none;
}
.p-spMenu__body {
  padding: calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(3 * var(--yzrh-rem-scale, 1) * 1rem) !important;
  color: #171717;
}
.p-spMenu__search {
  margin-bottom: calc(2.25 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-spMenu__search .c-searchForm {
  position: relative;
}
.p-spMenu__search .c-searchForm__s {
  height: calc(2.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  border: 1px solid #2ba0a3;
  border-radius: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem);
  background: #fff;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  line-height: 1.4;
  color: #171717;
  box-sizing: border-box;
}
.p-spMenu__search .c-searchForm__s::placeholder {
  color: rgba(23, 23, 23, 0.45);
}
.p-spMenu__search .c-searchForm__s:focus {
  outline: none;
  box-shadow: 0 0 0 calc(0.125 * var(--yzrh-rem-scale, 1) * 1rem) rgba(5, 163, 177, 0.25);
}
.p-spMenu__search .c-searchForm__submit {
  right: 0;
  top: 0;
  transform: none;
  width: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  border: 0 !important;
  border-radius: 0 calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) 0 !important;
  background: #05a3b1 !important;
  color: transparent;
  font-size: 0;
}
.p-spMenu__search .c-searchForm__submit::before {
  content: "" !important;
  display: block;
  width: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 auto;
  background: url(../images/sp-menu-search.webp) no-repeat center/contain;
  color: transparent;
  font-size: 0;
  speak: never;
}
.p-spMenu__nav {
  margin-bottom: calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-spMenu__nav .c-widget__title,
.p-spMenu__nav .c-widget__title.-spmenu {
  display: none;
}
.p-spMenu__services {
  margin-bottom: calc(2.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-spMenu__servicesLabel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 calc(1.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  border: 1px solid #171717;
  border-radius: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem);
  background: #fff;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  color: #171717;
}
.p-spMenu__servicesList {
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-spMenu__servicesItem {
  margin: 0;
  border-bottom: 1px solid #eee;
}
.p-spMenu__servicesItem:first-child .p-spMenu__servicesLink {
  padding-top: 0;
  padding-bottom: calc(0.6875 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-spMenu__servicesLink {
  display: flex;
  flex-direction: column;
  gap: calc(0.125 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(1.0625 * var(--yzrh-rem-scale, 1) * 1rem) 0 calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  text-decoration: none;
  color: #171717;
}
.p-spMenu__servicesLink:hover {
  text-decoration: none;
  opacity: 0.75;
}
.p-spMenu__servicesDesc {
  margin: 0;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 400;
  line-height: 1.6;
  color: #171717;
}
.p-spMenu__servicesRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 100%;
  margin: 0;
}
.p-spMenu__servicesRow::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  background: url(../images/sp-menu-arrow.svg) no-repeat center/contain;
}
.p-spMenu__servicesTitle {
  margin: 0;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
}
.p-spMenu__ctas {
  display: flex;
  justify-content: center;
  margin-bottom: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-spMenu__bottom {
  margin-top: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
}

/* メインナビ（活動報告など） */
.c-spMenuNav {
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-spMenuNav a {
  border-bottom: 1px solid #eee;
}
.c-spMenuNav > .menu-item {
  margin: 0;
}
.c-spMenuNav > .menu-item.menu-item-has-children {
  display: none;
}
.c-spMenuNav > .menu-item > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem) 0;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  color: #171717;
  text-decoration: none;
  background: none;
}
.c-spMenuNav > .menu-item > a::before {
  content: none !important;
  display: none !important;
}
.c-spMenuNav > .menu-item > a::after {
  content: "";
  display: block;
  flex-shrink: 0;
  width: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  background: url(../images/sp-menu-arrow.svg) no-repeat center/contain;
}
.c-spMenuNav > .menu-item > a:hover {
  text-decoration: none;
  opacity: 0.75;
}
.c-spMenuNav > .menu-item > a .ttl {
  font: inherit;
}
.c-spMenuNav > .menu-item > a i,
.c-spMenuNav > .menu-item > a [class*=icon-] {
  display: none !important;
}
.c-spMenuNav > .menu-item .c-submenuToggleBtn {
  display: none;
}
.c-spMenuNav .sub-menu {
  display: none;
}

/* SP ドロワー内 CTA（縦積み・Figma 278px 中央） */
.c-headerBtns--spMenu {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 auto;
  padding: 0;
  list-style: none;
  width: calc(17.375 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-headerBtns--spMenu .c-headerBtns__item {
  margin: 0;
  width: 100%;
}
.c-headerBtns--spMenu .c-headerBtns__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 100%;
  min-height: calc(4.625 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  color: #fff;
  box-sizing: border-box;
  box-shadow: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.4375 * var(--yzrh-rem-scale, 1) * 1rem) rgba(204, 204, 204, 0.1);
}
.c-headerBtns--spMenu .c-headerBtns__link.-external::after, .c-headerBtns--spMenu .c-headerBtns__link.-internal::after {
  content: "";
  display: block;
  width: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  flex-shrink: 0;
}
.c-headerBtns--spMenu .c-headerBtns__link.-external::after {
  background: url(../images/header-btn-arrow.svg) no-repeat center/calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-headerBtns--spMenu .c-headerBtns__link.-internal::after {
  background: url(../images/header-btn-internal-arrow.png) no-repeat center/calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
}

/* SP では親の旧メニューボタン領域を隠す（念のため） */
@media screen and (max-width: 959px) {
  .l-header__menuBtn,
  .l-header__customBtn {
    display: none !important;
  }
  .-series .l-header__inner,
  .-series-right .l-header__inner {
    display: flex;
    align-items: center;
    gap: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-inline: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  }
  .-series .l-header__logo,
  .-series-right .l-header__logo {
    order: 0 !important;
    margin-right: auto;
    padding-block: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
    flex-shrink: 1;
    min-width: 0;
  }
  .l-header__spActions {
    order: 1 !important;
    margin-left: 0;
  }
}
/* ドロワー全幅時のスライド位置（親は 88vw のため上書き） */
.p-spMenu.-right .p-spMenu__inner {
  right: 0;
  left: auto;
  transform: translateX(100%);
}

.p-spMenu.-left .p-spMenu__inner {
  left: 0;
  right: auto;
  transform: translateX(-100%);
}

[data-spmenu=opened] .p-spMenu.-right .p-spMenu__inner,
[data-spmenu=opened] .p-spMenu.-left .p-spMenu__inner {
  transform: translateX(0);
}

.banner {
  position: relative;
  isolation: isolate;
}
.banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.2;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .banner::before {
    opacity: 0.1;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.banner {
  width: 100dvw;
  margin-inline: calc(50% - 50dvw);
  background: #225E5F;
  border-radius: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  padding-block: calc(6.875 * var(--yzrh-rem-scale, 1) * 1rem) calc(5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .banner {
    padding-block: calc(6.5625 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.banner__inner {
  max-width: calc(83.125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 auto;
  padding-inline: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .banner__inner {
    padding-inline: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.banner__content {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(2.1875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .banner__content {
    grid-template-columns: 1fr;
    gap: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.banner__item {
  background: #fff;
  border-radius: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  position: relative;
  transition: all 0.3s ease;
}
.banner__item:hover {
  opacity: 0.8;
}
.banner__item:nth-child(1) {
  border: 10px solid #7098FF;
}
@media screen and (max-width: 959px) {
  .banner__item:nth-child(1) {
    border: 7px solid #7098FF;
  }
}
.banner__item:nth-child(2) {
  border: 10px solid #36DBCB;
}
@media screen and (max-width: 959px) {
  .banner__item:nth-child(2) {
    border: 7px solid #36DBCB;
  }
}
.banner__item:nth-child(3) {
  border: 10px solid #FF9ED3;
}
@media screen and (max-width: 959px) {
  .banner__item:nth-child(3) {
    border: 7px solid #FF9ED3;
  }
}
.banner__title-en {
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
  color: #2BA0A3;
  text-align: center;
}
@media screen and (max-width: 959px) {
  .banner__title-en {
    font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.banner__title-jp {
  font-size: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
  color: #171717;
  text-align: center;
}
@media screen and (max-width: 959px) {
  .banner__title-jp {
    font-size: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.banner__title-jp span {
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .banner__title-jp span {
    font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.banner__text {
  margin-top: calc(1.625 * var(--yzrh-rem-scale, 1) * 1rem);
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  line-height: 1.7;
  color: #171717;
}
@media screen and (max-width: 959px) {
  .banner__text {
    margin-top: calc(1.375 * var(--yzrh-rem-scale, 1) * 1rem);
    text-align: justify;
  }
}
.banner__link {
  display: block;
  position: absolute;
  width: calc(3.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
  bottom: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  right: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}
.banner__item:nth-child(1) .banner__link {
  background-image: url(../images/banner-icon.webp);
}
.banner__item:nth-child(2) .banner__link {
  background-image: url(../images/banner-icon02.webp);
}
.banner__item:nth-child(3) .banner__link {
  background-image: url(../images/banner-icon02.webp);
}

.l-footer-gallery {
  display: flex;
  flex-direction: column;
  width: 100dvw;
  margin-inline: calc(50% - 50dvw);
  line-height: 0;
}
.l-footer-gallery__row {
  overflow: hidden;
}
.l-footer-gallery__track {
  display: flex;
  width: max-content;
  will-change: transform;
}
.l-footer-gallery__row--rtl > .l-footer-gallery__track {
  animation: marquee-rtl 80s linear infinite;
}
.l-footer-gallery__row--ltr > .l-footer-gallery__track {
  animation: marquee-ltr 80s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .l-footer-gallery__track {
    animation: none !important;
  }
  .l-footer-gallery__track .l-footer-gallery__list:last-child {
    display: none;
  }
}
.l-footer-gallery__list {
  display: flex;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
}
.l-footer-gallery__item {
  flex-shrink: 0;
  width: calc(25.75 * var(--yzrh-rem-scale, 1) * 1rem);
  list-style: none;
}
@media screen and (max-width: 959px) {
  .l-footer-gallery__item {
    width: calc(23.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.l-footer-gallery__img {
  display: block;
  width: 100%;
  height: calc(16.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: cover;
}
@media screen and (max-width: 959px) {
  .l-footer-gallery__img {
    height: calc(14.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

.w-beforeFooter {
  margin: 0;
}

.l-footer {
  padding-block: calc(7 * var(--yzrh-rem-scale, 1) * 1rem) 0;
}
@media screen and (max-width: 959px) {
  .l-footer {
    padding-block: calc(6.40625 * var(--yzrh-rem-scale, 1) * 1rem) 0;
  }
}
.l-footer__widgetArea {
  padding: 0;
}
.l-footer__foot {
  margin-top: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
}
.l-footer__nav {
  padding: 0.5em 0 2.625em;
}
.l-footer__nav li {
  position: relative;
}
.l-footer__nav li::after {
  content: "/";
  position: absolute;
  top: 0;
  right: 0;
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  line-height: 1.5;
  font-weight: 600;
  color: #2BA0A3;
}
@media screen and (max-width: 959px) {
  .l-footer__nav li::after {
    font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.l-footer__nav li:last-child::after {
  display: none;
}
.l-footer__nav li a {
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  line-height: 1.5;
  color: #333;
  padding: 0;
  padding-inline: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  border: none;
}
@media screen and (max-width: 959px) {
  .l-footer__nav li a {
    font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-inline: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.l-footer__nav li:first-child a {
  border-left: none;
}

.l-footer .u-fz-16 {
  font-size: calc(1.3125 * var(--yzrh-rem-scale, 1) * 1rem);
}

.l-footer .copyright {
  font-weight: bold;
  line-height: 1.5;
  color: #171717;
}
@media screen and (max-width: 959px) {
  .l-footer .copyright {
    font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

/* ========================================
ボタン
======================================== */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  max-width: calc(20.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 100%;
  min-height: calc(5.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-block: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-inline: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  border: 2px solid var(--text-dark, #171717);
  border-radius: calc(12.5 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: var(--btn-mint, #56f0e1);
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: max(1 * var(--yzrh-rem-scale, 1) * 1rem, 16px);
  font-weight: 700;
  line-height: 1.7;
  text-decoration: none;
  transition: 0.3s ease;
}
@media screen and (max-width: 959px) {
  .c-btn {
    max-width: calc(19.8125 * var(--yzrh-rem-scale, 1) * 1rem);
    min-height: calc(5.5 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-block: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-inline: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
    gap: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-btn__label {
  flex-shrink: 0;
  transition: 0.3s ease;
}
.c-btn__arrow, .c-btn__blank {
  display: block;
  width: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: contain;
  transition: 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .c-btn:hover {
    opacity: 0.85;
  }
  .c-btn:hover .c-btn__label {
    scale: 1.2;
  }
  .c-btn:hover .c-btn__arrow,
  .c-btn:hover .c-btn__blank {
    scale: 1.4;
  }
}

/* ========================================
セクション見出し（共通）
======================================== */
.c-sectionHeading--center {
  text-align: center;
}
.c-sectionHeading__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 0 calc(-0.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--accent-teal, #2ba0a3);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 959px) {
  .c-sectionHeading__eyebrow {
    font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-sectionHeading__eyebrow-dot {
  display: inline-block;
  width: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: 50%;
  background-color: #36dbcb;
}
.c-sectionHeading__title {
  margin: 0;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.5;
}
@media screen and (max-width: 959px) {
  .c-sectionHeading__title {
    font-size: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-sectionHeading__desc {
  margin: calc(1 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.7;
}
@media screen and (max-width: 959px) {
  .c-sectionHeading__desc {
    margin-top: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
    font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-sectionHeading--center .c-sectionHeading__desc {
  margin-inline: auto;
  max-width: calc(47.5 * var(--yzrh-rem-scale, 1) * 1rem);
}

/* ========================================
投稿カード
======================================== */
.c-postCard {
  width: 100%;
  height: 100%;
  max-width: calc(24.375 * var(--yzrh-rem-scale, 1) * 1rem);
}
.c-postCard__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: var(--white);
  box-shadow: 10px 10px 30px 0 rgba(16, 60, 61, 0.1);
  color: inherit;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .c-postCard__link:hover {
    transform: translateY(-2px);
    box-shadow: 10px 10px 30px 0 rgba(16, 60, 61, 0.16);
  }
}
.c-postCard__thumb {
  aspect-ratio: 312/175.5;
  overflow: hidden;
  border-radius: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  background-color: var(--section-gray, #f0f0f0);
}
.c-postCard__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-postCard__img--placeholder {
  background: linear-gradient(135deg, var(--section-gray, #f0f0f0) 0%, #e4e4e4 100%);
}
.c-postCard__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .c-postCard__body {
    padding: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem) calc(1 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-postCard__title {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
@media screen and (max-width: 959px) {
  .c-postCard__title {
    font-size: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.c-postCard__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-top: auto;
  padding: calc(0.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  border: 1px solid var(--text-dark, #171717);
  border-radius: calc(1.875 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--black);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
  margin: 0;
}
@media screen and (max-width: 959px) {
  .c-postCard__tag {
    padding: calc(0 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

/* 共通テキスト */
:where(.c-text) {
  font-size: max(1 * var(--yzrh-rem-scale, 1) * 1rem, 12px);
  font-weight: 400;
  line-height: 160%;
}
@media screen and (max-width: 959px) {
  :where(.c-text) {
    font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

.archive__pagenation {
  margin-top: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
  display: flex;
  justify-content: center;
  gap: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .archive__pagenation {
    margin-top: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.archive__pagenation .pagination {
  align-items: center;
  display: flex;
  gap: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
.archive__pagenation .pagination .is-disabled {
  opacity: 0.35;
  pointer-events: none;
}
.archive__pagenation .pager {
  font-size: max(1.25 * var(--yzrh-rem-scale, 1) * 1rem, 13px);
  font-weight: 700;
  color: var(--white);
  transition: 0.3s;
}
.archive__pagenation .pager:hover {
  transition: 0.3s;
}
@media screen and (max-width: 959px) {
  .archive__pagenation .pager {
    font-size: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.archive__pagenation .pager.current,
.archive__pagenation .pager:hover {
  color: var(--black);
}
.archive__pagenation .pagenation-icon {
  display: inline-block;
  height: max(1.5 * var(--yzrh-rem-scale, 1) * 1rem, 18px);
  width: max(1.5 * var(--yzrh-rem-scale, 1) * 1rem, 18px);
  transition: 0.3s;
}
.archive__pagenation .pagenation-icon:hover {
  opacity: 0.7;
}
@media screen and (max-width: 959px) {
  .archive__pagenation .pagenation-icon {
    height: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
    width: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.archive__pagenation .pagenation-icon.first,
.archive__pagenation .pagenation-icon.prev {
  transform: scaleX(-1);
}
.archive__pagenation .pagenation-icon.next {
  margin-left: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .archive__pagenation .pagenation-icon.next {
    margin-left: calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.archive__pagenation .pagenation-icon.prev {
  margin-right: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .archive__pagenation .pagenation-icon.prev {
    margin-right: calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

.breadnav {
  margin-top: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: auto;
  padding-inline: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .breadnav {
    margin-top: calc(1.625 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-inline: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
    max-width: 100%;
  }
}
.breadnav .breadcrumb {
  display: flex;
  align-items: center;
  gap: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  flex-wrap: wrap;
}
@media screen and (max-width: 959px) {
  .breadnav .breadcrumb {
    gap: calc(0.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.breadnav span {
  font-size: 12px;
  color: var(--white);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 959px) {
  .breadnav span {
    font-size: 10px;
  }
}
.breadnav .home {
  width: 16px;
  height: 16px;
}
@media screen and (max-width: 959px) {
  .breadnav .home {
    width: 14px;
    height: 14px;
  }
}
.breadnav .bread-first {
  width: 16px;
  height: 16px;
}
@media screen and (max-width: 959px) {
  .breadnav .bread-first {
    width: 14px;
    height: 14px;
  }
}
.breadnav .bread-icon {
  width: 6px;
  height: 12px;
  background: url(../images/common/bread-icon.png) no-repeat center center/cover;
  filter: brightness(0) invert(1);
}

.top-bread {
  width: 16px;
  aspect-ratio: 1/1;
  background: url(../images/common/home-icon.webp) no-repeat center center/cover;
}
@media screen and (max-width: 959px) {
  .top-bread {
    width: 14px;
  }
}

/**
 * 追従バナー（カスタマイザー追加 CSS から移行）
 */
.follow-banner {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 20;
}
.follow-banner a {
  display: flex;
  align-items: center;
  gap: 0.5em;
  writing-mode: vertical-rl;
  color: var(--white);
  background-color: var(--color_main);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 1.5em 1em;
  border-radius: 10px 0 0 10px;
  transition: opacity 0.25s;
}
.follow-banner a:hover {
  opacity: 0.7;
}
.follow-banner .swl-inline-icon::after {
  left: 50%;
  transform: translateX(-50%);
}
.follow-banner {
  /* スマホでは非表示 */
}
@media screen and (max-width: 599px) {
  .follow-banner {
    display: none;
  }
}

/**
 * ページトップへ戻る（page-top.webp）
 * 位置・表示制御は親テーマの .p-fixBtnWrap に依存
 */
.p-fixBtnWrap {
  right: calc(1.9375 * var(--yzrh-rem-scale, 1) * 1rem) !important;
}
@media screen and (max-width: 959px) {
  .p-fixBtnWrap {
    right: calc(1 * var(--yzrh-rem-scale, 1) * 1rem) !important;
    bottom: 1.25em !important;
  }
}

.c-pageTop {
  display: block;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  width: auto;
  height: auto;
  cursor: pointer;
  line-height: 0;
  opacity: 1;
  transition: opacity 0.25s;
}
.c-pageTop:hover {
  opacity: 0.7;
}
.c-pageTop img {
  display: block;
  width: calc(1.40625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: auto;
}
@media screen and (max-width: 959px) {
  .c-pageTop img {
    width: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

#pagetop.c-pageTop {
  border-radius: 0;
}

/**
 * TOP 無限ループギャラリー（旧: 固定ページ「カスタム CSS & JS」より移行）
 *
 * HTML 側は当面 post_content 内のマークアップをそのまま使う。
 * - .slider1 … 2列マーキー（同じ画像列を2本、位相ずらしで継ぎ目を隠す）
 * - .loop-slider … SWELL カラム構造を display:contents でフラット化し1本を平行移動
 */
/* ----------------------------------------
 .loop-slider（SWELL カラム版）
---------------------------------------- */
.loop-slider {
  display: flex;
  overflow: hidden;
  gap: 1.5rem;
}
.loop-slider .wp-block-group__inner-container,
.loop-slider .swell-block-columns {
  display: contents;
}
.loop-slider .swell-block-columns__inner {
  flex-wrap: nowrap;
  animation: infinity-scroll-left 20s infinite linear;
}
.loop-slider .swell-block-column figure {
  width: calc(31.25 * var(--yzrh-rem-scale, 1) * 1rem);
  position: relative;
}
@media screen and (max-width: 959px) {
  .loop-slider .swell-block-column figure {
    width: calc(12.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.loop-slider .swell-block-column figure::before {
  content: "";
  display: block;
  padding-top: 65%;
}
.loop-slider .swell-block-column figure img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
}

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
/* ----------------------------------------
 .slider1（2列マーキー版 ※現行 TOP で使用）
---------------------------------------- */
.slider1 {
  display: flex;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  overflow: hidden;
}
.slider1 ul {
  display: flex;
  padding: 0;
  margin: 0;
}
.slider1 ul:first-child {
  animation: slide1 150s -75s linear infinite;
}
.slider1 ul:last-child {
  animation: slide2 150s linear infinite;
}
.slider1 li {
  width: calc(18.75 * var(--yzrh-rem-scale, 1) * 1rem);
  list-style: none;
}

@keyframes slide1 {
  0% {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
}
@keyframes slide2 {
  0% {
    transform: translateX(0);
  }
  to {
    transform: translateX(-200%);
  }
}
/* 左→右（slide1 / slide2 の逆向き） */
@keyframes slide1-ltr {
  0% {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(100%);
  }
}
@keyframes slide2-ltr {
  0% {
    transform: translateX(-200%);
  }
  to {
    transform: translateX(0);
  }
}
/* ----------------------------------------
 シームレスマーキー（同一内容2本を1トラックで -50% 移動）
 ※ 2列位相ずらし（slide1/2）より継ぎ目が安定
---------------------------------------- */
@keyframes marquee-rtl {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@keyframes marquee-ltr {
  from {
    transform: translateX(-50%);
  }
  to {
    transform: translateX(0);
  }
}
/**
 * TOP FV（ファーストビュー）
 * - 流れるお知らせティッカー
 * - メイン／サブコピー
 * - スポンサーロゴマーキー
 * - 活動報告ギャラリーマーキー
 */
.top-fv {
  /* ----------------------------------------
   流れるお知らせ（アイコン＋テキストの無限ループ）
   recommend / VOICE と同じ 1 トラック -50% マーキー
  ---------------------------------------- */
  position: relative;
  isolation: isolate;
}
.top-fv::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.08;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .top-fv::before {
    opacity: 0.04;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.top-fv {
  background: #FAFAF0;
  width: 100dvw;
  margin-inline: calc(50% - 50dvw);
}
.top-fv__ticker {
  display: flex;
  align-items: center;
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  overflow: hidden;
  height: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: var(--white);
  box-shadow: 5px 5px 10px 0 rgba(204, 204, 204, 0.07);
}
@media screen and (max-width: 959px) {
  .top-fv__ticker {
    height: calc(2.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__ticker-track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
  animation: marquee-rtl 50s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .top-fv__ticker-track {
    animation: none;
  }
  .top-fv__ticker-track .top-fv__ticker-list:last-child {
    display: none;
  }
}
.top-fv__ticker-list {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(1.375 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0;
  padding: 0 calc(1.375 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
}
.top-fv__ticker-item {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  list-style: none;
}
.top-fv__ticker-link {
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 400;
  line-height: 1.6;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.2em;
}
@media (hover: hover) and (pointer: fine) {
  .top-fv__ticker-link:hover {
    opacity: 0.7;
  }
}
.top-fv__ticker-icon {
  display: block;
  flex-shrink: 0;
  width: auto;
  height: auto;
  max-height: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: contain;
}
.top-fv__inner {
  padding-top: calc(7.1875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-fv__inner {
    padding-top: calc(5.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__content {
  margin-top: calc(4.625 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-fv__content {
    margin-top: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__main-text {
  max-width: 100%;
  width: calc(49.25 * var(--yzrh-rem-scale, 1) * 1rem);
  width: calc(59.1 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-right: calc(1.0625 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: auto;
  margin-top: calc(5.3125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-fv__main-text {
    max-width: none;
    width: 100%;
    padding: 0;
    display: flex;
    justify-content: center;
    margin-top: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__sub-text {
  max-width: 100%;
  width: calc(38.625 * var(--yzrh-rem-scale, 1) * 1rem);
  width: calc(46.35 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: auto;
  margin-top: calc(2.375 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-top: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
.top-fv__sub-text img {
  width: 100%;
  height: auto;
  display: block;
}
@media screen and (max-width: 959px) {
  .top-fv__sub-text {
    max-width: none;
    width: 100%;
    padding: 0;
    display: flex;
    justify-content: center;
    margin-top: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv {
  /* ----------------------------------------
   スポンサーロゴ（流れるマーキー）
   .slider1 / ティッカーと同じ 2 列方式
  ---------------------------------------- */
}
.top-fv__sponsor {
  position: relative;
  z-index: 1;
  margin-top: calc(-3 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: calc(50% - 50vw);
  width: 100vw;
}
@media screen and (max-width: 959px) {
  .top-fv__sponsor {
    margin-top: calc(-1.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__sponsor-label {
  position: absolute;
  top: calc(-2.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  right: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  width: calc(15.25 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.5625 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0;
  border-radius: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0 0;
  background-color: var(--white);
  color: #7098ff;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
@media screen and (max-width: 959px) {
  .top-fv__sponsor-label {
    width: calc(12.375 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(2.125 * var(--yzrh-rem-scale, 1) * 1rem);
    top: calc(-2 * var(--yzrh-rem-scale, 1) * 1rem);
    font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
    gap: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__sponsor-dot {
  flex-shrink: 0;
  width: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: 50%;
  background-color: var(--btn-mint, #56f0e1);
}
.top-fv__sponsor-slider {
  display: flex;
  overflow: hidden;
  height: calc(6.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: var(--white);
}
@media screen and (max-width: 959px) {
  .top-fv__sponsor-slider {
    height: calc(4.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__sponsor-list {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(5 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0;
  padding: 0 calc(5 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
}
.top-fv__sponsor-list:first-child {
  animation: slide1 100s -50s linear infinite;
}
.top-fv__sponsor-list:last-child {
  animation: slide2 100s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .top-fv__sponsor-list {
    animation: none;
  }
  .top-fv__sponsor-list:last-child {
    display: none;
  }
}
@media screen and (max-width: 959px) {
  .top-fv__sponsor-list {
    gap: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-right: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__sponsor-item {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  list-style: none;
}
.top-fv__sponsor-logo {
  display: block;
  width: calc(11 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: contain;
  object-position: center;
}
@media screen and (max-width: 959px) {
  .top-fv__sponsor-logo {
    width: calc(7.5 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(2.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv {
  /* ----------------------------------------
   活動報告カード（ゆっくり左へ流れるマーキー）
   .slider1 と同じ 2 列方式 + 背景あしらい
  ---------------------------------------- */
}
.top-fv__gallery {
  position: relative;
  z-index: 0;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  padding-block: calc(0 * var(--yzrh-rem-scale, 1) * 1rem) calc(7.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  overflow: hidden;
}
@media screen and (max-width: 959px) {
  .top-fv__gallery {
    padding-block: calc(0 * var(--yzrh-rem-scale, 1) * 1rem) calc(7.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__gallery-deco {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.top-fv__gallery-bg {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  min-width: calc(90 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(30.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: cover;
  object-position: top center;
  transform: translateX(-50%);
}
@media screen and (max-width: 959px) {
  .top-fv__gallery-bg {
    min-width: 100%;
    height: calc(19.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__gallery-cloud {
  position: absolute;
  bottom: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  left: calc(-2 * var(--yzrh-rem-scale, 1) * 1rem);
  width: calc(11.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: auto;
}
@media screen and (max-width: 959px) {
  .top-fv__gallery-cloud {
    bottom: calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
    left: calc(-1.125 * var(--yzrh-rem-scale, 1) * 1rem);
    width: calc(7 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__gallery-slider {
  position: relative;
  z-index: 1;
  display: flex;
  overflow: hidden;
  padding-block: calc(4.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-fv__gallery-slider {
    padding-block: calc(2.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__gallery-list {
  display: flex;
  flex-shrink: 0;
  gap: calc(1.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0;
  padding: 0 calc(1.8125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
}
.top-fv__gallery-list:first-child {
  animation: slide1 114s -57s linear infinite;
}
.top-fv__gallery-list:last-child {
  animation: slide2 114s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .top-fv__gallery-list {
    animation: none;
  }
  .top-fv__gallery-list:last-child {
    display: none;
  }
}
.top-fv__gallery-item {
  flex-shrink: 0;
  width: calc(27.5 * var(--yzrh-rem-scale, 1) * 1rem);
  list-style: none;
  transition: rotate 0.3s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .top-fv__gallery-item:hover {
    rotate: -5deg;
  }
}
@media screen and (max-width: 959px) {
  .top-fv__gallery-item {
    width: calc(17.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__gallery-item .c-postCard {
  max-width: none;
}
.top-fv__pop {
  display: block;
  position: fixed;
  right: calc(5 * var(--yzrh-rem-scale, 1) * 1rem);
  bottom: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  z-index: 30;
  width: calc(9.625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(9.625 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-fv__pop {
    right: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
    bottom: calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
    width: calc(8 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(8 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-fv__pop-bg {
  position: relative;
  width: 100%;
  height: 100%;
  transform: rotateX(30deg);
}
.top-fv__pop-bg::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background-image: url(../images/fv-pop-bg.webp);
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  animation: p-postSlider-icon-spin 12s linear infinite;
}
.top-fv__pop-text {
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-fv__pop-text {
    width: calc(5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

/**
 * TOP 投稿スライダー（共通）
 * - イベント情報 / 活動報告 / コラム / マンガ
 * - modifiers: --event / --activity / --comic
 */
.p-postSlider {
  overflow-x: clip;
}
.p-postSlider__inner {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
}
@media screen and (max-width: 959px) {
  .p-postSlider__inner {
    display: flex;
    flex-direction: column;
    padding-inline: max(25px, var(--swl-pad_container, 0));
  }
}
.p-postSlider__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-bottom: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider__header {
    display: contents;
  }
}
.p-postSlider__heading {
  flex: 1;
  min-width: 0;
}
@media screen and (max-width: 959px) {
  .p-postSlider__heading {
    order: 1;
    margin-bottom: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__titleRow {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.375 * var(--yzrh-rem-scale, 1) * 1rem);
  gap: calc(2.875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider__titleRow {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__icon {
  flex-shrink: 0;
  width: calc(7.875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(7.875 * var(--yzrh-rem-scale, 1) * 1rem);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width: 959px) {
  .p-postSlider__icon {
    width: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__icon-bg {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  transform: rotateX(37deg);
}
.p-postSlider__icon-bg::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background-image: url("../images/event-bg.webp");
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  animation: p-postSlider-icon-spin 12s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-postSlider__icon-bg::before {
    animation: none;
    transform: translate(-50%, -50%);
  }
}
.p-postSlider__icon-img {
  position: absolute;
  z-index: 1;
  width: calc(2.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(2.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 959px) {
  .p-postSlider__icon-img {
    width: calc(2.0625 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(2.0625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__titles {
  flex-shrink: 0;
}
.p-postSlider__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 0 calc(-0.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--accent-teal, #2ba0a3);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
@media screen and (max-width: 959px) {
  .p-postSlider__eyebrow {
    font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__eyebrow-dot {
  display: inline-block;
  width: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: 50%;
  background-color: #36dbcb;
}
.p-postSlider__title {
  margin: 0;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
}
@media screen and (max-width: 959px) {
  .p-postSlider__title {
    font-size: calc(1.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__desc {
  flex: 1;
  margin: 0;
  padding-bottom: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  color: #333;
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 959px) {
  .p-postSlider__desc {
    flex-basis: 100%;
    max-width: none;
    padding-bottom: 0;
  }
}
.p-postSlider__arrows {
  display: flex;
  flex-shrink: 0;
  gap: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-bottom: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider__arrows {
    order: 3;
    margin-bottom: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(3.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(1.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: 0;
  border: 1px solid #171717;
  border-radius: calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: var(--white);
  color: var(--text-dark, #171717);
  line-height: 1;
  cursor: pointer;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .p-postSlider__arrow:hover {
    background-color: var(--section-gray, #f0f0f0);
  }
}
.p-postSlider__arrow:disabled {
  opacity: 0.4;
  cursor: default;
}
.p-postSlider__arrow--next .p-postSlider__arrow-icon {
  transform: rotate(180deg);
}
.p-postSlider__arrow-icon {
  display: block;
  width: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.5625 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-postSlider__splide {
  width: calc(50% + 50vw);
  max-width: none;
  margin-bottom: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  overflow-x: clip;
}
@media screen and (max-width: 959px) {
  .p-postSlider__splide {
    margin-bottom: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
    order: 2;
  }
}
.p-postSlider__splide .splide__track {
  overflow: visible;
}
.p-postSlider__splide .splide__slide {
  width: calc(24.375 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider__splide .splide__slide {
    width: calc(17.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider__cta {
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 959px) {
  .p-postSlider__cta {
    order: 4;
  }
}
.p-postSlider--event {
  position: relative;
  isolation: isolate;
}
.p-postSlider--event::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .p-postSlider--event::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.p-postSlider--event {
  margin-top: calc(-3 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-block: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(11.25 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  background-color: var(--section-gray, #f0f0f0);
}
@media screen and (max-width: 959px) {
  .p-postSlider--event {
    margin-top: calc(-2.5 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-block: calc(4 * var(--yzrh-rem-scale, 1) * 1rem) calc(15.875 * var(--yzrh-rem-scale, 1) * 1rem);
    border-radius: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  }
}
.p-postSlider--event .p-postSlider__bubble {
  position: absolute;
  top: calc(-0.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  right: calc(5 * var(--yzrh-rem-scale, 1) * 1rem);
  width: calc(16.5625 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider--event .p-postSlider__bubble {
    width: calc(13.5 * var(--yzrh-rem-scale, 1) * 1rem);
    right: calc(1.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider--activity {
  position: relative;
  isolation: isolate;
}
.p-postSlider--activity::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .p-postSlider--activity::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.p-postSlider--activity {
  background-color: var(--white);
  padding-block: calc(7.1875 * var(--yzrh-rem-scale, 1) * 1rem) calc(12.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider--activity {
    padding-block: calc(4.625 * var(--yzrh-rem-scale, 1) * 1rem) calc(10 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-postSlider--comic {
  margin-top: calc(8.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-postSlider--comic {
    margin-top: calc(7 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
@keyframes p-postSlider-icon-spin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
/**
 * TOP CONTENTS ブロック（コラム＋マンガ）
 * - .p-contentsBlock
 * - .p-contentsHeader
 */
.p-contentsBlock {
  position: relative;
  isolation: isolate;
}
.p-contentsBlock::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .p-contentsBlock::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.p-contentsBlock {
  padding-block: calc(6.875 * var(--yzrh-rem-scale, 1) * 1rem) calc(8.125 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: var(--section-gray-light, #f5f5f5);
}
@media screen and (max-width: 959px) {
  .p-contentsBlock {
    padding-block: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem) calc(7.375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-contentsBlock .p-postSlider {
  background: transparent;
}

.p-contentsHeader {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
  margin-bottom: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-contentsHeader {
    margin-bottom: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-contentsHeader__bubble {
  position: absolute;
  top: calc(7.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  right: calc(3.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  width: calc(5.4375 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-contentsHeader__bubble {
    top: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
    right: calc(1.5625 * var(--yzrh-rem-scale, 1) * 1rem);
    width: calc(4.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-contentsHeader__brand {
  display: inline-block;
  line-height: 0;
}
.p-contentsHeader__brand-img {
  display: block;
  width: auto;
  max-width: calc(10.5 * var(--yzrh-rem-scale, 1) * 1rem);
  height: auto;
}

/**
 * TOP「こんな人におすすめ」
 * - タグ 3 段マーキー
 * - チャット帯マーキー
 * - PaPaMaMa room CTA
 */
.p-recommend {
  position: relative;
  isolation: isolate;
}
.p-recommend::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .p-recommend::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.p-recommend {
  margin-top: calc(-5 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-block: calc(6.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(5.5 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  background-color: var(--white);
  overflow-x: clip;
}
@media screen and (max-width: 959px) {
  .p-recommend {
    margin-top: calc(-8.875 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-block: calc(5.3125 * var(--yzrh-rem-scale, 1) * 1rem) calc(9 * var(--yzrh-rem-scale, 1) * 1rem);
    border-radius: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  }
}
.p-recommend__inner {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
}
@media screen and (max-width: 959px) {
  .p-recommend__inner {
    padding-inline: max(25px, var(--swl-pad_container, 0));
  }
}
.p-recommend__heading {
  margin-bottom: calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-recommend__heading {
    margin-bottom: calc(2.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__heading .c-sectionHeading__desc {
  max-width: 100%;
  margin-top: calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
  white-space: nowrap;
}
@media screen and (max-width: 959px) {
  .p-recommend__heading .c-sectionHeading__desc {
    margin-top: calc(2.125 * var(--yzrh-rem-scale, 1) * 1rem);
    margin-inline: calc(-1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__tags {
  position: relative;
  padding-top: calc(4.625 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-bottom: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-recommend__tags {
    padding-top: calc(3.25 * var(--yzrh-rem-scale, 1) * 1rem);
    margin-bottom: calc(1.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__bubbles {
  position: absolute;
  z-index: 1;
  top: 0;
  left: calc(50% - 50vw);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 100vw;
  padding-inline: calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
  pointer-events: none;
}
@media screen and (max-width: 959px) {
  .p-recommend__bubbles {
    padding-inline: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__bubble {
  display: block;
  height: auto;
}
.p-recommend__bubble--left {
  width: calc(4.875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-recommend__bubble--left {
    width: calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__bubble--right {
  width: calc(8.5 * var(--yzrh-rem-scale, 1) * 1rem);
  position: relative;
  top: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-recommend__bubble--right {
    width: calc(6 * var(--yzrh-rem-scale, 1) * 1rem);
    top: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__note {
  margin: 0 calc(50% - 50vw) calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 100vw;
  padding-inline: calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
}
@media screen and (max-width: 959px) {
  .p-recommend__note {
    margin-bottom: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-inline: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__tag-row {
  margin: 0 calc(50% - 50vw);
  width: 100vw;
  overflow: hidden;
}
.p-recommend__tag-row + .p-recommend__tag-row {
  margin-top: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-recommend__tag-row + .p-recommend__tag-row {
    margin-top: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__tag-track {
  display: flex;
  width: max-content;
  will-change: transform;
}
.p-recommend__tag-row--rtl > .p-recommend__tag-track {
  animation: marquee-rtl 180s linear infinite;
}
.p-recommend__tag-row--ltr > .p-recommend__tag-track {
  animation: marquee-ltr 180s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-recommend__tag-track {
    animation: none !important;
  }
  .p-recommend__tag-track .p-recommend__tag-list:last-child {
    display: none;
  }
}
.p-recommend__tag-list {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(1.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0;
  padding: 0 calc(1.3125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  list-style: none;
}
@media screen and (max-width: 959px) {
  .p-recommend__tag-list {
    gap: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-right: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__tag {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: calc(0.25 * var(--yzrh-rem-scale, 1) * 1rem);
  min-height: calc(2.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem);
  background-color: #e3f4f5;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.5;
  white-space: nowrap;
  list-style: none;
}
@media screen and (max-width: 959px) {
  .p-recommend__tag {
    min-height: calc(2.25 * var(--yzrh-rem-scale, 1) * 1rem);
    padding: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.4375 * var(--yzrh-rem-scale, 1) * 1rem);
    font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__tag span {
  margin: 0;
}
.p-recommend__tag-hash {
  flex-shrink: 0;
}
.p-recommend__chat {
  margin: 0 calc(50% - 50vw) calc(3.375 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 100vw;
  overflow: hidden;
}
@media screen and (max-width: 959px) {
  .p-recommend__chat {
    margin-bottom: calc(4.0625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__chat-track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: marquee-rtl 90s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-recommend__chat-track {
    animation: none;
  }
  .p-recommend__chat-track .p-recommend__chat-list:last-child {
    display: none;
  }
}
.p-recommend__chat-list {
  display: flex;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-recommend__chat-item {
  flex-shrink: 0;
  list-style: none;
}
.p-recommend__chat-img {
  display: block;
  width: auto;
  height: calc(19 * var(--yzrh-rem-scale, 1) * 1rem);
  max-width: none;
}
@media screen and (max-width: 959px) {
  .p-recommend__chat-img {
    height: calc(15.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__cta {
  display: flex;
  justify-content: center;
  margin-bottom: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-recommend__cta {
    margin-bottom: calc(4.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__papa {
  position: relative;
  display: flex;
  align-items: center;
  gap: calc(1.5625 * var(--yzrh-rem-scale, 1) * 1rem);
  max-width: calc(33.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: auto;
  padding: calc(2 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  background-image: url("../images/contents-bubble.webp");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  overflow: hidden;
}
@media screen and (max-width: 959px) {
  .p-recommend__papa {
    background-image: url("../images/contents-bubble-sp.webp");
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: calc(19.875 * var(--yzrh-rem-scale, 1) * 1rem);
    gap: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
    padding: calc(1.4375 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.9375 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-recommend__papa-icon {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: calc(5.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: auto;
  border-radius: 50%;
}
.p-recommend__papa-body {
  position: relative;
  z-index: 1;
  min-width: 0;
}
.p-recommend__papa-text {
  margin: 0 0 calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 400;
  line-height: 1.5;
}
@media screen and (max-width: 959px) {
  .p-recommend__papa-text {
    margin-bottom: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
    text-align: justify;
  }
}
.p-recommend__papa-link {
  display: flex;
  align-items: center;
  gap: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.p-recommend__papa-link span {
  margin: 0;
}
@media screen and (max-width: 959px) {
  .p-recommend__papa-link {
    align-items: center;
    justify-content: center;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-recommend__papa-link:hover {
    opacity: 0.75;
  }
}
.p-recommend__papa-link-arrow {
  display: block;
  width: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: contain;
}

/**
 * TOP「集まれ！ディレクターの森は無料オンラインコミュニティです」
 * -
 */
.top-about {
  position: relative;
  isolation: isolate;
}
.top-about::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.1;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .top-about::before {
    opacity: 0.05;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.top-about {
  background: #FAFAFA;
  width: 100dvw;
  margin-inline: calc(50% - 50dvw);
  padding-block: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(12.9375 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-about {
    padding-block: calc(4.0625 * var(--yzrh-rem-scale, 1) * 1rem) calc(8.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-about__inner {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
  max-width: calc(85.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-inline: calc(1.4375 * var(--yzrh-rem-scale, 1) * 1rem) 0;
}
@media screen and (max-width: 959px) {
  .top-about__inner {
    padding-inline: calc(1.03125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-about__content {
  display: flex;
}
@media screen and (max-width: 959px) {
  .top-about__content {
    flex-direction: column;
  }
}
.top-about__text-wrapper {
  width: calc(59.46875 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 71.0074626866%;
  flex-shrink: 0;
  padding-top: calc(3.1875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-about__text-wrapper {
    width: 100%;
    padding-top: 0;
  }
}
.top-about__image-wrapper {
  width: calc(28.34375 * var(--yzrh-rem-scale, 1) * 1rem);
  width: 33.8432835821%;
  width: 50.7462686567%;
  flex-shrink: 0;
  transform: translateX(calc(-3.96875 * var(--yzrh-rem-scale, 1) * 1rem));
  transform: translateX(calc(-7.8125 * var(--yzrh-rem-scale, 1) * 1rem));
}
@media screen and (max-width: 959px) {
  .top-about__image-wrapper {
    width: calc(23.8125 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(25.5 * var(--yzrh-rem-scale, 1) * 1rem);
    margin-top: calc(2.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-about__frame {
  width: calc(28.0625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(4.476875 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-about__frame {
    width: calc(16.625 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(2.570625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-about__title {
  font-size: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.4;
  color: #171717;
  margin-top: calc(1.96875 * var(--yzrh-rem-scale, 1) * 1rem);
  white-space: nowrap;
}
@media (max-width: 1200px) {
  .top-about__title {
    font-size: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
    white-space: normal;
  }
}
@media screen and (max-width: 959px) {
  .top-about__title {
    font-size: calc(1.3125 * var(--yzrh-rem-scale, 1) * 1rem);
    letter-spacing: 0.6px;
    margin-top: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-about__title span {
  border: 1px solid #171717;
  border-radius: calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  background: #FAFAF0;
  line-height: 1.208;
  margin-right: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem) calc(0.375 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-about__title span {
    padding: 0 calc(0.125 * var(--yzrh-rem-scale, 1) * 1rem);
    margin-right: calc(0.25 * var(--yzrh-rem-scale, 1) * 1rem);
    line-height: 1.3333333333;
  }
}
.top-about__text {
  font-size: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.8;
  color: #171717;
  margin-top: calc(3.088125 * var(--yzrh-rem-scale, 1) * 1rem);
  max-width: calc(54.034375 * var(--yzrh-rem-scale, 1) * 1rem);
  text-align: justify;
}
@media screen and (max-width: 959px) {
  .top-about__text {
    font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
    margin-top: calc(3.04125 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-right: calc(0.46875 * var(--yzrh-rem-scale, 1) * 1rem);
    max-width: 100%;
  }
}
.top-about__text > p {
  margin: 0;
}

@media screen and (max-width: 1300px) {
  .top-about__image-wrapper {
    transform: translateX(calc(-3.125 * var(--yzrh-rem-scale, 1) * 1rem));
  }
}
@media screen and (max-width: 1200px) {
  .top-about__image-wrapper {
    transform: translateX(calc(-6.875 * var(--yzrh-rem-scale, 1) * 1rem));
  }
}
@media screen and (max-width: 959px) {
  .top-about__image-wrapper {
    transform: translateX(calc(2 * var(--yzrh-rem-scale, 1) * 1rem));
  }
}
/**
 * TOP「数字で見るディレ森」
 * -
 */
.top-number {
  position: relative;
  isolation: isolate;
}
.top-number::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .top-number::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.top-number {
  width: 100dvw;
  margin-inline: calc(50% - 50dvw);
  padding-block: calc(3.03125 * var(--yzrh-rem-scale, 1) * 1rem) 0;
  position: relative;
}
@media screen and (max-width: 959px) {
  .top-number {
    padding-block: calc(2.28125 * var(--yzrh-rem-scale, 1) * 1rem) 0;
  }
}
.top-number::after {
  content: "";
  position: absolute;
  background-image: url("../images/image-10.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: calc(9.40625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(5.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  top: 0;
  left: 2.85vw;
  z-index: -1;
}
@media screen and (max-width: 959px) {
  .top-number::after {
    width: calc(7 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(3.953125 * var(--yzrh-rem-scale, 1) * 1rem);
    left: calc(2.0625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-number__bg {
  background: #EBFBF9;
  border-radius: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  padding-block: calc(6.9375 * var(--yzrh-rem-scale, 1) * 1rem) calc(11.4375 * var(--yzrh-rem-scale, 1) * 1rem);
  position: relative;
}
@media screen and (max-width: 959px) {
  .top-number__bg {
    padding-block: calc(4.3125 * var(--yzrh-rem-scale, 1) * 1rem) calc(9.375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-number__bg::after {
  content: "";
  position: absolute;
  background-image: url("../images/image-11.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: calc(7.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(5.3125 * var(--yzrh-rem-scale, 1) * 1rem);
  bottom: calc(-1.5625 * var(--yzrh-rem-scale, 1) * 1rem);
  right: 0;
}
@media screen and (max-width: 959px) {
  .top-number__bg::after {
    bottom: calc(-1.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-number__inner {
  max-width: calc(90 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-inline: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 auto;
}
@media screen and (max-width: 959px) {
  .top-number__inner {
    padding-inline: calc(1.03125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-number__heading {
  text-align: center;
}
.top-number__body-pc {
  margin-top: calc(6.6875 * var(--yzrh-rem-scale, 1) * 1rem);
  display: flex;
  gap: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-number__body-pc {
    display: none;
  }
}
.top-number__body-sp {
  display: none;
}
@media screen and (max-width: 959px) {
  .top-number__body-sp {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
    margin-top: calc(3.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

@media screen and (max-width: 500px) {
  .top-number__body-sp {
    grid-template-columns: repeat(1, 1fr);
    gap: calc(3.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
/**
 * TOP「参加者の声」
 * - Splide カード（奇数: ギザギザ / 偶数: 角丸四角）
 * - 下部ギャラリーの CSS マーキー（同一リスト2本を1トラックで -50% 移動）
 */
.p-voice {
  position: relative;
  isolation: isolate;
}
.p-voice::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .p-voice::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.p-voice {
  overflow-x: clip;
}
.p-voice__bg {
  position: relative;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
  padding-block: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  background-color: #fafaf0;
}
@media screen and (max-width: 959px) {
  .p-voice__bg {
    padding-block: calc(4.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(0 * var(--yzrh-rem-scale, 1) * 1rem);
    border-radius: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) 0 0;
  }
}
.p-voice__inner {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
}
@media screen and (max-width: 959px) {
  .p-voice__inner {
    padding-inline: max(25px, var(--swl-pad_container, 0));
  }
}
.p-voice__header {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-voice__header {
    margin-bottom: calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__icon {
  position: absolute;
  z-index: 2;
  top: calc(-3.125 * var(--yzrh-rem-scale, 1) * 1rem);
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(7.5 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(7.5 * var(--yzrh-rem-scale, 1) * 1rem);
  transform: translateX(-50%);
}
@media screen and (max-width: 959px) {
  .p-voice__icon {
    top: calc(-2.25 * var(--yzrh-rem-scale, 1) * 1rem);
    width: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__icon-bg {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  transform: rotateX(37deg);
}
.p-voice__icon-bg::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background-image: url("../images/voice-bg.webp");
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  animation: p-voice-icon-spin 12s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-voice__icon-bg::before {
    animation: none;
    transform: translate(-50%, -50%);
  }
}
.p-voice__icon-img {
  position: absolute;
  z-index: 1;
  width: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media screen and (max-width: 959px) {
  .p-voice__icon-img {
    width: calc(2.25 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(2.25 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__heading {
  margin-bottom: 0;
}
.p-voice__heading .c-sectionHeading__desc {
  margin-top: calc(0.5 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-top: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.5;
  color: #333;
}
@media screen and (max-width: 959px) {
  .p-voice__heading .c-sectionHeading__desc {
    margin-top: calc(1.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__splide {
  margin-inline: calc(50% - 50vw);
  width: 100vw;
}
.p-voice__splide .splide__track {
  overflow: visible;
}
.p-voice__splide .splide__slide {
  width: auto;
}
.p-voice__card {
  box-sizing: border-box;
  color: #000;
  font-family: var(--lineseed), var(--notosans);
}
.p-voice__card--jagged {
  width: calc(36.25 * var(--yzrh-rem-scale, 1) * 1rem);
  min-height: calc(30 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(5.375 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  background: url("../images/voice-card-jagged.webp") center/100% 100% no-repeat;
}
@media screen and (max-width: 959px) {
  .p-voice__card--jagged {
    width: calc(27.0625 * var(--yzrh-rem-scale, 1) * 1rem);
    min-height: calc(25.875 * var(--yzrh-rem-scale, 1) * 1rem);
    padding: calc(2.75 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__card--square {
  width: calc(31.25 * var(--yzrh-rem-scale, 1) * 1rem);
  min-height: calc(28.75 * var(--yzrh-rem-scale, 1) * 1rem);
  padding: calc(5.375 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  border: 2px solid #7098ff;
  border-radius: calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(6.25 * var(--yzrh-rem-scale, 1) * 1rem) 0;
  background-color: #fff;
}
@media screen and (max-width: 959px) {
  .p-voice__card--square {
    width: calc(27.0625 * var(--yzrh-rem-scale, 1) * 1rem);
    min-height: calc(25.125 * var(--yzrh-rem-scale, 1) * 1rem);
    padding: calc(3 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem) calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
    border-radius: calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem) 0;
  }
}
.p-voice__card-inner {
  display: flex;
  flex-direction: column;
  gap: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  box-sizing: border-box;
  width: calc(21.875 * var(--yzrh-rem-scale, 1) * 1rem);
  max-width: 100%;
  min-height: calc(17.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  margin-inline: auto;
}
@media screen and (max-width: 959px) {
  .p-voice__card-inner {
    width: calc(14.5 * var(--yzrh-rem-scale, 1) * 1rem);
    min-height: calc(13.75 * var(--yzrh-rem-scale, 1) * 1rem);
    gap: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__profile {
  display: flex;
  align-items: center;
  gap: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
}
.p-voice__avatar {
  flex-shrink: 0;
  width: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: 50%;
  object-fit: cover;
}
@media screen and (max-width: 959px) {
  .p-voice__avatar {
    width: calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(3.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__avatar--placeholder {
  display: block;
  background-color: #d9d9d9;
}
.p-voice__name {
  margin: 0;
  font-size: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
}
@media screen and (max-width: 959px) {
  .p-voice__name {
    font-size: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__text {
  margin: 0;
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.8;
}
@media screen and (max-width: 959px) {
  .p-voice__text {
    font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__link {
  margin: auto 0 0;
  font-size: calc(0.625 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 400;
  line-height: 1.8;
  word-break: break-all;
}
.p-voice__link a {
  color: inherit;
  text-decoration: underline;
}
.p-voice__forest {
  position: absolute;
  z-index: 0;
  right: 0;
  bottom: calc(12.5 * var(--yzrh-rem-scale, 1) * 1rem);
  left: 0;
  pointer-events: none;
}
@media screen and (max-width: 959px) {
  .p-voice__forest {
    bottom: calc(8.75 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__forest-img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  object-fit: cover;
  object-position: center bottom;
}
.p-voice__gallery {
  position: relative;
  z-index: 1;
  overflow: hidden;
  margin-top: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-voice__gallery {
    margin-top: calc(5.625 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__gallery-track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: marquee-rtl 114s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .p-voice__gallery-track {
    animation: none;
  }
  .p-voice__gallery-track .p-voice__gallery-list:last-child {
    display: none;
  }
}
.p-voice__gallery-list {
  display: flex;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-voice__gallery-item {
  flex-shrink: 0;
  width: calc(25.75 * var(--yzrh-rem-scale, 1) * 1rem);
  list-style: none;
}
@media screen and (max-width: 959px) {
  .p-voice__gallery-item {
    width: calc(15 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-voice__gallery-img {
  display: block;
  width: 100%;
  height: calc(16.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  object-fit: cover;
}

@keyframes p-voice-icon-spin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
/**
 * TOP「代表実績」
 * -
 */
.top-achievements {
  position: relative;
  isolation: isolate;
}
.top-achievements::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .top-achievements::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.top-achievements {
  width: 100dvw;
  margin-inline: calc(50% - 50dvw);
  padding-block: calc(7.5 * var(--yzrh-rem-scale, 1) * 1rem);
  position: relative;
}
@media screen and (max-width: 959px) {
  .top-achievements {
    padding-block: calc(13.9375 * var(--yzrh-rem-scale, 1) * 1rem) calc(8.375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-achievements::after {
  content: "";
  position: absolute;
  background-image: url(../images/achievements-icon.webp);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: calc(3.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  height: calc(3.84375 * var(--yzrh-rem-scale, 1) * 1rem);
  bottom: 0;
  right: calc(6.8125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-achievements::after {
    width: calc(2.5 * var(--yzrh-rem-scale, 1) * 1rem);
    height: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
    right: calc(1.9375 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-achievements__inner {
  max-width: calc(90 * var(--yzrh-rem-scale, 1) * 1rem);
  padding-inline: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 auto;
}
@media screen and (max-width: 959px) {
  .top-achievements__inner {
    padding-inline: calc(0.96875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-achievements__content {
  position: relative;
  isolation: isolate;
}
.top-achievements__content::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url("../images/haze-noise.gif");
  background-repeat: repeat;
  opacity: 0.04;
  filter: brightness(150%) sepia(20%);
  mix-blend-mode: multiply;
}
@media (prefers-reduced-motion: reduce) {
  .top-achievements__content::before {
    opacity: 0.02;
    filter: brightness(150%) sepia(20%) grayscale(0.3);
  }
}
.top-achievements__content {
  max-width: calc(47.125 * var(--yzrh-rem-scale, 1) * 1rem);
  margin: 0 auto;
  padding: calc(3.0625 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.8125 * var(--yzrh-rem-scale, 1) * 1rem) calc(2.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  background: #F0F9F9;
  border-radius: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
  display: flex;
  gap: calc(2.125 * var(--yzrh-rem-scale, 1) * 1rem);
  align-items: center;
}
@media screen and (max-width: 959px) {
  .top-achievements__content {
    padding: calc(2.125 * var(--yzrh-rem-scale, 1) * 1rem) calc(1.5625 * var(--yzrh-rem-scale, 1) * 1rem) calc(3.125 * var(--yzrh-rem-scale, 1) * 1rem);
    align-items: flex-start;
    flex-direction: column;
    gap: calc(1.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-achievements__img-wrapper {
  width: calc(6.375 * var(--yzrh-rem-scale, 1) * 1rem);
}
.top-achievements__img {
  width: 100%;
  height: calc(6.375 * var(--yzrh-rem-scale, 1) * 1rem);
  border-radius: 50%;
  overflow: hidden;
}
.top-achievements__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.top-achievements__name {
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: bold;
  text-align: center;
  color: #171717;
  margin-top: calc(1.25 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-achievements__name {
    text-align: left;
  }
}
.top-achievements__text-wrapper > p,
.top-achievements__text-wrapper .top-achievements__text {
  font-size: calc(0.875 * var(--yzrh-rem-scale, 1) * 1rem);
  line-height: 1.5;
  font-weight: 400;
  color: #333;
  white-space: nowrap;
  margin: 0;
}
@media screen and (max-width: 959px) {
  .top-achievements__text-wrapper > p,
  .top-achievements__text-wrapper .top-achievements__text {
    font-size: calc(0.75 * var(--yzrh-rem-scale, 1) * 1rem);
    white-space: normal;
  }
}
.top-achievements__text-wrapper > p:nth-of-type(2),
.top-achievements__text-wrapper .top-achievements__text:nth-of-type(2) {
  margin-top: calc(1.3125 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-achievements__text-wrapper > p:nth-of-type(2),
  .top-achievements__text-wrapper .top-achievements__text:nth-of-type(2) {
    margin-top: calc(1.125 * var(--yzrh-rem-scale, 1) * 1rem);
    padding-right: calc(2.1875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.top-achievements__text-wrapper > p a,
.top-achievements__text-wrapper .top-achievements__text a {
  color: #333;
  text-decoration: underline;
  text-underline-offset: calc(0.1875 * var(--yzrh-rem-scale, 1) * 1rem);
}

.l-content {
  margin: 0 auto;
}

/**
 * TOP 追加セクション枠（ACF で割り当てた固定ページ本文）
 * ＋ フロント固定ページ本文エリア（主催・管理人とその下）
 */
.top-slot {
  width: 100%;
}
.top-slot__inner {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
  padding-block: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .top-slot__inner {
    padding-block: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}

.p-front-blocks {
  width: 100%;
}
.p-front-blocks > .post_content > *:not([class*=top-]):not([class*=p-recommend]):not([class*=p-contents]):not([class*=p-postSlider]):not([class*=p-voice]) {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--container_size, 0px) + var(--swl-pad_container, 0px) * 2);
  padding-left: var(--swl-pad_container, 0);
  padding-right: var(--swl-pad_container, 0);
  width: 100%;
  padding-block: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
}
@media screen and (max-width: 959px) {
  .p-front-blocks > .post_content > *:not([class*=top-]):not([class*=p-recommend]):not([class*=p-contents]):not([class*=p-postSlider]):not([class*=p-voice]) {
    padding-block: calc(1.5 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-front-blocks > .post_content {
  /*
   * SWELL の .post_content > * { margin-bottom: 2em } が
   * TOP セクション箱にも付き、セクション間に約 32px の隙間ができる。
   * 意図したネガティブマージン（recommend / event 等）はそのまま残す。
   */
}
.p-front-blocks > .post_content > .top-fv,
.p-front-blocks > .post_content > .top-about,
.p-front-blocks > .post_content > .top-number,
.p-front-blocks > .post_content > .top-achievements,
.p-front-blocks > .post_content > .p-recommend,
.p-front-blocks > .post_content > .p-contentsBlock,
.p-front-blocks > .post_content > .p-postSlider,
.p-front-blocks > .post_content > .p-voice {
  margin-bottom: 0;
}
.p-front-blocks > .post_content > .top-fv:not(:last-child),
.p-front-blocks > .post_content > .top-about:not(:last-child),
.p-front-blocks > .post_content > .top-number:not(:last-child),
.p-front-blocks > .post_content > .top-achievements:not(:last-child),
.p-front-blocks > .post_content > .p-recommend:not(:last-child),
.p-front-blocks > .post_content > .p-contentsBlock:not(:last-child),
.p-front-blocks > .post_content > .p-postSlider:not(:last-child),
.p-front-blocks > .post_content > .p-voice:not(:last-child) {
  margin-bottom: 0;
}
.p-front-blocks > .post_content > .top-fv,
.p-front-blocks > .post_content > .top-about,
.p-front-blocks > .post_content > .top-number,
.p-front-blocks > .post_content > .top-achievements,
.p-front-blocks > .post_content > .p-recommend,
.p-front-blocks > .post_content > .p-contentsBlock,
.p-front-blocks > .post_content > .p-postSlider,
.p-front-blocks > .post_content > .p-voice {
  /*
   * SWELL の .post_content ul/ol/li がコンポーネントのリストに乗る。
   * （padding-left: 1.5em / list-style: disc / li margin: .25em 0）
   * セクション内だけ打ち消し、合間の自由ブロック本文リストは SWELL 装飾を残す。
   */
}
.p-front-blocks > .post_content > .top-fv ul,
.p-front-blocks > .post_content > .top-fv ol,
.p-front-blocks > .post_content > .top-about ul,
.p-front-blocks > .post_content > .top-about ol,
.p-front-blocks > .post_content > .top-number ul,
.p-front-blocks > .post_content > .top-number ol,
.p-front-blocks > .post_content > .top-achievements ul,
.p-front-blocks > .post_content > .top-achievements ol,
.p-front-blocks > .post_content > .p-recommend ul,
.p-front-blocks > .post_content > .p-recommend ol,
.p-front-blocks > .post_content > .p-contentsBlock ul,
.p-front-blocks > .post_content > .p-contentsBlock ol,
.p-front-blocks > .post_content > .p-postSlider ul,
.p-front-blocks > .post_content > .p-postSlider ol,
.p-front-blocks > .post_content > .p-voice ul,
.p-front-blocks > .post_content > .p-voice ol {
  padding-left: 0;
  list-style: none;
}
.p-front-blocks > .post_content > .top-fv li,
.p-front-blocks > .post_content > .top-about li,
.p-front-blocks > .post_content > .top-number li,
.p-front-blocks > .post_content > .top-achievements li,
.p-front-blocks > .post_content > .p-recommend li,
.p-front-blocks > .post_content > .p-contentsBlock li,
.p-front-blocks > .post_content > .p-postSlider li,
.p-front-blocks > .post_content > .p-voice li {
  margin-top: 0;
  margin-bottom: 0;
}
.p-front-blocks > .post_content > *:last-child {
  margin-bottom: 0 !important;
}
.p-front-blocks > .post_content {
  /*
   * セクション箱を .post_content 内で描画するため、
   * SWELL の記事見出し装飾（左ボーダー・余白・font-size）が TOP の h2 に乗る。
   * 独自見出しクラスだけ打ち消し、コンポーネントのサイズを同ルールで再指定する。
   */
}
.p-front-blocks > .post_content h2.p-postSlider__title {
  border: none !important;
  border-left: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(3 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: normal;
}
@media screen and (max-width: 959px) {
  .p-front-blocks > .post_content h2.p-postSlider__title {
    font-size: calc(1.875 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-front-blocks > .post_content h2.p-postSlider__title::before, .p-front-blocks > .post_content h2.p-postSlider__title::after {
  content: none !important;
  display: none !important;
}
.p-front-blocks > .post_content h2.c-sectionHeading__title {
  border: none !important;
  border-left: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(3.75 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: normal;
}
@media screen and (max-width: 959px) {
  .p-front-blocks > .post_content h2.c-sectionHeading__title {
    font-size: calc(2 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-front-blocks > .post_content h2.c-sectionHeading__title::before, .p-front-blocks > .post_content h2.c-sectionHeading__title::after {
  content: none !important;
  display: none !important;
}
.p-front-blocks > .post_content {
  /*
   * `.post_content h3`（margin: 3em 0 2em / font-size: 1.3em / ::before 下線）が
   * FV ギャラリー等のカードタイトルに乗る。コンポーネント側は 1 クラスのみで負ける。
   */
}
.p-front-blocks > .post_content h3.c-postCard__title {
  border: none !important;
  border-left: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  box-shadow: none !important;
  position: static;
  color: var(--text-dark, #171717);
  font-family: var(--lineseed), var(--notosans);
  font-size: calc(1 * var(--yzrh-rem-scale, 1) * 1rem);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: normal;
}
@media screen and (max-width: 959px) {
  .p-front-blocks > .post_content h3.c-postCard__title {
    font-size: calc(0.8125 * var(--yzrh-rem-scale, 1) * 1rem);
  }
}
.p-front-blocks > .post_content h3.c-postCard__title::before, .p-front-blocks > .post_content h3.c-postCard__title::after {
  content: none !important;
  display: none !important;
}

/*# sourceMappingURL=style.css.map */
