@charset "utf-8";

html {
  font-size: min(1vw, calc(var(--contentWidth) / 100));
  overflow-x: hidden;
}

* {
  box-sizing: border-box;
}

img {
  width: 100%;
  height: auto;
  max-width: 100%;
  vertical-align: middle;
  margin: 0;
  padding: 0;
}

a {
  text-decoration: underline;
  color: revert;
}

#contents {
  background: #fff;
  max-width: var(--contentWidth);
  margin-inline: auto;
  box-shadow: 0 0 20rem 0 rgba(0, 0, 0, 0.3);
}

main {
  overflow: hidden;
}

/*------------------------------------------------
カウントダウンタイマー
--------------------------------------------------*/
#scheader {
  display: none;
  z-index: 100;
  /* Updated to higher z-index */
  position: sticky;
  /* Changed from fixed to sticky */
  top: 0;
  /* Added for sticky positioning */
  width: 100%;
  font-size: 3.5rem;
  font-weight: bold;
  /* Removed duplicate declaration */
  text-align: center;
  background: var(--red);
  /* Updated to use variable */
  color: #fff;
  padding: 2rem 0;
  /* Added for consistent spacing */
  line-height: 1;
  /* Unified line-height */
}

#scheader .countdown {
  padding: 1rem 0;
  margin: 0 auto;
  line-height: 1.2;
  /* Retained specific line-height */
  font-family: Verdana, Roboto, "Droid Sans", "游ゴシック", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "ＭＳ Ｐゴシック", sans-serif, monospace;
}

#scheader .countdown .timer_num {
  display: inline-block;
  padding: 0 0.4rem;
  margin: 0 0.4rem;
  border-radius: 3px;
  color: var(--black);
  font-size: 150%;
  background: #fff;
}

/*--------------------------------------------------
 Section
-------------------------------------------------- */
.img_arrow {
  width: 60%;
  margin: 0 auto;
  margin-top: 3rem;
}

video {
  width: 100%;
}

/* Form
------------------------- */
/* .form {
  position: relative;
  padding: 6rem 0 10rem;
  background: var(--black);
} */

/* .form::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2px;
  background: var(--gra_gold);
} */

/* .form::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: var(--gra_gold);
} */

/* Form2
------------------------- */
.form2 {
  position: relative;
  padding: 10rem 0;
  background: var(--black);
}

.form2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2px;
  background: var(--gra_gold);
}

.form2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: var(--gra_gold);
}

/* ----------------------------------------------------
cp
--------------------------------------------------- */
.cp {
  padding-top: 0;
  background-color: #fffcf3;
  background-image: url(../img/crissxcross.png);
  background-size: 30rem;
}

.cp:nth-of-type(1) {
  padding-bottom: 5rem;
}

.cp .bg_r_gr {
  padding: 8rem 5rem;
  background-image: url(../img/bg_campaign.jpg);
}

.cp .sub_head {
  font-weight: 900;
  line-height: 1.3;
}

.cp .cp_box {
  background-color: #fff;
  padding: 5rem;
  margin: 0 5rem;
  border: 2px solid var(--red);
}

/* Footer
------------------------- */
footer {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  background: #141414;
  color: #898989;
  padding: 5rem;
}

#footer_logo {
  text-align: center;
  width: 65%;
  margin: 0 auto;
}

#footer_info p {
  font-size: 2rem;
  text-align: center;
}

#footer_info ul {
  width: fit-content;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 2rem;
}

#footer_info ul li a {
  display: block;
  padding: 0.5em;
  font-size: 3rem;
  text-align: center;
  color: inherit !important;
  text-decoration: none;
}

#footer_info p a {
  color: inherit !important;
  text-decoration: none;
}

/* Scfooter
------------------------- */
#scfooter {
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(2rem);
  position: fixed;
  width: 100%;
  bottom: 0;
  max-width: var(--contentWidth);
  margin-inline: auto;
  padding: 3rem 0 1rem;
  z-index: 100;
}

#scfooter .btn_wrap {
  margin-top: 0;
  padding: 0 5rem;
}

/* =============================================
head
============================================= */
#head {
  text-align: center;
  position: relative;
}

#head h1 {
  width: 100%;
  margin: 0;
}

.header_inner {
  padding: 0 5rem;
  position: absolute;
  width: 100%;
  bottom: 13rem;
}

/*--------------------------------------
zansu
--------------------------------------*/
#tsuika {
  padding: 6rem 0 12rem;
}

.zansu_area {
  background: #ffffff;
  padding-bottom: 0.3rem;
  margin-top: 0;
}

.zansu_area h2 {
  text-align: center;
  font-weight: bold;
}

.zansu_basic_ttl {
  margin-top: 2rem;
  background: var(--blue);
  text-align: center;
  color: #fff;
  padding: 1.5rem 0;
  font-size: 5rem;
  line-height: 1.5;
  font-weight: bold;
}

.zansu_complete_ttl {
  margin-top: 3rem;
  background: var(--red);
  text-align: center;
  color: #fff;
  padding: 1.5rem 0;
  font-size: 5rem;
  line-height: 1.5;
  font-weight: bold;
}

.zansu_short_ttl {
  background: #03284c;
  text-align: center;
  color: #fff;
  padding: 3rem 0;
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.3;
}

.zansu_basic_ttl {
  background: #940f10;
  text-align: center;
  color: #fff;
  padding: 3rem 0;
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.3;
}

.zansu_perfect_ttl {
  background: #0a0a0a;
  text-align: center;
  color: #fff;
  padding: 3rem 0;
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.3;
}

.zansu.zansu_basic {
  border: 3px solid #940f10;
}

.zansu.zansu_short {
  border: 3px solid #03284c;
}

.zansu.zansu_perfect {
  border: 3px solid #0a0a0a;
}

.zansu {
  margin: 0 auto;
  padding: 4rem 2rem 4rem 4rem;
  border: 4px solid var(--blue);
}

.zansu.zansu_basic {
  border-top: none;
  margin-bottom: 4rem;
  border: 3px solid #940f10;
}

.zansu.zansu_short {
  border: 3px solid #03284c;
  border-top: none;
  margin-bottom: 4rem;
}

.zansu.zansu_perfect {
  border: 3px solid #0a0a0a;
  border-top: none;
}

.zansu li {
  padding: 1.8rem 0;
  line-height: 1.2;
  font-size: 3.9rem;
  font-weight: bold;
  background: #fff;
  text-align: left;
  margin: 0 1rem;
}

.zansu li a {
  text-decoration: none;
}

/* 追加開催コースの強調表示 */
.zansu li.zansu-highlight-yellow {
  margin: 1.2rem 3rem 2.5rem 0;
  padding: 1.5rem 2.4rem 2.5rem 4rem;
  background: #fff252;
  border-radius: 0.8rem;
  box-shadow: 0 0.4rem 1rem rgba(120, 80, 0, 0.18);
}

.zansu_notice {
  font-size: 2.5rem;
  text-align: center;
  color: #484848;
  padding-top: 2rem;
}

/* 赤点滅 */
.blinking {
  -webkit-animation: blink 0.5s ease-in-out infinite alternate;
  -moz-animation: blink 0.8s ease-in-out infinite alternate;
  animation: blink 0.8s ease-in-out infinite alternate;
  color: var(--red);
  /* font-size: 100%;*/
  font-weight: bold;
  padding-left: 0.5rem;
}

