@charset "utf-8";

/*------------------------------ 共通 ------------------------------*/
html {
  overflow-x: hidden;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  color: #707070;
  overflow-x: hidden;
}

.container {
  width: 90%;
  margin-inline: auto;
}

.inner {
  width: 90%;
  margin-inline: auto;
}

.flex {
  display: flex;
}

.main-link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 191px;
  height: 50px;
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  border-radius: 36px;
  background: transparent;
  border: none;
  position: relative;
  z-index: 1;
}

.main-link::before,
.main-link::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  margin: auto;
  transition: .3s;
  border-radius: 36px;
}

.main-link::before {
  background: #0099D5;
  border: 2px solid #0099D5;
  z-index: -1;
}

.main-link.thick::before {
  background: #F34153;
  border: 2px solid #F34153;
}

.main-link::after {
  background: #0099D540;
  z-index: -2;
}

.main-link.thick::after {
  background: #F3415340;
}

.main-link:hover {
  color: #0099D5;
}

.main-link.thick:hover {
  color: #F34153;
}

.main-link:hover::before {
  background: transparent;
}

.hover-border {
  position: relative;
}

.hover-border::after {
  position: absolute;
  content: "";
  width: 0;
  height: 15px;
  bottom: -5px;
  left: 0;
  transition: .5s;
  background: linear-gradient(to right, #0099D540, #1D93B740);
  z-index: -1;
}

.hover-border:hover::after {
  width: 100%;
}

.line-heading {
  justify-content: flex-start;
  position: relative;
}

.line-heading::before {
  position: absolute;
  content: "";
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background-color: #171717;
}

.dib {
  display: inline-block;
}

.c-triangles-top {
  position: absolute;
  top: 5%;
  left: -5%;
  z-index: -1;
  width: 23.125%;
}

.c-triangles-bottom {
  position: absolute;
  bottom: 5%;
  right: -5%;
  z-index: -1;
  width: 29%;
}


/*------------------------------ ヘッダー ------------------------------*/
header {
  width: 100%;
  position: fixed;
  background-color: #fff;
  z-index: 10;
  box-shadow: 0 3px 3px 0px #0000000a;
}

header .container .logo {
  transition: .3s;
}

header .container .logo:hover {
  opacity: .7;
}

header .container nav ul li .not-main-link {
  font-weight: 700;
  color: #2B2B2B;
}

header .container nav ul li .entry {
  text-align: center;
  line-height: 1.2;
}


/*------------------------------ ファーストビュー ------------------------------*/
#top .fv {
  background-color: #140033;
}

#top .fv .container {
  position: relative;
  width: 95%;
  margin-right: 0;
  margin-left: auto;
}

#top .fv .container .heading-img .heading {
  position: relative;
  z-index: 1;
}

#top .fv .container .heading-img .heading h1 {
  display: block;
  color: #fff;
}

#top .fv .container .heading-img .heading h1 span {
  display: block;
  font-weight: 700;
  opacity: 0;
  transform: translateX(-20%);
  z-index: 1;
  overflow: hidden;
  position: relative;
  width: max-content;
}

@keyframes fvFadeInText {
  0% {}

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

#top .fv .container .heading-img .heading h1 span::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: #fff;
}

@keyframes fvFadeOutText {
  0% {}

  99% {
    background: #fff;
  }

  100% {
    transform: translateX(100%);
    background: #140033;
  }
}

#top .fv .container .heading-img .heading h1 span:first-of-type {
  animation: fvFadeInText .6s .5s ease-in-out 1 forwards;
}

#top .fv .container .heading-img .heading h1 span:nth-of-type(2) {
  line-height: 1;
  animation: fvFadeInText .6s 1s ease-in-out 1 forwards;
}

#top .fv .container .heading-img .heading h1 span:last-of-type {
  animation: fvFadeInText .6s 1.5s ease-in-out 1 forwards;
}

#top .fv .container .heading-img .heading h1 span:first-of-type::before {
  animation: fvFadeOutText .4s 1s ease-in-out 1 forwards;
}

#top .fv .container .heading-img .heading h1 span:nth-of-type(2)::before {
  animation: fvFadeOutText .4s 1.5s ease-in-out 1 forwards;
}

#top .fv .container .heading-img .heading h1 span:last-of-type::before {
  animation: fvFadeOutText .4s 2s ease-in-out 1 forwards;
}

#top .fv .container .heading-img .heading .triangle {
  position: absolute;
  z-index: -1;
}

