@charset "UTF-8";
.txt-orange {
  color: #FF7E28;
}
.bg-orange {
  background-color: #FFF3E0;
}

h2 {
  font-size: 2.2rem;
  font-weight: bold;
  letter-spacing: .04em;
  line-height: 1.64;
  margin-bottom: 20px;
}
h2.h2--bar {
  padding-bottom: 20px;
  position: relative;
  text-align: center;
}
h2.h2--bar::after {
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  background: #FF7E28;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width:1024px) {
  h2 {
    font-size: 2.8rem;
    margin-bottom: 30px;
  }
  h2.h2--bar {
    padding-bottom: 28px;
  }
  h2.h2--bar::after {
    width: 64px;
  }
}

/*--- nonto ---*/
.nanto {
  padding: 0 10px;
}
.nanto p {
  font-size: 1.3rem;
  font-weight: bold;
  letter-spacing: .05em;
  line-height: 1.3;
  color: #FF7E28;
  padding: 10px 10px 10px 32px;
  border-radius: 10px;
  position: relative;
  margin: 0;
}
.nanto p::before {
  content: "";
  display: block;
  width: 15.4px;
  height: 15.4px;
  background: url("../img/common/nanto.svg") no-repeat center/contain;
  position: absolute;
  top: 10px;
  left: 10px;
}
@media screen and (min-width:1024px){
  .nanto {
    padding: 0 20px;
  }
  .nanto p {
    font-size: 1.4rem;
    padding: 10px 10px 10px 40px;
    border-radius: 13px;
  }
  .nanto p::before {
    width: 16.7px;
    height: 16.7px;
    top: 13px;
    left: 13px;
  }
}

/*--- mv ---*/
.mv {
  padding: 8px 10px 10px;
}
.mv > .inner--full {
  background: url("../img/manatop/mv-sp.webp") no-repeat center/contain;
  aspect-ratio: 355 / 657;
  padding: 26px 10px 10px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
.mv figure {
  width: 92%;
}
.mv figure img {
  width: 100%;
  height: auto;
}
.mv_action {
  display: flex;
  justify-content: center;
  gap: 0 8px;
}
.mv_action__item {
  width: calc((100% - 8px) / 2);
}
.mv_action__item a {
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  color: #53C1CB;
  background: #FFFFFF;
  border-radius: 15px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 164px;
  height: 70px;
  position: relative;
}
.mv_action__item a .arrow-icon {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-67%);
}
.mv_action__item a.sign-up {
  color: #FFFFFF;
  background: #FF7E28;
}
.mv_action__item a.sign-up .one-min {
  font-size: 1.1rem;
  font-weight: bold;
  letter-spacing: .04em;
  line-height: 1;
  color: #FF7E28;
  white-space: nowrap;
  background: #F5FF00;
  border-radius: 3em;
  padding: .3em 1.3em;
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
}
@media screen and (min-width:1024px){
  .mv {
    padding: 8px 20px 10px;
  }
  .mv > .inner--full {
    background: url("../img/manatop/mv-pc.webp") no-repeat center/contain;
    aspect-ratio: 1326 / 688;
    padding: 26px 70px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 4vw 0;
  }
  .mv figure {
    width: 40%;
  }
  .mv_action {
    gap: 0 12px;
  }
  .mv_action__item {
    width: clamp(215px, 16vw, 250px);
  }
  .mv_action__item a {
    font-size: 1.7rem;
    width: 100%;
    height: 75px;
  }
  .mv_action__item a .arrow-icon {
    top: 50%;
    right: 20px;
    transform: translateY(-67%);
  }
  .mv_action__item a.sign-up .one-min {
    font-size: 1.2rem;
    top: -10px;
  }
}

/*--- top_banner ---*/
.top_banner {}
.top_banner .inner--full {
  padding: 0 10px;
}
.top_banner figure img {
  width: 100%;
}
@media screen and (min-width:1024px) {
  .top_banner .inner--full {
    padding: 0 20px;
  }
}
@media screen and (min-width:1440px) {
  .top_banner .inner--full {
    padding: 0 20px;
  }
}

