/**
 * Premium Footer
 * Precision Home
 * Version 2.0.0
 */

.ph-footer {
	--footer-primary: #8e3b43;
	--footer-primary-dark: #742f36;
	--footer-gold: #d4af37;
	--footer-gold-light: #efd16b;
	--footer-dark: #0d1319;
	--footer-dark-soft: #17212a;
	--footer-white: #ffffff;
	--footer-text: rgba(255, 255, 255, 0.68);
	--footer-border: rgba(212, 175, 55, 0.24);

	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 82px 0 0;
	background:
		radial-gradient(
			circle at 88% 6%,
			rgba(142, 59, 67, 0.25),
			transparent 30%
		),
		radial-gradient(
			circle at 8% 92%,
			rgba(212, 175, 55, 0.09),
			transparent 25%
		),
		linear-gradient(
			135deg,
			#0a1016 0%,
			#131d26 48%,
			#0b1117 100%
		);
	color: var(--footer-white);
}

.ph-footer *,
.ph-footer *::before,
.ph-footer *::after {
	box-sizing: border-box;
}

/* =========================
   Background
========================= */

.ph-footer__pattern {
	position: absolute;
	inset: 0;
	z-index: -3;
	background-image:
		linear-gradient(
			rgba(255, 255, 255, 0.017) 1px,
			transparent 1px
		),
		linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.017) 1px,
			transparent 1px
		);
	background-size: 50px 50px;
	mask-image:
		linear-gradient(
			to bottom,
			transparent,
			#000 12%,
			#000 88%,
			transparent
		);
	pointer-events: none;
}

.ph-footer__glow {
	position: absolute;
	z-index: -2;
	border-radius: 50%;
	filter: blur(28px);
	pointer-events: none;
}

.ph-footer__glow--top {
	top: -180px;
	right: -140px;
	width: 470px;
	height: 470px;
	background: rgba(142, 59, 67, 0.18);
}

.ph-footer__glow--bottom {
	bottom: -210px;
	left: -160px;
	width: 500px;
	height: 500px;
	background: rgba(212, 175, 55, 0.07);
}

/* =========================
   Main grid
========================= */

.ph-footer__top {
	display: grid;
	grid-template-columns:
		minmax(280px, 1.35fr)
		minmax(180px, 0.85fr)
		minmax(160px, 0.75fr)
		minmax(260px, 1.05fr);
	gap: clamp(34px, 4.5vw, 68px);
	align-items: start;
	padding-bottom: 46px;
}

/* =========================
   Brand
========================= */

.ph-footer__brand {
	min-width: 0;
}

.ph-footer__logo-link {
	display: inline-flex;
	align-items: center;
	max-width: 260px;
	color: #ffffff;
	text-decoration: none;
}

.ph-footer__logo {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 92px;
	object-fit: contain;
	object-position: right center;
}

.ph-footer__logo-text {
	display: inline-flex;
	flex-direction: column;
}

.ph-footer__logo-text strong {
	color: var(--footer-gold-light);
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
}

.ph-footer__logo-text small {
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.72);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.4px;
}

.ph-footer__about-text {
	max-width: 420px;
	margin: 21px 0 0;
	color: var(--footer-text);
	font-size: 14px;
	line-height: 1.95;
	text-wrap: pretty;
}

.ph-footer__social {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
}

.ph-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 45px;
	height: 45px;
	background: rgba(255, 255, 255, 0.055);
	color: var(--footer-gold-light);
	border: 1px solid rgba(212, 175, 55, 0.28);
	border-radius: 13px;
	text-decoration: none;
	box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
	transition:
		transform 220ms ease,
		background-color 220ms ease,
		color 220ms ease,
		border-color 220ms ease,
		box-shadow 220ms ease;
}

.ph-footer__social a:hover,
.ph-footer__social a:focus-visible {
	transform: translateY(-4px);
	background: var(--footer-gold);
	color: var(--footer-dark);
	border-color: var(--footer-gold);
	box-shadow: 0 16px 28px rgba(0, 0, 0, 0.22);
}

.ph-footer__social a:focus-visible {
	outline: 3px solid rgba(212, 175, 55, 0.45);
	outline-offset: 3px;
}

.ph-footer__social svg {
	width: 22px;
	height: 22px;
}

/* =========================
   Columns
========================= */

.ph-footer__column {
	min-width: 0;
}

.ph-footer__column h3 {
	position: relative;
	margin: 0 0 23px;
	padding-bottom: 13px;
	color: #ffffff;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.5;
}

.ph-footer__column h3::before {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 42px;
	height: 2px;
	background: var(--footer-gold);
	border-radius: 999px;
	content: "";
}

