/* 共通 */
/*
@font-face{
    font-family: "LogoTypeGothic";
    
}
*/

body {
    overflow-x: hidden;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
}

/* Loading-Screen */

#loading_screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: white;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.5s ease;
}

#loading_screen.hidden {
    opacity: 0;
    pointer-events: none;
}

@keyframes fade_in_out {
    0% {
        transform: translateX(-100px);
        opacity: 0;
    }

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

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

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

.loader_img_1 {
    width: 30%;
    height: auto;
    position: relative;
    animation: fade_in_out 2s ease-in-out infinite;
}

.loader_img_2 {
    width: 40%;
    height: auto;
    position: relative;
    animation: fade_in_out 2s ease-in-out infinite;
}

/* top */

.top {
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

.triangle1 {
    background: #2b7397;
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.triangle2 {
    background: #2b6d97;
    clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.tr1 {
    width: 50vw;
    height: 50vw;
    position: absolute;
    top: -5%;
    right: 25%;
}

.tr2 {
    width: 50vw;
    height: 50vw;
    position: absolute;
    top: 2%;
    left: -40%;
}

.tr3 {
    width: 50vw;
    height: 50vw;
    position: absolute;
    top: 2%;
    left: -5%;
}

.tr4 {
    width: 42vw;
    height: 42vw;
    position: absolute;
    bottom: 50%;
    left: -25%;
}

.tr5 {
    width: 55vw;
    height: 55vw;
    position: absolute;
    bottom: 45%;
    right: 0;
}

.tr6 {
    width: 42vw;
    height: 42vw;
    position: absolute;
    bottom: 25%;
    left: -25%;
}

.tr7 {
    width: 42vw;
    height: 42vw;
    position: absolute;
    bottom: 30%;
    right: 0;
}

.tr8 {
    width: 35vw;
    height: 35vw;
    position: absolute;
    bottom: 3%;
    left: -20%;
}

.tr9 {
    width: 55vw;
    height: 55vw;
    position: absolute;
    bottom: 3%;
    right: 0;
}

.tr10 {
    width: 55vw;
    height: 55vw;
    position: absolute;
    bottom: 3%;
}

.rectangle {
    position: absolute;
    background: white;
}

.rect2 {
    position: absolute;
    width: 15vw;
    background: white;
    height: 30vw;
    right: 20%;
    top: 10%;
}

.img_title {
    width: 30vw;
    position: absolute;
    top: 5%;
    right: 7%;
    z-index: 500;
}

.mitofirst {
    position: absolute;
    width: 49vw;
    height: auto;
    top: 40%;
    right: -5%;
}

.gakuensai {
    position: absolute;
    width: auto;
    height: 50vw;
    top: 18%;
    left: 8%;
}

.mag_gray {
    width: 80vw;
    height: auto;
    position: absolute;
    top: 1%;
    left: -15%;
}

.mag_white {
    width: 80vw;
    height: auto;
    top: 1%;
    left: -21%;
    position: absolute;
}

.ic_gray {
    width: 40vw;
    height: auto;
    position: absolute;
    top: 0;
    right: -5%;
}

.ic_gray_2 {
    width: 40vw;
    height: auto;
    position: absolute;
    top: 4%;
    right: -5%;
}

.mag_gray_h {
    position: absolute;
    width: 50vw;
    bottom: 9%;
    right: -13%;
    transform: rotate(90deg);
}

.ic_gray_h {
    position: absolute;
    width: 25vw;
    bottom: 2%;
    left: -4%;
}

.ic_gray_2_h {
    position: absolute;
    width: 25vw;
    bottom: 3%;
    left: -4%;
}

.mag_gray_2_h {
    position: absolute;
    width: 50vw;
    bottom: 10%;
    right: -13%;
    transform: rotate(90deg);
}

.magic_dots {
    position: absolute;
    width: 8vw;
    right: 22%;
    bottom: 30%;
}

.moyamoya {
    position: relative;
    display: block;
    height: 95vh;
    margin-left: auto;
    margin-right: auto;
    top: 5%;
}

.fukurou_mobile{
    width: 10vh;
    position: absolute;
    visibility:hidden;
}

.fukurou {
    width: 80vh;
    position: absolute;
    left: 50%;
    top: 30%;
    transform: translateX(-50%);
}

.nittei_sat {
    position: absolute;
    font-family: "Source Han Sans JP", sans-serif;
    left: 24%;
    bottom: 12%;
    color: white;
    text-align: center;
    font-size: 15px;
}

.nittei_sat span {
    font-size: 20px;
    color: #e4e4e4;
    font-weight: bold;
}

.nittei_sun {
    position: absolute;
    font-family: "Source Han Sans JP", sans-serif;
    right: 24%;
    color: white;
    text-align: center;
    font-size: 15px;
    bottom: 12%;
}

.nittei_sun span {
    font-size: 20px;
    color: e4e4e4;
    font-weight: bold;
}

/* middle icon */

#mid_logo {
    top: 40vh;
}

@keyframes fadeIn {
    0% {
        transform: translateY(40px);
        opacity: 0;
    }

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

.mid_logo_frame{
    width: 100vw;
    height: 110vh;
    display: block;
    position: relative;
}

.mid_logo {
    opacity: 0;
    width: 60vw;
    display: block;
    position: absolute;
    top: 10vh;
    left: 20vw;
    animation: fadeIn 2s linear 3s forwards;
}


/* Introduction */

.introduction_frame {
    width: auto;
    height: auto;
    overflow: hidden;
    display: inline-block;
    margin: 30px;
}

span {
    display: inline-block;
}

.introduction {
    width: 100%;
    position: relative;
    top: 20px;
}

/* News */

.news_frame {
    width: auto;
    height: auto;
    margin: 30px;
    background-color: #2b7397;
}

.news_base_container {
    display: flex;
    align-items: center;
}

.news_base_title {
    margin-left: 30px;
    margin-top: 30px;
    margin-right: 50px;
    color: white;
    font-family: "LogoTypeGothic", sans-serif;
    font-size: 35px;
}

.link_all {
    color: white;
    text-decoration: none;
    font-family: "LogoTypeGothic", sans-serif;
    position: absolute;
    right: 0;
    margin-top: 22px;
    margin-right: 90px;
}

.news_style {
    background-color: #2b7397;
    padding: 20px;
}

.old_news {
    display: none;
}

.news_date {
    margin-top: 20px;
    margin-left: 10px;
    font-family: "LogoTypeGothic", sans-serif;
    font-size: 30px;
    color: white;
}

.news_title {
    margin-top: 10px;
    margin-left: 10px;
    margin-bottom: 5px;
    font-family: "logoTypeGothic", sans-serif;
    font-size: 20px;
    color: white;
}

.news_line {
    margin-left: 10px;
    margin-right: 10px;
    height: 2px;
    background-color: azure;
}

#toggleButton_news {
    width: 30px;
    height: 30px;
    background-color: #2b7397;
    border-radius: 4px;
    position: absolute;
    cursor: pointer;
    margin: 10px 0;
    right: 0;
    margin-right: 50px;
    margin-top: 30px;
    user-select: none;
}

#toggleButton_news:hover {
    background-color: #0056b3;
}

#toggleButton_news::before,
#toggleButton_news::after {
    content: "";
    position: absolute;
    background-color: #ffffff;
    transition: all 0.2s ease;
}

#toggleButton_news::before {
    width: 16px;
    height: 2px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#toggleButton_news::after {
    width: 2px;
    height: 16px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#toggleButton_news.expanded::after {
    opacity: 0;
}

