@charset "UTF-8";
/* 共通部分用CSS */
/* サイズは16pxを基準にその倍数でデザインする */
html{
    font-size: 16px;
    height: 100%;
}


body{/*background-color: #f1e2be; */
    color: #222;
    margin: 0;
    letter-spacing: 0.1em;
    font-family: Arial, Helvetica, sans-serif;
    height: 100%;
}

p{
    font-family: Arial, Helvetica, sans-serif;
}

/* aタグのリンクとか消してる */
a{
    text-decoration: none; /* アンダーラインを消す */
    color: inherit; /* 親要素の文字色を継承する */

    display: inline-block; /* ホバー効果を適切に適用するため */
    transition: transform 0.3s ease-in-out; /* 変形のアニメーションを設定 */
}

a:hover {
    transform: translateY(-5px); /* 上方向に5px移動 */
    color: #777; /* テーマカラーに少し透明度を加えた色 (#RRGGBBAA形式) */
  }

h1{
    font-size: 4rem;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
}

    h2{
        font-size: 2rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    }
    h3{
        font-size: 2rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        margin: 8px;
    }
    h4{
        font-size: 1.5rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        margin: 8px;
    }
    p{
        line-height: 1.8;
        margin: 0;
    }

/* macOS, iPhone, iPad以外のデバイスに適用 */
html.not-apple-device ::-webkit-scrollbar {
    width: 0;
    height: 0;
    opacity: 0;
    transition: opacity 0.3s ease; 
}

html.not-apple-device ::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 5px; 
}

html.not-apple-device ::-webkit-scrollbar-track {
    background-color: transparent;
}

/* ホバー時 */
html.not-apple-device :hover::-webkit-scrollbar {
    opacity: 1; 
}

/* 固定フッター解決用 */
.wrapper {
    display: flex; /* Flexboxコンテナとして設定 */
    flex-direction: column; /* 子要素を縦方向に配置 */
    min-height: 100vh; /* wrapperの最小高さをビューポートの高さに設定 */
}

/* 全てのコンテンツの閲覧幅を制限 */
.content{
    width: 80%;
    padding: 80px 10% 0;
}

 /* -------ドロワーメニュー-------- */
    .forMobile{
        display: none;
    }
    .show{
        display: none;
    }

/* ----------------------------------------------------------------------------- */

/* header部分　装飾 */
.headerWrap{
    position: fixed;
    width: 100%;
    z-index: 999;
}
    header{
        height: 80px;
        background-color: #222;
        overflow: hidden;

        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    /* headerの子要素[ topIcon, siteNavigation] */

    #topIcon{
        width: 144px;
        padding-left: 16px;
    }

    #siteNavigation li{
        list-style: none;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        font-size: 32px;
        color: white;
    }

    /* ここまでheaderの最上位の設定 */

            #navContent{
                display: flex;
                align-items: end;
                margin: 0;
            }
                /* ナビゲーションを１列に揃える */

            #navContent li{
                padding: 10px;
            }
            #navContent li:hover{
                color: #222;
            }
                /* ナビゲーションコンテンツの間を開ける */
            #searchFormValue{
                height: 24px;
                /* 何故か↑を設定するとindexのヘッダーがバグる */
                width: 20em;
                padding: 4px;
            }
                /* 他のナビゲーションコンテンツと大きさを揃える */


/* Subjectクリック後の画面 */


#navSubjectPlus{
    background-color: #ddd;
    margin: 0;
    width: 80%;
    padding: 1rem 10% 1rem 10%;
}
.paddingRight{
    padding-right: 10%;
}
    .navSubjectPlusWrap{
        display: flex;
    }
    .navSubjectPlusWrap ul{
        padding-right: 3rem;
    }
        .navSubjectPlusTitle{
            font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
            font-size: 2rem;
            font-weight: bold;
        }
        .navSubjectPlusContent{
            font-size: 1.3rem;
        }
        .navSubjectPlusContent li{
            padding: 4px;
        }


/* ----------------------------------------------------------------------------- */


/* footerのCSS */
footer{
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #999;
    overflow: hidden;
    height: 216px;
}

    #footerIcon{
        width: 216px;
        padding: 32px;
    }

    #footerContent{
        list-style: none;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        font-size: 32px;
        display: flex;
    }

            #footerContent li{
                padding: 30px;
            }
            #footerContent li:hover{
                color: white;
            }

/* ----------------------------------------------------------------------------- */



