/* ===========================================================
   Object / Component / Floating Reserve
   全ページ右下に固定表示されるWeb予約丸ボタン（SP・PC共通）
   - 円形 / ピンク背景 / 内側に白いリング装飾
   - カレンダーアイコン + 「Web予約」+ 「24時間受付中」
   =========================================================== */

.c-floating-reserve {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 95;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 115px;
	height: 115px;
	border-radius: 50%;
	background-color: var(--color-pink-400);
	color: var(--color-white);
	text-decoration: none;
	box-shadow: 0 6px 16px rgba(224, 119, 148, 0.35);
	transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
	padding: 16px;
	box-sizing: border-box;
	text-align: center;
}

/* フッターが視界に入った時に JS から付与される非表示クラス（PCのみ運用）
   - SPでは JS 側で付与しないので常時表示のまま */
.c-floating-reserve.is-hidden {
	opacity: 0;
	pointer-events: none;
	transform: translateY(8px);
}

/* 内側の白いリング装飾（縁から4px内側に細い白枠） */
.c-floating-reserve::before {
	content: "";
	position: absolute;
	inset: 4px;
	border: 1px solid rgba(255, 255, 255, 0.85);
	border-radius: 50%;
	pointer-events: none;
}

@media (min-width: 768px) {
	.c-floating-reserve {
		right: 24px;
		bottom: 24px;
		width: 160px;
		height: 160px;
		padding: 22px;
		gap: 6px;
		box-shadow: 0 10px 24px rgba(224, 119, 148, 0.35);
	}

	.c-floating-reserve::before {
		inset: 6px;
	}

	@media (hover: hover) {
		.c-floating-reserve:hover {
			background-color: var(--color-pink-500);
			color: var(--color-white);
			transform: translateY(-3px);
			box-shadow: 0 14px 28px rgba(224, 119, 148, 0.45);
		}
	}

	.c-floating-reserve:active {
		transform: translateY(0);
		background-color: var(--color-pink-600);
	}
}

/* アイコン */
.c-floating-reserve__icon {
	display: inline-flex;
	width: 30px;
	height: 30px;
}

.c-floating-reserve__icon img,
.c-floating-reserve__icon svg {
	width: 100%;
	height: 100%;
}

@media (min-width: 768px) {
	.c-floating-reserve__icon {
		width: 40px;
		height: 40px;
	}
}

/* メインテキスト */
.c-floating-reserve__label {
	display: block;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
}

@media (min-width: 768px) {
	.c-floating-reserve__label {
		font-size: 19px;
	}
}

/* サブテキスト */
.c-floating-reserve__sub {
	display: block;
	font-size: 10px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.02em;
}

@media (min-width: 768px) {
	.c-floating-reserve__sub {
		font-size: 12px;
	}
}
