@charset "UTF-8";

html {
	width: 100%;
	height: 100%;
	color: #505050;
	margin: 0;
	padding: 0;
	font-feature-settings: "palt" 1;
}
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td,figure {
	margin: 0;
	padding: 0;
}

body{
	line-height: 2.14;
	font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
	counter-reset:number;
	height: 100%;
	overflow-wrap: anywhere;
	word-break: normal;
	line-break: strict;
	-webkit-text-size-adjust: none;
}

table {
	font: 100%;
	font-size: inherit;
	border-collapse: collapse;
	border-spacing: 0;
}
caption,th { text-align:left; }

fieldset,img { border: 0;}

h1,h2,h3,h4,h5,h6 {
	font-size: 100%;
	font-weight: normal;
}
address,caption,cite,code,dfn,em,th,var {
	font-style: inherit;
	font-weight: inherit;
}
ol,ul { list-style: none;}

q:before,q:after { content:'';}
abbr,acronym {
	border: 0;
	font-variant: normal;
}
sup { vertical-align: text-top; }
sub { vertical-align: text-bottom;}
input,textarea,select {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	outline: 0;
}
legend{ color:#555;}

select,input,button,textarea{ font-family: inherit; }

pre,code,kbd,samp,tt{
	font-family: monospace;
	line-height: 100%;
}

main { display: block; }

a {
	color: inherit;
	outline: none;
	text-decoration: none;
}
a:hover,
a:focus,
a:active { text-decoration: none; }

a img { border: none; }

img, iframe {
	max-width: 100%;
	vertical-align: top;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

html, body {
	height: 100%;
	text-align: justify;
	text-justify: inter-ideograph;
}
body { -webkit-text-size-adjust: 100%; }

:root {
	--text-blue: #0069a3;
	--bg-blue: #0db7d6;
	--color-beige: #f8f7f4;
	--grad-h: linear-gradient(90deg, #E3007F 0%, #1D2087 50%, #0DB7D6 100%);
	--grad-v: linear-gradient(180deg, #E3007F 0%, #1D2087 50%, #0DB7D6 100%);
}

.text-serif { font-family: "Noto Serif JP", serif; }
.text-en { font-family: "Barlow Semi Condensed", sans-serif; }
.gradText {
	width: fit-content;
	background: var(--grad-h);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}
.mainText {
	.title { color: var(--text-blue); }
	dl dt { color: #000; }
}
.linkBox a {
	color: #fff;
	display: block;
	border-radius: 999px;
	box-sizing: border-box;
	background-color: var(--bg-blue);
}
@media screen and (min-width:769px), print{
	body {
		font-size: 16px;
  	letter-spacing: 0.08em;
	}
	.sp { display: none !important; }
	a[href^="tel:"] { pointer-events: none; }
	.inner {
		max-width: 1050px;
		margin-inline: auto;
		padding-inline: 25px;
		box-sizing: border-box;
	}
	.thinInner {
		max-width: 800px;
		margin-inline: auto;
		padding-inline: 25px;
	}
	.mainText {
		& > * + * { margin-top: 33px; }
		.title {
			font-size: 24px;
			line-height: 40px;
		}
		dl dt {
			font-size: 20px;
			margin-bottom: 2px;
		}
	}
	.linkBox {
		a {
			font-size: 15px;
			width: fit-content;
			min-width: 320px;
			padding: 11.5px 30px;
			transition-duration: .3s;
			transition-property: background-color;
			&:hover { background-color: #005bab; }
		}
	}
}
@media screen and (max-width:768px){
	body {
		font-size: 15px;
		line-height: 2;
  	letter-spacing: 0.08em;
	}
	.pc { display: none !important; }
	.inner, .thinInner {
		padding-inline: 25px;
	}
	.mainText {
		& > * + * { margin-top: 20px; }
		.title {
			font-size: 18px;
			line-height: 33px;
		}
		dl dt {
			font-size: 18px;
			line-height: 33px;
			margin-bottom: 12px;
		}
	}
	.linkBox {
		a { padding: 9px 20px; }
	}
}

#wrapper {
	display: flex;
	min-height: 100vh;
	flex-direction: column;
	position: relative;
}
#container {
	flex-grow: 1;
}
@media screen and (min-width:769px), print{
	#container { padding-block: 150px 400px; }
}
@media screen and (max-width:768px){
	#container { padding-bottom: 200px; }
}

#header {
	box-sizing: border-box;
	.gMenu > ul { color: #505050; }
	.stickyBtn { color: #fff; }
}
@media screen and (min-width:769px), print{
	#header {
		top: 0;
		left: 0;
		width: 100%;
		height: 150px;
		display: flex;
		z-index: 5999;
		position: fixed;
		align-items: center;
		background-color: #fff;
		padding-inline: 50px 150px;
		#hLogo {
			width: 140px;
			margin-right: 50px;
		}
		.gMenu {
			.icon { display: none; }
			& > ul {
				display: flex;
				font-size: 15px;
				& > li + li { margin-left: 1.5em; }
				& > li {
					position: relative;
					&:hover {
						color: var(--text-blue);
						&::before {
							content: "";
							width: 0;
							height: 0;
							display: block;
						}
						.subMenu {
							display: flex !important;
						}
					}
					.subMenu {
						top: 100%;
						left: 0;
						display: none !important;
						position: absolute;
						padding-block: 10px;
						white-space: nowrap;
						color: var(--text-blue);
						li + li { margin-left: 10px; }
						a {
							width: 130px;
							height: 35px;
							display: flex;
							align-items: center;
							justify-content: center;
							border-radius: 999px;
							border: 1px solid var(--text-blue);
							&:hover {
								color: #fff;
								background-color: var(--text-blue);
							}
						}
					}
				}
			}
		}
		.stickyBtn {
			top: 100px;
			right: 50px;
			position: absolute;
			-webkit-clip-path: url(#stickyBtnClip);
			clip-path: url(#stickyBtnClip);
			background-repeat: no-repeat;
			background-image: var(--grad-v);
			background-size: 100%;
			a {
				display: block;
				font-size: 15px;
				line-height: 24px;
				transition-duration: .3s;
				transition-property: background-color;
				background-color: rgba(13,183,214,0);
				span {
					width: 140px;
					display: flex;
					align-items: center;
					justify-content: center;
					text-align: center;
					aspect-ratio: 1 / 1;
					background: url(../images/sticky_button.svg) no-repeat;
					background-size: 100%;
				}
				&:hover {
					background-color: rgba(13,183,214,1);
				}
			}
			svg {
				width: 0;
				height: 0;
				opacity: 0;
				position: absolute;
				top: 0;
				left: 0;
			}
		}
	}
}
@media screen and (max-width:768px){
	#header {
		height: 75px;
		background-color: #fff;
		#hLogo {
			width: 105px;
			padding: 12px;
		}
		.gMenu {
			.icon {
				top: 0;
				right: 0;
				color: #fff;
				width: 50px;
				position: fixed;
				z-index: 5999;
				padding-top: 27px;
				font-size: 7.222px;
				text-align: center;
				aspect-ratio: 1 / 1;
				background-color: #000;
				box-sizing: border-box;
				transition-duration: .3s;
				transition-property: color, background-color;
				&::before, &::after {
					content: "";
					left: 0;
					right: 0;
					width: 20px;
					display: block;
					position: absolute;
					margin-inline: auto;
					transition-duration: .3s;
					transition-property: border-color, transform, height, top;
				}
				&::before {
					top: 19px;
					height: 1px;
					background-color: #fff;
				}
				&::after {
					top: 14px;
					height: 9px;
					border-top: 1px solid #fff;
					border-bottom: 1px solid #fff;
				}
			}
			& > ul {
				top: 0;
				left: 100%;
				color: #fff;
				width: calc(100% - 75px);
				height: 100%;
				position: fixed;
				z-index: 5998;
				overflow-y: auto;
				padding-top: 75px;
				background-color: #323e60;
				transition-duration: .3s;
				transition-property: left;
				& > li {
					font-size: 18px;
					border-bottom: 1px solid #47517b;
					&:first-child { border-top: 1px solid #47517b; }
					&:has(>span) { padding-bottom: 7.5px; }
					& > a, & > span {
						display: block;
						cursor: pointer;
						padding: 10.5px 18px;
						&::before {
							content: "〉 ";
							display: inline;
						}
					}
					& > span { padding-bottom: 3px; }
					.subMenu {
						display: none;
						padding: 0 18px 5px 30px;
						a {
							display: block;
							padding-block: 3px;
							&::before {
								content: "→";
								display: inline;
							}
						}
					}
				}
			}
			.gBack {
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				z-index: 5997;
				display: none;
				position: fixed;
				background-color: rgba(255,255,255,0.7);
			}
		}
		&.open {
			.gMenu {
				.icon {
					color: transparent;
					background-color: transparent;
					&::before {
						top: 25px;
						transform: rotate(45deg);
					}
					&::after {
						top: 24px;
						height: 0;
						transform: rotate(-45deg);
						border-top-color: transparent;
					}
				}
				& > ul { left: 75px; }
			}
		}
	}
}

#footer {
	background-color: var(--color-beige);
	& > .inner {
		.information {
			.siteNav {
				li > span, li > a { display: block; }
				& > ul > li > span::before,
				& > ul > li > a::before {
					content: ">";
					width: 1em;
					display: inline-block;
				}
				.subMenu {
					padding-left: 1em;
					a::before {
						content: "→";
						width: 1em;
						display: inline-block;
					}
				}
			}
		}
	}
}
@media screen and (min-width:769px), print{
	#footer {
		font-size: 16px;
		line-height: 28px;
		& > .inner {
			display: flex;
			justify-content: space-between;
			padding-block: 55px 45px;
			background-image: url(../images/footer_img.webp);
			background-size: 700px auto;
			background-repeat: no-repeat;
			background-position: right 425px bottom 0;
			#fLogo {
				text-align: center;
				width: calc(100% - 465px);
				img { height: 150px; }
			}
			.information {
				width: 455px;
				display: flex;
				flex-wrap: wrap;
				align-items: flex-end;
				justify-content: space-between;
				address {
					width: 100%;
					font-size: 14px;
					line-height: 30px;
					letter-spacing: 0;
				}
				.siteNav > ul {
					display: flex;
					flex-wrap: wrap;
					flex-direction: column;
					font-size: 12px;
					line-height: 28px;
					margin-top: 30px;
					height: calc(28px * 6);
					& > li { margin-right: 50px; }
					a:hover { text-decoration: underline; }
				}
			}
		}
		.instagram a {
			display: inline-block;
			transition-duration: .3s;
			transition-property: transform;
			transform-origin: center center;
			transition-timing-function: ease-out;
		}
		.instagram a:hover {
			transform: scale(1.2);
		}
		.instagram img { width: 30px; }
		.copyright {
			color: #fff;
			font-size: 14px;
			padding-block: 13px;
			background: var(--grad-h);
		}
	}
}
@media screen and (max-width:768px){
	#footer {
		font-size: 12px;
		line-height: 21px;
		padding-bottom: 64px;
		& > .inner {
			padding-block: 35px 45px;
			#fLogo {
				img { height: 75px; }
			}
			.instagram img { width: 22.5px; }
			.information {
				display: flex;
				flex-wrap: wrap;
				align-items: flex-end;
				flex-direction: row-reverse;
				justify-content: space-between;
				margin-top: 30px;
				address {
					width: 100%;
					margin-bottom: 10px;
				}
				.copyright {
					font-size: 10.5px;
					line-height: 1;
				}
			}
		}
		.reserve {
				position: fixed;
				left: 0;
				bottom: 0;
				width: 100%;
			a {
				color: #fff;
				height: 64px;
				font-size: 14px;
				display: flex;
				align-items: center;
				justify-content: center;
				background: var(--grad-h);
			}
		}
	}
}

