/**
 * ia-contact.css — Get in touch page.
 *
 * Mirrors the Claim your listing page (ia-claim.css): the child theme's
 * --aw-* tokens only, no hex. Every rule is scoped to .ia-contact, or
 * body.ia-contact-page for the page frame. The theme's forced button and
 * input styles are overridden with !important inside .ia-contact only.
 */

/* ==========================================================================
   Page frame (GeneratePress)
   ========================================================================== */

body.ia-contact-page #page,
body.ia-contact-page .site.grid-container { max-width: none; padding: 0; }
body.ia-contact-page .site-content { display: block; padding: 0; }
body.ia-contact-page .inside-article { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; border-radius: 0 !important; }
body.ia-contact-page .inside-article:has(.ia-contact) > .entry-header { display: none; }
body.ia-contact-page .entry-content { margin: 0 !important; padding: 0 !important; max-width: none !important; }
/* Anything left above the shortcode (old intro, old form) is hidden; the hero replaces it. */
body.ia-contact-page .entry-content > :has(~ .ia-contact) { display: none !important; }

/* ==========================================================================
   Base
   ========================================================================== */

.ia-contact {
	--ia-contact-shadow: 0 24px 48px color-mix(in srgb, var(--aw-ink) 14%, transparent);
	background: var(--aw-page);
	color: var(--aw-text);
	font-family: var(--aw-font-body);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	padding-bottom: 88px;
}
.ia-contact *,
.ia-contact *::before,
.ia-contact *::after { box-sizing: border-box; }
body .ia-contact :is(p, h1, h2, h3, ul, ol, li, fieldset, legend) { margin: 0; padding: 0; max-width: none; border: 0; }
body .ia-contact p,
body .ia-contact li { color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; }
body .ia-contact :is(ul, ol) { list-style: none; }
body .ia-contact :is(h1, h2, h3) { font-family: var(--aw-font-display) !important; color: var(--aw-text); letter-spacing: -.01em; text-transform: none; }
body .ia-contact a { color: var(--aw-link); text-decoration: none; }
body .ia-contact a:hover { color: var(--aw-text); text-decoration: underline; }
body .ia-contact [hidden] { display: none !important; }
.ia-contact .ia-contact-icon { flex: none; display: inline-block; vertical-align: middle; }
.ia-contact :focus-visible { outline: 3px solid var(--aw-amber) !important; outline-offset: 2px !important; }
.ia-contact [tabindex="-1"]:focus { outline: none !important; }
.ia-contact .ia-contact-wrap { max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: 40px; padding-right: 40px; }
.ia-contact .ia-contact-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ==========================================================================
   Controls: override the child theme's forced styles
   ========================================================================== */

body .ia-contact button {
	font-family: var(--aw-font-body) !important;
	background: transparent !important;
	color: inherit !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: 1.3 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: none !important;
	cursor: pointer;
	width: auto;
	min-height: 0;
}

body .ia-contact .ia-contact-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 22px !important;
	border-radius: 8px !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	text-align: center;
}
body .ia-contact .ia-contact-btn--primary { background: var(--aw-amber) !important; color: var(--aw-ink) !important; }
body .ia-contact .ia-contact-btn--primary:hover { background: var(--aw-amber-line) !important; color: var(--aw-ink) !important; }
body .ia-contact .ia-contact-btn--dark { background: var(--aw-ink) !important; color: var(--aw-on-dark) !important; }
body .ia-contact .ia-contact-btn--dark:hover { background: var(--aw-band-2) !important; color: var(--aw-on-dark) !important; }
body .ia-contact .ia-contact-btn--outline { background: var(--aw-surface) !important; color: var(--aw-text) !important; border: 1px solid var(--aw-border-dashed) !important; }
body .ia-contact .ia-contact-btn--outline:hover { border-color: var(--aw-ink) !important; }
body .ia-contact .ia-contact-btn[aria-busy="true"] { opacity: .7; cursor: progress; }