/*--- about ---*/
.about {
  background: #FFFFFF;
  padding: 30px 0 40px;
  border-radius: 0 0 20px 20px;
  position: relative;
  z-index: 3;
}
.about h2 {
  margin-top: 60px;
  position: relative;
}
.about h2::before {
  content: "";
  display: block;
  width: 146px;
  height: 44px;
  background: url("../img/manatop/about_icon.svg") no-repeat center/contain;
  position: absolute;
  top: -57px;
  left: 0;
}
.about_box {
  display: flex;
  flex-direction: column;
  gap: 30px 0;
}
.about_box p {
  font-size: 1.4rem;
  letter-spacing: .03em;
  line-height: 2;
}
.about_box figure {
  margin-bottom: 0;
}
@media screen and (min-width:1024px) {
.about {
  background: #FFFFFF;
  padding: 80px 0;
}
.about h2 {
  margin-top: 90px;
  position: relative;
}
.about h2::before {
  width: 212px;
  height: 62px;
  top: -90px;
}
.about_box {
  flex-direction: row;
  gap: 0 6%;
  align-items: center;
}
.about_box__item:first-child {
  width: 54%;
}
.about_box__item:last-child {
  width: 40%;
  padding-top: 90px;
}
.about_box p {
  font-size: 1.6rem;
  line-height: 1.875;
}
}

/*--- engineer ---*/
.engineer {
  background: #FFF3E0;
  margin-top: -20px;
  padding: 50px 0 20px;
  border-radius: 0 0 20px 20px;
  position: relative;
  z-index: 2;
}
.engineer_box {
  display: flex;
  flex-direction: column;
  gap: 30px 0;
}
.engineer_box p {
  font-size: 1.4rem;
  letter-spacing: .03em;
  line-height: 2;
}
.engineer_box__item a {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: .03em;
  text-decoration: underline;
  display: inline-block;
}
.engineer_box__item figure {
  margin-bottom: 0;
}
@media screen and (min-width:1024px) {
  .engineer {
    padding: 80px 0;
  }
  .engineer h2 {
    font-size: 2.5rem;
    margin-bottom: 25px;
  }
  .engineer_box {
    flex-direction: row;
    gap: 0 6%;
    align-items: center;
  }
  .engineer_box__item:first-child {
    width: 52%;
  }
  .engineer_box__item:last-child {
    width: 42%;
    padding-top: 0;
  }
  .engineer_box p {
    font-size: 1.6rem;
    line-height: 1.875;
  }
}

/*--- engineer-types ---*/
.engineer-types {
  background: #FF7E28;
  margin-top: -20px;
  padding: 50px 0 20px;
/*  border-radius: 0 0 20px 20px;*/
  position: relative;
  z-index: 1;
}
.engineer-types figure {
  margin-bottom: 0;
}
.engineer-types h2 {
  margin-bottom: 5px;
}
.engineer-types h2 + p {
  font-size: 1.4rem;
  letter-spacing: .03em;
  line-height: 1.4;
  text-align: center;
  color: #FFFFFF;
}
.engineer-types-list {
  margin-top: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 30px 0;
  padding-bottom: 30px;
  border-bottom: solid 2px #FFFFFF;
}
.engineer-types-list__item {
  color: #FFFFFF;
}
.engineer-types-list__item figure {
  max-width: 55%;
  margin: 0 auto 7px;
}
.engineer-types-list__item figure img {
  vertical-align: bottom;
}
.engineer-types-list__item h3 {
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: .01em;
  line-height: 1.9;
  text-align: center;
  margin-bottom: 12px;
}
.engineer-types-list__item h3 .num {
  font-family: "Outfit", sans-serif;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: .01em;
  color: #F5FF00;
  display: block;
}
.engineer-types-list__item h3 + p {
  font-size: 1.4rem;
  font-weight: 500;
}
@media screen and (min-width:1024px) {
  .engineer-types {
    padding: 80px 0 30px;
  }
  .engineer-types-list {
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    gap: 0 5%;
    padding-bottom: 60px;
  }
  .engineer-types-list__item {
    width: 28%;
  }
  .engineer-types-list__item figure {
    max-width: 60%;
  }
  .engineer-types-list__item h3 {
    font-size: 1.8rem;
  }
  .engineer-types-list__item:first-child h3 {
    letter-spacing: -.03em;
  }
}

