@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@700&family=Limelight&family=Zen+Kaku+Gothic+New:wght@500&display=swap');
:root {
	--text:#333333;
	--footer-text:#333333;
	--menu-text:#ffffff;
	--link:#1dacff;
	--menu-background:#1dacff;
	--menu-hover-text:pink;
	--body-background:#ffffff;
}

*, *::before, *::after {
  box-sizing: border-box;
}

html {
	font-size:62.5%;
	background-color:var(--body-background);
}

body{
	font-size:1.6rem;
	font-style: normal;
	font-family: "Lato", "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	font-style: normal;
	color:var(--text);
}
}

p {
	word-break: break-all;
}

a, a:visited, a:hover, a:active {
	color:var(--link);
}

/* --- スクロールロック --- */
.lock {
    overflow: hidden !important;
    height: 100% !important;
    width: 100% !important;
    position: fixed !important;
}

/* --- ローディング画面 --- */
#loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: #f7f7f7;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.8s ease-out, visibility 0.8s ease-out;
}

.fade-out {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* --- テキストアニメーション --- */
.loading-content {
    font-size: 3rem;
    font-weight: bold;
    color: #333;
    line-height: 2;
}

.char-span {
    opacity: 0;
    display: inline-block;
    animation: reveal 0.05s forwards;
    animation-delay: var(--delay);
}

@keyframes reveal {
    to { opacity: 1; }
}

/* --- メインコンテナ --- */
.container {
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.0s ease-out;
}

.show-container {
    opacity: 1 !important;
    visibility: visible !important;
}

.menu {
	background-color:var(--menu-background);
	position:sticky;
	top:0;
	z-index:8888;
}


.menu nav ul {
	display:flex;
	justify-content:flex-end;
	margin:0;
}

.menu nav ul li {
}

.menu nav ul li a {
	display:block;
	padding:1.5rem 4rem;
	text-align:center;
	font-size:2rem;
	text-decoration:none;
	color:var(--menu-text);
}

.menu nav ul li a:hover {
	color:var(--menu-hover-text);
	transition : .5s;
}


.container {
	width:100%;
	margin:0 auto;
	padding-bottom:1px;
}

header {
	padding:1rem 3rem 4rem;
	background:var(--menu-background);
	background: #1DACFF;
	background: linear-gradient(180deg, rgba(29, 172, 255, 1) 0%, rgba(245, 243, 140, 1) 100%);
}

.main-img {
	position:relative;
	height:85vh
}

.main-img img.background-img{
	width:100%;
	height:100%;
	border-radius:2rem;
	object-fit:cover;
}

/* --- ロゴ画像の設定（ここが重要！） --- */
#logo-img {
    position: absolute;
    
    /* 1. 配置したい場所を指定 (例: 中央より少し上) */
    top: 50%;           /* 上から50%の位置 */
    left: 50%;          /* 左から50%の位置 */
    
    /* 2. 初期状態（アニメーション前） */
    opacity: 0;
    /* translate(-50%, -50%) で中央寄せ、そこから +30px 下に下げておく */
    transform: translate(-50%, calc(-50% + 30px)); 
    
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    z-index: 10;
    width: 450px; /* サイズはお好みで */
}

/* --- アニメーション完了後の状態 --- */
#logo-img.show-logo {
    opacity: 1;
    /* 本来配置したい中央ぴったりの位置へ移動 (-50%, -50%) */
    transform: translate(-50%, -50%); 
}

/* スクロールダウンの位置 */
.scroll {
  padding-top: 60px;
  position:absolute;
  bottom:40px;
  left:50%;
  transform:translateX(-50%);
  text-align: center;
}
.scroll span {
	color:var(--link);
	font-size:2rem;
	text-shadow: 0px 0px 25px rgba(253, 253, 253, 0.87);
}
/* 矢印のアニメーション部分 */
.scroll::before {
  animation: scroll 2s infinite;
  border-bottom: 1px solid #000;
  border-left: 1px solid #000;
  content: "";
  height: 20px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
}
/* 矢印のアニメーション */
@keyframes scroll {
  0% {
    opacity: 0;
    transform: rotate(-45deg) translate(0, 0);
  }
  40% {
    opacity: 1;
  }
  80% {
    opacity: 0;
    transform: rotate(-45deg) translate(-20px, 20px);
  }
  100% {
    opacity: 0;
  }
}

