@charset "UTF-8";

@font-face {
	font-family: "impact";
	src: url("../fonts/impact.woff") format("woff"), url("../fonts/impact.eot") format("eot");
}

.font_impact {
	font-family: "impact";
}

body {
	color: #3b3b3b;
	font-family: "Noto Sans JP", sans-serif;
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	text-decoration: none;
}

ul, ol {
	list-style: none;
}

.container {
	position: relative;
	overflow: hidden;
}

.header_container {
	display: block;
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 10;
	transform: translateX(-50%);
	width: 100%;
}

.header_contents {
	display: flex;
	max-width: 1820px;
	width: 95%;
	margin: 0 auto;
	justify-content: space-between;
}

.header_title {
	display: flex;
	font-weight: 600;
	font-size: clamp(0.813rem, 0.604rem + 0.43vw, 1.125rem);
	letter-spacing: 0.03em;
	flex-direction: column;
}

.header_title span {
	font-size: clamp(0.625rem, 0.458rem + 0.35vw, 0.875rem);
}

.header_sns-nav {
	padding-top: 30px;
}

.header_sns-list {
	display: flex;
	line-height: 1;
}

#fastival_instagram {
	background-image: url(../images/instagram_gradate.webp);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100%;

	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

@media screen and (min-width: 768px) {
	.header_contents {
		width: 95%;
	}

	.header_title {
		padding-top: 35px;
	}

	.header_sns-nav {
		padding-top: 30px;
	}

	.header_sns-list {
		font-size: 60px;
		column-gap: 10px;
	}
}

@media screen and (max-width: 767px) {
	.header_contents {
		width: 100%;
		padding: 0 20px;
	}

	.header_title {
		padding-top: 15px;
	}

	.header_sns-nav {
		padding-top: 15px;
	}

	.header_sns-list {
		font-size: 35px;
		column-gap: 7px;
	}
}



.main_container {
	display: flex;
	max-width: 1920px;
	width: 100%;
	margin: 0 auto;
	padding-top: 30px;
	flex-direction: column;
}


.festival_logo-content {
	position: relative;
	max-width: 750px;
	margin: 0 auto;
	margin-bottom: calc(0px - clamp(2.188rem, -0.19rem + 9.51vw, 4.375rem));
	padding-top: clamp(1.563rem, -1.834rem + 13.59vw, 4.688rem);
}

.festival_flag {
	position: absolute;
	top: 0;
	left: calc(0px - clamp(0rem, -3.125rem + 6.51vw, 4.688rem));
	z-index: -1;
	max-width: 155px;
	min-width: 57px;
	width: clamp(3.563rem, -3.095rem + 26.63vw, 9.688rem);
}


.festival_number {
	display: inline-flex;
	position: absolute;
	top: clamp(0rem, -2.378rem + 9.51vw, 2.188rem);
	right: calc(clamp(0rem, -15.349rem + 31.98vw, 3.438rem) + 25px);
	transform: rotateZ(9deg);
	color: #cf1f12;
	font-size: clamp(1.375rem, 0.016rem + 5.43vw, 2.625rem);
	letter-spacing: 0.09em;
	align-items: baseline;
}

.festival_number::before, .festival_number::after {
	position: absolute;
	bottom: 3px;
	width: clamp(0.188rem, 0.12rem + 0.27vw, 0.25rem);
	height: clamp(1.563rem, -0.136rem + 6.79vw, 3.125rem);
	background-color: #cf1f12;
	content: "";
}

.festival_number::before {
	right: calc(100% + clamp(0.625rem, -0.054rem + 2.72vw, 1.25rem));
	transform: rotateZ(-30deg);
}

.festival_number::after {
	left: calc(100% + clamp(0.625rem, -0.054rem + 2.72vw, 1.25rem));
	transform: rotateZ(30deg);
}

.festival_number span {
	font-size: clamp(2.25rem, -6.959rem + 19.19vw, 4.313rem);
	font-size: clamp(2.25rem, 0.008rem + 8.97vw, 4.313rem);
	line-height: 1;
}


.festival_logo-main {
	width: 100%;
}

.festival_contents {
	display: flex;
	margin-bottom: 20px;
	flex-direction: column;
	align-items: center;
}

.festival_held-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.festival_held-schedule {
	display: flex;
	letter-spacing: 0.09em;
	column-gap: clamp(0.5rem, 0.024rem + 1.9vw, 0.938rem);
}

.festival_held-schedule dt {
	display: flex;
	font-weight: normal;
	font-size: clamp(2.875rem, 1.584rem + 5.16vw, 4.063rem);
	align-items: baseline;
}

.festival_held-schedule dt span {
	display: inline-block;
	margin: 0 clamp(0.188rem, 0.052rem + 0.54vw, 0.313rem);
	font-size: clamp(1.938rem, 1.122rem + 3.26vw, 2.688rem);
}

.festival_held-schedule dd {
	margin-top: auto;
	padding-bottom: 10px;
	font-weight: 900;
	font-size: clamp(1.313rem, 0.701rem + 2.45vw, 1.875rem);
}