/* Blog */

.old_blog {
    display: none;
}

#toggleButton_blog {
    width: 30px;
    height: 30px;
    background-color: #2b7397;
    border-radius: 4px;
    position: absolute;
    cursor: pointer;
    margin: 10px 0;
    user-select: none;
    right: 0;
    margin-right: 50px;
    margin-top: 30px;
}

#toggleButton_blog:hover {
    background-color: #0056b3;
}

#toggleButton_blog::before,
#toggleButton_blog::after {
    content: "";
    position: absolute;
    background-color: #ffffff;
    transition: all 0.2s ease;
}

#toggleButton_blog::before {
    width: 16px;
    height: 2px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#toggleButton_blog::after {
    width: 2px;
    height: 16px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#toggleButton_blog.expanded::after {
    opacity: 0;
}

.blog_link {
    text-decoration: none;
}

/* Footerはcommon_footerに分離しました2025 06 18 平島 */

/* 携帯向け要素 */
@media (max-width: 480px) {
    /* top */
    .mitofirst {
        position: absolute;
        width: 49vw;
        height: auto;
        top: 40%;
        right: 0%;
    }

    .ic_gray {
        width: 40vw;
        height: auto;
        position: absolute;
        top: 0;
        right: 0%;
    }

    .ic_gray_2 {
        width: 40vw;
        height: auto;
        position: absolute;
        top: 4%;
        right: 0%;
    }

    .fukurou_mobile{
        visibility:visible;
        position: absolute;
        left: 50%;
        top: 28%; 
        width: 100vw;
        height: auto;
        transform: translateX(-50%);
    }

    .fukurou {
        visibility: hidden;
        position: absolute;
        left: 40%;
        top: 30%; 
        width: 10vh;
    }

    .moyamoya {
        position: relative;
        height: 160vw;
        top: 5%;
        left: 50%;
        transform: translateX(-50%);
    }

    .nittei_sat {
        position: absolute;
        font-family: "Source Han Sans JP", sans-serif;
        left: 13%;
        bottom: 8%;
        color: white;
        text-align: center;
        font-size: 15px;
    }

    .nittei_sun {
        position: absolute;
        font-family: "Source Han Sans JP", sans-serif;
        right: 13%;
        color: white;
        text-align: center;
        font-size: 15px;
        bottom: 8%;
    }
}

