@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: 1320px;
  --scale-rate-wide: 0.3;
  --scale-rate-narrow: 0.3;

  --z-index-header-logo: 99;
  --z-index-system-plus: 100;
  --z-index-global-nav: 200;
  --z-index-modal: 1200;
  /*--spacing-content-inline: 30rem;*/
  --spacing-content-inline: 6%;
}
: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-narrow)) / var(--base-font));
}

@media (min-width: 1320px) {
  html {
    font-size: calc(100% * (1 + ((100vw - var(--base-width)) / var(--base-width)) * var(--scale-rate-wide)) / 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%);
}

/* utility */
.u-scroll-hidden {
  opacity: 0;
}
.u-flex-align-start {
  align-items: flex-start;
}
.u-pc-none {
  display: none !important;
}

/* 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 {
  display: flex;
  position: absolute;
  inset-block-start: 40rem;
  inset-inline-start: 40rem;
  z-index: var(--z-index-header-logo);
  height: 60rem;
  align-items: center;
  gap: 18rem;
}
.header__logo-img {
  width: 24.24vw;
  max-width: 320rem;
  height: auto;
}
.header__logo-txt {
  display: flex;
  align-items: center;
  transform: translateY(7rem);
}
.header__logo-txt svg {
  width: 8vw;
  max-width: 117rem;
  height: auto;
}


/* MARK: global-nav
---------------------------------------------------------------------------*/
/* SP専用の固定ボタンはPCでは非表示 */
.nav-sp-ctrl {
  display: none;
}
.global-nav {
  position: fixed;
  inset-inline-end: 0;
  inset-block-end: 0;
  z-index: var(--z-index-global-nav);
  pointer-events: none;
  width: 374rem;
  height: auto;
  flex-direction: column;
  display: flex;
  align-items: flex-end;
  gap: 22rem;
}
.global-nav__overlay {
  display: none;
}
/* フッター直上で追従停止（JSで top を付与） */
.global-nav.is-pinned {
  position: absolute;
  inset-block-end: auto;
}

.global-nav__inner {
  position: relative;
  width: 100%;
  height: auto;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-end;
}
.global-nav__bg {
  position: absolute;
  z-index: -1;
  inset-inline-end: 0;
  inset-block-end: 0;
  width: 325rem;
  height: 100%;
  background: url(../img/bg-global_nav.png);
  background-size: contain;
  background-position: bottom right;
  background-repeat: no-repeat;
}

.global-nav__sns {
  z-index: 1;
  inset-block-start: 0;
  padding-inline-end: 12rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 17rem;
  pointer-events: auto;
}
.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);
  white-space: nowrap;
  position: absolute;
  transform: translateY(-115%);
}
.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;
  transition: transform 0.2s ease, background-color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .global-nav__sns-link:hover,
  .global-nav__sns-link:focus-visible {
    animation: popupHover 0.35s ease-out forwards;
  }
}
.global-nav__sns-link img {
  width: auto;
  height: auto;
  max-width: 17rem;
  max-height: 15rem;
}

.global-nav__menu {
  padding-inline-end: 28rem;
  padding-block-end: 23rem;
  padding-block-start: 53rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12rem;
  width: 13em;
  list-style: none;
  pointer-events: auto;
}
.global-nav__link {
  display: inline-block;
  color: #FFFFFF;
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 14rem;
  line-height: 1;
  letter-spacing: 0.07em;
  text-align: right;
  text-decoration: none;
  padding-block-end: 2rem;
  border-block-end: 1.5rem dashed transparent;
  border-block-end-style: dashed;
  transition: color 0.2s ease, border-color 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .global-nav__link:hover {
    color: #FDFF7A;
    border-block-end-color: #FDFF7A;
  }
}
.global-nav__link.is-current {
  color: #FDFF7A;
  border-block-end-style: dashed;
  border-block-end-color: #FDFF7A;
}

.global-nav__btns {
  padding-inline-start: 114rem;
  padding-inline-end: 25rem;
  padding-block-end: 23rem;
  display: flex;
  gap: 7rem;
  pointer-events: auto;
}
.global-nav__btn {
  height: 37rem;
  padding-inline: 14rem;
  border: 0;
  border-radius: 3rem;
  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;
  transition: transform 0.2s ease, filter 0.2s ease;
}
.global-nav__btn span {
  display: inline-block;
  /* transition: transform 0.2s ease, opacity 0.2s ease; */
}
@media (hover: hover) and (pointer: fine) {
  .global-nav__btn:hover span {
    animation: txt_upper .4s ease-out both;
  }
  .global-nav__btn:hover span:nth-child(1) {
    animation-delay: 0;
  }
  .global-nav__btn:hover span:nth-child(2) {
    animation-delay: 0.025s;
  }
  .global-nav__btn:hover span:nth-child(3) {
    animation-delay: 0.05s;
  }
  .global-nav__btn:hover span:nth-child(4) {
    animation-delay: 0.075s;
  }
  .global-nav__btn:hover span:nth-child(5) {
    animation-delay: 0.1s;
  }
  .global-nav__btn:hover span:nth-child(6) {
    animation-delay: 0.125s;
  }
  .global-nav__btn:hover span:nth-child(7) {
    animation-delay: 0.15s;
  }
}

.global-nav__mascot {
  position: absolute;
  inset-inline-start: 0;
  inset-block-end: 0;
  width: 117rem;
  height: 85rem;
}
.global-nav__balloon {
  position: absolute;
  inset-block-start: -2rem;
  inset-inline-start: 0;
  margin: 0;
  padding: 6rem 10rem 7rem 14rem;
  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.75;
  letter-spacing: 0.06em;
  white-space: nowrap;
  box-shadow: 0 3rem 7rem rgba(53, 118, 179, 0.14);
}
.global-nav__balloon::after {
  content: "";
  position: absolute;
  inset-block-end: -7rem;
  inset-inline-end: 24rem;
  width: 10rem;
  height: 9rem;
  background-color: #FFFFFF;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.global-nav__human {
  position: absolute;
  inset-block-start: 36rem;
  inset-inline-start: 61rem;
  width: 56rem;
  height: auto;
  transform-origin: center bottom;
}



/* MARK: footer
---------------------------------------------------------------------------*/
.footer {
  position: relative;
  width: 100%;
}
.footer__bg {
  position: relative;
  width: 100%;
  height: auto;
  max-height: 100vh;
  aspect-ratio: 1320 / 800;
  overflow: hidden;
}
.footer__pic {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 85%;
  position: absolute;
  top: 0;
  left: 0;
  transform: scale(1.1);
  transform-origin: center;
}
.footer__content {
  position: absolute;
  inset-block-end: 0;
  inset-inline: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-block-end: 30rem;
  padding-inline: 40rem 30rem;
}
.footer__title {
  display: flex;
  align-items: flex-end;
  gap: 20rem;
  margin-bottom: 0;
}
.footer__title-jp {
  width: 37.6vw;
  max-width: 497rem;
  height: auto;
}
.footer__title-en {
  width: 19.46vw;
  max-width: 257rem;
  height: auto;
  transform: translateY(2rem);
}
.footer__link {
  display: flex;
  align-items: center;
  gap: 10rem;
  padding-block-end: 5rem;
  padding-inline-end: 6rem;
  border-block-end: 1rem solid #FFFFFF;
  color: #FFFFFF;
  line-height: 1;
  text-decoration: none;
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .footer__link:hover {
    opacity: 0.7;
  }
}
.footer__link-text {
  font-size: 17rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .footer__link-text {
    font-size: 15rem;
  }
}


.footer__link-arrow {
  flex-shrink: 0;
  width: 12rem;
  height: 9rem;
}


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


/* MARK: bg-wave
---------------------------------------------------------------------------*/
.bg-wave {
  --bg-wave-height: 424rem;
  --bg-wave-width: 3200rem;
  --bg-wave-width-repeat: 1460rem;
}

.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: var(--bg-wave-height);
  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.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) + 30rem);
  overflow: hidden;
}
.bg-wave-blue__bg {
  position: absolute;
  width: var(--bg-wave-width);
  height: var(--bg-wave-height);
  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.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: var(--bg-wave-height);
  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.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: var(--bg-wave-height);
  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.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: var(--bg-wave-height);
  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.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}


/* MARK: mainview
---------------------------------------------------------------------------*/
.mainview {
  width: 100%;
}
.mainview__inner {
  position: relative;
  width: 100%;
  max-width: 1320rem;
  margin-inline: auto;
  padding-block: 55rem 90rem;
  padding-inline: 79rem 90rem;
}
@media (max-width: 1319px) {
  .mainview__inner {
    padding-inline: 5.98vw 6.818vw;
  }
}

.mainview__txtarea {
  position: relative;
}
.mainview__txt {
  padding-block-start: 164rem;
  padding-inline-start: 0;
  width: 100%;
}
.mainview__title img {
  width: 24.24vw;
  max-width: 302rem;
  height: auto;
}
.mainview__lead {
  margin-top: 58rem;
}
.mainview__lead p {
  margin-block: var(--leading-trim);
  color: var(--color-text);
  font-size: 16rem;
  line-height: 2.4;
  letter-spacing: 0.14em;
  margin-bottom: 1.8em;
}
@media (max-width: 1100px) {
  .mainview__lead p {
    font-size: 14rem;
  }
}
@media (max-width: 1000px) {
  .mainview__lead p {
    font-size: 13rem;
  }
}
.mainview__title-en {
  position: absolute;
  top: 63.5%;
  inset-inline-end: 4%;
  margin-bottom: 0;
}
.mainview__title-en img {
  width: 14.1vw;
  max-width: 187rem;
  height: auto;
}