section h1 {
 font-family: "Limelight", sans-serif;
  font-weight: 400;
  font-style: normal;
  text-align:center;
  font-size:5rem;
  margin:1rem 0 0;
}

section h2 {
	text-align:center;
	margin:0 0 3rem;
	font-size:1.8rem;
}


section .contents {
}

section .button {
	text-align:center;
	border-radius:50px;
}

section .button a {
	border-radius:50px;
	text-decoration:none;
}

section .button img {
	width:2rem;
	margin-right:1.2rem;
}

section.oshirase {
	background-color:#eeeeee;
	padding:7rem 20rem 10rem;
}

.kframe {
   display: block;
   width: 100%;
   height:250px;
   margin-bottom:3rem;
}

section.oshirase .button a {
	background-color:#fffdab;
	border:2px solid #333333;
	color:#333333;
	padding:2rem 4rem;
	border-radius:50px;
}

section.about {
	background-color:#fffdab;
	padding:4rem 0 10rem;
}

section.about .contents {
	margin:0 auto;
	width:600px;
	text-align:center;
}

section.about .contents p {
	line-height:3;
	font-size:1.8rem;
}

section.about .contents p .pc-none {
	display:none;
}

section.about .contents .button {
	text-align:center;
	margin:8rem auto 0;
}

section.about .button a {
	background-color:#ffccdb;
	color:#333333;
	padding:2rem 4rem;
	border:2px solid #333333;
}

section.event {
	padding:7rem 20rem 10rem;
	background:#eeeeee;
}

section.event .contents{
	text-align:center;
}

section.event .contents .info {
	margin-bottom:6rem;
}

section.event .contents h2.kaisai {
  position: relative;
  display: inline-block;
  padding: 0 55px;
  margin-bottom:2rem;
  font-size:2rem;
}

section.event .contents h2:before, section.event .contents h2:after {
  content: '';
  position: absolute;
  top: 50%;
  display: inline-block;
  width: 45px;
  height: 2px;
  background-color: black;
}

section.event .contents h2:before {
  left:0;
}
section.event .contents h2:after {
  right: 0;
}

section.event .contents p {
	font-size:3rem;
	margin:0 0 4rem;
}

section.event .contents p span {
	display:inline-block;
}
	

section.event .button a {
	background-color:#a6e7ff;
	color:#333333;
	border:2px solid #333333;
	padding:2rem 4rem;
	margin:0 2rem 3rem;
	border-radius:50px;
	display:inline-block;
	width:28rem;
}

section.qa {
	padding:7rem 20rem;
	background-color:#ffffff;
}

section.qa .qas {
	margin-bottom:6rem;
}

section.qa .button a {
	background-color:#fffdab;
	color:#333333;
	border:2px solid #333333;
	padding:2rem 4rem;
	border-radius:50px;
}

