@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500..700&display=swap');

:root {
  --black: #000;
  --txt-color: #1b1b1b;
  --main-color: #e60012;
  --gray: #e5e5e5;
}

body {
  padding-bottom: 32vw;
  width: 100%;
  color: var(--txt-color);
  font-size: 16px;
  font-family: 'Noto Sans JP', 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'BIZ UDPGothic', 'Noto Sans JP', Meiryo, 'Noto Sans CJK JP', sans-serif;
  font-weight: 500;
  font-display: swap;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
  text-autospace: normal;
}

img {
  width: 100%;
  max-width: 100%;
  height: auto;
  image-rendering: -webkit-optimize-contrast;
}

a,
a img {
  transition: .5s;
}
a:hover,
a:hover img {
  opacity: .8;
}

a[href*="tel:"] {
  text-decoration: underline;
  pointer-events: auto;
}

.tab,
.pc {
  display: none;
}
.sp {
  display: block;
}

main > section:not(.mv) {
  padding-top: 54px;
}
main > section:last-of-type {
  padding-bottom: 54px;
}
main section .inner {
  margin: 0 auto;
  width: 90%;
  max-width: 1280px;
}
main section h1 {
  margin-bottom: 24px;
}
main section h1 img {
  width: auto;
}
main section h2 {
  margin-bottom: 26px;
}
main section h2 img {
  width: auto;
  height: 16px;
}
.txt {
  font-size: 2.96vw;
  line-height: 1.95;
}

.guidance {
  position: fixed;
  bottom: 0;
}

/* mv
============================================ */
.mv {
  position: relative;
  overflow: clip;
}

/* concept
============================================ */
.concept h1 img,
.lesson h1 img,
.first h1 img,
.rankup h1 img,
.fee h1 img,
.flow h1 img,
.access h1 img {
  height: 24px;
}
.concept_content {
  position: relative;
  overflow: clip;
}
.concept_txt {
  padding: 0 5vw 28px;
  background-image: url(../img/concept_bg2.svg);
  background-repeat: no-repeat;
  background-position: right bottom;
  background-size: 24vw auto;
}
.concept_img {
  width: 100%;
  max-width: 1140px;
  overflow: clip;
}

/* about
============================================ */
.about h1 img,
.choose h1 img,
.item h1 img {
  height: 55px;
}
.about_content {
  margin: 0 auto;
  max-width: 1280px;
  position: relative;
}
.about_attendance {
  width: 50%;
  max-width: 524px;
  position: absolute;
  top: 24vw;
  right: 0;
}
.about .txt {
  margin: 0 auto;
  width: 90vw;
}
.about .txt.em {
  margin: 21vw auto 0;
  max-width: 1280px;
  color: var(--main-color);
  font-size: 3.77vw;
  font-weight: 700;
  line-height: 1.5;
}
.about_img {
  margin-top: 24px;
}

