@charset "utf-8";

html {
  scroll-behavior: smooth;
}

/* ========================================
   Base & Generic Styles
======================================== */

/* 1920px基準：px → vw（vw = px / 19.2） */

@keyframes footerLineDraw {
  0%,10% {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
  }

  20% {
    opacity: 1;
    clip-path: inset(0 40% 0 0);
  }
  40% {
    clip-path: inset(0 0 0 0);
  }
  65% {
    opacity: 1;
  }
  80% {
    opacity: 0.7;
    clip-path: inset(0 0 0 0);
  }
  100% {
    opacity: 0;
    clip-path: inset(0 0 0 0);
  }
}

@keyframes footerPlane {
  0%,20% {
    opacity: 0;
    transform: translate(-1.5625vw, -1.5625vw) scale(0.6) rotate(-12deg);
  }
  35% {
    opacity: 1;
    transform: translate(-0.625vw, -0.9375vw) scale(0.85) rotate(-6deg);
  }
  55% {
    opacity: 1;
    transform: translate(1.6667vw, -0.4167vw) scale(1) rotate(4deg);
  }
  80% {
    opacity: 0.7;
    transform: translate(2.5vw, -0.625vw) scale(0.95) rotate(8deg);
  }
  100% {
    opacity: 0;
    transform: translate(3.125vw, -0.9375vw) scale(0.9) rotate(10deg);
  }
}

/* スクロールアップ */
.scroll-up {
  opacity: 0;
  visibility: hidden;
  transform: translateY(2.6042vw); /* 50px */
  transition: all 1s; /* 秒はそのまま */
}

.scroll-up.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0vw); /* 0px */
}

/* レイアウト・タイポグラフィ */
.row {
  flex-direction: row-reverse;
}

.sp-on {
  display: none;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

p {
  font-style: normal;
  font-size: 0.7292vw; /* 14px */
  color: #333;
  line-height: 1.5;
  letter-spacing: 0.0521vw; /* 1px */
}

img {
  width: 100%;
}

h2 {
  font-size: 1.4583vw; /* 28px */
  font-weight: bold;
  line-height: 1.5;
  color: #ffd900;
}

h2.en {
  font-size: 2.6042vw; /* 50px */
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #3b6f99;
}

h3 {
  font-size: 1.25vw; /* 24px */
  line-height: 1.5;
  font-weight: bold;
  letter-spacing: 0.1042vw; /* 2px */
  margin-bottom: 0.625vw; /* 12px */
}

h3.en {
  font-size: 0.9375vw; /* 18px */
  letter-spacing: normal;
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #f5d200;
}

.catch-en {
  width: 100%;
  max-width: 100%;
  font-size: clamp(2.5vw, 6vw, 5vw); /* 48px, 6vw, 96px を 1920基準で換算 */
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #ffd900;
  overflow: hidden;
  white-space: nowrap;
  text-transform: uppercase;
  margin-top: 2.0833vw; /* 40px */
}

.catch-en__track {
  display: inline-flex;
  gap: 0;
  min-width: max-content;
  animation: catchMarquee 18s linear infinite;
  will-change: transform;
}

.catch-en__track span {
  display: inline-block;
  padding-right: clamp(2.0833vw, 4vw, 4.1667vw); /* 40px, 4vw, 80px */
}

.p-title {
  font-size: 0.9375vw; /* 18px */
  line-height: 2;
  letter-spacing: 0.0521vw; /* 1px */
}

body {
  width: 100%;
  height: 100%;
  margin: auto;
  color: #333;
  word-wrap: break-word;
  overflow-wrap: break-word;
  overflow-x: hidden;
  font-family: "Zen Maru Gothic", serif;
  font-style: normal;
}

li {
  list-style: none;
}

.sp-br {
  display: none;
}

.pc-br {
  display: block;
}

section:not(.fv-slider):not(.page-hero) {
  padding: 10.4167vw 15.625vw 0; /* 200px 300px 0 */
  margin: 0 auto;
}

/* 画像ズーム */
.moimg1 {
  overflow: hidden;
  border-radius: 2.6042vw; /* 50px */
}

.moimg2 {
  overflow: hidden;
}

.moimg1 img,
.moimg2 img {
  display: block;
  transition: 0.5s;
}

.moimg1 img:hover,
.moimg2 img:hover {
  transform: scale(1.1, 1.1);
}

.zoom-in {
  display: block;
  transition: 0.5s;
}

.zoom-in:hover {
  transform: scale(1.1, 1.1);
}

/* ローディング */
.site-loader {
  position: fixed;
  inset: 0;
  background: #f3f7fb url(../img/loading-bg.jpg) center/cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10000;
  transition: opacity 0.6s ease, visibility 0.6s ease;
  padding-bottom: 5.2083vw; /* 100px */
}

.site-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.site-loader__inner {
  text-align: center;
  position: relative;
}

.site-loader__image {
  width: 1.5625vw; /* 30px */
  height: auto;
  display: block;
}

.site-loader__decor {
  position: absolute;
  display: block;
  width: 5.2083vw; /* 100px */
  height: 7.2917vw; /* 140px */
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.site-loader__decor--one {
  background-image: url(../img/loading-illast-01.png);
  left: -26.0417vw; /* -500px */
  top: 5.2083vw;    /* 100px */
  animation: loaderSparkle 2.6s ease-in-out infinite;
}

.site-loader__decor--two {
  background-image: url(../img/loading-illast-02.png);
  left: -12.5vw;    /* -240px */
  top: 12.5vw;      /* 240px */
  animation: loaderFlutter 4s ease-in-out infinite;
}

/* keyframes内のpxもvwに換算 */
@keyframes footerPlane {
  0%,20% {
    opacity: 0;
    transform: translate(-1.0417vw, -1.0417vw) scale(0.75) rotate(-10deg); /* -20px -20px */
  }
  35% {
    opacity: 1;
    transform: translate(0.3125vw, -0.625vw) scale(0.9) rotate(-2deg); /* 6px -12px */
  }
  55% {
    opacity: 1;
    transform: translate(1.6667vw, -0.4167vw) scale(1) rotate(4deg); /* 32px -8px */
  }
  80% {
    opacity: 0.6;
    transform: translate(2.5vw, -0.625vw) scale(0.95) rotate(8deg); /* 48px -12px */
  }
  100% {
    opacity: 0;
    transform: translate(3.125vw, -0.9375vw) scale(0.9) rotate(10deg); /* 60px -18px */
  }
}

@keyframes loaderFlutter {
  0% {
    transform: translate(0, 0) rotate(-2deg);
  }
  25% {
    transform: translate(-0.5208vw, -0.625vw) rotate(4deg); /* -10px -12px */
  }
  50% {
    transform: translate(0.3125vw, -0.2083vw) rotate(-3deg); /* 6px -4px */
  }
  75% {
    transform: translate(-0.625vw, 0.4167vw) rotate(3deg); /* -12px 8px */
  }
  100% {
    transform: translate(0, 0) rotate(-2deg);
  }
}

@keyframes loaderSparkle {
  0% {
    opacity: 0.7;
    transform: scale(0.9) rotate(-3deg);
    filter: drop-shadow(0 0 0.2083vw rgba(255, 255, 255, 0.4)); /* 0 0 4px */
  }
  40% {
    opacity: 1;
    transform: scale(1.1) rotate(3deg);
    filter: drop-shadow(0 0 0.9375vw rgba(255, 255, 255, 0.9)); /* 0 0 18px */
  }
  70% {
    opacity: 0.85;
    transform: scale(1.05) rotate(-2deg);
    filter: drop-shadow(0 0 0.5208vw rgba(255, 255, 255, 0.6)); /* 0 0 10px */
  }
  100% {
    opacity: 0.7;
    transform: scale(0.9) rotate(-3deg);
    filter: drop-shadow(0 0 0.2083vw rgba(255, 255, 255, 0.4)); /* 0 0 4px */
  }
}

@media (max-width: 768px){
  .site-loader__image {
    width: 6.5625vw;
  }

.site-loader__decor{
      width: 13.2083vw;
    height: 139.2917vw;
}  

.site-loader__decor--two{
  left: -7.5vw;
    top: 17.5vw;
}
}

/* 1920px基準：px → vw（vw = px / 19.2） */

/* スクロールリビール */
.js-section-reveal {
  opacity: 0;
  transform: translateY(4.1667vw); /* 80px */
  transition:
    opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.js-section-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-section-reveal,
  .js-section-reveal.is-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ========================================
   Header & Global Navigation
======================================== */

/* ヘッダーここから */
.header {
  position: fixed;
  top: 0vw;   /* 0px */
  left: 0vw;  /* 0px */
  z-index: 9999;
  width: 100%;
  padding: 1.5625vw 2.5vw; /* 30px 48px */
  background-color: transparent;
  box-shadow: none;
  transition: transform 0.5s, background-color 0.3s ease, box-shadow 0.3s ease;
}

.header.js_hide {
  transform: translateY(-10.4167vw); /* -200px */
}

.header--solid {
  background-color: #fff;
}

.header-bg {
  background-color: #edf2fa;
}

.header-bg::before {
  content: "";
  background: url(../img/wave-3.png) no-repeat;
  background-size: contain;
  width: 100%;
  height: 30vh; /* vhはそのまま */
  position: absolute;
  z-index: -100;
  top: -45%;
  left: 0;
}

/* topヘッダー */
.header-page {
  position: absolute;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  padding: 0 2.0833vw; /* 40px */
  box-sizing: border-box;
  background: #fff;
}

header .inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.0833vw; /* 40px */
  height: auto;
}

.header.pc-on .logo {
  position: relative;
  margin: 0;
  width: 14.5833vw; /* 280px */
}

.brand-block {
  display: flex;
  align-items: center;
  gap: 0;
}

.nav-area {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.625vw; /* 12px */
}

/* header-navi */
header .navi {
  margin: 0;
  margin-top: 0.5208vw; /* 10px */
  border-radius: 0;
  display: flex;
  justify-content: flex-end;
  list-style: none;
  background-color: transparent;
  align-items: flex-start;
  width: auto;
  padding: 0;
  column-gap: 1.875vw; /* 36px */
  font-weight: 600;
}

header .navi li {
  margin: 0;
  color: #3b6f99;
}

header .navi li:first-child {
  margin-left: 0;
}

.header-top .navi li a,
.header-top .navi li .nav-label-static {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  text-decoration: none;
  position: relative;
}

.header-page .navi li a {
  display: block;
  box-sizing: border-box;
  text-decoration: none;
  color: #666;
}

header .navi li a {
  position: relative;
}

.nav-label {
  display: block;
  text-align: center;
  white-space: nowrap;
}

.page-parallax::after {
  content: "ENJOY YOUR SCHOOL LIFE!";
}

.nav-label__ja {
  font-size: 0.8333vw; /* 16px */
  letter-spacing: 0.05em;
  color: #3b6f99;
}

.nav-label__en {
  font-size: 0.6771vw; /* 13px */
  margin-top: 0.2083vw; /* 4px */
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #ffd900;
}

.header-ec {
  width: 1.3021vw; /* 25px */
}

.header-contact {
  background-color: #f4c65c;
  color: #fff;
  padding: 0.2604vw 1.3021vw; /* 5px 25px */
  border-radius: 0.5208vw; /* 10px */
}

.sub-navi {
  display: flex;
  justify-content: flex-end;
  gap: 1.4583vw; /* 28px */
  list-style: none;
  font-size: 0.6771vw; /* 13px */
  letter-spacing: 0.05em;
}

.sub-navi li a {
  text-decoration: none;
  color: #3b6f99;
  position: relative;
  padding-left: 0.7292vw; /* 14px */
  font-weight: 600;
}

/* ▶︎ アイコン */
.sub-navi li a::before {
  content: "▶︎";
  position: absolute;
  left: -0.2604vw; /* -5px */
  top: 0;
  font-size: 0.7292vw; /* 14px */
}

header .navi li {
  position: relative;
}

.child_menu {
  --child-menu-gap: 10px; /* 変数はそのまま（必要なら 0.5208vw に変更も可） */
  --child-row-gap: 5px;
  position: absolute;
  background: #fff;
  list-style: none;
  padding: 1.4583vw 1.4583vw; /* 28px 28px */
  border-radius: 1.0417vw; /* 20px */
  box-shadow: 0.2604vw 0 0 #3b6f99, 0 0.2604vw 0 #3b6f99; /* 5px, 5px */
  display: none; /* 初期は非表示 */
  grid-template-columns: repeat(2, minmax(7.2917vw, 1fr)); /* 140px */
  column-gap: var(--child-menu-gap);
  row-gap: var(--child-row-gap);
  width: max-content;
  min-width: 16.6667vw; /* 320px */
}

/* カーソルを当てるとサブメニューを表示 */
.navi li:hover .child_menu {
  display: grid;
}

/* サブメニュー内のリストスタイル */
.child_menu li {
  margin: 0 !important;
  padding: 0.4167vw 0; /* 8px 0 */
  width: auto;
  min-width: 7.8125vw; /* 150px */
  font-size: 0.7292vw; /* 14px */
  position: relative;
}

.child_menu li:nth-child(odd)::after {
  content: "";
  position: absolute;
  left: 0;
  width: calc(200% + var(--child-menu-gap));
  height: 0.0521vw; /* 1px */
  background-image: repeating-linear-gradient(
    to right,
    #cfd9e6 0 0.2604vw,      /* 0 5px */
    transparent 0.2604vw 0.5208vw /* 5px 10px */
  );
}

.child_menu li a {
  text-decoration: none;
  display: inline-block;
  padding: 0.3125vw 0.625vw 0.3125vw 1.0417vw; /* 6px 12px 6px 20px */
  white-space: nowrap;
  position: relative;
  font-weight: 600;
  color: #333;
}

.child_menu li a::before {
  content: "-";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #333;
  font-weight: 700;
  font-size: 0.8333vw; /* 16px */
}

/* child_menu リンク */
.child_menu li a {
  position: relative;
  display: inline-block;
  padding-bottom: 0.4167vw; /* 8px */
}

/* 上段ナビ：中央寄せ（今のままでOKだが明示） */
.header-top .navi > li > a,
.header-top .navi > li > .nav-label-static {
  align-items: center;
  text-align: center;
}

.header-top .navi > li > .nav-label-static {
  display: flex;
  flex-direction: column;
  position: relative;
}

/* child_menu 内：左寄せにする */
.header-top .navi .child_menu li a {
  align-items: flex-start; /* 念のため */
  text-align: left;
}

/* 上段ナビだけ丸ポチ */
.header-top > .inner > .navi > li > a::before,
.header-top > .inner > .navi > li > .nav-label-static::before {
  content: "";
  position: absolute;
  top: -0.625vw; /* -12px */
  left: 50%;
  transform: translateX(-50%);
  width: 0.4167vw;  /* 8px */
  height: 0.4167vw; /* 8px */
  background-color: #3b6f99;
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.2s ease;
}

/* child_menu 展開中＝li:hover のとき丸を表示 */
.header-top > .inner > .navi > li:hover > a::before,
.header-top > .inner > .navi > li:hover > .nav-label-static::before {
  opacity: 1;
}

/* 1920px基準：px → vw（vw = px / 19.2） */

/* 動きぽよん */
/* 上段ナビの丸ポチ */
.header-top > .inner > .navi > li > a::before,
.header-top > .inner > .navi > li > .nav-label-static::before {
  content: "";
  position: absolute;
  top: -0.625vw; /* -12px */
  left: 50%;
  transform: translateX(-50%) scale(0);
  width: 0.4167vw;  /* 8px */
  height: 0.4167vw; /* 8px */
  background-color: #3b6f99;
  border-radius: 50%;
}

.header-top > .inner > .navi > li:hover > a::before,
.header-top > .inner > .navi > li:hover > .nav-label-static::before {
  animation: dot-pop 0.35s ease-out forwards;
}

@keyframes dot-pop {
  0% {
    transform: translateX(-50%) scale(0);
  }
  60% {
    transform: translateX(-50%) scale(1.4);
  }
  100% {
    transform: translateX(-50%) scale(1);
  }
}

/* マーカー線（初期状態） */
.child_menu li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50%;
  height: 0.4167vw; /* 8px */
  background: url("../img/header-marker.png") no-repeat left bottom;
  background-size: 100% 100%;
  transform: scaleX(0);
  transform-origin: left;
  opacity: 0;
}

/* hover時：左 → 右にシュッ */
.child_menu li:hover a::after {
  transform: scaleX(1);
  opacity: 1;
  transition: transform 0.35s cubic-bezier(.4,0,.2,1);
}

/* hover外れ：即消える（逆再生させない） */
.child_menu li:not(:hover) a::after {
  transition: none;
}

/* 右側ナビの child_menu は右基準 */
.navi > li:nth-last-child(-n+2) .child_menu {
  left: auto;
  right: 0;
}

/* ヘッダーここまで */

.section-dot {
  width: 1.3021vw;  /* 25px */
  height: 1.3021vw; /* 25px */
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #3b6f99, #3b6f99);
  display: inline-flex;
}

.section-dot--light {
  background: #fff;
}

.section-heading {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.section-heading h2 {
  margin: 0;
}

.section-titleset {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.4167vw;          /* 8px */
  margin-bottom: 1.5625vw; /* 30px */
}

.section-titleset__title {
  font-size: 1.3542vw;     /* 26px */
  margin: 0;
  color: #3b6f99;
  font-weight: 700;
}

.section-titleset__caption {
  font-size: 0.9375vw;
  letter-spacing: 0.1em;
  color: #ffd900;
  font-family: "Limelight", "Zen Maru Gothic", serif;
}

.section-heading--light {
  color: #fff;
}

.section-heading--light h2.en {
  color: #fff;
}

@media (max-width: 768px) {
  .section-dot {
    width: 3.409vw;
    height: 3.409vw;
  }
}

.top-links {
  background: #fdfdfb;
  padding: 11.4583vw 0 8.3333vw; /* 220px 0 160px */
}

.top-links .section-heading {
  margin-bottom: 6.25rem; /* 100px */
}


.top-links__list {
  display: flex;
  flex-direction: column;
  gap: 4.1667vw; /* 80px */
}

.top-links-card {
  display: grid;
  grid-template-columns: minmax(18.75vw, 1.4fr) 1fr; /* 360px */
  gap: 3.3333vw; /* 64px */
  align-items: center;
}

.top-links-card__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-links-card__body {
  position: relative;
  padding: 1.6667vw 0 1.6667vw 1.6667vw; /* 32px 0 32px 32px */
  width: 100%;
  max-width: 28.6458vw; /* 550px */
}

.top-links-card__head {
  margin-bottom: 1.0417vw; /* 20px */
  padding-bottom: 0.5208vw; /* 10px */
  position: relative;
  display: flex;
  align-items: end;
  justify-content: space-between;
}

.top-links-card__title {
  font-size: 1.25vw; /* 24px */
  color: #333;
  letter-spacing: 0.05em;
  margin: 0 0 0.3125vw; /* 0 0 6px */
}

.top-links-card__titles {
  display: flex;
  flex-direction: column;
}

.top-links-card__icon {
  width: 1.875vw;  /* 36px */
  height: 1.875vw; /* 36px */
  border-radius: 50%;
  background: #3b6f99;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5208vw; /* 10px */
}

.top-links-card__icon span {
  display: block;
  width: 1.0417vw;  /* 20px */
  height: 1.0417vw; /* 20px */
  background-image: url(../img/kamihikouki-3.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.25s ease;
}

.top-links-card__icon:hover span,
.top-links-card__icon:focus-visible span {
  transform: translateY(-0.2083vw); /* -4px */
}

.top-links-card__head::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -9.375vw; /* -180px */
  width: 36.4583vw; /* 700px */
  height: 0.0521vw; /* 1px */
  background-color: #3b6f99;
}

.top-links-card__description {
  color: #4a4a4a;
  line-height: 1.9;
  margin-bottom: 2.6042vw; /* 50px */
  font-weight: 500;
  width: 23.4375vw; /* 450px */
}

.top-links-card__links {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1.0417vw 1.0417vw; /* 20px 20px */
  font-weight: 700;
  letter-spacing: 0.1em;
  font-size: 0.8333vw;
}

.top-links-card__links li {
  position: relative;
  padding-bottom: 1.0417vw; /* 20px */
}

.top-links-card__links li:nth-child(odd)::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: calc(200% + 0.5208vw); /* +10px */
  border-bottom: 0.0521vw dashed #b3b3b3; /* 1px */
}

.top-parallax,
.page-parallax {
  --top-parallax-bg: url(../img/top-parallax.jpg);
  --top-parallax-label-color: #f98c8c;
  --top-parallax-label-size: 3.5417vw; /* 68px */
  --top-parallax-label-letter-spacing: 0.2604vw; /* 5px */
  position: relative;
  height: 31.25vw; /* 600px */
  margin: 0;
  background-image: var(--top-parallax-bg);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  overflow: visible;
  --parallax-offset: 0px;
}

.top-parallax::before,
.page-parallax::before {
  content: "";
  position: absolute;
  inset: 0;
  mix-blend-mode: multiply;
}

.top-parallax::after,
.page-parallax::after {
  content: attr(data-parallax-label);
  position: absolute;
  top: -2.0833vw; /* -40px */
  left: 50%;
  transform: translateX(-50%);
  font-size: var(--top-parallax-label-size);
  color: var(--top-parallax-label-color);
  font-family: "Limelight", "Zen Maru Gothic", serif;
  letter-spacing: var(--top-parallax-label-letter-spacing);
  pointer-events: none;
  white-space: nowrap;
}

.top-parallax--examinees {
  --top-parallax-label-color: #ffd24c;
}

.page-parallax--examinees {
  --top-parallax-label-color: #f98c8c;
  --top-parallax-bg: url(../img/forexaminees-sub.jpg);
}

.page-parallax--about {
  --top-parallax-label-color: #f98c8c;
  --top-parallax-bg: url(../img/about-sub.png);
}

@media (max-width: 768px) {
  .top-parallax,
  .page-parallax {
    background-attachment: scroll;
    height: 63.636vw; /* SPは固定でOK */
    background-position: center calc(50% + var(--parallax-offset));
  }
}

.top-access {
  position: relative;
  padding: 11.4583vw 0 10.4167vw; /* 220px 0 200px */
  background: url(../img/access-bg.jpg) center/cover no-repeat;
  color: #fff;
  overflow: visible;
}

.top-access--about {
  background: #fff;
  color: #333;
}

.top-access--about .section-dot {
  background: #3b6f99;
}

.top-access--about .top-access__info dt {
  color: #333;
}

.top-access--about .top-access__info dd {
  color: #333;
  font-weight: 600;
}

.top-access--about .top-access__map {
  position: static;
  left: auto;
  bottom: auto;
  transform: none;
}

.top-access--about .top-access__inner {
  padding: 0;
  margin-bottom: 200px;
}

.top-access--about .top-access__body {
  margin-bottom: 100px;
}

.top-access--about .top-access__more {
  color: #3b6f99;
}

.top-access__inner {
  position: relative;
  max-width: 1200px; /* maxはpxのままが扱いやすい */
  margin: 0 auto;
  padding: 0 2.0833vw 26.0417vw; /* 0 40px 500px */
}

.top-access .section-heading {
  margin-bottom: 5rem; /* 80px */
}

.top-access__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 27.0833vw; /* 520px */
  gap: 3.125vw; /* 60px */
  align-items: self-start;
}