/*--- course ---*/
.course {
  background: #FF7E28;
  padding: 0 0 20px;
  border-radius: 0 0 20px 20px;
  position: relative;
  z-index: 3;
}
.course .inner > p {
  color: #FFFFFF;
  letter-spacing: .03em;
  line-height: 1.875;
}
.course-panel {
  background: #FFFFFF;
  margin-top: 30px;
  padding: 20px;
  border-radius: 10px;
}
.course h2 {
  text-align: center;
  letter-spacing: .03em;
}
.course h2 small {
  display: block;
  font-size: .54em;
  letter-spacing: .04em;
  color: #FFA700;
}
.course-box {
  display: flex;
  flex-direction: column;
  gap: 20px 0;
}
.course-box__item p {
  font-size: 1.4rem;
  letter-spacing: .04em;
  line-height: 2;
}
.course-box__item p small {
  display: block;
  font-size: 1.2rem;
  letter-spacing: .03em;
  line-height: 1.5;
  text-align: left;
  margin-top: 16px;
}
.course-box__item p small a {
  display: inline;
  text-decoration: underline;
  overflow-wrap: break-word;
  word-break: break-all;
}
.movie {
  background: #F7F7F7;
  border-radius: 10px;
  padding: 20px;
  margin-top: 20px;
}
.movie__title {
  text-align: center;
}
.movie__title span {
  font-size: 1.2rem;
  font-weight: bold;
  letter-spacing: .04em;
  line-height: 1;
  text-align: center;
  color: #FFFFFF;
  padding: .4em 1.8em;
  background: #53C1CB;
  border-radius: 3em;
  margin: 0 auto 10px;
  display: inline-block;
}
.movie > p {
  font-size: 1.3rem;
  letter-spacing: .03em;
  line-height: 1.6;
  text-align: center;
}
.movie-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 16px;
}
.movie__bottom {
  margin-top: 40px;
}
.movie__bottom p {
  text-align: center;
  font-size: 1.2rem;
  letter-spacing: .03em;
}
.movie__bottom strong {
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: .04em;
  line-height: 1.4;
  color: #53C1CB;
  position: relative;
}
.movie__bottom strong::after {
  content: "";
  display: inline-block;
  width: 4px;
  height: 17px;
  background: url("../img/manatop/dots.png") no-repeat center/contain;
  position: absolute;
  top: -26px;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 1024px) {
  .course .inner > p {
    font-size: 1.8rem;
    text-align: center;
  }
  .course-panel {
    padding: 35px 24px 24px;
    border-radius: 20px;
  }
  .course h2 {
    font-size: 3rem;
  }
  .course-box {
    flex-direction: row-reverse;
    justify-content: center;
    align-items: center;
    gap: 0 4%;
    padding: 0 30px;
  }
  .course-box__item:first-child {
    width: 31%;
  }
  .course-box__item:last-child {
    width: 65%;
  }
  .course-box__item p {
    font-size: 1.6rem;
  }
  .course-box__item p small {
    display: block;
    font-size: 1.2rem;
    letter-spacing: .03em;
    line-height: 1.5;
    text-align: left;
    margin-top: 16px;
  }
  .movie {
    border-radius: 20px;
    padding: 26px 30px;
    margin-top: 50px;
  }
  .movie__title span {
    font-size: 1.9rem;
  }
  .movie > p {
    font-size: 1.6rem;
  }
  .movie-list {
    grid-template-columns: repeat(3, 1fr);
    margin-top: 30px;
  }
  .movie__bottom {
    margin-top: 60px;
  }
  .movie__bottom p {
    font-size: 1.6rem;
  }
  .movie__bottom strong {
    font-size: 2.2rem;
  }
  .movie__bottom strong::after {
    width: 6px;
    height: 28px;
    top: -42px;
  }
}

