@charset "utf-8";

:root {
    --vw: 1vw;
    --vh: 1svh;
    /* --blueColor: #2edaf3; */
    --beigeColor:#f6f0cd;
    --lightGreenColor:#81cea2;
    --lightBlueColor:#e4f1fc;
    --orangeColor:#eb7e27;
    --darkBlueColor:#2b3072;
}

@media screen and (min-width: 768px){
    :root {
        --vw: 3.9px;
    }
}

body{
    background-color: #FFFFFF;
}

.irukaSchool {
    /* color:var(--blueColor); */
    /* background-color:var(--lightGreenColor); */
    font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
    font-weight: bold;
    
}

.irukaSchool a.underline {
    text-decoration: underline;
    transition:opacity 0.3s ease-in-out;
}

@media (hover: hover) and (pointer: fine) {
	.irukaSchool a.underline:hover {
        opacity:0.6;
	}
}

.centerWrap a{
    color:unset;
}

.pcSide {
    display:none;
    background-color:var(--lightGreenColor);
}

.centerWrap {
    position:relative;
    width:100vw;
}

section {
    position:relative;
}

.sectionMain {
    position:relative;
    z-index:2;
}

.pageTop {
    position:relative;
    width:100%;
    min-height:max(500px,calc(100vh - 50px));
    min-height:max(500px,calc(var(--vh, 1vh) * 100 - 50px));
    background-color:var(--lightGreenColor);
}

.pageTopTitleWrap {
    position:relative;
    width:100%;
    min-height:max(500px,calc(100vh - 50px));
    min-height:max(500px,calc(var(--vh, 1vh) * 100 - 50px));
    display:flex;
    justify-content: center;
    align-items: center;
}

.pageTopTitleWrap img {
    margin-top: -61px;
    width:calc(67.95 * var(--vw));
    height:auto;
    transform:scale(2);
}

.waveBottom1,
.waveBottom2,
.waveBottom3 {
    position:absolute;
    bottom:0px;
    width:100%;
    height:96px;
    overflow:hidden;
}

.waveBottom1::after,
.waveBottom2::after,
.waveBottom3::after {
    content:'';
    position:absolute;
    left:0px;
    bottom:0px;
    width:100%;
    height:96px;
    background-repeat: repeat-x;
    background-position:center top;
    background-size:calc(142.5049309664694 * var(--vw)) calc(493.0966469428008 * var(--vw));
    z-index:3;
    animation:waveAnimation 2s ease-in-out infinite;
}

@keyframes waveAnimation {
    0% {
        transform:translate(0,0);
    }
    50% {
        transform:translate(0,10px);
    }
    100% {
        transform:translate(0,0);
    }
}

@keyframes waveAnimation2 {
    0% {
        transform:translate(0,0);
    }
    50% {
        transform:translate(0,5px);
    }
    100% {
        transform:translate(0,0);
    }
}


.waveBottom1::after {
    background-image:url(../img/wave1.svg);
}


.waveBottom2::after {
    background-image:url(../img/wave2.svg);
    animation-duration:2.2s;
}

.waveBottom3::after {
    background-image:url(../img/wave3.svg);
    animation-duration:2.5s;
}

.irukaBottom1,
.irukaBottom2 {
    position:absolute;
    width:calc(18.14 * var(--vw));
    height:calc(19.35 * var(--vw));
}

.irukaBottom1::after,
.irukaBottom2::after {
    content:'';
    position:absolute;
    left:0px;
    top:0px;
    width:100%;
    height:100%;
    background-image:url(../img/iruka.svg);
    background-size:contain;
    background-repeat: no-repeat;
}

.irukaBottom1 {
    right:calc(7.2 * var(--vw));
    bottom:calc(7.8 * var(--vw));
    animation:irukaAnimation 2s 0.05s ease-in-out infinite;
}

.irukaBottom2 {
    left:calc(6 * var(--vw));
    bottom:calc(5.5 * var(--vw));
    animation:irukaAnimation 2.5s 0.05s ease-in-out infinite;
}

.irukaBottom1::after {
    transform:rotate(55deg);
    animation:irukaAnimation1 2s 0.05s ease-in-out infinite;
}

.irukaBottom2::after {
    transform:rotate(-169deg);
    animation:irukaAnimation2 2.5s 0.05s ease-in-out infinite;
}

@keyframes irukaAnimation {
    0% {
        transform:translate(0,0);
    }
    50% {
        transform:translate(0,20px);
    }
    100% {
        transform:translate(0,0);
    }
}

@keyframes irukaAnimation1 {
    0% {
        transform:rotate(55deg);
    }
    50% {
        transform:rotate(45deg);
    }
    100% {
        transform:rotate(55deg);
    }
}