.sche_zan .blinking {
  color: var(--red);
}

@-webkit-keyframes blink {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@-moz-keyframes blink {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes blink {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/* -----------------------------------------------------------
赤矢印
--------------------------------------------------------------*/
.arrow-double {
  position: relative;
  width: 2.5rem;
  height: 9.5rem;
  margin: 0 auto;
}

.arrow-double::before,
.arrow-double::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 5rem;
  height: 5rem;
  border-right: 0.5rem solid #d7002a;
  border-bottom: 0.5rem solid #d7002a;
  transform: translateX(-50%) rotate(45deg);
}

.arrow-double::before {
  top: 1.8rem;
}

.arrow-double::after {
  top: 0;
}

/* -----------------------------------------------------------
movie-index
--------------------------------------------------------------*/
#movie-index {
  background: #fff;
}

#movie-index .movie-index__title {
  margin: 0 0 4rem;
  text-align: center;
  font-size: 4.5rem;
  font-weight: 700;
  line-height: 1.4;
}

#movie-index .movie-index__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

#movie-index .movie-index__list li {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem 0;
  background: #fff;
  cursor: pointer;
  transition: background 0.2s ease;
}

#movie-index .movie-index__list li.is-active {
  background: #eaf7ff;
}

#movie-index .movie-index__list li:hover {
  background: #eaf7ff;
}

#movie-index .movie-index__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7.5rem;
  min-width: 26rem;
  width: 6rem;
  min-width: 23rem;
  height: 15rem;
  margin-right: 1.5rem;
}

#movie-index .movie-index__time {
  display: inline-block;
  margin-bottom: 1rem;
  color: #00a8ff;
  font-size: 3rem;
  line-height: 1;
  background: #eaf7ff;
  padding: .5rem;
}

#movie-index .movie-index__body p {
  margin: 0;
  color: #111;
  font-size: 3rem;
  line-height: 1.45;
}

.movie-index_box {
  margin-top: 7rem;
  padding: 4rem 3.5rem 3rem;
  border: 2px solid #dbdbdb;
}


/* -----------------------------------------------------------
souki1
--------------------------------------------------------------*/
#souki1 {
  padding: 0;
  background: #000;
}

/* -----------------------------------------------------------
tuika
--------------------------------------------------------------*/
#tuika {
  padding: 0;
  background: #000;
}

/* -----------------------------------------------------------
worry
--------------------------------------------------------------*/
#worry {
  background: #D5D5D5;
  padding-bottom: 0;
}

.slider_area {
  position: relative;
}

.worry_bg {
  width: 100%;
  display: block;
}

/* スライダー本体 */
.slider_wrap {
  position: absolute;
  left: 0;
  top: 80%;
  transform: translateY(-50%);

  width: 100%;
  overflow: hidden;
}

.slider_track {
  display: flex;
  width: max-content;
  animation: sliderLoop 40s linear infinite;
}

.slider_track img {
  height: 32rem;
  width: auto;
  flex-shrink: 0;
}

@keyframes sliderLoop {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

.video iframe {
  margin-bottom: 2rem;
}


/* -----------------------------------------------------------
offer
--------------------------------------------------------------*/
#offer {
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#0b2165+0,00083f+100 */
  background: linear-gradient(to bottom, #0b2165 0%, #00083f 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  padding-top: 8rem;
}

/* -------------------------------------------------------------------
 plan
 * ------------------------------------------------------------------- */
.plan {
  position: relative;
  overflow: hidden;
  background-color: #FDEEAF;
  padding-top: 0;
  padding-bottom: 14rem;
}

.plan__content {
  position: relative;
  padding-top: 18rem;
}

.plan-arrow {
  margin-bottom: 5rem;
}

.plan-extra {
  margin-top: 8rem;
}

/* 上端の▼三角形装飾 */
.plan__triangle {
  width: 100%;
  height: 14rem;
  background: #FCFCF4;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
  top: -2.1rem;
}

/* グループ間の縦余白（plan 内の直接の子要素） */
.plan>* {
  margin-top: 2rem;
}

/* 最初の要素（タイトル画像）は上余白なし */
.plan> :first-child {
  margin-top: 0;
}

/* BEFORE/AFTER ボックスと写真は左右に余白
   （width:100% を解除して余白分を引く） */
.plan .case-block__ba-box,
.plan .case-block__photo {
  width: auto;
  margin-left: var(--side-pad);
  margin-right: var(--side-pad);
}

/* BEFORE/AFTER ボックスに続く写真は隙間なし（同グループ扱い） */
.plan .case-block__ba-box+.case-block__photo {
  margin-top: 0;
}

.case-block__photo {
  margin-bottom: 2rem;
}

/* -------------------------------------------------------------------
case
 * ------------------------------------------------------------------- */
#case {
  background: #02013A url("../img/case_bg.webp") center top / auto repeat;
}

.case-title {
  display: block;
  width: calc(100% + 2rem);
  margin-left: -1rem;
  margin-right: -1rem;
  margin-bottom: 6rem;
}

.case-title-002 {
  padding-top: 5rem;
}

/* 右端まで延ばす画像 + 上余白あり */
.case-block__bleed-r {
  display: block;
  width: calc(100% + 1rem);
  margin-right: -1rem;
  margin-top: 3rem;
}

.case-number {
  width: 75%;
  margin-top: 10rem;
  margin-left: 1rem;
}

#case .case-number1 {
  margin-top: 3rem;
}

/* --- case-block（各ケース外枠） --- */
.case-block {
  position: relative;
  padding: 0;
}

/* 患者カード */
.case-block__card {
  position: relative;
  z-index: 1;
  background: #fff;
  margin-left: 4rem;
  padding: 6rem 4rem 5rem;
}

.case-block__cardB {
  margin-right: 4rem;
}

/* BEFORE / AFTER ラベル */
.case-block__label {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
  margin: 0 0 0.75rem;
  letter-spacing: 0.05em;
  font-family: var(--font-title);
}

.case-block__label--before {
  color: #fff;
  opacity: 0.5;
}

.case-block__label--after {
  color: #fff;
  opacity: 0.5;
}

/* ビフォーアフター本文 */
.case-block__body {
  font-size: 5rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
  margin: 0;
  font-family: var(--font-title);
  letter-spacing: -0.02em;
}

/* BEFORE / AFTER ボックス（ラベル＋本文の統合カード） */
.case-block__ba-box {
  margin: 0;
  padding: 3rem 3rem 3rem;
}

.case-block__ba-box--before {
  background: url("../img/before_bg.webp") center center / cover no-repeat;
}

.case-block__ba-box--after {
  background: url("../img/after_bg.webp") center center / cover no-repeat;
}

.case-block__ba-box .case-block__label {
  font-size: 4rem;
  margin: 0 0 2rem;
}

#case .connect {
  top: -12rem;
  width: 45%;
  left: 27rem;
  position: absolute;
}

/* -------------------------------------------------------------------
 *  more
 * ------------------------------------------------------------------- */
.more {
  position: relative;
  overflow: hidden;
  background: #0626a1;
  padding-bottom: 3rem;
  padding-top: 4rem;
}

.more__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.more__bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.9;
  mix-blend-mode: multiply;
  display: block;
}