#top .fv .container .heading-img .heading .triangle1 {
  top: -2%;
  left: 63%;
  width: 30%;
  transform: translate(-30%, 30%);
}

#top .fv .container .heading-img .heading .triangle2 {
  top: 37%;
  left: 24%;
  width: 22%;
  transform: translate(-30%, 0);
}

#top .fv .container .heading-img .heading .triangle3 {
  top: 41%;
  left: 46%;
  width: 32%;
  transform: translate(30%, 5%);
}

#top .fv .container .heading-img .heading .introduction p {
  width: max-content;
  line-height: 1;
  color: #140033;
  background-color: #fff;
  font-weight: 700;
}

#top .fv .container .heading-img .heading .introduction p:last-of-type {
  margin-bottom: 0;
}

#top .fv .container .news {
  background-color: #fff;
  box-shadow: 3px 9px 13px rgb(0 0 0 / 16%);
  border-radius: 4px;
  position: absolute;
  left: 47.5%;
  transform: translate(-50%, 0);
  z-index: 1;
}

#top .fv .container .news .each-news time {
  color: #0099D5;
  font-weight: 700;
}

#top .fv .container .news .main-link {
  position: absolute;
  top: calc(100% + 2rem);
  left: 50%;
  transform: translateX(-50%);
}

#top .management {
  background-color: #F0F1F5;
}

#top .management .inner h2 {
  text-align: center;
  color: #0099D5;
  display: block;
}

#top .management .inner .overview-point .overview h3 {
  color: #2B2B2B;
}

#top .management .inner .overview-point .overview p {
  line-height: 1.6;
}

#top .management .inner .overview-point .point {
  position: relative;
  left: -15px;
}

#top .management .inner .overview-point .point .each-point {
  background-color: #fff;
  border-radius: 9999px;
  text-align: center;
}

#top .management .inner .overview-point .point .each-point:first-of-type {
  position: relative;
}

#top .management .inner .overview-point .point .each-point h3 {
  color: #0099D5;
  width: max-content;
  margin-inline: auto;
  position: relative;
  background: linear-gradient(transparent 50%, rgba(255, 255, 0, 1) 50%);
}

#top .management .inner .overview-point .point .each-point p {
  font-weight: 700;
}

#top .entry {
  background-color: #140033;
  position: relative;
}

#top #entry-program,
#top #entry-seminar {
  position: absolute;
  content: "";
  padding-top: 150px;
  margin-top: -150px;
}

#top .entry.program {
  background-color: #140033;
}

#top .entry.program .inner dl dt {
  background-color: #F34153;
}

#top .entry.program .left-img {
  position: absolute;
  width: 32.76%;
  bottom: 0;
  left: 0;
}

#top .entry.program .left-person-img {
  position: absolute;
  width: 11.823%;
  bottom: 7%;
  left: 5%;
  z-index: 1;
}

@media screen and (max-width: 1400px) {
  #top .entry.program .left-person-img {
    bottom: 10%;
  }
}

@media screen and (max-width: 1000px) {
  #top .entry.program .left-person-img {
    bottom: -4%;
    left: 2%;
  }
}

#top .entry.program .right-img {
  position: absolute;
  width: 26%;
  top: 0;
  right: 0;
}

#top .entry.program .right-person-img {
  position: absolute;
  width: 17%;
  top: -8%;
  right: 2%;
  z-index: 1;
}

@media screen and (max-width: 1400px) {
  #top .entry.program .right-person-img {
    top: -5%;
  }
}

/* #top .entry.program .entry-link {
  cursor: not-allowed;
} */

/* #top .entry.program .entry-link a {
  pointer-events: none;
} */

#top .entry .inner {
  background-color: #fff;
  position: relative;
  z-index: 1;
}

#top .entry .inner dl:last-of-type {
  margin-bottom: 0;
}

#top .entry .inner dl dt {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background-color: #0099D5;
  font-weight: 700;
}

#top .entry .inner dl dd .content {
  font-weight: 700;
  line-height: 1.67;
}

#top .entry .entry-link {
  text-align: center;
  width: fit-content;
  margin-inline: auto;
}

#top .entry .entry-link a {
  margin-inline: auto;
}

#top .entry .entry-link a:hover::after {
  background-color: #F0F1F5;
}

#top .entry .entry-link span {
  color: #2B2B2B;
  font-weight: 700;
}

#top .entry .entry-link .main-link::after {
  background: rgba(255, 255, 255, 0.6);
}

#top .entry .left-img {
  position: absolute;
  width: 30%;
  bottom: 0;
  left: 0;
}