.top-access__info {
  display: flex;
  flex-direction: column;
  width: 26.0417vw; /* 500px */
}

.top-access__info dl {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.6667vw; /* 32px */
}

.top-access__info dl > div {
  display: flex;
  gap: 1.4583vw; /* 28px */
  align-items: flex-start;
  padding-bottom: 1.5625vw; /* 30px */
  border-bottom: 0.0521vw dashed #f5d200; /* 1px */
}

.top-access--about .top-access__info dl > div {
  border-bottom: 0.0521vw dashed #b3b3b3;
}

.top-access__info dt {
  font-size: 0.9375vw; /* 18px */
  letter-spacing: 0.2em;
  color: #fff;
  margin: 0;
  min-width: 6.7708vw; /* 130px */
  padding-top: 0.2604vw; /* 5px */
}

.top-access__info dd {
  font-size: 0.9375vw; /* 18px */
  font-weight: bold;
  line-height: 1.9;
  margin: 0;
  flex: 1;
}

.top-access__more {
  margin-top: 2.0833vw; /* 40px */
  display: inline-flex;
  align-items: center;
  gap: 0.625vw; /* 12px */
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.2em;
  font-family: "Limelight", "Zen Maru Gothic", serif;
  align-self: flex-end;
}

.top-access__more:hover {
  opacity: 0.8;
}

.top-access__visual {
  margin: 0;
  width: 31.25vw; /* 600px */
  overflow: hidden;
}

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

.top-access__map {
  bottom: -5.2083vw; /* -100px */
  width: 100%;
  position: absolute;
  z-index: 2;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
}

.top-access__map iframe {
  width: 100%;
  height: 26.0417vw; /* 500px */
  border-radius: 2.6042vw; /* 50px */
}

@media (max-width: 768px) {
  .top-access__body {
    grid-template-columns: 1fr;
  }

  .top-access__visual {
    width: 100%;
    max-width: 520px;
    margin: 40px auto 0;
  }

  .top-access__map {
    margin-top: -200px;
  }

  .top-access__map iframe {
    height: 360px;
  }
}

.site-footer {
  background: #3b6f99;
  color: #fff;
  border-radius: 0 10.4167vw 0 0; /* 0 200px 0 0 */
  padding: 11.4583vw 0 4.1667vw; /* 220px 0 80px */
  margin-top: 0;
  position: relative;
  overflow: visible;
}

.is-top .site-footer {
  margin-top: 31.25vw; /* 600px */
}

.site-footer__decor {
  position: absolute;
  left: 50%;
  bottom: 100%;
  width: min(72.9167vw, 100%); /* 1400px */
  height: 11.4583vw; /* 220px */
  transform: translateX(-50%);
  pointer-events: none;
  display: block;
  z-index: 3;
}

.site-footer__decor-item {
  position: absolute;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: block;
  bottom: 0;
  z-index: 3;
}

.site-footer__decor-item--one {
  width: 20.8333vw;  /* 400px */
  height: 20.8333vw; /* 400px */
  left: 5%;
  bottom: -2.6042vw; /* -50px */
  background-image: url(../img/footer-img-01.png);
}

.site-footer__decor-item--two {
  width: 19.7917vw;  /* 380px */
  height: 19.7917vw; /* 380px */
  bottom: -2.6042vw; /* -50px */
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../img/top-footer-img-02.png);
}

.site-footer__decor-item--three {
  width: 20.8333vw;  /* 400px */
  height: 20.8333vw; /* 400px */
  bottom: -2.6042vw; /* -50px */
  right: 5%;
  background-image: url(../img/top-footer-img-03.png);
}

@keyframes footerDecorConveyor {
  0% {
    transform: translate3d(130%, 0, 0);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    opacity: 1;
  }
  100% {
    transform: translate3d(-130%, 0, 0);
    opacity: 0;
  }
}

/* 1920px基準：px → vw（vw = px / 19.2） */

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.7;
}

.site-footer__brand{
  width: 20.8333vw; /* 400px */
}

.site-footer__inner {
  position: relative;
  max-width: 66.08vw;
  margin: 0 auto;
  padding: 0 2.0833vw; /* 40px */
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
}

.site-footer__line,
.site-footer__plane {
  position: absolute;
  display: block;
  pointer-events: none;
  z-index: 6;
}

.site-footer__line {
  top: -6.25vw;      /* -120px */
  left: -8.3333vw;   /* -160px */
  width: 23.4375vw;  /* 450px */
  height: 10.4167vw; /* 200px */
}

.site-footer__line img {
  width: clamp(10.4167vw, 35vw, 21.875vw); /* 200px 35vw 420px */
  height: auto;
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  animation: footerLineDraw 16s ease-in-out infinite;
}

.site-footer__plane {
  top: -7.8125vw;    /* -150px */
  left: 15.1042vw;   /* 290px */
  width: 5.2083vw !important;  /* 100px */
  height: 5.2083vw !important; /* 100px */
}

.site-footer__plane img {
  width: clamp(3.125vw, 10vw, 6.25vw); /* 60px 10vw 120px */
  height: auto;
  opacity: 0;
  transform: translate(-1.0417vw, -1.0417vw) scale(0.8) rotate(-8deg); /* -20px -20px */
  animation: footerPlane 16s ease-out infinite;
}

