@charset "utf-8";

/* MARK: common
---------------------------------------------------------------------------*/
:root {
  --color-text: #353535;
  --color-bg: #FFFFFF;
  --color-border: #000000;
  --color-primary: #3576B3;
  --color-secondary: #EDA700;
  --color-secondary-light: #FFF9B8;
  --color-orange-light: #FBECCC;

  --font-gothic-jp: '中ゴシックBBB', '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', YuGothic, 'Hiragino Sans', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
  --font-gothic-jp-heading: 'Midashi Go MB31', '見出しゴMB31';
  --font-gothic-jp-maru: "Zen Maru Gothic";
  --font-gothic-en: 'Montserrat', sans-serif;

  --base-font: 16;
  --base-width: 375px;
  --scale-rate: 1;

  --z-index-header-logo: 99;
  --z-index-system-plus: 100;
  --z-index-global-nav: 200;
  --z-index-modal: 1200;
  --spacing-content-inline: 30rem;
}
:root {
  --leading-trim: calc((1em - 1lh) / 2);
  --leading-trim-en: calc((1cap - 1lh) / 2);
}
:lang(en) {
  --leading-trim: calc((1cap - 1lh) / 2);
}
@supports not (top: 1lh) {
  :root {
    --leading-trim-en: 0;
    --leading-trim: 0;
  }
}
html {
  font-size: calc(100% * (1 + ((100vw - var(--base-width)) / var(--base-width)) * var(--scale-rate)) / var(--base-font));
}