/* FAQ content */
details {
  position: relative;
  background: #eee;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  margin-bottom:3rem;
}
summary:after {
  content: "＋";
  font-size:2rem;
  font-weight:bold;
  margin-left:auto;
}
details[open] summary:after {
  content: "ー";
}
/* Q */
summary {
  line-height: 1.6em;
  display: flex;
  gap: 1em;
  padding: 1rem 2rem 1rem 1.5rem;
  align-items:center;
}
summary::-webkit-details-marker {
  display: none;
}
summary:before {
  content: "Q";
  color:white;
  font-weight:bold;
  background-color:#1DACFF;
  padding:0.5rem;
  width:4rem;
  height:4rem;
  border-radius:50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
/* A */
.answer {
  overflow: hidden;
  margin: 0;
  display: flex;
  gap: 1em;
  padding: 1rem 4rem 3rem 1.5rem;
}
.answer:before {
  content: "A";
  color:white;
  font-weight:bold;
  background-color:#1DACFF;
  padding:0.5rem;
  width:4rem;
  height:4rem;
  border-radius:50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
/* オープン時にアニメーションを設定 */
details[open] .answer {
  animation: fadeIn 0.5s ease;
}
@keyframes fadeIn {
  0% {
    opacity: 0; /* 透明 */
    transform: translateY(-10px); /* 上から表示 */
  }
  100% {
    opacity: 1;
    transform: none;
  }
}
section.otoiawase {
	padding:10rem 20rem;
	background:#eeeeee;
}

section.otoiawase .contents {
	max-width:60vw;
	background-color:white;
	padding:3rem 5rem 8rem;
	margin:0 auto;
}

section.otoiawase .contents p {
	margin-bottom:8rem;
}

section.otoiawase .button a {
	background-color:#333333;
	color:white;
	padding:2rem 4rem;
	border-radius:0;
}

section.link {
	padding:10rem 20rem;
	background:#ffffff;
}

section.link .banner span {
	display:block;
}

section.link .banner img:first-of-type {
	margin-bottom:1rem;
}

section.link .banner img {
	width:200px;
}

footer {
	padding:3rem 0;
	text-align:center;
	color:var(--footer-text);
	background-color:#ffffff;
}

footer p {
	margin:0;
}

@media screen and (max-width:768px) {
	.menu nav ul {
		justify-content:space-around;
	}
	.menu nav ul li {
		width:calc (100% / 3);
	}
	.menu nav ul li a {
		padding:1.5rem 0rem;	
	}
	.container {
		width:100%;
		margin:0;
	}
	header {
		padding:1rem 1.5rem 4rem;
	}
	.main-img img.background-img {
		height:80vh;
	}
/* --- ロゴ画像の設定（ここが重要！） --- */
	#logo-img {
		position: absolute;
    
		/* 1. 配置したい場所を指定 (例: 中央より少し上) */
		top: 47%;           /* 上から50%の位置 */
		left: 50%;          /* 左から50%の位置 */
    
		/* 2. 初期状態（アニメーション前） */
		opacity: 0;
		/* translate(-50%, -50%) で中央寄せ、そこから +30px 下に下げておく */
		transform: translate(-50%, calc(-47% + 30px)); 
    
		transition: opacity 0.8s ease-out, transform 0.8s ease-out;
		z-index: 10;
		width: 80%; /* サイズはお好みで */
	}

/* --- アニメーション完了後の状態 --- */
	#logo-img.show-logo {
		opacity: 1;
    /* 本来配置したい中央ぴったりの位置へ移動 (-50%, -50%) */
		transform: translate(-50%, -47%); 
	}

	main {
	}
	section.oshirase {
		padding:8rem 5rem 10rem;
	}
	section.about .contents {
		padding:3rem;
		width:auto;
	}
	section.about .contents p .pc-none {
		display:block;
	}
	section.about .contents p .tablet-none {
	display:none;
	}
	section.event {
		padding:10rem 5rem;
	}
	section.qa {
		padding:10rem 5rem;
	}
	section.otoiawase {
		padding:10rem 5rem;
	}
	section.otoiawase .contents {
		max-width:initial;
		width:80%;
		padding:3rem 5rem 8rem;
	}
	section.link {
		padding:10rem 5rem;
	}
}

@media screen and (max-width:500px) {
	.menu nav ul li a {
		font-size:1.8rem;
	}
	.main-img img#logo-img {
		width:90%;
	}
	main {
	}
	section h2 {
	font-size:2rem;
	}
	section .contents {
	}
	section.oshirase {
		padding:6rem 2rem 10rem;
	}
	section.about .contents {
		text-align:left;
	}
	section.about .contents p {
		font-size:1.7rem;
	}
	section.about .contents p .tablet-none {
		display:block;
	}
	section.event {
		padding:6rem 2rem 10rem;
	}
	section.event .button a {
		width:25rem;
	}
	section.qa {
		padding:6rem 2rem 10rem;
	}
	section.otoiawase {
		padding:6rem 2rem 10rem;
	}
	section.otoiawase .contents {
		width:90%;
		padding:3rem 2rem 8rem;
	}
	section.otoiawase .button a {
		padding:2rem 2rem;
}
	section.link {
		padding:6rem 2rem 10rem;
	}
	
}

/*ふわっと表示*/
.fuwa {
  opacity: 0;
  visibility: hidden;
  transition: all 1s;
  transform: translateY(50px);
}

.is-show {
  /*要素を表示させる*/
  opacity: 1;
  visibility: visible;
  /*元の位置に戻す*/
  transform: translateY(0);
}