html {
	box-sizing: border-box;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	width: 100%;
	margin: 0;
	padding: 0;
}

img {
	max-width: 100%;
	height: auto;
	-webkit-backface-visibility: hidden;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-touch-callout: none;
	-moz-user-select: none;
	touch-callout: none;
	user-select: none;
	vertical-align: top;
}

.alpha a:hover img {
	opacity: 0.8;
	filter: alpha(opacity=80);
	-ms-filter: "alpha(opacity=80)";
}

a:link {
	background-color: transparent;
	color: #004980;
	text-decoration: none;
}

a:visited {
	background-color: transparent;
	color: #004980;
	text-decoration: none;
}

a:active {
	background-color: transparent;
	color: #004980;
	text-decoration: none;
}

a:hover {
	background-color: transparent;
	color: #004980;
	text-decoration: none;
}

/*__________________________________________________

  burger menu
  __________________________________________________*/

.menu {
	position: fixed;
	z-index: 99;
	right: 20px;
	top: 20px;
	width: 48px;
	height: 48px;
	background: #ec7e3f;
	cursor: pointer;
}

.menu:hover {
	background-color: #ec7e3f;
}

.menu__line {
	display: block;
	position: absolute;
	left: 12px;
	right: 12px;
	transition: transform .3s;
	height: 3px;
	background: #fff;
}

.menu__line--top {
	top: 16px;
}

.menu__line--center {
	top: 22.5px;
}

.menu__line--bottom {
	top: 30px;
}

.menu__line--top.active {
	top: 22.5px;
	transform: rotate(45deg);
	background: #ffffff;
}

.menu__line--center.active {
	transform: scaleX(0);
	background: #ffffff;
}

.menu__line--bottom.active {
	top: 22.5px;
	transform: rotate(135deg);
	background: #ffffff;
}

/*gnav*/

body.gnav-open {
	overflow: hidden;
	height: 100%;
}

.gnav {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 98;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background: linear-gradient(180deg,
			#F07D3A 0%,
			#F07D3A 65%,
			#F28A36 78%,
			#F6A233 90%,
			#FDBD38 97%,
			#FFC83D 100%);
}

.gnav__wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	min-height: 100dvh;
	padding: 60px 0;
}

.gnav__menu {
	margin: 0 auto;
	padding: 0;
	text-align: center;
}

.gnav__menu__item01 {
	list-style: none;
	width: 80%;
	margin: 40px auto 60px auto;
	padding: 0;
}

.gnav__menu__item01 a {
	padding: 0;
	text-decoration: none;
	transition: .5s;
}

.gnav__menu__item01 a:hover {
	color: #666;
}

.gnav__menu__item02 {
	list-style: none;
	width: 50%;
	margin: 40px auto 0 auto;
	padding: 0;
}

.gnav__menu__item02 a {
	padding: 0;
	text-decoration: none;
	transition: .5s;
}

.gnav__menu__item02 a:hover {
	color: #666;
}

/*__________________________________________________

  common
  __________________________________________________*/
@media (max-width: 768px) {
	.pconly01 {
		display: none;
	}
}

@media (min-width: 769px) {
	.sponly01 {
		display: none;
	}
}

@media (max-width: 984px) {
	.pconly02 {
		display: none;
	}
}

@media (min-width: 985px) {
	.sponly02 {
		display: none;
	}
}

@media screen and (max-width: 767px) {
	.br-sp {
		display: none;
	}
}

@media screen and (min-width: 768px) {
	.br-pc {
		display: none;
	}
}

/*__________________________________________________

  header
  __________________________________________________*/

/* nav */
.header {
	position: sticky;
	top: 0;
	/* z-index: 10; */
	z-index: 100;
	width: 100%;
	height: 100px;
	padding: 0 20px;
	background-image: url('../../assets/images/menuback.webp');
	background-repeat: repeat-x;
}

.header-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1170px;
	width: 100%;
	height: 100px;
	margin: 0 auto;
	padding: 0;
}

.logo a {
	text-decoration: none;
}

.logo img {
	width: 100%;
	max-width: 280px;
}

.nav-list {
	display: flex;
	list-style: none;
	gap: 15px;
	margin: 0;
	padding: 0;
}

