/**
 * Contact Section
 * Precision Home
 * Version 1.0.0
 */

.ph-contact {
	--contact-primary: #8e3b43;
	--contact-primary-dark: #742f36;
	--contact-gold: #d4af37;
	--contact-gold-light: #efd16b;
	--contact-dark: #11171d;
	--contact-dark-soft: #1b242e;
	--contact-text: rgba(255, 255, 255, 0.72);
	--contact-white: #ffffff;
	--contact-border: rgba(212, 175, 55, 0.28);

	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 96px 0 82px;
	background:
		radial-gradient(
			circle at 88% 10%,
			rgba(142, 59, 67, 0.24),
			transparent 30%
		),
		radial-gradient(
			circle at 7% 92%,
			rgba(212, 175, 55, 0.1),
			transparent 24%
		),
		linear-gradient(
			135deg,
			#0d1319 0%,
			#17212b 52%,
			#10171e 100%
		);
	color: #ffffff;
}

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

.ph-contact::before {
	position: absolute;
	inset: 0;
	z-index: -2;
	content: "";
	background-image:
		linear-gradient(
			rgba(255, 255, 255, 0.018) 1px,
			transparent 1px
		),
		linear-gradient(
			90deg,
			rgba(255, 255, 255, 0.018) 1px,
			transparent 1px
		);
	background-size: 48px 48px;
	mask-image: linear-gradient(
		to bottom,
		transparent,
		#000 14%,
		#000 86%,
		transparent
	);
}

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

.ph-contact__glow--top {
	top: -180px;
	right: -130px;
	width: 460px;
	height: 460px;
	background: rgba(142, 59, 67, 0.17);
}

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

/* =========================
   Layout
========================= */

.ph-contact__layout {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
	align-items: start;
	gap: clamp(46px, 6vw, 88px);
}

/* =========================
   Content
========================= */

.ph-contact__content {
	min-width: 0;
	padding-top: 18px;
}

.ph-contact__eyebrow {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 14px;
	color: var(--contact-gold-light);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.6;
}

.ph-contact__eyebrow span {
	width: 50px;
	height: 1px;
	background: linear-gradient(
		90deg,
		var(--contact-gold),
		transparent
	);
}

.ph-contact__title {
	max-width: 680px;
	margin: 0;
	color: #ffffff;
	font-size: clamp(38px, 4vw, 56px);
	font-weight: 800;
	line-height: 1.28;
	letter-spacing: -0.7px;
	text-wrap: balance;
}

.ph-contact__title span {
	display: block;
	margin-top: 4px;
	color: var(--contact-gold-light);
}

.ph-contact__description {
	max-width: 650px;
	margin: 20px 0 0;
	color: var(--contact-text);
	font-size: 16px;
	line-height: 1.95;
	text-wrap: pretty;
}

/* =========================
   Quick actions
========================= */

.ph-contact__quick-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 13px;
	margin-top: 30px;
}

.ph-contact__quick-button {
	display: flex;
	align-items: center;
	gap: 13px;
	min-width: 0;
	min-height: 82px;
	padding: 15px;
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	text-decoration: none;
	box-shadow: 0 16px 34px rgba(0, 0, 0, 0.18);
	transition:
		transform 220ms ease,
		border-color 220ms ease,
		box-shadow 220ms ease,
		background-color 220ms ease;
}

.ph-contact__quick-button--call {
	background:
		linear-gradient(
			135deg,
			rgba(142, 59, 67, 0.96),
			rgba(116, 47, 54, 0.96)
		);
	border-color: rgba(212, 175, 55, 0.48);
}

.ph-contact__quick-button--whatsapp {
	background:
		linear-gradient(
			135deg,
			rgba(23, 138, 75, 0.95),
			rgba(15, 104, 56, 0.96)
		);
	border-color: rgba(255, 255, 255, 0.14);
}

.ph-contact__quick-button:hover,
.ph-contact__quick-button:focus-visible {
	transform: translateY(-4px);
	border-color: rgba(212, 175, 55, 0.72);
	box-shadow: 0 22px 42px rgba(0, 0, 0, 0.25);
}