/* common */
#lowerHeader {
	.en {
		color: #a0a0a0;
		line-height: 1;
	}
}
#main {
	background: linear-gradient(180deg,rgba(255, 255, 255, 1) 0%, rgba(248, 247, 244, 1) 100%);
	background-position: center bottom;
	background-repeat: no-repeat;
}
#main.nobg {
	background: none;
	padding-bottom: 0;
}
.beige {
	background-color: var(--color-beige);
	background-repeat: no-repeat;
	background-position: center top;
}
.textBox {
	a {
		text-decoration: underline;
		&:hover { color: var(--text-blue); }
	}
	dt { color: #000; }
}
.listBox {
	padding-left: 1em;
	& > li {
		text-indent: -1em;
		& > * { text-indent: 0; }
	}
}
@media screen and (min-width:769px), print{
	#lowerHeader {
		padding-block: 75px 135px;
		#pageTitle {
			font-size: 32px;
		}
		.en {
			font-size: 14px;
		}
	}
	#main {
		padding-bottom: 190px;
		background-size: 100% min(800px,100%);
	}
	.beige {
		background-size: 100% 300px;
		background-image: linear-gradient(180deg,rgba(255, 255, 255, 1) 0%, rgba(248, 247, 244, 1) 100%);
	}
	.textBox {
		& > * + * { margin-top: 50px; }
		dt {
			font-size: 16px;
			margin-bottom: 3px;
		}
	}
}
@media screen and (max-width:768px){
	#lowerHeader {
		padding-block: 30px 65px;
		#pageTitle {
			font-size: 23px;
		}
		.en {
			font-size: 11px;
		}
	}
	#main {
		padding-bottom: 95px;
		background-size: 100% min(1000px,100%);
	}
	.beige {
		background-size: 100% 500px;
		background-image: linear-gradient(180deg,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 50%, rgba(248, 247, 244, 1) 100%);
	}
	.textBox {
		& > * + * { margin-top: 37px; }
		dt { margin-bottom: 1px; }
	}
}

/* POPUP */
#popupInformation {
	display: flex;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	background-color: rgba(0,0,0,0.3);
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 9999;
	#popupInner {
		width: 500px;
		cursor: auto;
		max-width: calc(100% - 50px);
		max-height: calc(100% - 50px);
		box-sizing: border-box;
		background-color: #fff;
		padding: 50px 50px 40px;
		word-break: break-all;
		line-height: 30px;
		&::before {
			content: "";
			height: 70px;
			display: block;
			aspect-ratio: 4 / 5;
			margin-inline: auto;
			background: url(../images/logo_f_pc.svg) no-repeat center center;
			background-size: 100% auto;
		}
		.title {
			margin-top: 30px;
			text-align: center;
			color: var(--text-blue);
		}
		.contents {
			font-size: 14px;
			margin-top: 23px;
			padding-top: 23px;
			border-top: 1px solid #d2d2d2;
		}
	}
}