/*--- merit ---*/
.merit {
  background: #FFF3E0;
  margin-top: -20px;
  padding: 50px 10px 20px;
  border-radius: 0 0 20px 20px;
  position: relative;
  z-index: 2;
}
.merit h2 {
  display: flex;
  justify-content: center;
  align-items: center;
  padding-bottom: 20px;
  position: relative;
}
.merit h2::after {
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  background: #FF7E28;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
}
.merit h2 figure {
  width: 120px;
  margin: 0;
}
.merit-list__item {
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: .04em;
  line-height: 1;
  padding: 1em 0;
  border-bottom: dashed 1px #FF7E28;
  display: flex;
  align-items: center;
}
.merit-list__item span {
  font-family: "Outfit", sans-serif;
  font-size: 1.8rem;
  letter-spacing: .01em;
  color: #FF7E28;
  margin-right: .8em;
}
.merit a {
  background: #FF7E28;
  border-radius: 3em;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
  color: #FFFFFF;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 365px;
  height: 66px;
  margin: 30px auto 0;
  position: relative;
}
.merit .arrow-icon {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}
@media (min-width: 1024px) {
  .merit {
    margin-top: -20px;
    padding: 110px 0 80px;
    background-image: url("../img/manatop/merit_bg.png");
    background-repeat: no-repeat;
    background-position: center -110px;
    background-size: cover;
  }
  .merit h2 {
    padding-bottom: 28px;
  }
  .merit h2::after {
    width: 64px;
  }
  .merit h2 figure {
    width: 215px;
  }
  .merit-list {
    max-width: 570px;
    margin: 0 auto;
  }
  .merit-list__item {
    font-size: 2.4rem;
  }
  .merit a {
    margin: 60px auto 0;
  }
}

/*--- features ---*/
.features {
  background: #FF7E28;
  margin-top: -20px;
  padding: 50px 0 30px;
  border-radius: 0 0 20px 20px;
  position: relative;
  z-index: 1;
}
.features figure {
  margin-bottom: 0;
}
.features h2 {
  margin-bottom: 5px;
}
.features h2 + p {
  font-size: 1.4rem;
  letter-spacing: .03em;
  line-height: 1.4;
  text-align: center;
  color: #FFFFFF;
}
.features-list {
  margin-top: 38px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 39px 0;
}
.features-list__item {
  color: #FFFFFF;
  display: flex;
  justify-content: space-between;
  gap: 0 10px;
}
.features-list__item:nth-child(even) {
  flex-direction: row-reverse;
}
.features-list__item figure {
  width: calc(50% - 10px);
}
.features-list__item figure img {
  vertical-align: bottom;
}
.features-list__item h3 {
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: .01em;
  line-height: 1.9;
  text-align: center;
  margin-bottom: 12px;
}
.features-list__item h3 .num {
  font-family: "Outfit", sans-serif;
  font-size: 2rem;
  font-weight: bold;
  color: #F5FF00;
  display: block;
}
.features-list__item h3 + p {
  font-size: 1.4rem;
  font-weight: 500;
}
.features a {
  background: #FFFFFF;
  border-radius: 3em;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 365px;
  height: 66px;
  margin: 30px auto 0;
  position: relative;
}
.features .arrow-icon {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  color: #FF7E28;
}

@media screen and (min-width:1024px) {
  .features {
    padding: 80px 0;
  }
  .features-list {
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    gap: 0 5%;
  }
  .features-list__item {
    width: 28%;
    display: block;
  }
  .features-list__item figure {
    width: 100%;
    max-width: 80%;
    margin: 0 auto 10px;
  }
  .features a {
    margin: 30px auto 0;
  }
  .features-list__item h3 {
    font-size: 1.8rem;
    margin-bottom: 0;
  }
}