body .ia-contact .ia-contact-input {
	width: 100%;
	min-height: 46px;
	font-family: var(--aw-font-body) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: var(--aw-text) !important;
	background: var(--aw-surface) !important;
	border: 1px solid var(--aw-border-dashed) !important;
	border-radius: 8px !important;
	padding: 11px 12px !important;
	box-shadow: none !important;
	line-height: 1.4 !important;
}
body .ia-contact .ia-contact-textarea { resize: vertical; min-height: 150px; }
body .ia-contact .ia-contact-input:focus { border-color: var(--aw-ink) !important; outline: 3px solid var(--aw-amber) !important; outline-offset: 1px !important; }
body .ia-contact .ia-contact-input[aria-invalid="true"] { border: 2px solid var(--aw-warn) !important; }
body .ia-contact .ia-contact-input::placeholder { color: var(--aw-muted); opacity: .8; }
/* Theme and form-plugin styles often stretch every input to 100% wide; pin the
   tick boxes and radios to their natural size so they can't squeeze the labels. */
body .ia-contact input[type="checkbox"],
body .ia-contact input[type="radio"] {
	-webkit-appearance: auto !important;
	appearance: auto !important;
	display: inline-block !important;
	position: static !important;
	width: 18px !important;
	min-width: 18px !important;
	max-width: 18px !important;
	height: 18px !important;
	min-height: 18px !important;
	flex: 0 0 18px !important;
	margin: 2px 0 0 !important;
	padding: 0 !important;
	border: 0;
	box-shadow: none !important;
	opacity: 1 !important;
	accent-color: var(--aw-ink);
}

/* ==========================================================================
   Hero
   ========================================================================== */

.ia-contact .ia-contact-hero { background: var(--aw-ink); color: var(--aw-on-dark); }
.ia-contact .ia-contact-hero > .ia-contact-wrap { padding-top: 28px; padding-bottom: 128px; }
.ia-contact .ia-contact-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--aw-on-dark-muted); }
.ia-contact .ia-contact-crumbs li + li::before { content: "/"; margin-right: 8px; }
body .ia-contact .ia-contact-crumbs a { color: var(--aw-on-dark-muted); }
body .ia-contact .ia-contact-crumbs a:hover { color: var(--aw-on-dark); }
.ia-contact .ia-contact-crumbs [aria-current] { color: var(--aw-on-dark); }
.ia-contact .ia-contact-hero__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 56px; align-items: end; margin-top: 36px; }
.ia-contact .ia-contact-hero__text { display: flex; flex-direction: column; gap: 18px; }
.ia-contact .ia-contact-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--aw-amber); }
.ia-contact .ia-contact-eyebrow__rule { width: 24px; height: 2px; background: var(--aw-amber); }
body .ia-contact h1.ia-contact-hero__title { color: var(--aw-on-dark); font-size: 50px !important; line-height: 1.06; letter-spacing: -.03em; font-weight: 800; }
.ia-contact .ia-contact-hero__lede { font-size: 19px; line-height: 1.6; color: var(--aw-on-dark-2); max-width: 640px; }
.ia-contact .ia-contact-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ia-contact .ia-contact-stats li { border: 1px solid var(--aw-ink-line); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 2px; }
.ia-contact .ia-contact-stats strong { font-family: var(--aw-font-display); font-weight: 800; font-size: 26px; line-height: 1.2; color: var(--aw-on-dark); }
.ia-contact .ia-contact-stats span { font-size: 13px; line-height: 1.4; color: var(--aw-on-dark-muted); }

/* ==========================================================================
   Main row
   ========================================================================== */

.ia-contact .ia-contact-main { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; margin-top: -92px; position: relative; }
.ia-contact .ia-contact-card { background: var(--aw-surface); border-radius: 18px; box-shadow: var(--ia-contact-shadow); overflow: hidden; }

.ia-contact .ia-contact-form { padding: 32px 36px; display: flex; flex-direction: column; gap: 24px; }
.ia-contact .ia-contact-head { display: flex; flex-direction: column; gap: 6px; }
body .ia-contact .ia-contact-h2 { font-size: 28px !important; line-height: 1.15; font-weight: 800; letter-spacing: -.02em; }
.ia-contact .ia-contact-sub { font-size: 16px; color: var(--aw-muted); }
.ia-contact .ia-contact-alert { background: var(--aw-warn-tint); color: var(--aw-warn-ink); border: 1px solid var(--aw-warn); border-radius: 10px; padding: 12px 16px !important; font-size: 15px; }

