@charset "utf-8";

/* * * Reset * * */
html, body, div, section, article, aside, header, footer, main, nav,
h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, blockquote, pre,
table, th, td, form, figure, fieldset, input, textarea, button {
    margin: 0;
    padding: 0;
}

ol, ul {
    list-style: none;
    list-style-type: none;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

a img {
    border: none;
}

*, *::before, *::after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

button {
    background-color: transparent;
    border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    appearance: none;
}

/* * * Setting * * */
html {
    scroll-behavior: smooth;
}
html,
body{
    overflow-x: hidden;
}

body {
  background: #FFF;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-weight: 500;
  font-style: normal;
    font-size: clamp(16px, 2vw, 20px);
    /*line-height: 1.75;*/
    color: #222;
    text-align: center;
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
}
/*
font-weight: 400; /* Regular 
font-weight: 500; /* Medium 
font-weight: 700; /* Bold 
font-weight: 800; /* ExtraBold 
font-weight: 900; /* Black 
*/


.PC {
    display: none;
}

/* * * general * * */
.inner {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    padding: 0;
    text-align: left;
}





#header{
    position:relative;
    width:100%;
    background-color: #5bb431;
}

#header h1{
}

#header h1 img{
    display:block;
    padding: 2em 0 1em 0;
    width: 130%;
    max-width: none;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
	overflow: hidden;
}

#header #g_logo{
    position: absolute;
    top:0.5em;
    left:0.5em;
}
#header #g_logo img{
    height: 1em;
    width: auto;
}

/* ハンバーガーボタン */
.ham_btn {
  font-size: 0.5rem;
  position: fixed;
  top: 1em;
  right: 1em;
  width: 4.75em; /* 76px */
  height: 4.75em; /* 76px */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 0.4375em; /* 7px */
  padding: 0.75em 0 0.3em 0; /* 12px */
  background: #5bb431;
  border: none;
  border-radius: 0.25em; /* 4px */
  z-index: 1000;
  cursor: pointer;
}

/* ハンバーガーの3本線 */
.ham_btn span {
  display: block;
  width: 3.5em; /* 56px */
  height: 0.437em; /* 7px */
  background: #fff;
  border-radius: 0.25em; /* 4px */
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* MENU */
.ham_btn::after {
  content: "MENU";
  margin-top: 0.3125em; /* 5px */
  color: #fff;
  font-size: 1em; /* 16px */
  font-weight: 400;
  line-height: 1;
}

/* 開いた時：×に変形 */
.ham_btn.is-open span:nth-child(1) {
  transform: translateY(0.875em) rotate(45deg); /* 14px */
}

.ham_btn.is-open span:nth-child(2) {
  opacity: 0;
}

.ham_btn.is-open span:nth-child(3) {
  transform: translateY(-0.875em) rotate(-45deg); /* 14px */
}



/* ハンバーガーメニュー本体（上から降りる・全幅） */
.ham_nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  max-height: 100vh;
  overflow-y: auto;
  box-shadow: 0 4px 12px rgba(180, 140, 200, 0.2);
  transform: translateY(-100%);
  transition: transform 0.35s ease;
  z-index: 999;
  padding: 80px 24px 24px;
  background-color: #ffffcc;

}

.ham_nav.is-open {
  transform: translateY(0);
}

.ham_nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.ham_nav li {
  border-bottom: 1px solid #7e5b50;
}

.ham_nav a {
  display: block;
  padding: 16px 8px;
  color: #7e5b50;
  text-decoration: none;
  font-weight: 800;
  
}

/** gnav **/

#gnav{
    background-color: #ffe900;
    border-top: 3px solid #7d5b52;
    border-bottom: 3px solid #7d5b52;
    padding: 0.5em 0;
}
#gnav ul{
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    gap: 10px 20px;
    margin: 0 1em;
}


#gnav ul a{
    color: #7d5b52;
    text-decoration: none;
    font-weight: 800;
	font-size: 80%;
}
#gnav ul a::before{
    content: '';/*何も入れない*/
    display: inline-block;/*忘れずに！*/
    width: 1em;/*画像の幅*/
    height: 1em;/*画像の高さ*/
    background-image: url("../img/i_menu.png");
    background-size: contain;
    background-repeat: no-repeat;
    vertical-align: middle;
    margin-right: 0.2em;

}
#gnav ul a:hover{
}






