/* Theme overrides to avoid editing vendor files */
.fa-inverse { color: var(--white) !important; }
.fa-border { border-color: var(--page-border-accent) !important; }

/* Breadcrumb / page-crumb styles (themed) */
.page-crumb {
	padding: 40px 0;
	background: linear-gradient(180deg, var(--muted-bg) 0%, transparent 100%);
	color: var(--text-color);
}
.page-crumb .crumb-inner {
	max-width: var(--max-width);
	margin: 0 auto;
	padding: 0 var(--wrapper-margin);
}
.page-crumb .crumb-title {
	font-size: 34px;
	margin-bottom: 6px;
	color: var(--text-color);
}
.page-crumb .crumb-subtitle {
	color: var(--muted-text);
	font-size: 14px;
}

/* Contact form specific styles */
.contact-form {
	display: block;
	max-width: 720px;
	width: 100%;
}
.contact-form .form-row {
	margin-bottom: 14px;
}
.contact-form label {
	display: block;
	margin-bottom: 6px;
	color: var(--text-dark);
	font-weight: 600;
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea,
.contact-form input[type="tel"] {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--border-color);
	background: var(--white);
	color: var(--text-color);
}
.contact-form textarea { min-height: 140px; resize: vertical; }
.contact-form .btn {
	background: var(--brand);
	color: var(--white);
	padding: 10px 18px;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}
.contact-form .alert { margin-bottom: 16px; padding: 10px; border-radius: 4px; }
.alert-success { background: rgba(34,139,34,0.08); color: #116611; border: 1px solid rgba(34,139,34,0.15); }
.alert-danger { background: rgba(220,53,69,0.06); color: #7a1116; border: 1px solid rgba(220,53,69,0.12); }

/* Map container responsive */
.map-embed { max-width: 720px; margin-top: 18px; }
.map-embed iframe { width: 100%; height: 320px; border: 0; }

/* Header offset handling: when header becomes fixed (nav-solid), push down content
   so the breadcrumb or top containers aren't hidden behind the menu. */
:root {
	--header-height: 100px; /* matches #header height in main stylesheet */
}

/* Ensure crumb is visible and not overlapped */
.page-crumb { position: relative; z-index: 2; }

/* When header switches to fixed (.nav-solid) add a top margin to push content below it.
   The sibling selector is used so this only applies when header appears before the crumb. */
#header.nav-solid ~ .page-crumb,
#header.nav-solid + .page-crumb,
header#banner #header.nav-solid ~ .page-crumb {
	margin-top: calc(var(--header-height) + 6px);
	padding-top: 18px; /* reduce extra top inside crumb when margin accounts for header */
}

/* Some legal and review pages render a .container at the top; ensure they clear the header too */
#header.nav-solid ~ .container,
#header.nav-solid + .container {
	padding-top: calc(var(--header-height) + 18px);
}