.ia-contact .ia-contact-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; align-items: start; }
.ia-contact .ia-contact-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ia-contact .ia-contact-field--wide { grid-column: 1 / -1; }
.ia-contact .ia-contact-field > label,
body .ia-contact .ia-contact-fieldset > legend { font-size: 14px; font-weight: 600; color: var(--aw-text); line-height: 1.4; }
body .ia-contact .ia-contact-fieldset > legend { margin-bottom: 10px; float: left; width: 100%; }
.ia-contact .ia-contact-fieldset > legend + * { clear: both; }
.ia-contact .ia-contact-fieldset { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ia-contact .ia-contact-req { color: var(--aw-warn); }
.ia-contact .ia-contact-opt-tag { font-weight: 400; color: var(--aw-muted); font-size: 13px; }
.ia-contact .ia-contact-hint { font-size: 13px; color: var(--aw-muted); }
.ia-contact .ia-contact-hint.is-near { color: var(--aw-warn); }
.ia-contact .ia-contact-error { font-size: 13px; color: var(--aw-warn); font-weight: 500; }

/* Topic cards: the native radio stays in the card and works by keyboard
   (Tab into the group, arrow keys to choose, Tab out). */
.ia-contact .ia-contact-opts { display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .ia-contact .ia-contact-opt { position: relative; display: flex !important; flex-direction: row !important; width: auto; margin: 0 !important; gap: 10px; align-items: flex-start; min-height: 76px; padding: 14px; border: 1px solid var(--aw-border-dashed); border-radius: 10px; background: var(--aw-surface); cursor: pointer; }
.ia-contact .ia-contact-opt:hover { border-color: var(--aw-ink); }
.ia-contact .ia-contact-opt:has(input:checked) { border: 2px solid var(--aw-ink); padding: 13px; background: var(--aw-amber-tint); }
.ia-contact .ia-contact-opt:has(input:focus-visible) { outline: 3px solid var(--aw-amber); outline-offset: 2px; }
.ia-contact .ia-contact-opt:has(input[aria-invalid="true"]) { border-color: var(--aw-warn); }
.ia-contact .ia-contact-opt__text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; text-align: left; word-break: normal; overflow-wrap: break-word; }
.ia-contact .ia-contact-opt__title { font-weight: 600; font-size: 15px; line-height: 1.3; }
.ia-contact .ia-contact-opt__sub { font-size: 13px; color: var(--aw-muted); line-height: 1.35; }

.ia-contact .ia-contact-tip:empty,
.ia-contact .ia-contact-tip:not(:has(.ia-contact-tip__item:not([hidden]))) { display: none; }
.ia-contact .ia-contact-tip { margin-top: -8px; }
.ia-contact .ia-contact-tip__item { display: flex; gap: 10px; align-items: flex-start; background: var(--aw-amber-tint); border: 1px solid var(--aw-amber-line); color: var(--aw-amber-ink); border-radius: 10px; padding: 12px 16px !important; font-size: 14px; }
.ia-contact .ia-contact-tip__item .ia-contact-icon { color: var(--aw-amber-text); margin-top: 1px; }
body .ia-contact .ia-contact-tip__item a { color: inherit; font-weight: 600; text-decoration: underline; }

.ia-contact .ia-contact-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--aw-text-2); }
.ia-contact .ia-contact-consent label { cursor: pointer; }
.ia-contact .ia-contact-consent + .ia-contact-error { margin-top: -16px !important; padding-left: 28px !important; }

.ia-contact .ia-contact-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--aw-border); padding-top: 22px; }
.ia-contact .ia-contact-nav__note { font-size: 14px; color: var(--aw-muted); }