/*** mainSwiper ***/
.mainSwiper_wrap {
    position: relative;
    padding-bottom: 50px;
}

.mainSwiper {
    width: 80%;
    margin: 0 auto;
}

.mainSwiper_wrap .swiper-button-prev,
.mainSwiper_wrap .swiper-button-next {
    position: absolute;
    top: 0;
    bottom: 50px;
    height: auto;
    width: 44px;
    margin: 0;
    display: flex;
    align-items: center;
}

.mainSwiper_wrap .swiper-button-prev {
    left: 0;
}

.mainSwiper_wrap .swiper-button-next {
    right: 0;
}

.mainSwiper_wrap .swiper-pagination {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
}

.mainSwiper_wrap .swiper-button-prev,
.mainSwiper_wrap .swiper-button-next,
.mainSwiper_wrap .swiper-pagination-bullet-active {
    color: #4e9926;
}

.mainSwiper_wrap .swiper-pagination-bullet-active {
    background: #4e9926;
}








/*** blocks ***/
.blocks {
    padding: 40px 20px;
}

.blocks h2 {
    margin-bottom: 1em;
    font-size: 1.3em;
    line-height: 1.4;
    font-weight:900;
}

.blocks p {
    line-height: 1.8;
}


/** title **/
.title{
    display: flex;
    justify-content: center;
    font-size: 1.3em;
	padding-bottom: 1em;
}
.title span{
	position: relative;
    display: inline;
    color: #FFF;
    background-color: #5bb431;
    border:3px solid #7d5b52;
    text-align: center;
    padding: 0.3em 0;
    border-radius: 0.5em;
    width:10em;
}


.title span::before {
	content: '';
	position: absolute;
	left: 50%;
	top: -1.1em;
	transform: translateX(-50%);
	width: 0.5em;
	height: 1em;
	background: url(../img/title_bk1.png) no-repeat center / 100% 100%;
}

.title span::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -1.1em;
	transform: translateX(-50%);
	width: 0.5em;
	height: 1em;
	background: url(../img/title_bk2.png) no-repeat center / 100% 100%;
}



/** news **/
#news{
    background-image: url("../img/line_fumikiri.png"), url("../img/line_fumikiri.png");
    background-repeat: repeat-x, repeat-x;
    background-position: top, bottom;
    background-size: auto 10px;
    background-color: #ffffcd;
}
#news .title span::before {
    display: none;
}
#news .title span::after {
    display: none;
}

#news h2{
    margin-top:-2.8em; 
}

#news dl{
	border-bottom: 2px dashed #CCC;
    margin-top: 0.6em;
}
#news dl:last-child{
	border-bottom: none;

}
#news dt{
    color: #7e5b50;
    font-weight: 800;
    margin-bottom: 0.4em;
}

#news dd{
    text-indent: -1em;
    padding-left: 1em;
	padding-bottom: 0.5em;
	margin-bottom: 0.5em;
	margin-left: 1em;
}
#news dd::before{
    content: "●";
    color: #5BB431;
}

#news dd a{
    color: #4e9926;
}

#news h3{
	text-align: center;
	font-size: 100%;
	margin: 2em 0 0 0;
	cursor: pointer;
}




/*past_news*/
#past_news{
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

#past_news.open{
   max-height: 500px;
   overflow-y: auto;
}

#past_news_btn span{
    cursor: pointer;
}

h3#past_news_btn span{
  color: #5BB431;
}

/**about**/

#about01{
    display: flex;
    justify-content: center;
    gap:1em;
    margin: 0 0 2em 0;
}

#about01 div{
    border: 2px solid #7e5b50;
    border-radius: 0.5em;
    padding: 0.5em;
}
#about01 dt{
    color: #7e5b50;
    text-align: center;
    font-weight: 800;
	font-size: 1.2em;
}
#about01 dd{
    font-size: 70%;
    text-align: center;
}
#about01 div{
flex: 1;
}