/* --- newsarea --- */
.mainview__newsarea {
  position: relative;
  margin-block-start: -140rem;
  min-height: 560rem;
  display: flex;
  justify-content: flex-end;
}
.mainview__news {
  position: absolute;
  bottom: 0;
  right: 2%;
  width: 535rem;
}
@media (max-width: 1100px) {
  .mainview__newsarea {
    margin-block-start: -140rem;
    min-height: 480rem;
  }
  .mainview__news {
    width: 45%;
  }
}
.mainview__news-title {
  color: var(--color-text);
  font-size: 16rem;
  font-weight: 600;
  letter-spacing: 0.16em;
}
.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;
  gap: 0;
  padding-block-end: 6rem;
  padding-inline: 3rem;
  text-decoration: none;
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .mainview__news-link:hover {
    opacity: 0.7;
  }
}
.mainview__news-date {
  color: var(--color-text);
  font-family: var(--font-gothic-en);
  font-size: 14rem;
  font-weight: 400;
  letter-spacing: 0.13em;
  padding-block-start: 2.5rem;
  width: 106rem;
  min-width: 106rem;
}
.mainview__news-text {
  color: var(--color-primary);
  font-size: 14rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  letter-spacing: 0.1em;
  line-height: 1.4;
  width: 80%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .mainview__news-date {
    font-size: 13rem;
  }
  .mainview__news-text {
    font-size: 13rem;
  }
}

/* --- imgarea --- */
.mainview__imgarea {
  position: relative;
  margin-top: 130rem;
  display: flex;
  justify-content: space-between;
  gap: 20rem;
}

/* --- pictures (共通) --- */
.mainview__pic {
  position: absolute;
}
.mainview__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* txtarea 内 */
.mainview__pic--01 {
  inset-block-start: 0;
  inset-inline-start: 45%;
}
.mainview__pic--01 img {
  width: 25vw;
  max-width: 330rem;
  height: auto;
  aspect-ratio: 330 / 236;
}
.mainview__pic--02 {
  inset-block-start: 13%;
  inset-inline-end: 0;
}
.mainview__pic--02 img {
  width: 14.3vw;
  max-width: 190rem;
  height: auto;
  aspect-ratio: 190 / 270;
}
.mainview__pic--03 {
  inset-block-start: 43.5%;
  inset-inline-start: 48.9%;
}
.mainview__pic--03 img {
  width: 19.6vw;
  max-width: 260rem;
  height: auto;
  aspect-ratio: 260 / 187;
}

/* newsarea */
.mainview__pic--04 {
  inset-block-start: -4%;
  inset-inline-end: 2%;
}
.mainview__pic--04 img {
  width: 36.36vw;
  max-width: 480rem;
  height: auto;
  aspect-ratio: 480 / 331;
}
@media (max-width: 1319px) {
  .mainview__pic--04 img {
    width: 36.36vw;
  }
}
.mainview__pic--05 {
  inset-block-end: 0;
  inset-inline-start: -0.5%;
}
.mainview__pic--05 img {
  width: 37.878vw;
  max-width: 500rem;
  height: auto;
  aspect-ratio: 500 / 357;
}

/* imgarea 内 */
.mainview__pic--06 {
  order: 1;
  inset-block-start: 0;
  inset-inline-end: 1.5%;
}
.mainview__pic--06 img {
  width: 49.2vw;
  max-width: 650rem;
  height: auto;
  aspect-ratio: 650 / 420;
}
.mainview__pic--07 {
  padding-block-start: 169rem;
  position: static;
  order: 0;
  padding-inline-start: 24rem;
}
.mainview__pic--07 img {
  max-width: 320rem;
  width: 24.2vw;
  height: auto;
  aspect-ratio: 1 / 1;
}

/* MARK: feature
---------------------------------------------------------------------------*/
.feature {
  --_max-width: 1080rem;
  position: relative;
  padding-bottom: calc(var(--bg-wave-height) + 50rem);
  overflow: hidden;
  margin-block-start: -35rem;
}
.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) - 130rem);
  background-color: #EBF0F2;
  z-index: 0;
}

/* ---
MARK: 図書館イラスト群
--- */
.illust-library {
  position: absolute;
  inset-block-start: 9%;
  inset-inline-end: 32.5%;
  width: 446rem;
  height: 336rem;
}
.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: -9rem;
  inset-inline-start: 34%;
  width: 82rem;
  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: var(--spacing-content-inline);
  margin-inline: auto;
}

.feature-intro {
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  margin-inline: auto;
  padding-inline: var(--spacing-content-inline);
  margin-top: -240rem;
  position: relative;
  z-index: 1;
}
.feature-intro__subtitle {
  display: inline-block;
  padding-block-end: 8rem;
  border-block-end: 1px solid var(--color-text);
  color: var(--color-text);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 18rem;
  letter-spacing: 0.16em;
  line-height: 1;
  margin-bottom: 0;
}
.feature-intro__title {
  margin-block-start: 30rem;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 31rem;
  line-height: 1.8;
  letter-spacing: 0.13em;
}
@media (max-width: 1100px) {
  .feature-intro__title {
    font-size: 30rem;
    letter-spacing: 0.12em;
  }
}
.feature-intro__lead {
  margin-block-start: 18rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 16rem;
  line-height: 2.1;
  letter-spacing: 0.16em;
}

/* points コンテナ */
.feature__points {
  padding-block-start: 75rem;
}

.point-feature {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: fit-content;
}
.point-feature__img {
  position: relative;
}
.point-feature__pic {
  display: block;
  width: 100%;
  height: auto;
}
/* 右寄せ（point02 / point04） */
.point-feature--02,
.point-feature--04 {
  margin-inline-start: auto;
}
.point-feature--01 {
  width: 52%;
  min-height: 480rem;
}
.point-feature--01 .point-feature__pic {
  aspect-ratio: 560 / 421;
}
.point-feature--02 {
  margin-block-start: -360rem;
  width: 35%;
  margin-right: 20rem;
}
.point-feature--02 .point-feature__img--02a {
  margin-block-end: 3rem;
}
.point-feature--02 .point-feature__img--02a .point-feature__pic,
.point-feature--02 .point-feature__img--02b .point-feature__pic {
  aspect-ratio: 380 / 285;
}
.point-feature--03 {
  margin-block-start: -220rem;
  width: 43.3%;
  min-height: 285rem;
}
.point-feature--03 .point-feature__pic {
  aspect-ratio: 470 / 330;
}
.point-feature--03 .point-feature__text {
  padding-right: 50rem;
}
.point-feature--04 {
  margin-block-start: -90rem;
  margin-inline-end: 20rem;
  width: 41%;
  min-height: 398rem;
}
@media (max-width: 1100px) {
  .point-feature--04 {
    margin-block-start: -70rem;
  }
}
.point-feature--04 .point-feature__pic {
  aspect-ratio: 440 / 330;
}
.point-feature--05 {
  margin-block-start: -220rem;
  width: 39%;
}
@media (max-width: 1100px) {
  .point-feature--05 {
    margin-block-start: -250rem;
  }
}
.point-feature--05 .point-feature__pic {
  aspect-ratio: 425 / 318;
}

/* タイトル（画像下端に重なる白帯・左に食い出す） */
.point-feature__title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9rem;
  margin-block-start: -99rem;
  margin-inline-start: -13rem;
  z-index: 2;
}
.point-feature__title-line {
  display: inline-block;
  padding-block: 6rem;
  padding-inline: 7rem;
  background-color: var(--color-bg);
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 23rem;
  line-height: 1;
  letter-spacing: 0.11em;
}

/* 本文 */
.point-feature__text {
  margin-block-start: 35rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 14rem;
  line-height: 1.85;
  letter-spacing: 0.08em;
  text-align: justify;
}

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

.point-feature__illust--logo {
  inset-block-start: -157rem;
  inset-inline-end: -67rem;
  width: 170rem;
  height: auto;
  transform: rotate(2deg);
}

/* point03 */
.point-feature__illust--baby {
  inset-block-end: -15%;
  inset-inline-start: 95%;
  width: 7.5vw;
  max-width: 99rem;
  height: auto;
}

/* point05 */
.point-feature__illust--food {
  inset-block-end: -10%;
  inset-inline-start: 95%;
  width: 12.5vw;
  max-width: 165rem;
  height: auto;
}


/* MARK: system
---------------------------------------------------------------------------*/
.system {
  --_max-width: 1080rem;
  padding-bottom: 110rem;
  margin-top: calc(var(--bg-wave-height) * -1 - 130rem);
}
.system-container {
  width: 100%;
  max-width: calc(var(--_max-width) + var(--spacing-content-inline) * 2);
  margin-inline: auto;
  padding-inline: var(--spacing-content-inline);
}
.system__illust {
  width: 100%;
  position: relative;
  z-index: 0;
  height: calc(var(--bg-wave-height) + 120rem);
  overflow: hidden;
}

/* --- system イラスト群--- */
.system__illust-stage {
  position: absolute;
  inset-block-start: -119.44rem;
  inset-inline-start: 50%;
  width: 1320rem;
  height: 100%;
  transform: translateX(-50%);
  pointer-events: none;
}

