* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    background-color: #2c2c2c;
    color: #FFFFFF;
    font-style:"Noto Sans JP",sans-serif;
}

a {
    color: #ffffff;
}

address {
    font-style: normal;
}

.link-with-underline{
    text-decoration:underline;
}

/* ヘッダー */
header{
    background-color:#272727;
    width: 100%;
    position:sticky;
    top:0;
    z-index: 1000;
    height:80px;
}
.in-header {
    width: 1024px;
    height: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: stretch;
}

.in-header h1{
    padding:0 20px;
    display: flex;
    align-items:center;
}

.in-header a{
    text-decoration:none;
}

nav ul{
    display: flex;
    list-style: none;
    margin: 0;
    height: 100%;
}
nav a::after{
    content:"";
    width:100%;
    height:100%;
    background-color:#ffffff;
    transition: opacity 0.2s ease-in;
    opacity:0;
    position:absolute;
    top:0;
    left:0;
}
nav a:hover::after{
    opacity:0.3;
}

nav a {
    font-size: large;
    width:100%;
    height:100%;
    text-decoration:none;
    padding: 1rem 2rem;
    border-right: 2px solid;
    border-image: linear-gradient(to bottom, #000000, #FFFFFF, #000000);
    border-image-slice: 10;
    display:flex;
    align-items:center;
    position:relative;
}

/* メインビジュアル */

.main-visual{
    /* width: 100%;
    aspect-ratio: 1920/630; */
    height: 400px;
    background-image: url(../image/main-visual-background.png);
    background-size:cover;
    background-position: center;
    background-repeat: no-repeat;
}

.container{
    width:1024px;
    height:100%;
    margin:0 auto;
    display:flex;
    justify-content:flex-end;
    align-items:center;
}

.main-visual-content{
    text-align:right;
    position:relative;
    left: -5%;
    top: -15%;
}

.main-visual h1{
    font-size:4rem;
}

/* アーティクル(共通) */
article{
    width: 960px;
    margin: 0 auto;
    padding: 20px 30px 40px;
    background-color:#000000;
    line-height:2rem;
}

article h1{
    margin: 0 0 20px;
}

p, .IBM-font{
    font-family:"IBM Plex Sans JP", "Noto Sans JP",sans-serif;
}
hr{
    margin: 30px 0;
}
/* articleページ */
/* index */
.indexArticle{
    display:flex;
    justify-content:space-between;
    align-items:stretch;
}
.indexArticle>section{
    margin-right:40px;
    flex-grow:1;
}
.indexArticle>hr{
    display:none;
}
.chatContainer{
    width:300px;
    flex-shrink:0;
    margin-bottom:1.5rem;
    display:flex;
    flex-direction:column;
}
.chatField{
    flex-grow:1;
    border:3px solid #ffffff;
    border-radius:10px;
    overflow:scroll;
    padding:5px;
    display:flex;
    align-items:flex-end;
    margin-bottom:15px;
    position:relative;
}
.chatField>iframe{
    position:absolute;
    bottom:0;
    left:0;
}

.newestPostsField>h2{
    font-size: 1rem;
}
.newestPostsField>a{
    text-decoration:none;
}
.newestPost{
    border: 2px solid #ffffff;
    border-radius:10px;
    overflow:hidden;
    margin:20px 0;
    box-shadow: 5px 5px 0px 0px #ffffffc4;
    position:relative;
}
.newestPost::after{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background-color:#FFFFFF;
    opacity:0;
    transition:opacity 0.2s;
}
.newestPost:hover::after{
    opacity:0.3;
}
.newestPost>h3{
    background-color:#272727;
    padding:5px;
    font-size:1rem;
}
.newestPostData{
    background-color:#414141;
    padding:0 10px;
    display:flex;
    justify-content:space-between;
    font-size:0.9rem;
}
.newestPostData ul{
    list-style:none;
}
.newestPostData li{
    line-height:1.5rem;
    padding:0 5px;
    margin:0 10px;
}
.newestPostsContainer>p{
    text-align:center;
}

/* 記事検索欄 */
.searchField{
    display:flex;
    justify-content:space-between;
    align-items:center;
    width:70%;
    margin:0 auto;
}
.searchField input{
    color:#000000;
}
.searchField button{
    color:#000000;
    width:50px;
    height:30px;
}

.searchContainer{
    display:flex;
    flex-direction:column;
    width:90%;
}

.searchForm{
    margin:10px 0;
    height:30px;
}

.dateField{
    display:flex;
    justify-content:space-between;
}

.dateForm{
    width:48%;
}

.tagField{
    width:100%;
    display:flex;
    margin:30px auto;
    position:relative;
}
.tagField>p{
    float:left;
    position:absolute;
    top:0;
    left:1rem;
}

/*
.tagField{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:30px auto;
    width:70%;
}
*/
/*
.tagField>p{
    width:3rem;
}
*/
.tagField>ul{
    width:70%;
    display:flex;
    justify-content:center;
    align-items:center;
    gap: 20px;
    list-style:none;
    flex-grow:1;
}
.tagField li{
    border:2px solid #ffffff;
    background-color:#272727;
    border-radius:10px;
    padding:0 5px;
    transition:background-color 0.2s;
    cursor:pointer;
    /* position:relative; */
}

/*
.tagField li::after{
    content:"";
    width:100%;
    height:100%;
    background-color:#ffffff;
    position:relative;
    top:0;
    left:0;
    opacity:0;
    transition:opacity 0.2s;
}
.tagField li:hover::after{
    opacity:0.3;
}
*/

.tagField li:hover,.tagField li.selectedTag{
    background-color:#d1d1d1;
    color:#000000;
}

/* 各個の記事 */
#articleFieldHeader {
    border: 2px solid #ffffff;
    border-radius:10px;
    overflow:hidden;
    margin-bottom:20px;
    box-shadow: 8px 8px 0px 0px #ffffffc4;
}
#articleFieldTitle{
    background-color:#272727;
    font-size:24px;
    padding:15px;
    margin:0px;
}
/*
#articleDateField {
    background-color:#414141;
    padding:10px;
    margin:0px;
    text-align:right;
}
*/