.ph-contact__quick-button:focus-visible {
	outline: 3px solid rgba(212, 175, 55, 0.5);
	outline-offset: 3px;
}

.ph-contact__quick-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	flex: 0 0 48px;
	background: rgba(255, 255, 255, 0.1);
	color: #ffffff;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 13px;
}

.ph-contact__quick-icon svg {
	width: 25px;
	height: 25px;
}

.ph-contact__quick-button > span:last-child {
	min-width: 0;
}

.ph-contact__quick-button small,
.ph-contact__quick-button strong {
	display: block;
}

.ph-contact__quick-button small {
	color: rgba(255, 255, 255, 0.7);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.5;
}

.ph-contact__quick-button strong {
	margin-top: 3px;
	color: #ffffff;
	font-size: 16px;
	font-weight: 800;
	line-height: 1.5;
}

/* =========================
   Information
========================= */

.ph-contact__information {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin-top: 25px;
}

.ph-contact__info-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-width: 0;
	padding: 16px;
	background: rgba(255, 255, 255, 0.045);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 14px;
}

.ph-contact__info-item--wide {
	grid-column: 1 / -1;
}

.ph-contact__info-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	flex: 0 0 44px;
	background: rgba(212, 175, 55, 0.09);
	color: var(--contact-gold-light);
	border: 1px solid rgba(212, 175, 55, 0.25);
	border-radius: 12px;
}

.ph-contact__info-icon svg {
	width: 24px;
	height: 24px;
}

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

.ph-contact__info-item a,
.ph-contact__info-item span,
.ph-contact__cities {
	margin: 0;
	color: rgba(255, 255, 255, 0.66);
	font-size: 12.5px;
	line-height: 1.75;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.ph-contact__info-item a:hover {
	color: var(--contact-gold-light);
}

.ph-contact__assurances {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px 22px;
	margin-top: 21px;
}

.ph-contact__assurances > span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: rgba(255, 255, 255, 0.64);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
}

.ph-contact__assurances svg {
	width: 18px;
	height: 18px;
	color: var(--contact-gold-light);
}

/* =========================
   Form panel
========================= */

.ph-contact__form-panel {
	position: relative;
	min-width: 0;
	padding: clamp(26px, 3vw, 38px);
	background:
		linear-gradient(
			145deg,
			rgba(255, 255, 255, 0.98),
			rgba(249, 246, 241, 0.98)
		);
	color: #15171b;
	border: 1px solid rgba(212, 175, 55, 0.56);
	border-radius: 24px;
	box-shadow:
		0 32px 70px rgba(0, 0, 0, 0.24),
		0 8px 18px rgba(0, 0, 0, 0.08);
}

.ph-contact__form-panel::before {
	position: absolute;
	top: 0;
	right: 28px;
	left: 28px;
	height: 3px;
	background: linear-gradient(
		90deg,
		transparent,
		var(--contact-gold),
		transparent
	);
	border-radius: 999px;
	content: "";
}

.ph-contact__form-heading {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 26px;
}

.ph-contact__form-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	flex: 0 0 58px;
	background:
		linear-gradient(
			145deg,
			var(--contact-primary-dark),
			var(--contact-primary)
		);
	color: var(--contact-gold-light);
	border: 1px solid rgba(212, 175, 55, 0.62);
	border-radius: 15px;
	box-shadow: 0 11px 24px rgba(116, 47, 54, 0.21);
	font-size: 18px;
	font-weight: 800;
}

.ph-contact__form-heading h3 {
	margin: 0;
	color: #15171b;
	font-size: 25px;
	font-weight: 800;
	line-height: 1.45;
}

.ph-contact__form-heading p {
	margin: 5px 0 0;
	color: #666b73;
	font-size: 13.5px;
	line-height: 1.75;
}

/* =========================
   Form messages
========================= */

.ph-contact__message {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 18px;
	padding: 13px 14px;
	border-radius: 12px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.7;
}

.ph-contact__message svg {
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
}

.ph-contact__message--success {
	background: rgba(23, 138, 75, 0.1);
	color: #12663a;
	border: 1px solid rgba(23, 138, 75, 0.22);
}