/* 単独配置の木 */
.illust-system__tree {
  position: absolute;
  display: block;
}
.illust-system__tree--02 {
  inset-block-start: 74rem;
  inset-inline-start: 804rem;
  width: 144rem;
  height: auto;
}
.illust-system__tree--03 {
  inset-block-start: 0;
  inset-inline-start: 1099rem;
  width: 127rem;
  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: 204rem;
  inset-inline-start: 33rem;
  width: 250rem;
  height: 185rem;
}
.illust-system__item--tree {
  inset-block-start: 13rem;
  inset-inline-start: 0;
  width: 146rem;
  height: auto;
}
.illust-system__item--bird {
  inset-block-start: 0;
  inset-inline-start: 148rem;
  width: 62rem;
  height: auto;
}
.illust-system__item--maki {
  inset-block-start: 119rem;
  inset-inline-start: 168rem;
  width: 82rem;
  height: auto;
}

/* 右グループ（聴く・演奏・音符） */
.illust-system--right {
  inset-block-start: 263.72rem;
  inset-inline-start: 900rem;
  width: 280rem;
  height: 218rem;
}
.illust-system__item--listen {
  inset-block-start: 11rem;
  inset-inline-start: 0;
  width: 167rem;
  height: auto;
}
.illust-system__item--playing {
  inset-block-start: 0;
  inset-inline-start: 236rem;
  width: 44rem;
  height: auto;
}
.illust-system__item--music {
  inset-block-start: 123rem;
  inset-inline-start: 111rem;
  width: 120rem;
  height: auto;
}

/* --- system intro --- */
.system-intro {
  margin-top: -80rem;
  position: relative;
  z-index: 0;
}
.system-intro__subtitle {
  display: flex;
  align-items: center;
  gap: 11rem;
  color: #000000;
  font-weight: 500;
  font-size: 17rem;
  line-height: 1;
  letter-spacing: 0.17em;
  margin-bottom: 4rem;
}
.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: 31rem;
  line-height: 1.55;
  padding-inline-end: 5rem;
  letter-spacing: 0.13em;
}
.system-intro__title b {
  font-size: 44rem;
}
.system-intro__border {
  position: absolute;
  inset-block-end: 5rem;
  inset-inline-start: 0;
  width: 100%;
  height: 9rem;
  z-index: 0;
}
.system-intro__cane {
  position: absolute;
  inset-block-end: 6rem;
  inset-inline-end: -54rem;
  width: 56rem;
  height: auto;
  z-index: 1;
}
.system-intro__text {
  margin-block-start: 24rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-size: 16rem;
  line-height: 2.05;
  letter-spacing: 0.16em;
}

/* ---
MARK: system training
--- */
.system-training {
  margin-block-start: 65rem;
}
.training-head__subtitle {
  display: inline-block;
  padding-block: 6rem;
  border-block-end: 1px solid #000000;
  color: #000000;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.15em;
  margin-bottom: 0;
}
.training-head__title {
  margin-block-start: 24rem;
  margin-bottom: 0;
  color: var(--color-primary);
  font-size: 24rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.85;
  letter-spacing: 0.14em;
}
.training-list {
  display: flex;
  gap: 35rem;
  margin-block-start: 40rem;
}
/* SPスライダー用のタップエリア（PCでは不要） */
.training-slider__tap {
  display: none;
}
.training-card {
  flex: 1 1 0;
  min-width: 0;
}

/* サムネイル／動画エリア */
.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: -28rem;
  inset-inline-start: 10rem;
  z-index: 3;
  width: 142rem;
  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-end: -18rem;
  inset-inline-end: -18rem;
  z-index: 4;
  width: 50rem;
  height: 50rem;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.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: 27rem;
  color: var(--color-primary);
  font-size: 20rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.2;
  letter-spacing: 0.13em;
  text-align: center;
}
.training-card__text {
  margin-block: var(--leading-trim);
  margin-top: 15rem;
  width: 100%;
  color: var(--color-text);
  font-size: 14rem;
  line-height: 1.75;
  letter-spacing: 0.09em;
  text-align: justify;
}

/* ==========================================================================
  MARK: system-team
========================================================================== */
.system-team {
  padding-block-start: 78rem;
}
.team-card {
  position: relative;
  background-color: #fff;
  border-radius: 13rem;
  padding-block: 55rem;
  padding-inline: 60rem;
}

.team-card__tri {
  position: absolute;
  pointer-events: none;
  width: 36rem;
  height: 25rem;
}
.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;
  gap: 0;
  width: 100%;
}

.team-card__left {
  flex-shrink: 0;
  width: 40%;
  max-width: 338rem;
}
.team-card__label {
  display: inline-block;
  padding-block-end: 5rem;
  border-block-end: 1px solid #000;
  font-size: 16rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.15em;
  white-space: nowrap;
  margin-block-end: 0;
}
.team-card__title {
  margin-block: var(--leading-trim);
  margin-top: 25rem;
  color: var(--color-primary);
  font-size: 22rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.75;
  letter-spacing: 0.14em;
}

/* 右カラム */
.team-card__right {
  flex: 1;
  position: relative;
}
.team-card__lead {
  font-size: 15rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.15em;
  color: var(--color-text);
}
@media (max-width: 1100px) {
  .team-card__lead {
    text-align: justify;
  }
  .team-card__lead br {
    display: none;
  }
}

/* チームリスト */
.team-list {
  display: flex;
  flex-direction: column;
  gap: 18rem;
  margin-top: 25rem;
  list-style: none;
  padding-right: 130rem;
  margin-left: 3rem;
}
.team-list__item {
  padding-inline-start: 19rem;
  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: 7rem;
  color: var(--color-text);
  font-size: 14rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.1em;
}

/* 吹き出し */
.team-card__illust {
  position: absolute;
  inset-block-end: 33rem;
  inset-inline-end: 36rem;
  width: 118rem;
}
.team-card__illust-inner {
  position: relative;
}
.team-card__fukidashi {
  position: absolute;
  inset-block-end: 100rem;
  inset-inline-end: 15rem;
}
.team-card__standing {
  display: block;
  width: 100%;
  height: auto;
}

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

.system-welfare {
  margin-block-start: 120rem;
}

.welfare-intro {
  margin-top: 0;
}
.welfare-intro__illust {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 30rem;
  width: 201rem;
}
.welfare-intro__illust img {
  display: block;
  width: 100%;
  height: auto;
}
.welfare-intro .system-intro__titlearea {
  margin-block-start: 20rem;
}

.welfare-list {
  display: flex;
  flex-direction: column;
  gap: 55rem;
  margin-block-start: 70rem;
}
.welfare-block {
  display: flex;
  gap: 55rem;
  align-items: flex-end;
}
.welfare-block__pic {
  flex-shrink: 0;
  width: 360rem;
  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;
  margin-block-end: -10rem;
}
.welfare-block__heading {
  margin-block-end: 25rem;
}
.welfare-block__lead {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 22rem;
  line-height: 1.95;
  letter-spacing: 0.12em;
  white-space: nowrap;
}
.welfare-tag {
  display: inline-block;
  margin-inline: 6rem;
  padding: 3rem 4rem 3rem 5rem;
  border-radius: 2rem;
  background-color: var(--color-primary);
  color: #FFFFFF;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 24rem;
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.welfare-tag--mis-0 {
  margin-inline-start: 0;
}
.welfare-block__body p {
  margin-block: var(--leading-trim);
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 2;
  letter-spacing: 0.15em;
}
@media (max-width: 1100px) {
  .welfare-block {
    gap: 50rem;
  }
  .welfare-block__lead {
    font-size: 18rem;
    letter-spacing: 0.1em;
  }
  .welfare-tag {
    font-size: 23rem;
  }
  .welfare-block__body p {
    font-size: 14rem;
    letter-spacing: 0.1em;
    text-align: justify;
  }
  .welfare-block__body p br {
    display: none;
  }
}
.welfare-block__body p + p {
  margin-top: 20rem;
}

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

.system-plus {
  position: relative;
  z-index: var(--z-index-system-plus);
  margin-block-start: 75rem;
  height: 177rem;
}

.plus-overlay {
  position: fixed;
  inset: 0;
  z-index: 10;
  background-color: rgba(184, 214, 226, 0.8);
  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 {
  position: relative;
  height: 100%;
}

/* pluscard */
.plus-card {
  position: absolute;
  inset-block-start: 0;
  width: calc(50% - 18rem);
  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: 35rem 35rem;
}
.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: 16rem;
  line-height: 1.85;
  letter-spacing: 0.13em;
  white-space: nowrap;
}
.plus-card__title {
  display: inline-block;
  margin-top: 13rem;
  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: 23rem;
  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-end: 16rem;
  inset-inline-end: 6%;
  width: 22%;
}
.plus-card__illust--reading {
  inset-block-end: 17rem;
  inset-inline-end: 8.5%;
  width: 15.5%;
}
.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);
  }
}
@media (max-width: 1100px) {
  .plus-card__head {
    padding-left: 30rem;
  }
  .plus-card__title {
    font-size: 21rem;
  }
  .plus-card__illust--dance {
    inset-inline-end: 4%;
    width: 18%;
  }
  .plus-card__illust--reading {
    inset-inline-end: 5%;
    width: 13.5%;
  }
}

/* プラスボタン*/
.plus-card__btn {
  position: absolute;
  inset-block-start: -13rem;
  inset-inline-end: -13rem;
  z-index: 2;
}