.site-footer__line img,
.site-footer__plane img {
  max-width: none;
}

.site-footer__inner::after {
  content: "";
  position: absolute;
  right: -5.2083vw;  /* -100px */
  bottom: -3.125vw;  /* -60px */
  width: 6.25vw;     /* 120px */
  height: 6.25vw;    /* 120px */
  background: url(../img/rinkuun-01.png) no-repeat center/contain;
  pointer-events: none;
  opacity: 0.9;
}

.site-footer__school-en {
  margin: 0;
}

.site-footer__school-en img {
  width: 13.5417vw; /* 260px */
  height: auto;
  display: block;
}

.site-footer__brand address {
  font-size: 0.9375vw;      /* 18px */
  margin: 1.5625vw 0 1.5625vw; /* 30px 0 30px */
  font-style: normal;
  line-height: 2;
}

.site-footer__cta {
  display: flex;
  flex-direction: column;
  gap: 1.5625vw; /* 30px */
}

.site-footer__policy {
  display: inline-block;
  margin-top: 1.25vw; /* 24px */
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.7292vw; /* 14px */
  text-decoration: underline;
}

.site-footer__nav {
  width: 41.6667vw; /* 800px */
  display: flex;
  flex-direction: column;
  gap: 2.6042vw; /* 50px */
}

.site-footer__nav-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5625vw 2.6042vw; /* 30px 50px */
}

.site-footer__column h3 {
      font-size: 0.7292vw;
    letter-spacing: normal;
    margin-bottom: 0.2604vw;
}

.site-footer__column ul {
  font-size: 0.7292vw; /* 14px */
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5208vw; /* 10px */
}

.site-footer__column a {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  position: relative;
  padding-left: 0.9375vw; /* 18px */
  font-weight: 600;
}

.site-footer__column a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0.5208vw;  /* 10px */
  height: 0.5208vw; /* 10px */
  border-radius: 50%;
  background: #ffd900;
}

.site-footer__column a:hover {
  color: #ffd900;
}

.site-footer__copyright {
  position: relative;
  text-align: left;
  color: #fff;
  margin-top: 0.5208vw; /* 10px */
  font-size: 0.625vw;   /* 12px */
}

@media (max-width: 768px) {
  .site-footer{
  padding:22.727vw 0 4.545vw;
}

.site-footer__inner{
  grid-template-columns:1fr;
  gap:13.636vw;
  padding:0 11.364vw;
  max-width: none;
}

.site-footer__decor{
  width:100%;
  height:36.364vw;
  overflow:hidden;
  transform:none;
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
}

.site-footer__decor-item--one,
.site-footer__decor-item--two,
.site-footer__decor-item--three{
  width:40.909vw;
  height:31.818vw;
  animation:footerDecorConveyor 18s linear infinite;
  bottom:0;
  left:50%;
  transform:translate3d(130%,0,0);
  opacity:0;
}

.site-footer__decor-item--one{
  animation-delay:0s;
  bottom:-0.909vw;
}

.site-footer__decor-item--two{
  animation-delay:6s;
  bottom:-0.682vw;
}

.site-footer__decor-item--three{
  animation-delay:12s;
  bottom:-1.591vw;
}

.site-footer__inner::after{
  position:static;
  width:18.182vw;
  height:18.182vw;
  margin:0 auto;
  filter:drop-shadow(0 2.273vw 6.818vw rgba(0,0,0,0.2));
}

.site-footer__nav{
  gap:9.091vw;
}

.site-footer__nav-row{
  grid-template-columns:1fr;
  gap:5.455vw;
}

.site-footer__brand{
  width:100%;
}

.site-footer__school-en img{
  width:68.182vw;
}

.site-footer__brand address{
  font-size:2.727vw;
  margin:4.545vw 0;
}

.site-footer__cta{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:2.273vw;
}

.site-footer__policy{
  margin-top:4.545vw;
  font-size:2.273vw;
  display:block;
  text-align:center;
}

.site-footer__copyright{
  margin-top:2.273vw;
  font-size:2.273vw;
  text-align:center;
}

}

.page-links {
  padding: 120px 0;
  background: url("../img/page-link-page.png") center/cover no-repeat;
}

.page-links__inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.page-links .section-heading {
  color: #3b6f99;
}

.top-links__cta,
.page-links__cta {
  margin-top: 5.2083vw;    /* 100px */
  margin-bottom: 20.8333vw; /* 400px */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* minmaxはpxのまま推奨 */
}

@media (max-width: 768px) {
  .top-links-pin-card__body {
    width: auto;
  }
}

.top-links-pin-card,
.page-links-pin-card {
  position: relative;
  padding-top: 1.5625vw; /* 30px */
}

.top-links-pin-card__pin,
.page-links-pin-card__pin {
  position: absolute;
  top: 0.2604vw; /* 5px */
  left: 50%;
  transform: translateX(-50%);
  width: 2.0833vw;  /* 40px */
  height: 2.0833vw; /* 40px */
  background: url(../img/pin-icon.png) no-repeat center/contain;
}

.top-links-pin-card__body,
.page-links-pin-card__body {
  background: #3b6f99;
  border-radius: 2.6042vw; /* 50px */
  padding: 3.6042vw 2.0833vw;
  color: #fff;
  text-align: center;
  width: 26.0417vw; /* 500px */
  margin: 0 auto;
}

.top-links-pin-card__body h3,
.page-links-pin-card__body h3 {
  letter-spacing: 0.15em;
  margin-bottom: 1.5625vw; /* 30px */
  line-height: 1.6;
  position: relative;
  display: inline-block;
  padding-bottom: 1.5625vw; /* 30px */
}

.top-links-pin-card__body h3::after,
.page-links-pin-card__body h3::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 3.125vw;  /* 60px */
  height: 0.1042vw; /* 2px */
  background-color: #f5d200;
}

/* 1920px基準：px → vw（vw = px / 19.2） */

.top-links-pin-card__body p,
.page-links-pin-card__body p {
  color: #fff;
  font-weight: 500;
  margin-bottom: 1.6667vw; /* 32px */
}

.top-links-pin-card__button,
.page-links-pin-card__button {
  width: 2.6042vw;  /* 50px */
  height: 2.6042vw; /* 50px */
  border-radius: 50%;
  background: #f5d200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.top-links-pin-card__button::before,
.page-links-pin-card__button::before {
  content: "";
  display: block;
  width: 1.0417vw;  /* 20px */
  height: 1.0417vw; /* 20px */
  background-image: url(../img/kamihikouki-02.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.25s ease;
}

.top-links-pin-card__button:hover::before,
.top-links-pin-card__button:focus-visible::before,
.page-links-pin-card__button:hover::before,
.page-links-pin-card__button:focus-visible::before {
  transform: translateY(-0.1042vw); /* -2px */
}

.top-links-card__links a {
  display: inline-block;
  text-decoration: none;
  color: #3b6f99;
  position: relative;
  padding-left: 0.9375vw; /* 18px */
  white-space: nowrap;
}

.top-links-card__links a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scale(1);
  width: 0.5208vw;  /* 10px */
  height: 0.5208vw; /* 10px */
  border-radius: 50%;
  background: #3b6f99;
  transition: background-color 0.2s ease;
}

.top-links-card__links li:hover a::before {
  background: #ffd900;
  animation: links-dot-pop 0.35s ease-out;
}

/*基本設定*/
.row {
  flex-direction: row-reverse;
}

.sp-on{
  display: none;
}

p{
  font-style: normal;
  font-size: 0.7292vw; /* 14px */
  color: #333;
  line-height: 1.5;
  letter-spacing: 1px; /* 文字間はpx維持でもOK */
}

img{
  width: 100%;
}

h2 {
  font-size: 1.4583vw; /* 28px */
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: 3px;
  color: #ffd900;
}

h2.en{
  font-size: 2.6042vw; /* 50px */
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #3b6f99;
}

h3{
  font-size: 1.25vw; /* 24px */
  line-height: 1.5;
  font-weight: bold;
  letter-spacing: 2px;
  margin-bottom: 0.625vw; /* 12px */
}

h3.en{
  font-size: 0.9375vw; /* 18px */
  letter-spacing: normal;
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #f5d200;
}

.catch-en {
  width: 100%;
  max-width: 100%;
  font-size: clamp(48px, 6vw, 96px); /* clampはそのまま */
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #ffd900;
  overflow: hidden;
  white-space: nowrap;
  text-transform: uppercase;
  margin-top: 2.0833vw; /* 40px */
}

.catch-en__track {
  display: inline-flex;
  gap: 0;
  min-width: max-content;
  animation: catchMarquee 18s linear infinite;
  will-change: transform;
}

.catch-en__track span {
  display: inline-block;
  padding-right: clamp(40px, 4vw, 80px); /* clampはそのまま */
}

.p-title{
  font-size: 0.9375vw; /* 18px */
  line-height: 2;
  letter-spacing: 1px;
}

body {
  width: 100%;
  height: 100%;
  margin: auto;
  color: #333;
  word-wrap: break-word;
  overflow-wrap: break-word;
  overflow-x: hidden;
  font-family: "Zen Maru Gothic", serif;
  font-style: normal;
}

li{
  list-style: none;
}

.sp-br{
  display: none;
}

.pc-br{
  display: block;
}

section:not(.fv-slider):not(.page-hero) {
  padding: 10.4167vw 15.625vw 0; /* 200px 300px 0 */
  margin: 0 auto;
}

/*画像ズーム*/
.moimg1 {
  overflow: hidden;
  border-radius: 2.6042vw; /* 50px */
}

.moimg2 {
  overflow: hidden;
}

.moimg1 img , .moimg2 img{
  display: block;
  transition: 0.5s;
}
.moimg1 img:hover , .moimg2 img:hover{
  transform: scale(1.1, 1.1);
}

.zoom-in{
  display: block;
  transition: 0.5s;
}

.zoom-in:hover {
  transform: scale(1.1,1.1);
}
/* 画像ズームここまで */


/* ヘッダーここから */
.sp-only {
  display: none;
}

.sp-header,
.sp-drawer,
.sp-drawer__overlay {
  display: none;
}

@media (max-width: 768px) {
  .pc-on{
  display:none!important;
}

.sp-only{
  display:block;
}

.sp-header{
  display:block;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:#fff;
  z-index:1200;
}

.sp-header__container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:2.273vw 4.545vw;
}

.sp-header__logo img{
  width:45.455vw;
  max-width:50vw;
  min-width:36.364vw;
  height:auto;
  display:block;
}

.sp-header__menu-button{
  width:13.636vw;
  height:13.636vw;
  border-radius:2.727vw;
  border:none;
  background:#3b6f99;
  color:#ffd900;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.364vw;
  cursor:pointer;
  transition:transform 0.3s ease;
}

.sp-header__menu-button:focus-visible{
  outline:2px solid #ffd900;
  outline-offset:0.682vw;
}

.sp-header__menu-icon{
  display:flex;
  flex-direction:column;
  gap:0.909vw;
}

.sp-header__menu-line{
  display:block;
  width:6.364vw;
  height:0.455vw;
  background:#fff;
  border-radius:999px;
  transition:transform 0.3s ease,opacity 0.3s ease;
}

.sp-header__menu-text{
  font-size:2.273vw;
  font-weight:700;
  font-family:"Limelight","Zen Maru Gothic",serif;
  letter-spacing:0.182vw;
}

body.is-sp-menu-open .sp-header__menu-line:nth-child(1){
  transform:translateY(1.364vw) rotate(45deg);
}

body.is-sp-menu-open .sp-header__menu-line:nth-child(2){
  opacity:0;
}

body.is-sp-menu-open .sp-header__menu-line:nth-child(3){
  transform:translateY(-1.364vw) rotate(-45deg);
}

.sp-drawer__overlay{
  display:block;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.35);
  opacity:0;
  pointer-events:none;
  border:none;
  z-index:1100;
  transition:opacity 0.3s ease;
}

.sp-drawer{
  display:block;
  position:fixed;
  top:0;
  right:0;
  width:100%;
  height:100vh;
  background:#fff;
  transform:translateX(100%);
  transition:transform 0.35s ease;
  z-index:1150;
}

body.is-sp-menu-open .sp-drawer{
  transform:translateX(0);
}

body.is-sp-menu-open .sp-drawer__overlay{
  opacity:1;
  pointer-events:auto;
}

body.is-sp-menu-open{
  overflow:hidden;
}

.sp-drawer__inner{
  padding:5.682vw 4.545vw 11.364vw;
  height:100%;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:5.455vw;
}

.sp-accordion{
  list-style:none;
  margin-top:22.727vw;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:2.273vw;
}

.sp-accordion__item{
  border-bottom:1px dotted rgba(15,45,74,0.3);
  padding-bottom:2.273vw;
}

.sp-accordion__trigger{
  width:100%;
  border:none;
  background:none;
  padding:2.273vw 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2.727vw;
  cursor:pointer;
}

.sp-accordion__labels {
  display: flex;
  flex-direction: column;
  text-align: left;
  gap: 0.1389vw; /* 2.666px */
}

.sp-accordion__labels-link {
  text-decoration: none;
  color: inherit;
  display: inline-flex;
  flex-direction: column;
  gap: 0.1389vw;
}

.sp-accordion__labels-link:hover .sp-accordion__label-en,
.sp-accordion__labels-link:hover .sp-accordion__label-ja {
  text-decoration: underline;
}

.sp-accordion__label-en{
  font-family:"Limelight","Zen Maru Gothic",serif;
  font-size:2.273vw;
  color:#f7c200;
  letter-spacing:0.182vw;
}

.sp-accordion__label-ja{
  font-size:3.636vw;
  font-weight:700;
  letter-spacing: 1px;
}

.sp-accordion__icon{
  width:6.818vw;
  height:6.818vw;
  border-radius:50%;
  background:#3b6f99;
  position:relative;
  flex-shrink:0;
  transition:transform 0.3s ease;
}

.sp-accordion__icon::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:2.045vw;
  height:2.045vw;
  border-right:0.455vw solid #fff;
  border-bottom:0.455vw solid #fff;
  transform:translate(-50%,-50%) rotate(45deg);
  transition:transform 0.3s ease;
}