/* MARK: animation
---------------------------------------------------------------------------*/
@keyframes popupHover {
  0% {
    transform: scale(1);
  }
  20% {
    transform: scale(1.1);
  }
  50% {
    transform: scale(0.9);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes txt_upper {
  from {
    transform: translateY(0);
    opacity: 1;
  }
  49% {
    transform: translateY(-50%);
    opacity: 0;
  }
  50% {
    transform: translateY(30%);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

html.js-fv .js-fv-hidden {
  opacity: 0;
}
html.js-fv .js-fv-slide-right {
  transform: translateX(100%);
}
/* スライドイン中の横スクロール発生を防ぐ（イントロ終了で解除） */
/* html.js-fv .js-fv-clip {
  overflow: hidden;
} */

/* utility */
/* スクロールで表示する要素の初期状態（JS の onScrollReveal で velocity 表示） */
.u-scroll-hidden {
  opacity: 0;
}
.u-flex-align-start {
  align-items: flex-start;
}
.u-sp-none {
  display: none !important;
}
.u-sp-txt-mb {
  display: inline-block;
  margin-block-end: .8em;
}

/* MARK: general
---------------------------------------------------------------------------*/
/* リサイズ中は transition を無効化 */
html.is-resizing *,
html.is-resizing *::before,
html.is-resizing *::after {
  transition: none !important;
}
body {
  overflow-y: scroll;
  background-color: var(--color-bg);
  color: var(--color-text);
  font-size: 16rem;
  font-family: var(--font-gothic-jp);
  line-height: 1;
  font-feature-settings: 'palt' 1;
  -webkit-text-size-adjust: none !important;
}

body.noscroll {
  position: fixed;
  left: 0;
  width: 100%;
}


::-moz-selection {
  background: rgba(0, 0, 0, 0.1);
  color: #000000;
}
::selection {
  background: rgba(0, 0, 0, 0.1);
  color: #000000;
}

p {
  font-size: 16rem;
  line-height: 2;
  letter-spacing: 0.1em;
  margin-bottom: 1em;
}
p:last-child {
  margin-bottom: 0 !important;
}
h1, h2, h3, h4, h5, h6 {
  line-height: 1.6;
}
figure img {
  width: 100%;
}

.block {
  display: inline-block !important;
}
.wide {
  display: inline-block !important;
}
/*.wide { display: none !important; }*/
.narrow {
  display: none !important;
}
/*.narrow { display: inline-block !important; }*/

/* icon-plus */
.icon-plus__cross,
.icon-plus__cross::before,
.icon-plus__cross::after {
  position: absolute;
  background-color: #fff;
  border-radius: 1rem;
  transition: transform 0.15s ease-out;
}
.icon-plus__cross {
  inset-block-start: 50%;
  inset-inline-start: 50%;
  width: 0;
  height: 0;
}
.icon-plus__cross::before,
.icon-plus__cross::after {
  content: '';
  inset-block-start: 50%;
  inset-inline-start: 50%;
  translate: -50% -50%;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.icon-plus__cross::before {
  width: 16rem;
  height: 2rem;
}
.icon-plus__cross::after {
  width: 2rem;
  height: 16rem;
}
.plus-card.is-open .icon-plus__cross::after {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}

/* MARK: #wrap
---------------------------------------------------------------------------*/
#wrap {
  position: relative;
  min-width: var(--width-min);
  background-image: url(../img/bg-recruit.png);
  background-repeat: repeat;
}


/* MARK: header
---------------------------------------------------------------------------*/
.header__logo {
  position: absolute;
  inset-block-start: 27rem;
  inset-inline-start: 27rem;
  z-index: var(--z-index-header-logo);
  display: flex;
  flex-direction: column;
  gap: 14rem;
  line-height: 1;
  font-size: 0;
}
.header__logo-img {
  width: 40vw;
  height: auto;
}

/* Safari */
_::-webkit-full-page-media, _:future, :root .header__logo-img {
  transform: translateX(-4%);
}

.header__logo-txt svg {
  width: 21.7vw;
  max-width: 200rem;
  height: auto;
}
.header__logo-txt svg path {
  fill: #78C4E9;
}


/* MARK: nav-sp-ctrl
---------------------------------------------------------------------------*/
.nav-sp-ctrl {
  position: fixed;
  inset-block-start: 16rem;
  inset-inline-end: 16rem;
  z-index: calc(var(--z-index-global-nav) + 1);
  display: flex;
  gap: 5rem;
}
.nav-sp-ctrl__entry,
.nav-sp-ctrl__burger {
  display: grid;
  place-items: center;
  width: 40rem;
  height: 40rem;
  padding: 0;
  border: 0;
  border-radius: 3rem;
  background-color: #ED9E00;
  cursor: pointer;
}
.nav-sp-ctrl__entry {
  padding-left: 1rem;
}
.nav-sp-ctrl__entry svg {
  width: 30rem;
  height: 7rem;
}
/* メニュー展開中はエントリーボタンのみ隠す */
.nav-sp-ctrl__entry {
  will-change: opacity;
}
.nav-sp-ctrl__burger-icon {
  position: relative;
  display: block;
}
.nav-sp-ctrl__burger-icon,
.nav-sp-ctrl__burger-icon::before,
.nav-sp-ctrl__burger-icon::after {
  width: 16rem;
  height: 2rem;
  border-radius: 1rem;
  background-color: #FFFFFF;
  transition: transform 0.3s ease, background-color 0.3s ease;
}
.nav-sp-ctrl__burger-icon::before,
.nav-sp-ctrl__burger-icon::after {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
}
.nav-sp-ctrl__burger-icon::before {
  transform: translateY(-6rem);
}
.nav-sp-ctrl__burger-icon::after {
  transform: translateY(6rem);
}
body.is-nav-open .nav-sp-ctrl__burger-icon {
  background-color: transparent;
}
body.is-nav-open .nav-sp-ctrl__burger-icon::before {
  transform: rotate(40deg) scaleX(1.15);
}
body.is-nav-open .nav-sp-ctrl__burger-icon::after {
  transform: rotate(-40deg) scaleX(1.15);
}


/* MARK: global-nav
---------------------------------------------------------------------------*/
.global-nav {
  position: fixed;
  inset: 0;
  z-index: var(--z-index-global-nav);
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.global-nav.is-open {
  visibility: visible;
  opacity: 1;
}
.global-nav__overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  border: 0;
  padding: 0;
  background-color: rgba(254, 255, 191, 0.9);
  cursor: pointer;
}

.global-nav__inner {
  position: absolute;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 25rem;
  width: 95%;
  max-width: 400rem;
  height: 360rem;
  right: 0;
  bottom: 0;
  padding: 0 20rem 24rem 0;
}
.global-nav__bg {
  position: absolute;
  z-index: -1;
  inset-inline-end: 0;
  inset-block-end: 0;
  width: 100%;
  height: 100%;
  background: url(../img/bg-global_nav_sp.png);
  background-size: contain;
  background-position: bottom right;
  background-repeat: no-repeat;
}

.global-nav__sns {
  position: absolute;
  inset-block-start: 25rem;
  inset-inline-start: 14rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12rem;
}
.global-nav__sns-label {
  margin: 0;
  writing-mode: vertical-rl;
  font-feature-settings: initial;
  text-orientation: sideways;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 13rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 3rem;
  color: var(--color-text);
}
.global-nav__sns-list {
  display: flex;
  flex-direction: column;
  gap: 8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.global-nav__sns-link {
  display: grid;
  place-items: center;
  width: 31rem;
  height: 31rem;
  border-radius: 50%;
  background-color: #ED9E00;
}
.global-nav__sns-link img {
  width: 100%;
  height: auto;
  max-width: 17rem;
  max-height: 15rem;
}

.global-nav__menu {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 17rem;
  margin: 0;
  padding: 0 3rem 0 0;
  list-style: none;
}
.global-nav__link {
  display: inline-block;
  color: #FFFFFF;
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 16rem;
  line-height: 1;
  letter-spacing: 0.07em;
  text-align: right;
  text-decoration: none;
  padding-block-end: 4rem;
  border-block-end: 1.5rem dashed transparent;
}
.global-nav__link.is-current {
  color: #FDFF7A;
  border-block-end-color: #FDFF7A;
}

.global-nav__btns {
  display: flex;
  gap: 7rem;
  padding: 0;
}
.global-nav__btn {
  height: 45rem;
  padding-inline: 15rem;
  border: 0;
  border-radius: 2rem;
  background-color: #FDFF70;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-weight: 700;
  font-size: 15rem;
  letter-spacing: 0.11em;
  white-space: nowrap;
  cursor: pointer;
}
.global-nav__btn span {
  display: inline-block;
}

.global-nav__mascot {
  position: absolute;
  inset-inline-start: 40rem;
  inset-block-end: 0;
  width: 64rem;
  height: 148rem;
  pointer-events: none;
}
/* 縦書きの吹き出し（要素自体が vertical-rl のため物理プロパティで配置） */
.global-nav__balloon {
  position: absolute;
  bottom: 47rem;
  left: 0;
  margin: 0;
  padding: 14rem 7rem 14rem 8rem;
  border-radius: 33rem;
  background-color: #FFFFFF;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-maru);
  font-weight: 500;
  font-size: 13rem;
  line-height: 1;
  letter-spacing: 0.09em;
  writing-mode: vertical-rl;
  white-space: nowrap;
  box-shadow: 0 3rem 7rem rgba(53, 118, 179, 0.14);
  pointer-events: none;
}
_::-webkit-full-page-media, _:future, :root .global-nav__balloon {
  padding-left: 7rem;
}
.global-nav__balloon::after {
  content: "";
  position: absolute;
  bottom: -4rem;
  right: 5rem;
  width: 8rem;
  height: 7rem;
  background-color: #FFFFFF;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.global-nav__human {
  position: absolute;
  inset-inline-start: 13rem;
  inset-block-end: 0rem;
  width: 50rem;
  height: auto;
  transform-origin: center bottom;
}




/* MARK: footer
---------------------------------------------------------------------------*/
.footer {
  position: relative;
  width: 100%;
}
.footer__bg {
  position: relative;
  width: 100%;
}
.footer__pic {
  display: block;
  width: 100%;
  height: auto;
  max-height: 100vh;
  object-fit: cover;
  object-position: center 85%;
  aspect-ratio: 1320 / 800;
}
.footer__content {
  position: absolute;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  left: 0;
  width: 100%;
  height: 100%;
  inset-inline: 0;
  padding-block-end: 10rem;
  padding-inline: 12rem;
}
.footer__title {
  margin-bottom: 0;
}
.footer__title-jp {
  width: 229rem;
  height: auto;
}
.footer__title-en {
  display: none;
}
.footer__link {
  position: absolute;
  top: -42rem;
  left: 20rem;
  z-index: 1;
  gap: 10rem;
  padding-block-end: 3rem;
  padding-inline-end: 3rem;
  padding-inline-start: 2rem;
  border-block-end: 1rem solid var(--color-text);
  color: var(--color-text);
  line-height: 1;
  text-decoration: none;
}
.footer__link-text {
  font-size: 13rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
.footer__link-arrow {
  flex-shrink: 0;
  width: 12rem;
  height: 9rem;
}
.footer__link-arrow path {
  fill: var(--color-text);
}


/* MARK: contents
---------------------------------------------------------------------------*/
#mainContents {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: left;
}


/* MARK: bg-wave
---------------------------------------------------------------------------*/
.bg-wave {
  --bg-wave-height: 33.8vw;
  --bg-wave-width: 100%;
}

.bg-wave-lightbeige {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height) + 120rem);
  overflow: hidden;
}
.bg-wave-lightbeige__bg {
  position: absolute;
  width: var(--bg-wave-width);
  height: 100%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.bg-wave-lightbeige__center {
  position: relative;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg-wave-lightbeige_sp.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.bg-wave-blue {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height) + 0rem);
  overflow: hidden;
}
.bg-wave-blue__bg {
  position: absolute;
  width: var(--bg-wave-width);
  height: 100%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.bg-wave-blue__center {
  position: relative;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg-wave-blue_sp.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* bg-wave-note
------------------------------------*/
.bg-wave-note {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height));
  overflow: hidden;
}
.bg-wave-note__bg {
  position: absolute;
  width: var(--bg-wave-width);
  height: 100%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.bg-wave-note__center {
  position: relative;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg-wave-note_sp.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* bg-wave-texture
------------------------------------*/
.bg-wave-texture {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height));
  overflow: hidden;
}
.bg-wave-texture__bg {
  position: absolute;
  width: var(--bg-wave-width);
  height: 100%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.bg-wave-texture__center {
  position: relative;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg-wave-texture_sp.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
/* bg-wave-beige
------------------------------------*/
.bg-wave-beige {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height));
  overflow: hidden;
}
.bg-wave-beige__bg {
  position: absolute;
  width: var(--bg-wave-width);
  height: 100%;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.bg-wave-beige__center {
  position: relative;
  width: 100%;
  height: 100%;
  background-image: url(../img/bg-wave-beige_sp.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}


/* MARK: mainview
---------------------------------------------------------------------------*/
.mainview {
  width: 100%;
}
.mainview__inner {
  position: relative;
  width: 100%;
  padding-block: 100rem 12rem;
  padding-inline: 18rem 18rem;
}
.mainview__txtarea {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 70rem;
  margin-block-end: 45rem;
}
.mainview__txt {
  padding-block-start: 0;
  padding-inline-start: 0;
  width: 100%;
  order: 1;
}
.mainview__txt-img-sp {
  width: 100%;
  height: auto;
  margin-block-end: 58rem;
  padding-inline-start: 2rem;
  padding-inline-end: 57rem;
}
.mainview__title img {
  width: 56vw;
  height: auto;
}
.mainview__title {
  padding-inline-start: 12rem;
  padding-inline-end: 12rem;
  position: relative;
}
.mainview__title img:first-of-type {
  display: none;
}
.mainview__title .mainview__title-sp-bird {
  position: absolute;
  width: 8.2%;
  height: auto;
  bottom: 50rem;
  right: -10rem;
}
.mainview__title .mainview__title-sp-watching {
  position: absolute;
  width: 10.4%;
  height: auto;
  bottom: -12rem;
  right: 10rem;
}
.mainview__lead {
  padding-inline-start: 12rem;
  padding-inline-end: 12rem;
  position: relative;
}
.mainview__lead .mainview__lead-sp-baby {
  position: absolute;
  right: 15%;
  top: 30%;
  width: 9.6%;
  height: auto;
}
.mainview__lead .mainview__lead-sp-maki {
  position: absolute;
  right: 0.5%;
  top: 46%;
  width: 13%;
  height: auto;
}
.mainview__lead .mainview__lead-sp-inekari {
  position: absolute;
  right: 0;
  bottom: 10%;
  width: 10.6%;
  height: auto;
}
.mainview__lead p {
  margin-block: var(--leading-trim);
  color: var(--color-text);
  font-size: 15rem;
  line-height: 2.2;
  letter-spacing: 0.075em;
  margin-bottom: 1.2em;
}
.mainview__title-en {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 58%;
  width: 28%;
  margin-bottom: 0;
}
.mainview__title-en img {
  width: 100%;
  height: auto;
}
.mainview__title-sp {
  position: absolute;
  inset-block-start: 54%;
  inset-inline-start: 13rem;
  width: 54.3%;
}
.mainview__title-sp img {
  width: 100%;
  height: auto;
}

/* --- newsarea --- */
.mainview__newsarea {
  position: relative;
  min-height: 580rem;
  display: flex;
  flex-direction: column;
}
.mainview__news {
  padding-block-start: 45rem;
  padding-inline: 15rem;
}
.mainview__news-title {
  color: var(--color-text);
  font-size: 13rem;
  font-weight: 600;
  letter-spacing: 0.25em;
}
.mainview__news-list {
  margin-block-start: 22rem;
  display: flex;
  flex-direction: column;
  gap: 19rem;
}
.mainview__news-item {
  border-block-end: 1rem dashed #CCCCCC;
}
.mainview__news-link {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 8rem;
  padding-block-end: 10rem;
  padding-inline: 3rem;
  text-decoration: none;
}
.mainview__news-date {
  color: var(--color-text);
  font-family: var(--font-gothic-en);
  font-size: 10rem;
  font-weight: 400;
  letter-spacing: 0.13em;
  padding-block-start: 2rem;
  width: 20%;
}
.mainview__news-text {
  color: var(--color-primary);
  font-size: 13rem;
  font-weight: 600;
  font-family: var(--font-gothic-jp);
  letter-spacing: 0.075em;
  line-height: 1.8;
  width: 100%;
}

/* --- pictures (共通) --- */
.mainview__pic {
  position: absolute;
}
.mainview__img-sp {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4.5;
}
.mainview__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* txtarea 内 */
.mainview__pic--01 {
  inset-block-start: 0;
}
.mainview__pic--01 img {
  width: 100%;
  height: auto;
}
.mainview__pic--02 {
  inset-block-start: 60.5%;
  inset-inline-end: 0%;
  width: 31%;
}
.mainview__pic--02 img {
  width: 100%;
  height: auto;
}
.mainview__pic--03 {
  inset-block-end: -0.5%;
  inset-inline-start: 0.5%;
  width: 51%;
}
.mainview__pic--03 img {
  width: 100%;
  height: auto;
}

/* newsarea */
.mainview__pic--04 {
  position: static;
  padding-inline-start: 10rem;
  padding-inline-end: 10rem;
}
.mainview__pic--04 > img {
  width: 100%;
  height: auto;
  aspect-ratio: 480 / 331;
}
.mainview__pic--05 {
  inset-block-end: 4.5%;
  inset-inline-start: -0.5%;
}
.mainview__pic--05 > img {
  width: 37.878vw;
  max-width: 500rem;
  height: auto;
  aspect-ratio: 500 / 357;
}


/* MARK: feature
---------------------------------------------------------------------------*/
.feature {
  --_max-width: 1080rem;
  position: relative;
  padding-bottom: calc(var(--bg-wave-height) + 105rem);
  overflow: hidden;
}
.feature::before {
  content: "";
  display: block;
  position: absolute;
  inset-block-start: var(--bg-wave-height);
  inset-inline-start: 0;
  width: 100%;
  height: calc(100% - var(--bg-wave-height) + 150rem);
  background-color: #EBF0F2;
  z-index: 0;
}
.feature .bg-wave-blue {
  height: calc(var(--bg-wave-height) + 110rem);
}
.illust-library {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: -7%;
  width: 250rem;
  height: 188.5rem;
}
.illust-library__inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.illust-library__item {
  position: absolute;
  display: block;
  width: 100%;
  height: auto;
}
.illust-library__item--bg {
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 100%;
  height: 100%;
}
.illust-library__item--cafe {
  inset-block-start: 18.29%;
  inset-inline-start: 24.59%;
  width: 24.62%;
}
.illust-library__item--stand {
  inset-block-start: 36.60%;
  inset-inline-start: 69.67%;
  width: 9.59%;
}
.illust-library__item--study {
  inset-block-start: 42.37%;
  inset-inline-start: 20.86%;
  width: 9.62%;
}
.illust-library__item--reading2 {
  inset-block-start: 47.29%;
  inset-inline-start: 9.41%;
  width: 5.62%;
}
.illust-library__item--search {
  inset-block-start: 45.45%;
  inset-inline-start: 51.72%;
  width: 11.27%;
}
.illust-library__item--baby {
  inset-block-start: 51.68%;
  inset-inline-start: 34.17%;
  width: 7.43%;
}
.illust-library__item--sitting {
  inset-block-start: 61.29%;
  inset-inline-start: 69.47%;
  width: 8.40%;
}
.illust-library__item--reading {
  inset-block-start: 78.06%;
  inset-inline-start: 62.28%;
  width: 7.78%;
}

.illust-boat {
  position: absolute;
  inset-block-start: 18%;
  inset-inline-start: 9.5%;
  width: 40rem;
  height: auto;
}

/* --- feature content --- */
.feature__content {
  width: 100%;
}
.feature__content-inner {
  position: relative;
  width: 100%;
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  padding-inline: 38rem;
  margin-inline: auto;
}

.feature-intro {
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  margin-inline: auto;
  padding-inline: calc(var(--spacing-content-inline) + 8rem);
  margin-top: -40rem;
  position: relative;
  z-index: 1;
}
.feature-intro__subtitle {
  display: inline-block;
  padding-block-end: 4rem;
  border-block-end: 1px solid var(--color-text);
  color: var(--color-text);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 14rem;
  letter-spacing: 0.12em;
  line-height: 1;
  margin-bottom: 0;
}
.feature-intro__title {
  margin-block-start: 20rem;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 19rem;
  line-height: 1.8;
  letter-spacing: 0.13em;
}
.feature-intro__lead {
  margin-block-start: 13rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 14rem;
  text-align: justify;
  line-height: 1.95;
  letter-spacing: 0.1em;
}

/* points コンテナ */
.feature__points {
  padding-block-start: 40rem;
  display: flex;
  flex-direction: column;
  gap: 45rem;
}

.point-feature {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: fit-content;
}
.point-feature__img {
  width: 100%;
}
.point-feature__pic {
  display: block;
  width: 100%;
  height: auto;
}
/* 右寄せ（point02 / point04） */
.point-feature--02,
.point-feature--04 {
  margin-inline-start: auto;
}

.point-feature--02 .point-feature__img--02a {
  margin-block-end: 5rem;
}

.point-feature__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5rem;
  margin-block-start: -67rem;
  margin-inline-start: -10rem;
  z-index: 2;
}
.point-feature__title-line {
  display: inline-block;
  padding-block: 5rem;
  padding-inline: 6rem;
  background-color: var(--color-bg);
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 16rem;
  line-height: 1;
  letter-spacing: 0.11em;
}
.point-feature__text {
  margin-block-start: 28rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 14rem;
  line-height: 1.95;
  letter-spacing: 0.08em;
  text-align: justify;
}

/* 装飾イラスト */
.point-feature__illust {
  position: absolute;
  display: block;
  z-index: 1;
}

.point-feature__illust--logo {
  inset-block-start: -45rem;
  inset-inline-end: -35rem;
  width: 90rem;
  height: auto;
  transform: rotate(8deg);
}

/* point03 */
.point-feature__illust--baby {
  inset-block-start: -40rem;
  inset-inline-end: -20rem;
  width: 70rem;
  height: auto;
}


/* point05 */
.point-feature--05 {
  padding-block-start: 32rem;
}
.point-feature__illust--food {
  inset-block-start: -58rem;
  inset-inline-end: -11rem;
  width: 130rem;
  height: auto;
}

.point-feature--01 .point-feature__pic {
  aspect-ratio: 4 / 3;
}
.point-feature--02 .point-feature__img--02a .point-feature__pic,
.point-feature--02 .point-feature__img--02b .point-feature__pic {
  aspect-ratio: 4 / 3;
}
.point-feature--03 .point-feature__pic {
  aspect-ratio: 4 / 3;
}
.point-feature--04 .point-feature__pic {
  aspect-ratio: 4 / 3;
}
.point-feature--05 .point-feature__pic {
  aspect-ratio: 4 / 3;
}
/* MARK: system
---------------------------------------------------------------------------*/
.system {
  padding-bottom: 70rem;
  margin-top: calc(var(--bg-wave-height) * -1 - 95rem);
}
.system-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: 20rem;
}
.system__illust {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height) + 120rem);
  overflow: hidden;
}
.system .bg-wave-lightbeige {
  height: calc(var(--bg-wave-height) + 200rem);
}

/* --- system イラスト群--- */
.system__illust-stage {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

/* 単独配置の木 */
.illust-system__tree {
  position: absolute;
  display: block;
}
.illust-system__tree--02 {
  display: none;
}
.illust-system__tree--03 {
  inset-block-start: 35rem;
  inset-inline-end: 4%;
  width: 63rem;
  height: auto;
}

/* グループ共通（親absolute + inner relative + 子absolute） */
.illust-system {
  position: absolute;
}
.illust-system__inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.illust-system__item {
  position: absolute;
  display: block;
}

/* 左グループ（木・鳥・人） */
.illust-system--left {
  inset-block-start: 17%;
  inset-inline-start: 2%;
}
.illust-system__item--tree {
  inset-block-start: 30rem;
  inset-inline-start: 0;
  width: 75rem;
  height: auto;
}
.illust-system__item--bird {
  inset-block-start: 28rem;
  inset-inline-start: 75rem;
  width: 31rem;
  height: auto;
}
.illust-system__item--maki {
  inset-block-start: 88rem;
  inset-inline-start: 83rem;
  width: 44rem;
  height: auto;
}

/* 右グループ（聴く・演奏・音符） */
.illust-system--right {
  inset-block-start: 15%;
  inset-inline-end: 15%;
  width: 115rem;
}
.illust-system__item--listen {
  inset-block-start: 42rem;
  inset-inline-start: 12rem;
  width: 84rem;
  height: auto;
}
.illust-system__item--playing {
  display: none;
}
.illust-system__item--music {
  inset-block-start: 102rem;
  inset-inline-end: -14rem;
  width: 60rem;
  height: auto;
}

/* --- system intro --- */
.system-intro {
  position: relative;
  z-index: 0;
  margin-block-start: -120rem;
  padding-block: 28rem 0;
  padding-inline: 40rem;
}
.system-intro__subtitle {
  display: flex;
  align-items: center;
  gap: 11rem;
  color: #000000;
  font-weight: 500;
  font-size: 14rem;
  line-height: 1;
  letter-spacing: 0.18em;
  margin-bottom: 13rem;
}
.system-intro__titlearea {
  position: relative;
  width: fit-content;
  margin-block-start: 0;
  padding-block-end: 0;
}
.system-intro__title {
  position: relative;
  z-index: 1;
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 20rem;
  line-height: 1.55;
  padding-inline-end: 5rem;
  letter-spacing: 0.1em;
}
.system-intro__title b {
  font-size: 25rem;
}
.system-intro__border {
  position: absolute;
  inset-block-end: 2rem;
  inset-inline-start: 0;
  width: 100%;
  height: 9rem;
  z-index: 0;
}
.system-intro__cane {
  position: absolute;
  inset-block-end: 6rem;
  inset-inline-end: -28rem;
  width: 30rem;
  height: auto;
  z-index: 1;
}
.system-intro__text {
  margin-block-start: 17rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 14rem;
  line-height: 2.1;
  letter-spacing: 0.1em;
  text-align: justify;
}

/* ---
MARK: system training
--- */
.system-training {
  margin-block-start: 45rem;
}
.system-training.system-container {
  padding-inline: initial;
}
.training-head {
  padding-inline: calc(var(--spacing-content-inline) + 10rem);
}
.training-head__subtitle {
  display: inline-block;
  padding-block: 3rem;
  border-block-end: 1px solid #000000;
  color: #000000;
  font-size: 14rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.15em;
  margin-bottom: 0;
}
.training-head__title {
  margin-block-start: 16rem;
  margin-bottom: 0;
  color: var(--color-primary);
  font-size: 19rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.8;
  letter-spacing: 0.13em;
}
/* SP: slickスライダー化（PCは横一列リストのまま） */
.training-slider {
  position: relative;
  margin-block-start: 28rem;
  overflow: hidden;
}
.training-list {
  /* slick初期化前の縦積み防止 */
  display: flex;
  margin-block-start: 0;
}
/* カレントスライドの左に、前のスライドをチラ見せ（13 + gap 24 = 37） */
.training-list .slick-list {
  padding-inline-start: 37rem;
}
.training-card {
  flex: 0 0 auto;
  width: 270rem;
  margin-inline-end: 24rem;
}

/* 左右の透明タップエリア */
.training-slider__tap {
  position: absolute;
  inset-block: 0;
  z-index: 5;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
}
.training-slider__tap--prev {
  inset-inline-start: 0;
  width: 37rem;
}
.training-slider__tap--next {
  inset-inline-end: 0;
  width: 41rem;
}

/* サムネイル動画エリア */
.training-card__movie {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 244 / 425;
  cursor: pointer;
}
.training-card__movie.is-playing {
  cursor: auto;
}
.training-card__video,
.training-card__thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.training-card__thumb {
  z-index: 2;
  transition: opacity 0.6s ease;
}
/* 非再生時は video を隠す。サムネのフェード復帰が終わってから隠すことで
   フェード中も再生中のフレームが背景に残り、ちらつかない */
.training-card__video {
  visibility: hidden;
  transition: visibility 0s 0.6s;
}
.training-card__movie.is-playing .training-card__video {
  visibility: visible;
  transition: none;
}
/* 再生中: サムネをフェードアウト */
.training-card__movie.is-playing .training-card__thumb {
  opacity: 0;
  pointer-events: none;
}

/* 左下イラスト（hover時にふわっと表示） */
.training-card__illust {
  position: absolute;
  inset-block-end: -20rem;
  inset-inline-start: 10rem;
  z-index: 3;
  width: 100rem;
  height: auto;
  opacity: 0;
  transform: translateY(8rem);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .training-card:hover:not(:has(.training-card__movie.is-playing)) .training-card__illust-pic .training-card__illust {
    opacity: 1;
    transform: translateY(0);
  }
}

.training-card__btn {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  translate: -50% -50%;
  z-index: 4;
  width: 60rem;
  height: 60rem;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  /* 待機中スライドでは非表示。スライドが定位置に収まってから表示 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease 0.2s, visibility 0.3s ease 0.2s;
}
.slick-current .training-card__btn {
  opacity: 1;
  visibility: visible;
}
.training-card__btn-icon {
  display: block;
  width: 100%;
  height: 100%;
}
@media (hover: hover) and (pointer: fine) {
  .training-card:hover .training-card__btn {
    animation: popupHover 0.4s ease-out forwards;
  }
}
/* 再生中: ボタンを隠す */
.training-card__movie.is-playing .training-card__btn {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.training-card__name {
  margin-block: var(--leading-trim);
  margin-top: 20rem;
  color: var(--color-primary);
  font-size: 18rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-align: center;
}
.training-card__text {
  margin-block: var(--leading-trim);
  margin-top: 15rem;
  width: 100%;
  padding-inline: 3rem;
  color: var(--color-text);
  font-size: 14rem;
  line-height: 1.7;
  letter-spacing: 0.075em;
  text-align: justify;
}

/* ==========================================================================
  MARK: system-team
========================================================================== */
.system-team {
  padding-block-start: 48rem;
}
.team-card {
  position: relative;
  background-color: #fff;
  border-radius: 0rem;
  padding-block: 60rem 105rem;
  padding-inline: 30rem;
}

.team-card__tri {
  position: absolute;
  pointer-events: none;
  width: 30rem;
  height: 20rem;
}
.team-card__tri--tl {
  inset-block-start: 0;
  inset-inline-start: 0;
}
.team-card__tri--tr {
  inset-block-start: 0;
  inset-inline-end: 0;
  transform: scaleX(-1);
}
.team-card__tri--bl {
  inset-block-end: 0;
  inset-inline-start: 0;
  transform: scaleY(-1);
}
.team-card__tri--br {
  inset-block-end: 0;
  inset-inline-end: 0;
  transform: scale(-1);
}

.team-card__inner {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}

.team-card__left {
  flex-shrink: 0;
}
.team-card__label {
  display: inline-block;
  padding-block-end: 1rem;
  border-block-end: 1px solid #000;
  font-size: 14rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.15em;
  padding-inline-start: 2rem;
  margin-block-end: 0;
}
.team-card__title {
  margin-block: var(--leading-trim);
  margin-top: 20rem;
  color: var(--color-primary);
  font-size: 19rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.75;
  letter-spacing: 0.13em;
}

/* 右カラム */
.team-card__right {
  flex: 1;
  position: relative;
}
.team-card__lead {
  margin-block-start: 11rem;
  font-size: 14rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.15em;
  text-align: justify;
  color: var(--color-text);
}

/* チームリスト */
.team-list {
  display: flex;
  flex-direction: column;
  gap: 18rem;
  margin-top: 30rem;
  list-style: none;
  margin-left: 3rem;
}
.team-list__item {
  padding-inline-start: 17rem;
  position: relative;
}
.team-list__item::before {
  --_size: 6rem;
  content: '';
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: calc(0.5em - 3rem);
  width: var(--_size);
  height: var(--_size);
  border-radius: 50%;
  background-color: var(--color-secondary);
}
.team-list__name {
  margin-block: var(--leading-trim);
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-size: 16rem;
  font-weight: 700;
  line-height: 2.05;
  letter-spacing: 0.1em;
}
.team-list__text {
  margin-block: var(--leading-trim);
  margin-top: 10rem;
  color: var(--color-text);
  font-size: 13rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.1em;
}

/* 吹き出し */
.team-card__illust {
  position: absolute;
  inset-block-end: 23rem;
  inset-inline-end: 36rem;
  width: 170rem;
  height: 70rem;
}
.team-card__illust-inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.team-card__fukidashi {
  position: absolute;
  inset-block-end: 0rem;
  inset-inline-start: -4rem;
  width: 130rem;
  height: auto;
}
.team-card__standing {
  display: block;
  width: 39rem;
  height: auto;
  position: absolute;
  top: 0;
  right: 0;
}
.team-card__illust-top {
  position: absolute;
  inset-inline-end: 35rem;
  inset-block-start: 45rem;
}
.team-card__illust-top img {
  width: 64rem;
  height: 83rem;
}

/* ==========================================================================
 MARK: system-welfare
========================================================================== */

.system-welfare {
  margin-block-start: 95rem;
}
.system-welfare.system-container {
  padding-inline: 37rem;
}
.welfare-intro.system-intro {
  margin-top: 0;
  padding-inline: 0;
}
.welfare-intro__illust img {
  display: block;
  width: 100%;
  height: auto;
}
.welfare-intro .system-intro__titlearea {
  margin-block-start: 20rem;
}
.welfare-intro .system-intro__text {
  line-height: 2;
}

.welfare-list {
  display: flex;
  flex-direction: column;
  gap: 45rem;
  margin-block-start: 35rem;
}
.welfare-block {
  display: flex;
  flex-direction: column;
  gap: 30rem;
}
.welfare-block.welfare-block--03 {
  gap: 20rem;
}
.welfare-block__pic {
  flex-shrink: 0;
  width: 100%;
  overflow: hidden;
  height: auto;
  aspect-ratio: 360 / 270;
}
.welfare-block__pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.welfare-block__txtarea {
  flex: 1;
  min-width: 0;
  padding-inline: 3rem;
}
.welfare-block__heading {
  margin-block-end: 20rem;
}
.welfare-block__lead {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 18rem;
  line-height: 1.95;
  letter-spacing: 0.12em;
}
.welfare-tag {
  display: inline-block;
  margin-inline: 6rem;
  padding: 5rem 6rem 5rem 6rem;
  border-radius: 2rem;
  background-color: var(--color-primary);
  color: #FFFFFF;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 20rem;
  line-height: 1;
  letter-spacing: 0.1em;
}
_::-webkit-full-page-media, _:future, :root .welfare-tag {
  padding-bottom: 4rem;
}
.welfare-tag--mis-0-sp {
  margin-inline-start: 0;
}
.welfare-block__body p {
  margin-block: var(--leading-trim);
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.95;
  text-align: justify;
  letter-spacing: 0.08em;
}
.welfare-block__body p + p {
  margin-top: 15rem;
}

/* ==========================================================================
   MARK: system-plus
========================================================================== */

.system-plus {
  position: relative;
  z-index: var(--z-index-system-plus);
  margin-block-start: 75rem;
}
.system-plus.system-container {
  padding-inline: 28rem;
}

.plus-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10;
  background-color: rgba(184, 214, 226, 0);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  pointer-events: none;
}
.plus-overlay.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.plus-list {
  display: flex;
  flex-direction: column;
  gap: 30rem;
}

/* pluscard */
.plus-card {
  position: relative;
  inset-block-start: 0;
  width: 100%;
  z-index: 11;
  background-color: #fff;
  cursor: pointer;
  transition: all 0.3s ease-out;
}
.plus-card:nth-child(1) {
  inset-inline-start: 0;
}
.plus-card:nth-child(2) {
  inset-inline-end: 0;
}
.plus-card.is-open {
  z-index: 100;
  border-bottom-left-radius: 30rem;
  border-bottom-right-radius: 30rem;
}

.plus-card__head {
  position: relative;
  padding: 24rem 25rem 26rem;
}
.plus-card__lead {
  margin-bottom: 0;
  margin-inline-start: 2rem;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 13rem;
  line-height: 1.85;
  letter-spacing: 0.13em;
  white-space: nowrap;
}
.plus-card__title {
  display: inline-block;
  margin-top: 11rem;
  margin-bottom: 0;
  border-block-end: 5rem solid var(--color-orange-light);
  border-radius: 2rem;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 20rem;
  line-height: 0.7;
  letter-spacing: 0.12em;
  white-space: nowrap;
}
.plus-card__illust {
  position: absolute;
  pointer-events: none;
}
.plus-card__illust img {
  display: block;
  width: 100%;
  height: auto;
}
.plus-card__illust--dance {
  inset-block-start: -10rem;
  inset-inline-end: 35rem;
  width: 75rem;
}
.plus-card__illust--reading {
  inset-block-start: -9rem;
  inset-inline-end: 37rem;
  width: 45rem;
}
.plus-card__body {
  overflow: hidden;
  max-height: 0;
  cursor: auto;
  transition: max-height 0.3s ease;
}
.plus-card.is-open .plus-card__body {
  transition: max-height 0.5s ease;
  max-height: 2000rem;
}
@media (hover: hover) and (pointer: fine) {
  .plus-card:hover .icon-plus,
  .plus-card:focus-visible .icon-plus {
    animation: popupHover 0.4s ease-out forwards;
  }
  .plus-card:hover .icon-plus__cross,
  .plus-card:focus-visible .icon-plus__cross {
    transform: rotateZ(90deg);
  }
  .plus-card.is-open:hover .icon-plus__cross,
  .plus-card.is-open:focus-visible .icon-plus__cross {
    transform: rotateZ(0deg);
  }
}

/* プラスボタン*/
.plus-card .plus-card__btn {
  position: absolute;
  inset-block-start: -12rem;
  inset-inline-end: -12rem;
  width: 30rem;
  height: 30rem;
  border-radius: 6rem;
  z-index: 2;
}

.plus-def {
  padding: 8rem 22rem 12rem;
}
.plus-def__row {
  display: flex;
  gap: 0;
  align-items: flex-start;
  padding-block: 20rem;
  padding-inline: 4rem;
  position: relative;
  flex-direction: column;
}
.plus-def__row:has(.plus-def__note) {
  padding-bottom: 3em;
}
.plus-def__row::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-image: url(../img/bg-bdr_dashed.svg);
  background-repeat: repeat-x;
}
.plus-def__row:last-child::before {
  display: none;
}

.plus-def__row:first-child {
  padding-block-start: 0;
}
.plus-def__term {
  flex-shrink: 0;
  width: 96rem;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 16rem;
  line-height: 1.65;
  letter-spacing: 0.06em;
  width: 100%;
  margin-block-end: .5em;
}
.plus-def__note {
  display: block;
  margin-block-start: 12rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 12rem;
  line-height: 1.55;
  letter-spacing: 0.03em;
  font-family: var(--font-gothic-jp);
  position: absolute;
  bottom: 1.5em;
  left: 0;
}
.plus-def__desc {
  flex: 1;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
  text-align: justify;
}
.plus-def__desc:has(p) {
  padding-top: 4rem;
}
.plus-def__desc p {
  margin-block: var(--leading-trim);
  margin-bottom: 7rem;
  font-size: 15rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.plus-def__desc p:last-child {
  margin-bottom: 0 !important;
}
.plus-def__small {
  font-size: 13rem;
}

/* ==========================================================================
  MARK: system-video
========================================================================== */
.system-video {
  margin-block-start: 50rem;
}
.video-list {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 30rem;
}
.video-card {
  position: relative;
  z-index: 0;
  width: 100%;
}

.video-card__iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 320 / 215;
  border: 0;
  pointer-events: none;
}

.video-card__hover {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.video-card.is-playing .video-card__hover {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.video-card.is-playing .video-card__iframe {
  pointer-events: auto;
}

.video-card__btn {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  translate: -50% -50%;
  width: 78rem;
  height: 78rem;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .video-card:hover .video-card__btn {
    animation: popupHover 0.4s ease-out forwards;
  }
}

.video-card__illust {
  position: absolute;
  inset-block-end: -30rem;
  inset-inline-start: 12rem;
  width: 142rem;
  height: auto;
  opacity: 0;
  transform: translateY(8rem);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
@media (hover: hover) and (pointer: fine) {
  .video-card:hover .video-card__illust {
    opacity: 1;
    transform: translateY(0);
  }
}


/* MARK: data
---------------------------------------------------------------------------*/
.data {
  position: relative;
  padding-block-end: 140rem;
}
.data::before {
  display: block;
  content: "";
  position: absolute;
  width: 100%;
  bottom: 0;
  left: 0;
  height: calc(100% - var(--bg-wave-height));
  background-image: url(../img/bg-cross.png);
  background-repeat: repeat;
  z-index: 0;
}
.data .bg-wave-note {
  height: calc(var(--bg-wave-height) + 70rem);
}
.data__illust-stage {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 0;
  width: 100%;
  max-width: var(--base-width);
  height: 100%;
  pointer-events: none;
}
.data__illust-desk {
  position: absolute;
  top: 40rem;
  right: 5%;
  width: 134rem;
}

.data-contents {
  position: relative;
  z-index: 1;
}
.data-contents__inner {
  width: 100%;
  margin-inline: auto;
  max-width: calc(1105rem + var(--spacing-content-inline) * 2);
  padding-inline: calc(var(--spacing-content-inline) + 10rem);
}

.data-intro {
  margin-block-end: 25rem;
  margin-block-start: -60rem;
}
.data-intro__en {
  margin-bottom: 0;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 13rem;
  line-height: 1.55;
  letter-spacing: 0.08em;
  color: #78C4E9;
}
.data-intro__title {
  margin-block-start: 10rem;
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 19rem;
  line-height: 1.8;
  letter-spacing: 0.12em;
}
.data-intro__lead {
  margin-block-start: 8rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 2.05;
  letter-spacing: 0.1em;
  text-align: justify;
}

.data-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 20rem;
}
.data-list--top {
  margin-block-end: 20rem;
}
.data-list > .data-card {
  flex: 1 1 0;
  min-width: 0;
}

/* --- data card --- */
.data-card {
  --dogear: 26rem;
  position: relative;
  padding-block: 22rem 10rem;
  padding-inline: 28rem;
}
.data-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-color: #FAF8F2;
  background-image: url(../img/bg-card_texture.png);
  background-repeat: repeat;
  clip-path: polygon(0 0,
      100% 0,
      100% calc(100% - var(--dogear)),
      calc(100% - var(--dogear)) 100%,
      0 100%);
}
.data-card::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  width: var(--dogear);
  height: var(--dogear);
  background-color: #F3EEE0;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  filter: drop-shadow(-1rem -1rem 2rem rgba(0, 0, 0, 0.08));
}
.data-card > * {
  position: relative;
  z-index: 2;
}
.data-card__label {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 16rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.data-card__desc {
  margin-block-start: 7rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.7;
  letter-spacing: 0.14em;
}
.data-card__num {
  display: flex;
  align-items: baseline;
  gap: 6rem;
  margin-block-start: 8rem;
  margin-bottom: 0;
  color: var(--color-primary);
  white-space: nowrap;
}
.data-card__num-main {
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 55rem;
  line-height: 1;
  letter-spacing: 0.02em;
}
.data-card__num-unit {
  font-weight: 500;
  font-size: 21rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.data-card__num-unit--en {
  font-family: var(--font-gothic-en);
  font-size: 28rem;
  letter-spacing: 0.08em;
}

/* --- data card illust--- */
.data-card__illust {
  position: absolute;
  display: block;
  pointer-events: none;
}
.data-card__illust--maternity {
  inset-block-end: -32rem;
  inset-inline-end: 35rem;
  width: 40rem;
  height: auto;
}
.data-card__illust--elder {
  inset-block-end: -9rem;
  inset-inline-end: 43rem;
  width: 33rem;
  height: auto;
}
.data-card__illust--resting {
  inset-block-start: -10rem;
  inset-inline-end: 11rem;
  width: 40rem;
  height: auto;
}
/* MARK: program
---------------------------------------------------------------------------*/
.program.bg-wave {
  margin-block-start: calc(-1 * var(--bg-wave-height));
  padding-block-end: 420rem;
}
.program-container {
  width: 100%;
  margin-inline: auto;
  max-width: calc(1080rem + var(--spacing-content-inline) * 2);
  padding-inline: 18rem;
  margin-top: -160rem;
}

.program-main {
  position: relative;
  padding-block-start: 117rem;
}
.program-main__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1080 / 755;
  object-fit: cover;
}
.program-main__title {
  position: absolute;
  inset-block-start: 52rem;
  inset-inline-end: 10rem;
  z-index: 1;
  width: 82rem;
  height: auto;
}

.program-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-block-start: 30rem;
  padding-inline: 20rem;
  text-align: center;
}
.program-intro__label {
  margin-bottom: 0;
  color: #000000;
  font-weight: 500;
  font-size: 15rem;
  line-height: 1;
  letter-spacing: 0.25em;
}
.program-intro__title {
  margin-block-start: 20rem;
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 19rem;
  line-height: 1.65;
  letter-spacing: 0.16em;
}
.program-intro__lead {
  margin-block-start: 15rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  text-align: justify;
  line-height: 1.95;
  letter-spacing: 0.06em;
}

/* --- プログラム3カード --- */
.program-list {
  display: flex;
  flex-direction: column;
  gap: 50rem;
  margin-block-start: 35rem;
  padding-bottom: 70rem;
  padding-inline: 20rem;
}
.program-card {
  width: 100%;
}
.program-card__pic {
  width: 100%;
  position: relative;
}
.program-card__pic img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 320 / 240;
  object-fit: cover;
}
.program-card__pic .program-card__karate {
  position: absolute;
  width: 94rem;
  height: 56rem;
  bottom: -8rem;
  right: 6rem;
}
.program-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22rem;
  margin-block-start: 30rem;
}
.program-card__title {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 18rem;
  margin-block: var(--leading-trim);
  line-height: 1.4;
  letter-spacing: 0.15em;
  text-align: center;
}
.program-card__text {
  margin-block: var(--leading-trim);
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.95;
  letter-spacing: 0.08em;
  text-align: justify;
}
.program-video {
  width: 95%;
  margin-inline: auto;
}
.program-video .video-list {
  gap: 35rem;
}
.program-video__head {
  position: relative;
  color: var(--color-primary);
  margin-block: var(--leading-trim);
  font-family: YuGothic;
  font-size: 16rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.8;
  letter-spacing: 0.1em;
  padding-inline-start: 40rem;
  margin-block-end: 28rem;
}
.program-video__head::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 30rem;
  height: 1px;
  background-color: var(--color-primary);
}