#top .entry .left-person-img {
  position: absolute;
  width: 9.6875%;
  bottom: 20%;
  left: 5%;
  z-index: 1;
}

@media screen and (max-width: 1000px) {
  #top .entry .left-person-img {
    bottom: -3%;
  }
}

/* @media screen and (max-width: 1000px) {
  #top .entry .left-person-img {
    display: none;
  }
} */

#top .entry .right-img {
  position: absolute;
  width: 26%;
  top: 0;
  right: 0;
}

#top .entry .right-person-img {
  position: absolute;
  width: 16.45%;
  top: -10%;
  right: 3%;
  z-index: 1;
}

@media screen and (max-width: 1400px) {
  #top .entry .right-person-img {
    top: -5%;
  }
}

/* @media screen and (max-width: 1000px) {
  #top .entry .right-person-img {
    display: none;
  }
} */

#top .seminar {
  position: relative;
}

#top .seminar h2 {
  color: #2B2B2B;
}

#top .seminar .representative figure {
  background-color: #F0F1F5;
}

#top .seminar .representative figure .img {
  text-align: center;
  display: block;
}

#top .seminar .representative figure figcaption h3 {
  justify-content: flex-start;
  color: #2B2B2B;
}

#top .seminar .detail dl:last-of-type {
  margin-bottom: 0;
}

#top .seminar .detail dl dt {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background-color: #2B2B2B;
  font-weight: 700;
}

#top .seminar .detail dd .content {
  font-weight: 700;
  line-height: 1.67;
}

#top .seminar .detail dd ul li {
  font-weight: 700;
  line-height: 1.67;
  padding-left: 1em;
  text-indent: -1em;
}

#top .seminar .seminar-contents table {
  width: 100%;
}

#top .seminar .seminar-contents table tbody tr {
  font-weight: 700;
}

#top .seminar .seminar-contents table tbody tr th {
  background-color: #0099D5;
  color: #fff;
  border-bottom: 1px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

#top .seminar .seminar-contents table tbody tr:nth-of-type(2n+1) td {
  background-color: #F0F1F5;
}

#top .seminar .c-triangles-bottom {
  bottom: 40%;
}

#top .value {
  background-color: #F0F1F5;
  position: relative;
}

#top .value .inner {
  position: relative;
  z-index: 1;
}

#top .value .inner h2 {
  color: #2B2B2B;
}

#top .value .inner .each-value h3 {
  justify-content: flex-start;
  align-items: center;
  background-color: #F34153;
  color: #fff;
}

#top .value .inner .each-value .content-obligation {
  background-color: #fff;
}

#top .value .inner .each-value .content-obligation dl dt {
  background-color: #f4f4f4;
  color: #2B2B2B;
  font-weight: 700;
  display: flex;
  justify-content: center;
  align-items: center;
}

#top .value .inner .each-value .content-obligation dl dd {
  line-height: 1.75;
}

#top .value .inner .each-value .content-obligation dl dd ul li {
  padding-left: 1em;
  text-indent: -1em;
}

#top .value .c-triangles-top {
  z-index: 0;
}

#top .value .c-triangles-bottom {
  z-index: 0;
}

#top .schedule {
  position: relative;
}

#top .schedule .each-schedule {
  margin-bottom: 80px;
  gap: 0 18px;
  align-items: baseline;
}

#top .schedule .each-schedule:last-of-type {
  margin-bottom: 0;
}

#top .schedule .each-schedule .season {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #fff;
  background-color: #F34153;
  position: relative;
}

#top .schedule .each-schedule .content .heading {
  align-items: center;
}

#top .schedule .each-schedule .content .heading .idea {
  color: #282828;
  background-color: #f4f4f4;
  align-items: center;
  justify-content: center;
}


/*------------------------------ フッター ------------------------------*/
footer {
  background-color: #F8F7F6;
}

footer .inner .copy small {
  font-weight: 700;
}


/*------------------------------ トップに戻る ------------------------------*/
#page-top {
  position: fixed;
  z-index: 9;
  bottom: 20px;
  right: 20px;
}

#page-top a {
  display: block;
  position: relative;
  width: 60px;
  height: 60px;
  transition: .3s;
}

#page-top a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  border-radius: 0;
  box-shadow: 0 3px 10px rgb(0 0 0 / 16%);
  background-color: #fff;
  width: 60px;
  height: 60px;
  transition: .3s;
}

#page-top a:hover:after {
  transform: rotate(45deg);
  border-radius: 50%;
}