.sp-accordion__item.is-open .sp-accordion__icon::before{
  transform:translate(-50%,-50%) rotate(-135deg);
}

.sp-accordion__panel{
  height:0;
  overflow:hidden;
  opacity:0;
  transition:height 0.35s ease,opacity 0.3s ease;
  will-change:height;
}

.sp-accordion__item.is-open .sp-accordion__panel{
  opacity:1;
}

.sp-accordion__panel[aria-hidden="true"]{
  visibility:hidden;
}

.sp-accordion__panel[aria-hidden="false"]{
  visibility:visible;
}

.sp-accordion__child-list{
  list-style:none;
  margin:0;
  padding:0 0 0 5.455vw;
  display:flex;
  flex-direction:column;
  gap:2.273vw;
}

.sp-accordion__child-link{
  font-size:3.182vw;
  display:block;
  letter-spacing: 1px;
  text-decoration:none;
  font-weight:600;
  position:relative;
  padding-left:3.636vw;
}

.sp-accordion__child-link::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:1.591vw;
  height:1.591vw;
  border-right:0.455vw solid #3b6f99;
  border-bottom:0.455vw solid #3b6f99;
  transform:translateY(-50%) rotate(-45deg);
}

.sp-drawer__cta-block{
  display:flex;
  flex-direction:column;
  gap:2.727vw;
  margin-top:50px;
}

.sp-drawer__cta-button{
  width:80%;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2.727vw;
  padding:3.409vw 5vw;
  border-radius:999px;
  background:#3b6f99;
  color:#fff;
  font-weight:700;
  font-size:3.182vw;
  text-decoration:none;
}

.sp-drawer__cta-button span:first-child{
  flex:1;
  text-align:center;
}

.sp-drawer__cta-button--outline{
  background:#fff;
  color:#3b6f99;
  border:0.455vw solid #3b6f99;
}

.sp-drawer__cta-icon{
  width:1.818vw;
  height:1.818vw;
  border-right:0.455vw solid currentColor;
  border-bottom:0.455vw solid currentColor;
  transform:rotate(-45deg);
  margin-left:auto;
}

.sp-drawer__foot{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3.636vw;
  padding-top:4.545vw;
}

.sp-drawer__foot-icon img{
  width:10.909vw;
  height:auto;
}

.sp-drawer__address{
  display:flex;
  flex-direction:column;
  gap:0.909vw;
  text-align:center;
  font-size:3.182vw;
  line-height:1.5;
  color:#0f2d4a;
}
}

.header {
  position: fixed;
  min-width: 100%;
  z-index: 120;
  z-index: 9999;
  width: 100%;
  padding: 1.5625vw 2.5vw; /* 30px 48px */
  background-color: transparent;
  box-shadow: none;
  transition: transform 0.5s, background-color 0.3s ease, box-shadow 0.3s ease;
}
.header.js_hide {
  transform: translateY(-10.4167vw); /* -200px */
}

.header--solid {
  background-color: #fff;
}

.fv-slider {
  position: relative;
  width: 100%;
  padding-top: 6.7708vw; /* 130px */
}

body:not(.is-fv-ready) .fv-slide,
body:not(.is-fv-ready) .fv-slide__image,
body:not(.is-fv-ready) .fv-line img,
body:not(.is-fv-ready) .fv-kamihikouki img {
  animation-play-state: paused;
}

body.is-fv-static .fv-slide,
body.is-fv-static .fv-slide__image,
body.is-fv-static .fv-line img,
body.is-fv-static .fv-kamihikouki img {
  animation: none !important;
  animation-play-state: paused !important;
}

body.is-fv-static .fv-slide {
  opacity: 0;
}

body.is-fv-static .fv-slide--one {
  opacity: 1;
}

body.is-fv-static .fv-line img {
  width: 180px;
  opacity: 1;
  clip-path: inset(0 0 0 0);
}

body.is-fv-static .fv-kamihikouki img {
  opacity: 1;
}

.fv-slider__frame {
  position: relative;
  margin: 0 auto;
  width: 93.75vw;    /* 1800px */
  height: 43.2292vw; /* 830px */
  border-radius: 0 7.8125vw 0 7.8125vw; /* 150px */
  overflow: hidden;
  isolation: isolate;
}

.fv-slide {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: flex-end;
  opacity: 0;
  animation: fvFade 24s infinite;
}

.fv-slide--one { animation-delay: 0s; }
.fv-slide--two { animation-delay: 8s; }
.fv-slide--three { animation-delay: 16s; }

.fv-slide__media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.fv-slide__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center;
  animation: fvFadeLayer 24s infinite;
}

.fv-slide--two .fv-slide__image { animation-delay: 8s; }
.fv-slide--three .fv-slide__image { animation-delay: 16s; }

.fv-caption {
  position: absolute;
  bottom: clamp(24px, 4vw, 80px); /* clampはそのまま */
  left: clamp(24px, 5vw, 120px);  /* clampはそのまま */
  transform-origin: left bottom;
  margin: 0;
  padding: 0;
  text-align: left;
}

/* 1920px基準：px → vw（vw = px / 19.2） */

.fv-text {
  width: 46.875vw; /* 900px */
  filter: drop-shadow(0 12px 20px rgba(0, 0, 0, 0.2));
}

.fv-text img {
  width: 100%;
  height: auto;
  display: block;
}

.fv-line,
.fv-kamihikouki {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.fv-line img,
.fv-kamihikouki img {
  width: auto;
  max-width: none;
  height: auto;
}

.fv-line {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 10.4167vw 0 0 10.4167vw; /* 200px 0 0 200px */
}

.fv-line img {
  width: 26.0417vw; /* 500px */
  opacity: 0;
  clip-path: inset(0 100% 0 0);
  animation: fvLineDraw 24s infinite ease-in-out;
}

.fv-kamihikouki {
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  padding: 8.8542vw 49.4792vw 0 0; /* 170px 950px 0 0 */
}

.fv-kamihikouki img {
  width: 4.6875vw; /* 90px */
  opacity: 0;
  transform: translate(-1.5625vw, -1.5625vw) scale(0.7) rotate(-10deg); /* -30px, -30px */
  animation: fvPlane 24s infinite ease-out;
}

.fv-openschool {
  position: absolute;
  right: 5.2083vw;  /* 100px */
  bottom: -2.6042vw; /* -50px */
  display: inline-flex;
  z-index: 5;
  transform: translateY(0);
  transition: transform 0.3s ease, filter 0.3s ease;
}

.fv-openschool img {
  width: clamp(180px, 16vw, 260px); /* ここはそのまま */
  height: auto;
  display: block;
}

.fv-openschool:hover {
  transform: translateY(-0.3125vw); /* -6px */
  filter: drop-shadow(0 12px 24px rgba(0,0,0,0.25));
}

/* keyframesはそのまま（px指定があるtransformだけ必要ならvw化も可能） */
@keyframes fvFade {
  0% { opacity: 0; }
  8% { opacity: 1; }
  45% { opacity: 1; }
  60% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes fvLineDraw {
  0%,3% {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
  }
  8% {
    opacity: 1;
    clip-path: inset(0 85% 0 0);
  }
  14%,24% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
  }
  32% {
    opacity: 0.4;
    clip-path: inset(0 0 0 0);
  }
  42%,100% {
    opacity: 0;
    clip-path: inset(0 0 0 0);
  }
}

@keyframes fvPlane {
  0%,18% {
    opacity: 0;
    transform: translate(-1.5625vw, -1.5625vw) scale(0.6) rotate(-12deg); /* -30px */
  }
  24% {
    opacity: 1;
    transform: translate(-0.625vw, -0.9375vw) scale(0.85) rotate(-6deg); /* -12px, -18px */
  }
  32% {
    opacity: 1;
    transform: translate(1.1458vw, -1.25vw) scale(1) rotate(4deg); /* 22px, -24px */
  }
  42% {
    opacity: 0.6;
    transform: translate(2.3958vw, -1.5625vw) scale(0.95) rotate(8deg); /* 46px, -30px */
  }
  54%,100% {
    opacity: 0;
    transform: translate(3.5417vw, -1.875vw) scale(0.9) rotate(10deg); /* 68px, -36px */
  }
}

@keyframes fvFadeLayer {
  0% { transform: scale(1.05); }
  45% { transform: scale(1); }
  100% { transform: scale(1.05); }
}

@keyframes fvZoom {
  0%,8% { opacity: 0; transform: translateY(16px); }
  15%,45% { opacity: 1; transform: translateY(0); }
  55%,100% { opacity: 0; transform: translateY(-16px); }
}

@keyframes aboutPlane {
  0% {
    transform: translate(50px, -60px) rotate(-6deg) scale(0.85);
    opacity: 0;
  }
  30% {
    opacity: 1;
    transform: translate(4px, 6px) rotate(-1deg) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translate(4px, 24px) rotate(0deg) scale(0.94);
  }
}

@keyframes catchMarquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* spは元のまま */
@media (max-width: 768px) {
  .fv-slider{
  padding-top:20.455vw;
}

.fv-slider__frame{
  width:95%;
  height:80vh;
  border-radius:0 11.364vw 0 11.364vw;
}

.fv-caption{
  left:50%;
  bottom:auto;
  top:2.273vw;
  transform:translateX(-50%);
  text-align:center;
}

.fv-text{
  width:25vw;
  height:40.909vw;
  margin:0 auto;
}

.fv-line,
.fv-kamihikouki{
  inset:auto;
}

.fv-line{
  top:56.818vw;
  left:-6.818vw;
  padding:0;
}

.fv-line img{
  width:40.909vw;
  transform:rotate(-12deg);
  transform-origin:left center;
}

.fv-kamihikouki{
  top:42.045vw;
  right:auto;
  left:34.091vw;
  padding:0;
}

.fv-kamihikouki img{
  width:10.227vw;
  transform:rotate(-18deg);
}

.fv-openschool{
  right:auto;
  left:50%;
  bottom:-11.364vw;
  transform:translateX(-50%);
}

.fv-openschool img{
  width:34.091vw;
}

}

/* 1920px基準：px → vw（vw = px / 19.2）
   ※ 文字サイズは基本そのまま（vw化すると可読性が崩れやすいので）
*/

/* header navi */
header .navi {
  margin: 0;
  margin-top: 0.5208vw;     /* 10px */
  border-radius: 0;
  display: flex;
  justify-content: flex-end;
  list-style: none;
  background-color: transparent;
  align-items: flex-start;
  width: auto;
  padding: 0;
  column-gap: 1.875vw;      /* 36px */
  font-weight: 600;
}

header .navi li {
  margin: 0;
  color: #3b6f99;
}

header .navi li:first-child {
  margin-left: 0;
}

.header-top .navi li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  text-decoration: none;
  position: relative;
}

.header-page .navi li a {
  display: block;
  box-sizing: border-box;
  text-decoration: none;
  color: #666;
}

header .navi li a,
header .navi li .nav-label-static {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
}

/* 上段ナビ：中央寄せ */
.header-top .navi > li > a,
.header-top .navi > li > .nav-label-static {
  align-items: center;
  text-align: center;
}

/* child_menu 内：左寄せ */
.header-top .navi .child_menu li a {
  align-items: flex-start;
  text-align: left;
}

.nav-label {
  display: block;
  text-align: center;
  white-space: nowrap;
}

/* フォントサイズは据え置き */
.nav-label__ja {
  font-size: 0.8333vw; /* 16px */
  letter-spacing: 0.05em;
  color: #3b6f99;
}

.nav-label__en {
  font-size: 0.6771vw; /* 13px */
  margin-top: 4px; /* ここはそのままでもOK */
  font-family: "Limelight", "Zen Maru Gothic", serif;
  color: #ffd900;
}

/* 上段ナビの丸ポチ（初期） */
.header-top .navi > li > a::before,
.header-top .navi > li > .nav-label-static::before {
  content: "";
  position: absolute;
  top: -0.7292vw;           /* -14px */
  left: 50%;
  width: 0.4167vw;          /* 8px */
  height: 0.4167vw;         /* 8px */
  background-color: #3b6f99;
  border-radius: 50%;
  transform: translateX(-50%) scale(0);
  opacity: 0;
}

/* hover中は常に表示 */
.header-top .navi > li:hover > a::before,
.header-top .navi > li:hover > .nav-label-static::before {
  opacity: 1;
  transform: translateX(-50%) scale(1);
}

/* hover開始時にぽよん */
.header-top .navi > li:hover > a::before,
.header-top .navi > li:hover > .nav-label-static::before {
  animation: dot-pop 0.35s ease-out;
}

@keyframes dot-pop {
  0% { transform: translateX(-50%) scale(0); }
  60% { transform: translateX(-50%) scale(1.4); }
  100% { transform: translateX(-50%) scale(1); }
}

/* ========== add css ========== */

.navi li {
  position: relative;
}

.child_menu {
  --child-menu-gap: 0.5208vw; /* 10px */
  --child-row-gap: 0.2604vw;  /* 5px */
  position: absolute;
  background: #fff;
  list-style: none;
  padding: 1.4583vw;          /* 28px */
  border-radius: 1.0417vw;    /* 20px */
  box-shadow: 0.2604vw 0 0 #3b6f99, 0 0.2604vw 0 #3b6f99; /* 5px */
  display: none;
  grid-template-columns: repeat(2, minmax(140px, 1fr)); /* minmaxはpxのまま推奨 */
  column-gap: var(--child-menu-gap);
  row-gap: var(--child-row-gap);
  width: max-content;
  min-width: 16.6667vw;       /* 320px */
}

/* hoverで表示 */
.navi li:hover .child_menu {
  display: grid;
}

/* サブメニュー内 */
.child_menu li {
  margin: 0 !important;
  padding: 0.4167vw 0;        /* 8px 0 */
  width: auto;
  min-width: 7.8125vw;        /* 150px */
  font-size: 0.7292vw;        /* 14px */
  position: relative;
}

.child_menu li:nth-child(odd)::after {
  content: "";
  position: absolute;
  left: 0;
  width: calc(200% + var(--child-menu-gap));
  height: 1px;
  background-image: repeating-linear-gradient(
    to right,
    #cfd9e6 0 5px,
    transparent 5px 10px
  );
}