#about01 span{
    display: flex;
    align-items: center;
}
#about01 img{
    width:1.6em;
}


#book_list{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:1em;
    margin: 1em 0;
}



/*button_area*/
.button_area {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap:1em;
    
}
.button_area a{
    display:flex;
    padding:0.5em 1em;
    text-decoration:none;
    color: #FFF;
    border-radius: 0.5em;
    font-size: 0.9em;
	font-weight: 900;
	height: 100%;
	align-items: center;
}


.button_area li:nth-child(1) a{
    background-color: #8ec21f;
}
.button_area li:nth-child(2) a{
    background-color: #ee7701;
}
.button_area li:nth-child(3) a{
    background-color: #e50112;
}




/** kankan **/
#kankan{
    position: relative;
    background: url("../img/bk_about.png");
    background-size: 110% auto;
    background-repeat: no-repeat;
    background-color: #ffffcc;
    background-position: center top;
    margin-top: 3em;
}

#kankan::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-100%);/*上へずらす*/
  width: 100%;
  height: 3em; /* 波の高さ。お好みで調整 */
  background-image: url("../img/wave.svg");
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}

#kankan .inner{
    text-align: center;
    font-weight: 900;
    padding: 2em 0 0 0;
}
#kankan .inner p{
   font-weight: 900;
 }

#kankan_ill{/*ネコイラスト*/
    text-align: left;
    padding-left: 2em;
	margin: 1em 0 -1em 0;
    
}
#kankan_ill img{/*ネコイラスト*/
    width:50vw;
}


/**ill_area**/
.ill_area{
    border-top: 5px solid #7e5b50;
    border-bottom: 5px solid #7e5b50;
}


/** intro **/

#intro h2{
	color: #5BB431;
	font-weight: 900;
}

#intro_txt p{
	/*text-align: center;*/
	font-weight: 800;
}



/**character**/

#chara_list{
	display: flex;
	justify-content: center;
    gap:3vw;
}
#chara_list p{
	text-align: center;
	font-size: 70%;
	font-weight: 800;
	line-height: 1.5em;
	margin-top: 0.5em;
}
#chara_list p strong{
	display: block;
	color: #7E5B50;
	font-size: 120%;
	font-weight: 900;
	padding-top: 0.2em;
}




/**author**/
#author{
    background-image: url("../img/line_fumikiri.png"), url("../img/line_fumikiri.png");
    background-repeat: repeat-x, repeat-x;
    background-position: top, bottom;
    background-size: auto 10px;
    background-color: #ffffcd;
}

#author_list{
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1em;
}
#author_list div{
	margin-bottom: 1em;
}



#author_list dt{
	color:#7E5B50;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin-bottom: 0.5em;
	font-weight: 800;
}
#author_list dt span{
	display: block;
	font-size: 1.2em;
}
#author_list dt img{
	width:1.5em;
}
#author_list dd{
	font-size: 90%;
}


/** song **/

#song h3{
	color: #5BB431;
	text-align: center;
	font-size: 120%;
}
#song h3 span{
	display: block;
	font-size: 70%;
}
#song figure{
	text-align: center;
}

#song_tit01{
	color: #7E5B50;
	font-size: 80%;
}
#song_tit02{
	font-size: 90%;
}

#song h4{
	color: #5BB431;
	text-align: center;
	margin: 2em 0 0.5em;
	font-size: 120%;	
}
#song h4 span{
	display: block;
}
#song h4 img{
	width:1.5em;
}

#song_txt{
	font-size: 90%;
}
#song_txt p{
    line-height: 2em;
}

#song_end_ill{
    width: 100%;
    max-width: 1000px;
	margin-top: 2em;
    position: relative;
    left: auto;
    transform: translateX(0);
}




/** animation**/

.fadein {
    opacity: 0;
    transform: translateY(-30px);
    transition: 0.5s ease-out;
}

.fadein.show {
    opacity: 1;
    transform: translateY(0);
}




/*================================
  肉球の足跡
================================*/
.cursor {
    display: none;
}


.paw-trail{
    position: fixed;
    width: 33px;
    height: auto;

    pointer-events: none;

    z-index: 9998;

    opacity: 0.9;

    transition: opacity 0.3s ease;
}

