@charset "utf-8";*,*::before,*::after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth}body{font-weight:400;font-size:1rem;line-height:1.5;font-family:sans-serif}h1,h2,h3,h4,h5,h6{line-height:1.15;overflow-wrap:break-word}p{margin-top:1em;overflow-wrap:break-word}b,strong{font-weight:700}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{background-color:transparent;text-decoration:none}a:active,a:hover{outline-width:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}code,kbd,samp{font-family:monospace,monospace;font-size:1em}nav ul,nav ol{list-style:none;padding:0}ul,ol{padding-left:1.5em}img,svg{display:inline;max-width:100%;height:auto;vertical-align:middle;background-repeat:no-repeat;background-size:cover;shape-margin:.75rem}picture,video,canvas{display:block;max-width:100%}iframe{border:none}table{border-collapse:collapse}details{display:block}summary{display:list-item}input,button,textarea,select{font:inherit}input,button{line-height:1.15}*:focus{outline:none}


:root {
	--space: clamp(90px, 9vw, 120px);
	--hihi: #ff6b6b;
	--norider: #2cb4ad;
	--hiyoko: #fdd35c;
}


body {
	color: #252525;
	font-family: "Hiragino Sans", Roboto, "Segoe UI", "Helvetica Neue", Helvetica, "Noto Sans", "Liberation Sans", Arial, "Yu Gothic Medium", "游ゴシック Medium", "Yu Gothic", Meiryo, sans-serif;
}

a {
	color: #1495db;
}


/* レイアウト
 ----------------------------------------- */
/* sticky footer */
html, body {
	height: 100%;
}
/*body > footer {
	position: sticky;
	top: 100vh;
	top: 100dvh;
}*/

/* ページ全体 */
.main-wrapper {
	position: relative;
	overflow-x: hidden;
	background: #00b3f5 url("img/sky.jpg") center bottom/cover no-repeat;
	/*background: rgba(255, 255, 255, .4);*/
}
@media (min-width: 676px) {
	body {
		background: #00b3f5 url("img/sky.jpg") center center/cover no-repeat fixed;
	}
	.main-wrapper {
		display: flex;
		max-width: 1160px;
		margin: auto;
	}
	.hero {
		flex: 1;
	}
	.main-contents {
		flex: 1;
	}
}

/* 非表示 */
.hidden {
	position: absolute;
	top: -9999px;
	left: -9999px;
}

/* 電話へのリンク */
@media (min-width: 751px) {
	a[href^="tel:"] {
		pointer-events: none;
		cursor: default;
	}
}



/* ----------------------------------------- */
/* header
/* ----------------------------------------- */

/* hero
 ---------------------------------------- */
.hero {
	position: relative;
	clip-path: inset(0);
	width: 100%;
	height: auto;
	background: #fff;
}
.hero::before {
	content: "";
	position: relative;
	display: block;
	aspect-ratio: 2 / 3;
}
@media(min-width: 769px) {
	.hero::before {
		aspect-ratio: 2 / 3;
	}
}

/* hero-img */
img.hero-img {
	position: fixed;
	inset: 0;
	z-index: 1;
	object-fit: cover;
	width: 100%;
	height: 100%;
	opacity: 0;
	animation: fade-animation 30s infinite;
}
@keyframes fade-animation {
	  0% { opacity: 0; }
	7.5% { opacity: 1; }
	 15% { opacity: 1; }
	 20% { opacity: 0; }
	100% { opacity: 0; }
}
.hero-img:nth-of-type(1) {
	animation-delay: 0s;
	object-position: 40% 50%;
}
.hero-img:nth-of-type(2) {
	animation-delay: 5s;
	object-position: 40% 50%;
}
.hero-img:nth-of-type(3) {
	animation-delay: 10s;
	object-position: 30% 50%;
}
.hero-img:nth-of-type(4) {
	animation-delay: 15s;
	object-position: 40% 50%;
}
.hero-img:nth-of-type(5) {
	animation-delay: 20s;
	object-position: 50% 50%;
}
.hero-img:nth-of-type(6) {
	animation-delay: 25s;
	object-position: 50% 50%;
}

