@charset "utf-8";

/* BSAスクールサイト TOP CSS
-------------------------------------------------- */


/*  トップファーストビュー
------------------------------------ */

.header {
    /*    padding-bottom: 60px;*/
    padding-bottom: 20px;
}

.sec-main-visual {
    position: relative;
    z-index: 10;
}

.main-visual {
    margin-bottom: 40px;
}

@media screen and (min-width: 768px) {
    .sec-main-visual {
        padding-bottom: 0;
        margin-bottom: 80px;
    }
}

/* メインビジュアルスライドバー */

.swiper-wrapper .swiper-slide {
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    padding-bottom: 66.6%;
}



.swiper-container {
    position: relative;
    margin-left: 0;
    margin-right: 0;
    border-top-right-radius: 50px 50px;
    height: auto;
}

.swiper-container .swiper-pagination {
    position: absolute;
    left: auto;
    /*    left: 20px;*/
    right: 20px;
    width: 20px;
    height: 60px;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    z-index: 1000;
}

@media screen and (min-width: 768px) {
    .header {
        padding-bottom: 60px;
    }

    .swiper-container {
        border-top-right-radius: 100px 100px;
        width: 75%;
    }

    .swiper-container .swiper-pagination {
        left: 20px;
    }
}

@media screen and (min-width: 992px) {
    .swiper-wrapper .swiper-slide {
        padding: 0;
        height: calc(100vh - 135px);
    }
}/* laptop end */



/* キャッチコピー */

.copy-area {
    position: relative;
    padding: 0 14px;
}

.copy-en {
    width: 100%;
    text-align: center;
}

.copy-en img {
    width: 95%;
}

.copy-jp {
    margin-top: 20px;
    width: 100%;
    text-align: center;
}

.copy-jp img {
    width: 60%;
}

.copy-txt {
    margin-top: 20px;
}

@media screen and (min-width: 768px) {
    .copy-area {
        position: absolute;
        top: 50%;
        right: 3%;
        padding: 0;
        width: 33%;
        min-width: 300px;
        z-index: 5;
        transform: translateY(-66.6%);
    }

    .copy-en img {
        width: 100%;
    }

    .copy-jp {
        text-align: right;
    }

    .copy-jp img {
        width: 80%;
    }
}

@media screen and (min-width: 992px) {
    .copy-area {
        transform: translateY(-50%);
    }

    .copy-txt {
        text-align: right;
    }
}


/*  section
------------------------------------ */

/* BSAの特徴 */

.sec-strong-point {
    padding-left: 37px;
    padding-right: 37px;
}

.sec-strong-point .container {
    padding-left: 0;
    padding-right: 0;
}

.sp-container {
    margin: 80px 0 0 0;
    background-color: #fff;
    border: dashed 1px #0078b5;
    border-radius: 0 50px 0 50px;
}

.sp-container.sp-1 {
    margin-top: 30px;
}

.sp-container img.medal {
    position: relative;
    top: -45px;
    left: calc(50% - 45px);
    height: 90px;
}

.spc-wrapper {
    position: relative;
    margin: 0 auto 0 auto;
    top: -35px;
    width: 85%;
}

.spc-wrapper .sub-ttl {
    margin-bottom: 15px;
}

.spc-wrapper p {
    margin-top: 15px;
}

@media screen and (min-width: 992px) {
    .sec-strong-point .container {
        position: relative;
        display: flex;
        flex-direction: row;
        justify-content: space-between;

        padding: 0;
    }

    .sp-container {
        margin: 30px 0 50px 0;
        position: relative;
        width: 30%;
    }

    .sp-container.sp-1 {
        margin: 30px 0 50px 0;
    }

    .sp-container.sp-2 {
        top: 50px;
        /*        margin-top: 50px;*/
    }

    .sp-container.sp-3 {
        margin: 30px 0 50px 0;
    }

    .spc-wrapper .sub-ttl {
        margin-bottom: 20px;
    }
}

/* コース紹介 */

.sec-courses h2 img {
    width: 50px;
}

.course-diagram img {
    width: 100%;
    height: auto;
}

.course-diagram-comment {
    margin-top: 15px;
    font-size: 1.4rem;
}

.course-list {}

.course-list a {
    text-decoration: none;
}

.course-panel {
    margin-top: 20px;
    border-radius: 8px;
}

.course-panel.elementary {
    background-color: #ff9933;
}

.course-panel.various {
    background-color: #5bb592;
}

.course-panel.msports {
    background-color: #0078b5;
}

.course-panel.rcube {
    background-color: #d95341;
}

.course-panel.ewords {
    background-color: #ffd700;
}

.course-panel img {
    border-radius: 8px 8px 0 0;
}

.course-panel-ttl {
    position: relative;
    padding: 5px 0 0 15px;
    height: 44px;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
}

.course-panel-ttl.ewords {
    color: #555555;
}

.course-panel-ttl::after {
    content: "";
    position: absolute;
    background-image: url("../common/image/round-triangle-white.svg");
    background-repeat: no-repeat;
    top: calc(50% - 6px);
    right: 20px;
    width: 9px;
    height: 10px;
}

@media screen and (min-width: 992px) {
    .sec-courses .container {
        display: flex;
        flex-direction: row;
        justify-content: start;
    }

    .sec-courses .sec-ttl {
        margin-right: 40px;
        width: 75px;
        writing-mode: vertical-lr;
        text-align: left;
    }

    .sec-courses .sec-ttl img {
        display: inline-block;
        width: 60px;
        margin-bottom: 8px;
        margin-left: -10px;
    }

    .sec-courses .sec-ttl span.ttl-jp {
        display: inline-block;
        margin-bottom: 20px;
    }

    .sec-courses .sec-ttl span.ttl-en {
        display: inline-block;
    }

    .course-list {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        flex-wrap: wrap;
        width: 100%;
    }

    .course-panel {
        margin-top: 30px;
    }

    .course-list a {
        width: 48%;
    }

}

