/* フォントの読み込み */
@import url('https://fonts.googleapis.com/css2?family=Meddon&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');


/* 全体設定 */
*{
font-family: 'Noto Sans JP', sans-serif;
color: #454545;/* ★全体の文字色 */
font-size: 12px;
font-weight: 400;
letter-spacing: 0.15em;
line-height: 2.0em;
box-sizing: border-box;
padding: 0;
margin: 0;
list-style-type: none;
text-decoration: none;
}

body:before{
background: url(../img/IMG_5918.png);/* ★PC用背景画像のURL*/
background-position: top center;
background-repeat: repeat-y;
background-size: contain;
content: "";
display: block;
position: fixed;
top: -100px;
left: -10%;
z-index: -99;
width: 120%;
min-height: calc(100vh + 100px);
}

body{
background-color: #FFF;/* ★全体の背景色 */
width: 100vw;
overflow-x: hidden;
}

.wrap{
max-width: 600px;
height: auto;
padding: 0 40px;
margin: 0 auto;
}

/* リンク文字 */
a{
transition: 0.2s;
background-color: #DCEBF8;/* ★リンク文字の背景色 */
}

a:hover{
background-color: #CBD4F5;/* ★リンクをホバーした時の背景色 */
}

/* 強調文 */
strong{
font-weight: 700;
border-bottom: 2px solid #454545;/* ★強調文の文字色と下線 */
}

/* 見出し */
h1{
font-family: 'Meddon', serif;
font-size: 30px;
letter-spacing: 0.3em;
}

h2{
font-family: 'Meddon', serif;
font-size: 18px;
padding-bottom: 15px;
text-align: center;
}

h2:after{
content: '▼';
font-size: 14px;
line-height: 1.8em;
display: block;
color: #CBD4F5;/* ★h2見出しの下の▼の色 */
}

h3{
font-family: 'Meddon', serif;
font-size: 13px;
padding: 0 10px;
border: 1px solid #454545;/* ★h3見出しの囲み線 */
width: fit-content;
margin: 25px 0 10px;
}

/* TOPページ */
.top{
text-align: center;
width: 100%;
margin-top: 150px;
}

.nav{
width: 100%;
display: flex;
justify-content: center;
gap: 25px;
margin: 30px auto 10px;
}

.nav li a{
font-family: 'Meddon', serif;
font-size: 18px;
background: none;
}

.nav li a:hover{
filter: blur(1px);
color: #5797FF;/* ★メニューをホバーした時の文字色 */
}

.update{
color: #8E8E8E;/* ★更新履歴の文字色 */
}

.rank{
margin-top: 60px;
display: flex;
gap: 10px;
justify-content: center;
}

/* セクション（見出し＋本文のセット） */
.section{
width: 100%;
margin: 80px auto;
}

/* 入力フォームと送信ボタン */
input[type="text"],input[type="submit"],textarea{
-webkit-appearance: none;
-moz-appearance: none;
-webkit-box-shadow: none;
appearance: none;
box-shadow: none;
border: none;
outline: none;
background: #F4F4F4;/* ★入力フォームの背景色 */
padding: 3px 6px;
border-radius: 0;
color: #454545;/* ★入力フォームの文字色 */
width: 250px;
height: 30px;
border-radius: none;
margin-top: 10px;
}

textarea{
height: 100px;
}

input:focus, textarea:focus{
background-color: #EBEBEB;/* ★入力フォームフォーカス時の背景色 */
outline: none;
}

input[type="submit"]{
width: auto;
height: 2.2em;
background-color: #454545;/* ★送信ボタンの背景色 */
color: #FFF;/* ★送信ボタンの文字色 */
outline: none;
border: none;
padding: 0 15px;
cursor: pointer;
transition: 0.2s;
margin-top: 0;
}

input[type="submit"]:hover{
outline: none;
background-color: #DCEBF8;/* ★送信ボタンをホバーした時の背景色 */
color: #454545;/* ★送信ボタンをホバーした時の文字色 */
}

/* 名前変換フォーム */
.dream{
width: 100%;
display: flex;
margin-bottom: 40px;
}

.dream input{
width: 8em;
font-size: 11px;
height: 30px;
margin-right: 10px;
padding: 1px 5px 2px;
}

.dream input[type="submit"]{
width: 40px;
padding: 3px 10px 7px;
height: 30px;
margin-top: 10px;
}

/* 小説分岐 */
.long+.long{
padding-top: 20px;
}

.long{
display: flex;
gap: 15px;
}

.long a{
display: block;
width: fit-content;
line-height: normal;
}

.long img{
display: block;
border-radius: 99%;
width: 50px;
height: 50px;
object-fit: cover;
border: 2px solid #F4F4F4;
}

.long .caption{
padding-top: 8px;
}

/* メールフォーム */
.mail{
margin: 80px auto;
width: 300px;
}

.mail form{
width: 100%;
margin: 0 auto;
}

.mail input,.mail textarea{
width: 100%;
}

.error{
display: block;
padding: 30px 0 10px;
color: #E00E47;/* ★エラーメッセージの文字色 */
}

.thanks .title{
font-family: 'Meddon', serif;
font-size: 22px;
text-align: center;
padding-bottom: 25px;
}

.thanks .text{
text-align: center;
}

/* フッター */
footer{
margin: 70px auto 20px;
font-size: 10px;
text-align: center;
}

footer a{
font-size: 10px;
}

/*－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
GALLERY
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－*/
.gallerylist {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin: 40px 0;
}

.gallerylist__item {
width: calc((100% - 80px)/5);
height: auto;
}

.gallerylist__item a {
position: relative;
width: 100%;
display: block;
}

.gallerylist__item a::before {
content: "";
display: block;
padding-top: 100%;
/*100%=親要素の横幅*/
}

.gallerylist__item a img {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}

/* 500px以下のデバイスでの見え方 */
@media screen and (max-width: 500px) {
body:before{
background: url(../img/IMG_5919.png);/* ★スマホ用背景画像URL */
background-position: top center;
background-repeat: repeat-y;
background-size: contain;
top: -50px;
left: -20%;
width: 140%;
min-height: calc(100vh + 50px);
}

.top{
margin-top: 100px;
}

h1{
font-size: 25px;
}

.nav li a{
font-size: 15px;
}

.section{
margin: 40px auto;
}

.section+.section{
margin-top: 70px;
}

.mail{
margin: 40px auto;
width: 100%;
}

/* ギャラリーのレスポンシブ */
.gallerylist__item {
width: calc((100% - 40px)/3);
}
}

/* 追加のレスポンシブ設定 */
@media screen and (max-width: 1024px) {
.gallerylist__item {
width: calc((100% - 60px)/4);

}
}