/* --- program greeting --- */
.program-greeting {
  display: flex;
  flex-direction: column;
  gap: 30rem;
  margin-block-start: 90rem;
  padding: 0 10rem;
}
.greeting-imgarea {
  flex-shrink: 0;
  display: flex;
  gap: 15rem;
  position: relative;
}
.greeting-imgarea__label {
  writing-mode: vertical-rl;
  font-feature-settings: initial;
  margin: 0;
  margin-top: -14rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 1.4;
  letter-spacing: 0.22em;
  white-space: nowrap;
}
.greeting-imgarea__pic {
  width: 62%;
}
.greeting-imgarea__pic img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.greeting-content {
  position: relative;
  flex: 1;
  min-width: 0;
  margin-block-end: -5rem;
}
.greeting-info {
  padding-inline-start: 11%;
}
.greeting-info__text {
  padding-block-start: 10rem;
}
.greeting-info__text p {
  margin-block: var(--leading-trim);
  margin-bottom: 15rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.08em;
  text-align: justify;
}
.greeting-info__text p:last-child {
  margin-bottom: 0;
}

/* 動画リンク */
.greeting-info__movie {
  display: inline-flex;
  align-items: center;
  gap: 14rem;
  margin-block-start: 18rem;
  padding: 13rem 16rem;
  border: 0;
  border-radius: 5rem;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  width: 100%;
  background: #CD201F;
}
.greeting-info__movie-icon {
  flex-shrink: 0;
  width: 28rem;
  height: auto;
}
.greeting-info__movie-icon path {
  fill: #fff;
}
.greeting-info__movie-icon path + path {
  fill: #CD201F;
}
.greeting-info__movie-text {
  color: #fff;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 13rem;
  line-height: 1.2;
  letter-spacing: 0.1em;
  padding-block-end: 1rem;
  border-block-end: 1rem solid #fff;
}