@media (min-width: 676px) {
	img.hero-img {
		width: 50%;
	}
}

@media (min-width: 1301px) {
.hero-img:nth-of-type(1) {
	animation-delay: 0s;
	object-position: 10% 50%;
}
.hero-img:nth-of-type(2) {
	animation-delay: 5s;
	object-position: 15% 50%;
}
.hero-img:nth-of-type(3) {
	animation-delay: 10s;
	object-position: 0 50%;
}
.hero-img:nth-of-type(4) {
	animation-delay: 15s;
	object-position: 10% 50%;
}
.hero-img:nth-of-type(5) {
	animation-delay: 20s;
	object-position: 20% 50%;
}
.hero-img:nth-of-type(6) {
	animation-delay: 25s;
	object-position: 15% 50%;
}
}


/* ----------------------------------------- */
/* main
/* ----------------------------------------- */
.main-contents {
	position: relative;
}

/* メインタイトル */
.main-title {
	margin: 2em auto 0;
	padding: 0 .5em;
	width: min(100%, 600px);
	filter: drop-shadow(0 0 10px #09f);
}
@media (max-width: 675px) {
	.main-title {
		margin-top: -30%;
	}
}


.c-container {
	
}
.c-container h2 {
	font-size: clamp(1.5rem, 1.318rem + .91vw, 2rem);
}
.c-container h3 {
	/*font-size: clamp(1.25rem, 1.068rem + .91vw, 1.75rem);*/
}

.inner {
	padding: 1.25em;
}


/* intro
 ---------------------------------------- */
.intro {
	padding: calc(var(--space) / 4) 0 calc((var(--space) / 4) + 1em);
}
.intro-title {
	color: var(--hihi);
	text-align: center;
}
.intro-title span {
	font-size: 1.5em;
}
.intro-text {
	margin-top: 1.5em;
	color: #444;
	color: #fff;
	font-size: 1.25rem;
	font-weight: bolder;
	text-shadow: 0 0 10px #09f,
	             0 0 10px #09f,
	             0 0 10px #09f,
	             0 0 10px #09f,
	             0 0 10px #09f;
}

/* リボン */
.ribbon {
	font-size: 1.25rem;
	font-weight: bold;
	color: #fff;
}
.ribbon {
	--r: .8em;
	padding-right: calc(var(--r) + .25em);
	line-height: 1.8;
	clip-path: polygon(-100vw 0,100% 0,calc(100% - var(--r)) 50%,100% 100%,-100vw 100%);
	clip-path: polygon(0 0,100% 0,calc(100% - var(--r)) 50%,100% 100%,0 100%);
	border-image: conic-gradient(var(--hihi) 0 0) fill 0//100vw;
	width: fit-content;
}

.intro-c-title {
	margin-left: -1em;
	padding: .3em 2em .3em 1em;
}
.ribbon.nori-taiken {
	border-image: conic-gradient(var(--norider) 0 0) fill 0//100vw;
}
.ribbon.nori-hiyoko {
	border-image: conic-gradient(var(--hiyoko) 0 0) fill 0//100vw;
}

.intro-c-text {
	margin-top: -2em;
	padding: 2em 1em 1em;
	background: rgba(255, 255, 255, .5);
	border: 1px solid #fff;
	border-radius: .3em;
}

.intro-c-text p {
	font-size: 1.125rem;
}
.outline-list {
	margin-top: 1em;
}
.outline-list div {
	display: flex;
}
.outline-list dt {
	font-weight: bold;
	width: 3em;
}
.outline-list dd {
	width: calc(100% - 3em);
}


/* 参加案内
 ----------------------------------------- */
.guidance {
	padding: calc(var(--space) / 3) 0 calc((var(--space) / 3) + 1em);
	background: #bce8c1;
}

.guidance .c-title {
	margin-bottom: 1em;
	color: #fff;
	text-shadow: 0 0 10px #6fbd78,
	             0 0 10px #6fbd78,
	             0 0 10px #6fbd78,
	             0 0 10px #6fbd78,
	             0 0 10px #6fbd78;
}
.c-text  {
	padding: .5em 1em 1.5em;
	background: #fff;
	border-radius: .3em;
}

.links {
	list-style: none;
	display: flex;
	gap: .75em;
	margin: 2em auto 3em;
	padding-left: 0;
}
.link-btn {
	--shadow: #9c785c;
	position: relative;
	top: 0;
	flex: 1;
	flex-grow: 1;
	background: var(--hihi);
	border-radius: .75em;
	box-shadow: 0 6px 0 var(--shadow), 0 8px 10px rgba(0, 0, 0, .2);
	transition: all .1s ease;
}
.link-btn:hover {
	opacity: .8;
}
.link-btn:active {
	top: 4px;
	box-shadow: 0 2px 0 var(--shadow), 0 4px 6px rgba(0, 0, 0, .2);
}
.link-btn:nth-child(2) {
	background: var(--norider);
}
.link-btn:nth-child(3) {
	background: var(--hiyoko);
}
.link-item {
	display: block;
	padding: 1.5em .5em;
	width: 100%;
	height: 100%;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
}

.desc-list > div + div {
	margin-top: 2em;
}
.desc-list-dt {
	margin-left: -1em;
	padding: .3em 2em .3em 1em;
	font-size: clamp(1.125rem, 1.034rem + .45vw, 1.375rem);
	font-weight: bold;
}

.desc-list .outline-list dt {
	width: 5em;
}
.desc-list .outline-list dd {
	width: calc(100% - 5em);
}

.notice {
	list-style: none;
	margin-top: 1em;
	padding-left: 0;
}
.notice li::before {
	content: "※";
	margin-right: .5em;
}
.notice li {
	padding-left: 1.5em;
	text-indent: -1.5em;
}

span.arrow {
	position: relative;
	display: block;
	vertical-align: middle;
	margin: auto;
	width: .2em;
	height: 1em;
	background: currentColor;
	color: var(--hihi);
	line-height: 1;
}
span.arrow::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -.05em;
	width: .65em;
	height: .65em;
	border: .2em solid currentColor;
	border-top: 0;
	border-right: 0;
	transform: rotate(-45deg);
	transform-origin: bottom left;
}