.child_menu li a {
  text-decoration: none;
  display: inline-block;
  padding: 0.3125vw 0.625vw 0.3125vw 1.0417vw; /* 6px 12px 6px 20px */
  white-space: nowrap;
  position: relative;
  font-weight: 600;
  color: #333;
  padding-bottom: 0.4167vw;   /* 8px */
}

.child_menu li a::before {
  content: "-";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #333;
  font-weight: 700;
  font-size: 0.8333vw; /* 16px */
}

.header-ec {
  width: 1.3021vw; /* 25px */
}

.header-contact {
  background-color: #f4c65c;
  color: #fff;
  padding: 0.2604vw 1.3021vw; /* 5px 25px */
  border-radius: 0.5208vw;    /* 10px */
}

/* マーカー線（初期） */
.child_menu li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50%;
  height: 0.4167vw; /* 8px */
  background: url("../img/header-marker.png") no-repeat left bottom;
  background-size: 100% 100%;
  transform: scaleX(0);
  transform-origin: left;
  opacity: 0;
}

/* hover時 */
.child_menu li:hover a::after {
  transform: scaleX(1);
  opacity: 1;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}

/* hover外れ */
.child_menu li:not(:hover) a::after {
  transition: none;
}

/* 右側ナビの child_menu は右基準 */
.navi > li:nth-last-child(-n+2) .child_menu {
  left: auto;
  right: 0;
}

/* 1920px基準：px → vw（vw = px / 19.2）
   ※ フォントサイズは基本据え置き（必要なら後でvw化版も作れる）
*/

.sub-navi {
  display: flex;
  justify-content: flex-end;
  gap: 1.4583vw;            /* 28px */
  list-style: none;
  font-size: 0.6771vw;      /* 13px */
  letter-spacing: 0.05em;
}

.sub-navi li a {
  text-decoration: none;
  color: #3b6f99;
  position: relative;
  padding-left: 0.7292vw;   /* 14px */
  font-weight: 600;
}

/* ▶︎ アイコン */
.sub-navi li a::before {
  content: "▶︎";
  position: absolute;
  left: -0.2604vw;          /* -5px */
  top: 0;
  font-size: 0.7292vw;      /* 14px */
}

/* TOPアバウト */
.top-about-title {
  font-size: 1.6667vw;      /* 32px */
  color: #3b6f99;
  font-weight: 500;
  margin-bottom: 1.5625vw;  /* 30px */
  position: relative;
  display: inline-block;
}

.top-about-title::after {
  content: "";
  position: absolute;
  top: -13.0208vw;          /* -250px */
  right: -9.375vw;          /* -180px */
  width: 15.625vw;          /* 300px */
  height: 15.625vw;         /* 300px */
  background: url(../img/illast-01.png) no-repeat center/contain;
  opacity: 0;
  transform: translate(2.6042vw, -3.125vw) rotate(-6deg) scale(0.85); /* 50px, -60px */
  transition: opacity 0.4s ease;
}

.top-about.is-plane-active .top-about-title::after {
  animation: aboutPlane 10s ease-in-out forwards;
}

.top-about {
  text-align: center;
}

.top-about .p-title {
  width: 35.0417vw;         /* 560px */
  margin: 0 auto;
  padding-bottom: 2.6042vw; /* 50px */
}

.top-about-course {
  display: flex;
  gap: 2.6042vw;            /* 50px */
  align-items: end;
  justify-content: center;
  margin: 0 auto;
  padding-top: 2.6042vw;    /* 50px */
}

.course-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.8333vw;            /* 16px */
}

.course-card__visual img {
  height: auto;
  display: block;
}

.course-card--heartful .course-card__visual img {
  width: 11.9792vw;         /* 230px */
}

.course-card--general .course-card__visual img {
  width: 10.5083vw;
}

.course-card__lead {
  font-size: 1.1458vw;      /* 22px */
  letter-spacing: 0.08em;
  color: #333;
  font-family: "TA-Oonishi", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
}

.course-card__button {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  font-size: 1.0417vw;      /* 20px */
  width: 18.2292vw;         /* 350px */
  gap: 0.625vw;             /* 12px */
  border-radius: 999px;
  padding: 0.8333vw 1.6667vw; /* 16px 32px */
  font-weight: 700;
  letter-spacing: 0.1em;
  text-decoration: none;
  color: #fff;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid;
}

.course-card__button:hover {
  transform: translateY(-0.2083vw); /* -4px */
  box-shadow: 0 0.8333vw 1.25vw rgba(0, 0, 0, 0.18); /* 16px 24px */
}

.course-card__button span:first-child {
  flex: 1;
  text-align: center;
}

.course-card__bullet {
  width: 0.625vw;           /* 12px */
  height: 0.625vw;          /* 12px */
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.9);
  margin-left: auto;
}

.course-card--heartful .course-card__button {
  background: #f98c8c;
  box-shadow: 0.1042vw 0.1563vw 0 #f98c8c, 0 0.2083vw 0 #f98c8c; /* 2px 3px, 4px */
}

.course-card--general .course-card__button {
  background: #70c1d8;
  box-shadow: 0.1042vw 0.1563vw 0 #70c1d8, 0 0.2083vw 0 #70c1d8; /* 2px 3px, 4px */
}

.top-news {
  padding: 4.1667vw 0 8.3333vw; /* 80px 0 160px */
  position: relative;
  z-index: 2;
}

section.top-news {
  padding: 4.1667vw 15.625vw 9.375vw; /* 80px 300px 180px */
}

.top-news__inner {
  background: #3b6f99;
  border-radius: 4.1667vw;       /* 80px */
  color: #fff;
  padding: 5.2083vw 7.8125vw;    /* 100px 150px */
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 2fr;
  gap: clamp(24px, 4vw, 60px);
  position: relative;
  box-shadow: 0.5208vw 0.1563vw 0 #f5d200, 0 0.5208vw 0 #f5d200; /* 10px 3px, 10px */
  z-index: 2;
  transform: translateY(7.8125vw); /* 150px ※後勝ちの方に統一 */
}

.top-news__headline {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.top-news__body {
  display: flex;
  flex-direction: column;
  gap: 1.5625vw; /* 30px */
}

.news-item {
  padding-bottom: 1.0417vw; /* 20px */
  border-bottom: 1px dashed #ffd900;
}

.news-item__meta {
  display: flex;
  align-items: center;
  gap: 0.625vw; /* 12px */
  letter-spacing: 0.2em;
}

.news-item__meta time {
  font-size: 0.7292vw;      /* 14px */
  color: #b3b3b3;
}

.news-item__tag {
  background: #ffd900;
  color: #3b6f99;
  padding: 0.2083vw 0.5208vw; /* 4px 10px */
  border-radius: 999px;
  font-size: 0.625vw;       /* 12px */
}

.news-item__title {
  font-size: 0.9375vw;      /* 18px */
  margin-top: 0.5208vw; /* 10px */
  color: #fff;
}

.top-news__more {
  font-family: "Limelight", "Zen Maru Gothic", serif;
  position: absolute;
  right: clamp(24px, 3vw, 60px);
  bottom: clamp(24px, 3vw, 40px);
  display: inline-flex;
  align-items: center;
  gap: 0.625vw; /* 12px */
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.2em;
}

.top-news__icon {
  width: 1.875vw;  /* 36px */
  height: 1.875vw; /* 36px */
  border-radius: 50%;
  background: #3b6f99;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.top-news__icon::before {
  content: "";
  display: block;
  width: 1.0417vw;  /* 20px */
  height: 1.0417vw; /* 20px */
  background-image: url(../img/kamihikouki-3.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.25s ease;
}

.is-top .top-news__icon {
  background: #ffd900;
}

.is-top .top-news__icon::before {
  background-image: url(../img/kamihikouki-02.png);
}

.top-news__icon:hover::before,
.top-news__icon:focus-visible::before {
  transform: translateY(-0.1042vw); /* -2px */
}

.top-news__more:hover {
  opacity: 0.8;
}

section.rinsho-news {
  background-image: url(../img/news-bg.jpg);
  background-size: cover;
  background-position: center;
  padding: 20.8333vw 15.625vw 20.8333vw!important; /* 400px 300px 400px */
  margin-top: -10.4167vw;               /* -200px */
  position: relative;
  z-index: 1;
}

section.rinsho-news::after {
  content: "";
  position: absolute;
  bottom: -13.8021vw; /* -265px */
  left: 50%;
  transform: translateX(-50%);
  width: 19.7917vw;   /* 380px */
  height: 19.7917vw;  /* 380px */
  background-image: url(../img/illast-02.png);
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: -1;
}

.rinsho-news__inner {
  background-color: #fff;
  border-radius: 4.1667vw;                /* 80px */
  padding: 4.1667vw 6.25vw 5.7292vw;      /* 80px 120px 110px */
  box-shadow: 0.5208vw 0.1563vw 0 #192951, 0 0.5208vw 0 #192951; /* 10px 3px, 10px */
  position: relative;
}

.rinsho-news__inner::before,
.rinsho-news__inner::after {
  content: "";
  position: absolute;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
}

.rinsho-news__inner::before {
  left: -8.8542vw;   /* -170px */
  top: 86%;
  width: 20.8333vw;  /* 400px */
  height: 20.8333vw; /* 400px */
  background-image: url(../img/top-blog-img01.png);
}

.rinsho-news__inner::after {
  right: -10.9375vw; /* -210px */
  top: 80%;
  width: 15.625vw;   /* 300px */
  height: 23.4375vw; /* 450px */
  background-image: url(../img/top-blog-img02.png);
}

/* 1920px基準：px → vw（vw = px / 19.2）
   ※ フォントサイズは基本据え置き（必要ならvw化版も作れる）
*/

.rinsho-news__head {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: 2.0833vw; /* 40px */
}

.rinsho-news__titles {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.3125vw;          /* 6px */
  padding-top: 1.5625vw;  /* 30px */
}

.rinsho-news__titles::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1.0417vw;        /* 20px */
  height: 1.0417vw;       /* 20px */
  border-radius: 50%;
  background-color: #ffd900;
}

.rinsho-news__subtitle {
  font-size: 0.9375vw;      /* 18px */
  letter-spacing: 0.4em;
  color: #f5d200;
}

.rinsho-news__tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.6042vw;          /* 50px */
  margin-bottom: 2.6042vw;/* 50px */
  width: 100%;
}

.rinsho-news__tab,
.site-footer__cta-tab {
  border: 1px solid #3b6f99;
  border-radius: 999px;
  padding: 0.5208vw 1.0417vw; /* 10px 20px */
  font-size: 0.8333vw;      /* 16px */
  font-weight: 700;
  color: #3b6f99;
  background-color: #fff;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  box-shadow: 0.0521vw 0.1563vw 0 #70c1d8, 0 0.0521vw 0 #70c1d8; /* 1px 3px, 1px */
  position: relative;
}

.rinsho-news__tab {
  width: 10.4167vw; /* 200px */
}

.site-footer__cta-tab {
  width: 13.0208vw; /* 250px */
}