.nav-item a {
	text-decoration: none;
}

.nav-item img {
	width: 100%;
	max-width: 160px;
}

@media only screen and (max-width: 768px) {
	.header {
		display: none;
	}
}

/*__________________________________________________

  content area
  __________________________________________________*/

/* スクロールさせるためのコンテンツエリア */
.content-section {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	padding: 0;
	background: transparent !important;
	text-align: center;
	font-family: sans-serif;
	color: #ffffff;
}

.content-section-end {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: auto;
	/* padding: 60px 0 160px 0; */
	padding: 60px 0 500px 0;
	background: transparent !important;
	text-align: center;
	font-family: sans-serif;
	color: #ffffff;
}

@media (max-width: 768px) {
	.content-section-end {
		padding: 60px 0 300px 0;
	}
}

.content {
	position: relative;
	z-index: 2;
	height: 100%;
	padding: 20px;
	color: #ffffff;
	text-align: center;
}

/* SVGを非表示にする */
.hidden-svg {
	position: absolute;
	left: -9999px;
	top: 0;
	overflow: hidden;
	opacity: 0;
	width: 1px;
	height: 1px;
}

@media (max-width: 768px) {
	.content-section {
		position: relative;
		z-index: 2;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: auto;
		padding: 0;
	}

	.content {
		position: relative;
		z-index: 2;
		height: 100%;
		padding: 20px 20px 0 20px;
		color: #ffffff;
		text-align: center;
	}

	.water-section .content {
		padding: 20px 0 0 0;
	}
}

/*__________________________________________________

  FOOTER logo
  __________________________________________________*/

.content-footer-logo {
	max-width: 1170px;
	/* width: 235px;
	height: 235px; */
	width: 180px;
	height: 180px;
	margin: 0 auto 0 auto;
	padding: 0;
}

@media only screen and (max-width: 768px) {
	.content-footer-logo {
		max-width: 100%;
		width: 30vw;
		height: auto;
		margin: 0 auto 0 auto;
		padding: 0;
	}
}

/*__________________________________________________

  PAGETOP
  __________________________________________________*/
.content-pagetop {
	clear: both;
	position: fixed;
	z-index: 3;
	right: 30px;
	width: 86px;
	bottom: 50px;
	margin: 0;
	padding: 10px 0 10px 0;
	text-align: right;
}

@media only screen and (max-width: 768px) {
	.content-pagetop {
		clear: both;
		position: fixed;
		z-index: 3;
		right: 15px;
		bottom: 25px;
		width: 15%;
		margin: 0;
		padding: 10px 0 10px 0;
		text-align: right;
	}
}


/*__________________________________________________

  FOOTER
  __________________________________________________*/

.footer {
	position: relative;
	z-index: 2;
	width: 100%;
	margin: 0 auto;
	padding: 0;
}

.footer p.footer-copyright {
	max-width: 1170px;
	width: 100%;
	margin: 0 auto 30px auto;
	padding: 0;
	color: #000000;
	font-family: "source-han-sans-jp-variable", sans-serif;
	font-variation-settings: "wght" 350;
	font-size: clamp(12px, 1.518cqw, 17px);
	/* 12px-17pxで可変 */
	text-align: center;
}

/*__________________________________________________

  LOADING
  __________________________________________________*/
.loading-logo {
	display: flex;
	justify-content: center;
	align-items: center;

	width: 30vw;
	max-width: 400px;
	min-width: 150px;

	height: auto;
	opacity: 0;
	animation: slideUp 1.2s ease forwards 0.3s;
}

.loading-logo img {
	width: 100%;
	height: auto;
	display: block;
}

#loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: #fff;
	z-index: 9999;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: opacity 0.5s ease, visibility 0.5s ease;
}

@keyframes slideUp {
	0% {
		transform: translateY(50px);
		opacity: 0;
	}

	100% {
		transform: translateY(0);
		opacity: 1;
	}
}

#loading.loaded {
	opacity: 0;
	visibility: hidden;
}

#web-content {
	opacity: 0;
}

#loading.loaded+#web-content {
	opacity: 1;
	transition: opacity 1s ease;
}