@charset "UTF-8";
/* リセットCSS
===================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  padding: 0;
  margin: 0;
}

body {
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  line-height: 1.6;
  font-weight: 500;
  background: #fff;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, button, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

li, dd {
  list-style-type: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th, td {
  font-weight: normal;
  text-align: left;
  vertical-align: middle;
}

q, blockquote {
  quotes: none;
}

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
  width: 100%;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
}
@media (hover: hover) {
  a:hover {
    opacity: 0.7;
  }
}

/*------------------------------
common
------------------------------*/
body {
  color: #272564;
  font-family: "Noto Sans JP", sans-serif;
  line-height: normal;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}
@media (min-width: 768px) {
  html {
    font-size: 43.75%;
  }
}

/* スマホ用の表示の時はis-pcは非表示 */
@media (max-width: 767px) {
  .pc {
    display: none !important;
  }
}
/* PC用の表示の時はis-spは非表示 */
@media (min-width: 768px) {
  .sp {
    display: none !important;
  }
}
/*------------------------------
コンテンツ幅
------------------------------*/
.inner {
  width: 750px;
  max-width: 100%;
  margin: 0 auto;
  padding: 0 min(2.1%, 16px);
}

.u-with--full {
  padding: 0;
}

/*------------------------------
テキスト共通
------------------------------*/
.u-text--bold {
  font-weight: 700;
}

.u-text--blue {
  background: linear-gradient(90deg, #32B9D8 0%, #34D6C3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 700;
}

.u-text--white {
  color: #fff;
}

.u-text--highlight {
  background: linear-gradient(transparent 60%, rgba(255, 206, 0, 0.4) 60%);
}

.c-heading {
  font-size: min(5.6rem, 7.4666666667vw);
  font-weight: 700;
  color: #272564;
  text-align: center;
}
.c-heading p {
  display: inline-block;
  font-size: min(4rem, 5.3333333333vw);
  position: relative;
  text-align: center;
  padding: 0 1.5em;
}
.c-heading p::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: url(../images/img_01.png) no-repeat center center/contain;
  width: 1em;
  aspect-ratio: 43/70;
}
.c-heading p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%) scale(-1, 1);
  background: url(../images/img_01.png) no-repeat center center/contain;
  width: 1em;
  aspect-ratio: 43/70;
}
.c-heading em {
  font-size: min(5rem, 6.6666666667vw);
}
@media (min-width: 768px) {
  .c-heading span {
    display: block;
  }
}

/*------------------------------
余白共通
------------------------------*/
.u-ptb-120 {
  padding: min(120px, 16vw) 0;
}

/*------------------------------
Lesson共通
------------------------------*/
.c-lesson__info-text {
  text-align: center;
  font-size: min(4rem, 5.3333333333vw);
}
.c-lesson__info-text img {
  display: block;
  width: 43.6%;
  margin: 0 auto;
}

.c-lesson__info-image {
  text-align: center;
  margin-top: min(57px, 7.6vw);
}
.c-lesson__info-image img {
  width: 71%;
}

/*------------------------------
fv
------------------------------*/
.fv {
  margin-bottom: min(120px, 16vw);
}
@media (min-width: 768px) {
  .fv {
    margin-bottom: 70px;
  }
}

/*------------------------------
cta
------------------------------*/
.cta {
  text-align: center;
}
.cta img {
  width: min(640px, 85.3333333333vw);
}
@media (min-width: 768px) {
  .cta img {
    width: 320px;
  }
}
.cta__content {
  margin-top: min(20px, 10.6666666667vw);
}
.cta__content p {
  font-size: min(3.2rem, 4.2666666667vw);
  padding: 0 1em;
}