.plus-def {
  padding: 0 36rem 38rem;
}
.plus-def__row {
  display: flex;
  gap: 30rem;
  align-items: flex-start;
  padding-block: 28rem;
  padding-inline: 4rem;
  position: relative;
}
.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: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;
}
.plus-def__note {
  display: block;
  margin-block-start: 6rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 12rem;
  line-height: 1.55;
  letter-spacing: 0.03em;
}
.plus-def__desc {
  flex: 1;
  min-width: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
  text-align: justify;
}
.plus-def__desc:has(p) {
  padding-top: 6rem;
}
.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;
  gap: 36rem;
}
.video-card {
  position: relative;
  z-index: 0;
  width: calc(50% - 18rem);
}

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

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

.video-card__btn {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  translate: -50% -50%;
  width: 80rem;
  height: 80rem;
  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: 320rem;
}
.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__illust-stage {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 50%;
  width: 100%;
  max-width: var(--base-width);
  height: 100%;
  transform: translateX(-50%);
  pointer-events: none;
}
.data__illust-desk {
  position: absolute;
  bottom: 100rem;
  right: 14.5%;
}

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

.data-intro {
  margin-block-end: 66rem;
}
.data-intro__en {
  margin-bottom: 0;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 17rem;
  line-height: 1.55;
  letter-spacing: 0.12em;
  color: #78C4E9;
}
.data-intro__title {
  margin-block-start: 18rem;
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 31rem;
  line-height: 1.8;
  letter-spacing: 0.1em;
}
.data-intro__lead {
  margin-block-start: 10rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 16rem;
  line-height: 2.05;
  letter-spacing: 0.18em;
}

.data-list {
  display: flex;
  align-items: stretch;
}
.data-list--top {
  gap: 3.7%;
}
.data-list--bottom {
  margin-block-start: 55rem;
  gap: 2.5%;
}
.data-list > .data-card {
  flex: 1 1 0;
  min-width: 0;
}
@media (max-width: 1100px) {
  .data-list--top {
    gap: 2.5%;
  }
}

/* --- data card --- */
.data-card {
  --dogear: 26rem;
  position: relative;
  min-height: 228rem;
  padding-block: 30rem 20rem;
}
.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-list--top .data-card {
  padding-inline: 37rem;
}
.data-list--bottom .data-card {
  padding-inline: 30rem 25rem;
}
.data-card__label {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 21rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.data-card__desc {
  margin-block-start: 10rem;
  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: 4rem;
  margin-block-start: 15rem;
  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: 72rem;
  line-height: 1;
  letter-spacing: 0.02em;
}
.data-card__num-unit {
  font-weight: 500;
  font-size: 22rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
}
.data-card__num-unit--en {
  font-family: var(--font-gothic-en);
  font-size: 31rem;
  letter-spacing: 0.08em;
}
@media (max-width: 1100px) {
  .data-card__desc {
    letter-spacing: 0.08em;
    text-align: justify;
  }
  .data-card__desc br {
    display: none;
  }
  .data-card__num-main {
    font-size: 58rem;
    letter-spacing: 0;
  }
  .data-card__num-unit {
    font-size: 18rem;
  }
}

/* --- data card illust--- */
.data-card__illust {
  position: absolute;
  display: block;
  pointer-events: none;
}
.data-card__illust--maternity {
  inset-block-end: -22rem;
  inset-inline-end: 14%;
  width: 52rem;
  height: auto;
}
.data-card__illust--elder {
  inset-block-end: -36rem;
  inset-inline-end: 51rem;
  width: 39rem;
  height: auto;
}
.data-card__illust--resting {
  inset-block-start: -40rem;
  inset-inline-end: -19rem;
  width: 60rem;
  height: auto;
}
/* MARK: program
---------------------------------------------------------------------------*/
.program.bg-wave {
  margin-block-start: -350rem;
  padding-block-end: 400rem;
}
.program-container {
  width: 100%;
  margin-inline: auto;
  max-width: calc(1080rem + var(--spacing-content-inline) * 2);
  padding-inline: var(--spacing-content-inline);
  margin-top: -240rem;
}

.program-main {
  position: relative;
  padding-block-start: 127rem;
}
.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: 0;
  inset-inline-end: 56rem;
  z-index: 1;
  width: 176rem;
  height: auto;
}

.program-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-block-start: 70rem;
  text-align: center;
}
.program-intro__label {
  margin-bottom: 0;
  color: #000000;
  font-weight: 500;
  font-size: 17rem;
  line-height: 1;
  letter-spacing: 0.25em;
}
.program-intro__title {
  margin-block-start: 30rem;
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 31rem;
  line-height: 1.65;
  letter-spacing: 0.16em;
}
.program-intro__lead {
  margin-block-start: 20rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 16rem;
  line-height: 2.2;
  letter-spacing: 0.16em;
  white-space: nowrap;
}

/* --- プログラム3カード --- */
.program-list {
  display: flex;
  justify-content: center;
  gap: 40rem;
  margin-block-start: 66rem;
  padding-bottom: 82rem;
}
.program-card {
  width: 320rem;
}
.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: 126rem;
  height: 75rem;
  bottom: -8rem;
  right: 6rem;
}
.program-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 21rem;
  margin-block-start: 32rem;
}
.program-card__title {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 20rem;
  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.75;
  letter-spacing: 0.1em;
  text-align: justify;
}
.program-video {
  width: 95%;
  margin-inline: auto;
}
.program-video .video-list {
  gap: 45rem;
}
.program-video__head {
  position: relative;
  color: var(--color-primary);
  margin-block: var(--leading-trim);
  font-family: YuGothic;
  font-size: 18rem;
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  line-height: 1.8;
  letter-spacing: 0.13em;
  padding-inline-start: 63rem;
  margin-block-end: 28rem;
}
.program-video__head::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 50rem;
  height: 1px;
  background-color: var(--color-primary);
}

/* --- program greeting --- */
.program-greeting {
  display: flex;
  align-items: flex-end;
  gap: 6%;
  margin-block-start: 120rem;
  padding: 0 20rem;
}
@media (max-width: 1100px) {
  .program-greeting {
    align-items: flex-start;
  }
}
.greeting-imgarea {
  flex-shrink: 0;
  display: flex;
  gap: 33rem;
}
@media (max-width: 1100px) {
  .greeting-imgarea {
    width: 41%;
  }
}
.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: 17rem;
  line-height: 1.4;
  letter-spacing: 0.25em;
  white-space: nowrap;
}
.greeting-imgarea__pic {
  width: 370rem;
}
.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;
}
@media (max-width: 1100px) {
  .greeting-content {
    width: 59%;
  }
}
.greeting-info {
  padding-block-start: 40rem;
  padding-inline-end: 178rem;
}
@media (max-width: 1100px) {
  .greeting-info {
    padding-block-start: 26rem;
    padding-inline-end: 130rem;
  }
}
.greeting-info__text {
  padding-block-start: 10rem;
}
.greeting-info__text p {
  margin-block: var(--leading-trim);
  margin-bottom: 20rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 2;
  letter-spacing: 0.08em;
  text-align: justify;
}
@media (max-width: 1100px) {
  .greeting-info__text {
    padding-block-start: 5rem;
  }
  .greeting-info__text p {
    font-size: 14rem;
  }
}
.greeting-info__text p:last-child {
  margin-bottom: 0;
}

/* 動画リンク */
.greeting-info__movie {
  display: inline-flex;
  align-items: center;
  gap: 14rem;
  margin-block-start: 25rem;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.3s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .greeting-info__movie:hover .greeting-info__movie-text {
    border-block-end: 1rem solid transparent;
  }
}
.greeting-info__movie-icon {
  flex-shrink: 0;
  width: 34rem;
  height: auto;
}
.greeting-info__movie-text {
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 16rem;
  line-height: 1.5;
  letter-spacing: 0.12em;
  padding-block-end: 1rem;
  border-block-end: 1rem solid var(--color-primary);
  transition: border-block-end 0.2s ease-out;
}

.greeting-profile {
  --_right-width: 190rem;
  margin-block-start: 40rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  max-width: 480rem;
}
.greeting-profile__head {
  display: flex;
  align-items: baseline;
  gap: 13rem;
}
.greeting-profile__left {
  width: calc(100% - var(--_right-width));
  padding-right: 1em;
}
.greeting-profile__right {
  width: var(--_right-width);
}
.greeting-profile__name {
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-family: var(--font-gothic-jp-heading);
  font-size: 21rem;
  line-height: 1.85;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.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: 16rem;
  line-height: 1;
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-decoration: none;
  transition: opacity 0.2s ease-out, border-block-end 0.2s ease-out;
  transform: translateY(-3rem);
}
@media (hover: hover) and (pointer: fine) {
  .greeting-profile__link:hover {
    border-block-end: 1px solid transparent;
  }
}
.greeting-profile__role {
  margin-block: var(--leading-trim);
  margin-block-start: 10rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 13rem;
  line-height: 1.9;
  letter-spacing: 0.09em;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .greeting-info__movie-text {
    font-size: 15rem;
    letter-spacing: 0.1em;
  }
  .greeting-profile__role {
    font-size: 13rem;
    white-space: normal;
  }
  .greeting-profile__role br {
    display: none;
  }
}