.paw-trail.paw-hide{
    opacity: 0;
}





















/** page_top **/
#page_top {
    height: 60px;
    position: fixed;
    bottom: 16px;
    right: 16px;
    z-index: 100;
}

#page_top a {
    position: relative;
    display: block;
    width: 60px;
    height: 60px;
    text-decoration: none;
    background: gray;
    opacity: 0.6;
    border-radius: 9999px;
    transition: background-color 0.3s ease, opacity 0.3s ease;
}

#page_top a:hover {
    background: #08b9d4;
    opacity: 1;
}


@media screen and (max-width: 750px) and (orientation: landscape) {
    #page_top a {
        width: 52px;
        height: 52px;
    }
}

/*** footer ***/
#footer {
    padding: 1em;
    text-align: center;
	font-size: 90%;

    background-image: url("../img/line_fumikiri.png");
    background-repeat: repeat-x, repeat-x;
    background-position: top, bottom;
    background-size: auto 10px;
    background-color: #5BB431;
	color: #FFF;
}

#footer ul{
	display: flex;
	justify-content: center;
	gap:1em;
}
#footer ul a{
	text-decoration: none;
	color: #FFF;
	font-size: 75%;
}
#footer ul a:hover{
    text-decoration: underline;
}

#footer #copy {
	font-size: 90%;
	margin-top: 1em;
	display: flex;
	justify-content: center;
	gap:1.5em;
	font-weight: 600;
}

/*** class ***/
.none {
    display: none;
}

.img_center{
    margin: 0 auto;
}


.t1em {
    margin-top: 1em;
}

.t2em {
    margin-top: 2em;
}

.t3em {
    margin-top: 3em;
}

.b1em {
    margin-bottom: 1em;
}

.b2em {
    margin-bottom: 2em;
}

.b3em {
    margin-bottom: 3em;
}

.txt_center{
	text-align: center;
}


.flex_wrap {
    display: flex;
    flex-wrap: wrap;
}

a.hover80:hover img {
    opacity: 0.8;
    transition: opacity 0.3s ease;
}
a.hover80:hover{
    opacity: 0.8;
    transition: opacity 0.3s ease;
}




/*** ul_type ***/
.ul_type01 li {
    text-indent: -1em;
    padding-left: 1em;
}

/*------------------------------------------------------
    mediaQuery
*-------------------------------------------------------*/
@media screen and (min-width: 640px) {
    body {
        font-size: 150%;
    }

    .SP {
        display: none;
    }

    .PC {
        display: block;
    }

    /* ハンバーガーボタン */
    .ham_btn {
      font-size: 0.8rem;
    }

	/*** blocks ***/
	.blocks {
		padding: 5rem 2rem;
	}
	#gnav{
		border-top: 5px solid #7d5b52;
		border-bottom: 5px solid #7d5b52;
	}
	#gnav ul{
		flex-wrap:nowrap;
	}
	#gnav ul a{
		font-size: clamp(14px, 2vw, 24px);
		white-space: nowrap;
		
	}


	#header h1 img{
		width: 100%;
	}

	#gnav ul{
		justify-content: center;
		gap: 1em 2em;
		margin: 0 1em;
	}
	
	
	
	.title{
		margin-top: 2em;
	}

	

	#news{
		background-size: auto 20px;
	}


	#news h2{
		margin-top:-6.8rem; 
	}

#book_list{
    gap:2em;
    margin: 2em 0;
}



	.button_area {
		margin: 2em 0;
	}
	.button_area a{
		justify-content: center;
		padding: 1em 0;
	}




	#kankan .inner{
		padding: 12vw 0 0 0;
	}
	#kankan .inner p{
		line-height: 2em;
	}


	#intro h2, #intro_txt{
		text-align: center;
	}


  #chara_list p strong{
      font-size: 130%;
      padding-top: 0.5em;
  }



	#author{
		background-size: auto 18px;
	}


	#author_list{
	  display: flex;
	  flex-direction: row;
	  gap:3em;
	}

	
	#footer{
		background-size: auto 20px;
        padding: 2em 0 0.5em 0;
	}

}