.more__bg-overlay {
  position: absolute;
  inset: 0;
  background: #0626a1;
  mix-blend-mode: multiply;
  opacity: 1;
}

.more__title {
  position: relative;
  z-index: 1;
  padding: 3rem 0 0;
}

.more__title img {
  width: 100%;
  height: auto;
  display: block;
  padding: 0 var(--side-pad);
}

.more__card {
  position: relative;
  z-index: 1;
  background: #fff;
  margin: 1.5rem var(--side-pad) 0;
  padding: 0 0 0rem;
  border: 1px solid #6FFF4E;
}

.more__card-header {
  background: #000;
  padding: 0;
  margin-bottom: 0;
}

.more__card-text {
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.3;
  padding: 3rem 4rem;
  margin: 0;
  text-align: center;
  font-family: var(--font-title);
}

.more__card-diseases {
  font-size: 2.7rem;
  color: var(--black);
  line-height: 1.6;
  margin: 3rem;
  text-align: justify;
  font-family: var(--font-sans);
  font-weight: 500;
}

/* 上端の▼三角形装飾 */
.profile__triangle {
  width: 100%;
  height: 3.125rem;
  background: #010630;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
  top: -.4px;
}

.more .notice {
  text-align: center;
}

/* -------------------------------------------------------------------
 * curriculum
 * ------------------------------------------------------------------- */
#curriculum {
  padding: 17rem 0 14rem;
  background-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23c4daf7' fill-opacity='0.4'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* 上端の▼三角形装飾 */
.curriculum__triangle {
  width: 100%;
  height: 10rem;
  background: #030203;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
  top: -.4px;
}

/* -------------------------------------------------------------------
 * reason
 * ------------------------------------------------------------------- */
#reason {
  background: linear-gradient(230deg, #000000 30%, #0b2064 100%);
  color: #fff;
}

/* -------------------------------------------------------------------
 * reason
 * ------------------------------------------------------------------- */
#reason2 {
  padding: 0;
}

/* -------------------------------------------------------------------
 * why
 * ------------------------------------------------------------------- */
#why {
  padding: 0;
}

/* -------------------------------------------------------------------
 * zone
 * ------------------------------------------------------------------- */
#zone {
  padding: 0;
}

/* -------------------------------------------------------------------
 * past
 * ------------------------------------------------------------------- */
#past {
  padding: 0;
}

/* 上端の▼三角形装飾 */
.past__triangle {
  width: 100%;
  height: 11rem;
  background: #000610;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
  top: -.4px;
}

/* -------------------------------------------------------------------
 * trust
 * ------------------------------------------------------------------- */
#trust {
  padding: 0;
}

/* -------------------------------------------------------------------
 * life
 * ------------------------------------------------------------------- */
#life {
  background: #02013A;
  padding-top: 19rem;
}

#life.life_b {
  padding-top: 14rem;
}

/* 各カード画像（タイトル以外）に縦余白＋左右余白を付与 */
#life>img+img,
#life>p {
  margin-top: 6rem;
  margin-left: var(--side-pad);
  margin-right: var(--side-pad);
  width: calc(100% - var(--side-pad) * 2);
}

/* 「その秘密は」テキスト（最後の p 要素は余白を広めに） */
#life>p {
  text-align: center;
  color: #fff;
  font-weight: 700;
  font-size: 2rem;
  font-family: var(--font-title);
  line-height: 1.4;
  letter-spacing: 0.02em;
  margin-top: 2.5rem;
}

#life>img+img,
#life>p {
  margin-top: 2rem;
  margin-left: var(--side-pad);
  margin-right: var(--side-pad);
  width: calc(100% - var(--side-pad) * 2);
}

#life .connect {
  top: -12rem;
  width: 45%;
  left: 27rem;
  position: absolute;
}

.interview_mv {
  position: relative;
}

#life .video {
  position: absolute;
  width: 90%;
  left: 4.5rem;
  top: 81rem;
}


/* -------------------------------------------------------------------
 * basic_gift
 * ------------------------------------------------------------------- */
#basic_gift {
  margin: 0 auto;
  padding: 0 0 10rem;
  background: #000;
  color: #fff;
  font-family: sans-serif;
}

/* -------------------------------------------------------------------
 * basic_gift2
 * ------------------------------------------------------------------- */
#basic_gift2 {
  padding: 0;
}

/* -------------------------------------------------------------------
 * schedule
 * ------------------------------------------------------------------- */
#schedule {
  background-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23c4daf7' fill-opacity='0.4'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.sc-inner {
  width: 100%;
}

/* 
.sc-inner--list {
  padding: 0 5rem;
} */


/* 通常ベーシックカラー */
.basic .sc-item-body {
  background: #FFF1F1;
}

.sc-item.basic {
  border-top: 2px solid #740000;
}

.basic .sc-course-title {
  color: #740000;
}

.basic .sc-sessions {
  border-top: 2px solid #740000;
}

.basic .sc-badge {
  border: 1px solid #740000;
  color: #740000;
}

.basic .sc-venue-label {
  background: #740000;
}

/* 短期集中カラー */
.short .sc-item-body {
  background: #E9F4FF;
}

.sc-item.short {
  border-top: 2px solid #020239;
}

.short .sc-course-title {
  color: #020239;
}

.short .sc-sessions {
  border-top: 2px solid #020239;
}

.short .sc-badge {
  border: 1px solid #020239;
  color: #020239;
}

.short .sc-venue-label {
  background: #020239;
}


/* 超実践パーフェクトカラー */
.perfect .sc-item-body {
  background: #F4F0E3;
}

.sc-item.perfect {
  border-top: 2px solid #3B2500;
}

.perfect .sc-course-title {
  color: #3B2500;
}

.perfect .sc-sessions {
  border-top: 2px solid #3B2500;
}

.perfect .sc-badge {
  border: 1px solid #3B2500;
  color: #3B2500;
}

.perfect .sc-venue-label {
  background: #3B2500;
}

.sc-list {
  display: flex;
  flex-direction: column;
  gap: 8rem;
}

.sc-item {
  border-top: 2px solid var(--blue);
}

.complete.sc-item {
  border-top: 2px solid var(--red);
}

.sc-item-body {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 5rem 6rem 6rem;
}

.sc-course-title {
  margin: 0;
  color: var(--blue);
  font-size: 5.8rem;
  font-weight: 700;
  line-height: 1.4;
}

.sc-course-title.soldout {
  position: relative;
}

.sc-course-title.soldout::after {
  content: "";
  position: absolute;
  background: url(../img/soldout.png);
  background-size: cover;
  top: 0;
  right: 0;
  width: 23rem;
  height: 23rem;
}


.complete .sc-course-title {
  color: var(--red);
}

.sc-sessions {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--blue);
  padding-top: 4rem;
}

.complete .sc-sessions {
  border-top: 2px solid var(--red);
}

