body{
    padding:0;
    margin:0;
    background-color: #ffffff;
    color:#000000;
    text-align: center;
    line-height: 200%;
    overflow-wrap: break-word;
    overflow-x: hidden;
    font-family: sans-serif;
    padding-inline-start: 0;
}

/* ページ遷移アニメーション */


#shutter{
    display: block;
    position: fixed;
    z-index: 999;
    top: 0;
    width: 100vw;
    height: 100vh;
    background-color: #ffffff;
    animation-name: shutter_fade;
    animation-duration: 1s;
    animation-delay: 1s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: forwards;
    pointer-events: none;
    animation-delay: 0.5s;
    text-align: center;
    align-content: center;
}

#shutter img{
    animation-name: shutter_fade;
    border: none;
}

@media screen and (max-width:480px) {
    #shutter img{
        width: 100vw;
    }
}

@keyframes shutter_fade{
    0%{
        opacity: 1;
    }
    100%{
        opacity: 0;
    }
}


/* ヘッダー */

header{
    z-index: 1;
}

#header{
    background-color: #ffffffcc;
    top: 0;
    position: fixed;
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #000;
    width: 100vw;
    height: 90px;
    align-items: center;
    z-index: 1;
}
/* ロゴ */
#header a{
    color: #000;
    text-decoration: none;
    margin-right: 90px;
}

#logo img{
    border: none;
    height: 100%;
    top: 0;
    left: 100px;
    position: absolute;
}

/* ハンバーガーメニュー */

nav{
    width: 400px;
    display: block;
    position: fixed;
    top: 0;
    left: -500px;
    bottom: 0;
    transition: all 0.5s;
    background-color: #ffffff;
    z-index: 4;
    opacity: 0;
}

.open nav{
    left: 0;
    opacity: 1;
}

nav .inner{
    padding: 25px;
    height: 90%;
    overflow-y: scroll;
}

nav .inner ul{
    list-style: none;
    margin: 0;
    padding: 0;
}

nav .inner ul li{
    margin: 0;
    border-bottom: 1px solid #000;
    color: #000;
    font-size: 14px;
    padding: 16px;
    display: block;
    transition: all 0.3s;
    padding-right: 20px;
}
nav .inner ul li a{
    color: #000;
    text-decoration: none;
}

nav .inner ul li:hover{
    background-color: #9c9c9c;
}

nav .inner ul div li a{
    font-size: 10px;
    padding: 8px;
}

.HM_big a:hover{
    text-decoration:underline;
}

.HM_original:hover{
    text-decoration:underline;
}

nav .inner ul div li{
    font-size: 10px;
    padding: 8px;
}

nav .inner ul .HM_small{
    display: none;
}

nav .inner ul .HM_small.click{
    display: block;
}




.HM_big::after{
    content: "";
    width: 10px;
    height: 10px;
    border-right: 2px solid #000;
    border-top: 2px solid #000;
    display: inline-block;
    transform: translateX(20px) translateY(-5px) rotate(135deg);
    transition: 500ms;
}

.HM_big.click::after{
    transform: translateX(20px) translateY(5px) rotate(-45deg);
}

.toggle {
    display: block;
    position: fixed;
    top: 30px;
    right: 30px;
    width: 30px;
    height: 30px;
    z-index: 4;
    cursor: pointer;
}

.toggle span{
    position: absolute;
    display: block;
    right: 0;
    height: 2px;
    background-color: #000000;
    transition: all 0.5s;
    border-radius: 4px;
}

.toggle span:nth-child(1){
    top: 4px;
    width: 32px;
}

.toggle span:nth-child(2){
    top: 12px;
    width: 32px;
}

.toggle span:nth-child(3){
    top: 20px;
    width: 25px;
}

#mask{
    display: none;
    transition: all 0.5s;
    z-index: 3;
}

.open #mask{
    display: block;
    background-color: #000000;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    position: fixed;
    opacity: 0.8;
}

.open .toggle span{
    background-color: #ffffff;
}

.open .toggle span:nth-child(1){
    transform: translateY(8px) rotate(45deg);
}

.open .toggle span:nth-child(2){
    opacity: 0;
}

.open .toggle span:nth-child(3){
    transform: translateY(-8px) rotate(135deg);
    width: 32px;
}

@media screen and (max-width:480px) {
    nav{
        width: 100vw;
    }
    .open #mask{
        display: none;
    }
    .open .toggle span{
        background-color: #000000;
    }
    #sitemap{
        display: none;
    }
    #logo img{
        text-align: center;
        margin: 0 auto;
    }
}


/* 本文 */

#maintext{
    margin:0% 10%;
    margin-top: 120px;
    font-size:20px;
    text-align: left;
}

#maintext_index{
    margin:0% 10%;
    margin-top: 0px;
    font-size:20px;
    text-align: left;

}

#aboutme{
    padding: 0px;
    width: 100%;
}

