@charset "UTF-8";

/* ---- 基本 ------------------------------------------------------------ */
body {
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
	background-color: #F8F5F7;
	margin: 0;
	/* 画面下に固定された予約ボタンの高さぶん、最後のコンテンツが隠れないようにする */
	padding-bottom: 96px;
}

h1 {
	font-size: 40px;
	margin: 0;
}
h2 {
	font-size: 32.5px;
	margin: 0;
}
h3 {
	font-size: 27.5px;
	margin: 0;
}
h4 {
	font-size: 22.5px;
	margin: 0;
}
p {
	font-size: 17.5px;
	margin: 0;
}
a {
	color: inherit;
	text-decoration: none;
}
a:link {
	color: black;
	text-decoration: none;
}
a:visited {
	color: black;
	text-decoration: none;
}
a:hover {
	opacity: 0.75;
	text-decoration: none;
}
ul {
	margin: 0;
	padding: 0;
}
li {
	list-style-type: none;
	margin: 0;
	padding: 0;
}
img {
	max-width: 100%;
}

/* ---- ヘッダー --------------------------------------------------------- */
header {
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	margin: 0 auto;
	padding: 0.5em 0;
}
header img {
	display: block;
	height: 100px;
	width: auto;
}
header nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5em 2em;
	font-size: 20px;
}
header nav a[aria-current="page"] {
	border-bottom: 2px solid #C5B3D3;
}

@media screen and (max-width: 768px) {
	header nav {
		font-size: 17px;
		gap: 0.4em 1.25em;
	}
}
@media screen and (max-width: 600px) {
	header {
		flex-direction: column;
		gap: 0.25em;
		width: 92%;
	}
	header img {
		height: 72px;
	}
	header nav {
		font-size: 15px;
		gap: 0.35em 1em;
	}
}

/* ---- フッター --------------------------------------------------------- */
footer {
	background-color: #C5B3D3;
	padding: 1.25em 5%;
	text-align: center;
}
footer .footer-note {
	font-size: 14px;
	margin-top: 0.5em;
}
footer .footer-copy {
	font-size: 13px;
	margin-top: 0.25em;
	color: #404040;
}

/* ---- 予約ボタン（画面下に固定） ------------------------------------------ */
#cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10;
	box-sizing: border-box;
	padding: 0.6em 0.75em calc(0.6em + env(safe-area-inset-bottom, 0px));
	background: rgba(248, 245, 247, 0.94);
	border-top: 1px solid #E3DBE7;
}
.cta-area {
	display: flex;
	gap: 0.75em;
	max-width: 960px;
	margin: 0 auto;
	justify-content: center;
	align-items: stretch;
}
.cta-btn {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	text-align: center;
	border-radius: 30px;
	font-weight: bold;
	white-space: nowrap;
	padding: 0.45em 1em;
	font-size: 22px;
}
.btn-reserve {
	background-color: #CCFFFF;
	border: 3px solid #B2FFFF;
}
.btn-line {
	background-color: #99FF99;
	border: 3px solid #84FF84;
}
.btn-tel {
	background-color: #CCCCFF;
	border: 3px solid #B7B7FF;
}

@media screen and (max-width: 640px) {
	body {
		padding-bottom: 84px;
	}
	.cta-area {
		gap: 0.4em;
	}
	.cta-btn {
		font-size: 13px;
		line-height: 1.3;
		padding: 0.7em 0.25em;
		border-width: 2px;
		white-space: normal;
	}
}

/* ---- 共通パーツ ------------------------------------------------------- */
.text-link {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.price-note,
.disclaimer {
	color: #505050;
	font-size: 15px;
	text-align: center;
}