/* 出版書籍 */
.greeting-book {
  display: flex;
  align-items: flex-end;
  gap: 14rem;
  margin-block-start: 24rem;
}
.greeting-book__pic {
  flex-shrink: 0;
  width: 74rem;
}
.greeting-book__pic img {
  display: block;
  width: 100%;
  height: auto;
}
.greeting-book__link {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
  text-decoration: none;
  transition: opacity 0.3s ease-out;
}
.greeting-book__text {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.3;
  letter-spacing: 0.07em;
  padding-bottom: 3rem;
  border-block-end: 1px solid var(--color-primary);
  transition: border-block-end 0.2s ease;
}
.greeting-book__arrow {
  flex-shrink: 0;
  width: 19rem;
  height: 19rem;
}
.greeting-catch {
  position: absolute;
  inset-block-start: 25rem;
  inset-inline-start: 0;
  writing-mode: vertical-rl;
  font-feature-settings: initial;
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 33rem;
  line-height: 1.5;
  letter-spacing: 0.15em;
}
@media (max-width: 1100px) {
  .greeting-catch {
    inset-block-start: 15rem;
    font-size: 28rem;
  }
}
.greeting-book__arrow circle {
  fill: transparent;
  transition: fill 0.2s ease-out;
}
.greeting-book__arrow path {
  transition: stroke 0.2s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .greeting-book__link:hover .greeting-book__text {
    border-block-end: 1px solid transparent;
  }
  .greeting-book__link:hover .greeting-book__arrow circle {
    fill: var(--color-primary);
  }
  .greeting-book__link:hover .greeting-book__arrow path {
    stroke: #fff;
  }
}


/* MARK: staff
---------------------------------------------------------------------------*/
.staff.bg-wave {
  margin-block-start: -330rem;
  padding-block-end: 500rem;
  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: calc((var(--bg-wave-height) * -1) + 130rem);
}


/* --- intro --- */
.staff-intro {
  padding-block-start: 48rem;
  width: 695rem;
  position: relative;
  z-index: 1;
}
@media (max-width: 1100px) {
  .staff-intro {
    width: calc(100% - 380rem);
  }
}
.staff-intro__small {
  margin: 0 0 0 4rem;
  color: #78C4E9;
  font-family: var(--font-gothic-jp-maru);
  font-weight: 700;
  font-size: 20rem;
  line-height: 1.8;
  letter-spacing: 0.14em;
}
.staff-intro__title {
  display: flex;
  align-items: flex-end;
  margin-block-start: -30rem;
  color: var(--color-primary);
  line-height: 1;
}
.staff-intro__title-jp {
  font-family: var(--font-gothic-jp-maru);
  font-weight: 700;
  font-size: 34rem;
  letter-spacing: 0.075em;
  transform: translateY(-4rem);
}
.staff-intro__title-num {
  margin-inline-start: 6rem;
  font-family: 'Domus', var(--font-gothic-en);
  font-weight: 600;
  font-size: 80rem;
  letter-spacing: 0.03em;
  transform: translateY(-1rem);
}
.staff-intro__title-dot {
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 31rem;
  padding-inline-start: 7rem;
  transform: translateY(-1rem);
}
.staff-intro__lead {
  margin-block-start: 30rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 2;
  letter-spacing: 0.12em;
  text-align: justify;
}

.staff-intro__illust {
  position: absolute;
  inset-block-start: 0;
  inset-inline-end: 43rem;
  width: 205rem;
  height: auto;
  pointer-events: none;
}


/*
MARK: staff-comment
------------------------------------------------ */
/* utility */
.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;
}
.u-underline, .u-underline-pc {
  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: -40rem;
  padding-block-start: 0;
  z-index: 0;
  padding-block-end: 100rem;
}
.staff-comment::before {
  display: block;
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #EBF0F2;
  z-index: -1;
}

.staff-comment__bg {
  position: absolute;
  inset-block-start: 95rem;
  inset-inline-start: 46%;
  width: 93%;
  height: auto;
  aspect-ratio: 997 / 580;
  transform: translateX(-50%);
  opacity: 0.45;
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
}
.staff-comment__bg img {
  width: 100%;
  height: 100%;
}

/* ページネーション */
.staff-comment__nav {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 15rem;
  margin-block-end: 35rem;
  padding-inline-end: 15rem;
}
.staff-comment__arrow {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 40rem;
  height: 40rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--color-primary);
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.staff-comment__arrow path {
  fill: #fff;
  transition: fill 0.2s ease;
}
.staff-comment__arrow:hover,
.staff-comment__arrow:focus-visible {
  background-color: #fff;
}
.staff-comment__arrow:hover path,
.staff-comment__arrow:focus-visible path {
  fill: var(--color-primary);
}
.staff-comment__arrow-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12rem;
  height: 12.5rem;
}
.staff-comment__arrow-icon svg {
  width: 100%;
  height: auto;
}
.staff-comment__arrow--prev .staff-comment__arrow-icon {
  transform: rotateY(-180deg) translateX(1px);
}
.staff-comment__arrow--next .staff-comment__arrow-icon {
  transform: translateX(1px);
}
.staff-pager {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.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 {
  background-color: var(--color-secondary-light);
  /* color: #FFFFFF; */
}

/* SP用モーダルまわり：PCではレイアウトに一切影響させない */
.staff-comment__more,
.staffcm-modal__close,
.staff-comment__br,
.u-modal-br,
.staff-comment__pickup-sp {
  display: none;
}
.staffcm-modal,
.staffcm-modal__scroll {
  display: contents;
}

/* スライダー本体 */
.staff-comment__canvas {
  --_canvas-height: 620rem;
  position: relative;
  z-index: 2;
  width: 100%;
  height: var(--_canvas-height);
  padding: 20rem;
  margin-inline-start: -30rem;
  overflow: hidden;
  /* セクションが画面に入るまで非表示（JSで is-revealed 付与） */
  opacity: 0;
  transition: opacity 0.4s ease-out;
}
.staff-comment__canvas.is-revealed {
  opacity: 1;
}
/* slick自身のフェードは無効化し、表示はslick-currentで制御 */
.staff-comment__slider .slick-list {
  overflow: visible;
}
.staff-comment__slider .slick-slide {
  opacity: 1 !important;
  visibility: hidden;
  /* 非表示スライドは中身のレイアウト計算ごとスキップ */
  content-visibility: hidden;
}
.staff-comment__slider .slick-slide.slick-current {
  visibility: visible;
  content-visibility: visible;
}
.staff-comment__slider,
.staff-comment__slider .slick-list,
.staff-comment__slider .slick-track {
  height: var(--_canvas-height);
}
.staff-comment__slide {
  position: relative;
  height: var(--_canvas-height);
  outline: none;
}

/* 吹き出し */
.staff-comment__item {
  position: absolute;
  inset-inline-start: var(--x);
  inset-block-start: var(--y);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13rem 28rem;
  border-radius: 11rem;
  background-color: #FFFFFF;
  box-shadow: 0 3rem 6.5rem rgba(229, 233, 235, 0.9);
  transform-origin: center center;
  will-change: transform, opacity;
}
.staff-comment__item:has(.staff-comment__txt--2row) {
  padding: 20rem 30rem;
}
.staff-comment__txt {
  margin: 0;
  text-align: center;
}
.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.6;
  letter-spacing: 0.08em;
  white-space: nowrap;
  font-feature-settings: "palt" 1;
}
/* 吹き出しのしっぽ */
.staff-comment__item::after {
  content: "";
  position: absolute;
  inset-inline-end: 18rem;
  inset-block-end: -10rem;
  width: 17rem;
  height: 18rem;
  background: url(../img/bg-comment.svg) no-repeat center / contain;
  pointer-events: none;
}


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

.staff-interview__head {
  display: flex;
  align-items: flex-end;
  gap: 20rem;
  justify-content: space-between;
}
.staff-interview__en {
  margin: 0 0 20rem 3rem;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 17rem;
  line-height: 1.55;
  letter-spacing: 0.12em;
}
.staff-interview__jp {
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 31rem;
  line-height: 1.2;
  letter-spacing: 0.08em;
}
.staff-interview__nav {
  display: flex;
  align-items: center;
  gap: 13rem;
  margin-block-end: 0;
}
.staff-interview__arrow {
  display: grid;
  place-items: center;
  width: 40rem;
  height: 40rem;
  padding: 0;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-primary);
  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: #fff;
  border-color: #fff;
  color: var(--color-primary);
}
.staff-interview__arrow:hover path,
.staff-interview__arrow:focus-visible path {
  fill: var(--color-primary);
}
.staff-interview__arrow-icon {
  width: 11rem;
  height: 12rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.staff-interview__arrow-icon svg {
  width: 100%;
  height: auto;
}
.staff-interview__arrow-icon path {
  transition: fill 0.2s ease;
  fill: #fff;
}
.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__slider {
  margin-block-start: 40rem;
}
.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
*/
.interview-modal {
  position: fixed;
  inset: 0;
  z-index: 1150;
  display: flex;
  align-items: center;
  justify-content: center;
  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: 25rem;
  inset-inline-end: 20rem;
  width: 50rem;
  height: 20rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: transform 0.2s ease-out;
}
.interview-modal__close img {
  width: 100%;
  height: 100%;
}
.interview-modal__close:hover,
.interview-modal__close:focus-visible {
  transform: scale(1.1);
}
.interview-modal__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 1180rem;
  max-width: 92vw;
  height: 730rem;
  max-height: 86vh;
  transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}
