/* Stable contact layout: clear the floating header and prevent overflow. */
body.contact-page { overflow-x: clip; }
.contact-page#primary { min-width: 0; overflow: clip; }
.contact-page :where(section, div, form, fieldset, label, aside) { min-width: 0; }
.contact-hero { padding-top: 112px; }
.contact-heading > div:first-child { min-width: 0; }
.contact-heading h1 { overflow-wrap: anywhere; }
.brief-card,
.direct-contact { box-shadow: 0 22px 70px rgba(0, 0, 0, .18); }
.field input,
.field textarea {
	-webkit-appearance: none;
	appearance: none;
	font-family: BrandPlusIranSans, Tahoma, sans-serif;
}
.big-phone { max-width: 100%; }
.contact-page#primary,
.contact-page#primary :where(h1, h2, h3, p, a, label, legend, summary, address, button, input, textarea) {
	font-family: BrandPlusIranSans, Tahoma, sans-serif !important;
}
.contact-page#primary :where(h1, h2, h3) { color: #eef6ff !important; }
.contact-page#primary { color: #eef6ff; background: #050a26; }
.contact-page .bp-footer { margin-top: 55px; }
.contact-page .footer-callout { display: flex; }
.faq-list details { overflow: hidden; }
.faq-list details p { will-change: opacity; }

@media (max-width: 900px) {
	.contact-heading { align-items: start; }
	.contact-workspace { grid-template-columns: 1fr; }
	.contact-aside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; }
	.next-steps { padding-top: 8px; }
	.contact-faq { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); }
}

@media (max-width: 760px) {
	.contact-hero { padding-top: 90px; }
	.contact-hero,
	.contact-workspace,
	.contact-faq { width: 100%; padding-right: 20px; padding-left: 20px; }
	.contact-heading { padding: 24px 0 30px; }
	.contact-heading h1 { font-size: clamp(38px, 12vw, 48px); line-height: 1.5; letter-spacing: -1px; }
	.contact-kicker,
	.hero-side p,
	.form-heading p,
	.service-options legend,
	.choice-grid label > span,
	.field,
	.direct-contact > p,
	.office address,
	.next-steps p,
	.faq-list summary,
	.faq-list details p { font-size: 15px; }
	.section-label,
	.service-options legend > span,
	.optional,
	.phone-caption,
	.office p,
	.form-submit p { font-size: 13px; }
	.contact-aside,
	.contact-faq { grid-template-columns: 1fr; }
	.hero-rule { gap: 14px; }
	.hero-rule > span:last-child { max-width: 45%; text-align: left; }
	.brief-card { padding: 24px 18px; }
	.fields-grid { grid-template-columns: 1fr; gap: 18px; }
	.choice-grid { grid-template-columns: 1fr 1fr; }
	.field input,
	.field textarea { font-size: 16px; }
	.big-phone { font-size: clamp(25px, 8.6vw, 33px); }
	.next-steps { padding-inline: 8px; }
	.contact-faq { gap: 10px; }
	.faq-list summary { line-height: 1.9; }
	.contact-page .bp-footer { margin-top: 25px; }
}

@media (max-width: 430px) {
	.choice-grid { grid-template-columns: 1fr; }
	.contact-heading h1 { font-size: clamp(35px, 10.8vw, 43px); }
	.hero-rule > span:last-child { display: none; }
	.form-heading h2,
	.direct-contact h2 { font-size: 25px; }
}