.ph-footer__column h3::after {
	position: absolute;
	right: 48px;
	bottom: -3px;
	width: 8px;
	height: 8px;
	background: var(--footer-primary);
	border: 1px solid var(--footer-gold);
	transform: rotate(45deg);
	content: "";
}

.ph-footer__column ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ph-footer__column li + li {
	margin-top: 11px;
}

.ph-footer__column > ul:not(.ph-footer__contact-list) a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: rgba(255, 255, 255, 0.66);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.65;
	text-decoration: none;
	transition:
		color 210ms ease,
		transform 210ms ease;
}

.ph-footer__column > ul:not(.ph-footer__contact-list) a::after {
	position: absolute;
	right: 27px;
	bottom: -2px;
	width: 0;
	height: 1px;
	background: var(--footer-gold);
	content: "";
	transition: width 210ms ease;
}

.ph-footer__column > ul:not(.ph-footer__contact-list) a:hover,
.ph-footer__column > ul:not(.ph-footer__contact-list) a:focus-visible {
	transform: translateX(-5px);
	color: var(--footer-gold-light);
}

.ph-footer__column > ul:not(.ph-footer__contact-list) a:hover::after,
.ph-footer__column > ul:not(.ph-footer__contact-list) a:focus-visible::after {
	width: calc(100% - 27px);
}

.ph-footer__column > ul:not(.ph-footer__contact-list) svg {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	color: var(--footer-gold);
}

.ph-footer__column a:focus-visible {
	outline: 2px solid rgba(212, 175, 55, 0.45);
	outline-offset: 4px;
	border-radius: 4px;
}

/* =========================
   Contact
========================= */

.ph-footer__contact-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.ph-footer__contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin: 0;
	min-width: 0;
}

.ph-footer__contact-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	background: rgba(212, 175, 55, 0.08);
	color: var(--footer-gold-light);
	border: 1px solid rgba(212, 175, 55, 0.22);
	border-radius: 11px;
}

.ph-footer__contact-icon svg {
	width: 22px;
	height: 22px;
}

.ph-footer__contact-list div {
	min-width: 0;
}

.ph-footer__contact-list strong {
	display: block;
	margin-bottom: 3px;
	color: #ffffff;
	font-size: 12.5px;
	font-weight: 800;
	line-height: 1.5;
}

.ph-footer__contact-list a,
.ph-footer__contact-list div > span {
	display: block;
	color: rgba(255, 255, 255, 0.65);
	font-size: 12.5px;
	line-height: 1.7;
	text-decoration: none;
	overflow-wrap: anywhere;
	transition: color 200ms ease;
}

.ph-footer__contact-list a:hover,
.ph-footer__contact-list a:focus-visible {
	color: var(--footer-gold-light);
}

/* =========================
   Cities bar
========================= */