/* 　背景設定 */
.background{
    contain: paint;
    /* overflow: hidden;  */
    /*　↑contain paint　で代替。overflow hiddenだとpostition stickyが効かなくなる。　これのお陰で, index横のPSYCHOLOGYがフッターのところで消えてる*/
    padding: 0px 0px 32px 0px;
    background-image: linear-gradient(transparent 44px, #ddd 44px),
    linear-gradient(90deg, transparent 44px, #ddd 44px);
    background-size: 46px 46px;
    position: relative;
    flex-grow: 1; /* ヘッダーとフッターでページが足りない場合、残りのスペースを埋めるように伸縮 */
}
/* ----------------------------------------------------------------------------- */



/* categoryのフォントを設定 */
.category{
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: 48px;
    margin-top: 5rem;
    margin-bottom: 16px;
    line-height: initial;
}
/* ----------------------------------------------------------------------------- */


/* ul li　リスト系に関する設定 */
ul{
    list-style: none;
}
li{
    overflow-wrap: normal;
}
/* ----------------------------------------------------------------------------- */


/* スライドショー用 */
.slideShow{
    width: 100%;
    height: 100%;
}

.slideShow img{
    object-fit: cover;
}
/* ----------------------------------------------------------------------------- */

/* 画像の中央揃え */
.imageCenter{
    display: flex;
    justify-content: center;
    align-items: center;
}
/* ----------------------------------------------------------------------------- */

/* -----------------------出し入れするHeader-------------------------- */
    /*　上に上がる動き　*/

    .headerWrap.UpMove{
        animation: UpAnime 0.5s forwards;
    }

    @keyframes UpAnime{
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-100px);
    }
    }

    /*　下に下がる動き　*/

    .headerWrap.DownMove{
        animation: DownAnime 0.5s forwards;
    }
    @keyframes DownAnime{
    from {
        opacity: 0;
        transform: translateY(-100px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
    }

    /* ------------------参照：動くデザインアイデア------------------------ */












/* -----------------------------------------------------レスポンシブ対応デザイン------------------------------------------------------ */
@media(max-width: 1420px){
    .navSubjectPlusWrap{
        justify-content: center;
    }
    .navSubjectPlusWrap ul{
        padding-right: 1rem;
    }
    .navSubjectPlusTitle{
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        font-size: 1.8rem;
        font-weight: bold;
    }
    .navSubjectPlusContent{
        font-size: 1.2rem;
        line-height: 1.5;
    }
    .navSubjectPlusContent li{
        padding: 4px;
    }

}
@media(max-width: 1100px){
    #navSubjectPlus{
        width: 100%;
        padding: 1rem 0 1rem 0;
    }
    .navSubjectPlusTitle{
        padding-left: 2rem;
    }
}


@media(max-width: 960px){
    #navContent li{
        font-size: 24px;
    }
    #searchFormValue{
        height: 20px;
        width: 16em;
        padding: 4px;
    }
    .navSubjectPlusContent{
        font-size: 1rem;
        line-height: 1.5;
    }
}



@media(max-width: 820px){
/* 基本部分 */
    h1{
        font-size: 2.5rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    }
    
    h2{
        font-size: 1.5rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    }
    h3{
        font-size: 1.5rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        margin: 8px;
    }
    h4{
        font-size: 1.3rem;
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
        margin: 8px;
    }
    .content{
        width: 100%;
        padding: initial;
    }
    .background{
        background-image: linear-gradient(transparent 28px, #ddd 28px),
        linear-gradient(90deg, transparent 28px, #ddd 28px);
        background-size: 29px 29px;
    }


/* ---------------------------------------------------------- */

.forMobile{
    display: block;
    position: relative;
}

/* PC用のヘッダー消去 */
header{
    position: absolute; left: -9999px;
}

#navSubjectPlus{
    display: none;
}

/* --------------------------------------- */


#mobileHeader{
    height: 65px;
    background-color: #444;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 999;
     /* --------------Z-index指定---------- */
}

#mobileTopIcon{
    padding: initial;
    width: 144px;
}
    #drawer{
        margin-right: 3%;
    }

        #drawerList{
            position: absolute;
            top: 60px;
            width: 100%;
            max-height: 90vh;
            background-color: #ddd;
            transition: transform 0.3s;
            z-index: 5;
            contain: paint;
            overflow: scroll;
            /* --------------Z-index指定---------- */
        }
                            .showAnime{
                                transform: translate3d(0,-1240px,0);
                            }
            #drawerList{
                margin: 0;
            }
                #drawerList ul{
                    padding-left: 0;
                }
                .drawerContent{
                    padding-bottom: 1rem;
                    font-size: 2rem;
                    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
                    padding-left: 2rem;
                    padding-right: 2rem;
                }


                .drawerContent form{
                    display: flex;
                    justify-content: center;
                }
                    #mobileSearchFormValue{
                        font-size: 16px;
                        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
                        border-radius: 10px;
                        height: 2rem;
                        width: 100%;
                    }
                .drawerSubject{
                    padding-left: 2rem;
                    font-size: 1.5rem;
                    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
                    font-weight: bold;
                    line-height: 1.5;
                }
                .drawerSubjectContent li{
                    padding-left: 4rem;
                    font-size: 1.3rem;
                    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
                    line-height: 2;
                }


    footer{
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
            #footerIcon{
                width: 160px;
                padding: 16px 0 0;
            }
            #footerContent{
                display: flex;
                font-size: 22px;
                padding: initial;
            }
}
