/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Kosugi+Maru&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru:wght@300;400;500&display=swap');

html {
    scroll-behavior: smooth;
}

body {

    margin: 0;
    padding: 0;
    width: 100vw;
    font-family: 'Kosugi Maru', sans-serif;
}

/* デスクトップ & タブレット */
@media screen and (min-width:768px) {

    header {
        position: fixed;
        top: 0;
        box-sizing: border-box;
        margin: 0 auto;
        width: 100vw;
        height: 5vw;
        background-color: #00A0B0;
        z-index: 3;
    }
    
    #menu-navi {
        box-sizing: border-box;
        margin: 0 auto;
        padding: 0 10vw;
        width: 100vw;
        height: 5vw;
    }
    
    #navi-logo {
        float: left;
        width: 25vw;
        height: 5vw;
    }

    #navi-logo > a {
        width: 25vw;
        height: 5vw;
    }

    #navi-logo > a > img {
        float: left;
        width: 5vw;
        height: 5vw;
    }

    #lab-name {
        float: left;
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        width: 20vw;
        height: 5vw;
    }

    #lab-name > p {
        margin: 0 1vw;
        padding: 0;
        width: 18vw;
        height: 2.5vw;
        line-height: 2.5vw;
        font-size: 1.4vw;
        font-weight: bold;
        color: white;
        text-decoration: none;
    }
    
    #insta {
        float: left;
        width: 5vw;
        height: 5vw;
    }
    
    #insta > a > img {
        margin: 1vw;
        width: 3vw;
        height: 3vw;
        filter: invert(100%) sepia(0%) saturate(7492%) hue-rotate(357deg) brightness(91%) contrast(122%);
        /* Reference : https: //codepen.io/sosuke/pen/Pjoqqp */
    }
    
    #menu-bar {
        float: left;
        margin: 0;
        padding: 0;
        width: 50vw;
        height: 5vw;
    }
    
    #sized-box {
        float: left;
        width: 2vw;
        height: 5vw;
    }

    .menu-link {
        text-align: center;
        text-decoration: none;
    }

    .menu {
        float: left;
        box-sizing: border-box;
        text-align: center;
        width: 12vw;
        height: 5vw;
        line-height: 5vw;
        font-size: 1.8vw;
        font-weight: bold;
        color: white;
        list-style-type: none;
    }
    
    .menu-link:visited > .menu {
        color: white;
    }

    .menu-link:hover > .menu {
        color: #002631;
        transition-duration: 1s;
    }

    main {
        box-sizing: border-box;
        margin: 0 auto;
        margin-top: 5vw;
        margin-bottom: 2vw;
        width: 100vw;
        z-index: 0;
    }

    .category {
        margin: 0 auto;
        padding: 0;
        margin-top: -8vw;
        padding-top: 8vw;
        width: 60vw;
        height: 5vw;
    }

    .category > p {
        margin: 0;
        padding: 0;
        width: 60vw;
        height: 5vw;
        line-height: 5vw;
        font-size: 2.5vw;
        font-family: 'Kiwi Maru', serif;
    }

    .line-box {
        margin: 0 auto;
        width: 60vw;
        height: 0.2vw;
        background-color: #939597;
    }

    #last-line-box {
        margin-bottom: 2vw;
    }

    #kato, #sugahara {
        margin: 0 auto;
        padding: 0;
        margin-top: -8vw;
        padding-top: 8vw;
        width: 60vw;
    }

    /* 
    .name の高さは、5vw

    .position の高さは、3vw
    
    .inform-title .inform-content-ul .inform-content-li の高さは、3vw

    .inform-title .inform-content-ul .inform-content-li の下のmarginは、1vw
    
    .inform の高さは、全体の高さから 14vw を引いた値
    */

    #kato,
    #kato > .photo-message-div,
    #kato > .inform-div {
        height: 70vw;
    }

    #kato > .inform-div > .inform {
        height: 58vw;
    }

    #sugahara,
    #sugahara > .photo-message-div,
    #sugahara > .inform-div {
        height: 90vw;
    }

    #sugahara > .inform-div > .inform {
        height: 73vw;
    }

    #sugahara > .inform-div > .inform >
    .inform-content-ul:last-child > .inform-content-li:last-child {
        height: 10vw;
    }

    #individual-web-site {
        display: inline-block;
        margin: 0;
        margin-top: 1vw;
        padding: 0;
        text-align: center;
        width: 37vw;
        height: 4vw;
        line-height: 4vw;
        font-size: 1.8vw;
        color: black;
        border-radius: 3vw;
        background-color: #F5DF4D;
        text-decoration: none;
    }

    #individual-web-site:hover {
        color: gray;
        background-color: #f6e473;
    }

    .photo-message-div {
        float: left;
        box-sizing: border-box;
        margin: 0;
        margin-right: 2vw;
        padding: 0;
        width: 21vw;
    }

    .photo-div {
        box-sizing: border-box;
        margin: 0;
        padding: 3vw;
        width: 21vw;
        height: 26vw;
    }

    .photo-div > img {
        width: 15vw;
        height: 20vw;
    }

    .message-div {
        margin: 0;
        width: 21vw;
        height: 38vw;
    }

    .message-title-div {
        margin: 0;
        margin-bottom: 1vw;
        text-align: center;
        width: 21vw;
        height: 4vw;
        line-height: 4vw;
        border-radius: 3vw;
        background-color: #F5DF4D;
    }

    .message-title {
        margin: 0;
        padding: 0;
        font-size: 1.8vw;
        color: black;
    }

    .message-content-div {
        box-sizing: border-box;
        margin: 0;
        padding: 1.5vw;
        width: 21vw;
        height: 20vw;
        line-height: 2vw;
        font-size: 1.4vw;
        border: .5vw solid #F5DF4D;
        border-radius: 3vw;
        background-color: white;
    }

    .message-content {
        margin: 0;
        padding: 0;
    }

    .inform-div {
        float: left;
        box-sizing: border-box;
        margin: 0;
        padding: 2vw 0;
        width: 37vw;
    }

    .inform-div > p {
        margin: 0;
        padding: 0;
    }

    .name {
        width: 37vw;
        height: 4vw;
        line-height: 4vw;
        font-size: 2.0vw;
        font-weight: bold;
    }

    .position {
        width: 37vw;
        height: 3vw;
        line-height: 3vw;
        font-size: 1.4vw;
    }

    .inform {
        margin: 0;
        margin-top: 1vw;
        padding: 0;
        width: 37vw;
        list-style: none;
    }

    .inform-title {
        box-sizing: border-box;
        padding-left: 1.5vw;
        width: 37vw;
        height: 2.5vw;
        line-height: 2.5vw;
        font-size: 1.5vw;
        color: white;
        background-color: #00A0B0;
    }

    .inform-content-ul {
        padding-left: 0;
        width: 37vw;
    }

    .inform-content-ul:not(:last-child) {
        margin-bottom: 1vw;
    }

    .inform-content-li {
        box-sizing: border-box;
        padding-left: 1vw;
        width: 37vw;
        height: 2.5vw;
        line-height: 2.5vw;
        font-size: 1.2vw;
        background-color: azure;
        list-style: none;
    }

    #student {
        box-sizing: border-box;
        margin: 0 auto;
        padding: 0;
        width: 60vw;
        height: 13vw;
    }

    .student-type {
        float: left;
        box-sizing: border-box;
        margin: 0;
        padding: 3vw 2vw 1vw 2vw;
        width: 30vw;
        height: 13vw;
    }

    .student-type-title {
        box-sizing: border-box;
        padding-left: 1.5vw;
        width: 26vw;
        height: 3vw;
        line-height: 3vw;
        font-size: 1.8vw;
        color: white;
        background-color: #00A0B0;
    }

    .student-type-title > p {
        margin: 0;
        padding: 0;
    }

    .degree-year-ul {
        margin: 0;
        padding-left: 0;
        width: 26vw;
        height: 6vw;
    }

    .degree-year-li {
        box-sizing: border-box;
        padding-left: 1.5vw;
        width: 26vw;
        height: 3vw;
        line-height: 3vw;
        font-size: 1.4vw;
        background-color: azure;
        list-style: none;
    }

    #top-button {
        position: fixed;
        bottom: 5vw;
        right: 5vw;
        box-sizing: border-box;
        padding: 0.5vw;
        width: 6vw;
        height: 6vw;
        border-radius: 1vw;
        background-color: #00A0B0;
        cursor: pointer;
    }

    #top-button > p {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        text-align: center;
        width: 5vw;
        height: 2.5vw;
        line-height: 1.5vw;
        font-size: 1.5vw;
        color: white;
    }

    #top-button > p:last-child {
        font-size: 1.8vw;
    }

    #top-button:hover > p {
        color: black;
        transition-duration: 1s;
    }

    footer {
        box-sizing: border-box;
        margin: 0 auto;
        text-align: center;
        width: 100vw;
        height: 4vw;
        line-height: 4vw;
        background-color: #00A0B0;
    }
    
    footer > p {
        margin: 0;
        font-size: 1.5vw;
        color: white;
    }

}