.ph-footer__cities {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 20px 22px;
	background:
		linear-gradient(
			135deg,
			rgba(255, 255, 255, 0.06),
			rgba(255, 255, 255, 0.025)
		);
	border: 1px solid var(--footer-border);
	border-radius: 17px;
	box-shadow:
		0 15px 34px rgba(0, 0, 0, 0.16),
		inset 0 1px 0 rgba(255, 255, 255, 0.045);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.ph-footer__cities-title {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	color: #ffffff;
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.ph-footer__cities-title svg {
	width: 21px;
	height: 21px;
	color: var(--footer-gold-light);
}

.ph-footer__cities-list {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.ph-footer__cities-list span,
.ph-footer__cities-list .ph-footer__city-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 31px;
	padding: 5px 11px;
	background: rgba(142, 59, 67, 0.13);
	color: rgba(255, 255, 255, 0.76);
	border: 1px solid rgba(212, 175, 55, 0.18);
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition:
		background-color 200ms ease,
		color 200ms ease,
		border-color 200ms ease;
}

.ph-footer__cities-list span:hover,
.ph-footer__cities-list .ph-footer__city-link:hover {
	background: var(--footer-primary);
	color: #ffffff;
	border-color: rgba(212, 175, 55, 0.55);
}

/* =========================
   Bottom bar
========================= */

.ph-footer__bottom {
	position: relative;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
	margin-top: 27px;
	padding: 23px 0;
	border-top: 1px solid rgba(212, 175, 55, 0.2);
}

.ph-footer__bottom::before {
	position: absolute;
	top: -1px;
	right: 0;
	width: 120px;
	height: 1px;
	background:
		linear-gradient(
			90deg,
			var(--footer-gold),
			transparent
		);
	content: "";
}

.ph-footer__copyright,
.ph-footer__credit {
	margin: 0;
	color: rgba(255, 255, 255, 0.57);
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.7;
}

.ph-footer__credit {
	text-align: left;
}

.ph-footer__credit a {
	color: var(--footer-gold-light);
	font-weight: 800;
	text-decoration: none;
	transition: color 200ms ease;
}

.ph-footer__credit a:hover,
.ph-footer__credit a:focus-visible {
	color: #ffffff;
}

.ph-footer__legal {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

.ph-footer__legal a {
	color: rgba(255, 255, 255, 0.58);
	font-size: 11.5px;
	font-weight: 700;
	text-decoration: none;
	transition: color 200ms ease;
}

.ph-footer__legal a:hover,
.ph-footer__legal a:focus-visible {
	color: var(--footer-gold-light);
}

.ph-footer__legal > span {
	width: 4px;
	height: 4px;
	background: var(--footer-gold);
	border-radius: 50%;
}

/* =========================
   Back to top
========================= */

.ph-footer__back-to-top {
	position: absolute;
	top: -26px;
	left: 50%;
	z-index: 6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	padding: 0;
	background:
		linear-gradient(
			145deg,
			var(--footer-primary-dark),
			var(--footer-primary)
		);
	color: var(--footer-gold-light);
	border: 2px solid var(--footer-gold);
	border-radius: 50%;
	box-shadow:
		0 14px 30px rgba(0, 0, 0, 0.28),
		inset 0 1px 0 rgba(255, 255, 255, 0.09);
	cursor: pointer;
	transform: translateX(-50%);
	transition:
		transform 220ms ease,
		background-color 220ms ease,
		color 220ms ease,
		box-shadow 220ms ease;
}

.ph-footer__back-to-top:hover,
.ph-footer__back-to-top:focus-visible {
	transform: translateX(-50%) translateY(-5px);
	background: var(--footer-gold);
	color: var(--footer-dark);
	box-shadow: 0 19px 36px rgba(0, 0, 0, 0.34);
}

.ph-footer__back-to-top:focus-visible {
	outline: 3px solid rgba(255, 255, 255, 0.42);
	outline-offset: 3px;
}

.ph-footer__back-to-top svg {
	width: 25px;
	height: 25px;
}

/* =========================
   Tablet
========================= */

@media (max-width: 1100px) {

	.ph-footer {
		padding-top: 72px;
	}

	.ph-footer__top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 42px 46px;
	}

	.ph-footer__brand {
		max-width: 520px;
	}

	.ph-footer__cities {
		align-items: flex-start;
		flex-direction: column;
		gap: 13px;
	}

	.ph-footer__bottom {
		grid-template-columns: 1fr 1fr;
	}

	.ph-footer__legal {
		grid-column: 1 / -1;
		grid-row: 1;
	}

	.ph-footer__copyright {
		grid-column: 1;
		grid-row: 2;
	}

	.ph-footer__credit {
		grid-column: 2;
		grid-row: 2;
	}
}

/* =========================
   Mobile
========================= */

@media (max-width: 767px) {

	.ph-footer {
		padding-top: 62px;
	}

	.ph-footer__top {
		grid-template-columns: 1fr;
		gap: 35px;
		padding-bottom: 34px;
	}

	.ph-footer__logo-link {
		max-width: 230px;
	}

	.ph-footer__logo {
		max-height: 78px;
	}

	.ph-footer__logo-text strong {
		font-size: 27px;
	}

	.ph-footer__about-text {
		margin-top: 17px;
		font-size: 13px;
		line-height: 1.85;
	}

	.ph-footer__social {
		margin-top: 19px;
	}

	.ph-footer__column h3 {
		margin-bottom: 18px;
		font-size: 17px;
	}

	.ph-footer__column > ul:not(.ph-footer__contact-list) {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 16px;
	}

	.ph-footer__column > ul:not(.ph-footer__contact-list) li,
	.ph-footer__column > ul:not(.ph-footer__contact-list) li + li {
		margin: 0;
	}

	.ph-footer__column > ul:not(.ph-footer__contact-list) a {
		font-size: 12.5px;
	}

	.ph-footer__contact-list {
		gap: 12px;
	}

	.ph-footer__cities {
		padding: 17px 15px;
		border-radius: 14px;
	}

	.ph-footer__cities-list {
		gap: 7px;
	}

	.ph-footer__cities-list span,
.ph-footer__cities-list .ph-footer__city-link {
		min-height: 29px;
		padding-inline: 10px;
		font-size: 11px;
	}

	.ph-footer__bottom {
		display: flex;
		align-items: center;
		flex-direction: column;
		gap: 12px;
		margin-top: 22px;
		padding: 21px 0;
		text-align: center;
	}

	.ph-footer__copyright,
	.ph-footer__credit {
		font-size: 11px;
		text-align: center;
	}

	.ph-footer__legal {
		order: -1;
		flex-wrap: wrap;
	}

	.ph-footer__back-to-top {
		width: 49px;
		height: 49px;
		top: -24px;
	}
}

@media (max-width: 390px) {

	.ph-footer__column > ul:not(.ph-footer__contact-list) {
		grid-template-columns: 1fr;
	}

	.ph-footer__logo-text strong {
		font-size: 25px;
	}

	.ph-footer__cities-list span,
.ph-footer__cities-list .ph-footer__city-link {
		font-size: 10.5px;
	}
}

/* =========================
   Motion
========================= */

@media (prefers-reduced-motion: reduce) {

	.ph-footer__social a,
	.ph-footer__column a,
	.ph-footer__column a::after,
	.ph-footer__cities-list span,
	.ph-footer__back-to-top,
	.ph-footer__credit a,
	.ph-footer__legal a {
		transition: none;
	}
}

/* =========================================================
   v3.7 Transparent footer brand mark + layout polish
   ========================================================= */
.ph-footer__brand-mark {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	width: fit-content;
	max-width: 100%;
	padding: 0;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	text-decoration: none;
}
.ph-footer__brand-icon {
	display: grid;
	place-items: center;
	flex: 0 0 58px;
	width: 58px;
	height: 58px;
	color: var(--footer-gold-light);
	border: 1px solid rgba(212,175,55,.38);
	border-radius: 16px;
	background: linear-gradient(145deg,rgba(142,59,67,.28),rgba(255,255,255,.035));
	box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.ph-footer__brand-icon svg {
	width: 42px;
	height: 42px;
}
.ph-footer__brand-copy {
	display: grid;
	gap: 2px;
	min-width: 0;
}
.ph-footer__brand-copy strong {
	color: #fff;
	font-size: clamp(22px,2vw,29px);
	font-weight: 900;
	line-height: 1.2;
}
.ph-footer__brand-copy small {
	color: var(--footer-gold-light);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 1.35px;
	line-height: 1.4;
}
.ph-footer__brand-copy em {
	color: rgba(255,255,255,.62);
	font-size: 11.5px;
	font-style: normal;
	font-weight: 600;
	line-height: 1.5;
}
.ph-footer__about-text {
	max-width: 440px;
}
.ph-footer__top {
	align-items: start;
}
.ph-footer__column h3 {
	position: relative;
	padding-bottom: 11px;
}
.ph-footer__column h3::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 42px;
	height: 2px;
	border-radius: 999px;
	background: linear-gradient(90deg,var(--footer-gold),transparent);
}

@media (max-width: 767px) {
	.ph-footer__top {
		gap: 30px;
	}
	.ph-footer__brand {
		display: grid;
		justify-items: start;
	}
	.ph-footer__brand-mark {
		gap: 12px;
	}
	.ph-footer__brand-icon {
		flex-basis: 52px;
		width: 52px;
		height: 52px;
		border-radius: 14px;
	}
	.ph-footer__brand-icon svg {
		width: 37px;
		height: 37px;
	}
	.ph-footer__brand-copy strong {
		font-size: 23px;
	}
	.ph-footer__brand-copy small {
		font-size: 11.5px;
		letter-spacing: 1px;
	}
	.ph-footer__brand-copy em {
		font-size: 11px;
	}
	.ph-footer__about-text {
		max-width: none;
	}
	.ph-footer__column h3 {
		margin-bottom: 14px;
	}
	.ph-footer__column > ul:not(.ph-footer__contact-list) {
		gap: 8px 14px;
	}
}


/* v4.3 global fixed back-to-top control. */
.ph-footer__back-to-top{position:fixed!important;left:clamp(14px,2vw,28px)!important;right:auto!important;top:auto!important;bottom:clamp(16px,2vw,28px)!important;z-index:9996!important;transform:translateY(18px) scale(.92)!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background-color .2s ease,color .2s ease!important}
.ph-footer__back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)!important}
.ph-footer__back-to-top.is-visible:hover,.ph-footer__back-to-top.is-visible:focus-visible{transform:translateY(-4px) scale(1)!important}
@media(max-width:767px){.ph-footer__back-to-top{left:14px!important;bottom:92px!important;width:48px!important;height:48px!important}}
@media(prefers-reduced-motion:reduce){.ph-footer__back-to-top{transition:none!important}}

/* v5.7 footer mobile polish */
.ph-site-footer a:focus-visible{outline:3px solid rgba(212,175,55,.7);outline-offset:3px}
@media(max-width:767px){
	.ph-site-footer a{min-height:40px}
	.ph-site-footer__columns{gap:1.8rem}
}