.sc-row {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.sc-row .lh_12 {
  line-height: 1.2;
}

.sc-row+.sc-row {
  margin-top: 2rem;
}

.sc-badge {
  flex-shrink: 0;
  border: 1px solid var(--blue);
  border-radius: 0.6rem;
  background: #fff;
  color: var(--blue);
  padding: 0.6rem 3rem;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.072rem;
  white-space: nowrap;
  width: 24.5%;
  text-align: center;

}

.complete .sc-badge {
  border: 1px solid var(--red);
  color: var(--red);
}

.sc-badge--review {
  font-size: 3rem;
  text-align: center;
  padding: 0.6rem 1.9rem;
}

.sc-date {
  font-size: 3.7rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08rem;
}

.sc-venue {
  display: flex;
  flex-direction: column;
  padding-right: 58rem;
  padding-top: 4rem;
}

.sc-venue-label {
  margin: 0;
  width: 100%;
  background: var(--blue);
  color: #fff;
  text-align: center;
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.072rem;
  padding: 0.8rem 0;
}

.complete .sc-venue-label {
  background: var(--red);
}

.sc-address {
  margin: 0;
  color: #111111;
  font-size: 3.6rem;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.072rem;
}

.sc-address-main {
  font-size: 3.6rem;
}

.sc-address-sub {
  font-size: 3.4rem;
}

.sc-address--station {
  font-size: 3.6rem;
}

.sc-detail-note {
  margin: 0;
  color: #8a8a8a;
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 2rem;
  letter-spacing: 0.10624rem;
}

.sc-map {
  width: 100%;
  aspect-ratio: 415 / 234;
  overflow: hidden;
}

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

/* -------------------------------------------------------------------
 * summary
 * ------------------------------------------------------------------- */
#summary {
  padding: 0;
}

.summary-intro-main {
  margin: 0;
  text-align: center;
  color: #111111;
  font-size: 10rem;
  font-weight: 900;
  line-height: 1.4;
  letter-spacing: 0.2rem;
  margin-bottom: 7rem;
}

.summary-flow {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 9rem 0 12rem;
  background: #dae1e6;
  overflow: hidden;
}

.summary-flow-track {
  position: absolute;
  left: 13rem;
  top: 49.472rem;
  width: 536rem;
  height: 7.2rem;
  transform: rotate(90deg);
  transform-origin: 0 0;
  z-index: 1;
}

.summary-flow-track img {
  width: 100%;
  height: 100%;
  display: block;
}

.summary-flow-title-wrap {
  position: relative;
  z-index: 2;
  padding-bottom: 6rem;
}

.summary-flow-title {
  margin: 0;
  padding: 0 8rem;
  text-align: center;
  font-size: 6.8rem;
  font-weight: 900;
  line-height: 1.6;
  letter-spacing: 0.136rem;
}

.summary-flow-title span {
  display: block;
}

.summary-flow-cards {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding-left: 16rem;
  padding-right: 4rem;
}

.summary-card-wrap {
  padding-top: 6rem;
}

.summary-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  border-radius: 3rem;
  background: #ffffff;
  padding: 8rem 6rem;
}

.summary-card-badge {
  position: absolute;
  top: 3.2rem;
  left: -14.9rem;
  width: 17rem;
  height: 17rem;
}

.summary-card-title {
  margin: 0;
  min-width: 100%;
  text-align: center;
  font-size: 6rem;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.12rem;
}

.summary-card-title--grad {
  color: #0b6ce2;
}

.summary-card-title--orange {
  color: #db510b;
}

.summary-card-text {
  margin: 0;
  min-width: 100%;
  color: #111111;
  font-size: 3.4rem;
  line-height: 1.6;
  letter-spacing: 0.068rem;
}

.summary-card-text-group {
  min-width: 100%;
}

.summary-card-text-group p {
  margin: 0;
}

.summary-card-note {
  margin: 0;
  min-width: 100%;
  color: #111111;
  font-size: 2.6rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.068rem;
}

.summary-card-photo {
  width: 100%;
  overflow: hidden;
}

.summary-card-photo--445 {
  aspect-ratio: 750 / 445;
}

.summary-card-photo--500 {
  aspect-ratio: 750 / 500;
}

.summary-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* -------------------------------------------------------------------
 * basic_value
 * ------------------------------------------------------------------- */
#basic_value {
  padding-bottom: 0;
}

#basic_value table {
  width: 100%;
}

#basic_value table td {
  padding: 3rem 1rem;
  border: #d0d0d0 solid 2px;
  display: table-cell;
  vertical-align: middle;
  background: #fff;
  font-size: 2.7rem;
  line-height: 1.3;
}

#basic_value table th {
  color: #fff;
  background: var(--black);
  padding: 3rem;
  border: #d0d0d0 solid 2px;
  font-weight: bold;
  text-align: center;
}

#basic_value table .bg {
  background: #f5f5f5;
}

#basic_value table:nth-of-type(2) th {
  background: var(--red);
}

/* -------------------------------------------------------------------
 * short
 * ------------------------------------------------------------------- */
#short {
  padding: 0;
}

/* 上端の▼三角形装飾 */
.short_triangle {
  width: 100%;
  height: 12rem;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
  top: -0.1rem;
}

/* -------------------------------------------------------------------
 * short_gift
 * ------------------------------------------------------------------- */
#short_gift {
  padding: 0;
}

/* -------------------------------------------------------------------
short_schedule
 * ------------------------------------------------------------------- */
#short_schedule {
  padding-bottom: 0;
}

#short_schedule .sc-inner--list {
  margin-bottom: 12rem
}

/* -------------------------------------------------------------------
 * perfect
 * ------------------------------------------------------------------- */
#perfect {
  padding: 0;
}

/* -------------------------------------------------------------------
 * perfect_gift
 * ------------------------------------------------------------------- */
#perfect_gift {
  padding: 0;
  background: #000;
}

/* 上端の▼三角形装飾 */
.perfect_triangle {
  width: 100%;
  height: 12rem;
  background: #000000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
  top: -0.1rem;
}


/* -------------------------------------------------------------------
 * perfect_chedule
 * ------------------------------------------------------------------- */
#perfect_schedule {
  padding-bottom: 0;
}

#perfect_schedule .sc-inner--list {
  margin-bottom: 12rem;
}

/* -------------------------------------------------------------------
 * comparison
 * ------------------------------------------------------------------- */
#comparison {
  padding-bottom: 0;
}

/* -------------------------------------------------------------------
 * apply
 * ------------------------------------------------------------------- */
#apply {
  padding-top: 0;
  position: relative;
}

#apply .seminar-popup--static {
  margin: 14rem auto 4rem;
}

.apply__triangle {
  width: 100%;
  height: 8rem;
  background: #B60B2B;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  position: absolute;
  z-index: 2;
}

#keyword .apply__triangle {
  top: 29.9rem;
}

#apply .apply__triangle {
  top: 25.8rem;
}

#keyword .apply_ttl {
  margin-bottom: 14rem;
}

.apply_ttl {
  background: var(--red2);
  color: #fff;
  text-align: center;
  padding: 6rem 5rem 4rem;
  margin-bottom: 6rem;
  font-size: 8rem;
  font-weight: 700;
  line-height: 1;
}

.btn_flex {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  align-items: center;
}

.btn_flex .letter_btn {
  margin-top: 0;
}

.btn_flex .btn_wrap {
  width: 49%;
}

.basic_btn {
  background: var(--red);
  box-shadow: rgb(147 7 7) 0px 6px 0px 0px, rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
  padding: 4rem 5rem 4rem 3rem;
  font-size: 5.5rem;
  line-height: 1.1;
  border: 1px solid #fff;

}

