@charset "UTF-8";
/* CSS Document */

@import url(reset.css);

/*=== google fonts ===*/
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;500;800&family=Kiwi+Maru:wght@400;500&display=swap');
*{
	font-family: "M PLUS Rounded 1c", sans-serif;
}
html{
	-webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}
* {
	margin: 0;
	padding: 0;
	line-height: 1.5;
}
body {
	position: relative;
	background: #FEEEC6;
	margin-top: 100px;
}
.header {
	width: 100%;
	height: 100%;
	position: fixed;
	top: -100%;
	z-index: 999;  
}
@media screen and (min-width:768px){
.header{
	height: 150px;
	background: none;
	z-index: 10;
	}
}
.header.open{
	background: #FDC0AC;
	top: 0;
	transition: all 0.5s;
}
.gnav{
  width: 100%;
  position: fixed;
  top: -100%;
  left: 10px;
  z-index: 1000;
	transition: top 1s;
}
.gnav.open{
	top: 10px;
	z-index: 8;
	transition: 0.4s;
}
@media screen and (min-width:768px){
	.gnav{
		top: 0;
		left: 0;
		display: flex;
		justify-content: space-between;
	}
/* スクロールしたらheaderにbackground-color付与 */
	.gnav.bgWhite{
		background-color: #fff;
		transition: background-color 1s;
	}
}
.header .logo {
	width: 250px;
	height: 90px;
	text-align: center;
	margin: 0 auto;
}
@media screen and (min-width:768px){
	.header .logo{
		width: 250px;
		height: clamp(90px , 150 / 1440 * 100vw , 150px);
		padding-left: 10px;
		padding-right: 20px;
		margin: 0;
		background: #fff;
		border-bottom-right-radius: 100px;
	}
}
.header img{
	height:90px;	
	object-fit: cover;
}
@media screen and (min-width:768px){
	.header img{
		height:clamp(90px , 150 /1440 * 100vw  , 150px);
	}
}
.gnav ul {
  width: 250px;
  margin: 0 auto;
  list-style: none;
}
.navList>li{
	width: 100%;
	margin-right: 15px;
}
.navList>li:last-child{
	margin-right: 0;
}
@media screen and (min-width:768px){
	.gnav ul{
		width: 100%;
		margin: 0;
	}
}
.gnav>p:not(:has(img)){
	color: #f00;
	background-color: #fff;
	margin-top: 50px;
	width: 150px;
	font-size: 10px;
	margin-right: auto;
	margin-left: auto;
}
@media screen and (min-width:768px){
	.gnav>p:not(:has(img)){
		display: none;
	}
}
.gnav>p>span{
	display: block;
	text-align: center;
	font-weight: 800;
	transition: 0.4s;
}
/*=========================
	ハンバーガーメニュー
=========================*/
.hamburger{
	position: fixed;
	top: 10px;
	left: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	border: 1px solid #333;
	padding:10px;
	cursor: pointer;
	}