.interview-modal.is-open .interview-modal__panel {
  transform: translateY(0);
}
.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%;
  max-height: 86vh;
  overflow: hidden;
}
.interview-modal__slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  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,
.interview-modal__panel-back,
.interview-modal__panel-back2 {
  transition: opacity 0.2s ease, transform 0.2s ease;
} */
.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;
}

.interview-modal__panel-back {
  content: "";
  position: absolute;
  inset: 15rem 15rem;
  border: 1rem solid #78C4E9;
  pointer-events: none;
  z-index: -1;
  width: 100%;
  height: 100%;
  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 {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: stretch;
  flex-shrink: 0;
  height: 55rem;
  border-block-end: 1rem solid #78C4E9;
  transition: opacity 0.25s ease;
}
.interview-modal__num {
  display: grid;
  place-items: center;
  width: 55rem;
  flex-shrink: 0;
  border-inline-end: 1rem solid #78C4E9;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 18rem;
  letter-spacing: 0.12em;
}
.interview-modal__person {
  display: flex;
  align-items: baseline;
  gap: 10rem;
  padding-inline-start: 22rem;
  align-self: center;
}
.interview-modal__name {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 19rem;
  letter-spacing: 0.05em;
}
.interview-modal__school {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 13rem;
  letter-spacing: 0.09em;
}
.interview-modal__label {
  margin-inline-start: auto;
  align-self: center;
  padding-inline-end: 24rem;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 400;
  font-size: 17rem;
  letter-spacing: 0.09em;
}
.interview-modal__body {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}
.interview-modal__left {
  --_nav-height: 112rem;
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  width: 450rem;
  max-width: 50%;
  flex-shrink: 0;
  border-inline-end: 1rem solid #78C4E9;
  transition: opacity 0.25s ease;
}
.interview-modal__main {
  position: relative;
  padding: 50rem 0;
  height: calc(100% - var(--_nav-height));
  border-block-end: 1rem solid #78C4E9;
}
.interview-modal__main-img {
  display: block;
  width: auto;
  height: 100%;
  margin-inline: auto;
  aspect-ratio: 3 / 4;
  object-fit: contain;
}
.interview-modal__bubble {
  position: absolute;
  inset-inline-end: 30rem;
  inset-block-end: 60rem;
  padding: 16rem 20rem;
  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: 16rem;
  line-height: 1.55;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.interview-modal__bubble::after {
  content: "";
  position: absolute;
  inset-block-start: -15rem;
  inset-inline-end: 30%;
  width: 16rem;
  height: 16rem;
  background-color: #FFFFFF;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}
.interview-modal__nav {
  margin-block-start: auto;
  display: flex;
  height: var(--_nav-height);
}
.interview-modal__nav-item {
  flex: 1 1 0;
  min-width: 0;
  margin-left: -2rem;
  padding: 10rem 14rem 10rem 16rem;
  border: 0;
  background: transparent;
  text-align: start;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.interview-modal__nav-item--next {
  border-inline-start: 1px solid #78C4E9;
}

.interview-modal__nav-item:hover {
  opacity: 0.7;
}
.interview-modal__nav-label {
  display: block;
  margin-block-end: 12rem;
  color: #78C4E9;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 13rem;
  letter-spacing: 0.08em;
}
.interview-modal__nav-body {
  display: flex;
  align-items: center;
  gap: 14rem;
}
.interview-modal__nav-thumb {
  flex-shrink: 0;
  width: 54rem;
  height: 54rem;
  object-fit: cover;
  border-radius: 7rem;
}
.interview-modal__nav-meta {
  display: flex;
  flex-direction: column;
  gap: 8rem;
  min-width: 0;
}
.interview-modal__nav-school {
  color: #000000;
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 12rem;
  letter-spacing: 0.04em;
  white-space: initial;
  line-height: 1.4;
}
.interview-modal__nav-name {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 15rem;
  letter-spacing: 0.09em;
}
.interview-modal__right {
  position: relative;
  z-index: 3;
  flex: 1 1 auto;
  min-width: 0;
  padding: 10rem;
}
.interview-modal__scroll {
  height: 100%;
  overflow-y: auto;
  padding: 45rem;
  transition: opacity 0.25s ease;
}
.interview-modal__scroll::-webkit-scrollbar {
  width: 1px;
}
.interview-modal__scroll::-webkit-scrollbar-track {
  background-color: transparent;
}
.interview-modal__scroll::-webkit-scrollbar-thumb {
  background-color: #ADADAD;
  border-radius: 999px;
}
.interview-qa + .interview-qa {
  margin-block-start: 35rem;
}
.interview-qa__q {
  display: flex;
  align-items: baseline;
  gap: 9rem;
  margin: 0 0 15rem;
}
.interview-qa__mark {
  flex-shrink: 0;
  color: #ED9E00;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 18rem;
  letter-spacing: 0.12em;
}
.interview-qa__question {
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 16rem;
  line-height: 1.5;
  letter-spacing: 0.11em;
}
.interview-qa__a {
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 14rem;
  line-height: 2.1;
  letter-spacing: 0.125em;
  text-align: justify;
}

/* --- 学生インタビュー モーダル（.interview-modal を流用） --- */
/* ヘッダー：番号なし・説明テキスト */
.interview-modal__name--student {
  font-size: 16rem;
  letter-spacing: 0.09em;
}
/* 左カラム：2枚の写真＋キャプション（前後リンクなし） */
.interview-modal__left--student {
  --_caption-height: 6.5em;
  justify-content: flex-start;
}
.interview-modal__student-photos {
  display: flex;
  flex-direction: column;
  gap: 5rem;
  padding: 50rem 60rem 0;
  height: calc(100% - var(--_caption-height));
}
.interview-modal__main-img.interview-modal__main-img--student {
  aspect-ratio: 340 / 255;
  width: auto;
  height: calc(50% - 2.5rem);
}
.interview-modal__caption {
  height: var(--_caption-height);
  margin-block-start: 30rem;
  font-size: 15rem;
  line-height: 1.75;
  letter-spacing: 0.09em;
  white-space: normal;
  padding-inline-start: 20rem;
  padding-block-end: 20rem;
}


/*
  MARK: staffcard
*/
.staff-card {
  position: relative;
  width: 270rem;
  margin-inline-end: 67rem;
  cursor: pointer;
}
.staff-card__pic {
  overflow: hidden;
}
.staff-card__pic img {
  display: block;
  width: 270rem;
  height: 360rem;
  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: -26rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13rem;
  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: 16rem;
  letter-spacing: 0.09em;
  line-height: 1.2;
}
.staff-card__school {
  color: var(--color-text);
  font-weight: 500;
  font-size: 14rem;
  letter-spacing: 0.1em;
  line-height: 1.15;
}
/* プラスボタンの丸枠（オレンジ） */
.icon-plus {
  width: 40rem;
  height: 40rem;
  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;
}
@media (hover: hover) and (pointer: fine) {
  .staff-card:hover .icon-plus,
  .staff-card:focus-visible .icon-plus {
    animation: popupHover 0.4s ease-out forwards;
  }
  .staff-card:hover .icon-plus__cross,
  .staff-card:focus-visible .icon-plus__cross {
    transform: rotateZ(90deg);
  }
  .staff-card:hover .staff-card__pic img {
    transform: scale(1.05);
  }
}
.staff-card__bubble {
  position: absolute;
  z-index: 2;
  inset-block-end: -30rem;
  inset-inline-end: -20rem;
  padding: 12rem 20rem;
  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: 16rem;
  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%);
}


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

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

.student-interview {
  position: relative;
  cursor: pointer;
}
.student-interview__pic {
  overflow: hidden;
}
.student-interview__pic img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 510 / 344;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(0.23, 1, 0.320, 1);
}
@media (hover: hover) and (pointer: fine) {
  .student-interview:hover .icon-plus,
  .student-interview:focus-visible .icon-plus {
    animation: popupHover 0.4s ease-out forwards;
  }
  .student-interview:hover .icon-plus__cross,
  .student-interview:focus-visible .icon-plus__cross {
    transform: rotateZ(90deg);
  }
  .student-interview:hover .student-interview__pic img {
    transform: scale(1.025);
  }
}
/* ＋ボタン（モーダル起動） */
.student-interview__more {
  position: absolute;
  z-index: 2;
  inset-block-start: -20rem;
  inset-inline-end: -20rem;
}

/* 吹き出し */
.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: 15rem;
  line-height: 2.05;
  letter-spacing: 0.15em;
}

/* --- 学生インタビュー モーダル --- */
.interview-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40rem;
  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: 40rem;
  inset-inline-end: 40rem;
  width: 66rem;
  height: 60rem;
  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%;
  max-width: 70%;
  height: auto;
  transform: translateY(12rem);
  transition: transform 0.3s ease;
}
.video-modal.is-open .video-modal__inner {
  transform: translateY(0);
}
.video-modal__bar {
  display: block;
  width: calc(100% + var(--_bar-width) * 2);
  height: var(--_bar-height);
  margin-inline: calc(var(--_bar-width) * -1);
  border-radius: calc(var(--_bar-height) / 2);
  background-color: #D6C8A1;
}
.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
---------------------------------------------------------------------------*/
.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: 40rem;
  inset-inline-end: 40rem;
  width: 66rem;
  height: 60rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: transform 0.2s ease;
}
.requirement-modal__close img {
  width: 100%;
  height: 100%;
}
.requirement-modal__close:hover,
.requirement-modal__close:focus-visible {
  transform: scale(1.06);
}
.requirement-modal__scroll {
  max-height: 100vh;
  max-height: 100dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.requirement-modal__scroll::-webkit-scrollbar { width: 1px; }
.requirement-modal__scroll::-webkit-scrollbar-track { background-color: transparent; }
.requirement-modal__scroll::-webkit-scrollbar-thumb { background-color: var(--color-primary); }

.requirement-modal__body {
  display: flex;
  align-items: flex-start;
  gap: 6.6%;
  padding: 0 6% 0 2.3%;
}

/* 左：ティッカー */
.requirement-ticker {
  flex: 0 0 350rem;
  flex: 0 0 28.5%;
  display: flex;
  gap: 20rem;
  position: sticky;
  inset-block-start: 0;
}
.requirement-ticker__col {
  /*width: 165rem;*/
  overflow: hidden;
}
.requirement-ticker__track {
  display: flex;
  flex-direction: column;
  gap: 13rem;
  will-change: transform;
}
.requirement-ticker__item img {
  display: block;
  width: 100%;
  height: auto;
}
.requirement-content {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  padding-block-start: 190rem;
  padding-block-end: 90rem;
  /*max-width: calc(780rem + (var(--spacing-content-inline) *2));*/
  margin-inline: auto;
}
.requirement-content__intro {
  padding-inline: 30rem;
}
.requirement-content__tree {
  position: absolute;
  inset-block-start: 73rem;
  inset-inline-end: 40rem;
  width: 136rem;
  height: auto;
  pointer-events: none;
}
.requirement-content__head {
  display: flex;
  align-items: flex-end;
  gap: 21rem;
  margin-block-end: 20rem;
}
.requirement-content__title {
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 27rem;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.requirement-content__en {
  margin: 0;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 15rem;
  letter-spacing: 0.12em;
}

/* アコーディオン */
.req-acc__head {
  display: flex;
  align-items: center;
  gap: 13rem;
  width: 100%;
  padding: 35rem 10rem 35rem;
  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: 18rem;
  letter-spacing: 0.1em;
  transition: .15s ease-out;
}
.req-acc__head:hover .req-acc__title {
  opacity: 0.7;
}
.req-acc__icon {
  position: relative;
  flex-shrink: 0;
  width: 21rem;
  height: 21rem;
  margin-top: -2rem;
  border-radius: 50%;
  background-color: #ED9E00;
  transition: transform 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .req-acc:hover .req-acc__icon {
    transform: rotate(90deg);
  }
  .req-acc.is-open:hover .req-acc__icon {
    transform: rotate(-45deg);
  }
}
.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 34rem;
}
.req-acc__note {
  margin: 0;
  padding-inline: 10rem;
  color: var(--color-text);
  font-size: 15rem;
  line-height: 1.8;
}
.requirement-acc__empty p {
  color: var(--color-text);
  font-size: 16rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.13em;
}
.requirement-acc__empty a {
  color: var(--color-primary);
  text-decoration: underline;
}
@media (hover: hover) and (pointer: fine) {
  .requirement-acc__empty a:hover {
    text-decoration: none;
  }
}

/* 求人票テーブル */
.req-table {
  margin: 0;
}
.req-table__row {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 24rem 10rem 22rem;
  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: 0 0 150rem;
  margin: 0;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 16rem;
  line-height: 1.75;
  letter-spacing: 0.05em;
}
.req-table__value {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-weight: 500;
  font-size: 15rem;
  line-height: 1.75;
  letter-spacing: 0.1em;
}
/*
 MARK: entryForm
*/
.requirement-form {
  --_form-padding-left: 26%;
  position: relative;
  margin-block-start: 100rem;
  padding: 80rem 10.5% 65rem 9.5%;
  background-color: #F3F8FA;
}
.requirement-form__illust {
  position: absolute;
  inset-block-start: -32rem;
  inset-inline-end: 40rem;
  width: 157rem;
  height: auto;
  pointer-events: none;
}
/* 見出し */
.requirement-form__head {
  display: flex;
  flex-direction: column;
  margin-block-end: 70rem;
}
.requirement-form__en {
  order: -1;
  margin: 0;
  color: #78C4E9;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 15rem;
  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: 27rem;
  line-height: 1.8;
  letter-spacing: 0.13em;
}
.requirement-form__lead {
  margin: 22rem 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.14em;
}

/* CF7 リセット */
.requirement-form .wpcf7 {
  position: relative;
}
.requirement-form .hidden-fields-container {
  margin: 0;
  padding: 0;
  border: 0;
}
.requirement-form .form-wrap {
  max-width: 635rem;
}
.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.7;
  letter-spacing: 0.1em;
  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;
}