.site-footer__cta-tab::before {
  content: "Check!";
  font-family: "Dancing Script", "Zen Maru Gothic", cursive;
  font-size: 1.4583vw;      /* 28px */
  color: #ff809f;
  position: absolute;
  top: -0.9375vw;   /* -18px */
  right: 9.9583vw;
  opacity: 0;
  transform: rotate(8deg) translate(0.625vw, 0.625vw) scale(0.8);
  transform-origin: right bottom;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.site-footer__cta-tab:hover::before,
.site-footer__cta-tab:focus-visible::before {
  opacity: 1;
  transform: rotate(-10deg) translate(0, 0) scale(1);
  animation: cheekPop 0.55s ease-out;
}

.rinsho-news__tab::before {
  content: "Cheek!";
  font-family: "Dancing Script", "Zen Maru Gothic", cursive;
  font-size: 1.4583vw;      /* 28px */
  color: #ff809f;
  position: absolute;
  top: -0.9375vw;   /* -18px */
  left: -0.7813vw;  /* -15px */
  opacity: 0;
  transform: rotate(-8deg) translate(-0.625vw, 0.625vw) scale(0.8); /* -12px, 12px */
  transform-origin: left bottom;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.rinsho-news__tab:hover::before,
.rinsho-news__tab:focus-visible::before {
  opacity: 1;
  transform: rotate(-8deg) translate(0, 0) scale(1);
  animation: cheekPop 0.55s ease-out;
}

@keyframes cheekPop {
  0% {
    transform: rotate(-12deg) translate(-0.3125vw, 0.3125vw) scale(0.6); /* -6px, 6px */
  }
  40% {
    transform: rotate(-6deg) translate(0.1042vw, -0.1042vw) scale(1.15); /* 2px, -2px */
  }
  65% {
    transform: rotate(-10deg) translate(-0.1042vw, 0.1042vw) scale(0.95); /* -2px, 2px */
  }
  100% {
    transform: rotate(-8deg) translate(0, 0) scale(1);
  }
}

.rinsho-news__tab-label,
.site-footer__cta-tab-label {
  flex: 1;
  text-align: center;
}

.rinsho-news__tab-dot,
.site-footer__cta-tab-dot {
  display: inline-block;
  width: 0.625vw;   /* 12px */
  height: 0.625vw;  /* 12px */
  border-radius: 50%;
  background-color: #3b6f99;
  margin-left: auto;
}

.rinsho-news__list {
  display: flex;
  gap: 1.6667vw; /* 32px */
}

.rinsho-news__card {
  flex: 1;
  padding: 0 0.5208vw; /* 0 10px */
}

.rinsho-news__card-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.rinsho-news__meta {
  display: flex;
  align-items: center;
  gap: 0.625vw; /* 12px */
  font-size: 0.7292vw; /* 14px */
  margin-bottom: 0.8333vw; /* 16px */
}

.rinsho-news__meta time {
  color: #b3b3b3;
  letter-spacing: 0.2em;
}

.rinsho-news__tag {
  background: #ffd900;
  color: #3b6f99;
  padding: 0.2083vw 0.5208vw; /* 4px 10px */
  border-radius: 999px;
  font-size: 0.625vw; /* 12px */
  letter-spacing: 0.2em;
}

.rinsho-news__card-title {
  color: #333;
  font-size: 0.9375vw; /* 18px */
  margin-bottom: 1.0417vw;  /* 20px */
  font-weight: 500;
  padding-bottom: 1.0417vw; /* 20px */
  border-bottom: 1px dashed #3b6f99;
}

.rinsho-news__excerpt {
  color: #333;
  line-height: 1.8;
}

@media screen and (max-width: 768px) {
.rinsho-news__inner{
  padding:11.364vw 6.818vw 34.091vw;
  border-radius:6.818vw;
  box-shadow:0.682vw 0.909vw 0 #192951,0 0 0.023vw 0 #192951;
}

.rinsho-news__head{
  margin-bottom:2.273vw;
}

.rinsho-news__titles{
  gap:0;
  padding-top:2.273vw;
}

.rinsho-news__list{
  flex-direction:column;
  gap:9.091vw;
}

.rinsho-news__tabs{
  flex-wrap:wrap;
  justify-content:center;
  gap:3.409vw;
  margin-bottom:9.091vw;
}

.rinsho-news__tab,
.site-footer__cta-tab{
  padding:1.818vw 6.818vw;
  width:68.182vw;
  font-size:2.727vw;
  box-shadow:0.682vw 0.909vw 0 #70c1d8,0 0 0.023vw 0 #70c1d8;
}

.rinsho-news__tab-dot,
.site-footer__cta-tab-dot{
  width:2.273vw;
  height:2.273vw;
}

.rinsho-news__meta{
  font-size:2.727vw;
  margin-bottom:2.273vw;
  gap:4.545vw;
}

.rinsho-news__tag{
  padding:0.455vw 2.273vw;
  font-size:2.273vw;
}

.rinsho-news__card-title{
  font-size:3.182vw;
  margin-bottom:2.273vw;
  padding-bottom:2.273vw;
}

.rinsho-news__card{
  padding:0;
}

.rinsho-news__excerpt{
  font-size:2.727vw;
}

.rinsho-news__inner::before{
  left:12.182vw;
  top:98%;
  width:45.455vw;
  height:45.455vw;
}

.rinsho-news__inner::after{
  right:-8.409vw;
  top:97%;
  width:50vw;
  height:50vw;
}


}



/*スマホ*/
@media screen and (max-width: 768px){

	
html{
  width:100%;
  overflow-x:hidden;
}

.pc-on{display:none;}
.sma{display:block;}
.sp-on{display:block;}
.sp-br{display:block;}
.pc-br{display:none;}

p{font-size:3.182vw;}

h3{
  font-size:4.091vw;
  margin-bottom:1.136vw;
}

h2{font-size:3.545vw;}
h2.en{font-size:5.455vw;}
h3.en{font-size:3.182vw;}

.top-about-title::after{
  top:-30.682vw;
  right:18.182vw;
  width:34.091vw;
  height:34.091vw;
}

.top-about-title{
  margin-top:6.818vw;
  margin-bottom:4.545vw;
  font-size:4.091vw;
  line-height:1.8;
}

section:not(.fv-slider):not(.page-hero){
  padding:18.182vw 4.545vw 0;
  margin:0 auto;
}

.top-about .p-title{
  width:90%;
  padding-bottom:2.273vw;
  font-size:3.182vw;
}

.top-about-course{
  display:block;
  padding-top:6.818vw;
}

.course-card--heartful .course-card__visual img{width:40.909vw;}

.course-card__lead{font-size:3.182vw;}

.course-card__button{
  font-size:3.182vw;
  width:56.818vw;
  gap:0;
  padding:2.273vw 2.273vw;
}

.course-card__bullet{
  width:2.273vw;
  height:2.273vw;
}

.course-card--heartful .course-card__button{
  box-shadow:0.682vw 0.909vw 0 #f98c8c,0 0 0.023vw 0 #f98c8c;
}

.course-card{gap:2.273vw;}

.course-card--heartful{margin-bottom:9.091vw;}

.course-card--general .course-card__visual img
{width:31.727vw;
}

.course-card--general .course-card__button{
  box-shadow:0.682vw 0.909vw 0 #70c1d8,0 0 0.023vw 0 #70c1d8;
}

.top-news__inner{
  grid-template-columns:auto;
  border-radius:6.818vw;
  padding:6.818vw 6.818vw;
  gap:4.545vw;
  box-shadow:0.682vw 0.909vw 0 #f5d200,0 0 0.023vw 0 #f5d200;
}

section.top-news{padding:4.545vw 2.273vw 0;}

.top-news__body{
  gap:4.545vw;
  margin-bottom:11.364vw;
  font-size:3.182vw;
}

.top-news__headline{text-align:center;}

.news-item{padding-bottom:2.273vw;}

.news-item__meta{gap:6.818vw;}

.news-item__meta time{font-size:2.727vw;}

.news-item__tag{
  padding:0.455vw 2.273vw;
  font-size:2.273vw;
}

.news-item__title{
  font-size:3.182vw;
  margin-top:2.273vw;
}

.top-news__more{
  right:4.545vw;
  bottom:6.818vw;
  gap:2.273vw;
}

.top-news__icon{
  width:6.818vw;
  height:6.818vw;
}

.top-news__icon::before{
  width:4.545vw;
  height:4.545vw;
}

section.rinsho-news{
  padding:56.818vw 4.545vw 40.909vw!important;
  margin-top:-38.636vw!important;
}

.rinsho-news__titles::after{
  width:3.409vw;
  height:3.409vw;
  top:-3.409vw;
}

section.rinsho-news::after{
  width:40.909vw;
  height:40.909vw;
  bottom:-28.409vw;
}



.top-links-card{
  grid-template-columns:auto;
  gap:2.273vw;
}

.top-links__list{gap:11.364vw;}

.top-links-card__body{
  position:relative;
  padding:0 2.273vw;
  width:100%;
  max-width:none;
}

.top-links-card__head{
  margin-bottom:2.273vw;
  padding-bottom:2.273vw;
  position:relative;
  display:flex;
  align-items:end;
  justify-content:space-between;
}

.top-links-card__icon{
  width:6.818vw;
  height:6.818vw;
  margin-bottom:3.409vw;
}

.top-links-card__icon span{
  width:4.545vw;
  height:4.545vw;
}

.top-links-card__head::after{
  bottom:0;
  left:0;
  width:100%;
  height:0.227vw;
}

.top-links-card__description{
  margin-bottom:6.818vw;
  width:auto;
  font-size:3.182vw;
}

.top-links-card__links{gap:4.545vw 4.545vw;}

.top-links-card__links li{
  padding-bottom:2.273vw;
  font-size:2.727vw;
}

.top-links-card__links a{padding-left:4.545vw;}

.top-links-card__links a::before{
  width:2.273vw;
  height:2.273vw;
  left:0;
}

.top-links-card__links li:nth-child(odd)::after{
  width:calc(200% + 2.273vw);
  border-bottom:0.227vw dashed #b3b3b3;
}

.top-links__list{gap:11.364vw;}

.top-links-pin-card__body{
  width:80%;
  padding:9.091vw 4.545vw 6.818vw;
  border-radius: 6.6042vw;
}

.top-links-pin-card__body h3{
  margin-bottom:3.409vw;
  padding-bottom:3.409vw;
}

.top-links-pin-card__body h3::after{
  width:11.364vw;
  height:0.455vw;
}

.top-links-pin-card__body p{margin-bottom:4.545vw;}

.top-links-pin-card__button{
  width:6.818vw;
  height:6.818vw;
}

.top-links-pin-card__button::before{
  width:4.545vw;
  height:4.545vw;
}

.top-links-pin-card__pin{
  top:3.409vw;
  left:50%;
  width:5.682vw;
  height:5.682vw;
}

.top-links__cta{margin-top:11.364vw;}

.top-links-pin-card{padding-top:6.818vw;}

.top-parallax::after{
  font-size:5.455vw;
  top:-3.409vw;
  letter-spacing:0.227vw;
}

.top-links .section-heading{
  margin-bottom:6.818vw;
}

.top-access .section-heading{margin-bottom:6.818vw;}

.top-access__info{width:auto;}

.top-access__info dt{
  font-size:3.182vw;
  padding-top:1.136vw;
}

.top-access__info dd{font-size:3.182vw;}

.top-access__info dl > div{
  gap:4.545vw;
  border-bottom:0.227vw dashed #f5d200;
  padding-bottom:4.545vw;
  align-items:flex-start;
}

.top-access--about .top-access__info dl > div{
  border-bottom:0.227vw dashed #b3b3b3;
}

.top-access__info dl{gap:4.545vw;}

.top-access__info dt{min-width:20.455vw;}

.top-access__info dd{flex:1;}

.top-access__more{
  font-size:3.182vw;
  margin-top:6.818vw;
  gap:2.273vw;
}

.top-access__map{display:none;}

.site-footer__nav{display:none;}

.site-footer__line{top:-11.364vw;}

.site-footer__line img{width:45.455vw;}

.site-footer__plane{
  top:-13.636vw;
  left:45.455vw;
  width:9.091vw;
  height:9.091vw;
}

.site-footer__plane img{width:9.091vw;}
}/*スマホ*/

/* ページタイトルエリア */
.site-main{
  margin-top: 7.2917vw; /* 140px */
}

.about-greeting__inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3.125vw;          /* 60px */
}

.about-greeting__title {
  color: #ffd24c;
  font-weight: 700;
}

.about-greeting__catch {
  text-align: center;
  font-size: 1.25vw;     /* 24px */
  font-weight: 500;
  color: #3b6f99;
  letter-spacing: 0.08em;
}

.about-greeting__content {
  display: flex;
  justify-content: space-between;
  gap: 5.2083vw;         /* 100px */
  align-items: center;
  margin-bottom: 10.4167vw; /* 200px */
}

.about-greeting__message {
  display: flex;
  flex-direction: column;
  gap: 1.0417vw;         /* 20px */
  line-height: 2;
  font-size: 0.7292vw;   /* 14px */
  font-weight: 500;
}

.about-greeting__message p {
  line-height: 2.5;
}

.about-greeting__values {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.about-greeting__values li {
  position: relative;
  padding-left: 1.6667vw;
  font-size: 0.7292vw;
  color: #333;
  font-weight: 500;
}

/* 1920px基準：px → vw（px値があるものは全部変換） */

.about-greeting__values li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.625vw;            /* 12px */
  transform: none;
  width: 0.9375vw;         /* 18px */
  height: 0.1042vw;        /* 2px */
  background: #333;
}

.about-greeting__card {
  width: 48%;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1.5625vw;           /* 30px */
}

.about-greeting__portrait {
  margin: 0;
  border-radius: 1.3021vw; /* 25px */
  overflow: hidden;
  box-shadow: 0.3646vw 0.3646vw 0 #f5d200, 0 0.3646vw 0 #f5d200; /* 7px */
}

.about-greeting__portrait img {
  width: 100%;
  display: block;
}

.about-greeting__card-name {
  color: #333;
  display: flex;
  gap: 0.5208vw;           /* 10px */
  align-items: center;
  text-align: center;
  margin: 0 auto;
}

.about-greeting__card-role {
  font-size: 0.7292vw;     /* 14px */
  font-weight: 500;
}

.about-greeting__card-person {
  font-size: 0.9375vw;     /* 18px */
}

.about-greeting__card-body {
  display: flex;
  flex-direction: column;
  gap: 1.0417vw;           /* 20px */
}

.about-greeting__cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  gap: 0.5rem;
  padding: 0.7292vw 1.25vw; /* 14px 24px */
  border-radius: 52.0313vw; /* 999px */
  background: #fff;
  color: #3b6f99;
  font-weight: 700;
  border: 0.1042vw solid #3b6f99; /* 2px */
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.about-greeting__cta:hover,
.about-greeting__cta:focus-visible {
  background: #3b6f99;
  color: #fff;
}

.about-greeting {
  position: relative;
  z-index: 2;
}

.about-greeting::after {
  content: "";
  position: absolute;
  bottom: -14.8021vw;
  left: 50%;
  transform: translateX(-50%);
  width: 19.7917vw;
  height: 19.7917vw;
  background-image: url(../img/illast-03.png);
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 1;
}

.about-information {
  background: url(../img/page-bg.jpg) center / cover no-repeat;
  padding: 6.25vw 0 7.2917vw; /* 120px 0 140px */
  position: relative;
}

.about-information__inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 5.2083vw;            /* 100px */
  padding-bottom: 10.4167vw; /* 200px */
}

.about-information__subtitle {
  color: #ffd24c;
}

.about-information__card {
  background: #fff;
  border-radius: 2.6042vw;  /* 50px */
  padding: 3.6458vw 6.25vw; /* 70px 120px */
}

.about-information__text {
  font-size: 0.9375vw;      /* 18px */
  line-height: 2.2;
  text-align: center;
  margin: 0 auto;
  font-weight: 500;
  width: 36.4583vw;         /* 700px */
}

.about-origin__body {
  display: flex;
  align-items: center;
  gap: 2.6042vw;            /* 50px */
  margin-top: 4.1667vw;     /* 80px */
}

.about-origin__media {
  flex: 0 0 45%;
  margin: 0;
  overflow: hidden;
}

.about-origin__media img {
  width: 100%;
  height: auto;
  display: block;
}

.about-origin__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1.5625vw;            /* 30px */
}

.about-origin__title {
  font-size: 1.25vw;        /* 24px */
  margin: 0;
}

.about-origin__text {
  font-size: 0.7292vw;      /* 14px */
  line-height: 2.1;
  margin: 0;
  font-weight: 500;
}

.about-origin__vision {
  margin-top: 2.6042vw;     /* 50px */
  display: flex;
  flex-direction: column;
  gap: 1.5625vw;            /* 30px */
  text-align: center;
}

.about-origin__vision-title {
  font-size: 0.9375vw;      /* 18px */
  font-weight: 600;
  color: #3b6f99;
  margin-bottom: 1.0417vw;  /* 20px */
  letter-spacing: 0.08em;
}

.about-origin__vision-text {
  font-size: 0.7292vw;      /* 14px */
  line-height: 2.1;
  text-align: left;
  margin: 0;
  font-weight: 500;
}

.about-emblem {
  text-align: center;
  gap: 1.6667vw;            /* 32px */
}

.about-emblem .section-titleset {
  margin-bottom: 1.0417vw;  /* 20px */
}

.about-emblem__media {
  width: 9.375vw;           /* 180px */
  margin: 0 auto;
  padding: 2.6042vw 0;      /* 50px 0 */
}

.about-emblem__media img {
  width: 100%;
  height: auto;
  display: block;
}

