/* Shared fallback layouts. Existing custom pages never load this stylesheet. */
.site-content > .ast-container:has(.fc-default-page, .fc-not-found) {
	display: block;
	max-width: none;
	padding-inline: 0;
}

#primary.fc-default-page,
#primary.fc-not-found {
	width: 100%;
	margin: 0;
	padding: 0 0 80px;
	color: #1f2419;
	font-family: var(--font-body, 'proxima-nova', sans-serif);
}

.fc-default-page__content {
	width: min(100% - 40px, 760px);
	margin: 48px auto 0;
	font-size: 18px;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.fc-default-page__content :is(h2, h3, h4, h5, h6) {
	margin-block: 1.5em 0.6em;
	font-family: var(--font-display, 'proxima-sera', Georgia, serif);
	font-weight: 400;
	line-height: 1.2;
}

.fc-default-page__content h2 { font-size: clamp(30px, 4vw, 44px); }
.fc-default-page__content h3 { font-size: clamp(25px, 3vw, 32px); }
.fc-default-page__content :is(img, video, iframe) { max-width: 100%; }
.fc-default-page__content :is(img, video) { height: auto; }
.fc-default-page__content .wp-block-table { overflow-x: auto; }
.fc-default-page__content blockquote { border-inline-start: 3px solid #4a7c3a; padding-inline-start: 24px; }
.fc-default-page__content .page-links { margin-top: 32px; }
.fc-default-page__content .post-password-form input[type="password"] { width: 100%; max-width: 320px; }
.fc-default-page__content a,
.fc-not-found__help a { text-decoration: underline; text-underline-offset: 0.2em; }

#primary.fc-not-found {
	min-height: 60vh;
	padding: 0;
	text-align: left;
}

/*
 * finney-listing-not-found.php reuses this same fc-not-found markup, but
 * nested inside a normal page's content rather than on the #primary element
 * itself (the AppFolio listings pages render through Astra's own page
 * template, not ours) — so it needs the #primary-only rules above repeated
 * here against its own wrapper class.
 */
.fc-not-found--inline {
	min-height: 60vh;
	padding: 0;
	text-align: left;
}

.fc-not-found__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 48px;
	max-width: 1280px;
	min-height: 610px;
	margin: auto;
	padding: 48px;
}

.fc-not-found__copy { order: 2; min-width: 0; }
.fc-not-found__art { order: 1; display: flex; justify-content: center; }

/*
 * Astra's block-content grid (.entry-content[data-ast-blocks-layout]) hijacks
 * .fc-not-found__layout's own grid tracks once this markup renders nested
 * inside it (finney-listing-not-found.php) — art and copy end up auto-placed
 * into separate rows/columns of Astra's grid instead of sitting side by side
 * in ours. Grid isn't needed for a fixed two-item layout anyway, so this
 * context switches to flexbox instead of fighting Astra's grid, scoped and
 * !important since a plain override loses the same specificity fight.
 */
.fc-not-found--inline .fc-not-found__layout {
	display: flex !important;
	flex-wrap: wrap;
}
.fc-not-found--inline .fc-not-found__copy,
.fc-not-found--inline .fc-not-found__art {
	flex: 1 1 320px;
}
.fc-not-found--inline .fc-not-found__copy { order: 2 !important; }
.fc-not-found--inline .fc-not-found__art { order: 1 !important; }
.fc-not-found__art svg { width: 100%; max-width: 460px; height: auto; }
.fc-not-found .fc-page-header { padding: 0; margin: 0 0 30px; text-align: left; }
.fc-not-found .fc-page-header__title.fc-page-header__title { font-size: clamp(43px, 4.6vw, 58px); margin-bottom: 26px; }
.fc-not-found .fc-page-header__eyebrow { margin-bottom: 26px; }
.fc-not-found .fc-page-header__sub { max-width: 460px; margin: 0; font-size: 17px; }

.fc-not-found__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 12px;
}

.fc-not-found .fc-fallback-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 22px;
	border: 1.5px solid #4a7c3a;
	border-radius: 3px;
	background: #4a7c3a;
	color: #fff;
	font-size: 12px;
	line-height: 1.5;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	/* !important: a parent-theme link style otherwise wins the underline on
	   these buttons since this markup can render outside our own #primary
	   wrapper (see finney-listing-not-found.php). */
	text-decoration: none !important;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

/* Light-ground outline, same as .btn-outline on the other templates. */
.fc-not-found .fc-fallback-button--secondary {
	border-color: #d8d4c5;
	background: transparent;
	color: #1f2419;
}

.fc-not-found .fc-fallback-button:active { transform: scale(0.97); }
.fc-not-found__help { margin: 26px 0 0; font-size: 15px; }
.fc-not-found__help a { color: #355829; }

.fc-default-page a:focus-visible,
.fc-default-page input:focus-visible,
.fc-not-found a:focus-visible {
	outline: 2px solid #355829;
	outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
	.fc-not-found .fc-fallback-button:hover { border-color: #355829; background: #355829; color: #fff; }
	.fc-not-found .fc-fallback-button--secondary:hover { border-color: #1f2419; background: #1f2419; color: #fff; }
}

@media (max-width: 600px) {
	#primary.fc-default-page { padding-bottom: 52px; }
	.fc-default-page__content { margin-top: 32px; font-size: 17px; }
	.fc-not-found__actions { flex-direction: column; }
}

@media (max-width: 700px) {
	.fc-not-found__layout { grid-template-columns: 1fr; padding: 36px 24px; gap: 32px; }
	.fc-not-found__copy { order: 1; }
	.fc-not-found__art { order: 2; }
	.fc-not-found--inline .fc-not-found__copy { order: 1 !important; }
	.fc-not-found--inline .fc-not-found__art { order: 2 !important; }
	.fc-not-found__art svg { max-width: 280px; }
	.fc-not-found .fc-page-header__sub { font-size: 16px; }
	.fc-not-found__help { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	.fc-not-found .fc-fallback-button:active { transform: none; }
}