.short_btn {
  background: var(--blue);
  box-shadow: rgb(6 24 93) 0px 6px 0px 0px, rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
  padding: 4rem 5rem 4rem 3rem;
  font-size: 5.5rem;
  line-height: 1.1;
  border: 1px solid #fff;
}

.perfect_btn {
  background: var(--black);
  box-shadow: rgb(0, 0, 0) 0px 6px 0px 0px, rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
  padding: 4rem 5rem 4rem 3rem;
  font-size: 5.5rem;
  line-height: 1.1;
  border: 1px solid #fff;
}

.perfect_btn .bg_wht {
  background: var(--gra_gold);
  color: var(--black);
}

.basic_btn .bg_wht {
  color: var(--red);
}

.short_btn .bg_wht {
  color: var(--blue);
}

.perfect_btn .bottom_txt {
  background: var(--gra_gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 4.6rem;
}


.letter_btn.basic_btn::after {
  display: none;
}

.letter_btn.short_btn::after {
  display: none;
}

.letter_btn.perfect_btn::after {
  display: none;
}

.btn_ft .letter_btn {
  margin: 2rem auto 5rem;
}

.btn_ft .letter_btn::before {
  content: "▶";
  position: absolute;
  right: 2rem;
  font-size: 5rem;
  transform: none;
  top: 38%;
}

.btn_flex .btn_wrap:nth-child(1) .btn_ft {
  box-shadow: var(--blue) 0px 7px 0px 0px, rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
}

.red_btn {
  background: #be1222;
  box-shadow: rgb(218 59 59) 0px 7px 0px 0px, rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
  padding: 1rem 5rem 4rem 3rem;
  font-size: 5.5rem;
  line-height: 1.1;
}

.letter_btn.red_btn::after {
  display: none;
}

.letter_btn.red_btn::before {
  content: "▶";
  position: absolute;
  right: 1rem;
  font-size: 4rem;
  transform: none;
  top: 45%;
}

.btn_flex .btn_wrap:nth-child(2) .btn_ft {
  box-shadow: #650d0d 0px 7px 0px 0px, rgba(255, 255, 255, 0.3) 0px 0px 20px 0px inset;
}



/* ======================
     スライダー
  ====================== */
.slider2-wrap {
  position: relative;
  margin-bottom: 14rem;
}

.slider2 {
  display: flex;
  transition: transform 0.4s ease;
  touch-action: pan-y;
  user-select: none;
}

.slide2 {
  width: 100%;
  flex-shrink: 0;
}

.slide2+.slide2 {
  margin-left: 1rem;
}

.slide2 img {
  width: 96%;
  border-radius: 2rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  -webkit-user-drag: none;
}

/* 左右矢印 */
.arrow {
  position: absolute;
  bottom: -18rem;
  transform: translateY(-50%);
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  border: none;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  cursor: pointer;
  z-index: 10;
  transition: 0.3s;
}

.arrow:hover {
  filter: brightness(1.3);
}


/* 矢印本体 */
.arrow::before {
  content: "";
  width: 2.5rem;
  height: 2.5rem;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  display: block;
  transform: rotate(45deg);
}

.arrow.left {
  right: 12rem;
}

.arrow.left::before {
  transform: rotate(-135deg);
  margin-left: 3.5rem;
}

.arrow.right {
  right: 0;
}

.arrow.right::before {
  margin-left: 2rem;
}

/* ======================
モーダル
 ====================== */
.modal {
  display: none;
  position: fixed;
  z-index: 9999;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
  justify-content: center;
  align-items: center;
  padding: 2rem;
}

.modal img {
  max-width: 750px;
  border-radius: 12px;
}

/* 閉じるボタン */
.close {
  position: absolute;
  top: 20px;
  right: 25px;
  color: white;
  font-size: 42px;
  cursor: pointer;
  z-index: 10000;
  line-height: 1;
}









/* =============================================
cash
============================================= */
#cash {
  padding: 0;
}

.cash_box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  margin: 8rem 5rem 12rem;
}

.cash_box a {
  width: 47%;
  transition: 0.3s;
  clip-path: circle(50%);
}

.cash_box a:hover {
  transform: scale(1.07);
}

/* =============================================
cash 上段
============================================= */
#cash_b {
  background: #fff;
  color: #333;
  padding-bottom: 3rem;
  padding-top: 11rem;
}

#cash_b .sub_head {
  margin-bottom: 6rem;
  font-size: 8rem;
}

#cash_b .cash_lead {
  text-align: center;
  line-height: 1.8;
  margin-bottom: 4rem;
}

#cash_b .cash_lead .b {
  font-weight: bold;
}

#cash_b .cash_box {
  display: flex;
  justify-content: space-between;
  margin: 4rem 8rem;
}

#cash_b .cash_box a {
  width: 47%;
  text-align: center;
  text-decoration: none;
  color: #333;
  transition: 0.3s;
  clip-path: circle(50%);
}

.cash_box a:hover {
  transform: scale(1.07);
}

#cash_b .cash_box img {
  width: 100%;
  border-radius: 50%;
  display: block;
  margin-bottom: 1.6rem;
}

#cash_b .cash_box span {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.3;
}

#cash_b .cash_subtitle {
  text-align: center;
  font-size: 5.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

#cash_b .cash_triangle {
  width: 0;
  height: 0;
  border-left: 4rem solid transparent;
  border-right: 4rem solid transparent;
  border-top: 5rem solid #14a39a;
  margin: 0 auto 3rem;
}

#cash_b .cash_table {
  border: 0.1rem solid #ddd;
}

#cash_b .cash_row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

#cash_b .cash_row div {
  min-height: 12rem;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 3.3rem;
  text-align: center;
  border-right: 0.1rem solid #ffffff;
  border-bottom: 0.1rem solid #ffffff;
  background: #dceaea;
  font-weight: bold;
  line-height: 1.3;
}

#cash_b .cash_head div {
  background: #14a39a;
  color: #fff;
  font-size: 3.7rem;
}

#ccash_b .cash_head div:first-child {
  background: #555 !important;
}

.cash_method:nth-child(5) {
  padding-left: 4rem;
}

#cash_b .cash_method {
  color: #14a39a;
  font-size: 4.2rem;
}

#cash_b .cash_note {
  font-size: 2.5rem;
  text-align: center;
  margin-top: 4rem;
}

.asterisk {
  font-size: 2.5rem;
  line-height: 0;
  color: var(--black);
  padding-left: .5rem;
  margin-bottom: 1rem;
}

#cash_b .li_gap {
  display: block;
  height: 3.5rem;
}

/* =============================================
cash2 下段（背景切替を活かす）
============================================= */
#cash2 {
  background: #eef7f6;
  padding: 20rem 0 1rem;
  line-height: 1.8;
  color: #333;
}

#cash2::before {
  content: "";
  width: 100%;
  height: 14rem;
  background: #fff;
  position: absolute;
  display: inline-block;
  top: -0.1rem;
  left: 0;
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

#cash2 .cash_box2,
#cash2 .cash_detail_box {
  background: #fff;
  padding: 5rem;
  margin-bottom: 9rem;
  box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.05);
}

#cash2 .cash_box_title {
  background: #14a39a;
  color: #fff;
  text-align: center;
  font-size: 4.5rem;
  padding: 1.5rem 2.5rem;
  font-weight: bold;

}