/* 行レイアウト（ラベル＋入力） */
.requirement-form .form-wrap dl {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin: 0 0 25rem;
}
.requirement-form .form-wrap dl dt.requirementform__dt-2row {
  margin-top: 4rem;
}
.requirement-form .form-wrap dl dt.requirementform__dl-top {
  margin-top: 14rem;
}
.requirement-form .form-wrap dl dt.requirementform__dt-top-textarea {
  margin-top: 0rem;
}
.requirement-form .form-wrap dt {
  position: relative;
  flex: 0 0 165rem;
  margin-top: 14rem;
  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 {
  margin: 0;
  line-height: 1.4;
}
.requirement-form .form-wrap dt span {
  display: block;
  margin-top: 4rem;
  font-size: 12rem;
  font-weight: 500;
  letter-spacing: 0.06em;
}
/* 必須マーク */
.must > p {
  position: relative;
}
.must > p::before {
  content: "";
  position: absolute;
  inset-block-start: 0rem;
  inset-inline-start: -10rem;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background-color: #ED9E00;
}
.requirement-form .form-wrap dd {
  flex: 1 1 auto;
  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: 470rem;
  max-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);
  font-size: 15rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.requirement-form .wpcf7-form-control.wpcf7-textarea {
  height: 200rem;
  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);
}

/* ラジオ・チェックボックス群 */
.requirement-form .wpcf7-radio,
.requirement-form .wpcf7-checkbox,
.requirement-form .wpcf7-acceptance {
  display: flex;
  flex-wrap: wrap;
  column-gap: 20rem;
  row-gap: 3rem;
}
.requirement-form .wpcf7-radio, .requirement-form .wpcf7-checkbox {
  padding-block-start: 11rem;
}
.requirement-form .wpcf7-list-item {
  margin: 0;
}
.requirement-form .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 7rem;
  cursor: pointer;
}
.requirement-form .wpcf7-list-item-label {
  color: var(--color-text);
  font-family: var(--font-gothic-jp);
  font-size: 15rem;
  line-height: 2;
  letter-spacing: 0.1em;
}
.requirement-form input[type="radio"],
.requirement-form input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 14rem;
  height: 14rem;
  margin: -1rem 0 0;
  border: 1rem solid #C4C4C4;
  background-color: #FFFFFF;
  cursor: pointer;
}
.requirement-form input[type="radio"] {
  border-radius: 50%;
}
.requirement-form input[type="checkbox"] {
  width: 15rem;
  height: 15rem;
  border-radius: 2rem;
}
.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 .dd-checkbox {
  /*margin-block-start: 12rem;*/
}

/* 個人情報の取り扱い（スクロールボックス） */
.requirement-form .privacy {
  margin-inline-start: 165rem;
  background-color: #E8F1F5;
  border-radius: 3rem;
  padding: 10rem 10rem 10rem 0;
}
.requirement-form .form-wrap .privacy dd > p {
  line-height: 2;
}
.requirement-form .privacy .inner {
  height: 300rem;
  padding: 30rem 35rem 30rem 40rem;
  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: var(--color-primary);
}
@-moz-document url-prefix() {
  .requirement-form .privacy .inner {
    scrollbar-color: rgba(0, 0, 0, 0) var(--color-primary);
    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: 2;
  letter-spacing: 0.04em;
  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: 16rem 0 0;
  margin-inline-start: 165rem;
}
.requirement-form .privacy-check p {
  margin: 0;
}
.requirement-form .privacy-check .wpcf7-list-item-label {
  font-size: 14rem;
  line-height: 2;
}

/* 注意書き */
.requirement-form .attention-list {
  margin: 13rem 0 0;
  margin-inline-start: 165rem;
  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: 3rem;
  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: flex-end;
  margin-block-start: 45rem;
}
.requirement-form .btn-submit p {
  margin: 0;
}
.requirement-form .wpcf7-submit {
  display: block;
  width: 470rem;
  max-width: 100%;
  height: 65rem;
  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.1em;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.requirement-form .wpcf7-submit:hover {
  opacity: 0.85;
}
.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: 125rem;
  overflow-x: hidden;
}
.event.bg-wave {
  margin-block-start: -380rem;
  position: relative;
}
.event-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) / 2 - 30rem);
}
.event-contents__inner {
  position: relative;
  width: 100%;
  max-width: var(--_max-width);
  margin-inline: auto;
}

/* --- 見出し --- */
.event-intro {
  margin-block-end: 80rem;
}
.event-intro__en {
  margin-bottom: 0;
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 17rem;
  line-height: 1.55;
  letter-spacing: 0.12em;
  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: 31rem;
  line-height: 1.8;
  letter-spacing: 0.15em;
}
.event-intro__lead {
  margin-block-start: 10rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 16rem;
  line-height: 2.05;
  letter-spacing: 0.18em;
}