/* Sent state */
.ia-contact .ia-contact-sent { padding: 44px 40px; display: flex; flex-direction: column; gap: 22px; }
.ia-contact .ia-contact-sent__tick { width: 56px; height: 56px; border-radius: 50%; background: var(--aw-green-tint); color: var(--aw-green); display: flex; align-items: center; justify-content: center; }
.ia-contact .ia-contact-sent__head { display: flex; flex-direction: column; gap: 8px; }
.ia-contact .ia-contact-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* Sidebar */
.ia-contact .ia-contact-side { display: flex; flex-direction: column; gap: 18px; }
.ia-contact .ia-contact-box { background: var(--aw-surface); border-radius: 18px; box-shadow: 0 24px 48px color-mix(in srgb, var(--aw-ink) 10%, transparent); padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.ia-contact .ia-contact-box--dark { background: var(--aw-ink); color: var(--aw-on-dark); }
.ia-contact .ia-contact-box__eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--aw-muted); }
.ia-contact .ia-contact-box__eyebrow--amber { color: var(--aw-amber); }
.ia-contact .ia-contact-next { display: flex; flex-direction: column; gap: 16px; font-size: 14px; color: var(--aw-on-dark-2); }
.ia-contact .ia-contact-next li { display: flex; gap: 12px; align-items: flex-start; }
.ia-contact .ia-contact-next li > span { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--aw-ink-btn-line); display: flex; align-items: center; justify-content: center; flex: none; font-size: 13px; font-weight: 600; color: var(--aw-on-dark); }
.ia-contact .ia-contact-next li:first-child > span { background: var(--aw-amber); border-color: var(--aw-amber); color: var(--aw-ink); }
.ia-contact .ia-contact-next div { display: flex; flex-direction: column; gap: 2px; }
.ia-contact .ia-contact-next strong { color: var(--aw-on-dark); font-size: 15px; }
.ia-contact .ia-contact-routes { display: flex; flex-direction: column; gap: 10px; }
body .ia-contact .ia-contact-routes a { display: flex; flex-direction: column; gap: 2px; padding: 12px 40px 12px 14px; border: 1px solid var(--aw-border); border-radius: 10px; color: var(--aw-text); position: relative; }
body .ia-contact .ia-contact-routes a::after { content: "→"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--aw-muted); }
body .ia-contact .ia-contact-routes a:hover { border-color: var(--aw-ink); text-decoration: none; }
.ia-contact .ia-contact-routes strong { font-size: 15px; }
.ia-contact .ia-contact-routes span { font-size: 13px; color: var(--aw-muted); }
.ia-contact .ia-contact-side__link { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--aw-muted); padding: 0 6px; }
body .ia-contact .ia-contact-side__link a { font-weight: 600; overflow-wrap: anywhere; }

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 979px) {
	.ia-contact .ia-contact-hero__grid,
	.ia-contact .ia-contact-main { grid-template-columns: minmax(0, 1fr); }
	.ia-contact .ia-contact-hero__grid { gap: 28px; }
	.ia-contact .ia-contact-opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
	.ia-contact .ia-contact-wrap { padding-left: 16px; padding-right: 16px; }
	.ia-contact .ia-contact-hero > .ia-contact-wrap { padding-bottom: 116px; }
	body .ia-contact h1.ia-contact-hero__title { font-size: 34px !important; }
	.ia-contact .ia-contact-hero__lede { font-size: 17px; }
	.ia-contact .ia-contact-stats { gap: 8px; }
	.ia-contact .ia-contact-stats li { padding: 12px 10px; }
	.ia-contact .ia-contact-stats strong { font-size: 20px; }
	.ia-contact .ia-contact-stats span { font-size: 12px; }
	.ia-contact .ia-contact-form { padding: 22px 16px 24px; }
	.ia-contact .ia-contact-grid2 { grid-template-columns: minmax(0, 1fr); }
	body .ia-contact .ia-contact-h2 { font-size: 24px !important; }
	.ia-contact .ia-contact-sent { padding: 28px 18px; }
	.ia-contact .ia-contact-nav .ia-contact-btn { width: 100%; }
	.ia-contact .ia-contact-box { padding: 20px 18px; }
}
@media (max-width: 479px) {
	.ia-contact .ia-contact-opts { grid-template-columns: minmax(0, 1fr); }
	.ia-contact .ia-contact-opt { min-height: 0; }
}