#cash2 .cash_box_image {
  display: block;
  margin: 0 auto 4.5rem;
  width: 77%;
}

#cash2 .cash_text {
  margin-bottom: 4rem;
}

#cash2 .cash_mini_title {
  color: #14a39a;
  margin-bottom: 4rem;
  border-bottom: 0.1rem solid #14a39a;
  padding-bottom: 1rem;
  font-weight: bold;
  font-size: 4.3rem;
  margin-top: 8rem;
}

#cash2 .cash_card_brands {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 2rem;
}

#cash2 .cash_caution {
  background: #f3f3f3;
  border-radius: 3rem;
  padding: 2rem 3rem 3rem 7.5rem;
}

#cash2 .cash_caution_title {
  text-align: center;
  font-size: 4.5rem;
  font-weight: 700;
  margin-bottom: 2rem;
  margin-right: 3rem;
}

#cash2 .cash_caution li {
  font-size: 3.2rem;
  line-height: 1.8;
  margin-bottom: 4rem;
}

#cash2 .cash_caution li:last-child {
  margin-bottom: 0;
}

.cash_caution ul {
  list-style: disc;
}

.cash_badges {
  margin-bottom: 2rem;
}

.cash_badge.single {
  color: #1da7d6;
  background: #daf4ff;
  border-radius: 10rem;
  font-size: 2.7rem;
  padding: .5rem 2.5rem;
  font-weight: bold;
}

.cash_badge.split {
  color: #ff558b;
  background: #ffe6ed;
  border-radius: 10rem;
  font-size: 2.7rem;
  padding: .5rem 2.5rem;
  font-weight: bold;
}

#cash2 .li_gap {
  display: block;
  height: 2rem;
}

#cash2 .gap {
  display: block;
  height: 3.5rem;
}

/* =============================================
step
============================================= */
#step {
  padding: 0;
  background: #FFF1CC;
}

/* =============================================
step_new
============================================= */
:root {
  --step_red: #E12B52;
  --step_blue: #2590d0;
}

.step_red {
  color: var(--step_red);
}

.step_blue {
  color: var(--step_blue);
}

#step_new {
  padding: 8rem 0 14rem;
  background: #FFF1CC;
}

#step_new .sub_head {
  font-size: 11rem;
  line-height: 1.2;
  margin-bottom: 10rem;
}

.step_box_wrap {
  background: #fff;
  border-radius: 4rem;
  padding: 3rem 5rem 0;
  position: relative;
}

.step_box_num {
  color: #adadad;
  font-size: 5rem;
  font-weight: 700;
  position: absolute;
  top: -8rem;
}

.step_box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

.step_box_txt {
  width: 65%;
  font-size: 5rem;
  font-weight: 700;
  line-height: 1.4;
}

.step_box img {
  width: 30%;
}

.arrow_w {
  display: inline-block;
  border-style: solid;
  border-width: 20px 15px 0 15px;
  border-color: #fff transparent transparent transparent;
  margin: 3rem auto 1rem;
}

.step_badge {
  position: absolute;
  top: -3rem;
  right: 30rem;
  display: inline-block;
  background: #fff26b;
  color: var(--step_red);
  font-weight: bold;
  text-align: center;
  padding: 4rem 0px;
  border-radius: 50%;
  width: 18rem;
  height: 18rem;
  line-height: 1.4;
  font-size: 4rem;
}

/* 吹き出しのトゲ（右上寄り） */
.step_badge::after {
  content: "";
  position: absolute;
  bottom: 0;
  right: -1rem;
  transform: rotate(45deg);
  width: 0;
  height: 0;
  border-left: 25px solid #fff26b;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
}


/* =============================================
flow
============================================= */
#flow {
  padding: 0;
}

/* =============================================
flow_new
============================================= */
#flow_new {
  background: #FFF0F1;
  padding: 8rem 0 14rem;
}

#flow_new .sub_head {
  font-size: 9rem;
  line-height: 1.3;
  margin-bottom: 6rem;
}

.flow_box {
  padding: 4rem 5rem;
  background: #fff;
  border-radius: 2rem;
  font-size: 3.5rem;
}

.flow_box+.flow_box {
  margin-top: 6rem;
}

.flow_box_num {
  color: var(--red);
  font-size: 5.5rem;
  font-weight: 700;
}

.flow_box_ttl {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 4rem;
}

#flow_new .cta_btn {
  background: #ffa3a9;
  color: var(--black);
  border: 1px solid var(--black);
  border: none;
}

#flow_new .cta_btn:after {
  color: var(--black);
}


#flow_new .cta_btn.opened {
  background: #aeaeae;
}

.caution_box {
  background: #FFF0F1;
  padding: 4rem 5rem;
  margin-top: 6rem;
}

.caution_box_ttl {
  font-size: 4.5rem;
  font-weight: 700;
  position: relative;
  padding-left: 9rem;
  margin-bottom: 1rem;
}

.caution_box_ttl::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 7rem;
  height: 7rem;
  background: var(--red);
  border-radius: 50%;
}

.caution_box_ttl::after {
  content: "！";
  position: absolute;
  color: #fff;
  font-weight: 700;
  top: -.3rem;
  left: 1.3rem;
}


/* =============================================
qa
============================================= */
#qa {
  padding: 10rem 0;
}

/* =============================================
movie
============================================= */
#movie {
  background: #fff;
  padding: 10rem 0 12rem;
}

.movie_kicker {
  margin: 0 0 2rem;
  font-size: 3.2rem;
  line-height: 1.4;
  background: #111;
  color: var(--yellow);
  padding: 1.2rem 2rem;
  display: inline-block;
}

.movie_head {
  margin: 0 0 5rem;
  font-size: 6.5rem;
  line-height: 1.15;
  color: #111;
}

.movie_video {
  background: #1b1f2a;
  border-radius: 0.8rem;
  overflow: hidden;
  box-shadow: 0 1.4rem 3rem rgba(0, 0, 0, 0.22);
}

.movie_video_link {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  position: relative;
  text-decoration: none;
}

.movie_play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 14rem;
  height: 14rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
}

.movie_play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-top: 2.6rem solid transparent;
  border-bottom: 2.6rem solid transparent;
  border-left: 4.2rem solid #0f1220;
}

.movie_box {
  margin-top: 5rem;
  background: #fff;
  border: 0.2rem solid #d9d9d9;
  border-radius: 0.8rem;
  overflow: hidden;
}

.movie_box_ttl {
  margin: 0;
  text-align: center;
  padding: 2rem 2rem;
  font-size: 3.4rem;
  color: #111;
  background: #fff;
}

.movie_list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 0.2rem solid #e7e7e7;
}

.movie_item {
  display: grid;
  grid-template-columns: 11rem 9rem 1fr;
  align-items: center;
  gap: 1.8rem;
  padding: 2.2rem 2rem;
  background: #f6fbff;
  border-top: 0.2rem solid #e7e7e7;
}

.movie_item:nth-child(odd) {
  background: #eef6ff;
}

.movie_badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 7.2rem;
  border-radius: 1rem;
  background: #252b3a;
  color: #fff;
  font-size: 2.8rem;
  font-weight: 700;
}

.movie_time {
  color: #1d83d1;
  font-size: 2.8rem;
  font-weight: 700;
}