@keyframes irukaAnimation2 {
    0% {
        transform:rotate(-184deg);
    }
    50% {
        transform:rotate(-174deg);
    }
    100% {
        transform:rotate(-184deg);
    }
}

.sectionMain h2 {
    position:relative;
    margin-bottom:calc(7.05 * var(--vw));
    z-index:4;
}


/* About */
.about {
    background-color:var(--lightBlueColor);
    padding-top:1px;
}

.about .sectionMain {
    position:relative;
    /* margin-top:calc(85.77 * var(--vw)); */
    margin-top:calc(85.77 * 1.5 * var(--vw));
    background-color:var(--orangeColor);
    padding-bottom:calc(30 * var(--vw));
}

.aboutBubble {
    position:absolute;
    left:calc(50% - 2.56 * var(--vw));
    top:calc(-6.33 * var(--vw));
    width:calc(12.43 * var(--vw));
    height:auto;
    z-index:4;
    transform:scale(2);
}

.aboutSchoolSymbol {
    position:relative;
    left:calc(-1.795 * var(--vw));
    top:calc(-51.795 * var(--vw));
    width:calc(103.59 * var(--vw));
    padding-bottom:calc(15 * var(--vw));
}

.aboutChime {
    position:absolute;
    top:0px;
    width:100%;
    height:calc(123 * var(--vw));
    z-index:1;
}

.aboutChime img {
    position:absolute;
    width:calc(11.02 * var(--vw));
    height:auto;
    opacity:0;
}

.aboutChime.sr-done img {
    animation:chimeAnimation 1s ease-out forwards, chimeAnimation2 0.3s ease-out forwards;
    transform-origin: 50% 0%;
}

.aboutChime.sr-done .aboutChime2 {
    animation-delay: 1s;
}

.aboutChime.sr-done .aboutChime3 {
    animation-delay: 2s;
}

.aboutChime.sr-done .aboutChime4 {
    animation-delay: 3s;
}


@keyframes chimeAnimation {
    0% {
        transform:scale(0.9,1.2) translate(0,20%);
    }
    100% {
        transform:translate(0,0);
    }

}

@keyframes chimeAnimation2 {
    0% {
        opacity:0;
    }
    100% {
        opacity:1;
    }

}


.aboutChime1 {
    left:calc(68.33 * var(--vw));
    top:calc(33.26 * var(--vw));
}

.aboutChime2 {
    left:calc(52.31 * var(--vw));
    top:calc(60.95 * var(--vw));
   
}

.aboutChime3 {
    left:calc(34.1 * var(--vw));
    top:calc(49.67 * var(--vw));
}

.aboutChime4 {
    left:calc(19.74 * var(--vw));
    top:calc(73 * var(--vw));
}

.about .sectionMain p {
    position:relative;
    width:calc(79.49 * var(--vw));
    margin:calc(5 * var(--vw)) auto;
}

.about .sectionMain h2 {
    position:relative;
    width:calc(79.49 * var(--vw));
    margin:calc(10.51 * var(--vw)) auto ;
}


/* features */
.features {
    background-color:var(--darkBlueColor);
    padding-bottom:calc(38 * var(--vw));
}

.features h2 img {
    width:calc(58.72 * var(--vw));
    height:auto;
}

/* keen- slider */
.featuresSlide .keen-slider {
    padding-bottom:calc(7.7 * var(--vw));
}

.featuresSlide .keen-slider__slide {
    box-shadow: 0px 12px 5px rgba(0,0,0,0.5);
}


.featuresSlide img {
    width:100%;
    height:auto;
}

.navigation-wrapper {
    position: relative;
  }
  
  .dots {
    display: flex;
    padding: calc(2.67 * var(--vw)) 0;
    justify-content: center;
  }
  
  .dot {
    border: none;
    width: 7px;
    height: 7px;
    background: var(--beigeColor);
    border-radius: 50%;
    margin: 0 3px;
    padding: 0p x;
    opacity:0.3;
    cursor: pointer;
  }
  
  .dot:focus {
    outline: none;
  }
  
  .dot--active {
    opacity:1;
  }

/* timetalbe */
.timetable {
    background-color: var(--lightBlueColor);
    padding-bottom:calc(30 * var(--vw));
}

.timetable h2 img {
    width:calc(36.67 * var(--vw));
    height:auto;
}

.timetablet p img {
    width:calc(87.69 * var(--vw));
    height:auto;
}

.eventBtn {
    position:relative;
    width:calc(100% - 30px);
    background-color:var(--lightGreenColor);
    margin:calc(6.02 * var(--vw)) auto;
}