.ph-contact__message--error {
	background: rgba(173, 42, 42, 0.08);
	color: #962d2d;
	border: 1px solid rgba(173, 42, 42, 0.2);
}

/* =========================
   Fields
========================= */

.ph-contact__form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 17px 14px;
}

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

.ph-contact__field--full {
	grid-column: 1 / -1;
}

.ph-contact__field label {
	display: block;
	margin-bottom: 7px;
	color: #30343a;
	font-size: 12.5px;
	font-weight: 800;
	line-height: 1.5;
}

.ph-contact__field label > span {
	color: var(--contact-primary);
}

.ph-contact__control {
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
}

.ph-contact__control > svg {
	position: absolute;
	z-index: 2;
	top: 50%;
	right: 14px;
	width: 20px;
	height: 20px;
	color: #a07a34;
	transform: translateY(-50%);
	pointer-events: none;
}

.ph-contact__control--textarea {
	align-items: flex-start;
}

.ph-contact__control--textarea > svg {
	top: 16px;
	transform: none;
}

.ph-contact__control input,
.ph-contact__control select,
.ph-contact__control textarea {
	width: 100%;
	min-width: 0;
	background: #ffffff;
	color: #272b31;
	border: 1px solid #ddd7cf;
	border-radius: 11px;
	font-family: inherit;
	font-size: 13px;
	line-height: 1.6;
	transition:
		border-color 200ms ease,
		box-shadow 200ms ease,
		background-color 200ms ease;
}

.ph-contact__control input,
.ph-contact__control select {
	min-height: 50px;
	padding: 11px 43px 11px 13px;
}

.ph-contact__control textarea {
	min-height: 128px;
	padding: 13px 43px 13px 13px;
	resize: vertical;
}

.ph-contact__control input::placeholder,
.ph-contact__control textarea::placeholder {
	color: #999da3;
}

.ph-contact__control input:focus,
.ph-contact__control select:focus,
.ph-contact__control textarea:focus {
	background: #ffffff;
	border-color: var(--contact-gold);
	outline: 0;
	box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.12);
}

.ph-contact__control select {
	cursor: pointer;
}

/* Honeypot */

.ph-contact__honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
}

/* Consent */

.ph-contact__consent {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin-top: 17px;
	color: #686d74;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.65;
	cursor: pointer;
}

.ph-contact__consent input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.ph-contact__consent-box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	margin-top: 1px;
	background: #ffffff;
	color: #ffffff;
	border: 1px solid #d5cec5;
	border-radius: 5px;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.ph-contact__consent-box svg {
	width: 14px;
	height: 14px;
	opacity: 0;
	transform: scale(0.6);
	transition:
		opacity 180ms ease,
		transform 180ms ease;
}

.ph-contact__consent input:checked + .ph-contact__consent-box {
	background: var(--contact-primary);
	border-color: var(--contact-primary);
}

.ph-contact__consent input:checked + .ph-contact__consent-box svg {
	opacity: 1;
	transform: scale(1);
}

.ph-contact__consent input:focus-visible + .ph-contact__consent-box {
	outline: 3px solid rgba(212, 175, 55, 0.45);
	outline-offset: 2px;
}

/* Submit */

.ph-contact__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 54px;
	margin-top: 19px;
	padding: 12px 20px;
	background:
		linear-gradient(
			135deg,
			var(--contact-primary-dark),
			var(--contact-primary)
		);
	color: #ffffff;
	border: 1px solid transparent;
	border-radius: 12px;
	box-shadow: 0 14px 29px rgba(116, 47, 54, 0.23);
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.5;
	cursor: pointer;
	transition:
		transform 210ms ease,
		background-color 210ms ease,
		border-color 210ms ease,
		box-shadow 210ms ease;
}

.ph-contact__submit svg {
	width: 21px;
	height: 21px;
	transition: transform 210ms ease;
}

.ph-contact__submit:hover,
.ph-contact__submit:focus-visible {
	transform: translateY(-3px);
	background: var(--contact-primary-dark);
	border-color: var(--contact-gold);
	box-shadow: 0 20px 36px rgba(116, 47, 54, 0.29);
}