#page-top a:before {
  content: "";
  position: absolute;
  z-index: 10;
  top: 55%;
  left: 50%;
  border-style: solid;
  border-color: #0099D5;
  transform: translate(-50%, -50%) rotate(45deg);
  transition: border-color ease 0.1s;
  width: 15px;
  height: 15px;
  border-width: 4px 0 0 4px;
  transition: .5s;
}


/*------------------------------ 404 ------------------------------*/
#not-found .inner {
  text-align: center;
}

#not-found .inner p {
  text-align: center;
  color: #2B2B2B;
}

#not-found .inner h1 {
  margin-bottom: 48px;
  display: block;
}

#not-found .inner a {
  margin-inline: auto;
}


/*------------------------------ お知らせ一覧 ------------------------------*/
#news h1 {
  align-items: center;
  justify-content: center;
  color: #0099D5;
  background-color: #F0F1F5;
  margin-bottom: 60px;
}

#news .inner .news-wrap {
  margin-inline: auto;
}

#news .inner .news-wrap a {
  border-bottom: 1px solid #C7C7C7;
}

#news .inner .news-wrap a time {
  font-weight: 700;
  color: #0099D5;
}

#news .inner .news-wrap a:last-of-type {
  margin-bottom: 0;
}

#news .inner .main-link {
  margin-inline: auto;
  margin-bottom: 90px;
}


/*------------------------------ お知らせ詳細 ------------------------------*/
#single-news h1 {
  align-items: center;
  justify-content: center;
  color: #0099D5;
  background-color: #F0F1F5;
  margin-bottom: 60px;
}

#single-news .inner time {
  font-weight: 700;
  margin-bottom: 10px;
  font-size: 1.8rem;
  color: #0099D5;
  display: block;
}

#single-news .inner h2 {
  font-weight: 700;
  color: #2B2B2B;
  margin-bottom: 40px;
  justify-content: flex-start;
}

#single-news .inner .txt {
  line-height: 1.78;
}

#single-news .inner .txt:first-of-type {
  margin-bottom: 40px;
}

#single-news .inner .txt:last-of-type {
  margin-bottom: 90px;
}

#single-news .inner .img {
  margin-bottom: 40px;
}

#single-news .inner .img img {
  width: 100%;
}

#single-news .inner .prev-next {
  margin-bottom: 61px;
}

#single-news .inner .prev-next a p:first-of-type {
  border: 1px solid #2B2B2B;
  line-height: 1;
  width: 100px;
  height: 40px;
  color: #2B2B2B;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: .3s ease-in-out;
}

#single-news .inner .prev-next a:hover p:first-of-type {
  transform: scale(1.05);
}

#single-news .inner .prev-next a p:last-of-type {
  color: #0099D5;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: .3s;
}

#single-news .inner .prev-next a:hover p:last-of-type {
  text-decoration-color: transparent;
}

#single-news .inner .links {
  justify-content: center;
  gap: 0 54px;
}


/*------------------------------ ページネーション ------------------------------*/
.pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 80px;
  width: 90%;
  margin-inline: auto;
  margin-bottom: 60px;
}

.pagination .current {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1px;
  border: 1px solid #0099D5;
  background: #0099D5;
  color: #fff;
  font-weight: 700;
}

.pagination a {
  transition: .3s;
}

.pagination a:hover {
  opacity: .5;
}

.pagination a.page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1px;
  border: 1px solid #0099D5;
  background: #FFF;
  color: #0099D5;
  font-weight: 700;
}

.pagination a.page-numbers.prev {
  width: 70px;
}

.pagination a.page-numbers.next {
  width: 70px;
}


/*------------------------------ パートナー（共通） ------------------------------*/
.partner {
  border-top: 1px solid #C7C7C7;
}

.partner .inner {
  text-align: center;
}

.partner .inner dl dt {
  color: #0099D5;
  font-weight: 700;
}

.partner .inner dl .each-partner {
  flex-direction: column;
  gap: 30px 0;
  line-height: 1.2;
  padding-top: 6px;
}

.partner .inner dl .each-partner span {
  display: block;
  font-size: 1.4rem;
}


/*------------------------------ お問い合わせ（共通） ------------------------------*/
#contact {
  background-color: #E4EBEF;
}

#contact .inner {
  text-align: center;
}

#contact .inner h2 {
  color: #2B2B2B;
}

#contact .inner a {
  color: #0099D5;
  font-weight: 700;
  z-index: 0;
}