/**
 * Footer polish + floating contact buttons.
 */

/* --------------------------------------------------------------------------
   Footer polish
   -------------------------------------------------------------------------- */

.mph-footer {
	position: relative;
	background:
		radial-gradient(ellipse 70% 60% at 0% 0%, rgba(201, 168, 76, 0.11), transparent 55%),
		radial-gradient(ellipse 50% 40% at 100% 100%, rgba(201, 168, 76, 0.07), transparent 50%),
		linear-gradient(180deg, #043528 0%, #03281f 55%, #021c16 100%);
}

.mph-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent 5%, rgba(201, 168, 76, 0.55) 50%, transparent 95%);
	pointer-events: none;
}

.mph-footer__title {
	position: relative;
	display: inline-block;
	padding-bottom: 10px;
	margin-bottom: 1.15rem;
	letter-spacing: 0.02em;
}

.mph-footer__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 32px;
	height: 1px;
	background: linear-gradient(90deg, var(--mph-color-accent), transparent);
}

.mph-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 1.25rem;
}

.mph-footer__social li {
	margin: 0;
}

.mph-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(201, 168, 76, 0.38);
	background: rgba(255, 255, 255, 0.04);
	color: var(--mph-color-accent) !important;
	font-size: 12px;
	font-weight: 700;
	transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.mph-footer__social-link:hover {
	background: var(--mph-color-accent);
	border-color: var(--mph-color-accent);
	color: #03281f !important;
	transform: translateY(-2px);
}

.mph-footer__contact-item + .mph-footer__contact-item {
	margin-top: 14px;
}

.mph-footer__map {
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(201, 168, 76, 0.28);
}

.mph-footer__bottom {
	border-top-color: rgba(201, 168, 76, 0.16);
	margin-top: 12px;
}

/* --------------------------------------------------------------------------
   Back to top
   -------------------------------------------------------------------------- */

.mph-back-to-top {
	position: fixed;
	right: 86px;
	bottom: 22px;
	z-index: 1190;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 1px solid rgba(201, 168, 76, 0.55);
	background: rgba(3, 40, 31, 0.92);
	color: var(--mph-color-accent);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition:
		opacity 0.28s ease,
		visibility 0.28s ease,
		transform 0.28s ease,
		background 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease;
}

.mph-back-to-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.mph-back-to-top:hover {
	background: var(--mph-color-accent);
	border-color: var(--mph-color-accent);
	color: #03281f;
}

/* --------------------------------------------------------------------------
   Floating contact buttons
   -------------------------------------------------------------------------- */

.mph-float-contact {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 1200;
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	gap: 12px;
}

.mph-float-contact__btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 8px 22px rgba(3, 40, 31, 0.28);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.mph-float-contact__btn:hover {
	transform: translateY(-3px) scale(1.05);
	box-shadow: 0 12px 28px rgba(3, 40, 31, 0.35);
	color: #fff;
}

.mph-float-contact__btn--phone {
	background: linear-gradient(145deg, #d4a62a 0%, #f2bd3e 55%, #c4931f 100%);
	color: #03281f;
}

.mph-float-contact__btn--phone:hover {
	color: #03281f;
}

.mph-float-contact__btn--zalo {
	background: linear-gradient(145deg, #0068ff 0%, #0180ff 100%);
}

.mph-float-contact__btn--facebook {
	background: linear-gradient(145deg, #1877f2 0%, #3b8ef5 100%);
}

.mph-float-contact__zalo-text {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1;
}

.mph-float-contact__ripple {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
	box-shadow: 0 0 0 0 rgba(242, 189, 62, 0.55);
	animation: mph-float-pulse 2.2s ease-out infinite;
}

.mph-float-contact__btn--zalo .mph-float-contact__ripple {
	box-shadow: 0 0 0 0 rgba(1, 128, 255, 0.5);
	animation-name: mph-float-pulse-blue;
}

.mph-float-contact__btn--facebook .mph-float-contact__ripple {
	box-shadow: 0 0 0 0 rgba(24, 119, 242, 0.5);
	animation-name: mph-float-pulse-blue;
	animation-delay: 0.35s;
}

.mph-float-contact__btn--phone .mph-float-contact__ripple {
	animation-delay: 0.7s;
}

@keyframes mph-float-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(242, 189, 62, 0.55);
	}
	70% {
		box-shadow: 0 0 0 14px rgba(242, 189, 62, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(242, 189, 62, 0);
	}
}

@keyframes mph-float-pulse-blue {
	0% {
		box-shadow: 0 0 0 0 rgba(1, 128, 255, 0.5);
	}
	70% {
		box-shadow: 0 0 0 14px rgba(1, 128, 255, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(1, 128, 255, 0);
	}
}

@media (max-width: 767px) {
	.mph-back-to-top {
		right: 72px;
		bottom: 14px;
		width: 42px;
		height: 42px;
	}

	.mph-float-contact {
		right: 14px;
		bottom: 14px;
		gap: 10px;
	}

	.mph-float-contact__btn {
		width: 48px;
		height: 48px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mph-float-contact__ripple {
		animation: none;
	}
}