.ph-contact__submit:hover svg,
.ph-contact__submit:focus-visible svg {
	transform: translateX(-5px);
}

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

.ph-contact__submit:active {
	transform: translateY(0) scale(0.99);
}

.ph-contact__form-note {
	margin: 11px 0 0;
	color: #8a8e94;
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

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

@media (max-width: 1050px) {

	.ph-contact {
		padding: 80px 0 66px;
	}

	.ph-contact__layout {
		grid-template-columns: 1fr;
		gap: 45px;
	}

	.ph-contact__content {
		max-width: 760px;
		padding-top: 0;
	}

	.ph-contact__title {
		font-size: clamp(34px, 4.8vw, 48px);
	}

	.ph-contact__form-panel {
		max-width: 820px;
		width: 100%;
	}
}

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

@media (max-width: 767px) {

	.ph-contact {
		padding: 58px 0 48px;
	}

	.ph-contact__layout {
		gap: 32px;
	}

	.ph-contact__eyebrow {
		font-size: 15px;
	}

	.ph-contact__eyebrow span {
		width: 29px;
	}

	.ph-contact__title {
		font-size: clamp(27px, 7vw, 33px);
		line-height: 1.4;
		letter-spacing: 0;
	}

	.ph-contact__description {
		margin-top: 14px;
		font-size: 14px;
		line-height: 1.85;
	}

	.ph-contact__quick-actions {
		grid-template-columns: 1fr;
		gap: 10px;
		margin-top: 23px;
	}

	.ph-contact__quick-button {
		min-height: 72px;
	}

	.ph-contact__information {
		grid-template-columns: 1fr;
		margin-top: 19px;
	}

	.ph-contact__info-item--wide {
		grid-column: auto;
	}

	.ph-contact__assurances {
		align-items: flex-start;
		flex-direction: column;
		gap: 9px;
	}

	.ph-contact__form-panel {
		padding: 22px 16px 19px;
		border-radius: 18px;
	}

	.ph-contact__form-heading {
		gap: 12px;
		margin-bottom: 21px;
	}

	.ph-contact__form-number {
		width: 49px;
		height: 49px;
		flex-basis: 49px;
	}

	.ph-contact__form-heading h3 {
		font-size: 20px;
	}

	.ph-contact__form-heading p {
		font-size: 12.5px;
	}

	.ph-contact__form-grid {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.ph-contact__field--full {
		grid-column: auto;
	}

	.ph-contact__control input,
	.ph-contact__control select {
		min-height: 49px;
	}

	.ph-contact__control textarea {
		min-height: 120px;
	}

	.ph-contact__submit {
		min-height: 52px;
	}
}

@media (max-width: 390px) {

	.ph-contact__title {
		font-size: 27px;
	}

	.ph-contact__quick-button strong {
		font-size: 15px;
	}

	.ph-contact__form-panel {
		padding-inline: 13px;
	}

	.ph-contact__form-heading h3 {
		font-size: 18px;
	}
}

/* =========================
   Reduced motion
========================= */

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

	.ph-contact__quick-button,
	.ph-contact__control input,
	.ph-contact__control select,
	.ph-contact__control textarea,
	.ph-contact__consent-box,
	.ph-contact__consent-box svg,
	.ph-contact__submit,
	.ph-contact__submit svg {
		transition: none;
	}
}

/* v6.6 Homepage polish */
.ph-contact{padding:94px 0;background:radial-gradient(circle at 82% 16%,rgba(212,175,55,.12),transparent 28%),linear-gradient(135deg,#5f202b 0%,#8e3b43 48%,#27161b 100%)}
.ph-contact__layout{border-radius:26px}
.ph-contact__form,.ph-contact__quick-button,.ph-contact__info-item{border-radius:17px}
.ph-contact__quick-button{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.ph-contact__quick-button:hover{transform:translateY(-4px)}
@media(max-width:767px){.ph-contact{padding:62px 0}.ph-contact__layout{border-radius:20px}.ph-contact__quick-actions{display:grid;grid-template-columns:1fr 1fr}.ph-contact__quick-button{min-width:0}}