.greeting-profile {
  margin-block-start: 28rem;
  display: flex;
  flex-direction: column;
  padding-inline-start: 11%;
}
.greeting-profile__head {
  display: flex;
  align-items: baseline;
  gap: 13rem;
}
.greeting-profile__name {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 19rem;
  line-height: 1.85;
  letter-spacing: 0.03em;
}
.greeting-profile__link {
  margin-block: var(--leading-trim);
  padding-block-end: 2rem;
  border-block-end: 1px solid var(--color-border);
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  transform: translateY(-3rem);
  line-height: 1;
  letter-spacing: 0.05em;
  text-decoration: none;
}
.greeting-profile__role {
  margin-block: var(--leading-trim);
  margin-block-start: 5rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 13rem;
  line-height: 1.9;
  letter-spacing: 0.09em;
  white-space: nowrap;
}

/* 出版書籍 */
.greeting-book {
  display: flex;
  align-items: flex-start;
  gap: 16rem;
  margin-block-start: 20rem;
}
.greeting-book__pic {
  flex-shrink: 0;
  width: 57rem;
}
.greeting-book__pic img {
  display: block;
  width: 100%;
  height: auto;
}
.greeting-book__link {
  display: inline-flex;
  align-items: center;
  gap: 4rem;
  text-decoration: none;
  position: relative;
  transform: translateY(70%);
}
.greeting-book__text {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.3;
  letter-spacing: 0.07em;
  padding-bottom: 1rem;
  border-block-end: 1px solid var(--color-primary);
  transition: border-block-end 0.2s ease;
}
.greeting-book__title {
  position: absolute;
  bottom: -2rem;
  left: calc(11% + 73rem);
  font-size: 14rem;
  line-height: 1.5;
  letter-spacing: 0.14em;
}
.greeting-book__arrow {
  flex-shrink: 0;
  width: 18rem;
  height: 16rem;
}
.greeting-catch {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  margin: 0;
  writing-mode: vertical-rl;
  font-feature-settings: initial;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 21rem;
  line-height: 1.5;
  letter-spacing: 0.23em;
}
.greeting-book__arrow circle {
  fill: transparent;
  transition: fill 0.2s ease-out;
}
.greeting-book__arrow path {
  transition: stroke 0.2s ease-out;
}


/* MARK: staff
---------------------------------------------------------------------------*/
.staff.bg-wave {
  margin-block-start: -330rem;
  padding-block-end: 200rem;
  position: relative;
}
.staff.bg-wave::before {
  content: "";
  display: block;
  position: absolute;
  inset-block-start: var(--bg-wave-height);
  inset-inline-start: 0;
  width: 100%;
  height: calc(100% - var(--bg-wave-height));
  background-color: #EBF0F2;
  z-index: 0;
}
.staff-container {
  --_max-width: 1080rem;
  width: 100%;
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  margin-inline: auto;
  padding-inline: var(--spacing-content-inline);
  position: relative;
}
.staff-contents {
  margin-top: -35rem;
}

/* --- intro --- */
.staff-intro {
  position: relative;
  z-index: 1;
  margin-block-end: 25rem;
  padding-inline: 10rem;
}
.staff-comment__slide .staff-intro {
  margin-block-end: 35rem;
}
.staff-intro__small {
  margin: 0 0 0 2rem;
  color: #78C4E9;
  font-family: var(--font-gothic-jp-maru);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.8;
  letter-spacing: 0.14em;
}
.staff-intro__title {
  display: flex;
  align-items: flex-end;
  color: var(--color-primary);
  line-height: 1;
}
.staff-intro__title-jp {
  font-family: var(--font-gothic-jp-maru);
  font-weight: 700;
  font-size: 20rem;
  letter-spacing: 0.075em;
  transform: translateY(-3rem);
}
.staff-intro__title-num {
  margin-inline-start: 6rem;
  letter-spacing: 0.03em;
  transform: translateY(-1rem);
}
.staff-intro__title-num img {
  width: 80rem;
  height: auto;
}
.staff-intro__title-dot {
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 19rem;
  padding-inline-start: 7rem;
  transform: translateY(-1rem);
}
.staff-intro__lead {
  margin-block-start: 22rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.95;
  letter-spacing: 0.08em;
  text-align: justify;
}
.staff-intro__illust {
  position: absolute;
  inset-block-start: -100rem;
  inset-inline-end: 20rem;
  width: 150rem;
  height: auto;
  pointer-events: none;
}