.cta__button {
  margin-top: 0;
}
.cta__button a {
  display: inline-block;
  width: 700px;
  max-width: 100%;
  background: #D31F40;
  border-radius: 60px;
  font-size: min(3.5rem, 4.1333333333vw) ;
  font-weight: 700 ;
  padding: 1em 0 ;
  color: #fff;
  text-align: center;
}
.cta__button a::after {
  display: inline-block;
  content: "";
  position: relative;
  background: url(../images/icon_arrow.png) no-repeat center center/contain;
  width: 0.4em;
  aspect-ratio: 18/25;
  margin-left: 0.78em;
  vertical-align: middle;
}
@media (min-width: 768px) {
  .cta__button a {
    width: 550px;
  }
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.asumeru-embed {
  width: 100% !important;
  max-width: 550px !important;
  margin: 10px auto 0 !important;
  padding: 0 15px !important;
}

.asumeru-embed .formTable {
  width: 100% !important;
  border: none !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

.asumeru-embed .formTable th,
.asumeru-embed .formTable td {
  display: block !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

.asumeru-embed .formTable th label {
  display: block !important;
  margin-bottom: 10px !important;
  font-weight: 700 !important;
}

.asumeru-input {
  width: 100% !important;
  height: 50px !important;
  box-sizing: border-box !important;
  padding: 0 14px !important;
  border-radius: 6px !important;
  border: 1px solid #ddd !important;
  background: #f5f5f5 !important;
  font-size: 16px !important;
}

.asumeru-input::placeholder {
  color: #9a9a9a !important;
}

.asumeru-actions {
  margin-top: 30px !important;
  margin-bottom: 40px !important;
  text-align: center !important;
}

.asumeru-submit {
  display: inline-block !important;
  width: 100% !important;
  max-width: 700px !important;
  background: #D31F40 !important;
  border-radius: 60px !important;
  font-size: min(3.5rem, 4.1333333333vw) !important;
  font-weight: 700 !important;
  padding: 1em 0 !important;
  color: #fff !important;
  text-align: center !important;
  border: none !important;
  cursor: pointer !important;
}

.asumeru-submit::after {
  display: inline-block !important;
  content: "" !important;
  position: relative !important;
  background: url(../images/icon_arrow.png) no-repeat center center/contain !important;
  width: 0.4em !important;
  aspect-ratio: 18/25 !important;
  margin-left: 0.78em !important;
  vertical-align: middle !important;
}

@media (min-width: 768px) {
  .asumeru-submit {
    width: 550px !important;
  }
}

.cta .inner img + #asumeru-form {
  display: block !important;
}





/*------------------------------
mv
------------------------------*/
.mv {
  padding-bottom: min(60px, 8vw);
}
@media (min-width: 768px) {
  .mv {
    padding-bottom: 40px;
  }
}

.mv__top {
  background: linear-gradient(90deg, #32B9D8 0%, #34D6C3 100%);
  padding: min(30px, 2.3333333333vw) 0 min(30px, 5.3333333333vw);
  text-align: center;
  position: relative;
}
.mv__top img {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(570px, 76vw);
}

.mv__heading {
  font-size: min(3.6rem, 5vw);
  font-weight: 700;
  text-align: center;
}
.mv__heading strong {
  display: block;
  font-size: min(6.4rem, 8.5333333333vw);
  margin-top: 0.2em;
}
.mv__heading--bg {
  display: inline-block;
  background: #fff;
}

.mv__image {
  margin-top: max(-78px, -10.4vw);
  position: relative;
}
.mv__image img {
  display: block;
  width: 88%;
  margin-left: auto;
}

.mv__content {
  margin-top: min(20px, 10.6666666667vw) ;
  text-align: center;
}
.mv__content p {
  font-size: min(3.2rem, 4.2666666667vw);
  padding: 0 1em;
}
.mv__content img {
  margin: min(80px, 10.6666666667vw) 0;
}

.mv-bottom {
  padding: min(20px, 13.3333333333vw) 0 min(40px, 14.6666666667vw);
}

.mv-annotation {
  font-size: min(4rem, 8.5333333333vw);
  padding: min(20px, 13.3333333333vw) 0 min(20px, 14.6666666667vw);
  text-align: center;
}

.video-wrapper {
  position: relative;
  width: 100%;
  max-width: 960px;
  padding-top: 56.25%; /* 16:9 Aspect Ratio */
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  margin: 0 auto;
}

.video-wrapper video,
.video-wrapper .vimeo-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.vimeo-container {
  display: none; /* 初期状態ではVimeo動画を非表示 */
  position: relative;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.vimeo-container::before {
  content: "";
  display: block;
  padding-top: 56.25%;
}

.vimeo-container > iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.video__starttext {
  font-size: min(3.2rem, 4.2666666667vw);
}

.volume-control {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 16px 24px;
  background-color: rgba(0, 0, 0, 0.6);
  color: white;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  font-size: 28px;
  font-weight: bold;
  pointer-events: none; /* クリックイベントを背後の要素に通過させる */
  transition: opacity 0.3s ease;
  z-index: 10;
}

.icon-speaker {
  position: relative;
  height: 25px !important;
  width: auto !important;
  margin: 0 !important;
}


/*------------------------------
learn
------------------------------*/
.learn {
  background: #D7F0FD;
  padding: min(60px, 10vw) 0 min(80px, 12vw);
}
@media (min-width: 768px) {
  .learn {
    padding: 80px 0;
  }
}

.learn-heading {
  font-size: min(6rem, 7.3333333333vw);
  font-weight: 700;
  text-align: center;
}

.learn__list {
  width: fit-content;
  margin: min(50px, calc(100vw * (50 / 750))) auto;
}

.learn__list li {
  font-size: min(3.2rem, calc(100vw * (32 / 750)));
  font-weight: 500;
  text-align: left;
  padding-left: 1.56em;
  position: relative;
}

.learn__list li::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  background: url(../images/icon_check.png) no-repeat center center / contain;
  width: 1.25em;
  aspect-ratio: 40/40;
}

.learn__list li:nth-child(n + 2) {
  margin-top: 1.25em;
}


.learn__item-num {
  display: inline-block;
  background: #32B9D8;
  position: absolute;
  top: 1%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: min(5rem, 6.6666666667vw);
  font-weight: 600;
  padding: 0 0.4em;
  color: #fff;
  font-family: "Roboto", sans-serif;
  line-height: 1.4;
}


/*------------------------------
recommend
------------------------------*/
.recommend__inner {
  padding: 0 min(5%, 37.2px);
  padding-top: min(50px, 13.3333333333vw);
  background: url(../images/bg_01.png) no-repeat center max(-45vw, -335px)/cover;
}

.recommend__heading {
  font-size: min(6rem, 7.3333333333vw);
  font-weight: 700;
  color: #32B9D8;
  padding: 0.9em 0 1.3em;
  line-height: 1.3;
  border-top: 2px solid #32B9D8;
  position: relative;
  font-feature-settings: "palt";
  text-align: center;
}
.recommend__heading::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../images/img_border.png) no-repeat center center/contain;
  width: 100%;
  aspect-ratio: 660/30;
}
@media (min-width: 768px) {
  .recommend__heading {
    display: flex;
    justify-content: center;
  }
}

.recommend__list {
  margin-top: min(80px, 10.6666666667vw);
}
.recommend__list li {
  font-size: min(3rem, 4vw);
  font-weight: 400;
}
.recommend__list li:nth-child(n+2) {
  margin-top: 1.4em;
}

.recommend__image {
  margin-top: min(100px, 13.3333333333vw);
}



/*------------------------------
voice
------------------------------*/
.voice {
  background: url(../images/bg_03.jpg) no-repeat center center/cover;
}

.voice__inner {
  padding: 0 min(5%, 37.2px);
  padding-top: min(50px, 13.3333333333vw);
}

.voice-heading {
  font-size: min(6rem, 7.3333333333vw);
  font-weight: 700;
  text-align: center;
}
.voice__list {
  width: 90%;
  margin: 0 auto;
}
.voice__list li {
  margin-top: min(100px, 13.3333333333vw);
  background: #ffffff;
  padding: min(60px, 8vw) 0;
  border-radius: min(40px, 5.3333333333vw) 0 min(40px, 5.3333333333vw) 0;
}
.voice__list li h3 {
  font-size: min(4rem, 5.3333333333vw);
  background: linear-gradient(90deg, #32B9D8 0%, #34D6C3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
  text-align: center;
}
.voice__list li h3.small {
  font-size: min(3.4rem, 4.5333333333vw);
}
.voice__list li p {
  font-size: min(3.2rem, 4.2666666667vw);
  font-weight: 500;
  padding: 0 0.78em;
  margin-top: 1.87em;
  display: none;
}
.voice__list li:has(:checked) p {
  display: block;
}
.voice__list li:has(:checked) .sub {
  display: inline-block;
}
.voice__list li:has(:checked) .main {
  display: none;
}
@media (min-width: 768px) {
  .voice__list li h3 {
    font-size: 40px;
  }
  .voice__list li h3.small {
    font-size: 26px;
  }
}

.voice__img {
  width: 30%;
  margin: 8% auto 0%;
}
.voice__list__movie {
  width: 84%;
  margin: 8% auto 0%;
}
.voice__list__movie iframe {
  width: 100%;
  aspect-ratio: 600/360;
  height: auto;
}

.voice__item-text {
  overflow: hidden;
}

.voice__item-heading {
  font-size: min(3.2rem, 4.2666666667vw);
  font-weight: 500;
  text-align: center;
  margin-top: 1.4em;
  padding: 0 16px;
}

.voice__item-button {
  text-align: center;
  margin-top: min(60px, 8vw);
  position: relative;
}
.voice__item-button button {
  display: inline-block;
  width: 83.8%;
  border: 3px solid #32B9D8;
  border-radius: 1.39em;
  font-size: min(3.6rem, 4.8vw);
  font-weight: 700;
  color: #32B9D8;
  text-align: center;
  padding: 0.39em 0;
  position: relative;
  background: transparent;
}
.voice__item-button button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: min(112px, 14.9333333333vw);
  transform: translateY(-50%);
  background: #32B9D8;
  -webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  width: 0.72em;
  aspect-ratio: 26/26;
}
.voice__item-button input {
  position: absolute;
  top: 0%;
  left: 0%;
  z-index: 100;
  width: 100%;
  height: 100%;
  opacity: 0;
  margin: 0;
  cursor: pointer;
}
.voice__item-button .sub {
  display: none;
}
.voice__item-button .sub::after {
  transform: translateY(-50%) rotate(180deg);
}
.voice-bottom {
  padding: min(60px, 13.3333333333vw) 0 min(50px, 14.6666666667vw);
}



/*------------------------------
message
------------------------------*/
.message {
  padding-bottom: min(120px, 16vw);
}
@media (min-width: 768px) {
  .message {
    padding-bottom: 80px;
  }
}

.message__top {
  background: linear-gradient(90deg, #32B9D8 0%, #34D6C3 100%);
  padding: min(100px, 13.3333333333vw) 0 min(143px, 19.0666666667vw);
  text-align: center;
  position: relative;
}
.message__top img {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(570px, 76vw);
}

.message__heading {
  font-size: min(4rem, 5.3333333333vw);
  font-weight: 700;
  text-align: center;
}
.message__heading strong {
  display: block;
  font-size: min(6.4rem, 8.5333333333vw);
  margin-top: 0.2em;
}
.message__heading--bg {
  display: inline-block;
  background: #fff;
}

.message__image {
  margin-top: max(-78px, -10.4vw);
  position: relative;
}
.message__image img {
  display: block;
  width: 88%;
  margin-left: auto;
}

.message__content {
  margin-top: min(80px, 10.6666666667vw);
}
.message__content p {
  font-size: min(3.2rem, 4.2666666667vw);
  padding: 0 1em;
}
.message__content img {
  margin: min(80px, 10.6666666667vw) 0;
}

.message-bottom {
  padding: 0 0 min(20px, 7.6666666667vw);
}

/*------------------------------
reason
------------------------------*/
.reason {
  background: #D7F0FD;
  padding: min(120px, 16vw) 0;
}
@media (min-width: 768px) {
  .reason {
    padding: 80px 0;
  }
}

.reason-heading {
  width: 650px;
  max-width: 100%;
  margin: 0 auto;
}



.reason__list {
  width: 680px;
  max-width: 100%;
  margin: 16% auto 0;
}
.reason__list li {
  padding-top: 12%;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  position: relative;
  background: url(../images/img_frame.png) no-repeat center center/contain;
  width: 100%;
  aspect-ratio: 1360/2096;
}
.reason__list li:nth-child(n+2) {
  margin-top: 16%;
  background: url(../images/img_frame2.png) no-repeat center center/contain;
  aspect-ratio: 1360/1898;
}
.reason__list li:nth-child(2) > img {
  width: 31%;
  margin: 8% 0 10%;
}
.reason__list li:nth-child(3) > img {
  width: 31%;
  margin: 6% 0 3%;
}
.reason__list li h3 {
  font-size: min(3.4rem, 4.5333333333vw);
  font-weight: 900;
  color: #32B9D8;
  text-align: center;
}
.reason__list li img {
  display: block;
  width: 50%;
  margin: min(20px, 2.6666666667vw) auto min(30px, 4vw);
}
.reason__list li p {
  padding: 0 1.7em;
  font-size: min(3.18rem, 4.24vw);
  font-weight: 400;
}
@media (min-width: 768px) {
  .reason__list li {
    background: url(../images/img_frame_pc2.png) no-repeat center center/contain;
    aspect-ratio: 1360/1402;
  }
  .reason__list li:nth-child(n+2) {
    background: url(../images/img_frame_pc.png) no-repeat center center/contain;
    aspect-ratio: 1360/1600;
  }
  .reason__list li img {
    width: 30%;
  }
}

.reason__item-num {
  display: inline-block;
  background: #32B9D8;
  position: absolute;
  top: 1%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: min(5rem, 6.6666666667vw);
  font-weight: 600;
  padding: 0 0.4em;
  color: #fff;
  font-family: "Roboto", sans-serif;
  line-height: 1.4;
}

/*------------------------------
voice
------------------------------*/
/*-.voice__inner {
  padding: 0 min(5%, 37.2px);
  padding-top: min(50px, 13.3333333333vw);
  background: url(../images/bg_01.png) no-repeat center max(-45vw, -335px)/cover;
}

.voice__heading {
  font-size: min(4rem, 5.3333333333vw);
  font-weight: 700;
  color: #32B9D8;
  padding: 0.9em 0 1.3em;
  line-height: 1.3;
  border-top: 3px solid #32B9D8;
  position: relative;
  font-feature-settings: "palt";
}
.voice__heading::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background: url(../images/img_border.png) no-repeat center center/contain;
  width: 100%;
  aspect-ratio: 660/30;
}
@media (min-width: 768px) {
  .voice__heading {
    display: flex;
    justify-content: center;
  }
}

.voice__list {
  margin-top: min(80px, 10.6666666667vw);
}
.voice__list li {
  font-size: min(3rem, 4vw);
  font-weight: 400;
}
.voice__list li:nth-child(n+2) {
  margin-top: 1.4em;
}

.voice__image {
  margin-top: min(100px, 13.3333333333vw);
}
-*/
/*------------------------------
lesson02
------------------------------*/
.lesson02 {
  background: #D7F0FD;
  padding: min(120px, 16vw) 0;
}

.lesson02__list {
  margin-top: min(80px, 10.6666666667vw);
}
.lesson02__list li:nth-child(n+2) {
  margin-top: min(100px, 13.3333333333vw);
}

.lesson02__item-num {
  text-align: center;
}
.lesson02__item-num img {
  width: 40%;
  max-width: 100%;
}
.lesson02__item-box h3 {
  font-size: min(4.2rem, 5.6vw);
  font-weight: 700;
  color: #fff;
  text-align: center;
  background: linear-gradient(90deg, #32B9D8 0%, #34D6C3 100%);
  border-radius: 20px 20px 0 0;
  padding: 9px 0;
  padding: 30px 0;
}

.lesson02__item-content {
  padding: min(60px, 8vw) min(47px, 6.2666666667vw);
  background: #fff;
  border-radius: 0 0 20px 20px;
}
.lesson02__item-content img {
  display: block;
  width: 584px;
  max-width: 100%;
  margin: 0 auto;
}
.lesson02__item-content p {
  font-size: min(3rem, 4vw);
  font-weight: 400;
  margin-top: min(60px, 8vw);
}

/*------------------------------
instructor
------------------------------*/
.instructor {
  padding: min(120px, 16vw) 0;
}
.instructor p {
  font-size: min(3rem, 4vw);
  font-weight: 400;
  padding: 0 0.9em;
}
@media (min-width: 768px) {
  .instructor {
    padding: 80px 0;
  }
}

.instructor__title {
  width: min(486px, 64.8vw);
  margin: 0 auto;
}

.instructor__picture {
  width: 78%;
  margin: min(76px, 10.1333333333vw) auto min(80px, 10.6666666667vw);
}
@media (min-width: 768px) {
  .instructor__picture {
    width: 54.6%;
  }
}

.instructor__image {
  margin: min(80px, 10.6666666667vw) 0;
}

/*------------------------------
book
------------------------------*/
.book {
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .book {
    padding-bottom: 80px 0;
  }
}

.book__title {
  width: min(284px, 37.8666666667vw);
  margin: 0 auto;
}

.book__image {
  margin-top: min(80px, 10.6666666667vw);
  padding: 0 15px;
}

.book__content {
  margin-top: min(80px, 10.6666666667vw);
}
.book__content p {
  font-size: min(3rem, 4vw);
  padding: 0 0.7em min(40px, 10.3333333333vw);
}

/*------------------------------
lesson03
------------------------------*/
.lesson03 {
  background: #D7F0FD;
}

.lesson03__top {
  background: #32B9D8;
  padding: min(150px, 20vw) min(40px, 5.3333333333vw) min(40px, 5.3333333333vw);
  position: relative;
}
.lesson03__top::before {
  content: "";
  position: absolute;
  top: min(48px, 6.4vw);
  left: 50%;
  transform: translateX(-50%);
  background: url(../images/img_02.png) no-repeat center center/contain;
  width: min(132px, 17.6vw);
  aspect-ratio: 132/68;
}
.lesson03__top::after {
  content: "";
  position: absolute;
  -webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  bottom: 1px;
  left: 0;
  transform: translateY(100%);
  -webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  width: 100%;
  aspect-ratio: 750/60;
  background: #32B9D8;
  max-height: 60px;
}
.lesson03__top h2 {
  font-size: min(3.6rem, 4.8vw);
  font-weight: 400;
  color: #fff;
  text-align: center;
}
@media (min-width: 768px) {
  .lesson03__top h2 {
    font-size: 36px;
  }
}

.lesson03__wrapper {
  padding: min(100px, 13.3333333333vw) 0 min(120px, 16vw);
}

.lesson03__content {
  padding-top: min(120px, 16vw);
}

.lesson03__list {
  margin: min(100px, 13.3333333333vw) auto min(120px, 16vw);
  width: 88%;
  position: relative;
}
.lesson03__list::after {
  content: "";
  position: absolute;
  background: url(../images/dec3.png) no-repeat center center/100%;
  aspect-ratio: 70/60;
  width: 5%;
  left: 50%;
  top: -13%;
  transform: translate(-50%, 0%);
}
.lesson03__list li {
  background: #fff;
  border-radius: 0.47em;
  font-size: min(4.2rem, 5.6vw);
  padding: 0.7em 0;
  font-weight: 500;
  text-align: center;
  position: relative;
}
.lesson03__list li:nth-child(n+2) {
  margin-top: min(70px, 9.3333333333vw);
}
.lesson03__list li img {
  position: absolute;
  width: min(182px, 24.2666666667vw);
  top: 0;
  left: -5%;
  transform: translateY(-50%);
}

.lesson03_text {
  width: 86%;
  margin: 8% auto 10%;
  display: block;
}

/*------------------------------
footer
------------------------------*/
footer {
  background: #272668;
  padding: min(80px, 10.6666666667vw) 0 min(219px, 29.2vw);
}

.footer__menu li {
  font-size: min(2.6rem, 3.4666666667vw);
  font-weight: 400;
  text-align: center;
}
.footer__menu li:nth-child(n+2) {
  margin-top: min(40px, 5.3333333333vw);
}
.footer__menu li a {
  color: #fff;
}

.footer__copyright {
  font-size: min(2.4rem, 3.2vw);
  font-weight: 400;
  text-align: center;
  color: #fff;
  margin-top: min(100px, 13.3333333333vw);
}

/*------------------------------
button anime
------------------------------*/
.cta.float {
  position: fixed;
  bottom: 10px;
  left: 50%;
  transform: translate(-50%, 0%);
  width: 100%;
}

.c-button._shiny {
  display: block;
  overflow: hidden;
  transition: 300ms;
  position: relative;
  margin: 0 auto;
}

.c-button._shiny::before {
  position: absolute;
  content: "";
  display: inline-block;
  top: -180px;
  left: 0;
  width: 30px;
  height: 100%;
  background-color: #b5e7ff;
  transition: 300ms;
  -webkit-animation: shinyshiny 2.5s ease-in-out infinite;
          animation: shinyshiny 2.5s ease-in-out infinite;
}

.c-button._shiny:hover {
  text-decoration: none;
  color: #fff;
  box-shadow: none;
  -webkit-transform: translateY(3px);
}

@-webkit-keyframes shinyshiny {
  0% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0;
  }
  80% {
    -webkit-transform: scale(0) rotate(45deg);
    opacity: 0.5;
  }
  81% {
    -webkit-transform: scale(4) rotate(45deg);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(50) rotate(45deg);
    opacity: 0;
  }
}
/*# sourceMappingURL=style.css.map */