.aboutme_icon img{
    display: block;
    border-radius: 50%;
    border: 5px solid #000;
    width: 100px;
    height: 100px;
    object-fit: cover;
    object-position: center top;
}
.aboutme_contents{
    display: flex;
    padding: 50px 10px;
}
.aboutme_name{
    font-size: 25px;
    text-align:center;
}
.aboutme_text{
    font-size: 18px;
    background-color: #fff;
    border-radius: 10px;
    border: 4px solid #000000;
    padding: 10px;
}

@media screen and (max-width:600px){
    #aboutme{
        text-align: center;
    }
    .aboutme_icon{
        display: block;
        text-align: center;
    }
    .aboutme_contents{
        display: block;
    }
    .aboutme_icon img{
        display: inline;
    }
    .aboutme_name{
        display: block;
        font-size: 30px;
    }
    .aboutme_text{
        display: block;
        font-size: 20px;
    }
}

/* タイトル */

.maintext_title{
    font-size: 40px;
    font-weight: 500;
    width:auto;
    height: auto;
    padding:2%;
    box-shadow: 3px 3px 12px;
    margin-bottom: 20px;
}

#maintext_title_red{
    border-left:4px solid #ff0000;
}

#maintext_title_orange{
    border-left:4px solid #ff9900;
}

#maintext_title_yellow{
    border-left:4px solid #ffdd00;
}

#maintext_title_green{
    border-left:4px solid #44aa55;
}

#maintext_title_blue{
    border-left:4px solid #0055cc;
}

#maintext_title_purple{
    border-left:4px solid #8000cc;
}

/* サブタイトル */

.maintext_subtitle{
    font-size:30px;
    width:auto;
    height: auto;
    padding: 1%;
    margin: 3% 0% 2% 0%;
}

.maintext_subtitle_red{
    border-bottom:4px solid #ffbbbb;
}

.maintext_subtitle_orange{
    border-bottom:4px solid #ffcc99;
}

.maintext_third_title_orange{
    border-bottom: 4px dotted #ffcc99;
}

.maintext_subtitle_yellow{
    border-bottom:4px solid #ffee88;
}

.maintext_subtitle_green{
    border-bottom:4px solid #bbffbb;
}

.maintext_subtitle_blue{
    border-bottom:4px solid #99bbff;
}

.maintext_subtitle img{
    height: 30px;
    border: none;
}

.maintext_third_title{
    font-size: 25px;
    width:fit-content;
    height: auto;
    padding: 1%;
    margin: 3% 0% 2% 0%;
}

.maintext_third_title_blue{
    border-bottom: 4px dotted #99bbff;
}

.maintext_subtitle_purple{
    border-bottom:4px solid #ddaaff;
}

/* リンク */

a{
    color:#2e5fc2dd;
    text-decoration: none;
}

a:hover{
    text-decoration: underline;
}

/* マーカー */

.mark_red{
    background:linear-gradient(transparent 70%, #ffbbbb 70%);
}

.mark_orange{
    background:linear-gradient(transparent 70%, #ffcc99 70%);
}

.mark_yellow{
    background:linear-gradient(transparent 70%, #ffee88 70%);
}

.mark_green{
    background:linear-gradient(transparent 70%, #bbffbb 70%);
}

.mark_blue{
    background:linear-gradient(transparent 70%, #99bbff 70%);
}

.mark_purple{
    background:linear-gradient(transparent 70%, #ddaaff 70%);
}

#maintext li a{
    scroll-behavior: smooth;
}

.hosoku{
    font-size: 15px;
    text-align: center;
    color: #000000;
    padding: 1% 2% 0% 2%;
    margin:0%
}

.hosoku img{
    text-align: center;
}

@media screen and (max-width:480px) {
    .hosoku img{
        width:100%;
    }
}

img{
    border: 5px solid #000;
}

blockquote{
    font-style: italic;
    background-color:#dcdcdc;
    padding:3% 1%;
}

blockquote::before{
    content: "‟";
    font-style: normal;
    transform:rotate(0deg);
    display: flex;
    justify-content: left;
    color: gray;
    font-size: 4em;
    padding-top: 2.5px;
    padding-left: 2.5px;
}

blockquote::after{
    content: "‟";
    font-style: normal;
    transform:rotate(180deg);
    display: flex;
    justify-content: left;
    color: gray;
    font-size: 4em;
    padding-top: 2.5px;
    padding-right: 2.5px;
}


@media screen and (max-width:480px) {
    #maintext{
        font-size: 15px;
    }
    .maintext_subtitle{
        font-size: 22.5px;
    }
    .maintext_third_title{
        font-size: 20px;
    }
    .maintext_title{
        font-size: 25px;
        padding: 4%;
        letter-spacing: 3%;
    }
}

/* サブタイトル、マーカー、画像をclassに変更、タイトルを背景色白の影付きに変更 */


/* サイトマップ */

#sm{
    border: 4px solid #000000;
    padding: 10px 0;
    padding-inline-start: 0px;
    font-size: 25px;
}
#sm li{
    padding: 10px 0px 10px 10px;
    list-style: none;
    font-size: 25px;
}
#sm li a{
    text-decoration: none;
    color: black;
    transition-duration: 500ms;
}
#sm li a:hover{
    text-decoration: none;
    filter:opacity(40%);
    transition-duration: 500ms;
}
.sm1 li{
    font-size: 15px;
}
.sm{
    color: #000000;
    padding-left: 0px;
}
.sm1 a{
    font-size: 35px;
}
.sm2 a{
    padding-left: 30px;
    font-size: 25px;
}
.sm2::before{
    z-index: -1;
    margin-left: 10px;
    content: "";
    width: 15px;
    display: block;
    position: absolute;
    height: 0px;
    border-bottom: 2px solid #000;
    transform: translateY(15px);
}
.sm3 a{
    padding-left: 60px;
    font-size: 20px;
}
.sm3:before{
    z-index: -1;
    margin-left: 40px;
    content: "";
    width: 15px;
    display: block;
    position: absolute;
    height: 0px;
    border-bottom: 2px solid #000;
    transform: translateY(17.5px);
}

