/*------------------------------------
  common
------------------------------------*/
.w-1000 {
    width: 1000px;
    margin: 0 auto;
}

.yellow-underline {
    background: linear-gradient(transparent 70%, #fae800 70%);
}

.english {
    --subject-color: #d8c11a;
}

.math {
    --subject-color: #3e71cd;
}

.japanese {
    --subject-color: #ff64bc;
}

.science {
    --subject-color: #a362e0;
}

.society {
    --subject-color: #56ae3d;
}

.splide__arrow{
    color: #000;
}

.splide__arrow--prev {
    left: -3em;
}

.splide__arrow--next {
    right: -3em;
}

.splide__pagination__page.is-active{
    background-color: #009380;
}

.spacer-s {
    height: 3rem;
}

.spacer-m {
    height: 5rem;
}

.spacer-l {
    height: 8rem;
}

.content-wrap{
    padding: 3rem 0;
}

.background-gray{
    background-color: #f0f0f0;
}

.section-title-upper{
    font-size: 1.25rem;
    color: #009380;
    font-weight: 700;
}

.section-title{
    font-weight: 700;
    font-size: 2rem;
    padding-bottom: 0.25em;
    border-bottom: 3px solid #cbcbcb;
    width: 80%;
    position: relative;
}

.section-title::before{
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 30%;
    height: 3px;
    background-color: #009380;
}

.section-title .-smaller{
    font-size: 0.5em;
    margin-left: 0.5em;
}

.section-title .-attention {
    color: #f00;
}

body.is-fixed{
    overflow: hidden;
}

/*------------------------------------
  apply
------------------------------------*/
.apply-button{
    width: 70%;
    color: #fff;
    font-size: 1.5rem;
    text-align: center;
    padding: 1rem;
    margin: 0 auto;
    display: block;
    background: linear-gradient(to bottom, #fda8a8 , #f00);
    border-radius: 50px;
    font-weight: bold;
}

.apply-before{
    font-weight: 700;
    width: 70%;
    font-size: 1.5rem;
    text-align: center;
    border-radius: 15px;
    border: 2px solid;
    padding: 1rem;
    margin: 0 auto;
    display: block;
}

.apply-after{
    font-weight: 700;
    width: 70%;
    font-size: 1.5rem;
    text-align: center;
    border-radius: 15px;
    padding: 1rem;
    margin: 0 auto;
    display: block;
    background-color: #808080;
    color: #fff;
}

.apply-txt{
    font-weight: bold;
    font-size: 35px;
    text-align: center;
    position: relative;
}

.apply-attention{
    color: #f00;
    font-size: 40px;
}

.apply-txt::after{
    position: absolute;
    content: "";
    top: 50%;
    right: 13rem;
    width: 2rem;
    height: 4px;
    background-color: #000;
    transform: rotate(115deg);
}

.apply-txt::before {
    position: absolute;
    content: "";
    top: 50%;
    left: 13rem;
    width: 2rem;
    height: 4px;
    background-color: #000;
    transform: rotate(65deg);
}

/*------------------------------------
  header-nav
------------------------------------*/
.header-container {
    background-color: #009380;
    padding: 10px;
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 10;
    box-shadow: 0 2px 2px rgba(0,0,0,0.2);
}

.header-nav {
    background-color: #fff;
    border-radius: 8px;
    padding: 5px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9rem;
    min-height: 2.5rem;
}

.logo {
    width: 4rem;
}

.header-nav-list {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex: 1;
    padding: 0 2rem;
}

.header-nav-list li {
    white-space: nowrap;
    line-height: 1.2;
    text-align: center;
    transition: transform 200ms;
}

.header-nav-list li:hover {
    transform: translateY(3px);
}

.header-nav-list li a {
    display: flex;
    align-items: center;
    font-weight: bold;
}

.header-nav-list li a i {
    margin-left: 0.5rem;
}

.header-request-button {
    color: #f00;
    border: 2px solid;
    text-align: center;
    border-radius: 8px;
    padding: 0.4rem 2rem;
    position: relative;
    line-height: 1.2;
    transition: background-color 300ms, color 300ms;
    margin-right: 1rem;
    font-weight: bold;
}

.header-request-button i {
    position: absolute;
    top: 50%;
    right: 0.3rem;
    transform: translateY(-50%);
}

.header-request-button:hover {
    background-color: #f00;
    color: #fff;
}

.header-request-button-green {
    color: #009380;
    border: 2px solid;
    text-align: center;
    border-radius: 8px;
    padding: 0.4rem 2rem;
    position: relative;
    line-height: 1.2;
    transition: background-color 300ms, color 300ms;
    font-weight: bold;
}

.header-request-button-green i {
    position: absolute;
    top: 50%;
    right: 0.3rem;
    transform: translateY(-50%);
}

.header-request-button-green:hover {
    background-color: #009380;
    color: #fff;
}

.mainvisual{
    margin-top: 10px;
    text-align: center;
}

.mainvisual img{
    max-width: 1280px;
    padding: 0 0.5rem;
}

/*------------------------------------
  news
------------------------------------*/
.news-icon {
    background-color: #009380;
    color: #fff;
    font-weight: 700;
    border-radius: 50px;
    padding: 0 1rem;
    width: fit-content;
    margin: 0 auto;
}

.news-title {
    text-align: center;
    font-weight: 700;
    margin: 0.5rem auto 1rem;
    font-size: 1.5rem;
    position: relative;
}

.news-title::before{
    position: absolute;
    content: "";
    top: 50%;
    left: 10rem;
    width: 4rem;
    height: 2px;
    background-color: #000;
    transform: rotate(65deg);
}

.news-title::after{
    position: absolute;
    content: "";
    top: 50%;
    right: 10rem;
    width: 4rem;
    height: 2px;
    background-color: #000;
    transform: rotate(115deg);
}

.news-title .-attention {
    color: #f00;
    font-size: 1.3em;
}

.news-title-bigger{
    text-align: center;
    font-weight: 700;
    font-size: 2rem;
    line-height: 1.1;
    margin-bottom: 0.5rem;
}

.news-title-bigger .-emphasis{
    color: #009380;
}

.news-title-bigger .-bigger{
    font-size: 1.5em;
}

.news-detail{
    background-color: #fee5ca;
    padding: 0.5rem;
}

.news-detail .-detail-title{
    background-color: #009380;
    color: #fff;
    text-align: center;
    font-weight: 700;
    border-radius: 50px;
    width: fit-content;
    margin: 0 auto;
    padding: 0 5rem;
    font-size: 1.2rem;
}

.news-detail .-detail-title .-smaller{
    font-size: 0.7em;
}

.news-detail .-detail-text{
    font-size: 1rem;
    margin: 0.5rem 0;
}

.voice-container{
    display: flex;
    justify-content: space-between;
}

.voice{
    background-color: #fff;
    padding: 1rem;
    flex-basis: 49%;
    border-radius: 15px;
}

.voice .-subject-name{
    background-color: var(--subject-color);
    color: #fff;
    font-weight: 700;
    padding: 0 .5rem;
    width: fit-content;
    display: inline-block;
    font-size: 1.25rem;
}

.voice .-title{
    color: #f00;
    font-weight: 700;
    font-size: 1.25rem;
    display: inline-block;
}

.voice .-detail-block{
    display: flex;
    justify-content: space-between;
    margin-top: 1rem;
}

.voice .-detail-block .-sub-title{
    font-weight: 700;
    font-size: 1rem;
}

.voice .-image-col{
    flex: 1;
}

.voice .-text-col{
    flex: 1.5;
    margin-left: 0.5rem;
}

.voice .-detail-block .-description{
    font-size: .9rem;
    line-height: 1.15;
}

@keyframes scroll {
    0% {
        transform: translateX(-100%);
    }

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

.image-scroll {
    overflow: hidden;
    white-space: nowrap;
    box-sizing: border-box;
    margin-top: 1rem;
}

.image-scroll img {
    width: 300%;
    display: inline-block;
    animation: scroll 40s linear infinite;
}

/*------------------------------------
  point-child
------------------------------------*/
.point-child-title{
    font-size: 2rem;
    padding: 0.25rem 0 0.25rem 1.5rem;
    position: relative;
    margin: 3rem 0 1rem;     
}

.point-child-title::before{
    width: 10px;
    height: 100%;
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #009380;
    border-radius: 10px;
}

.point-child-list-item{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2rem;
    border-radius: 15px;
    background-color: #f7f8f7;
    margin-top: 2rem;
    position: relative;
}

.point-child-list-item .-image{
    flex: 1;
    margin-right: 2rem;
}

.point-child-list-item .-info{
    flex: 1.5;
}

.point-child-list-item .-number{
    color: #009380;
    font-size: 2rem;
    font-weight: bold;
}

.point-child-list-item .-title{
    font-size: 2rem;
    font-weight: bold;
}

.point-child-list-item .-description{
    word-break: auto-phrase;
    width: 95%;
}

.point-child-list-item .-arrow{
    background-color: #fff;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translate(-50%, 50%);
    z-index: 1;
    display: grid;
    place-items: center;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
}

.point-child-list-item .-arrow i{
    font-size: 1.5rem;
    color: #009380;
}

/*------------------------------------
  points
------------------------------------*/
.points-title{
    text-align: center;
    font-size: 2rem;
}

.points-title .-attention{
    color: #f00;
}

.points-list{
    counter-reset: points 0;
}

.points-list-item{
    counter-increment: points;
    background-color: #fff;
    border-radius: 15px;
    margin: 3rem 0;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2rem;
}

.points-list-item:last-child{
    display: block;
}

.points-list-item .-info{
    flex: 2.5;
}

.points-list-item .-number{
    position: absolute;
    top: -1.5rem;
    font-size: 2.5rem;
    font-weight: 700;
    color: #009380;
}

.points-list-item>.-info>.-number::after{
    content: counter(points);
}

.biggest-point{
    position: absolute;
    background-color: #009380;
    color: #fff;
    padding: 0.2em;
    border-radius: 10px;
    text-align: center;
    display: grid;
    place-items: center;
    width: 7rem;
    font-weight: 700;
    top: -2.5rem;
    left: 9rem;
    font-size: 0.9rem;
}

.biggest-point::before{
    width: 1.5rem;
    height: 1.5rem;
    position: absolute;
    content: "";
    clip-path: polygon(49% 23%, 0 100%, 98% 55%);
    bottom: -0.2rem;
    left: -0.5rem;
    background-color: #009380;
}

.points-list-item .-image{
    flex: 1;
}

.points-list-item .-title{
    font-size: 1.5rem;
    margin: 0.5rem 0;
}

.points-list-item .-title .-smaller{
    font-size: 0.7em;
}

.points-list-item .-description{
    word-break: auto-phrase;
}

img[src*="img/three_teachers.png"]{
    max-height: 170px;
    margin-left: auto;
    width: auto;
    display: block;
}

/*------------------------------------
  colmun
------------------------------------*/
.colmun-wrap{
    overflow: hidden;
}

.colmun-wrap .-title{
    font-size: 1.15rem;
    margin: 0.5rem 0 1rem;
}

.colmun-wrap .-description{
    font-size: 1rem;
    word-break: auto-phrase;
    margin-bottom: 2rem;
}

.colmun-wrap .-description .-bold{
    font-weight: bold;
}

.colmun-wrap .-description .-emphasis{
    color: #009380;
    font-weight: bold;
}

.colmun-wrap .-image{
    float: right;
    width: 22%;
    position: relative;
    top: 2rem;
}

/*------------------------------------
  contents
------------------------------------*/
.contents{
    border-radius: 15px;
    border: 2px solid #009380;
    padding: 1.5rem;
    counter-reset: contens 0;
    position: relative;
}

.contents-title{
    text-align: center;
    color: #fff;
    background-color: #009380;
    width: fit-content;
    padding: 0.25rem 2rem;
    border-radius: 50px;
    font-size: 1.25rem;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.contents-item{
    margin: 1rem auto;
    counter-increment: contents;
}

.contents-item .-title{
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0.25rem 0;
    counter-reset: contens 0;
}

.contents-item .-title::before{
    content: counter(contents);
    color: #b00d15;
    margin-right: 0.25rem;
}

.contents-item .-smaller{
    font-size: 0.8rem;
    margin-bottom: 0.25rem;
}

.contents-item .-description{
    /* font-size: 0.9rem; */
}

.lecture-item{
    position: relative;
    padding-left: 1rem;
    margin: 1rem 0;
}

.lecture-item::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 5px;
    height: 100%;
    background-color: #009380;
}

.lecture-item .-copy {
    background: #0b57d0;
    font-size: .9rem;
    font-weight: 700;
    color: #fff;
    width: fit-content;
    padding: 0 0.25rem;
    margin-bottom: 0.25rem;
}

.lecture-item .-name{
    font-weight: 700;
    font-size: 1.1rem;   
    line-height: 1.1;
    margin-bottom: 0.25rem; 
}

.lecture-item .-teacher{
    /* font-size: 0.8em;     */
}

.lecture-item .-number{
    color: #009380;   
}

.lecture-item .-detail{
    font-size: 0.9rem;
}

.lecture-item .-detail li{
    display: flex;
}

.lecture-item .-detail span:nth-child(1){
    font-weight: 700;
    white-space: nowrap;
}

.lecture-item .-detail span:nth-child(1)::after{
    content: "：";
}

/*------------------------------------
  Guideline
------------------------------------*/
.about-item{
    display: flex;
    align-items: center;
    margin: 1rem 0;
}

.about-item .-head-col{
    flex-basis: 15%;
    margin-right: 1rem;
    font-size: 1.2rem;
    color: #fff;
    background-color: #009380;
    border-radius: 8px;
    text-align: center;
    font-weight: 700;
    white-space: nowrap;
    padding: 0.25rem 1rem;
}

.about-item .-detail-col{
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1;
}

.about-item .-detail-col .-smaller{
    font-size: 0.7rem;
    font-weight: normal;
}

.about-item .-detail-col .-attention{
    color: #f00;
}

.about-item .-detail-col .-upper{
    color: #009380;
    text-align: center;
    position: relative;
}

.about-item .-detail-col .-upper::before{
    width: 25%;
    height: 2px;
    position: absolute;
    content: "";
    top: 50%;
    left: 0;
    transform: translate(0, -50%);
    background-color: #009380;
}

.about-item .-detail-col .-upper::after{
    width: 25%;
    height: 2px;
    position: absolute;
    content: "";
    top: 50%;
    right: 0;
    transform: translate(0, -50%);
    background-color: #009380;
}

.about-item .-detail-col .-date{
    display: flex;
    justify-content: space-between;
    margin: 0 auto;
    position: relative;
}

.about-item .-detail-col .-date span:nth-child(1)::before{
    content: "";
    position: absolute;
    top: 50%;
    left: 35%;
    transform: translate(0, -50%);
    width: 4rem;
    height: 7px;
    background: linear-gradient(to right, #009380, #009380 8%, #fff 8%, #fff 10%, #009380 10%, #009380 18%, #fff 18%, #fff 20% , #009380 20%, #009380 28%, #fff 28%, #fff 30%, #009380 30%);
    border-radius: 2px;
}

.about-item .-detail-col .-date span:nth-child(1)::after{
    content: "";
    position: absolute;
    top: 50%;
    left: calc(35% + 4rem);
    transform: translate(0, -50%);
    width: 15px;
    height: 15px;
    background: #009380;
    clip-path: polygon(75% 50%, 0 0, 0 100%);
}