/*--- case ---*/
.case {
  background: #FFF3E0;
  margin-top: -20px;
  padding: 60px 0 30px;
  border-bottom: solid 1px rgba(85,85,85,0.20);
}
.case .inner {
  padding: 0 10px;
}
.case h2 + p {
  font-size: 1.2rem;
  letter-spacing: .03em;
  line-height: 1.75;
  text-align: center;
  margin-bottom: 16px;
}
.case-list {
  display: flex;
}
.case-list__item{
  height: 100%;
}
.case-list__item > a {
  background: #FFFFFF;
  border-radius: 10px;
  overflow: hidden;
  padding-bottom: 20px;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.case-list__item > a figure {
  aspect-ratio: 335 / 188;
  overflow: hidden;
  border-radius: 10px 10px 0 0;
}
.case-list__item > a figure img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.case-list__text {
  padding: 15px 25px 0;
  flex: 1; /* ここが高さ揃えの肝 */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.case-list__text p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}
.case-list__data span:first-child {
  color: rgba(85,85,85,0.50);
}
.case-list__data .txt-orange {
  text-decoration: underline;
  float: right;
}
.case .btn_row {
  padding: 0 10px;
}
.case .btn_row a {
  background: #FF7E28;
  border-radius: 3em;
  font-size: 1.4rem;
  font-weight: bold;
  letter-spacing: 0;
  line-height: 1;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 365px;
  height: 66px;
  margin: 30px auto 0;
  position: relative;
}
.case .btn_row .arrow-icon {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}
@media screen and (min-width:1024px) {
  .case {
    padding: 110px 0 70px;
  }
  .case h2 + p {
    font-size: 1.8rem;
    margin-bottom: 40px;
  }
  .case .btn_row a {
    margin: 70px auto 0;
  }
  
 /* slick無効時（=通常の3カラム） */
  .case-list:not(.slick-initialized){
    display: flex;
    gap: 40px;
    align-items: stretch; /* 子要素を同じ高さに伸ばす */
  }

  .case-list:not(.slick-initialized) .case-list__item{
    flex: 1 1 0;
    height: auto;
    display: flex;
  }

  .case-list:not(.slick-initialized) .case-list__item > a{
    width: 100%;
    height: 100%;
  }
}

/* -----------------------------
  slick有効時：高さを揃える（SP/PC）
----------------------------- */
.case-list .slick-list {
  padding: 10px 0;
}
.case-list.slick-initialized .slick-track{
  display: flex;
}

.case-list.slick-initialized .slick-slide{
  height: auto;
  display: flex;
}

.case-list.slick-initialized .slick-slide > div,
.case-list.slick-initialized .slick-slide > li{
  width: 100%;
}

/* ガター（スライド間余白） */
.case-list.slick-initialized .slick-slide{
  padding: 0 20px;
  box-sizing: border-box;
}

/*--- faq ---*/
.faq {
  background: #FFF3E0;
  padding: 40px 0 0;
}
.faq__list {
  background: #fff;
  padding: 0 20px;
  border-radius: 10px;
}
.faq__item {
  font-size: 1.4rem;
  letter-spacing: .03em;
  line-height: 1.8;
  padding: 20px 0;
}
.faq__item:not(:first-child) {
  border-top: solid 1px rgba(85,85,85,0.20);
}
.faq__answer,
.faq__question {
  padding-left: 30px;
  position: relative;
}
.faq__answer::before,
.faq__question::before {
  content: "Q.";
  display: inline-block;
  font-family: "Outfit", sans-serif;
  font-size: 2rem;
  font-weight: bold;
  color: #FF7E28;
  position: absolute;
  top: -6px;
  left: 0;
}
.faq__answer {
  margin-top: 15px;
}
.faq__answer::before {
  content: "A.";
  color: #53C1CB;
}
@media screen and (min-width:1024px) {
  .faq {
    background: #FFF3E0;
    padding: 80px 0 20px;
  }
  .faq__list {
    padding: 0 40px 20px;
  }
  .faq__item {
    font-size: 1.6rem;
    padding: 40px 0;
  }
}

.btn_area {
  background: #FFF3E0;
  padding: 20px 0 30px;
}
@media screen and (min-width:1024px) {
  .btn_area {
    padding: 20px 0 70px;
  }
}
