.movie_txt {
  color: #111;
  font-size: 3.2rem;
  line-height: 1.35;
  font-weight: 500;
}

.movie_arrow {
  margin: 7rem auto 4rem;
  width: 12rem;
  height: 8rem;
  position: relative;
}

.movie_arrow::before,
.movie_arrow::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 5rem;
  height: 5rem;
  border-right: 0.9rem solid var(--red);
  border-bottom: 0.9rem solid var(--red);
}

.movie_arrow::before {
  top: 0;
}

.movie_arrow::after {
  top: 2.4rem;
}

.movie_btn {
  border-radius: 10rem;
  padding: 4rem 7rem 4rem 4rem;
}

.movie_btn::after {
  content: "▼";
  right: 3.6rem;
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: auto;
  background: none;
  font-size: 4rem;
}

/* キャンペーン終了オーバーレイ */
.campaign-overlay {
  position: absolute;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  width: 85rem;
  height: 13rem;
  background-color: rgba(128, 128, 128, 0.7);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 5rem;
  font-weight: bold;
  z-index: 10;
  cursor: context-menu;
}

#scfooter .campaign-overlay {
  pointer-events: none;
}

.btn_flex .campaign-overlay {
  width: 42rem;
  height: 37rem;
}


/* =============================================
よくある質問　強化ver
============================================= */
.cp_qa05 {
  margin: 0 auto;
  background: #fff;
}

.cp_qa05 input {
  display: none;
}

/* タブ */
.cp_qa05 #cp_content1,
.cp_qa05 #cp_content2,
.cp_qa05 #cp_content3,
.cp_qa05 #cp_content4 {
  display: none;
  padding: 1rem 0 0;
}

.cp_qa05 #cp_conttab1:checked~#cp_content1,
.cp_qa05 #cp_conttab2:checked~#cp_content2,
.cp_qa05 #cp_conttab3:checked~#cp_content3,
.cp_qa05 #cp_conttab4:checked~#cp_content4 {
  display: block;
}

/* ===== FAQ custom ===== */
.cp_qa05.faq_lp_custom {
  max-width: 100%;
}

/* カテゴリー誘導 */
.faq_category_lead {
  font-size: 3.5rem;
  text-align: center;
  margin: 0 0 12px;
  padding-left: 4px;
}

/* カテゴリボタン */
.cp_qa05.faq_lp_custom label.cp_tabitem {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 47.5%;
  min-height: 64px;
  margin: 1.5% 1%;
  padding: 2rem 1rem;
  border-radius: 10rem;
  background: #edf5ef;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.05);
  border: 1px solid #dcebdd;
  transition: all .25s ease;
}

.cp_qa05.faq_lp_custom.compact_version label.cp_tabitem {
  min-height: 13rem;
}

/* hover */
.cp_qa05.faq_lp_custom label.cp_tabitem:hover {
  transform: translateY(-2px);
}

/* active */
.cp_qa05.faq_lp_custom input:checked+label {
  background: #a3d1ca;
  border: 1px solid #b8d4bd;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.06);
}

.cp_qa05.faq_lp_custom .cp_qain {
  margin-top: 12px;
}

.cp_qa05.faq_lp_custom .cp_qa_card {
  background: #edf5ef;
  border-radius: 2rem;
  padding: 2.5rem 2rem 2rem;
  margin-bottom: 6rem;
}

/* 質問 */
.cp_qa05.faq_lp_custom .cp_q {
  position: relative;
  padding-left: 2em;
  font-size: 3.5rem;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 2rem;
  /* color: #22a18e; */
}

.cp_qa05.faq_lp_custom .cp_q::before {
  content: "Q";
  position: absolute;
  left: 0.5rem;
  top: .2rem;
  width: 2em;
  height: 2em;
  border-radius: 50%;
  background: #22a18e;
  color: #fff;
  font-size: 2.3rem;
  font-size: 2.5rem;
  text-align: center;
  font-weight: 700;
  line-height: 1.8;
}

/* 回答 */
.cp_qa05.faq_lp_custom .cp_a {
  position: relative;
  font-size: 3.2rem;
  line-height: 1.7;
  padding: 2rem 2rem 2rem 5.5rem;
  background: #fff;
}

.cp_qa05.faq_lp_custom .cp_a::before {
  content: "A";
  position: absolute;
  left: 0.5rem;
  top: 1.7rem;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  background: #fff;
  color: #22a18e;
  font-size: 4rem;
  line-height: 1.4;
  text-align: center;
  font-weight: bold;
}

.faq_lp_custom h3 {
  border-left: 6px solid #22a18e;
  color: #22a18e;
  padding-left: 2rem;
  font-weight: bold;
  margin-top: 7rem;
  margin-bottom: 5rem;
  font-size: 4.2rem;
}

/* スマホ */
@media screen and (max-width: 480px) {
  .cp_qa05.faq_lp_custom label.cp_tabitem {
    font-size: 3rem;
  }

  .cp_qa05.faq_lp_custom .cp_qa_card {
    padding: 3rem 2rem;
  }

  .cp_qa05.faq_lp_custom.compact_version .cp_qa_card {
    padding: 3rem 2rem 2rem;
  }

  .cp_qa05.faq_lp_custom .cp_q {
    font-size: 14px;
  }

  .cp_qa05.faq_lp_custom .cp_a {
    font-size: 13px;
  }

}


/* ===== compact FAQ ===== */
.faq_more_toggle {
  display: none;
}

/* ラッパーは制限しない */
.cp_a_wrap {
  overflow: hidden;
}

/* 回答本文を2行だけ見せる */
.cp_a_wrap .cp_a {
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 開いたら全文 */
.faq_more_toggle:checked~.cp_a_wrap .cp_a {
  display: block;
}

/* 続きを読む */
.faq_more_btn {
  display: block;
  width: fit-content;
  margin: 2rem auto 0;
  padding: 1rem;
  font-size: 3rem;
  color: #22a18e;
  font-weight: 700;
  cursor: pointer;
  text-align: center;
  transition: ease 0.3s;
}

.faq_more_btn::after {
  content: "続きを読む";
}

.faq_more_toggle:checked~.faq_more_btn::after {
  content: "閉じる";
}

.faq_more_btn:hover {
  filter: brightness(1.3);
}

.pc {
  display: block;
}

.sp {
  display: none;
}

/* スマホ */
@media screen and (max-width: 480px) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }
}

/* ===== リアルタイム閲覧数 ===== */
/* 共通デザイン */
.seminar-popup {
  background: #444444e7;
  color: #fff;
  padding: 2.5rem 7rem;
  border-radius: 2rem;
  font-size: 3.5rem;
  width: 90rem;
}

/* フローティング表示 */
.seminar-popup {
  position: fixed;
  bottom: 2rem;
  opacity: 0;
  pointer-events: none;
  z-index: 9999;
  transition:
    opacity 1.4s ease,
    bottom 1.2s cubic-bezier(0.22, 1, 0.36, 1);
  margin: 0;
}

/* ボタン表示後の位置（上にスライド） */
.seminar-popup.is-shifted {
  bottom: 23rem;
  /* ボタン高さ + 余白に合わせて調整 */
}