/*
MARK: staff-comment
------------------------------------------------ */
/* utility */
.u-font-size-12 {
  font-size: 12rem;
}
.u-font-size-14 {
  font-size: 14rem;
}
.u-font-size-15 {
  font-size: 15rem;
}
.u-font-size-16 {
  font-size: 16rem;
}
.u-font-size-17 {
  font-size: 17rem;
}
.u-font-size-18 {
  font-size: 18rem;
}
.u-font-size-19 {
  font-size: 19rem;
}
.u-font-size-20 {
  font-size: 20rem;
}
.u-font-size-21 {
  font-size: 21rem;
}
.u-font-size-22 {
  font-size: 22rem;
}
.u-font-size-23 {
  font-size: 23rem;
}
/* @media (min-width: 700px) { */
.staff-comment__txt .u-font-size-12 {
  margin-bottom: 2rem;
  font-size: 11rem;
}
.staff-comment__txt .u-font-size-14 {
  margin-bottom: 2rem;
  font-size: 13rem;
}
.staff-comment__txt .u-font-size-15 {
  font-size: 14rem;
}
.staff-comment__txt .u-font-size-16 {
  font-size: 15rem;
}
.staff-comment__txt .u-font-size-17 {
  font-size: 16rem;
}
.staff-comment__txt .u-font-size-18 {
  font-size: 17rem;
}
.staff-comment__txt .u-font-size-19 {
  font-size: 18rem;
}
.staff-comment__txt .u-font-size-20 {
  font-size: 19rem;
}
.staff-comment__txt .u-font-size-21 {
  font-size: 20rem;
}
.staff-comment__txt .u-font-size-22 {
  font-size: 21rem;
}
.staff-comment__txt .u-font-size-23 {
  font-size: 22rem;
}
.staff-comment__txt .u-no-wrap {
  white-space: nowrap;
}
/* } */
.u-underline, .u-underline-sp {
  background-image: linear-gradient(to top, var(--color-secondary-light) 0, var(--color-secondary-light) 34%, transparent 34%, transparent 100%);
  background-repeat: no-repeat;
  background-position: left calc(100% - 4rem);
  background-size: 100% 0.9em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.staff-comment {
  position: relative;
  margin-block-start: 0;
  padding-block: 10rem 0;
  z-index: 1;
}
/*.staff-comment::before {
  display: block;
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #EBF0F2;
  z-index: -1;
}*/

/* SP: 背景イラストは非表示（スライダー廃止でセクションが低くなり、はみ出すため） */
.staff-comment__bg {
  display: none;
}
.staff-comment__pickup-sp {
  position: relative;
  width: 100%;
  max-width: 375rem;
  height: 485rem;
  margin-inline: auto;
  margin-block: 0rem 25rem;
}
.staff-comment__pickup-bg {
  position: absolute;
  inset-block-start: 36rem;
  inset-inline-start: -10rem;
  width: 307rem;
  height: auto;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
  opacity: 80%;
}
.staff-comment__pickup-sp .staff-comment__item {
  position: absolute;
  z-index: 1;
  inset-block-start: calc(var(--y) * 1rem);
  inset-inline-start: calc(var(--x) * 1rem);
  margin: 0;
  padding: calc(var(--p, 18) * 0.8rem) calc(var(--p, 18) * 1.1rem);
  translate: none;
}
.staff-comment__pickup-sp .staff-comment__item--r {
  inset-inline-start: auto;
  inset-inline-end: calc(var(--r) * 1rem);
}
.staff-comment__pickup-sp .u-underline {
  background-position: left calc(100% - 2rem);
}

/* モーダル起動ボタン */
.staff-comment__more {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-inline: auto;
  padding: 20rem 34rem;
  border: 0;
  border-radius: 40rem;
  background-color: var(--color-primary);
  color: #FFFFFF;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 16rem;
  line-height: 1;
  letter-spacing: 0.16em;
  white-space: nowrap;
  cursor: pointer;
  width: 100%;
  max-width: 320rem;
}

/* ページネーション */
.staff-comment__nav {
  display: none;
}
.staff-pager {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 20.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
/* 円をつなぐ dashed ライン（疑似要素＋背景リピート） */
.staff-pager::before {
  content: "";
  position: absolute;
  inset-inline: 17rem;
  inset-block-start: 50%;
  height: 2rem;
  transform: translateY(-50%);
  background-image: url(../img/bg-bdr_dashed_blue.svg);
  background-repeat: repeat-x;
  background-size: 4rem 2rem;
  z-index: 0;
}
.staff-pager__item {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0;
}
.staff-pager__btn {
  display: grid;
  place-items: center;
  width: 34rem;
  height: 34rem;
  padding: 0;
  border-radius: 50%;
  background-color: #FFFFFF;
  color: var(--color-primary);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}
.staff-pager__num {
  display: block;
  width: 100%;
  height: 10rem;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  transform: translate(0.5rem, 0.5rem);
}
@media (hover: hover) and (pointer: fine) {
  .staff-pager__btn:hover,
  .staff-pager__btn:focus-visible {
    background-color: var(--color-secondary-light);
  }
}

/* current */
.staff-pager__item.is-current .staff-pager__btn {
  border-color: var(--color-primary);
  background-color: var(--color-primary);
  color: #FFFFFF;
}

/* SP: コメント一覧モーダル（スライダーは廃止し、5枚のスライドを縦積みで表示） */
.staffcm-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-index-modal);
  background-color: rgba(52, 55, 58, 0.85);
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.staff-comment:has(.staffcm-modal.is-open) {
  z-index: var(--z-index-modal);
}
.staffcm-modal.is-open {
  visibility: visible;
  opacity: 1;
}
.staffcm-modal__close {
  position: absolute;
  z-index: 3;
  inset-block-start: 20rem;
  inset-inline-end: 15rem;
  width: 50rem;
  height: 46rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.staffcm-modal__close img {
  width: 100%;
  height: 100%;
}
.staffcm-modal__scroll {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-block-start: 0;
}

/* モーダル内キャンバス：スライダー用の固定高さ・絶対配置を解除して縦積みに */
.staff-comment__canvas {
  position: relative;
  z-index: 2;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 0;
  background-color: #EBF0F2;
  opacity: 1;
}
.staff-comment__canvas .staff-intro__small {
  font-size: 15rem;
}
.staff-comment__canvas .staff-intro__title-jp {
  font-size: 20rem;
}
.staff-comment__canvas .staff-intro__title-num img {
  width: 77rem;
}
.staff-comment__slider {
  height: auto;
}
.staff-comment__slide {
  position: relative;
  height: auto;
  padding: 0 25rem 0;
  outline: none;
}
.staff-comment__slide:first-child {
  padding-block-start: 55rem;
}
/* 5セクション*/
.staff-comment__slide:nth-child(1) {
  background-color: #EBF0F2;
  padding-block-start: 100rem;
}
.staff-comment__slide:nth-child(2) {
  background-color: #C2DBE5;
  margin-block-start: -50rem;
}
.staff-comment__slide:nth-child(3) {
  background-color: #9CC6D9;
  margin-block-start: -40rem;
}
.staff-comment__slide:nth-child(4) {
  background-color: #6AA0C4;
  margin-block-start: -40rem;
}
.staff-comment__slide:nth-child(5) {
  background-color: #3576B3;
  margin-block-start: -40rem;
  margin-block-end: -20rem;
}

/* セクション区切りの波 */
.staff-comment__slide:not(:last-child)::after {
  content: "";
  display: block;
  margin-inline: -25rem;
  margin-block-start: 10rem;
  aspect-ratio: 375 / 127;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: bottom;
}
.staff-comment__slide:nth-child(1)::after {
  background-image: url(../img/bg-wave_modal_sp01.svg);
}
.staff-comment__slide:nth-child(2)::after {
  background-image: url(../img/bg-wave_modal_sp02.svg);
}
.staff-comment__slide:nth-child(3)::after {
  background-image: url(../img/bg-wave_modal_sp03.svg);
  margin-block-start: -60rem;
}
.staff-comment__slide:nth-child(4)::after {
  background-image: url(../img/bg-wave_modal_sp04.svg);
  margin-block-start: -70rem;
}

/* 吹き出し：flexの行組みで流し込む（行の区切りは __br 要素で確定） */
.staff-comment__group {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  column-gap: 10rem;
  max-width: 360rem;
  width: 100%;
  margin-inline: auto;
}
/* 行区切り（マークアップ上の空要素。ここで必ず折り返す） */
.staff-comment__br {
  flex-basis: 100%;
  height: 0;
}

/* 吹き出し：絶対配置を解除して流し込み。--sp-x / --sp-y（unitless）でデザイン通りにずらす */
.staff-comment__item {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  margin-block-end: 25rem;
  padding: calc(var(--sp-p-b, 12) * 1rem) max(calc(var(--sp-p-i, 16) * 1rem), 14rem);
  border-radius: 7rem;
  background-color: #FFFFFF;
  box-shadow: 0 3rem 6.5rem rgba(53, 74, 87, 0.15);
  translate: calc(var(--sp-x, 0) * 1rem) calc(var(--sp-y, 0) * 1rem);
}
/* 行内で単独の吹き出しを右側に寄せる（デザインで右寄り配置の場合） */
.staff-comment__item--sp-right {
  margin-inline-start: auto;
}
.staff-comment__txt {
  margin: 0;
  text-align: left;
}
.staff-comment__line {
  display: block;
  width: fit-content;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-maru);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  font-feature-settings: "palt" 1;
}
/* モーダル内は全行 */
.staffcm-modal .staff-comment__line {
  font-size: calc(var(--sp-fs, 14) * 1rem);
  /* font-size: 13.5rem; */
}
/* 吹き出しのしっぽ */
.staff-comment__item::after {
  content: "";
  position: absolute;
  inset-inline-end: 13rem;
  inset-block-end: -8rem;
  width: 15rem;
  height: 16rem;
  background: url(../img/bg-comment.svg) no-repeat center / contain;
  pointer-events: none;
}


/*
 MARK: staff-interview
--------------------------- */
.staff-interview {
  margin-block-start: 80rem;
  position: relative;
}

.staff-interview__head {
  display: flex;
  align-items: flex-end;
  gap: 20rem;
  justify-content: space-between;
}
.staff-interview__en {
  margin: 0 0 10rem 1rem;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.55;
  letter-spacing: 0.08em;
}
.staff-interview__jp {
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 21rem;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.staff-interview__nav {
  display: flex;
  align-items: center;
  gap: 8rem;
  margin-block-end: 0;
}
.staff-interview__arrow {
  display: grid;
  place-items: center;
  width: 30rem;
  height: 30rem;
  padding: 0;
  border-radius: 50%;
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: #FFFFFF;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.staff-interview__arrow:hover,
.staff-interview__arrow:focus-visible {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: #FFFFFF;
}
.staff-interview__arrow-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.staff-interview__arrow--prev .staff-interview__arrow-icon {
  transform: rotateY(-180deg) translateX(1px);
}
.staff-interview__arrow--next .staff-interview__arrow-icon {
  transform: translateX(1px);
}
.staff-interview__arrow-icon svg {
  width: 10rem;
  height: 10rem;
}

.staff-interview__slider {
  margin-block-start: 28rem;
}
.staff-interview__slider .slick-list {
  padding-block-start: 20rem;
  padding-block-end: 46rem;
  padding-inline-start: max(var(--spacing-content-inline), calc((100vw - 1080rem) / 2));
  overflow: hidden;
}
.staff-interview__slider .slick-track {
  display: flex;
  align-items: flex-start;
  padding: 20rem 0 30rem;
}

/*
MARK: .interview-modal（SP: 名前→イメージ→インタビュー→ナビの縦積み）
*/
.interview-modal {
  position: fixed;
  inset: 0;
  z-index: 1150;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.interview-modal.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.interview-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: #EBF0F2;
  cursor: pointer;
}
.interview-modal__close {
  position: absolute;
  z-index: 3;
  inset-block-start: 24rem;
  inset-inline-end: 17rem;
  width: 40rem;
  height: 16.5rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}
.interview-modal__close img {
  width: 100%;
  height: 100%;
}
.interview-modal__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 80rem 18rem 0 17rem;
  pointer-events: none;
  opacity: 0;
  transform: translateY(15rem);
  transition: transform 0.3s cubic-bezier(0.165, 0.840, 0.440, 1.000), opacity 0.2s ease-out;
}
.interview-modal__panel::before {
  content: "Oheso Staff Interview";
  position: absolute;
  inset-block-start: 57rem;
  inset-inline-start: 20rem;
  z-index: 2;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 400;
  font-size: 14rem;
  line-height: 1;
  letter-spacing: 0.08em;
  white-space: nowrap;
  pointer-events: none;
}
.interview-modal--student .interview-modal__panel::before {
  content: "Oheso Student Interview";
}
.interview-modal__label {
  display: none;
}
.interview-modal.is-open .interview-modal__close {
  opacity: 1;
  transition: opacity 0.2s ease-out 0.2s, transform 0.2s ease-out 0.2s;
}
.interview-modal.is-open .interview-modal__panel {
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.4s cubic-bezier(0.165, 0.840, 0.440, 1.000) 0.2s, opacity 0.2s ease-out 0.2s;
}
.interview-modal.is-open .interview-modal__panel-inner {
  pointer-events: auto;
}
.interview-modal__panel-inner {
  position: relative;
  background-color: #FFFFFF;
  background-image: linear-gradient(rgba(120, 196, 233, 0.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120, 196, 233, 0.13) 1px, transparent 1px);
  background-size: 27rem 27rem;
  border: 1rem solid #78C4E9;
  height: 100%;
  overflow: hidden;
}
/* スライド自体をスクロールコンテナにする（見出し・ナビはsticky） */
.interview-modal__slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.interview-modal__slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
  transform: translateX(0) translateY(0);
}
.interview-modal__slide.is-leaving {
  visibility: visible;
  z-index: 2;
}
@keyframes modal_animation {
  from {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
  25% {
    transform: translateX(-10rem) translateY(-10rem);
    opacity: 1;
  }
  49% {
    transform: translateX(-15rem) translateY(-15rem);
    opacity: 0;
  }
  50% {
    transform: translateX(15rem) translateY(15rem);
    opacity: 0;
  }
  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}
@keyframes modal_animation_nextpanel {
  from {
    transform: translateX(10rem) translateY(10rem);
    opacity: 0;
  }
  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}
@keyframes modal_animation_prev {
  from {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
  49% {
    transform: translateX(20rem) translateY(20rem);
    opacity: 0;
  }
  50% {
    transform: translateX(-20rem) translateY(-20rem);
    opacity: 0;
  }
  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}
@keyframes modal_animation_nextpanel_prev {
  from {
    transform: translateX(-10rem) translateY(-10rem);
    opacity: 0;
  }
  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}
.interview-modal__panel-inner:has(.interview-modal__slide.is-leaving--next) {
  animation: modal_animation 0.3s ease-out forwards;
  opacity: 0;
}
.interview-modal__panel-inner:has(.interview-modal__slide.is-active-next) {
  animation: modal_animation_nextpanel 0.2s ease-out forwards;
}

.interview-modal__panel-inner:has(.interview-modal__slide.is-leaving--prev) {
  animation: modal_animation_prev 0.3s ease-out forwards;
  opacity: 0;
}
.interview-modal__panel-inner:has(.interview-modal__slide.is-active-prev) {
  animation: modal_animation_nextpanel_prev 0.2s ease-out forwards;
}

/* 紙の重なり（右下に7,13ずらし） */
.interview-modal__panel-back {
  position: absolute;
  inset-block-start: 88rem;
  inset-inline-start: 24rem;
  width: calc(100% - 35rem);
  height: calc(100% - 80rem);
  border: 1rem solid #78C4E9;
  pointer-events: none;
  z-index: -1;
  background: #ffff;
  background-image: linear-gradient(rgba(120, 196, 233, 0.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120, 196, 233, 0.13) 1px, transparent 1px);
  background-size: 27rem 27rem;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

/* 見出し（スクロールで上部に固定） */
.interview-modal__head {
  inset-block-start: 0;
  z-index: 3;
  display: flex;
  align-items: stretch;
  flex-shrink: 0;
  height: 43rem;
  background-color: #FFFFFF;
  border-block-end: 1rem solid #78C4E9;
  transition: opacity 0.25s ease;
}
.interview-modal__num {
  display: grid;
  place-items: center;
  width: 43rem;
  flex-shrink: 0;
  border-inline-end: 1rem solid #78C4E9;
  background-image: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.8)), url(../img/bg-card_texture.png);
  background-size: auto, 82rem 82rem;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 16rem;
  letter-spacing: 0.12em;
}
.interview-modal__person {
  display: flex;
  align-items: baseline;
  gap: 8rem;
  padding-inline-start: 13rem;
  align-self: center;
}
.interview-modal__name {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  letter-spacing: 0.05em;
}
.interview-modal__school {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 12rem;
  letter-spacing: 0.07em;
}

/* 本文：写真→インタビュー→ナビの縦積み
   （PCの左右カラムは全幅ブロック化。ナビはJSでbody末尾へ移動して並べ替え） */
.interview-modal__body {
  display: flex;
  flex-direction: column;
}
.interview-modal__left,
.interview-modal__right {
  width: 100%;
}

/* イメージエリア */
.interview-modal__main {
  position: relative;
  padding: 20rem;
  border-block-end: 1rem solid #78C4E9;
}
.interview-modal__main-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
.interview-modal__bubble {
  position: absolute;
  inset-inline-end: 12rem;
  inset-block-end: 38rem;
  padding: 14rem 14rem 15rem;
  border-radius: 10rem;
  background-color: #FFFFFF;
  box-shadow: 0 4rem 5rem rgba(0, 0, 0, 0.11);
}
.interview-modal__bubble-text {
  display: block;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.interview-modal__bubble::after {
  content: "";
  position: absolute;
  inset-block-start: -13rem;
  inset-inline-end: 30rem;
  width: 14rem;
  height: 14rem;
  background-color: #FFFFFF;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}

/* インタビュー（QA） */
.interview-modal__scroll {
  height: auto;
  overflow: visible;
  padding: 40rem 30rem 55rem;
  transition: opacity 0.25s ease;
}
.interview-qa + .interview-qa {
  margin-block-start: 38rem;
}
.interview-qa__q {
  display: flex;
  align-items: baseline;
  gap: 7rem;
  margin: 0 0 12rem;
}
.interview-qa__mark {
  flex-shrink: 0;
  color: #ED9E00;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 16rem;
  letter-spacing: 0.12em;
}
.interview-qa__question {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.interview-qa__a {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-align: justify;
}

.interview-modal__nav {
  /* position: sticky; */
  inset-block-end: 0;
  z-index: 3;
  display: flex;
  height: 96rem;
  margin-block-start: 0;
  background-color: #FFFFFF;
  border-block-start: 1rem solid #78C4E9;
}
.interview-modal__nav-item {
  flex: 1 1 0;
  min-width: 0;
  padding: 12rem 10rem 12rem 12rem;
  border: 0;
  background: transparent;
  text-align: start;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.interview-modal__nav-item--next {
  border-inline-start: 1rem solid #78C4E9;
}
.interview-modal__nav-label {
  display: block;
  margin-block-end: 10rem;
  color: #78C4E9;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 12rem;
  letter-spacing: 0.08em;
}
.interview-modal__nav-body {
  display: flex;
  align-items: center;
  gap: 10rem;
}
.interview-modal__nav-thumb {
  flex-shrink: 0;
  width: 50rem;
  height: 50rem;
  object-fit: cover;
  border-radius: 4rem;
}
.interview-modal__nav-meta {
  display: flex;
  flex-direction: column;
  gap: 7rem;
  min-width: 0;
}
.interview-modal__nav-school {
  color: #000000;
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 10rem;
  letter-spacing: 0.04em;
  white-space: initial;
  line-height: 1.35;
}
.interview-modal__nav-name {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  letter-spacing: 0.09em;
}

/* --- 学生インタビュー モーダル（.interview-modal を流用） --- */
/* ヘッダー：番号なし・説明テキスト */
.interview-modal__person--student {
  padding-inline-start: 15rem;
}
.interview-modal__name--student {
  font-size: 14rem;
  letter-spacing: 0.05em;
}
/* 写真2枚＋キャプション（前後リンクなし・写真→キャプション→QAの順） */
.interview-modal__student-photos {
  display: flex;
  flex-direction: column;
  gap: 10rem;
  padding: 20rem 20rem 0;
  height: auto;
}
.interview-modal__main-img.interview-modal__main-img--student {
  aspect-ratio: 340 / 255;
  width: 100%;
  height: auto;
}
.interview-modal__caption {
  height: auto;
  margin: 0;
  padding: 20rem 20rem 25rem;
  font-size: 14rem;
  line-height: 1.75;
  letter-spacing: 0.05em;
  white-space: normal;
  border-block-end: 1rem solid #78C4E9;
}
.interview-modal--student .interview-modal__scroll {
  padding-block-start: 40rem;
}


/*
  MARK: staffcard
*/
.staff-card {
  position: relative;
  width: 210rem;
  margin-inline-end: 50rem;
  cursor: pointer;
}
.staff-card__pic {
  overflow: hidden;
}
.staff-card__pic img {
  display: block;
  width: 210rem;
  height: 280rem;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.23, 1, 0.320, 1);
}
.staff-card__meta {
  position: absolute;
  z-index: 2;
  inset-block-start: 1rem;
  inset-inline-start: -24rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 11rem;
  margin-block-start: -3rem;
}
.staff-card__name,
.staff-card__school {
  margin: 0;
  writing-mode: vertical-rl;
  white-space: nowrap;
  text-orientation: upright;
  font-family: var(--font-gothic-jp);
  font-feature-settings: "palt" 0;
}
.staff-card__name {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  letter-spacing: 0.09em;
  line-height: 1.2;
}
.staff-card__school {
  color: var(--color-text);
  font-weight: 500;
  font-size: 12rem;
  letter-spacing: 0.1em;
  line-height: 1.15;
}
/* プラスボタンの丸枠（オレンジ） */
.icon-plus {
  width: 35rem;
  height: 35rem;
  padding: 0;
  border: 0;
  border-radius: 10rem;
  background-color: #ED9E00;
  cursor: pointer;
  transition: transform 0.3s ease-out, background-color 0.2s ease;
}
.staff-card__more {
  position: absolute;
  z-index: 3;
  inset-block-start: -16rem;
  inset-inline-end: -16rem;
}
.staff-card__bubble {
  position: absolute;
  z-index: 2;
  inset-block-end: -30rem;
  inset-inline-end: -20rem;
  padding: 12rem 17rem 11rem 18rem;
  border-radius: 10rem;
  background-color: #FFFFFF;
  box-shadow: 0 3rem 12rem rgba(53, 118, 179, 0.12);
}
.staff-card__bubble-text {
  display: block;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.55;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.staff-card__bubble::after {
  content: "";
  position: absolute;
  inset-block-start: -9rem;
  inset-inline-end: 30rem;
  width: 12rem;
  height: 12rem;
  background-color: #FFFFFF;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}
.staff-card .icon-plus {
  opacity: 0;
  transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}
.staff-card.slick-current .icon-plus {
  opacity: 1;
  transition: opacity 0.2s ease-out 0.2s, transform 0.2s ease-out 0.2s;
  animation: popupHover 0.6s ease-out forwards 0.4s;
}


/* --- video-interview ------------------------------------------------------ */
.video-interview {
  display: flex;
  flex-direction: column;
  gap: 45rem;
  margin-block-start: 60rem;
}
.video-interview__col {
  width: 100%;
}
.video-interview__label {
  margin: 0 0 12rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.95;
  letter-spacing: 0.09em;
}

/* 左：職員インタビュー動画 （video-card を流用） */
.video-card--interview {
  width: 100%;
}
.video-card--interview .video-card__iframe {
  aspect-ratio: 320 / 215;
}

.student-interview {
  position: relative;
  cursor: pointer;
}
.student-interview__pic {
  overflow: hidden;
}
.student-interview__pic img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 320 / 215;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.23, 1, 0.320, 1);
}
.is-open .icon-plus .icon-plus__cross {
  transform: rotateZ(180deg);
}

/* ＋ボタン（モーダル起動） */
.student-interview__more {
  position: absolute;
  z-index: 2;
  inset-block-start: -14rem;
  inset-inline-end: -14rem;
}

/* 吹き出し */
.student-interview__bubble {
  position: absolute;
  z-index: 1;
  margin: 0;
  padding: 13rem 20rem 12rem;
  border-radius: 10rem;
  background-color: #FFFFFF;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.5;
  letter-spacing: 0.16em;
  white-space: nowrap;
  box-shadow: 0 3rem 12rem rgba(53, 118, 179, 0.12);
}
.student-interview__bubble::after {
  content: "";
  position: absolute;
  width: 16rem;
  height: 13rem;
  background-color: #FFFFFF;
}
.student-interview__bubble--01 {
  inset-block-start: 20rem;
  inset-inline-start: -21rem;
}
.student-interview__bubble--01::after {
  inset-block-end: -9rem;
  inset-inline-end: 22rem;
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}
.student-interview__bubble--02 {
  inset-block-end: 17rem;
  inset-inline-end: -15rem;
}
.student-interview__bubble--02::after {
  inset-block-start: -9rem;
  inset-inline-start: 28rem;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}

.student-interview__caption {
  margin: 15rem 0 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.12em;
}

/* --- 学生インタビュー モーダル --- */
.interview-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0 30rem;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.interview-modal.is-open {
  visibility: visible;
  opacity: 1;
}
/* .interview-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.55);
  cursor: pointer;
} */
.interview-modal__inner {
  position: relative;
  z-index: 1;
  width: min(760rem, 92vw);
  max-height: 88vh;
  overflow-y: auto;
  padding: 44rem;
  border-radius: 16rem;
  background-color: #FFFFFF;
  transform: translateY(16rem);
  transition: transform 0.3s ease;
}
.interview-modal.is-open .interview-modal__inner {
  transform: translateY(0);
}
.interview-modal__pic img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10rem;
}
.interview-modal__lead {
  margin: 26rem 0 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 2;
  letter-spacing: 0.05em;
}
.interview-modal__quotes {
  margin: 16rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10rem;
}
.interview-modal__quotes li {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 16rem;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

/* MARK: .video-modal
---------------------------------------------------------------------------*/
.video-card {
  cursor: pointer;
}
.video-modal {
  --_bar-height: 16rem;
  --_bar-width: 13rem;
  position: fixed;
  inset: 0;
  z-index: var(--z-index-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.video-modal.is-open {
  visibility: visible;
  opacity: 1;
}
.video-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: #F3EEE0;
  cursor: pointer;
}
.video-modal__close {
  position: absolute;
  z-index: 3;
  inset-block-start: 22rem;
  inset-inline-end: 22rem;
  width: 46rem;
  height: 42rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: transform 0.2s ease;
}
.video-modal__close img {
  width: 100%;
  height: 100%;
}
.video-modal__close:hover,
.video-modal__close:focus-visible {
  transform: scale(1.06);
}
/* 動画ブロック（バナー掛け軸風：上下に木製バー） */
.video-modal__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  transform: translateY(12rem);
  transition: transform 0.3s ease;
}
.video-modal.is-open .video-modal__inner {
  transform: translateY(0);
}
.video-modal__bar {
  display: none;
}
.video-modal__video {
  position: relative;
  width: 100%;
  height: calc(100% - var(--_bar-height) * 2);
  aspect-ratio: 3 / 2;
  background-color: #000000;
}
.video-modal__iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-modal__illust {
  position: absolute;
  width: 171rem;
  height: auto;
  pointer-events: none;
  z-index: -1;
}
.video-modal__illust--left {
  inset-inline-start: -132rem;
  inset-block-end: -38rem;
}
.video-modal__illust--right {
  inset-inline-end: -133rem;
  inset-block-end: -40rem;
}


/* MARK: .requirement-modal（SP: 募集要項→フォーム→ティッカーの縦積み）
---------------------------------------------------------------------------*/
.requirement-modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-index-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.requirement-modal.is-open {
  visibility: visible;
  opacity: 1;
}
.requirement-modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0);
  cursor: pointer;
}
.requirement-modal__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  background-color: #FCFBF4;
  background-image: url(../img/bg-cross.png);
  background-repeat: repeat;
  overflow: hidden;
  transition: transform 0.3s ease;
}
.requirement-modal.is-open .requirement-modal__panel {
  transform: translateY(0);
}
.requirement-modal__close {
  position: absolute;
  z-index: 3;
  inset-block-start: 24rem;
  inset-inline-end: 20rem;
  width: 46rem;
  height: 42rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.requirement-modal__close img {
  width: 100%;
  height: 100%;
}
.requirement-modal__scroll {
  max-height: 100vh;
  max-height: 100dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.requirement-modal__body {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
}

/* 下部：ティッカー（横スライド2段） */
.requirement-ticker {
  order: 2;
  display: flex;
  flex-direction: column;
  gap: 5rem;
  width: 100%;
  margin-block-start: 0rem;
  overflow: hidden;
  background: #F3F8FA;
}
.requirement-ticker__col {
  width: 100%;
  height: 165rem;
  overflow: hidden;
}
.requirement-ticker__track {
  display: flex;
  gap: 5rem;
  width: max-content;
  will-change: transform;
}
.requirement-ticker__item {
  flex: 0 0 auto;
}
.requirement-ticker__item img {
  display: block;
  width: auto;
  height: 165rem;
}

/* コンテンツ（募集要項＋フォーム） */
.requirement-content {
  position: relative;
  width: 100%;
  padding-block-start: 95rem;
  padding-block-end: 0;
}
.requirement-content__intro {
  padding-inline: 30rem;
}
.requirement-content__tree {
  position: absolute;
  inset-block-start: 60rem;
  inset-inline-end: 55rem;
  width: 90rem;
  height: auto;
  pointer-events: none;
}
.requirement-content__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6rem;
  margin-block-end: 12rem;
}
.requirement-content__title {
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 20rem;
  line-height: 1.6;
  letter-spacing: 0.15em;
}
.requirement-content__en {
  order: -1;
  margin: 0;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 13rem;
  letter-spacing: 0.12em;
}

/* アコーディオン */
.req-acc__head {
  display: flex;
  align-items: center;
  gap: 12rem;
  width: 100%;
  padding: 26rem 5rem;
  border: 0;
  border-block-end: 1px solid #CCCCCC;
  background: transparent;
  cursor: pointer;
  text-align: start;
}
.req-acc__title {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 16rem;
  letter-spacing: 0.1em;
}
.req-acc__icon {
  position: relative;
  flex-shrink: 0;
  width: 21rem;
  height: 21rem;
  border-radius: 50%;
  background-color: #ED9E00;
  transition: transform 0.3s ease;
}
.req-acc__icon::before,
.req-acc__icon::after {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  background-color: #FFFFFF;
  border-radius: 999px;
  translate: -50% -50%;
}
.req-acc__icon::before {
  width: 10rem;
  height: 2rem;
}
.req-acc__icon::after {
  width: 2rem;
  height: 10rem;
}
.req-acc.is-open .req-acc__icon {
  transform: rotate(45deg);
}
.req-acc__body {
  display: none;
  padding-block: 0 30rem;
}
.req-acc__note {
  margin: 0;
  padding-inline: 5rem;
  color: var(--color-text);
  font-size: 14rem;
  line-height: 1.8;
}
.requirement-acc__empty p {
  color: var(--color-text);
  font-size: 14rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
}
.requirement-acc__empty a {
  color: var(--color-primary, #3576B3);
  text-decoration: underline;
}

/* 求人票テーブル（SP: ラベルと内容を縦積み） */
.req-table {
  margin: 0;
}
.req-table__row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4rem;
  padding: 16rem 5rem 14rem;
  position: relative;
}
.req-table__row::before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-image: url(../img/bg-bdr_dashed.svg);
  background-repeat: repeat-x;
}
.req-table__label {
  flex: none;
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
.req-table__value {
  flex: none;
  min-width: 0;
  margin: 0;
  color: var(--color-text);
}
.req-table__value,
.req-table__value p {
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.75;
  letter-spacing: 0.08em;
}

/*
 MARK: entryForm
*/
.requirement-form {
  --_form-padding-left: 0rem;
  position: relative;
  margin-block-start: 75rem;
  padding: 85rem 30rem 70rem;
  background-color: #F3F8FA;
}
.requirement-form__illust {
  position: absolute;
  inset-block-start: -20rem;
  inset-inline-end: 30rem;
  width: 105rem;
  height: auto;
  pointer-events: none;
}
/* 見出し */
.requirement-form__head {
  display: flex;
  flex-direction: column;
  margin-block-end: 45rem;
}
.requirement-form__en {
  order: -1;
  margin: 0;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 13rem;
  line-height: 1.55;
  letter-spacing: 0.1em;
}
.requirement-form__title {
  margin: 9rem 0 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 20rem;
  line-height: 1.6;
  letter-spacing: 0.13em;
}
.requirement-form__lead {
  margin: 18rem 0 0;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.1em;
  text-align: justify;
}
/* SP: PC用の改行位置は使わず自然に折り返す */
.requirement-form__lead br {
  display: none;
}

/* CF7 リセット */
.requirement-form .wpcf7 {
  position: relative;
}
.requirement-form .hidden-fields-container {
  margin: 0;
  padding: 0;
  border: 0;
}
.requirement-form .form-wrap {
  max-width: none;
}
.requirement-form .screen-reader-response {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.requirement-form > .wpcf7 .wpcf7-response-output {
  margin: 0;
  padding: 0rem 0rem 40rem;
  font-size: 15rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
}
.requirement-form > .wpcf7 .btn-submit + .wpcf7-response-output {
  margin-block-start: 20rem;
  padding-inline-start: var(--_form-padding-left);
}
.requirement-form .wpcf7-response-output[aria-hidden="true"]:empty {
  display: none;
}

/* 行レイアウト（SP: ラベルの下に入力を縦積み） */
.requirement-form .form-wrap dl {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  margin: 0 0 25rem;
}
.requirement-form .form-wrap dl dt.requirementform__dt-2row,
.requirement-form .form-wrap dl dt.requirementform__dl-top,
.requirement-form .form-wrap dl dt.requirementform__dt-top-textarea {
  margin-top: 0;
}
.requirement-form .form-wrap dt {
  position: relative;
  flex: none;
  margin-top: 0;
  margin-block-end: 5rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.85;
  letter-spacing: 0.06em;
}
.requirement-form .form-wrap dt p {
  display: inline;
  margin: 0;
  line-height: 1.4;
  letter-spacing: 0.06em;
}
/* 補足（確認用・複数選択可など）はラベルの右に続ける */
.requirement-form .form-wrap dt span {
  display: inline;
  margin-inline-start: 8rem;
  font-size: 12rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}
/* 必須マーク */
.must > p {
  position: relative;
}
.must > p::before {
  content: "";
  position: absolute;
  inset-block-start: -1rem;
  inset-inline-start: -11rem;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background-color: #ED9E00;
}
.requirement-form .form-wrap dd {
  flex: none;
  min-width: 0;
  margin: 0;
}
.requirement-form .form-wrap dd > p {
  margin: 0;
  line-height: 1.2;
}
.requirement-form .form-wrap dd > p + p {
  margin-block-start: 10rem;
}

/* テキスト系入力 */
.requirement-form .wpcf7-form-control.wpcf7-text,
.requirement-form .wpcf7-form-control.wpcf7-tel,
.requirement-form .wpcf7-form-control.wpcf7-email,
.requirement-form .wpcf7-form-control.wpcf7-number,
.requirement-form .wpcf7-form-control.wpcf7-textarea {
  display: block;
  width: 100%;
  height: 50rem;
  padding: 0 16rem;
  border: 1rem solid transparent;
  border-radius: 5rem;
  background-color: #FFFFFF;
  color: var(--color-text);
  font-family: var(--font-gothic-jp) !important;
  font-size: 16rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.requirement-form .wpcf7-form-control.wpcf7-textarea {
  height: 170rem;
  padding: 14rem 16rem;
  line-height: 1.8;
  resize: vertical;
}
.requirement-form .wpcf7-form-control::placeholder {
  color: #B5B5B5;
}
.requirement-form .wpcf7-form-control:focus {
  outline: none;
  border-color: var(--color-primary);
}

/* ラジオ・チェックボックス群（SP: 縦に並べる） */
.requirement-form .wpcf7-radio,
.requirement-form .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-block-start: 0;
}
.requirement-form .wpcf7-acceptance {
  display: flex;
  flex-wrap: wrap;
  column-gap: 20rem;
  row-gap: 3rem;
}
/* 性別など短い選択肢は横並びのまま */
.requirement-form .wpcf7-form-control-wrap[data-name="your-gender"] .wpcf7-radio {
  flex-direction: row;
  flex-wrap: wrap;
  column-gap: 20rem;
}
.requirement-form .wpcf7-list-item {
  margin: 0 0 4rem;
}
.requirement-form .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 9rem;
  cursor: pointer;
}
.requirement-form .wpcf7-list-item-label {
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-size: 15rem;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.requirement-form input[type="radio"],
.requirement-form input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 14rem;
  height: 14rem;
  margin: 0;
  border: 1rem solid #C4C4C4;
  background-color: #FFFFFF;
  cursor: pointer;
  flex-shrink: 0;
}
.requirement-form input[type="radio"] {
  border-radius: 50%;
}
.requirement-form input[type="checkbox"] {
  width: 15rem;
  height: 15rem;
  border-radius: 2rem;
  margin-block-start: 0.2em !important;
}
.requirement-form input[type="radio"]:checked {
  border-color: var(--color-primary);
}
.requirement-form input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  height: 8rem;
  width: 8rem;
  border-radius: 50%;
  background-color: var(--color-primary);
}
.requirement-form input[type="checkbox"]:checked {
  border-color: var(--color-primary);
  background-color: var(--color-primary);
}
.requirement-form input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  inset-block-start: 2rem;
  inset-inline-start: 4.5rem;
  width: 4rem;
  height: 8rem;
  border: solid #FFFFFF;
  border-width: 0 2rem 2rem 0;
  transform: rotate(45deg);
}
/* 選択肢の折り返し（長文ラベル）にインデントを付ける */
.requirement-form .wpcf7-list-item label {
  align-items: flex-start;
}
.requirement-form .wpcf7-list-item input[type="radio"],
.requirement-form .wpcf7-list-item input[type="checkbox"] {
  margin-block-start: 0.35em;
}

/* メール確認下のお知らせ配信チェック */
.requirement-form .dd-checkbox {
  margin-block-start: 12rem;
}

/* 個人情報の取り扱い（スクロールボックス） */
.requirement-form .privacy {
  width: 100%;
  max-width: none;
  margin-inline-start: 0;
  background-color: #E8F1F5;
  border-radius: 3rem;
  padding: 5rem 5rem 5rem 0;
}
.requirement-form .form-wrap .privacy dd > p {
  line-height: 2;
}
.requirement-form .privacy .inner {
  height: 260rem;
  padding: 25rem 30rem 20rem 30rem;
  overflow-y: auto;
}
.requirement-form .privacy .inner::-webkit-scrollbar {
  width: 1px;
  height: 4px;
}
.requirement-form .privacy .inner::-webkit-scrollbar-track {
  background-color: transparent;
}
.requirement-form .privacy .inner::-webkit-scrollbar-thumb {
  background-color: #3576B3;
}
@-moz-document url-prefix() {
  .requirement-form .privacy .inner {
    scrollbar-color: rgba(0, 0, 0, 0) #3576B3;
    scrollbar-width: thin;
  }
}
.requirement-form .privacy h2 {
  margin: 0 0 20rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.85;
  letter-spacing: 0.1em;
}
.requirement-form .privacy p {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-size: 13rem;
  line-height: 1.85;
  letter-spacing: 0.02em;
  text-align: justify;
}
.requirement-form .privacy dl {
  display: block;
  margin: 24rem 0 0;
}
.requirement-form .privacy dt {
  margin: 0 0 6rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 13rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}
.requirement-form .privacy dt p {
  margin: 0;
  color: inherit;
  font: inherit;
}
.requirement-form .privacy dd {
  margin: 0;
}
.requirement-form .privacy .dot-list {
  margin: 8rem 0 0;
  padding: 0;
  list-style: none;
}
.requirement-form .privacy .dot-list li {
  position: relative;
  padding-inline-start: 16rem;
}
.requirement-form .privacy .dot-list li::before {
  content: "";
  position: absolute;
  inset-block-start: 13rem;
  inset-inline-start: 3rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: var(--color-text);
}

/* 同意チェック */
.requirement-form .privacy-check {
  margin: 20rem 0 0;
  margin-inline-start: 0;
}
.requirement-form .privacy-check p {
  margin: 0;
}
.requirement-form .privacy-check .wpcf7-list-item-label {
  font-size: 14rem;
  line-height: 1.6;
}

/* 注意書き */
.requirement-form .attention-list {
  margin: 18rem 0 0 2rem;
  padding: 0;
  list-style: none;
}
.requirement-form .attention-list li {
  position: relative;
  padding-inline-start: 20rem;
}
.requirement-form .attention-list li::before {
  content: "※";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: 5.5rem;
  font-size: 13rem;
}
.requirement-form .attention-list p {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-size: 13rem;
  line-height: 1.85;
  letter-spacing: 0.05em;
  text-align: justify;
}

/* 送信ボタン */
.requirement-form .btn-submit {
  display: flex;
  justify-content: center;
  margin-block-start: 35rem;
}
.requirement-form .btn-submit p {
  margin: 0;
  width: 100%;
}
.requirement-form .wpcf7-submit {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 58rem;
  padding: 0 40rem;
  border: 0;
  border-radius: 42rem;
  background-color: #ED9E00;
  color: #FFFFFF;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 18rem;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.requirement-form .wpcf7-spinner {
  margin-inline-start: 12rem;
}
.requirement-form .akismet-fields-container {
  display: none !important;
}
.wpcf7-form-control-wrap[data-name="your-interest"] .wpcf7-list-item.first {
  width: 100%;
}
.wpcf7-not-valid-tip {
  display: inline-block;
  width: 100%;
  padding-top: 15rem;
  padding-bottom: 10rem;
  font-size: 13rem;
  letter-spacing: 0.08em;
  color: var(--color-primary);
}
.screen-reader-response {
  display: none;
}
.hidden-fields-container {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* MARK: event
---------------------------------------------------------------------------*/
.event {
  padding-block-end: 120rem;
  overflow-x: hidden;
}
.event.bg-wave {
  margin-block-start: calc(-1 * var(--bg-wave-height));
  position: relative;
}
.event .bg-wave-texture {
  height: calc(var(--bg-wave-height) + 60rem);
}
.event-container {
  --_max-width: 1080rem;
  width: 100%;
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  margin-inline: auto;
  padding-inline: calc(var(--spacing-content-inline) + 8rem);
  margin-top: -53rem;
}
.event-contents__inner {
  position: relative;
  width: 100%;
  max-width: var(--_max-width);
  margin-inline: auto;
}

/* --- 見出し --- */
.event-intro {
  margin-block-end: 40rem;
}
.event-intro__en {
  margin-bottom: 0;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.55;
  letter-spacing: 0.08em;
  color: #78C4E9;
}
.event-intro__title {
  margin-block-start: 10rem;
  font-family: var(--font-gothic-jp-heading);
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-size: 19rem;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.event-intro__lead {
  margin-block-start: 10rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.95;
  letter-spacing: 0.15em;
  text-align: justify;
}

.event-block {
  display: flex;
  flex-direction: column;
  gap: 35rem;
  position: relative;
}
.event-block--practice {
  margin-block-end: 80rem;
}

.event-block__pics {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 13rem;
}
.event-block__pic {
  width: 100%;
  overflow: hidden;
}
.event-block__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-block .js-event-fade-slider.slick-initialized {
  display: block;
}
.event-block .js-event-fade-slider .slick-list,
.event-block .js-event-fade-slider .slick-track,
.event-block .js-event-fade-slider .slick-slide,
.event-block .js-event-fade-slider .slick-slide > div,
.event-block .js-event-fade-slider .event-block__pic {
  height: 100%;
}

.event-block__detail {
  /* padding-block-start: 25rem; */
  flex: 1 1 auto;
  min-width: 0;
}
.event-block__label {
  margin-bottom: 0;
  color: #000000;
  font-weight: 400;
  font-family: var(--font-gothic-jp);
  font-size: 14rem;
  line-height: 1;
  letter-spacing: 0.2em;
  text-align: center;
}
.event-block__heading {
  margin-block-start: 14rem;
  font-family: var(--font-gothic-jp-heading);
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-size: 19rem;
  line-height: 1.7;
  letter-spacing: 0.1em;
  text-align: center;
}
.event-block__text {
  margin-block-start: 14rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.95;
  letter-spacing: 0.05em;
  text-align: justify;
}
.event-block__text p {
  margin-block: 0;
  line-height: 1.8;
  font-size: 14rem;
  text-align: justify;
}
.event-block__text p + p {
  margin-block-start: 10rem;
}

.event-feature {
  display: flex;
  column-gap: 31rem;
  margin-block-start: 35rem;
  padding: 30rem 32rem 30rem 20rem;
  background-color: #fff;
  border-radius: 8rem;
  width: 100%;
  flex-direction: column;
}
.event-feature__list {
  margin: 0;
  padding-inline-start: 20rem;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 12rem;
  letter-spacing: 0.05em;
}
.event-block--eventstaff .event-feature {
  flex-direction: inherit;
  flex-wrap: wrap;
}
.event-block--eventstaff .event-feature__list {
  padding-inline-start: 10rem;
  order: 2;
  width: 60%;
}
.event-block--eventstaff .event-feature__list:last-child {
  width: 40%;
  order: 1;
}
.event-feature__list li {
  letter-spacing: 0.15em;
  line-height: 1.8;
  font-size: 14rem;
  position: relative;
}
.event-feature__list li::before {
  display: block;
  content: "";
  position: absolute;
  inset-block-start: 9rem;
  inset-inline-start: -9rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: var(--color-primary);
}
_::-webkit-full-page-media, _:future, :root .event-feature__list li::before {
  inset-block-start: 11rem;
}
.event-feature__list li small {
  font-size: 12rem;
}
.event-feature__list li + li {
  margin-block-start: 4rem;
}
.event-feature__list + .event-feature__list {
  margin-block-start: 6rem;
}

.event-feature--event.event-feature {
  column-gap: 0;
  padding-block: 23rem;
  padding-right: 15rem;
  padding-left: 25rem;
}
.event-feature__title {
  flex: 0 0 auto;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.55;
  letter-spacing: 0.08em;
  width: 100%;
  margin-bottom: 15rem;
  order: 0;
}
.event-feature__title span {
  padding-block-end: 2rem;
  border-block-end: 1px solid var(--color-primary);
}
.event-feature--event .event-feature__list li::before {
  inset-block-start: 6rem;
}
_::-webkit-full-page-media, _:future, :root .event-feature--event .event-feature__list li::before {
  inset-block-start: 8rem;
}
.event-feature--event .event-feature__list + .event-feature__list {
  margin-block-start: 0;
}
.event-feature--event .event-feature__list li {
  line-height: 1.4;
  letter-spacing: 0.08em;
  font-family: var(--font-gothic-jp-heading);
}
.event-feature--event .event-feature__list li + li {
  margin-block-start: 6rem;
}

.event-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-block-start: 35rem;
  padding: 13rem 30rem 12rem;
  border-radius: 999rem;
  background-color: #ED9E00;
  color: #fff;
  font-weight: 700;
  font-size: 16rem;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.85;
  letter-spacing: 0.09em;
  text-decoration: none;
  transition: opacity 0.3s ease;
  width: 100%;
}

/* イベント：ボタン + スターバックス特典 */
.event-block__actions {
  display: flex;
  flex-direction: column-reverse;
  gap: 25rem;
  margin-block-start: 25rem;
}
.event-block__actions .event-btn {
  margin-block-start: 0;
}
.event-reward {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14rem;
  margin: 0;
}
.event-reward__banner {
  flex: 0 0 auto;
  width: 79rem;
  height: auto;
}
.event-reward__text {
  color: #007348;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

/* --- 装飾イラスト（absolute配置） --- */
.event-illust {
  position: absolute;
  height: auto;
  pointer-events: none;
}
.event-illust--fire {
  inset-block-start: -77rem;
  inset-inline-end: -27rem;
  width: 96rem;
  z-index: 31;
}
.event-illust--drawing {
  inset-block-start: -105rem;
  inset-inline-start: -12rem;
  width: 80rem;
}
.event-illust--eventstaff {
  inset-block-start: -32rem;
  inset-inline-start: 899rem;
  width: 236rem;
}
.event-block__fukidashi-sp {
  margin-bottom: -10rem;
}
.event-block__fukidashi-sp img {
  width: 100%;
  height: auto;
}


/* MARK: entry
---------------------------------------------------------------------------*/
.entry.bg-wave {
  padding-block-end: 115rem;
  position: relative;
}
.entry.bg-wave::before {
  content: "";
  display: block;
  position: absolute;
  inset-block-start: var(--bg-wave-height);
  inset-inline-start: 0;
  width: 100%;
  height: calc(100% - var(--bg-wave-height));
  background-image: url(../img/bg-beige.png);
  background-repeat: repeat;
  z-index: 0;
}
.entry-container {
  --_max-width: 1080rem;
  width: 100%;
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  margin-inline: auto;
  padding-inline: var(--spacing-content-inline);
  /* margin-top: calc((var(--bg-wave-height) * -1 - 40rem)); */
  position: relative;
  z-index: 1;
  padding-top: 380rem;
}

/* --- intro --- */
.entry-intro {
  padding: 0 5rem;
}
.entry-intro__label {
  margin-bottom: 0;
  color: #000000;
  font-weight: 400;
  font-family: var(--font-gothic-jp);
  font-size: 14rem;
  line-height: 1;
  letter-spacing: 0.18em;
}
.entry-intro__title {
  position: relative;
  margin-block-start: 16rem;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 19rem;
  line-height: 1.8;
  letter-spacing: 0.09em;
}
.entry-intro__marker {
  display: none;
}
.entry-intro__lead {
  margin-block-start: 14rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  text-align: justify;
  line-height: 2.1;
  letter-spacing: 0.1em;
}

/* --- 申し込みボタン --- */
.entry-btnarea {
  padding-block-start: 30rem;
  margin: 0 -5rem;
}
.entry-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  position: relative;
  padding: 15rem 20rem;
  border-radius: 999rem;
  background-color: #ED9E00;
  color: #fff;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 16rem;
  line-height: 1.85;
  letter-spacing: 0.13em;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.entry-btnarea__illust {
  position: absolute;
  inset-block-end: -30rem;
  inset-inline-end: 0;
  width: 35rem;
  height: auto;
  pointer-events: none;
  transition: transform 0.2s ease-out;
}

/* --- 見学風景 写真 --- */
.entry-pic {
  position: absolute;
  object-fit: cover;
}
.entry-pic--01 {
  inset-block-start: -4%;
  inset-inline-start: 13%;
  width: 160rem;
  height: auto;
  aspect-ratio: 252 / 190;
}
.entry-pic--02 {
  inset-block-start: -140rem;
  inset-inline-end: 10%;
  width: 90rem;
  height: auto;
  aspect-ratio: 125 / 167;
}
.entry-pic--03 {
  inset-block-start: 5.5%;
  inset-inline-end: 28rem;
  width: 320rem;
  height: auto;
  aspect-ratio: 394 / 296;
}

/* --- detail --- */
.entry-detail {
  width: 100%;
  margin-block-start: 80rem;
}
/* SP: 白カード（角丸・内側パディング） */
.entry-detail__row {
  display: flex;
  flex-direction: column;
  background-color: #FFFFFF;
  border-radius: 8rem;
  padding: 35rem 35rem 30rem;
}
.entry-detail__row + .entry-detail__row {
  margin-block-start: 25rem;
}
.entry-detail__title {
  width: fit-content;
  margin: 0;
  padding-block-end: 1rem;
  border-block-end: 1px solid var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.2;
  letter-spacing: 0.1em;
}
.entry-detail__body {
  min-width: 0;
  margin-block-start: 16rem;
}
.entry-detail__text {
  margin: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.9;
  letter-spacing: 0.1em;
  text-align: justify;
}
/* PC用の改行はSPでは無効化して流し込みにする */
.entry-detail__text br {
  display: none;
}

/* 電話番号 */
.entry-tel {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 5rem;
  margin-block-start: 10rem;
}
.entry-tel__label {
  color: var(--color-primary);
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1.85;
  letter-spacing: 0.09em;
}
.entry-tel__num {
  color: var(--color-primary);
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 23rem;
  line-height: 1.4;
  letter-spacing: 0.09em;
  text-decoration: underline;
  text-underline-offset: 0.1em;
  text-decoration-thickness: 1.5rem;
}
.entry-tel__hours {
  width: 100%;
  margin-block-start: 8rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 13rem;
  line-height: 1.85;
  letter-spacing: 0.06em;
}

.entry-advice {
  margin: 15rem -5rem 0;
  padding: 21rem 27rem 30rem 22rem;
  background-color: #F7F7F7;
  border-radius: 3rem;
}
.entry-advice__title {
  margin: 0 0 9rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 14rem;
  line-height: 2.05;
  letter-spacing: 0.08em;
}
.entry-advice__list {
  margin: 0;
  padding-inline-start: 13rem;
  color: #353535;
  font-size: 13rem;
  letter-spacing: 0.1em;
}
.entry-advice__list li {
  line-height: 1.6;
  position: relative;
}
.entry-advice__list li::before {
  display: block;
  content: "";
  position: absolute;
  inset-block-start: 8rem;
  inset-inline-start: -12rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background-color: var(--color-text);
}
.entry-advice__list li + li {
  margin-block-start: 7rem;
}