/* Contact + Footer — Base44 parity */

.ps-contact-wrap {
	width: 100%;
}

.ps-contact-head {
	text-align: center;
	max-width: 42rem;
	margin: 0 auto;
}

.ps-contact-eyebrow {
	color: #c5a059;
	letter-spacing: 0.3em;
	font-size: 12px;
	text-transform: uppercase;
	margin: 0 0 12px;
}

.ps-contact-head h2 {
	margin: 0;
	color: #0a1428;
	font-family: var(--ps-font-serif, ui-serif, Georgia, Cambria, "Times New Roman", Times, serif);
	font-weight: 400;
	font-weight: 400;
	font-size: clamp(1.75rem, 3vw, 3rem);
}

.ps-contact-head p {
	margin: 16px 0 0;
	color: #64748b;
	line-height: 1.6;
}

.ps-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-top: 56px;
	align-items: start;
}

@media (max-width: 1024px) {
	.ps-contact-grid {
		grid-template-columns: 1fr;
	}
}

.ps-contact-card {
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 24px;
	padding: 36px;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
}

/* CF7 + native form share the same Base44 field chrome */
.ps-contact-card .wpcf7 {
	margin: 0;
}

.ps-contact-form,
.ps-contact-card .wpcf7 form {
	display: grid;
	gap: 16px;
	text-align: start;
}

/* CF7 dir comes from form locale (set per request in ps_cf7_render_contact_form) */
.ps-contact-card .wpcf7[dir="ltr"],
.ps-contact-card .wpcf7[dir="ltr"] form {
	direction: ltr;
	text-align: start;
}

.ps-contact-card .wpcf7[dir="rtl"],
.ps-contact-card .wpcf7[dir="rtl"] form {
	direction: rtl;
	text-align: start;
}

.ps-contact-card .wpcf7[dir="ltr"] input,
.ps-contact-card .wpcf7[dir="ltr"] select,
.ps-contact-card .wpcf7[dir="ltr"] textarea {
	text-align: left;
	direction: ltr;
}

.ps-contact-card .wpcf7[dir="rtl"] input,
.ps-contact-card .wpcf7[dir="rtl"] select,
.ps-contact-card .wpcf7[dir="rtl"] textarea {
	text-align: right;
	direction: rtl;
}

.ps-contact-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

@media (max-width: 640px) {
	.ps-contact-form-row {
		grid-template-columns: 1fr;
	}
}

.ps-contact-form label,
.ps-contact-card .wpcf7 label {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 500;
	color: #64748b;
}

.ps-contact-card .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.ps-contact-form input,
.ps-contact-form select,
.ps-contact-form textarea,
.ps-contact-card .wpcf7 input[type="text"],
.ps-contact-card .wpcf7 input[type="email"],
.ps-contact-card .wpcf7 input[type="tel"],
.ps-contact-card .wpcf7 select,
.ps-contact-card .wpcf7 textarea {
	width: 100%;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	padding: 12px 16px;
	font-size: 14px;
	color: #0a1428;
	background-color: #fff;
	box-sizing: border-box;
	font-family: inherit;
}

/* Custom chevron — after field styles so background shorthand never clears it */
.ps-contact-form select,
.ps-contact-card .wpcf7 select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-inline-end: 40px;
}

.ps-contact-card .wpcf7[dir="rtl"] select,
html[dir="rtl"] .ps-contact-form select {
	background-position: left 16px center;
}

.ps-contact-form textarea,
.ps-contact-card .wpcf7 textarea {
	min-height: 110px;
	resize: vertical;
}

.ps-contact-form input:focus,
.ps-contact-form select:focus,
.ps-contact-form textarea:focus,
.ps-contact-card .wpcf7 input:focus,
.ps-contact-card .wpcf7 select:focus,
.ps-contact-card .wpcf7 textarea:focus {
	outline: none;
	border-color: #c5a059;
	box-shadow: 0 0 0 1px #c5a059;
}

.ps-contact-submit,
.ps-contact-card .wpcf7 input.wpcf7-submit,
.ps-contact-card .wpcf7 input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-top: 8px;
	border: 0;
	border-radius: 999px;
	background: #0a1428;
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	padding: 14px 28px;
	cursor: pointer;
	font-family: inherit;
	appearance: none;
	-webkit-appearance: none;
}