.eventBtnText {
    width:calc(62.44 * var(--vw));
    height:auto;
    padding:calc(6.67 * var(--vw)) 0px;
}

/* info */
.info {
    background-color:var(--lightGreenColor);
    padding-bottom:calc(32 * var(--vw));
}

.info h2 img {
    width:calc(50 * var(--vw));
    height:auto;
}

.infoMapText {
    width:calc(83.46 * var(--vw));
    height:auto;
    margin-bottom:calc(5.64 * var(--vw));
}

.infoMap {
    width:calc(100% - 30px);
    height:auto;
    margin-bottom:calc(7.95 * var(--vw));
}

/* sns */
.sns {
    background-color:var(--lightBlueColor);
    padding-top: 1px;
}

.sns h2 {
    font-size: 16px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: 0em;
    text-align: center;
    color:var(--darkBlueColor);
    margin-bottom:0px;
}

.snsBtns {
    display:flex;
    justify-content: center;
    margin:0px auto;
    padding-top:30px;
    padding-bottom:30px;
}

.snsBtn {
    position:relative;
    width:51px;
    height:51px;
    display:flex;
    justify-content: center;
    align-items: center;
    margin:0px 19px;
    transition:transform 0.3s ease-in-out,filter 0.3s ease-in-out;
}

.snsBtns a {
    overflow:visible;
}

.snsBtn::after {
    content:'';
    position:absolute;
    left:0px;
    top:0px;
    width:100%;
    height:100%;
    background-color:#FFF;
    opacity:0;
    border-radius: 50%;
    transition:opacity 0.3s ease-in-out;
}


@keyframes snsBtnBGAnime {
    0% {
        transform: scale(1.05,0.95);
    }
    50% {
        transform: scale(0.95,1.05);
    }
    100% {
        transform: scale(1.05,0.95);
    }
}


.snsBtn img {
    position:relative;
    transition:transform 0.3s ease-in-out;
}






.gotoMainBtn::after {
    content:'';
    position:absolute;
    left:0px;
    top:0px;
    width:100%;
    height:100%;
    background-color:#FFF;
    opacity:0;
    transition:opacity 0.3s ease-in-out;
}

@media (hover: hover) and (pointer: fine) {
	.gotoMainBtnWrap:hover .gotoMainBtn::after {
        opacity:0.2;
	}

    .projectArchiveBtn:hover::after {
        opacity:0.2;
    }

    .eventBtn::before {
        content:'';
        position:absolute;
        left:0px;
        top:0px;
        width:100%;
        height:100%;
        background-color:#FFF;
        opacity:0;
        transition:opacity 0.3s ease-in-out;
    }

    .eventBtn:hover::before { 
        opacity:0.2;
    }

    .eventBtn img:first-of-type {
        position:relative;
    }
}
    

.gotoMainBtn {
    position:relative;
    width:calc(100% - 30px);
    background-color:#12bfcf;
    color:#FFFFFF;
    margin:10px auto;
}

.gotoMainBtnText1 {
    padding-top:26px;
    margin:0px auto;
}

.gotoMainBtnText2 {
    margin:21px auto 26px;
}

.gotoMainBtnText3 {
    font-size: 14px;
    font-weight: 400;
    line-height: 17px;
    letter-spacing: 0em;
    text-align: center;
    margin:0px auto;
    padding-bottom:20px;
}

.gotoMainBtnBlank {
    position:absolute;
    right:15px;
    bottom:15px;
}

@media (hover: hover) and (pointer: fine) {
    .snsBtn:hover::after {
        opacity:0.2;
    }
}


footer {
    position:relative;
    background-color:var(--lightBlueColor);
    padding-top:25px;
    padding-bottom:80px;
}


footer p {
    font-size: 10px;
    font-weight: 600;
    line-height: 10px;
    letter-spacing: 0em;
    text-align: center;
    color: var(--lightGreenColor);
}

