@charset "UTF-8";

/* 共通 */
body{
    margin: 0 auto;
}

h2{
    text-align: center;
    margin-bottom: 55px;
}

p{
    margin-top: 0;
}

/* ----- header ----- */
header{
    max-width: 960px; 
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 5%;
    margin-bottom: 5%;
    margin-right: auto;
    margin-left: auto;
    padding-right: 4%;
    padding-left: 4%;
}

header h1{
    font-size: 24px;
}

header nav ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0;
}

header nav ul li{
    list-style-type: none;
    padding-left:20px;
}

header nav ul li:first-child{
    padding-left: 0;
}

header nav ul li a{
    text-decoration: none;
    color: #333;
}

header nav ul li a:hover{
    color:cornflowerblue;
}

/* ----- picture ----- */
picture{
    width: 100%;
}

picture img{
    width: 100%;
    max-width: 1920px;
    height: 420px;
    object-fit: cover;
    margin-top: 0;
    margin-bottom: 10%;
    margin-left: auto;
    margin-right: auto;
}

/* ----- about ----- */
#about{
    max-width: 960px;
    padding-left: 4%;
    padding-right: 4%;
    margin-top: 0;
    margin-bottom: 10%;
    margin-left: auto;
    margin-right: auto;
}

/* ----- photo ----- */
#photo{
    max-width: 960px;
    margin-top: 0;
    margin-bottom: 10%;
    margin-left: auto;
    margin-right: auto;
}

#photo ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 0;
}

#photo ul li{
    list-style-type: none;
    width: calc(100%/3 - 4%);
    padding-bottom: 4%;
}

#photo ul li img{
    width: 100%;
    
}

/* ----- news ----- */
#news{
    margin: 0 auto;
    max-width: 960px;
    padding-left: 4%;
    padding-right: 4%;
    margin-top: 0;
    margin-bottom: 10%;
    margin-left: auto;
    margin-right: auto;
}

#news dl{
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    text-align: center;
    border-top: solid 1px #b8b5b5;

}

#news dl dt{
    width: 20%;
    text-align: left;
    border-bottom: solid 0.5px #b8b5b5;
    height: 50px;
    line-height: 50px;
}

#news dl dd{
    width: 80%;
    margin: 0;
    height: 50px;
    line-height: 50px;
    text-align: left;
    border-bottom: solid 0.5px #b8b5b5;
}

/* ----- contact ----- */
#contact{
    max-width: 960px;
    padding: 0 4% 10% 4%;
    margin: 0 auto;
}

#contact form{
    width: 100%;
}

#contact form p{
    display: flex;
    flex-wrap: wrap;
}

#contact form p label{
    width: 100px;
}

#contact form p input{
    width: calc(100% - 100px);
    height: 50px;
}

#contact form p input{
    border: 2px solid #ddd;
}

#contact form p textarea{
    width: calc(100% - 100px);
    height: 100px;
    border: 2px solid #ddd;
}

#contact form p .box{
    width: 250px;
    text-align: center;
    margin: 0 auto;
    background-color: #333;
    color: aliceblue;
}

#contact form p .box:hover{
    background-color: #fff;
    border:solid 0.2px #b8b5b5;
    color: #333;
}

/* ----- footer ----- */
footer{
    height: 40px;
    margin: 0 auto;
    padding-bottom: 0;
    background-color: #333; 
}
footer p{
    text-align: center;
    line-height: 40px;
    
    color: #fff;
    font-size:12px;
    margin: 0;
    padding: 0;
}

/* ----- Breakpoints(600px) ----- */
@media screen and (max-width:600px) {

    /* header */
    header{
        display: block;
        text-align: center;
    }
    header h1 .br-sp{
        display: none;
    }

    header nav{
        width: 100%;
    }

    /* picture */
    picture img{
        object-fit: cover;
    }

    /* news */
    #news dl{
        display: block;    
    }

    #news dl dt{
        border-bottom: none;
    }

    #news dl dd{
        width: 100%;
    }
    /* photo */
    #photo ul li{
        width:100%;
        padding: 0 4% 4% 4%;
    }
    /* contact */
    #contact form p input{
        width: 100%;
    }

    #contact form p textarea{
        width: 100%;
    }
    
}