.ps-contact-submit:hover,
.ps-contact-card .wpcf7 input.wpcf7-submit:hover,
.ps-contact-card .wpcf7 input[type="submit"]:hover {
	background: #1a2440;
}

.ps-contact-card .wpcf7-not-valid-tip {
	font-size: 12px;
	color: #b91c1c;
	margin-top: 4px;
}

.ps-contact-card .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 14px;
	text-align: start;
}

.ps-contact-card .wpcf7 form.sent .wpcf7-response-output {
	border: 1px solid #86efac;
	background: #f0fdf4;
	color: #166534;
}

.ps-contact-card .wpcf7 form.failed .wpcf7-response-output,
.ps-contact-card .wpcf7 form.aborted .wpcf7-response-output,
.ps-contact-card .wpcf7 form.invalid .wpcf7-response-output {
	border: 1px solid #fecaca;
	background: #fef2f2;
	color: #991b1b;
}

.ps-contact-card .wpcf7 .ajax-loader {
	margin-inline-start: 8px;
}

.ps-contact-info h3 {
	margin: 0;
	color: #0a1428;
	font-family: var(--ps-font-serif, ui-serif, Georgia, Cambria, "Times New Roman", Times, serif);
	font-weight: 400;
	font-size: 1.25rem;
	text-align: start;
}

.ps-contact-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-top: 16px;
	text-align: start;
}

.ps-contact-row svg {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: #c5a059;
	margin-top: 2px;
}

.ps-contact-row p,
.ps-contact-row .ps-contact-hours {
	margin: 0;
	color: #475569;
	font-size: 14px;
	line-height: 1.7;
	white-space: pre-line;
}

.ps-contact-hours-label {
	font-size: 12px;
	font-weight: 500;
	color: #64748b;
	margin-bottom: 4px;
}

.ps-contact-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
}

.ps-contact-actions a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border-radius: 999px;
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	color: #0a1428;
	border: 1px solid #e2e8f0;
	transition: border-color 0.2s, background 0.2s;
}

.ps-contact-actions a.ps-maps {
	background: #c5a059;
	border-color: #c5a059;
}

.ps-contact-actions a:hover {
	border-color: #c5a059;
}

.ps-contact-side {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ps-contact-map {
	overflow: hidden;
	border-radius: 24px;
	border: 1px solid #e2e8f0;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.05);
	background: #fff;
}

.ps-contact-map iframe {
	display: block;
	width: 100%;
	height: 288px;
	border: 0;
}

.ps-phone {
	direction: ltr;
	unicode-bidi: isolate;
	display: inline-block;
}

/* Footer */
.ps-footer {
	background: #0a1428;
	color: #fff;
	padding: 64px 24px 0;
}

.ps-footer-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: 40px;
	padding-bottom: 48px;
}

@media (max-width: 1024px) {
	.ps-footer-inner {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.ps-footer-inner {
		grid-template-columns: 1fr;
	}
}

.ps-footer-logo {
	display: block;
	width: 124px;
	height: 64px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid rgba(197, 160, 89, 0.3);
	margin-bottom: 16px;
}

.ps-footer-logo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ps-footer-blurb {
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 14px;
	line-height: 1.7;
	max-width: 20rem;
}

.ps-footer h4 {
	margin: 0 0 16px;
	color: #c5a059;
	font-family: var(--ps-font-serif, ui-serif, Georgia, Cambria, "Times New Roman", Times, serif);
	font-weight: 400;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.ps-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ps-footer li + li {
	margin-top: 10px;
}

.ps-footer a {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	font-size: 14px;
	transition: color 0.2s;
}

.ps-footer a:hover {
	color: #fff;
}

.ps-footer-contact p {
	margin: 0 0 10px;
	color: rgba(255, 255, 255, 0.6);
	font-size: 14px;
	line-height: 1.6;
}

.ps-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 0 28px;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	justify-content: space-between;
	align-items: center;
	color: rgba(255, 255, 255, 0.45);
	font-size: 13px;
}

.ps-footer-bottom nav {
	display: flex;
	gap: 16px;
}

.ps-footer-bottom a {
	color: rgba(255, 255, 255, 0.45);
	font-size: 13px;
}