/* モバイル */
@media screen and (max-width:767px) {

    header {
        width: 100vw;
        height: 27vw;
        background-color: #00A0B0;
    }
    
    #menu-navi {
        box-sizing: border-box;
        width: 100vw;
        height: 27vw;
    }
    
    #navi-logo {
        float: left;
        margin: 0;
        margin-right: 16vw;
        margin-bottom: 1.3vw;
        width: 70vw;
        height: 16vw;
    }
    
    #navi-logo > a {
        width: 70vw;
        height: 16vw;
    }
    
    #navi-logo > a > img {
        float: left;
        width: 16vw;
        height: 16vw;
    }
    
    #lab-name {
        box-sizing: border-box;
        float: left;
        margin: 0;
        padding: 1vw 0;
        width: 54vw;
        height: 16vw;
    }
    
    #lab-name > p {
        margin: 0;
        padding: 0;
        width: 54vw;
        height: 7vw;
        line-height: 7vw;
        font-size: 4vw;
        font-weight: bold;
        color: white;
        text-decoration: none;
    }
    
    #insta {
        float: left;
        box-sizing: border-box;
        margin: 0;
        margin-bottom: 1.3vw;
        padding: 2.5vw 0;
        width: 12vw;
        height: 16vw;
    }
    
    #insta > a > img {
        width: 11vw;
        height: 11vw;
        filter: invert(100%) sepia(0%) saturate(7492%) hue-rotate(357deg) brightness(91%) contrast(122%);
        /* Reference : https: //codepen.io/sosuke/pen/Pjoqqp */
    }
    
    #menu-bar {
        clear: both;
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        width: 100vw;
        height: 9.7vw;
    }
    
    .menu-link {
        text-align: center;
        text-decoration: none;
    }
    
    #sized-box {
        margin: 0 auto;
        margin-bottom: 1.3vw;
        padding: 0;
        width: 90vw;
        height: 0.4vw;
        background-color: white;
    }
    
    .menu {
        float: left;
        box-sizing: border-box;
        margin: 0.35vw 0 1.65vw 0;
        text-align: center;
        width: 25vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 3vw;
        font-weight: bold;
        color: white;
        list-style-type: none;
    }
    
    .menu-link:visited > .menu {
        color: white;
    }
    
    .menu-link:hover > .menu {
        color: #002631;
        transition-duration: 1s;
    }

    #main {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        width: 100vw;
    }

    .category {
        margin: 0 auto;
        padding: 0;
        width: 90vw;
        height: 12vw;
    }

    .category > p {
        margin: 0;
        padding: 0;
        width: 80vw;
        height: 12vw;
        line-height: 12vw;
        font-size: 5vw;
        font-family: 'Kiwi Maru', serif;
    }

    .line-box {
        margin: 0 auto;
        width: 90vw;
        height: 0.4vw;
        background-color: #939597;
    }

    #last-line-box {
        margin-bottom: 5vw;
    }

    #kato, #sugahara,
    #iwaasa, #murano {
        margin: 0 auto;
        padding: 0;
        width: 90vw;
    }

    /* 
    .name の高さは、6vw

    .position の高さは、6vw
    
    .inform-title .inform-content-ul .inform-content-li の高さは、6vw
        6vw * n = 6n vw

    .inform-title .inform-content-ul .inform-content-li の下のmarginは、2vw
        2vw * 8 = 16vw
    
    .inform を除いた .inform-div の高さは、
        14vw(6vw + 6vw + 2vw) + 5vw(padding-bottom) = 19vw

    .inform の高さは、(6n + 16)vw

    .inform-div の高さは、.inform の高さ + 19vw

    各divの高さは、.inform-div の高さ + 60vw
    */

    #kato {
        height: 215vw;
    }

    #kato > .inform-div {
        height: 155vw;
    }

    #kato > .inform-div > .inform {
        height: 136vw;
    }

    
    #iwaasa {
        height: 215vw;
    }
    
    #iwaasa > .inform-div {
        height: 155vw;
    }
    
    #iwaasa > .inform-div > .inform {
        height: 136vw;
    }
    
    #iwaasa > .inform-div > .inform >
    .inform-content-ul:last-child > .inform-content-li:last-child {
        height: 12vw;
    }
    
    #sugahara {
        height: 263vw;
    }

    #sugahara > .inform-div {
        height: 203vw;
    }

    #sugahara > .inform-div > .inform {
        height: 172vw;
    }

    #sugahara > .inform-div > .inform >
    .inform-content-ul:last-child > .inform-content-li:last-child {
        height: 24vw;
    }

    #individual-web-site {
        display: inline-block;
        margin: 0 5vw;
        margin-top: 4vw;
        padding: 0;
        text-align: center;
        width: 80vw;
        height: 8vw;
        line-height: 8vw;
        font-size: 4vw;
        color: black;
        border-radius: 3vw;
        background-color: #F5DF4D;
        text-decoration: none;
    }

    @media screen and (min-width:500px) {
        #individual-web-site:hover {
            color: gray;
            background-color: #f6e473;
        }
    }

    #murano {
        height: 221vw;
    }

    #murano > .inform-div {
        height: 161vw;
    }

    #murano > .inform-div > .inform {
        height: 142vw;
    }

    #murano-hobby {
        height: 12vw;
    }

    #murano > .inform-div > .inform >
    .inform-content-ul:last-child > .inform-content-li:last-child {
        height: 12vw;
    }

    .photo-message-div {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        width: 90vw;
        height: 60vw;
    }
    
    .photo-div {
        float: left;
        box-sizing: border-box;
        margin: 0;
        padding: 5vw 0.25vw;
        width: 38vw;
        height: 60vw;
    }

    .photo-div > img {
        width: 37.5vw;
        height: 50vw;
    }

    .message-div {
        position: relative;
        float: left;
        box-sizing: border-box;
        margin: 0;
        padding: 7.25vw 0 5vw 4vw;
        width: 52vw;
        height: 60vw;
    }

    .message-title-div {
        position: absolute;
        top: 5vw;
        left: 8vw;
        box-sizing: border-box;
        text-align: center;
        width: 40vw;
        height: 6vw;
        line-height: 6vw;
        border-radius: 5vw;
        background-color: #F5DF4D;
    }

    .message-title {
        margin: 0;
        padding: 0;
        font-size: 4vw;
    }

    .message-content-div {
        box-sizing: border-box;
        margin: 0 ;
        padding: 5vw 3vw 3vw 3vw;
        width: 48vw;
        height: 48vw;
        line-height: 5vw;
        font-size: 3vw;
        border: .5vw solid #F5DF4D;
        border-radius: 3vw;
        background-color: white;
    }

    .message-content {
        margin: 0;
        padding: 0;
    }

    .inform-div {
        float: left;
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        padding-bottom: 5vw;
        text-align: center;
        width: 90vw;
    }

    .inform-div > p {
        margin: 0;
        padding: 0;
    }

    .name {
        width: 90vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 4vw;
        font-weight: bold;
    }

    .position {
        width: 90vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 3vw;
    }

    .inform {
        margin: 0;
        margin-top: 2vw;
        padding: 0;
        width: 90vw;
        list-style: none;
    }

    .inform-title {
        box-sizing: border-box;
        width: 90vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 4vw;
        color: white;
        background-color: #00A0B0;
    }

    .inform-content-ul {
        padding-left: 0;
        width: 90vw;
    }

    .inform-content-ul:not(:last-child) {
        margin-bottom: 2vw;
    }

    .inform-content-li {
        box-sizing: border-box;
        width: 90vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 3vw;
        background-color: azure;
        list-style: none;
    }

    #student {
        box-sizing: border-box;
        margin: 0 auto;
        padding: 5vw 0;
        width: 90vw;
        height: 51vw;
    }

    .student-type {
        box-sizing: border-box;
        margin: 0 auto;
        padding: 0;
        width: 90vw;
        height: 18vw;
    }

    .student-type:first-of-type {
        margin-bottom: 5vw;
    }

    .student-type-title {
        box-sizing: border-box;
        text-align: center;
        width: 90vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 4vw;
        color: white;
        background-color: #00A0B0;
    }

    .student-type-title > p {
        margin: 0;
        padding: 0;
    }

    .degree-year-ul {
        margin: 0;
        padding-left: 0;
        width: 90vw;
        height: 12vw;
    }

    .degree-year-li {
        box-sizing: border-box;
        text-align: center;
        width: 90vw;
        height: 6vw;
        line-height: 6vw;
        font-size: 3vw;
        background-color: azure;
        list-style: none;
    }

    #top-button {
        position: fixed;
        bottom: 8vw;
        right: 8vw;
        box-sizing: border-box;
        padding: 0.5vw;
        width: 11vw;
        height: 11vw;
        border-radius: 2vw;
        background-color: #00A0B0;
        cursor: pointer;
    }

    #top-button > p {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        text-align: center;
        width: 10vw;
        height: 5vw;
        line-height: 4vw;
        font-size: 4vw;
        color: white;
    }

    #top-button > p:last-child {
        font-size: 3vw;
    }

    @media screen and (min-width:500px) {
        #top-button:hover > p {
            color: black;
            transition-duration: 1s;
        }
    }
    
    footer {
        box-sizing: border-box;
        margin: 0 auto;
        text-align: center;
        width: 100vw;
        height: 10vw;
        line-height: 10vw;
        background-color: #00A0B0;
    }
    
    footer > p {
        margin: 0;
        font-size: 3vw;
        color: white;
    }
        
}

/* 
    1. position
    2. top/bottom
    3. left/right
    4. float/clear
    5. display
    6. box-sizing
    7. margin
    8. padding
    9. text-align
    10. width
    11. height
    12. line-height
    13. font-size
    14. font-weight
    15. font-family
    16. color
    17. border
    18. border-radius
    19. background-color
    20. cursor
    21. text-decoration
    22. list-style-type
    23. transition-duration
    24. z-index
    25. etc.
*/