/* Q＆A
 ----------------------------------------- */
.q-and-a {
	padding: calc(var(--space) / 3) 0 calc((var(--space) / 3) + 1em);
	background: #fcc;
}
.q-and-a .c-title {
	margin-bottom: 1em;
	color: #fff;
	text-shadow: 0 0 10px #f79292,
	             0 0 10px #f79292,
	             0 0 10px #f79292,
	             0 0 10px #f79292,
	             0 0 10px #f79292;
}
.q-and-a .c-text {
	
}

.qa-list {
	margin-top: 1.5em;
}
.qa-list div + div {
	margin-top: 1.5em;
}
.qa-list dt {
	font-weight: bolder;
}
.qa-list dt::before {
	content: "Q";
	display: inline-block;
	margin-right: .3em;
	width: 1.5em;
	height: 1.5em;
	background: var(--hihi);
	border-radius: 50%;
	color: #fff;
	font-weight: bold;
	line-height: 1.5em;
	text-align: center;
}

.qa-list dd {
	padding-top: .5em;
	padding-left: .5em;
}
.qa-list dd::before {
	content: "A";
	display: inline-block;
	margin-right: .3em;
	width: 1.5em;
	height: 1.5em;
	background: #5bb3c9;
	border-radius: 50%;
	color: #fff;
	font-weight: bold;
	line-height: 1.5em;
	text-align: center;
}
.qa-list dd p {
	margin: -1.5em 0 0 1.8em;
}



/* 主催者情報
 ----------------------------------------- */
.colophon {
	padding: calc(var(--space) / 3) 0;
}

.colophon .outline-list {
	margin-top: 0;
}
.colophon .outline-list dt {
	width: 5em;
}
.colophon .outline-list dd {
	width: calc(100% - 5em);
}

.sponsor-ai {
	height: 24px;
	line-height: 1;
}
.sponsor-ai img {
	width: auto;
	height: 20px;
}