.about-emblem__tagline {
  margin-top: 0;
}

.about-emblem__text {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  color: #0f2d4a;
}

.about-emblem__text p {
  font-size: 0.7292vw;      /* 14px */
  line-height: 2.1;
  text-align: center;
  font-weight: 500;
}

.about-history {
  padding: 3.6458vw 4.1667vw; /* 70px 80px */
}

.about-history__timeline {
  list-style: none;
  margin: 2.0833vw auto 0;  /* 40px auto 0 */
  padding: 0;
  max-width: 37.5vw;        /* 720px */
  position: relative;
}

.about-history__timeline::before {
  content: "";
  position: absolute;
  left: 1.25vw;             /* 24px */
  top: 0.2604vw;            /* 5px */
  bottom: 0.2604vw;         /* 5px */
  width: 0.1042vw;          /* 2px */
  background: #3b6f99;
}

.about-history__timeline li {
  padding-left: 3.3333vw;   /* 64px */
  position: relative;
  margin-bottom: 1.6667vw;  /* 32px */
}

.about-history__timeline li:last-child {
  margin-bottom: 0;
}

.about-history__timeline li::before {
  content: "";
  position: absolute;
  left: 0.7292vw;           /* 14px */
  top: 0.3125vw;            /* 6px */
  width: 1.0417vw;          /* 20px */
  height: 1.0417vw;         /* 20px */
  border-radius: 50%;
  background: #3b6f99;
}

.about-history__term {
  font-size: 0.9375vw;      /* 18px */
  font-weight: 700;
  color: #3b6f99;
  margin: 0 0 0.5208vw;     /* 0 0 10px */
  letter-spacing: 0.1042vw; /* 2px */
}

.about-history__description {
  margin: 0;
  font-size: 0.7292vw;      /* 14px */
  font-weight: 500;
  line-height: 2;
}

@media (max-width: 768px) {
  .section-titleset{
    gap:1.136vw;
    margin-bottom:6.818vw;
  }

  .section-titleset__title{
    font-size: 62.5%;
  }

  .section-titleset__caption{
    font-size:2.727vw;
  }

.about-information{
  padding:20.455vw 0 25vw;
  background-image:url(../img/sp-page-bg.jpg);
  background-position:center top;
  background-size:cover;
}

.top-access--about .top-access__inner{
  margin-bottom:22.727vw;
}

.about-information__card{
  padding:9.091vw 6.818vw;
  border-radius:6.818vw;
}

.about-information__text{
  font-size:3.182vw;
  width:100%;
}

.about-origin{
  padding:9.091vw 5.455vw;
}

.about-origin__body{
  flex-direction:column;
  margin-bottom:0;
  margin-top:0;
  gap:4.545vw;
}

.about-origin__title{
  font-size:4.091vw;
}

.about-origin__media{
  width:100%;
}

.about-origin__content{
  gap:3.409vw;
}

.about-origin__title{
  font-size:4.091vw;
}

.about-origin__text{
  font-size:3.182vw;
}

.about-origin__vision{
  margin-top:6.818vw;
  padding-top:0;
  gap:0;
}

.about-origin__vision-title{
  font-size:3.636vw;
  letter-spacing:0.06em;
  margin-bottom:4.545vw;
}

.about-origin__vision-text{
  font-size:3.182vw;
}

.about-emblem{
  padding:9.091vw 5.455vw 10.909vw;
}

.about-emblem__media{
  width:22.727vw;
  margin-bottom:4.545vw;
  padding:0;
}

.about-emblem__text{
  font-size:3.409vw;
  gap:3.182vw;
}

.about-history{
  padding:9.091vw 5.455vw;
}

.about-history__timeline{
  margin-top:0;
  max-width:100%;
}

.about-history__timeline::before{
  left:5vw;
  top:1.591vw;
}

.about-history__timeline li::before{
  left:3.409vw;
  top:1.364vw;
  width:3.409vw;
  height:3.409vw;
}

.about-history__timeline li{
  padding-left:11.364vw;
  margin-bottom:9.091vw;
}

.about-history__term{
  font-size:3.636vw;
  margin:0;
}

.about-history__description{
  font-size:3.182vw;
}

.about-emblem__text p{
  font-size:3.182vw;
}
}

@media (max-width: 768px) {
.about-greeting{
  padding:11.364vw 4.545vw 18.182vw!important;
}

.about-greeting__inner{
  gap:6.818vw;
}

.about-greeting__catch{
  font-size:4.091vw;
}

.about-greeting__content{
  display:block;
  gap:7.273vw;
  margin-bottom:0;
}

.about-greeting__message{
  font-size:2.727vw;
}

.about-greeting__values{
  gap:2.273vw;
}

.about-greeting__values li{
  padding-left:5.455vw;
  font-size:3.182vw;
}

.about-greeting__card{
  width:60%;
  margin:0 auto;
  padding-top:6.818vw;
  gap:2.273vw;
}

.about-greeting__portrait{
  border-radius:6.818vw;
  box-shadow:0.682vw 0.909vw 0 #f5d200,0 0 0.023vw 0 #f5d200;
}

.about-greeting__card-role{
  font-size:2.727vw;
}

.about-greeting__card-person{
  font-size:3.182vw;
}

.about-information__inner{
  gap:6.818vw;
  padding-bottom: 22.727vw;
}

.about-greeting__values li::before{
  top:3.625vw;
  width:2.9375vw;
}

.about-greeting__portrait img{
  margin:0 auto;
}

.about-greeting__cta{
  width:80%;
  padding:1.818vw 6.818vw;
}

.about-greeting__card-body{
  gap:2.273vw;
}

.about-greeting::after{
  width:40.909vw;
  height:40.909vw;
  bottom:-30.409vw;
}
}

.page-hero {
  background: #3b6f99;
  color: #fff;
  padding: 3.4167vw 15.625vw;
  position: relative;
  overflow: visible;
}

.page-hero::after {
  content: "";
  position: absolute;
  left: 28%;
  bottom: -0.0521vw; /* -1px */
  width: 19.2708vw; /* 370px */
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 2.6042vw 2.0833vw 2.6042vw; /* 0 50px 40px 50px */
  border-color: transparent transparent #fff transparent;
  pointer-events: none;
  z-index: 1;
}

.page-hero__inner {
  margin: 0 auto;
  max-width: 62.5vw; /* 1200px */
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4.1667vw; /* 80px */
  position: relative;
}

.page-hero--feature {
  position: relative;
  overflow: visible;
}

.page-hero--feature .page-hero__inner {
  max-width: none;
  width: 100%;
}

.page-hero__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2.6042vw; /* 50px */
  max-width: 26.0417vw; /* 500px */
}

.page-hero__titles{
  text-align: center;
}

.page-hero__titles h2 {
  margin: 0;
  line-height: 1.3;
}

.page-hero__titles h2.en {
  letter-spacing: 0.08em;
  color: #fff;
}

.page-hero__titles h2:not(.en) {
  font-weight: 700;
  color: #ffd900;
}

.page-hero__links {
  --page-hero-links-gap: 1.875vw; /* 36px */
  list-style: none;
  width: 90%;
  margin: 0 auto;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  row-gap: 1.0417vw; /* 20px */
  column-gap: var(--page-hero-links-gap);
}

.page-hero__links li {
  position: relative;
  padding-left: 1.5625vw; /* 30px */
  font-size: 0.8333vw; /* 16px */
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  padding-bottom: 1.0417vw; /* 20px */
}

.page-hero__links li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 30%;
  width: 0.5208vw;  /* 10px */
  height: 0.5208vw; /* 10px */
  border-radius: 50%;
  background: #fff;
  transform: translateY(-50%);
  transition: background-color 0.2s ease;
}

.page-hero__links li:hover::before,
.page-hero__links li:focus-within::before {
  background: #ffd900;
}

.page-hero__links li::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 0.0521vw; /* 1px */
  background-image: repeating-linear-gradient(
    to right,
    #cfd9e6 0 5px,
    transparent 5px 10px
  );
  opacity: 0.5;
}

.page-hero__links li:nth-child(odd)::after {
  width: calc(200% + var(--page-hero-links-gap));
  border-bottom: 0.0521vw dashed #b3b3b3;
}

.page-hero__links li:nth-child(even)::after {
  display: none;
}

.page-hero__links a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  gap: 0.3125vw; /* 6px */
  letter-spacing: 0.1042vw; /* 2px */
}

.page-hero__links a:hover {
  color: #fff;
}

.page-hero__visual {
  flex: 1;
  overflow: hidden;
}

.page-hero--feature .page-hero__visual {
  width: 55%;
  margin-right: -15.625vw;
}

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

@media (max-width: 768px) {
  .page-hero__inner{
  display:block;
}

.page-hero__content{
  max-width:100%;
}

.page-hero{
  padding:18.182vw 2.273vw 9.091vw;
}

.page-hero--feature .page-hero__visual{
  width:auto;
}

.page-hero__links li::before{
  width:2.273vw;
  height:2.273vw;
}

.page-hero__links li{
  padding-left:4.545vw;
  font-size:3.182vw;
  padding-bottom:2.727vw;
}

.page-hero__links li:nth-child(odd)::after{
  width:calc(194% + var(--page-hero-links-gap));
  border-bottom:0.227vw dashed #b3b3b3;
}

.page-hero__links{
  width:90%;
  row-gap:2.273vw;
  padding:6.818vw 0;
}

.page-hero::after{
  border-width:3.409vw 3.409vw 3.409vw;
  bottom:0;
  left:20%;
}

}

/* 中学生の皆さまへ */

/* ========================================
   Open School（1920px基準：px→vwのみ）
======================================== */

.open-school {
  padding: 6.25vw 0 7.8125vw;
  position: relative;
  overflow: visible;
}

.open-school::after {
  content: "";
  position: absolute;
  bottom: -14.8021vw;
  left: 50%;
  transform: translateX(-50%);
  width: 19.7917vw;
  height: 19.7917vw;
  background-image: url(../img/illast-03.png);
  background-size: contain;
  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 1;
}

.open-school__inner {
  width: min(57.2917vw, 90vw); /* 1100px */
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 3.75vw; /* 72px */
  padding-bottom: 10.4167vw; /* 200px */
}

.open-school .section-heading {
  color: #0f2d4a;
}

.open-school .section-heading .en {
  letter-spacing: 0.05em;
}

.open-school__lead {
  width: 46.6667vw;
  font-size: 0.8333vw; /* 16px */
  line-height: 1.9;
  margin-top: 2.6042vw; /* 50px */
  font-weight: 500;
}

.open-school__schedule {
  display: flex;
  flex-direction: column;
  gap: 2.6042vw; /* 50px */
}

.open-school__schedule-head {
  display: flex;
  align-items: center;
  gap: 0.625vw; /* 12px */
  font-weight: 700;
  color: #3b6f99;
}

.open-school__schedule-head p {
  font-size: 1.3542vw; /* 26px */
  color: #3b6f99;
}

.open-school__schedule-dot {
  width: 1.0417vw;  /* 20px */
  height: 1.0417vw; /* 20px */
  border-radius: 50%;
  background: #3b6f99;
  display: inline-flex;
}

.open-school__cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.875vw; /* 36px */
}

.open-school-card {
  padding: 1.5625vw 1.3021vw; /* 30px 25px */
  border-radius: 2.6042vw; /* 50px */
  background: #3b6f99;
  color: #fff;
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.9375vw; /* 18px */
  min-height: 16.6667vw; /* 320px */
}

.open-school-card h3 {
  font-size: 0.9375vw; /* 18px */
  margin: 0;
  letter-spacing: 0.1042vw; /* 2px */
}

.open-school-card__date {
  font-family: "Limelight", "Zen Maru Gothic", serif;
  display: flex;
  align-items: baseline;
  gap: 0.3125vw; /* 6px */
  color: #f98c8c;
}

.open-school-card__date strong {
  font-size: 4.2708vw; /* 82px */
}

.open-school-card__date span {
  font-size: 1.0417vw; /* 20px */
}

.open-school-card__status {
  margin: 0.625vw 0 0; /* 12px */
  padding: 0.3125vw 0.9375vw; /* 6px 18px */
  border-radius: 52.0833vw; /* 999px相当 */
  background: rgba(255, 255, 255, 0.15);
  font-size: 0.7292vw; /* 14px */
}

.open-school-card__cta {
  display: flex;
  justify-content: center;
  gap: 0.625vw; /* 12px */
  flex-wrap: wrap;
}

.open-school-card__button {
  width: 5.7292vw; /* 110px */
  padding: 0.5208vw 0.9375vw; /* 10px 18px */
  border-radius: 52.0833vw; /* 999px相当 */
  color: #3b6f99;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.7292vw; /* 14px */
  background: #fff;
  transition: background 0.2s ease, color 0.2s ease;
}

.open-school-card__button--primary {
  background: #fff;
  color: #3b6f99;
}

.open-school-card__button:hover {
  background: #fff;
  color: #355d90;
}

.open-school-card__button--primary:hover {
    background: #ffd24c;
    color: #3b6f99;
}

.open-school-card__button:hover {
    background: #ffd24c;
    color: #3b6f99;
}

.open-school-card.is-closed {
  background: #2c4568;
  opacity: 0.85;
}

.open-school-card.is-closed .open-school-card__button {
  border-color: rgba(255, 255, 255, 0.4);
  color: rgba(255, 255, 255, 0.4);
  pointer-events: none;
}

.open-school-card.is-closed .open-school-card__button--primary {
  background: rgba(255, 255, 255, 0.2);
}

@media (max-width: 768px) {

  .open-school__schedule{
  gap:4.545vw;
}

.open-school__subtitle{
  font-size:auto;
}

.open-school__inner{
  width:auto;
  gap:11.364vw;
}

.open-school__schedule-head{
  gap:1.136vw;
}

.open-school__schedule-dot{
  width:2.727vw;
  height:2.727vw;
}

section.open-school{
  padding:11.364vw 4.545vw 18.182vw!important;
}

.open-school__lead{
  width:auto;
  font-size:3.182vw;
  margin-top:4.545vw;
}

.open-school__schedule-head p{
  font-size:4.091vw;
}

.open-school-card h3{
  font-size:3.182vw;
}

.open-school-card__date strong{
  font-size:13.182vw;
}

.open-school-card__date span{
  font-size:3.636vw;
}


.pamphlet-video .section-heading {
  color: #0f2d4a;
}

.open-school-card{
  padding:11.364vw 4.545vw;
  gap:2.273vw;
  border-radius: 5.6042vw;
}

.open-school-card__cta{
  flex-direction:column;
  gap:3.409vw;
}

.open-school-card__button{
  padding:1.136vw 6.818vw;
  width:100%;
  font-size:2.727vw;
  border-radius:6.818vw;
}

.open-school__cards{
  gap:11.364vw;
}

.open-school::after{
  bottom:-30.909vw;
  width:40.909vw;
  height:40.909vw;
}
}