.about_achievements {
  margin-top: 32px;
}
.about_achievements h3 {
  margin-bottom: 22px; 
  width: 90%;
  background: var(--main-color);
  position: relative;
}
.about_achievements h3::after {
  content: '';
  width: 5vw;
  height: 100%;
  background: inherit;
  position: absolute;
  top: 0;
  right: calc(-5vw + 1px);
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.about_achievements h3 span {
  margin-left: 5vw;
  padding: 6px 0;
  width: 100%;
  max-width: 1280px;
  display: inline-block;
}
.about_achievements h3 img {
  width: 80%;
  max-width: 640px;
}
.about_achievements_list {
  margin: 0 auto;
  width: 90%;
  max-width: 1280px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px 6%;
}
.about_achievements_list > div {
  width: 47%;
}
.about_achievements_note {
  margin: 1em auto 0;
  width: 90%;
  max-width: 1280px;
  font-size: min(2.4vw, 1.4rem);
  text-align: right;
}

/* choose
============================================ */
.choose_content {
  display: flex;
  justify-content: space-between;
}
.choose_content .txt {
  margin-left: 5vw;
  flex-shrink: 0;
}
.choose_img {
  margin-left: -33vw;
  max-width: 660px;
  flex: 1;
  overflow: clip;
}
.choose_img picture {
  max-width: none;
  height: 100%;
}
.choose_img img {
  height: 100%;
  object-fit: cover;
  object-position: left;
}
.tresearch {
  margin: 34px auto 0;
  width: 82%;
  max-width: 1280px;
}
.tresearch_txt {
  margin-top: 2em;
  font-size: 2.25vw;
  text-align: center;
}

/* lesson
============================================ */
.lesson {
  background-image: url(../img/lesson_bg.svg);
  background-repeat: no-repeat;
  background-position: right 54px;
  background-size: 15vw auto;
}
.lesson {
  overflow-x: clip;
}
.lesson_content .txt em {
  color: var(--main-color);
  font-size: 114%;
  font-weight: 700;
  font-style: normal;
}
.lesson_list {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.lesson_list > div {
  padding: 6px 14px;
  width: calc((100% - 20px) / 3);
  border: 1px solid var(--main-color);
  display: flex;
  justify-content: center;
  align-items: center;
}
.lesson_list > div img {
  width: auto;
  height: 80%;
}
.lesson .model,
.lesson .curriculum {
  margin-top: 40px;
  padding-bottom: 36px;
  border-bottom: 1px dotted var(--main-color);
}
.lesson .model h3,
.lesson .curriculum h3,
.lesson .workshop h3 {
  margin-bottom: 10px;
}
.lesson .model h3 img,
.lesson .workshop h3 img {
  width: auto;
  height: 19px;
}
.lesson .curriculum h3 img {
  margin-left: auto;
  width: auto;
  height: 36px;
}
.lesson .model h4,
.lesson .curriculum h4,
.lesson .workshop h4 {
  margin-bottom: 26px;
}
.lesson .model h4 img,
.lesson .curriculum h4 img,
.lesson .workshop h4 img {
  width: auto;
  height: 15px;
}
.lesson .curriculum h4 img {
  margin-left: auto;
}
.lesson .model_content,
.lesson .curriculum_content,
.lesson .workshop_content,
.first_content {
  margin: 0 -5vw;
  display: flex;
  justify-content: space-between;
  position: relative;
}
.lesson .model_content .txt,
.lesson .workshop_content .txt,
.first_content .txt {
  margin-left: 5vw;
  flex-shrink: 0;
}
.lesson .model_img,
.lesson .curriculum_img,
.lesson .workshop_img,
.first_img {
  flex: 1;
  overflow-x: clip;
}
.lesson .model_img {
  margin-left: -25vw;
  max-width: 934px;
}
.lesson .model_img picture,
.lesson .curriculum_img picture,
.lesson .workshop_img picture,
.first_img picture {
  max-width: none;
  height: 100%;
}
.lesson .model_img img,
.lesson .workshop_img img,
.first_img img {
  height: 100%;
  object-fit: cover;
  object-position: left;
}
.lesson .curriculum_content .txt {
  margin-right: 5vw;
  text-align: right;
  flex-shrink: 0;
}
.lesson .curriculum_img {
  margin-right: -27vw;
  max-width: 880px;
}
.lesson .curriculum_img img {
  height: 100%;
  object-fit: cover;
  object-position: right;
}
.lesson .workshop {
  margin-top: 36px;
}
.lesson .workshop_img {
  margin-top: -41px;
  margin-left: -18vw;
  max-width: 804px;
}
.lesson .workshop_img picture {
  height: 70%;
}

/* first
============================================ */
.first {
  overflow-x: clip;
}
.first_list {
  margin-top: 20px;
  width: 29ch;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.first_list > div {
  padding: .5em;
  width: 13ch;
  color: var(--main-color);
  text-align: center;
  font-weight: 700;
  line-height: 1;
  border: 1px solid var(--main-color);
}
.first_img {
  margin-left: -14vw;
  max-width: 912px;
  position: relative;
}

/* rankup
============================================ */
.rankup_content {
  display: flex;
  align-items: flex-start;
}
.rankup_content .txt {
  padding: 0 1ch .5em 0;
  border-bottom: 1px solid var(--main-color);
}
.rankup_content .txt em {
  color: var(--main-color);
  font-style: normal;
}
.rankup_img {
  max-width: 332px;
  flex: 1;
}
.rank {
  margin-top: 22px;
}
.rank_content h3 img {
  width: auto;
  height: 36px;
}
.rank_img {
  margin: -50px auto 0;
  width: 92%;
  max-width: 644px;
}
.rank ul {
  margin-top: 10px;
  width: 85%;
}
.rank li:not(:first-of-type) {
  margin-top: 20px;
}
.rank li dt {
  padding-bottom: 4px;
  border-bottom: 1px solid #000;
}
.rank li dt img {
  width: auto;
  height: 14px;
}
.rank li dd {
  margin-top: 4px;
  font-size: 3.4vw;
}
.rank li:nth-of-type(3) dt {
  border-bottom-color: var(--main-color);
}
.rank li:nth-of-type(3) dd {
  color: var(--main-color);
}
.rank li:nth-of-type(4) dt {
  border-bottom-color: #808080;
}
.rank li:nth-of-type(4) dd {
  color: #808080;
}
.rank li:nth-of-type(5) dt {
  border-bottom-color: #999;
}
.rank li:nth-of-type(5) dd {
  color: #999;
}

/* item
============================================ */
.item {
  position: relative;
}
.item .inner {
  overflow-x: hidden;
}
.item_content {
  width: 108%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.item_content > div {
  width: calc(50% - 5px);
}

/* fee
============================================ */
.fee {
  position: relative;
}
.fee::before {
  content: '';
  width: 38.2vw;
  background-image: url(../img/fee_bg.svg);
  background-repeat: no-repeat;
  background-position: left top;
  background-size: contain;
  aspect-ratio: 1256 / 1920;
  display: block;
  position: absolute;
  top: -6vw;
  right: 0;
  z-index: -1;
}
.fee_img {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--main-color);
}
.fee_img img {
  margin: auto;
  width: 95%;
  max-width: 1070px;
}

/* flow
============================================ */
.flow {
  position: relative;
}
.flow .txt {
  font-size: min(2.65vw, 1.75rem);
}
.flow_txt_em {
  margin-top: .5em;
}
.flow_txt_em img {
  width: auto;
  height: 1.3em;
}
.flow ol {
  margin-top: 28px;
  padding: 28px;
  background: #fff;
  border: 1px solid var(--main-color);
}
.flow li {
  position: relative;
}
.flow li:not(:last-of-type):after {
  content: '';
  margin: 8px auto;
  width: 6%;
  aspect-ratio: 69 / 80;
  background-image: url(../img/flow_arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: block;
}

/* access
============================================ */
.access {
  position: relative;
}
.access_content {
  display: flex;
  align-items: flex-end;
}
.access_img {
  width: 32%;
  max-width: 320px;
  flex-shrink: 0;
}
.access_content dl {
  padding-left: 1.5ch;
  flex: 1;
}
.access_content dt img {
  width: auto;
  height: 14px;
}
.access_content dd {
  margin-top: 1em;
  font-size: min(2.85vw, 1.75rem);
}
.access_content dd .tel {
  margin-top: 4vw;
  width: 45vw;
  max-width: 432px;
}
.access_map {
  margin-top: 38px;
  width: 100%;
  aspect-ratio: 2 / 1;
}
.access_map iframe {
  width: 100%;
  height: 100%;
}

/* footer
============================================ */
footer {
  padding: 1em;
  color: #fff;
  background: var(--main-color);
}
footer a {
  color: #fff;
  text-decoration: none;
}
footer ul {
  margin-bottom: 1em;
  font-size: .75rem;
  display: flex;
}
footer li:not(:first-of-type) {
  border-left: 1px solid #fff;
}
footer li a {
  padding: 0 1ch;
}
footer li:first-of-type a {
  padding-left: 0;
}
footer li:last-of-type a {
  padding-right: 0;
}
footer small {
  font-size: .625rem;
  text-align: right;
  display: block;
}


@media (min-width: 601px) {
  .sp {
    display: none;
  }
  .tab {
    display: block;
  }

  body {
    padding-bottom: 0;
  }

  main > section:not(.mv) {
    padding-top: 108px;
  }
  main > section:last-of-type {
    padding-bottom: 24px;
  }
  main section h1 {
    margin-bottom: 48px;
  }
  main section h2 {
    margin-bottom: 52px;
  }
  main section h2 img {
    height: 32px;
  }
  .txt {
    font-size: 2.2vw;
  }

  .guidance {
    padding: 0 24px 24px 0;
    position: sticky;
    bottom: 0;
    pointer-events: none;
  }
  .guidance a {
    margin-left: auto;
    width: 15.6vw;
    max-width: 280px;
    display: block;
    pointer-events: auto;
  }

  /* mv
  ============================================ */
  .mv img {
    width: 135vw;
    max-width: none;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
  }

  /* concept
  ============================================ */
  .concept {
    background-image: url(../img/concept_bg1.svg);
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 10.7vw auto;
  }
  .concept h1 img,
  .choose h1 img,
  .lesson h1 img,
  .first h1 img,
  .rankup h1 img,
  .item h1 img,
  .fee h1 img,
  .flow h1 img,
  .access h1 img {
    height: 48px;
  }
  .concept_txt {
    padding-bottom: 56px;
  }

  /* about
  ============================================ */
  .about h1 img {
    height: 110px;
  }
  .about_attendance {
    width: 35%;
    top: 4vw;
  }
  .about_img {
    margin-top: 48px;
  }
  .about .txt.em {
    margin-top: 13vw;
    font-size: 2.7vw;
  }
  .about_achievements {
    margin-top: 64px;
  }
  .about_achievements h3 {
    margin-bottom: 44px;
  }
  .about_achievements h3 span {
    padding: 12px 0;
  }
  .about_achievements_list {
    gap: 32px 5%;
  }
  .about_achievements_list > div {
    width: 30%;
  }

  /* choose
  ============================================ */
  .choose_img {
    margin-left: -16vw;
  }
  .tresearch {
    margin-top: 52px;
    width: 90%;
  }
  .tresearch_txt {
    margin-top: 1em;
    font-size: min(1.3vw, 1.25rem);
  }

  /* lesson
  ============================================ */
  .lesson {
    background-position: right 108px;
  }
  .lesson_list {
    margin-top: 36px;
    gap: 20px;
  }
  .lesson_list > div {
    padding: 12px 28px;
    width: calc((100% - 40px) / 3);
  }
  .lesson .model,
  .lesson .curriculum {
    margin-top: 80px;
    padding-bottom: 50px;
  }
  .lesson .curriculum_content::before {
    width: 24.7vw;
  }
  .lesson .model h3,
  .lesson .curriculum h3,
  .lesson .workshop h3 {
    margin-bottom: 20px;
  }
  .lesson .model h3 img,
  .lesson .workshop h3 img {
    height: 38px;
  }
  .lesson .curriculum h3 img {
    height: 72px;
  }
  .lesson .model h4,
  .lesson .curriculum h4,
  .lesson .workshop h4 {
    margin-bottom: 52px;
  }
  .lesson .model h4 img,
  .lesson .curriculum h4 img,
  .lesson .workshop h4 img {
    height: 30px;
  }
  .lesson .model_img {
    margin-left: -6vw;  
  }
  .lesson .curriculum_img {
    margin-right: -4vw;
  }
  .lesson .workshop {
    margin-top: 50px;
  }
  .lesson .workshop_img {
    margin-top: -82px;
    margin-left: -11vw;
  }
  .lesson .workshop_img picture {
    height: 110%;
  }

  /* first
  ============================================ */
  .first_list {
    margin-top: 40px;
  }
  .first_img {
    margin-top: -84px;
    margin-left: -9vw;
  }

  /* rankup
  ============================================ */
  .rankup_content .txt {
    flex: 1;
  }
  .rankup_img {
    margin-top: -84px;
    width: 32%;
    flex: none;
    flex-shrink: 0;
  }
  .rank {
    margin-top: 28px;
    display: flex;
  }
  .rank_content {
    width: 55%;
  }
  .rank_content h3 img {
    height: 38px;
  }
  .rank_img {
    margin: 8px 0 0 -5%;
    width: 100%;
  }
  .rank ul {
    margin-top: 64px;
    flex: 1;
  }
  .rank li dd {
    font-size: min(1.7vw, 1.75rem);
  }

  /* item
  ============================================ */
  .item_content > div {
    width: calc((100% - 30px) / 4);
  }

  /* fee
  ============================================ */
  .fee {
    background-image: url(../img/lesson_bg.svg);
    background-repeat: no-repeat;
    background-position: right 108px;
    background-size: 15vw auto;
  }
  .fee::before {
    display: none;
  }
  .fee_img {
    padding: 48px;
  }
  .fee_img img {
    width: 100%;
  }

  /* flow
  ============================================ */
  .flow ol {
    margin-top: 56px;
    display: flex;
    justify-content: center;
    gap: 40px;
  }
  .flow li {
    width: calc((100% - 80px) / 3);
    max-width: 320px;
  }
  .flow li:not(:last-of-type):after {
    margin: auto;
    width: 20px;
    position: absolute;
    top: 50%;
    right: -30px;
    transform: rotate(270deg) translateX(50%);
  }

  /* access
  ============================================ */
  .access_content dl {
    padding-left: 3ch;
  }
  .access_content dt img {
    height: 28px;
  }
  .access_map {
    margin-top: 72px;
  }

  /* footer
  ============================================ */
  footer {
    padding: 1em 2em;
    display: flex;
    align-items: center;
  }
  footer ul {
    margin-bottom: 0;
    font-size: .875rem;
  }
  footer small {
    margin-left: auto;
    font-size: .75rem;
  }
}


@media (min-width: 1024px) {
  a[href*="tel:"] {
    text-decoration: none;
    pointer-events: none;
  }

  .txt {
    font-size: 1.82vw;
  }

  /* concept
  ============================================ */
  .concept {
    background-image: url(../img/concept_bg1.svg);
    background-repeat: no-repeat;
    background-position: left top;
    background-size: 10.7vw auto;
  }
  .concept_content {
    margin-left: 5vw;
    display: flex;
    justify-content: space-between;
    overflow: clip;
  }
  .concept_txt {
    padding: 0;
    background: none;
    flex-shrink: 0;
  }
  .concept_img {
    margin-left: -28vw;
    flex: 1;
  }
  .concept_img picture {
    max-width: none;
    height: 100%;
  }
  .concept_img img {
    height: 100%;
    object-fit: cover;
    object-position: left;
  }

  /* about
  ============================================ */
  .about_content {
    width: 90vw;
    display: flex;
  }
  .about .txt {
    margin: 0;
    width: 77%;
  }
  .about_attendance {
    margin: -40px 0 0 -18%;
    width: 41%;
    position: relative;
    top: auto;
  }
  .about .txt.em {
    margin-top: 34px;
    width: 90vw;
    font-size: 2.2vw;
  }
  .about_achievements h3::after {
    width: 50px;
    right: -49px;
  }

  /* choose
  ============================================ */
  .choose_img {
    margin-top: -84px;
    margin-left: -9vw;
  }

  /* lesson
  ============================================ */
  .lesson_list {
    gap: 14px;
  }
  .lesson_list > div {
    padding: 12px 8px;
    width: calc((100% - 70px) / 6);
  }
  .lesson .model_img {
    margin-top: -140px;
    margin-left: -5vw;
  }
  .lesson .curriculum_img {
    margin-right: -2vw;
  }
  .lesson .curriculum_img picture {
    height: 100%;
  }

  /* first
  ============================================ */
  .first_list {
    gap: 14px;
  }
  .first_list > div {
    border-width: 2px;
  }
  .first_img {
    margin-left: -5vw;
  }

  /* rankup
  ============================================ */
  .rankup_img {
    margin-top: -180px;
    width: 23%;
  }
  .rank li dt img {
    height: 20px;
  }

  /* flow
  ============================================ */
  .flow ol {
    padding: 48px;
    gap: 58px;
  }
  .flow li {
    width: calc((100% - 116px) / 3);
  }
  .flow li:not(:last-of-type):after {
    width: 26px;
    right: -42px;
  }

  /* access
  ============================================ */
  .access::before {
    content: '';
    width: 17vw;
    max-width: 470px;
    background-image: url(../img/access_bg.svg);
    background-repeat: no-repeat;
    background-position: left top;
    background-size: contain;
    aspect-ratio: 1967 / 4718;
    display: block;
    position: absolute;
    top: -4vw;
    right: 0;
    z-index: -1;
  }

  /* footer
  ============================================ */
  footer {
    padding: 1.5em 3em;
  }
  footer ul {
    font-size: 1rem;
  }
  footer small {
    font-size: .875rem;
  }
}


@media (min-width: 1280px) {
  .tab {
    display: none;
  }
  .pc {
    display: block;
  }

  main > section:not(.mv) {
    padding-top: 164px;
  }
  main section h2 {
    margin-bottom: 64px;
  }
  main section h2 img {
    height: 50px;
  }

  /* concept
  ============================================ */
  .concept h1 img,
  .choose h1 img,
  .lesson h1 img,
  .first h1 img,
  .rankup h1 img,
  .item h1 img,
  .fee h1 img,
  .flow h1 img,
  .access h1 img {
    height: 69px;
  }

  /* about
  ============================================ */
  .about h1 img {
    height: 164px;
  }
  .about .txt.em {
    margin-top: 74px;
  }
  .about_img {
    margin-top: 54px;
  }
  .about_achievements h3 {
    margin-bottom: 52px;
  }

  /* choose
  ============================================ */
  .choose_content .txt {
    padding-right: 3ch;
  }
  .choose_img {
    margin-top: -114px;
    margin-left: auto;
  }

  /* lesson
  ============================================ */
  .lesson,
  .fee {
    background-position: right 164px;
  }
  .lesson_list {
    margin-top: 60px;
  }
  .lesson .model,
  .lesson .curriculum {
    margin-top: 98px;
    padding-bottom: 102px;
    border-bottom-width: 2px;
  }
  .lesson .curriculum_content::before {
    display: none;
  }
  .lesson .workshop {
    margin-top: 102px;
  }

  /* first
  ============================================ */
  .first_list {
    margin-top: 46px;
  }

  /* rankup
  ============================================ */
  .rankup_img {
    margin-top: -231px;
    width: 26%;
  }
  .rank_content h3 img {
    height: 46px;
  }
  .rank_img {
    margin-top: 16px;
  }
  .rank li dt img {
    height: 26px;
  }
  .rank li:not(:first-of-type) {
    margin-top: 42px;
  }

  /* fee
  ============================================ */
  .fee_img {
    padding: 72px;
  }

  /* flow
  ============================================ */
  .flow ol {
    margin-top: 68px;
  }

  /* access
  ============================================ */
  .access_content dl {
    padding-left: 4ch;
  }
  .access_content dt img {
    height: 34px;
  }
  .access_map {
    margin-top: 102px;
  }
}


@media (min-width: 1423px) {
  .txt {
    font-size: 1.625rem;
  }
  main section h2 img {
    height: 56px;
  }

  /* mv
  ============================================ */
  .mv img {
    width: 1920px;
  }

  /* concept
  ============================================ */
  .concept_content {
    margin-left: calc((100vw - 1280px) / 2);
  }
  .concept_img {
    margin-left: -43ch;
  }

  /* about
  ============================================ */
  .about_attendance {
    margin-top: -50px;
  }
  .about .txt.em {
    font-size: 1.95rem;
  }
  .about_achievements h3 {
    width: calc((100vw - 1280px) / 2 + 1140px);
  }
  .about_achievements h3 span {
    margin-left: calc((100vw - 1280px) / 2);
  }
  .about_achievements_list {
    gap: 38px 52px;
  }
  .about_achievements_list > div {
    width: 392px;
  }

  /* choose
  ============================================ */
  .choose_content .txt {
    margin-left: calc((100vw - 1280px) / 2);
  }

  /* lesson
  ============================================ */
  .lesson_list > div {
    padding: 20px 14px;
  }
  .lesson .model h3,
  .lesson .curriculum h3,
  .lesson .workshop h3 {
    margin-bottom: 28px;
  }
  .lesson .model h3 img,
  .lesson .workshop h3 img {
    height: 47px;
  }
  .lesson .model h4,
  .lesson .curriculum h4,
  .lesson .workshop h4 {
    margin-bottom: 64px;
  }
  .lesson .model h4 img,
  .lesson .curriculum h4 img,
  .lesson .workshop h4 img {
    height: 37px;
  }
  .lesson .model_content,
  .lesson .curriculum_content,
  .lesson .workshop_content,
  .first_content {
    margin: 0 calc(((100vw - 1280px) / 2) * -1) 0 calc(((100vw - 1280px) / 2) * -1);
  }
  .lesson .model_content .txt,
  .lesson .workshop_content .txt,
  .first_content .txt {
    margin-left: calc(((100vw - 1280px) / 2));
  }
  .lesson .model_img {
    margin-top: -176px;
  }
  .lesson .curriculum_content .txt {
    margin-right: calc(((100vw - 1280px) / 2));
  }

  /* first
  ============================================ */
  .first_img {
    margin-top: -120px;
    margin-left: 0;
  }

  /* rankup
  ============================================ */
  .rank_content {
    width: 51%;
  }
  .rank_img {
    margin-left: -38px;
  }
  .rank ul {
    margin-top: 26px;
  }
  .rank li dt {
    padding-bottom: 10px;
  }
  .rank li dt img {
    height: 31px;
  }

  /* flow
  ============================================ */
  .flow ol {
    gap: 88px;
  }
  .flow li:not(:last-of-type):after {
    width: 38px;
    right: -63px;
  }
  
  /* access
  ============================================ */
  .access_content dd .tel {
    margin-top: 58px;
  }
}


@media (min-width: 1600px) {
  .about {
    background-image: url(../img/about_bg.svg);
    background-repeat: no-repeat;
    background-position: left 164px;
    background-size: 9.5vw auto;
  }
  .lesson .model_content::before {
    content: '';
    width: 8.5vw;
    max-width: 164px;
    background-image: url(../img/model_bg.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    aspect-ratio: 686 / 2172;
    display: block;
    position: absolute;
    bottom: -100px;
    left: 0;
    z-index: -1;
  }
  .lesson .curriculum_content::before {
    content: '';
    width: 11vw;
    max-width: 226px;
    background-image: url(../img/curriculum_bg.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    aspect-ratio: 946 / 1449;
    display: block;
    position: absolute;
    bottom: -0;
    right: 0;
    z-index: -1;
  }
  .lesson .workshop_img picture {
    height: 90%;
  }
  .first {
    background-image: url(../img/first_bg.svg);
    background-repeat: no-repeat;
    background-position: left 164px;
    background-size: 10vw auto;
  }
  .item::before {
    content: '';
    width: 148px;
    background-image: url(../img/item_bg.svg);
    background-repeat: no-repeat;
    background-position: left top;
    background-size: contain;
    aspect-ratio: 1161 / 4224;
    display: block;
    position: absolute;
    top: -166px;
    left: 0;
    z-index: -1;
  }
  .flow::before {
    content: '';
    width: 208px;
    background-image: url(../img/flow_bg.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    aspect-ratio: 1446 / 2214;
    display: block;
    position: absolute;
    top: 46px;
    left: 0;
    z-index: -1;
  }
}

@media (min-width: 1700px) {
  .choose {
    background-image: url(../img/choose_bg.svg);
    background-repeat: no-repeat;
    background-position: left 0;
    background-size: 18vw auto;
  }
  .lesson .workshop_img picture {
    height: 82%;
  }
  .item::before {
    width: 180px;
    top: -240px;
  }
  .flow::before {
    width: 240px;
    top: 54px;
  }
}

@media (min-width: 1880px) {
  .lesson .curriculum_img {

  }
  .flow::before {
    width: 344px;
  }
}

@media (min-width: 1921px) {
  .mv img {
    width: 100%;
  }
  .item::before {
    width: 274px;
    top: -452px;
  }
}

@media (min-width: 2290px) {
  .concept_txt {
    margin-right: -396px;
  }
  .concept_img {
    margin-left: auto;
    flex: none;
    overflow: visible;
  }
  .concept_img img {
    margin-left: auto;
  }
}