@charset "utf-8";


/* sp */
body {
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size: 62.5%;
}

header {
    background-image: url(../img/mainvisual.jpg);
    width: 100%;
    height: 100vh;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
    @media (min-width :900px) {
        background-attachment: fixed;    
    }
}

header h1 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width:90%;
    filter: drop-shadow(2px 3px 3px rgba(0, 0, 0, 0.6));
}

header nav {
    position: absolute;
    top: 2em;
    right: 4em;
}

header nav ul {
    display: flex;
    gap: 3em;
    font-size: 1.4em;
    font-weight: bold;
    color: #fff;
    text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.6);
}

main section h2 {
    font-size: 3.2em;
    font-weight: bold;
    color: #fff;
    text-align: center;
    display: block;
    width: 100%;
    height: 94px;
    display: grid;
    place-content: center;
    background-position: center;
    background-size: cover;
    margin-top: 10px;
    text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.6);
    opacity: 0;
    transition: all .5s linear;
    &.active {
        opacity: 1;
    }
}

main section .menu {
    padding:30px 16px 0;
}

main section .line {
    display: block;
    width: fit-content;
    margin: 0 auto;
    font-size: 2em;
    font-weight: bold;
    padding-bottom: 5px;
    position: relative;
    &::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 0%;
        height: 5px;
        background-color: #e03131;
        transition: all .5s linear;
    }
    &.active {
        &::after {
            width: 100%;
        }
    }
}

/* menu */
main section#menu h2 {
    background-image: url(../img/menu.jpg);
}

main section#menu table {
    width: 100%;
}

main section#menu table tr {
    margin-top: 2.5em;
    font-size: 1.4em;
    display: flex;
    justify-content: space-between;
    align-content: end;
    gap: 1.2em;
}

main section#menu table tr:last-child {
    padding-bottom: 5px;
}

main section#menu table tr th {
    text-justify: end;
    border-bottom: 1px dotted #000;
    padding-bottom: 1px;
    width: 100%;
}

main section#menu table tr td {
    padding-top: 15px;
}

/* about */
main section#about h2 {
    background-image: url(../img/about.jpg);
    margin-top: 110px;
}

main section#about h3 {
    padding-top: 30px;    
}

main section#about div {
    padding: 35px 16px 0;
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;
    font-size: 14.4px;
    line-height: 2;
}

main section#about a {
    display: block;
    width: fit-content;
    margin: 50px auto 0;
    font-size: 14.4px;
    padding: 16.5px 44px;
    position: relative;
}

main section#about a span {
    position: relative;
    display: inline-block;
}

main section#about a::before {
    content: '';
    position: absolute;
    left:0;
    top:0;/*線の上下位置*/
    display: inline-block;
    width: 32px;/*線の長さ*/
    height: 1px;/*線の太さ*/
    -webkit-transform: translateX(-50%);
    transform: translateX(0%);/*位置調整*/
    background-color: #e03131;/*線の色*/
    /* border-radius: 2px;線の丸み */
    transition: .5s linear;
}

main section#about a::after {
    content: '';
    position: absolute;
    right:0;
    bottom:0;/*線の上下位置*/
    display: inline-block;
    width: 32px;/*線の長さ*/
    height: 1px;/*線の太さ*/
    -webkit-transform: translateX(-50%);
    transform: translateX(-0%);/*位置調整*/
    background-color: #e03131;/*線の色*/
    /* border-radius: 2px;線の丸み */
    transition: .5s linear;
    
}

main section#about span::before {
    content: '';
    position: absolute;
    left: -44px;
    top: -16.5px;/*線の上下位置*/
    display: inline-block;
    width: 1px;/*線の長さ*/
    height: 25px;/*線の太さ*/
    -webkit-transform: translateX(-50%);
    transform: translateX(-0%);/*位置調整*/
    background-color: #e03131;/*線の色*/
    /* border-radius: 2px;線の丸み */
    transition: .5s linear;
    
}

main section#about span::after {
    content: '';
    position: absolute;
    right: -44px;
    bottom: -16.5px;/*線の上下位置*/
    display: inline-block;
    width: 1px;/*線の長さ*/
    height: 25px;/*線の太さ*/
    -webkit-transform: translateX(-50%);
    transform: translateX(-0%);/*位置調整*/
    background-color: #e03131;/*線の色*/
    /* border-radius: 2px;線の丸み */
    transition: .5s linear;
}

main section#about a:hover {
    &::before {
        width: 100%;
    }
    &::after {
        width: 100%;
    }
    span{
        &::before {
            height: 50px;
        }
        &::after {
            height: 50px;
        }
    }
}

/* location */

main section#location {
margin-bottom: 80px;
}

main section#location h2 {
    background-image: url(../img/location.jpg);
    margin-top: 80px;
}

main section#location div {
    margin-inline: 16px;
}

main section#location h3 {
    padding-top: 30px;
}

main section#location iframe {
    margin-top: 25px;
    width: 100%;
    height: 407px;
    filter: grayscale(1);
}

main section#location ul {
    padding-top: 10px;
}

main section#location ul li {
    padding-top: 10px;
    font-size: 14.4px;
    line-height: 24.4px;
}

/* footer */
footer {
    text-align: center;
}


/* PC */
@media (min-width :900px) {
    header h1 {
        width: fit-content;
    }

    main section h2 {
        height: 300px;
        font-size: 4em;
        background-position: center;
        background-attachment: fixed;
        background-size: cover;
    }

    main section h3 {
        font-size: 4em;
    }

    main section#menu table {
        width:fit-content;
    }

    main section#menu table tr {
        gap: 1.8em;

    }

    main section#menu table tr th {
        width: 343px;
    }

    main section#menu #pc-2col {
        width: 878px;
        margin-inline: auto;
        display: flex;
        justify-content: center;
        margin-top: 90px;
    }

    main section .menu {
        padding-top:30px 0;
    }

    main section#menu #pc-2col .menu {
        padding-left: 45px;
        padding-right: 45px;
    }

    main section#menu #pc-2col .left {
        border-right: 1px solid #000;
    } 

    main section#menu .column-menu {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

    main section#menu table tr:first-child {
        margin-top: 7em;
    }

    /* about */

    main section#about .grid-about {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 4em;
        margin-inline: 16em;
        padding-top: 90px;
    }
    main section#about a {
        margin-top: 6em;
    }


    /* location */
    main section#location div {
        margin-inline: 14em;
        margin-bottom: 17em;
    }
}