/* ×ボタン */
.popup-close {
  position: absolute;
  top: 1.2rem;
  right: 1.6rem;
  background: none;
  border: none;
  color: #fff;
  font-size: 3.2rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0.7;
  pointer-events: auto;
  padding: 1rem;
}

.popup-close:hover {
  opacity: 1;
}

/* ページ内固定表示 */
.seminar-popup--static {
  position: static;
  margin: 3rem auto 3rem;
  max-width: 100%;
  text-align: center;
  opacity: 1;
  pointer-events: auto;
  transform: none;
  padding: 2.5rem 5rem;
}

#sc .seminar-popup--static {
  margin: 0 0 6rem;
  padding: 2.5rem 0rem;
}

/* 数字だけをやさしく点滅させる */
.seminar-count {
  display: inline-block;
  animation: countBlink 2s ease-in-out infinite;
}

.seminar-popup-text {
  display: inline-block;
  animation: popupTextBlink 2s ease-in-out infinite;
}

@keyframes popupTextBlink {
  0% {
    opacity: 1;
  }

  50% {
    opacity: 0.4;
  }

  100% {
    opacity: 1;
  }
}

/* 赤点滅 */
.seminar-popup-text {
  -webkit-animation: blink 0.8s ease-in-out infinite alternate;
  -moz-animation: blink 0.8s ease-in-out infinite alternate;
  animation: blink 0.8s ease-in-out infinite alternate;
}

@-webkit-keyframes blink {
  0% {
    opacity: 0.2;
  }

  70% {
    opacity: 1;
  }
}

@-moz-keyframes blink {
  0% {
    opacity: 0.2;
  }

  70% {
    opacity: 1;
  }
}

@keyframes blink {
  0% {
    opacity: 0.2;
  }

  70% {
    opacity: 1;
  }
}

/* 追加 */
.zansu .tuika {
  font-size: 3rem;
  background-color: #8c1d2d;
  width: fit-content;
  padding: 1rem 1.5rem;
  color: #fff;
  margin: 2rem 1rem 0;
  border-radius: 1rem;
}

.course_ttl_tuika {
  background: #fff;
  padding: 2rem 5rem;
  font-size: 7rem;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  color: #740000;
  border: 2px solid #740000;
}

#short_schedule .course_ttl_tuika {
  background: #fff;
  padding: 2rem 5rem;
  font-size: 7rem;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  color: #020239;
  border: 2px solid #020239;
}

.is-closed {
  position: relative;
  opacity: 0.7;
  overflow: hidden;
  /* はみ出し防止 */
}

.is-closed a {
  pointer-events: none;
}

.is-closed::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}

.is-closed::before {
  content: "満員御礼";
  position: absolute;

  /* ★ここ修正 */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);

  background: #000;
  color: #fff;

  font-size: clamp(20px, 3.5vw, 48px);
  padding: clamp(10px, 2vw, 24px) clamp(16px, 3vw, 40px);

  z-index: 10;
  white-space: nowrap;
  font-weight: bold;
}

@media (max-width: 480px) {
  .is-closed::before {
    font-size: 6vw;
    padding: 3vw 4vw;
  }
}

.time-show {
  display: none;
}

.time-show.is-visible {
  display: block;
}

.time-limit {
  margin-bottom: 6rem;
}



/* =============================================
キーワード入力
============================================= */

.summary-keyword-form .campaign-overlay {
  top: 0;
  left: 0;
  width: 100%;
  height: 34rem;
}

.summary-keyword-form {
  width: 92%;
  margin: 0 auto;
}

.summary-keyword-arrow-wrap {
  padding: 3rem 0;
}

.summary-keyword-arrow {
  height: 11rem;
  position: relative;
}

.summary-keyword-arrow img {
  position: absolute;
  left: 50%;
  top: -2rem;
  width: 48rem;
  height: 13rem;
  transform: translateX(-50%) rotate(180deg);
}

.summary-keyword-copy-wrap {
  text-align: center;
}

.summary-keyword-copy {
  margin: 0;
  color: #111111;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.096rem;
}

.summary-keyword-copy--basic {
  font-weight: 400;
}

.summary-keyword-red {
  color: #8c1d2d;
}

.summary-keyword-xl {
  font-size: 6.5rem;
  line-height: 1.3;
}

.summary-keyword-input-wrap {
  padding: 3rem 0;
}

.summary-keyword-input-box {
  border: 0.2rem solid #111111;
  border-radius: 1rem;
  background: #ffffff;
  padding: 0 3rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.summary-keyword-input-box.is-error {
  border-color: #d93025;
  border-width: 0.6rem;
  box-shadow: 0 0 0 1rem rgba(217, 48, 37, 0.2);
}

.summary-keyword-input-box.is-success {
  border-color: #2f9e44;
  border-width: 0.6rem;
  box-shadow: 0 0 0 1rem rgba(47, 158, 68, 0.2);
}

.summary-keyword-input {
  display: block;
  width: 100%;
  margin: 0;
  padding: 4rem 0;
  border: none;
  background: transparent;
  color: #111111;
  font-family: inherit;
  font-size: 3.4rem;
  line-height: 1.7;
  letter-spacing: 0.088rem;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.summary-keyword-input::placeholder {
  color: #8c8c8c;
  opacity: 1;
}

.summary-keyword-submit-wrap {
  padding: 0 0 5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.summary-keyword-submit-wrap:hover {
  filter: brightness(1.3);
}

.summary-keyword-submit {
  position: relative;
  width: 100%;
  max-width: 100%;
  padding: 4rem 10rem 4rem 22rem;
  border: none;
  border-radius: 2rem;
  background: var(--blue);
  box-shadow: 0 1.4rem 0 var(--blue2);
  display: flex;
  align-items: center;
  color: #ffffff;
  text-decoration: none;
  font-family: "Noto Sans JP", sans-serif;
  cursor: pointer;
}

.summary-keyword-submit-text {
  display: block;
  color: #ffffff;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4.8rem;
  font-weight: 700;
  line-height: 6.4rem;
  letter-spacing: 0.24rem;
}

.summary-keyword-submit-arrow {
  position: absolute;
  right: 6rem;
  top: 6rem;
  width: 3.2818rem;
  height: 2.0818rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  overflow: visible;
}

.summary-keyword-submit-arrow-rotate {
  display: block;
  width: 0;
  height: 0;
  transform: rotate(0deg);
  transform-origin: 0 0;
}

.summary-keyword-submit-arrow-shape {
  display: block;
  position: relative;
  width: 2.0818rem;
  height: 3.2818rem;
}

.summary-keyword-submit-arrow-image {
  display: block;
  position: absolute;
  top: -12.93%;
  right: -20.38%;
  bottom: -12.93%;
  left: 0;
}

.summary-keyword-submit-arrow-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: fill;
}

.summary-keyword-status {
  margin: 1rem 0;
  color: #111111;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08rem;
  min-height: 1.5em;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.summary-keyword-status.is-visible {
  opacity: 1;
}

.summary-keyword-status.is-error {
  color: #d93025;
}

.summary-keyword-status.is-success {
  color: #2f9e44;
}

.summary-keyword-hint-wrap {
  text-align: center;
}

.summary-keyword-hint {
  margin: 0;
  color: #111111;
  font-size: 4.6rem;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.096rem;
  margin-bottom: 4rem;
  margin-top: 6rem;
}

.summary-bottom {
  padding-top: 0;
}