/* ::::::::::::::::::::::::::::::::: PC ::::::::::::::::::::::::::::::::: */
@media screen and (min-width: 768px){

    .centerWrap::before,
    .centerWrap::after {
        content:'';
        position:absolute;
        top:0px;
        width:15px;
        height:100%;
    }

    .centerWrap::before {
        left:-15px;
        background: linear-gradient(to left, rgba(0,179,196,0.3), rgba(0,179,196,0));
        mix-blend-mode: multiply;
    }

    .centerWrap::after {
        right:-15px;
        background: linear-gradient(to right, rgba(0,179,196,0.3), rgba(0,179,196,0));
        mix-blend-mode: multiply;
    }

    .pcSide {
        display:block;
        position:fixed;
        left:0px;
        top: 80px;
        width:100%;
        height:calc(100% - 80px);
        color:var(--beigeColor);
    }

    .pcSide a {
        color:unset;
    }

    .pcSideLeft,
    .pcSideRight {
        position:absolute;
        top:0px;
        width:calc(50% - 195px);
        height:100%;
    }

    .pcSideLeft > div,
    .pcSideRight > div {
        opacity:0;
        transition:opacity 0.5s ease-in-out;
    }

    .pcSideLeft {
        left:0px;
        display:flex;
        justify-content: center;
        align-items: center;
    }

    .pcSideRight {
        right:0px;
        display:flex;
        justify-content: center;
        align-items: center;
    }

    .pcSideRight .pageTopFace {
        margin-top:-40px;
    }
    
    .pcSideRight .pageTopSub2 {
        margin-top:-10px;
    }

    .pcSidePageTop {
        width:295px;
        height:100%;
        max-height:465px;
    }

    .pcSidePageTop .pageTopTitleWrap {
        min-height:auto;
        height:100%;
    }

    .pcSidePageTop .pageTopTitle {
        transform:scale(0.759);
    }

    .pcSidePageTop .pageTopText1 {
        top:0px;
        right:0px;
    }

    .pcSidePageTop .pageTopText2 {
        bottom:0px;
        left:0px;
    }

    
    .centerWrap {
        width:390px;
        margin:0px auto;
    }

    .pageTop .waveBottom1 {
        height:157px;
    }

    .pageTop .waveBottom1::after {
        height:157px;
    }

    .pcSideIruka {
        position:absolute;
        bottom:-160px;
        width:415px;
        height:444px;
        animation: waveAnimation2 2s 0.05s ease-in-out infinite;
    }

    .pcSideIruka::after {
        content:'';
        position:absolute;
        left:0px;
        bottom:0px;
        width:100%;
        height:100%;
        background-image:url(../img/iruka.svg);
        background-size:contain;
        background-repeat:no-repeat;
    }

    .pcSideLeft .pcSideIruka {
        left:calc(50% - 207px + 80px);
    }

    .pcSideLeft .pcSideIruka::after {
        transform:rotate(-50deg) scale(-1,1);
    }

    .pcSideRight .pcSideIruka {
        left:calc(50% - 207px - 80px);
    }

    .pcSideRight .pcSideIruka::after {
        transform:rotate(50deg);
    }

    .pcSideWave {
        position:absolute;
        left:0px;
        bottom:0px;
        width:100%;
        height:157px;
        background-image:url(../img/wave1.svg);
        background-size:calc(142.5049309664694 * var(--vw)) calc(493.0966469428008 * var(--vw));
        animation: waveAnimation 2s ease-in-out infinite;
    }

    .pcSideLeft .pcSideWave {
        background-position:calc(100% + 195px) top;
    }

    .pcSideRight .pcSideWave {
        background-position:82.88px top;
    }

    .pageTopTitleWrap img {
        margin-top: -121px;
    }

    .pcSideLogo {
        margin-top:-90px;
    }

    .aboutBubble {
        top:calc(-8.33 * var(--vw) - 30px);
    }


    .keen-slider {
        cursor:grab;
    }

    .keen-slider.dragging {
        cursor:grabbing;
    }
}

@media screen and (max-height: 1000px){
    .pcSideLogo {
        margin-top:-20vh;
    }
}


@media screen and (max-height: 780px){
    .pcSideLogo {
        margin-top:-35vh;
        transform:scale(0.75);
    }

    .pcSideLeft .pcSideIruka {
        left:calc(50% - 207px + 60px);
    }

    .pcSideLeft .pcSideIruka::after {
        transform:rotate(-50deg) scale(-0.75,0.75);
    }

    .pcSideRight .pcSideIruka {
        left:calc(50% - 207px - 60px);
    }

    .pcSideRight .pcSideIruka::after {
        transform:rotate(50deg) scale(0.75);
    }

}

/* ::::::::::::::::::::::::::::::::: PC ::::::::::::::::::::::::::::::::: */
/* ヘッダーまわりのみ */
@media screen and (min-width: 990px){
    .pageTop {
        min-height:calc(100vh - 80px);
    }

    .pageTopTitleWrap {
        min-height:max(600px,calc(100vh - 80px));
    }
}

@media screen and (min-width:1100px) {

    .pcSideLeft > div,
    .pcSideRight > div {
        opacity: 1;
    }

}

@media screen and (max-height: 550px){
    .pcSideLeft > div,
    .pcSideRight > div {
        opacity: 0;
    }
}