@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;
}


/* Holly refined design v0.3 — soft, uncluttered, botanical accents */
:root{--holly-ink:#514b50;--holly-muted:#776e75;--holly-pink:#b9a2b5;--holly-pink-deep:#92788e;--holly-bg:#fbf8f7;--holly-line:#e9e0e5;--holly-lilac:#f2eaf0;}
html{scroll-behavior:smooth;}
body{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;background:var(--holly-bg);color:var(--holly-ink);line-height:1.85;letter-spacing:.015em;}
h1,h2,h3,h4,p{color:inherit;}
h1{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;letter-spacing:.025em;}
h2{font-size:clamp(1.45rem,2.5vw,1.9rem);font-weight:500;letter-spacing:.035em;}
h3{font-size:clamp(1.15rem,2vw,1.45rem);font-weight:500;}
p{font-size:1rem;}
a,a:link,a:visited{color:inherit;}
a{transition:opacity .2s ease,background-color .2s ease;}
header{padding:1rem 5%;gap:1.5rem;border-bottom:1px solid rgba(185,162,181,.2);background:rgba(251,248,247,.95);}
header img{height:76px;}
header nav{font-size:.95rem;gap:.5rem 1.4rem;color:var(--holly-muted);}
header nav a[aria-current="page"]{border-bottom:1px solid var(--holly-pink-deep);}
footer{background:#f0e7ed;color:var(--holly-ink);padding:1.8rem 5%;}
#cta{background:rgba(251,248,247,.96);border-top:1px solid var(--holly-line);backdrop-filter:blur(8px);}
.cta-area{gap:.55rem;}
.cta-btn{font-size:1rem;border:1px solid transparent;border-radius:999px;padding:.7em 1em;font-weight:500;}
.btn-reserve{background:#b9a2b5;border-color:#b9a2b5;color:#fff!important;}
.btn-line{background:#f0e8ee;border-color:#e4d6e1;color:var(--holly-ink)!important;}
.btn-tel{background:#fff;border-color:#d8c9d5;color:var(--holly-ink)!important;}
@media(max-width:640px){header{padding:.75rem 4%;}header img{height:62px}.cta-area{gap:.35rem}.cta-btn{font-size:.78rem;padding:.72em .25em;}}
