@charset "utf-8";

:root {
  --color-main: #222222;
  --color-brand_purple: #551B48;
  --color-skyblue: #3FB0CC;
  --color-orange: #F58200;
  --color-olive: #A79137;
  --color-green: #83A629;
  --color-gray: #F5F5F5;
  --color-navy: #242B78;
  --color-turquoise: #00AFCC;
  --font-sans: "Noto Sans JP", sans-serif;
}

/* ----- top-page ----- */

/* ----- top-common ----- */

h2.top_h2 {
  font-size: min(3.5rem, 35px);
  text-align: center;
}

h2.top_h2 small {
  display: block;
  font-size: min(1.8rem, 18px);
  margin-bottom: min(1.6rem, 16px);
}

a.top_link {
  display: block;
  margin: min(4.0rem, 40px) auto 0;
  width: min(36rem, 360px);
  height: min(5.6rem, 56px);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: min(0.4rem, 4px);
  background-color: #fff;
  border: min(0.1rem, 1px) solid #DEDEDE;
  border-bottom: min(0.4rem, 4px) solid #DEDEDE;
  font-size: min(1.6rem, 16px);
  position: relative;
  line-height: 1.2;
  text-align: center;
}

a.top_link::after {
  content: "";
  display: block;
  position: absolute;
  width: min(2rem, 20px); 
  height: min(0.1rem, 1px);
  background-color: var(--color-main);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
}

@media (max-width: 799px) {
  h2.top_h2 {
    font-size: 2.4rem;
  }

  h2.top_h2 small {
    font-size: 1.4rem;
    margin-bottom: .8rem;
    line-height: 1.2;
  }

  a.top_link {
    margin: 4rem auto 0;
    width: 80%;
    height: 4.6rem;
    border-radius: .2rem;
    border: .1rem solid #DEDEDE;
    border-bottom: .4rem solid #DEDEDE;
    font-size: 1.4rem;
  }
  
  a.top_link::after {
    width: 2rem; 
    height: .1rem;
  }
}

/* ----- mv ----- */

/* Slick スライダー共通設定 */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  user-select: none;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}

.slick-slide img {
  display: block;
}

.slick-initialized .slick-slide {
  display: block;
}

/* 垂直スライド用設定 */
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