.festival_held-place {
	display: flex;
	font-weight: 900;
	font-size: clamp(1.063rem, 0.315rem + 2.99vw, 1.75rem);
	letter-spacing: 0.03em;
	column-gap: 0.5em;
	align-items: baseline;
}

.festival_comming {
	display: flex;
	width: fit-content;
	margin: 0 auto;
	color: #e83317;
	font-weight: normal;
	font-size: clamp(1rem, 0.117rem + 3.53vw, 1.813rem);
	letter-spacing: 0.09em;
	white-space: nowrap;
	column-gap: clamp(0.625rem, -0.394rem + 4.08vw, 1.563rem);
	align-items: center;
}

.festival_comming::before, .festival_comming::after {
	display: block;
	max-width: 150px;
	min-width: 80px;
	width: clamp(5rem, 0.245rem + 19.02vw, 9.375rem);
	height: clamp(0.063rem, -0.073rem + 0.54vw, 0.188rem);
	background-color: #e83317;
	content: "";
}

.festival_comment {
	font-weight: 500;
	font-size: clamp(0.875rem, 0.603rem + 1.09vw, 1.125rem);
	line-height: clamp(1.375rem, 0.56rem + 3.26vw, 2.125rem);
	text-align: center;
	letter-spacing: 0.03em;
}

@media screen and (min-width: 401px) {}

.history_festival-link {
	display: flex;
	position: relative;
	max-width: clamp(20.313rem, 6.046rem + 57.07vw, 33.438rem);
	width: 100%;
	margin: 0 auto;
	padding: 16px 0;
	border: 2px solid #004394;
	border-radius: 35px;
	box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
	background-color: #004394;
	color: #ffffff;
	font-weight: bold;
	font-size: clamp(0.813rem, 0.201rem + 2.45vw, 1.375rem);
	text-decoration: none;
	column-gap: 0.5em;
	justify-content: center;
	align-items: center;
	transition: all 0.3s;
}

.history_festival-link i {
	font-size: clamp(0.875rem, 0.467rem + 1.63vw, 1.25rem);
}




.history_festival-link:hover {
	background-color: #ffffff;
	color: #004394;
}

@media screen and (min-width: 768px) {
	.main_container {
		padding-bottom: 25px;
		background-image: url(../images/main_bg-pc.webp);
		background-repeat: no-repeat;
		background-position: center top;
		background-size: 1920px 725px;
	}

	@media screen and (max-width: 1400px) {
		.main_container {
			padding-top: 90px;
		}
	}

	.festival_logo-content {
		width: 80%;
	}

	.festival_contents {
		margin-bottom: 20px;

		row-gap: 10px;
	}

	.display_break {
		display: none;
	}
}

@media screen and (max-width: 767px) {
	.main_container {
		position: relative;
		padding: 60px 15px 15px;
	}

	.main_container::after {
		display: block;
		position: absolute;
		bottom: clamp(4.688rem, 3.668rem + 4.08vw, 5.625rem);
		left: 50%;
		z-index: -1;
		transform: translateX(-50%);
		max-width: 450px;
		width: 100%;
		width: 375px;
		background-image: url(../images/main_bg-mb.webp);
		background-position: center bottom;
		background-size: 100%;
		content: "";

		aspect-ratio: 375/79;
	}

	.festival_logo-content {
		width: 100%;
	}

	.festival_contents {
		margin-bottom: 15px;

		row-gap: 5px;
	}

	.festival_held-wrap {
		position: relative;
	}

	.festival_held-wrap::before {
		position: absolute;
		bottom: clamp(2.188rem, 0.489rem + 6.79vw, 3.75rem);
		left: 50%;
		transform: translateX(-50%);
		max-width: 450px;
		min-width: 375px;
		width: clamp(23.438rem, 18.342rem + 20.38vw, 28.125rem);
		background-image: url(../images/festival_held-leaf.webp);
		background-repeat: no-repeat;
		background-position: center bottom;
		background-size: 100%;
		content: "";

		aspect-ratio: 375/52;
	}

	.festival_comming {
		margin-bottom: 5px;
	}
}



.footer_container {
	display: flex;
	flex-direction: column;
}

.footer_container::before {
	width: 100%;
	background-image: url(../images/footer_bg.webp);
	background-repeat: repeat-x;
	background-position: center bottom;
	content: "";
}

.footer_making {
	display: flex;
	padding: 10px 0;
	background-color: #e83317;
	color: #ffffff;
	font-weight: normal;
	font-size: 14px;
	text-align: center;
	justify-content: center;
	align-items: center;
}

@media screen and (min-width: 768px) {
	.footer_container::before {
		height: 81px;
		background-size: 3887px 81px;
	}

	.footer_making {
		padding: 10px 0;
	}
}

@media screen and (max-width: 767px) {
	.footer_container::before {
		height: 40px;
		background-size: 1937px 40px;
	}

	.footer_making {
		padding: 6px 0;
	}
}