/* 説明会 */

.sec-orientation h2 img {
    width: 55px;
}

.orientation-image {
    margin-top: 40px;
}

p.orientation-txt {
    margin-top: 20px;
}

@media screen and (min-width: 992px) {
    .sec-orientation .container {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
    }

    .sec-orientation .container h2 {
        margin-right: 20px;
        width: 75px;
        writing-mode: vertical-lr;
        text-align: left;
    }

    .sec-orientation .container h2 img {
        display: inline;
        margin-bottom: 8px;
    }

    .sec-orientation .container h2 span.ttl-jp {
        display: inline-block;
        margin-bottom: 20px;
    }

    .sec-orientation .container h2 span.ttl-en {
        display: inline-block;
    }

    .sec-orientation .orientation-contents {
        display: flex;
        flex-direction: row;
    }

    .sec-orientation .orientation-contents .orientation-image {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .sec-orientation .orientation-contents .orientation-txt {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 20px 30px;
    }
}


/* 生徒の声 */

.sec-voices h2 img {
    width: 70px;
}

.voice-youtube {
    width: 100%;
    padding: 30px 10%;
}

.voice-youtube iframe {
    max-width: 100% !important;
}

span.voice-copy {
    display: block;
    width: 100%;
    color: #0078b5;
    font-size: 120%;
    font-weight: bold;
    text-align: center;
}

span.voice-status {
    display: block;
    width: 100%;
    font-weight: bold;
    text-align: right;
}

@media screen and (min-width: 992px) {
    .sec-voices {
        padding-bottom: 30px;
    }

    .sec-voices .container {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
    }

    .sec-voices .container h2 {
        margin-right: 40px;
        width: 75px;
        writing-mode: vertical-lr;
        text-align: left;
    }

    .sec-voices .container h2 img {
        display: inline;
        margin-bottom: 8px;
    }

    .sec-voices .container h2 span.ttl-jp {
        display: inline-block;
        margin-bottom: 20px;
    }

    .sec-voices .container h2 span.ttl-en {
        display: inline-block;
    }

    .sec-voices .voice-contents .voice-panel {
        display: flex;
        width: 100%;
        margin-top: 60px;
    }

    .sec-voices .voice-contents .voice-panel:first-of-type {
        margin-top: 30px;
    }

    .sec-voices .voice-contents .voice-panel.right {
        flex-direction: row-reverse;
    }

    .voice-youtube {
        width: 45%;
        padding: 0;
    }

    /*
    .voice-youtube {
        padding-left: auto;
        padding-right: auto;
        width: 45%;
    }
*/
    .sec-voices .voice-contents .voice-panel .voice-txt-area {
        width: 55%;
        padding-left: 50px;
        padding-right: 10px;
    }

    .sec-voices .voice-contents .voice-panel.right .voice-txt-area {
        padding-left: 10px;
        padding-right: 50px;
    }

    .voice-ttl span.voice-copy {
        display: block;
        margin-bottom: 10px;
    }

    span.voice-status {
        position: relative;
        display: block;
        padding-bottom: 20px;
        border-bottom: dashed 1px #006a9f;
    }

    .voice-panel span.voice-status::before {
        content: "";
        position: absolute;
        bottom: -50px;
        left: -50px;
        display: block;
        width: 50px;
        height: 50px;
        border-radius: 0 0 100% 0;
        border-bottom: dashed 1px #006a9f;
    }

    .voice-panel span.voice-status::after {
        content: "";
        position: absolute;
        bottom: -50px;
        left: -50px;
        display: block;
        width: 50px;
        height: 50px;
        border-radius: 0 0 100% 0;
        border-right: dashed 1px #006a9f;
    }

    .voice-panel.right span.voice-status::before {
        left: auto;
        right: -50px;
        border-radius: 0 0 0 100%;
    }

    .voice-panel.right span.voice-status::after {
        left: auto;
        right: -50px;
        border-radius: 0 0 0 100%;
        border-right: none;
        border-left: dashed 1px #006a9f;
    }

    p.voice-txt {
        padding-top: 20px;
    }

    .voice-txt-area {
        /*        padding: 20px 50px 20px 10px;*/
        width: 55%;
    }
}

/* よくある質問 */
.sec-faq .container {
    max-width: 960px;
}

.sec-faq dl {
    margin-bottom: 20px;
    padding-left: 25px;
    padding-bottom: 15px;
    border-bottom: dashed 1px #9c9c9c;
}

.sec-faq dt {
    position: relative;
    margin-bottom: 5px;

    cursor: pointer;
}

.sec-faq dt::before {
    content: "Q";
    position: absolute;
    top: -3px;
    left: -20px;
    color: #0078b5;
    font-family: 'Open Sans', sans-serif;
    font-size: 120%;
    font-weight: bold;
}

.sec-faq dd {
    position: relative;
    margin-top: 15px;
}

.sec-faq dd::before {
    content: "A";
    position: absolute;
    top: -3px;
    left: -20px;
    color: #d22e29;
    font-family: 'Open Sans', sans-serif;
    font-size: 120%;
    font-weight: bold;
}


@media screen and (min-width: 768px) {
    .sec-faq dl {
        padding-left: 60px;
    }

    .sec-faq dt::before,
    .sec-faq dd::before {
        left: -30px;
    }
}

/* tablet end */




/* 活動カレンダー */

.calender-txt {
    text-align: center;
    margin-bottom: 1em;
}

.sec-calendar .calendar-area {
    width: 100%;
    text-align: center;
}

.sec-calendar .calendar-area iframe {
    width: 100% !important;
}