.respondent{
    font-weight: 700;
}

@media screen and (max-width:480px) {
    .sm1 a{
        font-size: 30px;
    }
    .sm2 a{
        padding-left: 30px;
        font-size: 20px;
    }
    .sm3 a{
        padding-left: 20px;
        font-size: 15px;
    }
    .sm3:before{
        margin-left: 0px;
        transform: translateY(20px);
    }
}

/*参考文献*/

#sanko_bunken{
    background-color: #dcdcdc;
    border-radius: 4px;
}

#sanko_bunken p{
    padding: 1% 2% 1% 2%;
    margin:0;
}

/* 活動記録 */

#activity_record{
    width: 100%;
}

dl{
    height: 250px;
    overflow-y: scroll;
    padding: 10px 30px;
    border: 3px solid #000;
    border-radius: 30px;
}

dt {
    float: left;
    clear: left;
    margin-right: 0.5em;
    width: 120px;
    margin: 15px 0;
}

dd {
    float: left;
    margin-left: 1em;
    margin: 15px 0;
}

/* 矢印ボタン */


.arrow-btn{
    z-index: 0;
    position: relative;
    display: inline-block;
    padding: 10px 40px;
    color: #000;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all 300ms;
}

.arrow-btn::after{
    content: "";
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 4px;
    height: 2px;
    background: #000;
    transition: all 300ms;
}

.arrow-btn::before{
    content: "";
    position: absolute;
    bottom: 4px;
    width: 0px;
    height: 2px;
    background: #000;
    transition: all 300ms;
}
.btn-next::before{
    transform: rotate(45deg);
    right: 0px; 
    transform-origin: right center;
}


div#arrow-btn-wrap-next {
    display: flex;
    justify-content: flex-end;
    padding: 0 2vw;
}

.btn-previous::before{
    transform: rotate(315deg);
    left: 0px; 
    transform-origin: left center;
}
.arrow-btn:hover::before{
    width: 14px;
}

.btn-next:hover::after{
    right: 0px;
}

.btn-previous:hover::after{
    left: 0px;
}
.arrow-btn:hover{
    color: #0009;
    text-decoration: none;
}
.arrow-btn-wrap{
    display: flex;
    justify-content: space-between;
    padding: 0 2vw;
    text-align: center;
}


.arrow-btn-wrap div:nth-child(1){
    text-align: left;
}
.arrow-btn-wrap div:nth-child(2){
    text-align: right;
}

@media screen and (max-width:480px) {
    .arrow-btn-wrap div p{
        display: none;
    }
    #arrow-btn-wrap-next div p{
        display: none;
    }
}

#top_button{
    margin:0% 0% 15% 0%;
}

#button_a img{
    min-width:100px;
    max-width: 150px;
    text-align: center;
    width: 15%;
    filter:opacity(100%);
    transition-duration: 500ms;
}

#button_a img:hover{
    filter:opacity(60%);
    transition-duration: 500ms;
}

/* フッター */

footer{
    background-color: #666666;
    color: #ffffff;
    text-align: center;
    width: 100vw;
    padding-top: 20px;
}

footer a{
    color: #ffffff;
    text-decoration: underline;
}

footer p{
    margin: 20px 20px 0px 20px;
    padding-bottom: 20px;
}

/* トップ画像 */
#top img{
    border: none;
    width: 100%;
    padding-top: 55px;
}

/* 取材ページの目次 */
#toc{
    width: 50vw;
    background-color: #ddd;
    margin:0 auto;
}

#toc div{
    background-color: #000;
    padding: 20px;
    color: #fff;
    text-align: center;
    font-weight: 500;
    font-size: 20px;
}

#toc ol{
    padding: 0 10px 20px 10px;
}

#toc ol li{
    padding: 5px;
    list-style: none;
}

@media screen and (max-width:480px){
    #toc{
        width: 100%;
    }

    #toc div{
        font-size: 15px;
    }
}

/* 色について。
私たちのテーマに沿っているのは「ヘクサード」、補色の組が三対。
今かなりあざやかな色の組でやっている、これはいいと思う。中高生っぽい。
色の系統ではなく」、トーンでそろえても意外とちゃんとしたデザインになることが判明。 */

/* でばっぐ */
/* *{
    outline: #0055cc;
} */