/* フッター */

footer {
    width: 100%;
    height: 350px;
    background-color:#272727;
    text-align:center;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
}

footer h2{
    margin-bottom:10px;
}

footer > *{
    margin:30px auto;
}

footer a{
    text-decoration:none;
}

.thisWebsiteSince{
    font-size:0.83rem;
}

/* js */
.indexField {
    margin: 30px auto;
}
.indexField ul {
    display: flex;
    justify-content:center;
    align-items:center;
    gap: 20px;
    list-style:none;
}
.indexButton, .indexButtonLower {
    border: 2px solid #ffffff;
    border-radius:10px;
    background-color:#272727;
    width:45px;
    height:45px;
    font-size:1.2rem;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:background-color;
    transition-timing-function:ease-in;
    transition-duration:0.1s;
}
.indexButton:hover, .indexButtonLower:hover {
    background-color:#d1d1d1;
    color:#000000;
}
.indexButton.is-active, .indexButtonLower.is-active{
    background-color:#d1d1d1;
    color:#000000;
}

.post{
    margin:20px auto;
    border: 3px solid #ffffff;
    border-radius: 10px;
    overflow:hidden;
    position:relative;
    box-shadow: 8px 8px 0px 0px #ffffffc4;
}
.post::after{
    content:"";
    width:100%;
    height:100%;
    position:absolute;
    top:0;
    left:0;
    background-color:#ffffff;
    opacity:0;
    transition:opacity;
    transition-duration:0.2s;
}
.post:hover::after{
    opacity:0.3;
}
.post h2{
    background-color:#272727;
    padding:10px;
}
.post-data{
    background-color:#414141;
    padding: 10px;
    display:flex;
    justify-content:space-between;
    align-content:center;
}
.post-data ul{
    margin:0 10px;
    list-style:none;
}
.post-tags{
    display:flex;
    align-items:center;
}
.post-tags li{
    background-color:#5a5a5a;
    border-radius:5px;
    padding:0 5px;
}
#postsField{
    position:relative;
    right:2px;
}
#postsField a{
    text-decoration: none;
    display:block;
    color: inherit;
}

@media screen and (max-width: 1024px){
    .in-header{
        width:95%;
        align-items:center;
    }
    nav a{
        padding:10px 1.1rem;
        font-size:1rem;
    }
    .main-visual{
        width:100%;
        height:auto;
        aspect-ratio:1024/400;
    }
    .container {
        width:95%;
    }
    .main-visual h1{
        font-size:2.75rem;
    }
    article{
        width:95%;
        margin:0 auto;
        /*padding:20px 20px;*/
    }
    .indexArticle>section{
        margin-right:0;
    }
    /*
    article h1{
        font-size:24px;
    }
    */
    .indexButton{
        width:40px;
        height:40px;
        font-size:1rem;
    }
    .searchContainer{
        width:85%;
    }

    .indexArticle{
        display:block;
    }
    .chatContainer{
        /*width:215px;*/
        width:250px;
        /*font-size:0.8rem;*/
    }
    /*
    .newestPost>h3{
        font-size:1rem;
    }
    .newestPostData{
        font-size:0.8rem;
    }
    .indexArticle section{
        margin-right:25px;
    }
    */
    .newestPostsContainer{
        padding-right: 15.5px;
        padding-left: 10.5px;
        padding-bottom:2.5px
    }
    .indexArticle>hr{
        display:block;
    }
    .chatContainer{
        width:70%;
        margin:0 auto;
        font-size:1rem;
    }
    .chatField{
        height:350px;
    }/*
    .newestPost>h3{
        font-size:1.1rem;
    }
    .newestPostData{
        font-size:1rem;
    }*/
@media screen and (max-width: 599px){
    header{
        height: auto;
    }
    .in-header h1{
        font-size:1.75rem;
        margin: 10px;
        padding: 0;
        align-items:stretch;
    }
    .in-header{
        display: block;
    }
    nav ul{
        margin:10px 0;
        justify-content:center;
    }
    nav a{
        font-size: 1.1rem;
        padding: 10px 0.8rem;
    }
    .main-visual h1{
        font-size:2.2rem;
    }
    article{
        padding-right:20px;
        padding-left:20px;
    }
    /*
    .main-visual p{
        font-size:0.85rem;
    }*/
    .main-visual-content{
        left:-2.5%;
    }
    /*.newestPostsContainer{
        padding-right: 17.5px;
        padding-left: 12.5px;
        padding-bottom:2.5px
    }*/
    article h1{
        font-size:1.75rem;
    }
    article p{
        font-size:0.9rem;
    }
    .post h2{
        font-size:1.3rem;
    }
    #articleFieldTitle{
        font-size:24px;
    }
    .indexButton{
        padding:5px 15px;
    }
    .searchField{
        width:90%;
    }
    .searchContainer{
        width:80%;
    }
    .indexArticle{
        display:block;
    }
    /*.chatContainer{
        width:90%;
        margin:0 auto;
        font-size:1rem;
    }*/
    .chatContainer{
        width:90%;
    }
    /*.indexArticle>section{
        margin: 0 auto;
    }*/
}
}