/**
 * Floating contact widget + FAQ blocks (site-wide).
 * Desktop: right-bottom vertical rail. Mobile: fixed bottom bar.
 */

:root {
	--fc-z: 90;
	--fc-dark: #10233c;
	--fc-accent: #1a73c9;
	--fc-wa: #25d366;
}

/* ---------- Panel (shared) ---------- */
.fc-root {
	position: fixed;
	right: 18px;
	bottom: 18px;
	z-index: var(--fc-z);
	font-family: inherit;
}

.fc-panel {
	position: absolute;
	right: 0;
	bottom: calc(100% + 12px);
	width: 240px;
	background: #fff;
	border: 1px solid rgba(16, 35, 60, 0.14);
	border-radius: 10px;
	box-shadow: 0 12px 32px rgba(16, 35, 60, 0.18);
	padding: 16px;
	text-align: center;
}

.fc-panel-title {
	margin: 0 0 6px;
	font-size: 13px;
	color: rgba(16, 35, 60, 0.62);
	letter-spacing: 0.04em;
}

.fc-panel-number {
	margin: 0 0 10px;
	font-size: 22px;
	letter-spacing: 0.06em;
	color: var(--fc-dark);
	font-weight: 600;
}

.fc-copy {
	display: inline-block;
	border: 0;
	background: var(--fc-accent);
	color: #fff;
	font-size: 13px;
	padding: 8px 18px;
	border-radius: 6px;
	cursor: pointer;
	transition: opacity 0.15s ease;
}

.fc-copy:hover {
	opacity: 0.88;
}

.fc-panel-note {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.6;
	color: rgba(16, 35, 60, 0.55);
}

/* ---------- Rail (desktop) ---------- */
.fc-rail {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fc-btn {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1px solid rgba(16, 35, 60, 0.12);
	background: #fff;
	color: var(--fc-dark);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	box-shadow: 0 6px 18px rgba(16, 35, 60, 0.14);
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	padding: 0;
}

.fc-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(16, 35, 60, 0.2);
	color: var(--fc-dark);
}

.fc-btn .icon {
	width: 20px;
	height: 20px;
}

.fc-btn svg {
	width: 20px;
	height: 20px;
}

.fc-label {
	display: none;
	font-size: 10px;
	line-height: 1;
	letter-spacing: 0.02em;
}

.fc-wechat {
	color: #fff;
	background: var(--fc-dark);
	border-color: var(--fc-dark);
}

.fc-wechat:hover {
	color: #fff;
}

.fc-wa {
	color: var(--fc-wa);
}

.fc-wa:hover {
	color: var(--fc-wa);
}

/* ---------- Mobile: bottom bar ---------- */
@media (max-width: 768px) {
	.fc-root {
		right: 0;
		bottom: 0;
		left: 0;
	}

	.fc-panel {
		right: 12px;
		bottom: calc(100% + 10px);
	}

	.fc-panel.fc-panel-mobile {
		right: 12px;
	}

	.fc-rail {
		flex-direction: row;
		gap: 0;
		background: #fff;
		border-top: 1px solid rgba(16, 35, 60, 0.1);
		box-shadow: 0 -6px 20px rgba(16, 35, 60, 0.12);
		padding-bottom: env(safe-area-inset-bottom, 0);
	}

	.fc-btn {
		flex: 1 1 0;
		width: auto;
		height: 56px;
		border-radius: 0;
		border: 0;
		box-shadow: none;
		flex-direction: row;
		gap: 6px;
		justify-content: center;
		font-size: 13px;
	}

	.fc-btn:hover {
		transform: none;
		box-shadow: none;
	}

	.fc-label {
		display: inline;
	}

	.fc-btn svg,
	.fc-btn .icon {
		width: 18px;
		height: 18px;
	}

	/* keep page content reachable above the bar */
	body {
		padding-bottom: 56px;
	}
}

/* ---------- FAQ blocks ---------- */
.faq-list {
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 10px;
}

.faq-item {
	border: 1px solid rgba(16, 35, 60, 0.12);
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.faq-item summary {
	cursor: pointer;
	padding: 14px 18px;
	font-weight: 600;
	font-size: 15px;
	color: var(--fc-dark);
	list-style: none;
	position: relative;
	padding-right: 40px;
}

.faq-item summary::-webkit-details-marker {
	display: none;
}

.faq-item summary::after {
	content: '+';
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	color: var(--fc-accent);
	font-weight: 400;
	transition: transform 0.15s ease;
}

.faq-item[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.faq-item .faq-answer {
	padding: 0 18px 14px;
	font-size: 14px;
	line-height: 1.8;
	color: rgba(16, 35, 60, 0.78);
	margin: 0;
}