main.index section.top_mv div.mv_cover {
  width: 100%;
  height: min(69rem, 690px);
  overflow-y: hidden;
  position: relative;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul {
  width: 100%;
 height: 100%;
  position: relative;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul div.slick-list, 
main.index section.top_mv div.mv_cover ul.mv_slide_ul div.slick-track {
  width: 100%;
  height: 100%;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul li.mv_slide_li {
  width: 100%;
 height: 100%;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul li.mv_slide_li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
}

main.index section.top_mv div.mv_cover h1.top_mv_h1 {
  position: absolute;
  max-width: 1800px;
  height: fit-content;
  padding: 0 20px;
  font-size: min(5.0rem, 50px);
  font-weight: 900;
  color: #fff;
  text-align: right;
  line-height: 1.4;
  letter-spacing: 0.1em;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translate(0, min(5rem, 50px));
		text-shadow: 0 0 min(3rem, 30px) rgba(0, 0, 0, 0.5);
}

main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(4) h1.top_mv_h1, 
main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(5) h1.top_mv_h1, 
main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(10) h1.top_mv_h1, 
main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(11) h1.top_mv_h1 {
  top: auto;
  bottom: 0;
  transform: translate(0, min(-5rem, -50px));
}

main.index section.top_mv div.mv_cover div.mv_conts {
  position: absolute;
  max-width: 1800px;
  height: fit-content;
  padding: 0 20px;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  transform: translate(0, -10%);
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing {
  display: block;
  width: min(45rem, 450px);
  border-radius: min(1.5rem, 15px);
	box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area {
  width: 100%;
  height: min(22.4rem, 224px);
  border-radius: min(1.5rem, 15px) min(1.5rem, 15px) 0 0;
  overflow: hidden;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info {
  width: 100%;
  padding: min(1.5rem, 15px);
  background-color: #fff;
  border-radius: 0 0 min(1.5rem, 15px) min(1.5rem, 15px);
  display: flex;
  align-items: start;
  gap: min(2.0rem, 20px);
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info p.ongoing_txt {
  width: fit-content;
  font-size: min(1.6rem, 16px);
  font-weight: 700;
  padding-top:min(0.5rem, 5px);
  white-space: nowrap;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list {
  flex: 1;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item {
  font-size: min(1.4rem, 14px);
  padding:min(0.5rem, 5px) 0;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item span {
  color: #B10000;
  margin-left: min(1.0rem, 10px);
}

/* ニュースティッカー用Slick設定 */
main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list.slick-slider {
  height: auto;
  max-height: min(8rem, 80px);
  overflow: hidden;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list.slick-vertical .slick-slide {
  height: auto;
  border: none;
}

main.index section.top_mv div.mv_bnr_area {
  margin: min(3.0rem, 30px) auto 0;
  max-width: 1800px;
  padding: 0 20px;
/*
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2.0rem, 20px);
*/
}

main.index section.top_mv div.mv_bnr_area a.mv_bnr_link {
  width: 100%;
  /*height: min(15rem, 150px);
  border-radius: min(1.5rem, 15px);*/
  overflow: hidden;
		margin:0 min(1.0rem, 10px);
}

main.index section.top_mv div.mv_bnr_area a.mv_bnr_link img {
  width: 100%;
  height: auto;
  /*object-fit: cover;
  object-position: center;*/
}

@media (max-width: 799px) {
  main.index section.top_mv div.mv_cover {
    height: 60rem;
  }
  
  main.index section.top_mv div.mv_cover ul.mv_slide_ul li.mv_slide_li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
  }
  
  main.index section.top_mv div.mv_cover h1.top_mv_h1 {
    position: absolute;
    height: fit-content;
    padding: 0 1rem;
    font-size: 3.0rem;
    font-weight: 900;
    text-align: center;
    line-height: 1.4;
    letter-spacing: 0.05em;
    text-shadow: 0 0 2rem rgba(0, 0, 0, 0.9);
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    transform: translate(0, 5rem);
  }
  
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(4) h1.top_mv_h1, 
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(5) h1.top_mv_h1, 
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(10) h1.top_mv_h1, 
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(11) h1.top_mv_h1 {
    top: 0;
    bottom: auto;
    transform: translate(0, 5rem);
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts {
    padding: 0 1rem;
    transform: translate(0, -10%);
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing {
    width: 100%;
    border-radius: .8rem;
    box-shadow: 0px 0px 1.5rem rgba(0, 0, 0, 0.3);
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area {
    width: 100%;
    height: fit-content;
    border-radius: .8rem .8rem 0 0;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: contain;
    object-position: center;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info {
    width: 100%;
    padding: .4rem;
    border-radius: 0 0 .8rem .8rem;
    gap: 1rem;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info p.ongoing_txt {
    font-size: 1.4rem;
    padding-top: .8rem;
    white-space: nowrap;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item {
    font-size: 1.4rem;
    padding: .6rem 0;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item span {
    color: #B10000;
    margin-left: .8rem;
  }
  
  /* モバイル版ニュースティッカー設定 */
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list.slick-slider {
    max-height: 6rem;
  }
  
  main.index section.top_mv div.mv_bnr_area {
    margin: 1rem auto 0;
    width: 100%;
				padding:0;
  }
  
  main.index section.top_mv div.mv_bnr_area a.mv_bnr_link {
		height: auto;
		margin:0 0.5rem;
		}
}

/* ----- course_introduction ----- */

main.index section.course_introduction div.course_introduction_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(3.0rem, 30px);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item {
  height: min(31rem, 310px);
  overflow: hidden;
  padding: min(3.0rem, 30px);
  background-image: url(../images/bg_top_courseIntroduction01.jpg);
  background-size: cover;
  position: relative;
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(2) {
  background-image: url(../images/bg_top_courseIntroduction02.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(3) {
  background-image: url(../images/bg_top_courseIntroduction03.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(4) {
  background-image: url(../images/bg_top_courseIntroduction04.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(5) {
  background-image: url(../images/bg_top_courseIntroduction05.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(6) {
  background-image: url(../images/bg_top_courseIntroduction06.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 {
  font-size: min(2.4rem, 24px);
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 small {
  display: block;
  font-size: min(1.4rem, 14px);
  font-weight: 700;
  color: #fff;
  margin-bottom: min(0.4rem, 4px);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item span.icon_arrow {
  position: absolute;
  width: min(4.0rem, 40px);
  height: min(4.0rem, 40px);
  left: 0;
  bottom: 0;
  transform: translate(60%, -60%);
}

@media (max-width: 799px) {
  
  main.index section.course_introduction div.course_introduction_wrap {
    margin-top: 4.0rem;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item {
    height: 16rem;
    padding: 2.0rem 1.0rem;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 {
    font-size: 1.6rem;
    line-height: 1.2;
    letter-spacing: .00em;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 small {
    font-size: 1.2rem;
    margin-bottom: 0.4rem;
    line-height: 1.2;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item span.icon_arrow {
    width: 2.8rem;
    height: 2.8rem;
    left: 0;
    bottom: 0;
    transform: translate(30%, -30%);
  }
}

/* ----- recommend ----- */

main.index section.recommend h2.top_h2 {
  text-align: left;
}

main.index section.recommend div.recommend_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2rem, 20px) min(1.5rem, 15px);
}

main.index section.recommend div.recommend_wrap a.recommend_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
  padding: min(2rem, 20px);
  background-color: #fff;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: min(0.4rem, 4px) min(1.0rem, 10px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item {
  width: fit-content;
  padding: min(0.4rem, 4px) min(0.8rem, 8px);
  font-size: min(1.2rem, 12px);
  font-weight: 700;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.info_ttl {
  color: #fff;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.advanced {
  background-color: #A79137;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.internal {
  background-color: #00AFCC;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.basic {
  background-color: #F68300;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.branding_beginner {
  background-color: #84BD00;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.internal_beginner {
  background-color: #333D96;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.trainer {
  background-color: #551B48;
}

main.index section.recommend div.recommend_wrap a.recommend_item span.info_style {
  background-color: #DEDEDE;
}

main.index section.recommend div.recommend_wrap a.recommend_item span.info_status {
  background-color: #fff;
  border: min(0.1rem, 1px) solid #FF0000;
  color: #FF0000;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor {
  margin-top: min(1.0rem, 10px);
  display: flex;
  align-items: end;
  gap: min(1rem, 10px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor div.instructor_img {
  width: min(5.0rem, 50px);
  height: min(5.0rem, 50px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor div.instructor_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor p.instructor_name {
  font-size: min(1.2rem, 12px);
  font-weight: 700;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_details {
  margin-top: min(2.0rem, 20px);
  display: flex;
  flex-direction: column;
  gap: min(1.0rem, 10px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_location {
  font-size: min(1.6rem, 16px);
  font-weight: 700;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_date {
  font-size: min(1.6rem, 16px);
}


@media (max-width: 799px) {
  main.index section.recommend h2.top_h2 {
    text-align: center;
  }
  
  main.index section.recommend div.recommend_wrap {
    margin-top: 4.0rem;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item {
    padding: 2.0rem;
    border-radius: .8rem;
    flex-direction: column;
    align-items: start;
    gap: .8rem;
    display: block;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_info {
    gap: 0.4rem 0.8rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item {
    width: fit-content;
    padding: 0.4rem 0.8rem;
    font-size: 1.1rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item span.info_status {
    border: 0.1rem solid #FF0000;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor {
    margin-top: 1rem;
    gap: 1rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor div.instructor_img {
    width: 5rem;
    height: 5rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor p.instructor_name {
    font-size: 1.4rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_details {
    margin-top: 1.6rem;
    gap: 1.0rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_location {
    font-size: 1.4rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_date {
    font-size: 1.4rem;
  }
}

/* ----- area ----- */

main.index section.area h2.top_h2 {
  text-align: left;
}

main.index section.area div.area_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(3.0rem, 30px);
}

main.index section.area div.area_wrap div.txt_area div.search_wrap {
  margin-top: min(2.0rem, 20px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.0rem, 10px);
}

main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item {
  width: 100%;
  height: min(4.4rem, 44px);
  border-radius: min(0.4rem, 4px);
  background-color: #fff;
  border: min(0.1rem, 1px) solid #DEDEDE;
  border-bottom: min(0.4rem, 4px) solid #DEDEDE;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.8rem, 18px);
  position: relative;
}

main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item:first-of-type {
  grid-column: 1 / 4;
}

main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item::after {
  content: '';
  display: block;
  position: absolute;
  width: min(2.0rem, 20px);
  height: min(0.1rem, 1px);
  background-color: var(--color-main);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
}

@media (max-width: 799px) {
  main.index section.area h2.top_h2 {
    text-align: center;
  }
  
  main.index section.area div.area_wrap {
    margin-top: 4.0rem;
    display: flex;
    flex-direction: column-reverse;
    gap: 2rem;
  }

  main.index section.area div.area_wrap div.map_area {
    width: 100%;
  }
  
  main.index section.area div.area_wrap div.txt_area {
    width: 100%;
  }

  main.index section.area div.area_wrap div.txt_area div.search_wrap {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.8rem;
  }
  
  main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item {
    height: 4rem;
    border: .1rem solid #DEDEDE;
    border-bottom: .4rem solid #DEDEDE;
    font-size: 1.4rem;
    border-radius: .4rem;
  }
  
  main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item:first-of-type {
    grid-column: 1 / 3;
  }

  main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item::after {
    width: 1.6rem;
    height: 0.1rem;
  }
}

/* ----- trainer_introduction ----- */

main.index section.trainer_introduction p.common_txt {
  text-align: center;
}

main.index section.trainer_introduction div.trainer_introduction_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: min(2rem, 20px);
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
  width: 100%;
  background-color: #fff;
  box-shadow: 0 0 min(1rem, 10px) rgba(0, 0, 0, 0.1);
  padding: min(2rem, 20px) min(1rem, 10px);
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.img_area {
  width: calc(100% + min(2rem, 20px));
  margin-top: max(-2rem, -20px);
  margin-left: max(-1rem, -10px);
  height: min(18rem, 180px);
  overflow: hidden;
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.position {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  text-align: center;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.name {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.6rem, 16px);
  text-align: center;
}

@media (max-width: 799px) {

  main.index section.trainer_introduction p.common_txt {
    text-align: left;
  }
  
  main.index section.trainer_introduction h2.top_h2 {
    line-height: 1.2;
  }

  main.index section.trainer_introduction h2.top_h2 small {
    line-height: 1.2;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap {
    margin-top: 4.0rem;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item {
    width: 100%;
    box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1);
    padding: 1rem 1rem 2rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.img_area {
    width: calc(100% + 2rem);
    margin-top: -1rem;
    margin-left: -1rem;
    height: 15rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.position p {
    margin-top: 1rem;
    font-size: 1.2rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.name {
    margin-top: 1rem;
    font-size: 1.6rem;
  }
}

/* ----- voice ----- */

main.index section.voice {
  background-color: #EBEBEB;
}

main.index section.voice p.common_txt {
  text-align: center;
}

main.index section.voice ul.voice_wrap {
  margin-top: min(4.0rem, 40px);
  position: relative;
  z-index: auto;
}

main.index section.voice ul.voice_wrap div.slick-arrow {
  position: absolute;
  width: min(6.0rem, 60px);
  height: min(6.0rem, 60px);
  top: 0;
  bottom: 0;
  margin: auto;
  left: 0;
  transform: translateX(-50%);
  cursor: pointer;
  z-index: 1;
}

main.index section.voice ul.voice_wrap div.slick_next {
  left: auto;
  right: 0;
  transform: translateX(50%);
}

main.index section.voice ul.voice_wrap div.slick-track {
  display: flex;
}

main.index section.voice ul.voice_wrap li.voice_item {
  width: min(30rem, 300px);
  height: auto !important;
  padding: min(3.0rem, 30px) min(2.0rem, 20px);
  margin: 0 min(.8rem, 8px);
  background-color: #fff;
}

main.index section.voice ul.voice_wrap li.voice_item div.icon_area {
  width: min(14rem, 140px);
  height: min(14rem, 140px);
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto;
}

main.index section.voice ul.voice_wrap li.voice_item div.icon_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

main.index section.voice ul.voice_wrap li.voice_item p.voice_ttl {
  margin-top: min(2.0rem, 20px);
  font-size: min(1.6rem, 16px);
  line-height: 1.4;
}

main.index section.voice ul.voice_wrap li.voice_item p.voice_company {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  line-height: 1.2;
}

main.index section.voice ul.voice_wrap li.voice_item p.voice_name {
  margin-top: min(0.4rem, 4px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  text-align: right;
}

@media (max-width: 799px) {
  
  main.index section.voice p.common_txt {
    text-align: left;
  }
  
  main.index section.voice ul.voice_wrap {
    margin-top: 4.0rem;
  }

  main.index section.voice ul.voice_wrap div.slick-arrow {
    width: 6rem;
    height: 6rem;
    transform: translateX(-30%);
  }
  
  main.index section.voice ul.voice_wrap div.slick_next {
    transform: translateX(30%);
  }
  
  main.index section.voice ul.voice_wrap li.voice_item {
    width: 100%;
    margin: 0 2rem;
    border-radius: .4rem;
    padding: 4.0rem 2.0rem;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item div.icon_area {
    width: 14rem;
    height: 14rem;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item p.voice_ttl {
    margin-top: 2.0rem;
    font-size: 1.4rem;
    line-height: 1.2;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item p.voice_company {
    margin-top: 1.0rem;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.2;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item p.voice_name {
    margin-top: 0.4rem;
    font-size: 1.2rem;
    font-weight: 400;
    text-align: right;
  }
}

/* ----- article ----- */

main.index section.article h2.top_h2 {
  text-align: left;
}

main.index section.article div.article_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2.0rem, 20px);
}

main.index section.article div.article_wrap a.article_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 5;
  gap: 0;
  width: 100%;
  border-radius: min(.5rem, 5px);
  background-color: #fff;
  padding: min(1.2rem, 12px) min(1.2rem, 12px) min(2rem, 20px);
  box-shadow: 0 0 min(1rem, 10px) rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

main.index section.article div.article_wrap a.article_item div.img_area {
  width: 100%;
  height: min(21rem, 210px);
  overflow: hidden;
  background-color: #F5F5F5;
}

main.index section.article div.article_wrap a.article_item div.img_area img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

main.index section.article div.article_wrap a.article_item span.knowledge_category {
  margin-top: min(1rem, 10px);
  width: fit-content;
  padding: min(0.6rem, 6px) min(1.0rem, 10px);
  background-color: var(--color-brand_purple);
  color: #fff;
  font-size: min(1.2rem, 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
}

main.index section.article div.article_wrap a.article_item p.name {
  margin-top: min(1rem, 10px);
  font-size: min(1.2rem, 12px);
  line-height: 1.2;
  font-weight: 400;
}

main.index section.article div.article_wrap a.article_item h3.article_ttl {
  margin-top: min(1rem, 10px);
  font-size: min(1.6rem, 16px);
  line-height: 1.2;
}

main.index section.article div.article_wrap a.article_item div.tag_area {
  margin-top: min(2.0rem, 20px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: min(.4rem, 4px);
}

main.index section.article div.article_wrap a.article_item div.tag_area span {
  width: fit-content;
  padding: min(0.6rem, 6px) min(1.0rem, 10px);
  background-color: #fff;
  color: var(--color-brand_purple);
  border: min(.1rem, 1px) solid var(--color-brand_purple);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
}

main.index section.article h3.article_h3 {
  margin-top: min(4.0rem, 40px);
  font-size: min(1.8rem, 18px);
  display: flex;
  align-items: center;
  gap: min(.8rem, 8px);
  cursor: pointer;
}

main.index section.article h3.article_h3::before {
  content: '';
  background-image: url(../images/icon_arrow_down_black.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(2.0rem, 20px);
  height: min(1.0rem, 10px);
  transition: all .8s;
}

main.index section.article h3.article_h3.active::before {
  transform: rotate(180deg);
}

main.index section.article div.tag_box {
  margin-top: 0;
  width: 100%;
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  pointer-events: none;
  transition: all .4s;
}

main.index section.article div.tag_box.active {
  margin-top: min(2.0rem, 20px);
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}

main.index section.article div.tag_box div.tag_wrap {
  min-height: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: min(.4rem, 4px);
}

main.index section.article div.tag_box span {
  font-size: min(1.2rem, 12px);
  width: fit-content;
  padding: min(0.6rem, 6px) min(1.0rem, 10px);
  background-color: #fff;
  color: var(--color-brand_purple);
  border: min(.1rem, 1px) solid var(--color-brand_purple);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
}

@media (max-width: 799px) {
  main.index section.article h2.top_h2 {
    text-align: center;
  }
  
  main.index section.article div.article_wrap {
    margin-top: 4.0rem;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  
  main.index section.article div.article_wrap a.article_item {
    display: block;
    border-radius: .5rem;
    padding: 1rem 1rem 2rem;
    box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1);
  }
  
  main.index section.article div.article_wrap a.article_item div.img_area {
    height: 18rem;
  }
  
  main.index section.article div.article_wrap a.article_item span.knowledge_category {
    margin-top: 1rem;
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
  }
  
  main.index section.article div.article_wrap a.article_item p.name {
    margin-top: 1rem;
    font-size: 1.2rem;
  }
  
  main.index section.article div.article_wrap a.article_item h3.article_ttl {
    margin-top: 1rem;
    font-size: 1.6rem;
  }
  
  main.index section.article div.article_wrap a.article_item div.tag_area {
    margin-top: 2rem;
    gap: .4rem;
  }
  
  main.index section.article div.article_wrap a.article_item div.tag_area span {
    padding: 0.4rem 0.8rem;
    border: .1rem solid var(--color-brand_purple);
    font-size: 1.2rem;
  }
  
  main.index section.article h3.article_h3 {
    margin-top: 4rem;
    font-size: 1.6rem;
    gap: .8rem;
  }
  
  main.index section.article h3.article_h3::before {
    width: 1.6rem;
    height: .8rem;
  }
  
  main.index section.article div.tag_box {
    margin-top: 0;
    width: 100%;
  }
  
  main.index section.article div.tag_box.active {
    margin-top: 2rem;
  }
  
  main.index section.article div.tag_box div.tag_wrap {
    gap: .4rem;
  }
  
  main.index section.article div.tag_box span {
    font-size: 1.2rem;
    padding: 0.4rem 0.8rem;
    border: .1rem solid var(--color-brand_purple);
  }
}

/* ----- info ----- */

main.index section.info h2.top_h2 {
  text-align: left;
}

main.index section.info nav.info_nav {
  margin-top: min(4.0rem, 40px);
}

main.index section.info nav.info_nav ul.info_ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: min(1.5rem, 15px);
}

main.index section.info nav.info_nav ul.info_ul li.info_li {
  width: 100%;
  height: min(5.0rem, 50px);
  background-color: #DEDEDE;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.6rem, 16px);
  font-weight: 700;
  position: relative;
  cursor: pointer;
  transition: all .8s;
}

main.index section.info nav.info_nav ul.info_ul li.info_li::after {
  content: '';
  display: block;
  position: absolute;
  background-image: url(../images/icon_arrow_right_black.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(.6rem, 6px);
  height: min(1.2rem, 12px);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
  transform: translateX(-250%);
  transition: all .8s;
}

main.index section.info nav.info_nav ul.info_ul li.info_li.active {
  background-color: var(--color-brand_purple);
  color: #fff;
  pointer-events: none;
}

main.index section.info nav.info_nav ul.info_ul li.info_li.active::after {
  background-image: url(../images/icon_arrow_right_white.png);
}

main.index section.info dl.info_dl {
  margin-top: min(2.0rem, 20px);
  width: 100%;
  padding: 0;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: absolute;
  left: -999999px;
  opacity: 0;
  pointer-events: none;
  transition: all .8s;
  box-sizing: border-box;
}

main.index section.info dl.info_dl.active {
  position: static;
  opacity: 1;
  pointer-events: auto;
}

main.index section.info dl.info_dl a.info_item {
  padding: min(3.0rem, 30px)  min(4.0rem, 40px) min(3.0rem, 30px) min(2.0rem, 20px);
  padding-left:;
  border-bottom: min(.1rem, 1px) solid #DEDEDE;
  display: flex;
  align-items: start;
  gap: 0;
  position: relative;
}

main.index section.info dl.info_dl a.info_item dt.info_dt {
  width: min(10rem, 100px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 2.2;
}

main.index section.info dl.info_dl a.info_item dd.info_dd {
  flex: 1;
  font-size: min(1.8rem, 18px);
  line-height: 1.4;
  letter-spacing: 0;
  display: flex;
  align-items: start;
  gap: min(2.0rem, 20px);
}

main.index section.info dl.info_dl a.info_item dd.info_dd span {
  width: min(10rem, 100px);
  height: min(2.4rem, 24px);
  background-color: #DEDEDE;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.2rem, 12px);
  flex-shrink: 0;
}

@media (max-width: 799px) {
  main.index section.info h2.top_h2 {
    text-align: center;
  }
  
  main.index section.info nav.info_nav {
    margin-top: 4.0rem;
  }
  
  main.index section.info nav.info_nav ul.info_ul {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.4rem;
  }
  
  main.index section.info nav.info_nav ul.info_ul li.info_li {
    width: 100%;
    height: 4rem;
    font-size: 1.2rem;
    line-height: 1.2;
    padding: 0 0.4rem;
  }
  
  main.index section.info nav.info_nav ul.info_ul li.info_li::after {
    content: none;
  }
  
  main.index section.info nav.info_nav ul.info_ul li.info_li.active::after {
    content: none;
  }
  
  main.index section.info dl.info_dl {
    margin-top: 0rem;
  }
  
  main.index section.info dl.info_dl a.info_item {
    padding: 2rem 0;
    border-bottom:.1rem solid #DEDEDE;
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 1rem;
  }
  
  main.index section.info dl.info_dl a.info_item dt.info_dt {
    width: 100%;
    font-size: 1.2rem;
    line-height: 1;
  }
  
  main.index section.info dl.info_dl a.info_item dd.info_dd {
    flex: none;
    width: 100%;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.4;
    flex-direction: column;
    align-items: start;
    gap: 0.5rem;
  }
  
  main.index section.info dl.info_dl a.info_item dd.info_dd span {
    width: fit-content;
    height: auto;
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
  }
}

/* ===== トレーナー自動切り替えアニメーション ===== */
.trainer_introduction_wrap {
  transition: opacity 0.5s ease-in-out;
}

.trainer_introduction_wrap.fade-out {
  opacity: 0;
}

.trainer_introduction_wrap.fade-in {
  opacity: 1;
}

/* スムーズな切り替えのための追加スタイル */
.trainer_introduction_item {
  transition: transform 0.3s ease-in-out;
}

.trainer_introduction_item:hover {
  transform: translateY(-2px);
}

/* 長期休暇のお知らせ */@charset "utf-8";

:root {
  --color-main: #222222;
  --color-brand_purple: #551B48;
  --color-skyblue: #3FB0CC;
  --color-orange: #F58200;
  --color-olive: #A79137;
  --color-green: #83A629;
  --color-gray: #F5F5F5;
  --color-navy: #242B78;
  --color-turquoise: #00AFCC;
  --font-sans: "Noto Sans JP", sans-serif;
}

/* ----- top-page ----- */

/* ----- top-common ----- */

h2.top_h2 {
  font-size: min(3.5rem, 35px);
  text-align: center;
}

h2.top_h2 small {
  display: block;
  font-size: min(1.8rem, 18px);
  margin-bottom: min(1.6rem, 16px);
}

a.top_link {
  display: block;
  margin: min(4.0rem, 40px) auto 0;
  width: min(36rem, 360px);
  height: min(5.6rem, 56px);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: min(0.4rem, 4px);
  background-color: #fff;
  border: min(0.1rem, 1px) solid #DEDEDE;
  border-bottom: min(0.4rem, 4px) solid #DEDEDE;
  font-size: min(1.6rem, 16px);
  position: relative;
  line-height: 1.2;
  text-align: center;
}

a.top_link::after {
  content: "";
  display: block;
  position: absolute;
  width: min(2rem, 20px); 
  height: min(0.1rem, 1px);
  background-color: var(--color-main);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
}

@media (max-width: 799px) {
  h2.top_h2 {
    font-size: 2.4rem;
  }

  h2.top_h2 small {
    font-size: 1.4rem;
    margin-bottom: .8rem;
    line-height: 1.2;
  }

  a.top_link {
    margin: 4rem auto 0;
    width: 80%;
    height: 4.6rem;
    border-radius: .2rem;
    border: .1rem solid #DEDEDE;
    border-bottom: .4rem solid #DEDEDE;
    font-size: 1.4rem;
  }
  
  a.top_link::after {
    width: 2rem; 
    height: .1rem;
  }
}

/* ----- mv ----- */

/* Slick スライダー共通設定 */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  user-select: none;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}

.slick-slide img {
  display: block;
}

.slick-initialized .slick-slide {
  display: block;
}

/* 垂直スライド用設定 */
.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

main.index section.top_mv div.mv_cover {
  width: 100%;
  height: min(69rem, 690px);
  overflow-y: hidden;
  position: relative;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul {
  width: 100%;
 height: 100%;
  position: relative;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul div.slick-list, 
main.index section.top_mv div.mv_cover ul.mv_slide_ul div.slick-track {
  width: 100%;
  height: 100%;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul li.mv_slide_li {
  width: 100%;
 height: 100%;
}

main.index section.top_mv div.mv_cover ul.mv_slide_ul li.mv_slide_li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
}

main.index section.top_mv div.mv_cover h1.top_mv_h1 {
  position: absolute;
  max-width: 1800px;
  height: fit-content;
  padding: 0 20px;
  font-size: min(5.0rem, 50px);
  font-weight: 900;
  color: #fff;
  text-align: right;
  line-height: 1.4;
  letter-spacing: 0.1em;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translate(0, min(5rem, 50px));
		text-shadow: 0 0 min(3rem, 30px) rgba(0, 0, 0, 0.5);
}

main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(4) h1.top_mv_h1, 
main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(5) h1.top_mv_h1, 
main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(10) h1.top_mv_h1, 
main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(11) h1.top_mv_h1 {
  top: auto;
  bottom: 0;
  transform: translate(0, min(-5rem, -50px));
}

main.index section.top_mv div.mv_cover div.mv_conts {
  position: absolute;
  max-width: 1800px;
  height: fit-content;
  padding: 0 20px;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  transform: translate(0, -10%);
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing {
  display: block;
  width: min(45rem, 450px);
  border-radius: min(1.5rem, 15px);
	box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area {
  width: 100%;
  height: min(22.4rem, 224px);
  border-radius: min(1.5rem, 15px) min(1.5rem, 15px) 0 0;
  overflow: hidden;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  object-position: center;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info {
  width: 100%;
  padding: min(1.5rem, 15px);
  background-color: #fff;
  border-radius: 0 0 min(1.5rem, 15px) min(1.5rem, 15px);
  display: flex;
  align-items: start;
  gap: min(2.0rem, 20px);
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info p.ongoing_txt {
  width: fit-content;
  font-size: min(1.6rem, 16px);
  font-weight: 700;
  padding-top:min(0.5rem, 5px);
  white-space: nowrap;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list {
  flex: 1;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item {
  font-size: min(1.4rem, 14px);
		padding:min(0.5rem, 5px) 0;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item span {
  color: #B10000;
  margin-left: min(1.0rem, 10px);
}

/* ニュースティッカー用Slick設定 */
main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list.slick-slider {
  height: auto;
  max-height: min(8rem, 80px);
  overflow: hidden;
}

main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list.slick-vertical .slick-slide {
  height: auto;
  border: none;
}

main.index section.top_mv div.mv_bnr_area {
  margin: min(3.0rem, 30px) auto 0;
  max-width: 1800px;
  padding: 0 20px;
/*
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2.0rem, 20px);
*/
}

main.index section.top_mv div.mv_bnr_area a.mv_bnr_link {
  width: 100%;
  /*height: min(15rem, 150px);
  border-radius: min(1.5rem, 15px);*/
  overflow: hidden;
		margin:0 min(1.0rem, 10px);
}

main.index section.top_mv div.mv_bnr_area a.mv_bnr_link img {
  width: 100%;
  height: auto;
  /*object-fit: cover;
  object-position: center;*/
}

@media (max-width: 799px) {
  main.index section.top_mv div.mv_cover {
    height: 60rem;
  }
  
  main.index section.top_mv div.mv_cover ul.mv_slide_ul li.mv_slide_li img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
  }
  
  main.index section.top_mv div.mv_cover h1.top_mv_h1 {
    position: absolute;
    height: fit-content;
    padding: 0 1rem;
    font-size: 3.0rem;
    font-weight: 900;
    text-align: center;
    line-height: 1.4;
    letter-spacing: 0.05em;
    text-shadow: 0 0 2rem rgba(0, 0, 0, 0.9);
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    transform: translate(0, 5rem);
  }
  
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(4) h1.top_mv_h1, 
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(5) h1.top_mv_h1, 
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(10) h1.top_mv_h1, 
  main.index section.top_mv div.mv_cover li.mv_slide_li:nth-of-type(11) h1.top_mv_h1 {
    top: 0;
    bottom: auto;
    transform: translate(0, 5rem);
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts {
    padding: 0 1rem;
    transform: translate(0, -10%);
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing {
    width: 100%;
    border-radius: .8rem;
    box-shadow: 0px 0px 1.5rem rgba(0, 0, 0, 0.3);
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area {
    width: 100%;
    height: fit-content;
    border-radius: .8rem .8rem 0 0;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.bnr_area img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: contain;
    object-position: center;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info {
    width: 100%;
    padding: .4rem;
    border-radius: 0 0 .8rem .8rem;
    gap: 1rem;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info p.ongoing_txt {
    font-size: 1.4rem;
    padding-top: .8rem;
    white-space: nowrap;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item {
    font-size: 1.4rem;
    padding: .6rem 0;
  }
  
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list li.ongoing_item span {
    color: #B10000;
    margin-left: .8rem;
  }
  
  /* モバイル版ニュースティッカー設定 */
  main.index section.top_mv div.mv_cover div.mv_conts a.ongoing div.ongoing_info ul.ongoing_list.slick-slider {
    max-height: 6rem;
  }
  
  main.index section.top_mv div.mv_bnr_area {
    margin: 1rem auto 0;
    width: 100%;
				padding:0;
  }
  
  main.index section.top_mv div.mv_bnr_area a.mv_bnr_link {
		height: auto;
		margin:0 0.5rem;
		}
}

/* ----- course_introduction ----- */

main.index section.course_introduction div.course_introduction_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(3.0rem, 30px);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item {
  height: min(31rem, 310px);
  overflow: hidden;
  padding: min(3.0rem, 30px);
  background-image: url(../images/bg_top_courseIntroduction01.jpg);
  background-size: cover;
  position: relative;
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(2) {
  background-image: url(../images/bg_top_courseIntroduction02.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(3) {
  background-image: url(../images/bg_top_courseIntroduction03.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(4) {
  background-image: url(../images/bg_top_courseIntroduction04.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(5) {
  background-image: url(../images/bg_top_courseIntroduction05.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item:nth-of-type(6) {
  background-image: url(../images/bg_top_courseIntroduction06.jpg);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 {
  font-size: min(2.4rem, 24px);
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 small {
  display: block;
  font-size: min(1.4rem, 14px);
  font-weight: 700;
  color: #fff;
  margin-bottom: min(0.4rem, 4px);
}

main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item span.icon_arrow {
  position: absolute;
  width: min(4.0rem, 40px);
  height: min(4.0rem, 40px);
  left: 0;
  bottom: 0;
  transform: translate(60%, -60%);
}

@media (max-width: 799px) {
  
  main.index section.course_introduction div.course_introduction_wrap {
    margin-top: 4.0rem;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item {
    height: 16rem;
    padding: 2.0rem 1.0rem;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 {
    font-size: 1.6rem;
    line-height: 1.2;
    letter-spacing: .00em;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item h3.course_introduction_h3 small {
    font-size: 1.2rem;
    margin-bottom: 0.4rem;
    line-height: 1.2;
  }
  
  main.index section.course_introduction div.course_introduction_wrap a.course_introduction_item span.icon_arrow {
    width: 2.8rem;
    height: 2.8rem;
    left: 0;
    bottom: 0;
    transform: translate(30%, -30%);
  }
}

/* ----- recommend ----- */

main.index section.recommend h2.top_h2 {
  text-align: left;
}

main.index section.recommend div.recommend_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2rem, 20px) min(1.5rem, 15px);
}

main.index section.recommend div.recommend_wrap a.recommend_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
  padding: min(2rem, 20px);
  background-color: #fff;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: min(0.4rem, 4px) min(1.0rem, 10px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item {
  width: fit-content;
  padding: min(0.4rem, 4px) min(0.8rem, 8px);
  font-size: min(1.2rem, 12px);
  font-weight: 700;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.info_ttl {
  color: #fff;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.advanced {
  background-color: #A79137;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.internal {
  background-color: #00AFCC;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.basic {
  background-color: #F68300;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.branding_beginner {
  background-color: #84BD00;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.internal_beginner {
  background-color: #333D96;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item.trainer {
  background-color: #551B48;
}

main.index section.recommend div.recommend_wrap a.recommend_item span.info_style {
  background-color: #DEDEDE;
}

main.index section.recommend div.recommend_wrap a.recommend_item span.info_status {
  background-color: #fff;
  border: min(0.1rem, 1px) solid #FF0000;
  color: #FF0000;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor {
  margin-top: min(1.0rem, 10px);
  display: flex;
  align-items: end;
  gap: min(1rem, 10px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor div.instructor_img {
  width: min(5.0rem, 50px);
  height: min(5.0rem, 50px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor div.instructor_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor p.instructor_name {
  font-size: min(1.2rem, 12px);
  font-weight: 700;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_details {
  margin-top: min(2.0rem, 20px);
  display: flex;
  flex-direction: column;
  gap: min(1.0rem, 10px);
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_location {
  font-size: min(1.6rem, 16px);
  font-weight: 700;
}

main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_date {
  font-size: min(1.6rem, 16px);
}


@media (max-width: 799px) {
  main.index section.recommend h2.top_h2 {
    text-align: center;
  }
  
  main.index section.recommend div.recommend_wrap {
    margin-top: 4.0rem;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item {
    padding: 2.0rem;
    border-radius: .8rem;
    flex-direction: column;
    align-items: start;
    gap: .8rem;
    display: block;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_info {
    gap: 0.4rem 0.8rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_info span.info_item {
    width: fit-content;
    padding: 0.4rem 0.8rem;
    font-size: 1.1rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item span.info_status {
    border: 0.1rem solid #FF0000;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor {
    margin-top: 1rem;
    gap: 1rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor div.instructor_img {
    width: 5rem;
    height: 5rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_instructor p.instructor_name {
    font-size: 1.4rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_details {
    margin-top: 1.6rem;
    gap: 1.0rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_location {
    font-size: 1.4rem;
  }
  
  main.index section.recommend div.recommend_wrap a.recommend_item div.course_details span.course_date {
    font-size: 1.4rem;
  }
}

/* ----- area ----- */

main.index section.area h2.top_h2 {
  text-align: left;
}

main.index section.area div.area_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(3.0rem, 30px);
}

main.index section.area div.area_wrap div.txt_area div.search_wrap {
  margin-top: min(2.0rem, 20px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.0rem, 10px);
}

main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item {
  width: 100%;
  height: min(4.4rem, 44px);
  border-radius: min(0.4rem, 4px);
  background-color: #fff;
  border: min(0.1rem, 1px) solid #DEDEDE;
  border-bottom: min(0.4rem, 4px) solid #DEDEDE;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.8rem, 18px);
  position: relative;
}

main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item:first-of-type {
  grid-column: 1 / 4;
}

main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item::after {
  content: '';
  display: block;
  position: absolute;
  width: min(2.0rem, 20px);
  height: min(0.1rem, 1px);
  background-color: var(--color-main);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
}

@media (max-width: 799px) {
  main.index section.area h2.top_h2 {
    text-align: center;
  }
  
  main.index section.area div.area_wrap {
    margin-top: 4.0rem;
    display: flex;
    flex-direction: column-reverse;
    gap: 2rem;
  }

  main.index section.area div.area_wrap div.map_area {
    width: 100%;
  }
  
  main.index section.area div.area_wrap div.txt_area {
    width: 100%;
  }

  main.index section.area div.area_wrap div.txt_area div.search_wrap {
    margin-top: 1rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.8rem;
  }
  
  main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item {
    height: 4rem;
    border: .1rem solid #DEDEDE;
    border-bottom: .4rem solid #DEDEDE;
    font-size: 1.4rem;
    border-radius: .4rem;
  }
  
  main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item:first-of-type {
    grid-column: 1 / 3;
  }

  main.index section.area div.area_wrap div.txt_area div.search_wrap a.search_item::after {
    width: 1.6rem;
    height: 0.1rem;
  }
}

/* ----- trainer_introduction ----- */

main.index section.trainer_introduction p.common_txt {
  text-align: center;
}

main.index section.trainer_introduction div.trainer_introduction_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: min(2rem, 20px);
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 3;
  gap: 0;
  width: 100%;
  background-color: #fff;
  box-shadow: 0 0 min(1rem, 10px) rgba(0, 0, 0, 0.1);
  padding: min(2rem, 20px) min(1rem, 10px);
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.img_area {
  width: calc(100% + min(2rem, 20px));
  margin-top: max(-2rem, -20px);
  margin-left: max(-1rem, -10px);
  height: min(18rem, 180px);
  overflow: hidden;
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.img_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.position {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  text-align: center;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.name {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.6rem, 16px);
  text-align: center;
}

@media (max-width: 799px) {

  main.index section.trainer_introduction p.common_txt {
    text-align: left;
  }
  
  main.index section.trainer_introduction h2.top_h2 {
    line-height: 1.2;
  }

  main.index section.trainer_introduction h2.top_h2 small {
    line-height: 1.2;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap {
    margin-top: 4.0rem;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item {
    width: 100%;
    box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1);
    padding: 1rem 1rem 2rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.img_area {
    width: calc(100% + 2rem);
    margin-top: -1rem;
    margin-left: -1rem;
    height: 15rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.position p {
    margin-top: 1rem;
    font-size: 1.2rem;
  }
  
  main.index section.trainer_introduction div.trainer_introduction_wrap a.trainer_introduction_item div.name {
    margin-top: 1rem;
    font-size: 1.6rem;
  }
}

/* ----- voice ----- */

main.index section.voice {
  background-color: #EBEBEB;
}

main.index section.voice p.common_txt {
  text-align: center;
}

main.index section.voice ul.voice_wrap {
  margin-top: min(4.0rem, 40px);
  position: relative;
  z-index: auto;
}

main.index section.voice ul.voice_wrap div.slick-arrow {
  position: absolute;
  width: min(6.0rem, 60px);
  height: min(6.0rem, 60px);
  top: 0;
  bottom: 0;
  margin: auto;
  left: 0;
  transform: translateX(-50%);
  cursor: pointer;
  z-index: 1;
}

main.index section.voice ul.voice_wrap div.slick_next {
  left: auto;
  right: 0;
  transform: translateX(50%);
}

main.index section.voice ul.voice_wrap div.slick-track {
  display: flex;
}

main.index section.voice ul.voice_wrap li.voice_item {
  width: min(30rem, 300px);
  height: auto !important;
  padding: min(3.0rem, 30px) min(2.0rem, 20px);
  margin: 0 min(.8rem, 8px);
  background-color: #fff;
}

main.index section.voice ul.voice_wrap li.voice_item div.icon_area {
  width: min(14rem, 140px);
  height: min(14rem, 140px);
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto;
}

main.index section.voice ul.voice_wrap li.voice_item div.icon_area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

main.index section.voice ul.voice_wrap li.voice_item p.voice_ttl {
  margin-top: min(2.0rem, 20px);
  font-size: min(1.6rem, 16px);
  line-height: 1.4;
}

main.index section.voice ul.voice_wrap li.voice_item p.voice_company {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  line-height: 1.2;
}

main.index section.voice ul.voice_wrap li.voice_item p.voice_name {
  margin-top: min(0.4rem, 4px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  text-align: right;
}

@media (max-width: 799px) {
  
  main.index section.voice p.common_txt {
    text-align: left;
  }
  
  main.index section.voice ul.voice_wrap {
    margin-top: 4.0rem;
  }

  main.index section.voice ul.voice_wrap div.slick-arrow {
    width: 6rem;
    height: 6rem;
    transform: translateX(-30%);
  }
  
  main.index section.voice ul.voice_wrap div.slick_next {
    transform: translateX(30%);
  }
  
  main.index section.voice ul.voice_wrap li.voice_item {
    width: 100%;
    margin: 0 2rem;
    border-radius: .4rem;
    padding: 4.0rem 2.0rem;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item div.icon_area {
    width: 14rem;
    height: 14rem;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item p.voice_ttl {
    margin-top: 2.0rem;
    font-size: 1.4rem;
    line-height: 1.2;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item p.voice_company {
    margin-top: 1.0rem;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.2;
  }
  
  main.index section.voice ul.voice_wrap li.voice_item p.voice_name {
    margin-top: 0.4rem;
    font-size: 1.2rem;
    font-weight: 400;
    text-align: right;
  }
}

/* ----- article ----- */

main.index section.article h2.top_h2 {
  text-align: left;
}

main.index section.article div.article_wrap {
  margin-top: min(4.0rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2.0rem, 20px);
}

main.index section.article div.article_wrap a.article_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 5;
  gap: 0;
  width: 100%;
  border-radius: min(.5rem, 5px);
  background-color: #fff;
  padding: min(1.2rem, 12px) min(1.2rem, 12px) min(2rem, 20px);
  box-shadow: 0 0 min(1rem, 10px) rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

main.index section.article div.article_wrap a.article_item div.img_area {
  width: 100%;
  height: min(21rem, 210px);
  overflow: hidden;
  background-color: #F5F5F5;
}

main.index section.article div.article_wrap a.article_item div.img_area img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

main.index section.article div.article_wrap a.article_item span.knowledge_category {
  margin-top: min(1rem, 10px);
  width: fit-content;
  padding: min(0.6rem, 6px) min(1.0rem, 10px);
  background-color: var(--color-brand_purple);
  color: #fff;
  font-size: min(1.2rem, 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
}

main.index section.article div.article_wrap a.article_item p.name {
  margin-top: min(1rem, 10px);
  font-size: min(1.2rem, 12px);
  line-height: 1.2;
  font-weight: 400;
}

main.index section.article div.article_wrap a.article_item h3.article_ttl {
  margin-top: min(1rem, 10px);
  font-size: min(1.6rem, 16px);
  line-height: 1.2;
}

main.index section.article div.article_wrap a.article_item div.tag_area {
  margin-top: min(2.0rem, 20px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: min(.4rem, 4px);
}

main.index section.article div.article_wrap a.article_item div.tag_area span {
  width: fit-content;
  padding: min(0.6rem, 6px) min(1.0rem, 10px);
  background-color: #fff;
  color: var(--color-brand_purple);
  border: min(.1rem, 1px) solid var(--color-brand_purple);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
}

main.index section.article h3.article_h3 {
  margin-top: min(4.0rem, 40px);
  font-size: min(1.8rem, 18px);
  display: flex;
  align-items: center;
  gap: min(.8rem, 8px);
  cursor: pointer;
}

main.index section.article h3.article_h3::before {
  content: '';
  background-image: url(../images/icon_arrow_down_black.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(2.0rem, 20px);
  height: min(1.0rem, 10px);
  transition: all .8s;
}

main.index section.article h3.article_h3.active::before {
  transform: rotate(180deg);
}

main.index section.article div.tag_box {
  margin-top: 0;
  width: 100%;
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  pointer-events: none;
  transition: all .4s;
}

main.index section.article div.tag_box.active {
  margin-top: min(2.0rem, 20px);
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}

main.index section.article div.tag_box div.tag_wrap {
  min-height: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: min(.4rem, 4px);
}

main.index section.article div.tag_box span {
  font-size: min(1.2rem, 12px);
  width: fit-content;
  padding: min(0.6rem, 6px) min(1.0rem, 10px);
  background-color: #fff;
  color: var(--color-brand_purple);
  border: min(.1rem, 1px) solid var(--color-brand_purple);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
}

@media (max-width: 799px) {
  main.index section.article h2.top_h2 {
    text-align: center;
  }
  
  main.index section.article div.article_wrap {
    margin-top: 4.0rem;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  
  main.index section.article div.article_wrap a.article_item {
    display: block;
    border-radius: .5rem;
    padding: 1rem 1rem 2rem;
    box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1);
  }
  
  main.index section.article div.article_wrap a.article_item div.img_area {
    height: 18rem;
  }
  
  main.index section.article div.article_wrap a.article_item span.knowledge_category {
    margin-top: 1rem;
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
  }
  
  main.index section.article div.article_wrap a.article_item p.name {
    margin-top: 1rem;
    font-size: 1.2rem;
  }
  
  main.index section.article div.article_wrap a.article_item h3.article_ttl {
    margin-top: 1rem;
    font-size: 1.6rem;
  }
  
  main.index section.article div.article_wrap a.article_item div.tag_area {
    margin-top: 2rem;
    gap: .4rem;
  }
  
  main.index section.article div.article_wrap a.article_item div.tag_area span {
    padding: 0.4rem 0.8rem;
    border: .1rem solid var(--color-brand_purple);
    font-size: 1.2rem;
  }
  
  main.index section.article h3.article_h3 {
    margin-top: 4rem;
    font-size: 1.6rem;
    gap: .8rem;
  }
  
  main.index section.article h3.article_h3::before {
    width: 1.6rem;
    height: .8rem;
  }
  
  main.index section.article div.tag_box {
    margin-top: 0;
    width: 100%;
  }
  
  main.index section.article div.tag_box.active {
    margin-top: 2rem;
  }
  
  main.index section.article div.tag_box div.tag_wrap {
    gap: .4rem;
  }
  
  main.index section.article div.tag_box span {
    font-size: 1.2rem;
    padding: 0.4rem 0.8rem;
    border: .1rem solid var(--color-brand_purple);
  }
}

/* ----- info ----- */

main.index section.info h2.top_h2 {
  text-align: left;
}

main.index section.info nav.info_nav {
  margin-top: min(4.0rem, 40px);
}

main.index section.info nav.info_nav ul.info_ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: min(1.5rem, 15px);
}

main.index section.info nav.info_nav ul.info_ul li.info_li {
  width: 100%;
  height: min(5.0rem, 50px);
  background-color: #DEDEDE;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.6rem, 16px);
  font-weight: 700;
  position: relative;
  cursor: pointer;
  transition: all .8s;
}

main.index section.info nav.info_nav ul.info_ul li.info_li::after {
  content: '';
  display: block;
  position: absolute;
  background-image: url(../images/icon_arrow_right_black.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(.6rem, 6px);
  height: min(1.2rem, 12px);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
  transform: translateX(-250%);
  transition: all .8s;
}

main.index section.info nav.info_nav ul.info_ul li.info_li.active {
  background-color: var(--color-brand_purple);
  color: #fff;
  pointer-events: none;
}

main.index section.info nav.info_nav ul.info_ul li.info_li.active::after {
  background-image: url(../images/icon_arrow_right_white.png);
}

main.index section.info dl.info_dl {
  margin-top: min(2.0rem, 20px);
  width: 100%;
  padding: 0;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: absolute;
  left: -999999px;
  opacity: 0;
  pointer-events: none;
  transition: all .8s;
  box-sizing: border-box;
}

main.index section.info dl.info_dl.active {
  position: static;
  opacity: 1;
  pointer-events: auto;
}

main.index section.info dl.info_dl a.info_item {
  padding: min(3.0rem, 30px)  min(4.0rem, 40px) min(3.0rem, 30px) min(2.0rem, 20px);
  padding-left:;
  border-bottom: min(.1rem, 1px) solid #DEDEDE;
  display: flex;
  align-items: start;
  gap: 0;
  position: relative;
}

main.index section.info dl.info_dl a.info_item dt.info_dt {
  width: min(10rem, 100px);
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 2.2;
}

main.index section.info dl.info_dl a.info_item dd.info_dd {
  flex: 1;
  font-size: min(1.8rem, 18px);
  line-height: 1.4;
  letter-spacing: 0;
  display: flex;
  align-items: start;
  gap: min(2.0rem, 20px);
}

main.index section.info dl.info_dl a.info_item dd.info_dd span {
  width: min(10rem, 100px);
  height: min(2.4rem, 24px);
  background-color: #DEDEDE;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: min(1.2rem, 12px);
  flex-shrink: 0;
}

@media (max-width: 799px) {
  main.index section.info h2.top_h2 {
    text-align: center;
  }
  
  main.index section.info nav.info_nav {
    margin-top: 4.0rem;
  }
  
  main.index section.info nav.info_nav ul.info_ul {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.4rem;
  }
  
  main.index section.info nav.info_nav ul.info_ul li.info_li {
    width: 100%;
    height: 4rem;
    font-size: 1.2rem;
    line-height: 1.2;
    padding: 0 0.4rem;
  }
  
  main.index section.info nav.info_nav ul.info_ul li.info_li::after {
    content: none;
  }
  
  main.index section.info nav.info_nav ul.info_ul li.info_li.active::after {
    content: none;
  }
  
  main.index section.info dl.info_dl {
    margin-top: 0rem;
  }
  
  main.index section.info dl.info_dl a.info_item {
    padding: 2rem 0;
    border-bottom:.1rem solid #DEDEDE;
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 1rem;
  }
  
  main.index section.info dl.info_dl a.info_item dt.info_dt {
    width: 100%;
    font-size: 1.2rem;
    line-height: 1;
  }
  
  main.index section.info dl.info_dl a.info_item dd.info_dd {
    flex: none;
    width: 100%;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.4;
    flex-direction: column;
    align-items: start;
    gap: 0.5rem;
  }
  
  main.index section.info dl.info_dl a.info_item dd.info_dd span {
    width: fit-content;
    height: auto;
    padding: 0.4rem 0.8rem;
    font-size: 1.2rem;
  }
}

/* ===== トレーナー自動切り替えアニメーション ===== */
.trainer_introduction_wrap {
  transition: opacity 0.5s ease-in-out;
}

.trainer_introduction_wrap.fade-out {
  opacity: 0;
}

.trainer_introduction_wrap.fade-in {
  opacity: 1;
}

/* スムーズな切り替えのための追加スタイル */
.trainer_introduction_item {
  transition: transform 0.3s ease-in-out;
}

.trainer_introduction_item:hover {
  transform: translateY(-2px);
}


/* 長期休暇のお知らせ */
.announcement-limited {
  background-color: var(--color-gray);
  padding: 30px;
}
.announcement-limited p{
  text-align: center;
}
.announcement-limited .annoucement-title {
  background-color: var(--color-bland_purple);
  color:#fff;
  font-size: min(1.8rem, 18px);
  padding:20px;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media(max-width:799px){
	.announcement-limited .annoucement-title{
		display:block;
	}
}
.announcement-limited .annoucement-title span{
  line-height: 1.5;
  border-left: 1px solid rgb(255 255 255 / 50%);
  padding-left: 20px;
  margin-left: 20px;
}
@media (max-width: 799px) {
  .announcement-limited .annoucement-title span{
	  border-left:0;
	  border-top:1px solid rgb(255 255 255 / 50%);
	  font-size:16px;
	  padding:15px 0 0;
	  margin:15px 0 0;
	  text-align:center;
  }
}