/* PC向け要素 */
@media (min-width: 960px) {
    /* top */
    /*
    .tr1 {
        width: 50vh;
        height: 50vh;
        position: absolute;
        top: -5%;
        right: 25%;
    }

    .tr2 {
        width: 50vh;
        height: 50vh;
        position: absolute;
        top: 2%;
        left: -40%;
    }

    .tr3 {
        width: 50vh;
        height: 50vh;
        position: absolute;
        top: 2%;
        left: -5%;
    }

    .tr4 {
        width: 42vh;
        height: 42vh;
        position: absolute;
        bottom: 50%;
        left: -25%;
    }

    .tr5 {
        width: 55vh;
        height: 55vh;
        position: absolute;
        bottom: 45%;
        right: 0;
    }

    .tr6 {
        width: 42vh;
        height: 42vh;
        position: absolute;
        bottom: 25%;
        left: -25%;
    }

    .tr7 {
        width: 42vh;
        height: 42vh;
        position: absolute;
        bottom: 30%;
        right: 0;
    }

    .tr8 {
        width: 35vh;
        height: 35vh;
        position: absolute;
        bottom: 3%;
        left: -20%;
    }

    .tr9 {
        width: 55vh;
        height: 55vh;
        position: absolute;
        bottom: 3%;
        right: 0;
    }

    .tr10 {
        width: 55vh;
        height: 55vh;
        position: absolute;
        bottom: 3%;
    }
    */

    /* Introduction */
    .introduction {
        width: 100%;
        position: relative;
        top: 20px;
    }

    .makimono {
        width: 100%;
        height: auto;
    }

    .introduction_title {
        font-size: 7vw;
        font-family: "LogoTypeGothic", sans-serif;
        color: #2b7397;
        text-align: center;
        position: relative;
        top: -105vw;
    }

    .introduction_middle {
        width: 50vw;
        height: auto;
        position: relative;
        display: block;
        margin: 0 auto;
        top: -105vw;
    }

    .introduction_main {
        font-size: 2.5vw;
        font-family: "LogoTypeGothic", sans-serif;
        color: #2b7397;
        text-align: center;
        position: relative;
        top: -104vw;
    }

    .img_title {
        width: 30vh;
        position: absolute;
        top: 5%;
        right: 7%;
        z-index: 500;
    }
}