.event-block {
  display: flex;
  gap: 60rem;
  position: relative;
  align-items: flex-end;
}
.event-block--practice {
  margin-block-end: 120rem;
}

.event-block__pics {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 13rem;
  width: 39%;
}
.event-block__pic img {
  width: 100%;
  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: 17rem;
  line-height: 1;
  letter-spacing: 0.25em;
  margin-left: -2rem;
}
.event-block__heading {
  margin-block-start: 20rem;
  font-family: var(--font-gothic-jp-heading);
  margin-bottom: 0;
  color: var(--color-primary);
  font-weight: 700;
  font-size: 22rem;
  line-height: 1.85;
  letter-spacing: 0.14em;
}
.event-block__text {
  margin-block-start: 18rem;
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 2.15;
  letter-spacing: 0.05em;
}
.event-block__text p {
  margin-block: 0;
}
.event-block__text p + p {
  margin-block-start: 10rem;
}

.event-feature {
  display: flex;
  column-gap: 31rem;
  margin-block-start: 35rem;
  padding: 30rem 32rem 30rem 30rem;
  background-color: #fff;
  border-radius: 8rem;
  width: fit-content;
}
.event-feature__list {
  margin: 0;
  padding-inline-start: 20rem;
  list-style: disc;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 15rem;
  letter-spacing: 0.08em;
}
.event-feature__list li {
  line-height: 1.8;
}
.event-feature__list li + li {
  margin-block-start: 5rem;
}

.event-feature--event {
  column-gap: 26rem;
  padding-block: 30rem;
}
.event-feature__title {
  flex: 0 0 auto;
  margin: -2rem 0 0;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 15rem;
  line-height: 1.55;
  letter-spacing: 0.04em;
}
.event-feature--event .event-feature__list li {
  line-height: 1.15;
  font-family: var(--font-gothic-jp-heading);
}
.event-feature--event .event-feature__list li + li {
  margin-block-start: 13rem;
}

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

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

/* --- 装飾イラスト（absolute配置） --- */
.event-illust {
  position: absolute;
  height: auto;
  pointer-events: none;
}
.event-illust--fire {
  inset-block-start: 0;
  inset-inline-start: 775rem;
  width: 156rem;
}
.event-illust--drawing {
  inset-block-start: 115rem;
  inset-inline-start: 930rem;
  width: 120rem;
}
.event-illust--eventstaff {
  inset-block-start: -32rem;
  inset-inline-end: -65rem;
  width: 22%;
  max-width: 236rem;
}

@media (max-width: 1200px) {
  .event-btn {
    font-size: 16rem;
  }
  .event-illust--eventstaff {
    inset-block-start: -15%;
    inset-inline-end: 0;
    width: 20%;
  }
}
@media (max-width: 1100px) {
  .event-block {
    align-items: flex-start;
  }
  .event-block__text p {
    font-size: 13rem;
  }
  .event-block__actions {
    gap: 25rem;
    margin-right: -60rem;
  }
  .event-block__actions i {
    display: none;
  }
  .event-feature__title {
    font-size: 13rem;
  }
  .event-feature__list {
    font-size: 12rem;
  }
  .event-illust--eventstaff {
    inset-block-start: -25%;
    inset-inline-end: 1%;
    width: 18%;
  }
}



/* MARK: entry
---------------------------------------------------------------------------*/
.entry.bg-wave {
  padding-block-end: 140rem;
  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: 230rem;
}

/* --- intro --- */
.entry-intro {
  max-width: 620rem;
  width: calc(100% - 300rem);
}
.entry-intro__label {
  margin-bottom: 0;
  color: #000000;
  font-weight: 400;
  font-family: var(--font-gothic-jp);
  font-size: 17rem;
  line-height: 1;
  letter-spacing: 0.22em;
}
.entry-intro__title {
  position: relative;
  margin-block-start: 22rem;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 30rem;
  line-height: 1.7;
  letter-spacing: 0.14em;
}
.entry-intro__marker {
  position: absolute;
  inset-block-end: 5rem;
  inset-inline-start: -3rem;
  width: 239rem;
  height: auto;
  pointer-events: none;
}
.entry-intro__lead {
  margin-block-start: 26rem;
  margin-bottom: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 17rem;
  line-height: 2.1;
  letter-spacing: 0.15em;
}
@media (max-width: 1100px) {
  .entry-intro__lead {
    font-size: 15rem;
    letter-spacing: 0.13em;
  }
}

/* --- 申し込みボタン --- */
.entry-btnarea {
  padding-block-start: 55rem;
}
.entry-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 428rem;
  position: relative;
  padding: 21rem 30rem;
  border-radius: 999rem;
  background-color: #ED9E00;
  color: #fff;
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 22rem;
  line-height: 1.85;
  letter-spacing: 0.13em;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .entry-btn:hover span {
    animation: txt_upper 0.3s ease-out forwards;
  }
  .entry-btn:hover span:nth-child(1) {
    animation-delay: 0;
  }
  .entry-btn:hover span:nth-child(2) {
    animation-delay: 0.02s;
  }
  .entry-btn:hover span:nth-child(3) {
    animation-delay: 0.04s;
  }
  .entry-btn:hover span:nth-child(4) {
    animation-delay: 0.06s;
  }
  .entry-btn:hover span:nth-child(5) {
    animation-delay: 0.08s;
  }
  .entry-btn:hover span:nth-child(6) {
    animation-delay: 0.1s;
  }
  .entry-btn:hover span:nth-child(7) {
    animation-delay: 0.12s;
  }
  .entry-btn:hover span:nth-child(8) {
    animation-delay: 0.14s;
  }
  .entry-btn:hover .entry-btnarea__illust {
    transform: rotateZ(10deg) translateY(-2rem) translateX(-2rem);
  }
}
.entry-btnarea__illust {
  position: absolute;
  inset-block-start: 27rem;
  inset-inline-start: 419rem;
  width: 49rem;
  height: auto;
  pointer-events: none;
  transition: transform 0.2s ease-out;
}

/* --- 見学風景 写真 --- */
.entry-pic {
  position: absolute;
  object-fit: cover;
}
.entry-pic--01 {
  inset-block-start: 5%;
  inset-inline-end: 24%;
  width: 19vw;
  max-width: 252rem;
  height: auto;
  aspect-ratio: 252 / 190;
}
.entry-pic--02 {
  inset-block-start: 0;
  inset-inline-end: 4%;
  width: 9.46vw;
  max-width: 125rem;
  height: auto;
  aspect-ratio: 125 / 167;
}
.entry-pic--03 {
  inset-block-start: 27.5%;
  inset-inline-end: 3%;
  width: 29.84vw;
  max-width: 394rem;
  height: auto;
  aspect-ratio: 394 / 296;
}

/* --- detail --- */
.entry-detail {
  width: 100%;
  margin-block-start: 115rem;
}
.entry-detail__row {
  display: flex;
  align-items: flex-start;
}
.entry-detail__row + .entry-detail__row {
  margin-block-start: 65rem;
}
.entry-detail__title {
  flex: 0 0 25%;
  margin: 0;
  font-family: var(--font-gothic-jp-heading);
  color: var(--color-primary);
  font-weight: 700;
  font-size: 21rem;
  line-height: 1.75;
  letter-spacing: 0.12em;
}
.entry-detail__body {
  flex: 1 1 auto;
  min-width: 0;
}
.entry-detail__text {
  margin: 0;
  color: var(--color-text);
  font-weight: 500;
  font-size: 16rem;
  line-height: 2.05;
  letter-spacing: 0.15em;
}
@media (max-width: 1100px) {
  .entry-detail__title {
    flex: 0 0 28%;
    font-size: 20rem;
    letter-spacing: 0.1em;
  }
  .entry-detail__text {
    font-size: 15rem;
  }
}

/* 電話番号 */
.entry-tel {
  display: flex;
  align-items: flex-end;
  gap: 17rem;
  margin-block-start: 20rem;
}
.entry-tel__label {
  color: var(--color-primary);
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 23rem;
  line-height: 1.85;
  letter-spacing: 0.09em;
}
.entry-tel__num {
  margin-inline-start: -10rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-en);
  font-weight: 500;
  font-size: 34rem;
  line-height: 1.4;
  letter-spacing: 0.09em;
  text-decoration: underline;
  text-underline-offset: 0.1em;
  text-decoration-thickness: 2rem;
}
.entry-tel__hours {
  color: var(--color-text);
  font-weight: 500;
  font-size: 15rem;
  line-height: 1.85;
  letter-spacing: 0.09em;
  padding-block-end: 5rem;
}
@media (max-width: 1100px) {
  .entry-tel__num {
    font-size: 32rem;
    letter-spacing: 0.07em;
  } 
}

.entry-advice {
  width: 528rem;
  margin-block-start: 15rem;
  padding: 28rem 30rem 30rem 38rem;
  background-color: #fff;
  border-radius: 12rem;
}
.entry-advice__title {
  margin: 0 0 14rem;
  color: var(--color-primary);
  font-family: var(--font-gothic-jp-heading);
  font-weight: 700;
  font-size: 17rem;
  line-height: 2.05;
  letter-spacing: 0.11em;
}
.entry-advice__list {
  margin: 0;
  padding-inline-start: 22rem;
  list-style: disc;
  color: #353535;
  font-size: 15rem;
  letter-spacing: 0.15em;
}
.entry-advice__list li {
  line-height: 1.7;
}
.entry-advice__list li + li {
  margin-block-start: 7rem;
}