/* ========================================
   Admissions（1920px基準：px→vwのみ）
======================================== */

.admissions {
  padding: 7.5vw 0 8.75vw;
  background: url("../img/page-bg.jpg") center/cover no-repeat;
  position: relative;
}

.admissions::after {
  content: "";
  position: absolute;
  inset: 0;
}

.admissions__inner {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 5.125vw; /* 98px */
  padding-bottom: 10.4167vw; /* 200px */
}

/* admissions heading uses .section-heading--light */

.admissions__subtitle {
  color: #ffd24c;
}

.admissions__cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.1667vw; /* 80px */
}

.admissions-card {
  background: #fff;
  border-radius: 2.6042vw; /* 50px */
  padding: 3.125vw; /* 60px */
  text-align: center;
}

.admissions-card__titleset .section-titleset__title {
  font-size: 1.3542vw; /* 26px */
  color: #3b6f99;
}

.admissions-card__titleset .section-titleset__caption {
  font-size: 0.9375vw; /* 18px */
  color: #ffd900;
}

.admissions-policy {
  text-align: left;
  font-size: 0.9375vw; /* 18px */
  font-weight: 500;
  line-height: 2;
  width: 41.6667vw; /* 800px */
  margin: 0 auto;
}

.admissions-policy li {
  list-style: inside;
  margin-bottom: 1.0417vw; /* 20px */
}

.admissions-table {
  display: grid;
  gap: 1.5625vw; /* 30px */
  text-align: left;
  color: #23405f;
  width: 36.4583vw; /* 700px */
  margin: 0 auto;
}

.admissions-table div {
  display: flex;
  gap: 3.125vw; /* 60px */
  align-items: flex-start;
}

.admissions-table dt {
  width: 7.8125vw; /* 150px */
  padding: 0.3125vw 0; /* 6px 0px */
  border-radius: 52.0833vw; /* 999px相当 */
  background: #3b6f99;
  font-size: 0.8333vw; /* 16px */
  font-weight: 700;
  color: #fff;
  text-align: center;
  letter-spacing: 0.1042vw; /* 2px */
}

.admissions-table dd {
  font-size: 0.8333vw; /* 16px */
  color: #333;
  margin: 0;
  flex: 1;
  line-height: 1.8;
  font-weight: 500;
}


@media (max-width: 768px) {

  .admissions__inner{
  width:auto;
}

.admissions-card__titleset .section-titleset__title{
  font-size:3.636vw;
}

.admissions-card__titleset .section-titleset__caption{
  font-size:2.727vw;
}

.admissions-table div{
  display:block;
}

.admissions-policy li{
  margin-bottom:4.545vw;
}

.admissions-policy{
  width:auto;
  font-size:3.182vw;
}

.admissions__dot{
  width:3.409vw;
  height:3.409vw;
}

.admissions__cards{
  gap:11.364vw;
}

.admissions{
  padding:13.636vw 0 15.909vw;
  background-image: url(../img/sp-page-bg.jpg);
  background-position: center top;
  background-size: cover;
}

.admissions-card{
  padding:9.091vw 6.818vw;
  border-radius:6.818vw;
}

.admissions__inner{
  gap:6.818vw;
  padding-bottom:22.727vw;
}

.admissions-table{
  grid-template-columns:1fr;
  width:100%;
  gap:4.545vw;
}

.admissions-table dt{
  width:22.727vw;
  font-size:2.727vw;
  padding:1.136vw 0;
  margin-bottom:2.273vw;
}

.admissions-table dd{
  font-size:3.182vw;
}

.page-parallax::after{
  font-size:5.455vw;
  top:-3.636vw;
}
}

/* ========================================
   Pamphlet Video / Flip（1920px基準：px→vw）
   ※ clampなし
======================================== */

.pamphlet-video__inner {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 4.1667vw;          /* 80px */
  margin-bottom: 10.4167vw; /* 200px */
}

/* pamphlet-video heading inherits from .section-heading */

.pamphlet-video__lead {
  margin-top: -1.5625vw; /* -30px */
}

.pamphlet-video__body {
  display: grid;
  gap: 5.2083vw; /* 100px */
}

.pamphlet-video__card {
  background: #fff;
  border-radius: 2.6042vw; /* 50px */
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2.6042vw; /* 50px */
}

.pamphlet-video__label {
  display: flex;
  align-items: center;
  gap: 0.625vw; /* 12px */
  font-weight: 700;
  color: #3b6f99;
  font-size: 1.3542vw; /* 26px */
}

.pamphlet-video__label::before {
  content: "";
  width: 1.0417vw;  /* 20px */
  height: 1.0417vw; /* 20px */
  border-radius: 50%;
  background: #3b6f99;
}

.pamphlet-video__media {
  position: relative;
  padding-top: 56.25%;
  border-radius: 1.5625vw; /* 30px */
  overflow: hidden;
  box-shadow: 0 1.0417vw 2.0833vw rgba(0, 0, 0, 0.15); /* 0 20px 40px */
}

.pamphlet-video__media iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.pamphlet-video__button {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 0.4167vw;       /* 8px */
  padding: 0.9375vw 1.875vw; /* 18px 36px */
  border-radius: 52.0833vw;  /* 999px相当 */
  background: #3b6f99;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pamphlet-video__button::after {
  content: "→";
  font-size: 1.0417vw; /* 20px */
}

.pamphlet-video__button:hover {
  transform: translateY(-0.2083vw); /* -4px */
  box-shadow: 0 0.625vw 1.0417vw rgba(59, 111, 153, 0.25); /* 0 12px 20px */
}

/* ========================================
   Pamphlet Flip
======================================== */

.pamphlet-flip {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  gap: 1.25vw; /* 24px */
  justify-self: end;
}

.pamphlet-book {
  position: relative;
  width: min(33.3333vw, 100%); /* 640px */
  aspect-ratio: 3 / 4;
  margin-left: auto;
  margin-right: 0;
  overflow: visible;
}

.pamphlet-book::before {
  content: "";
  position: absolute;
  inset: 0.8333vw; /* 16px */
  border-radius: inherit;
  pointer-events: none;
}

.pamphlet-book__papers {
  position: relative;
  width: 100%;
  height: 100%;
  perspective: 104.1667vw; /* 2000px */
  transform-style: preserve-3d;
  overflow: visible;
}

.pamphlet-book__papers.is-covered {
  opacity: 0;
  visibility: hidden;
}

.pamphlet-book__cover {
  position: absolute;
  inset: 0;
  display: flex;
  pointer-events: none;
  border-radius: inherit;
  overflow: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
  z-index: 20;
}

.pamphlet-book__cover-left,
.pamphlet-book__cover-right {
  flex: 1 1 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pamphlet-book__cover-left {
  flex: 0 0 0;
  display: none;
}

.pamphlet-book__cover-right img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pamphlet-book__cover.is-open {
  opacity: 0;
  visibility: hidden;
}

.pamphlet-paper {
  position: absolute;
  inset: 0;
  transform-style: preserve-3d;
  transform-origin: left center;
  transition: transform 0.95s cubic-bezier(0.22, 0.61, 0.36, 1);
  pointer-events: none;
}

.pamphlet-paper.is-flipped {
  transform: rotateY(-180deg);
}

.pamphlet-page {
  position: absolute;
  inset: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #fff;
  box-shadow: inset 0 0 2.3438vw rgba(12, 34, 59, 0.15); /* 45px */
  backface-visibility: hidden;
}

.pamphlet-page::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0));
  opacity: 0.4;
  pointer-events: none;
}

.pamphlet-page--front {
  transform: rotateY(0deg) translateZ(0.0521vw); /* 1px */
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(235, 244, 253, 0.9));
}

.pamphlet-page--back {
  transform: rotateY(180deg);
  background: linear-gradient(315deg, rgba(255, 255, 255, 0.95), rgba(235, 244, 253, 0.9));
}

.pamphlet-page--blank {
  font-weight: 700;
  font-size: 1.25vw; /* 24px */
  color: rgba(15, 45, 74, 0.35);
  letter-spacing: 0.3em;
}

.pamphlet-page--blank::after {
  display: none;
}

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

.pamphlet-book__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  gap: 2.6042vw; /* 50px */
}

.pamphlet-flip.is-busy .pamphlet-book__controls {
  opacity: 0.8;
}

.pamphlet-book__download {
  width: 2.9167vw;  /* 56px */
  height: 2.9167vw; /* 56px */
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: url("../img/download_icon.png") center/1.4583vw 1.4583vw no-repeat; /* 28px */
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pamphlet-book__download::after {
  content: "";
}

.pamphlet-book__download:hover {
  transform: translateY(-0.1042vw); /* -2px */
  box-shadow: 0 0.7292vw 1.4583vw rgba(59, 111, 153, 0.28); /* 0 14px 28px */
}

.pamphlet-book__nav {
  width: 2.6042vw;  /* 50px */
  height: 2.6042vw; /* 50px */
  border-radius: 50%;
  border: none;
  background: #3b6f99;
  color: #fff;
  font-size: 1.25vw; /* 24px */
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}

.pamphlet-book__nav:disabled {
  background: rgba(15, 45, 74, 0.35);
  cursor: not-allowed;
}

.pamphlet-flip.is-busy .pamphlet-book__nav {
  cursor: wait;
  pointer-events: none;
}

.pamphlet-book__nav:not(:disabled):hover {
  transform: translateY(-0.1563vw); /* -3px */
}

.pamphlet-flip.is-single {
  align-items: center;
  gap: 20px;
}

.pamphlet-flip.is-single .pamphlet-book {
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  border-radius: 24px;
}

.pamphlet-flip.is-single .pamphlet-book__cover {
  display: none;
}

.pamphlet-flip.is-single .pamphlet-book__papers {
  perspective: none;
  overflow: visible;
}

.pamphlet-flip.is-single .pamphlet-paper {
  position: static;
  transform: none !important;
  pointer-events: none;
}

.pamphlet-flip.is-single .pamphlet-page {
  position: relative;
  transform: none !important;
  display: none;
  border-radius: 16px;
  box-shadow: 0 20px 45px rgba(15, 45, 74, 0.25);
}

.pamphlet-flip.is-single .pamphlet-page.is-visible {
  display: block;
}

.pamphlet-flip.is-single .pamphlet-page::after {
  opacity: 0.15;
}

.pamphlet-book__counter {
  display: flex;
  align-items: center;
  gap: 0.5208vw; /* 10px */
  font-weight: 700;
  color: #0f2d4a;
}

.pamphlet-book__counter-divider {
  color: rgba(15, 45, 74, 0.35);
}

.pamphlet-book__counter-total {
  font-size: 0.7292vw; /* 14px */
  font-weight: 500;
  color: rgba(15, 45, 74, 0.6);
}


@media (max-width: 768px) {
  .pamphlet-video {
    padding: 13.636vw 0 18.182vw;
  }

  .pamphlet-video__body {
    grid-template-columns: 1fr;
    gap: 11.364vw;
  }

  .pamphlet-book {
    aspect-ratio: 3/4;
    border-radius: 5.455vw;
  }

  .pamphlet-book__nav {
    width: 10.909vw;
    height: 10.909vw;
    font-size: 4.545vw;
  }

  .pamphlet-book__download {
    width: 12.5vw;
    height: 12.5vw;
    background-size: 6vw 6vw;
  }

  .pamphlet-flip.is-single .pamphlet-book {
    width: 100%;
  }
.pamphlet-video__card{
  border-radius:4.545vw;
  padding:0;
  gap:4.545vw;
}

.pamphlet-video__label{
  gap:1.136vw;
  font-size:4.091vw;
}

.pamphlet-video__lead{
  font-size:3.182vw;
}

.pamphlet-video__button{
  width:100%;
  justify-content:center;
  font-size:3.636vw;
  padding:3.5vw 0;
}

.pamphlet-book{
  aspect-ratio:3/4;
  border-radius:5.455vw;
}

.pamphlet-book__nav{
  width:10.909vw;
  height:10.909vw;
  font-size:4.545vw;
}

.pamphlet-book__download{
  width:12.5vw;
  height:12.5vw;
  background-size:6vw 6vw;
}

.pamphlet-flip.is-single .pamphlet-book{
  width:100%;
}

.pamphlet-flip.is-single .pamphlet-page{
  box-shadow:0 1.136vw 4.545vw rgba(15,45,74,0.25);
}

.page-links__dot{
  width:3.409vw;
  height:3.409vw;
}

.page-links-pin-card__body{
  width:80%;
  padding:9.091vw 4.545vw 6.818vw;
  border-radius:6.6042vw;
}

.pamphlet-flip.is-single{
  gap:11.364vw;
}

.page-links-pin-card__body h3{
  font-size:4.091vw;
  margin-bottom:3.409vw;
  padding-bottom:3.409vw;
}

.page-links-pin-card__body h3::after{
  width:11.364vw;
  height:0.455vw;
}

.page-links-pin-card__pin{
  top:3.409vw;
  left:50%;
  width:5.682vw;
  height:5.682vw;
}

.page-links-pin-card__button{
  width:6.818vw;
  height:6.818vw;
}

.page-links-pin-card__button::before{
  width:4.545vw;
  height:4.545vw;
}

.page-links-pin-card__body p{
  margin-bottom:4.545vw;
}

.page-links-pin-card{
  padding-top:0;
}

.page-links-pin-card:nth-child(2){
  padding-top:6.818vw;
}

.page-links__cta{
  margin-top:0;
  margin-bottom:22.727vw;
}
}

@media (prefers-reduced-motion: reduce) {
  .pamphlet-paper,
  .pamphlet-page,
  .pamphlet-book {
    transition: none !important;
    transform: none !important;
  }

  .pamphlet-paper.is-flipped {
    transform: none !important;
  }
}