@media screen and (min-width:768px){
.hamburger{
	display: none;
	}
.navList{
	width: 100%;
	display: flex;
	margin: 0;
	}
}
.hamburger span{
	display: block;
	width: 40px;
	height: 3px;
	margin-top: 12px;
	background-color: #333;
	transition: 0.4s;
}
.hamburger div{
	padding-bottom:20px;	
}
.hamburger p{
	color: #333;
	width: 100%;
	text-align: center;
	font-size: 14px;
}
/*=========================
　ハンバーガーメニュー動作関係
=========================*/
.hamburger.active span:nth-child(1) {
  transform: rotate(135deg) translate(3px, -3px);
}
.hamburger.active span:nth-child(2) {
  transform: rotate(-135deg) translate(8px, 8px);
}
/*===============
　リンク関係　指定
===============*/
.category a,
.category:not(:has(a)){
	display: block;
	padding: 10px 5px;
	background: linear-gradient(
	to bottom,
	#DCDEFF 0%,
	#fff 100%);
	border-radius: 5px;
/*=== テキスト関係　指定 ===*/
	text-decoration: none;
	color: #555;
	font-size: 24px;
	text-align: center;
}
@media screen and (min-width:768px){
	.category a,
	.category:not(:has(a)){
		background: none;
		font-size: clamp(12px ,24 / 1440 * 100vw , 24px);
	}
}
.menu{
	background-color: #fff;
	border-radius: 0 0 5px 5px;
}
@media screen and (min-width:768px){
	.menu{
		background-color: inherit;
	}
}
.menu a{
	display: block;
	padding: 10px;
	margin-bottom: 10px;
/*===== テキスト関係　指定 =====*/
	color: #555;
	font-size: 16px;
	text-align: center;
}
.menu a:hover{
	background: #DCDEFF;
}
.category{
	margin-top: 10px;
	cursor: pointer;
}

.fv{
	width: auto;
	height: 100%;
	aspect-ratio: 786 / 884;
	background: url("../img/topImages/firstviewTopFrame.png") center top/cover no-repeat;
	margin-bottom: 200px;
}
@media screen and (min-width:768px){
.fv{
	width:100%;
	height: 903px;
	aspect-ratio: none;
	background: url("../img/topImages/firstview.png") center -50px/cover no-repeat;
	}
}

/*=========================
　ファーストビュー関係　指定 sp
=========================*/
.fv>h1{
/*=== positionなどの位置どりは20〜30行ほど下===*/
	width: 220px;
	padding: 10px;
	color: #FDC0AC;
	background: #fff;
	font-family: "Kiwi Maru", serif;
	font-weight: 800;
	font-style: normal;
	text-align: center;
	text-shadow: 2px 2px rgba(0,0,0,0.25);
	font-size: 40px;
	line-height: 1.3;
	box-shadow: 5px 5px 0 #555;
}
.fv h1 span{
	display: block;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 800;
}
.fv h1>span{
	font-size: 16px;
	text-align: start;
	color: #fff;
	-webkit-text-stroke: 1px #000;
}
.announce,
.announce>span{
	display: none;
}
.announce span{
	width: clamp(150px ,300 / 1440 * 100vw , 300px);
	text-shadow: none;
	font-size: clamp(10px ,20 / 1440 * 100vw , 20px);
	text-align: center;
	color: #f00;
}
/*=== 位置どりの指定 ===*/
.fv h1{
	position: absolute;
	left: 50vw;
	top: 50vw;
	z-index: 5;
	transform: translate(-50%,-30%);
}
/*=========================
　ファーストビュー関係　指定 pc
=========================*/
@media screen and (min-width:768px){
.fv h1{
	box-sizing: border-box;
	width: clamp(420px ,710 / 1440 * 100vw , 710px);
	height: 180px;
	padding: 15px;
	text-shadow: 5px 5px 4px rgba(0,0,0,0.25);
	font-size: 72px;
	box-shadow: 20px 20px 0 #555;
	left: 50vw;
	top: 50vh;
	transform: translate( -50%,-50%);
}
/*=== デザインカンプに合わせた指定 ===*/
@media screen and (min-width:1440px){
	.fv h1{
		height: 241px;
		font-size: 128px;
		transform: translate( -50%,-50%);
		}
}
.fv h1>span{
	font-size: clamp(24px ,48 / 1440 * 100vw , 48px);
	-webkit-text-stroke: 4px #000;
}
.announce,
.announce span{
	display: block;
}
.announce span{
	width: clamp(150px ,300 / 1440 * 100vw , 300px);
	text-shadow: none;
	font-size: clamp(10px ,20 / 1440 * 100vw , 20px);
	text-align: center;
	color: #f00;
}
.announce{
	position: absolute;
	right: 15px;
	top: 15px;
	}
}
/*=========================
　fv キャラクター　sp全体指定
=========================*/
.posi_rela{
	position: relative;
}
.fv_character{
	height:100%;
}
.fv_character img[src*=kids]{
	position: absolute;
	width: 44.72px;
	z-index: 10;
	transform: translate(-50% , -50%) rotate(30deg);
	animation-name:fvAnime;
	animation-iteration-count: infinite;
}
/*===== spキャラクター　個別指定（上段）=====*/
.fv_character>img:nth-of-type(1){
	left: calc(50vw - 89.29px);
	top: calc(50vw - 120px);
	animation-duration: 5s;
	animation-timing-function: ease-in-out;
	animation-direction: reverse;
}
.fv_character>img:nth-of-type(2){
	left: calc(50vw + 89.29px);
	top: calc(50vw - 120px);
	animation-duration: 5s;
}
/*==============================
pc全体(上段)指定 微調整は個別指定にて
==============================*/
@media screen and (min-width:768px){
.fv_character img[src*=kids]{
	width: 130px;
	}
/*===== pcキャラクター　個別指定（上段）=====*/
.fv_character>img:nth-of-type(1){
	left: calc(30% - 20px);
	top: calc(25vh - 20px);
	}
.fv_character>img:nth-of-type(2){
	left: calc(70% + 20px);
	top: calc(25vh - 20px);
	}
}
/*===== spキャラクター　個別指定（下段）=====*/
.fv_character>img:nth-of-type(4){
	left: calc(50vw - 50px);
	bottom: 10px;
	animation-duration: 6s;
	animation-direction: alternate;
}
.fv_character>img:nth-of-type(5){
	left: 50vw;
	bottom: 20px;
	animation-duration: 5s;
}
.fv_character>img:nth-of-type(6){
	width: 35px;
	left: calc(50vw + 50px);
	bottom: 10px;
	animation-duration: 6s;
	animation-delay: 0.5s;
}
/*==============================
pc全体(下段)指定 微調整は個別指定にて
==============================*/
@media screen and (min-width:768px){
.fv_character>img[src*=kids]{
	width: 130px;
	}
.fv_character>img:nth-of-type(4){
	left: calc(50% - 150px);
	bottom: 20px;
}
.fv_character>img:nth-of-type(5){
	left: 50%;
	bottom: 50px;
}
.fv_character>img:nth-of-type(6){
	width: 110px;/* サイズ微調整 */
	left: calc(50% + 150px);
	bottom: 10;
	}
}
/*===== キャラクター以外　指定=====*/
.fv_character img[src*=train]{
	position: absolute;
	width: 115px;
	left: 50%;
	top: calc(50vw - 80px);
	transform: translate(-40% , -50%) rotate(10deg);
	animation-name: fvTrain;
	animation-duration: 4s;
	animation-timing-function: steps(1);
	animation-iteration-count: infinite;
	z-index: 10;
}
.fv_character picture{
	position: absolute;
	left: 50vw;
	bottom: 0;
	transform: translateX(-50%);
	z-index: 11;
}
@media screen and (min-width:768px){
.fv_character img[src*=train]{
	width: 300px;
	left: 50%;
	top: calc(40vh - 110px);
	}
}
/*===== アニメーション関係　指定=====*/
@keyframes fvAnime {
	0%{
		transform: translate( -50%,-50%) rotate(30deg);
	}
	50%{
		transform: translate( -50%,-50%) rotate(-30deg);
	}
	100%{
		transform: translate( -50%,-50%) rotate(30deg);
	}
}
@keyframes fvTrain {
	0%{
		transform: translate(-40% , -50%) rotate(5deg);
	}
	20%{
		transform: translate(-45% , -50%) rotate(-5deg);
	}
	40%{
		transform: translate(-50% , -50%) rotate(5deg);
	}
	60%{
		transform: translate(-55% , -50%) rotate(-5deg);
	}
	80%{
		transform: translate(-60% , -50%) rotate(5deg);
	}
	100%{
		transform: translate(-65% , -50%) rotate(-5deg);
	}
}
.fv_bottom{
	width: 100%;
	font-weight: 800;
	margin-top: 10px;
}
.fv_bottom p{
	background: #fff;
	width: 150px;
	margin: 0 auto;
}
.fv_bottom span{
	display: block;
	font-size: 10px;
	text-align: center;
	color: #f00;
}
.fv_button{
	width:350px;
	display: flex;
	justify-content: space-between;
	margin: 10px auto 0;
}
.fv_button a{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 10px 15px;
	border-radius: 5px;
	border-bottom: 4px solid #000;
	background: inherit;	/* 色は下部で各自指定 */
}
.fv_button a:nth-child(1){
	background: #afe5a9;
}
.fv_button a:nth-child(2){
	background: #dcdeff;
}
.fv_button a:nth-child(3){
	background: #fdc0ac;
}
.fv_button span{
	font-size: 16px;
	color: #000;
}
@media screen and (min-width:768px){
.fv_bottom p{
	display: none;
	}
.fv_button{
	width: clamp(350px, 1050 / 1440 * 100vw , 1050px);
	}
.fv_button a{
	width: 250px;
	height: 100px;
	padding: 10px;
	border-radius: 10px 10px 0 0;
	border-bottom: none;
	position:relative;
	}
.fv_button a::after{
	content: ">>";
	display: inline-block;
	width: 44px;
	margin-left: 10px;
	position: absolute;
	top: 50%;
	right: 10px;
	font-size: clamp(16px , 24 / 1440 * 100vw, 24px);
	transform: translateY(-50%);
	}
.fv_button span{
	font-size: clamp(16px , 24 / 1440 * 100vw, 24px);
	}
}
