/* Site-wide touches that block styles can't express. */

.nom-nav-cta > a.wp-block-navigation-item__content {
	border: 1px solid currentColor;
	padding: 0.55em 1em;
	border-radius: 2px;
	text-decoration: none;
}
.nom-nav-cta > a.wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--contrast);
}
.wp-block-navigation-item__content { text-decoration: none; }
.wp-block-navigation-item__content:hover { text-decoration: underline; text-underline-offset: 0.3em; }

/* Mobile overlay menu: large, left-aligned links with hairlines; no boxes. */
.wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem 1.5rem 2rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3.5rem;
	align-items: stretch !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	width: 100%;
	gap: 0 !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid rgba(236, 231, 223, 0.12);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .nom-nav-cta > a.wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 1.1rem 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: none !important;
	color: var(--wp--preset--color--contrast) !important;
	font-family: var(--wp--preset--font-family--playfair);
	font-size: 1.75rem;
	line-height: 1.2;
	text-align: left;
	outline: none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.3em;
}
.wp-block-navigation__responsive-container.is-menu-open .nom-nav-cta { margin-top: 0; }
.wp-block-navigation__responsive-container.is-menu-open .nom-nav-cta > a.wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent-1) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .nom-nav-cta > a.wp-block-navigation-item__content::after {
	content: " \2192";
}
.wp-block-navigation__responsive-container-close:focus:not(:focus-visible),
.wp-block-navigation__responsive-container-open:focus:not(:focus-visible) { outline: none; }
.wp-block-navigation__responsive-container-close svg,
.wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }

/* Full-width sections sit flush against each other and the header/footer. */
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }
.wp-block-post-content > .alignfull:first-child { margin-block-start: 0; }

.nom-hero .wp-block-cover__image-background { filter: saturate(0.9); }

.wp-block-button.is-style-outline > .wp-block-button__link { border-width: 1px; }

@media (max-width: 600px) {
	.nom-hero { min-height: 78vh !important; }
	.wp-block-buttons > .wp-block-button { width: 100%; }
	.wp-block-buttons > .wp-block-button > .wp-block-button__link { width: 100%; box-sizing: border-box; text-align: center; }
}

:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 2px; }

/* Example saved search + alert ([nom_alert_preview]). */
.nom-preview { position: relative; max-width: 420px; margin-left: auto; font-size: 0.95rem; }
.nom-preview__search, .nom-preview__alert {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
	border-radius: 4px;
	background: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent);
	backdrop-filter: blur(6px);
}
.nom-preview__search { padding: 1.25rem 1.4rem 1.6rem; }
.nom-preview__head { display: flex; justify-content: space-between; align-items: center; font-weight: 600; margin-bottom: 0.75rem; }
.nom-preview__status { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 400; font-size: 0.82rem; color: var(--wp--preset--color--accent-2); }
.nom-preview__status i { width: 7px; height: 7px; border-radius: 50%; background: #8fbf9a; box-shadow: 0 0 0 4px rgba(143, 191, 154, 0.15); }
.nom-preview dl { margin: 0; }
.nom-preview dl > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent); }
.nom-preview dt { color: var(--wp--preset--color--accent-4); }
.nom-preview dd { margin: 0; text-align: right; }
.nom-preview__alert {
	/* Overlaps only the search card's bottom padding, never its rows. */
	position: relative; margin: -1rem 2.5rem 0 -2.5rem;
	padding: 1rem 1.25rem; background: var(--wp--preset--color--accent-5);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
	border-left: 2px solid var(--wp--preset--color--accent-1);
}
.nom-preview__alert p { margin: 0; }
.nom-preview__eyebrow { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); margin-bottom: 0.35rem !important; }
.nom-preview__title { font-family: var(--wp--preset--font-family--playfair, Georgia, serif); font-size: 1.2rem; }
.nom-preview__meta { color: var(--wp--preset--color--accent-2); font-size: 0.88rem; margin-top: 0.2rem !important; }
.nom-preview__note { color: var(--wp--preset--color--accent-4); font-size: 0.78rem; margin-top: 0.5rem !important; }
@media (max-width: 781px) {
	.nom-preview { margin: 2rem 0 0; max-width: none; }
	.nom-preview__alert { margin: -1rem 0.75rem 0; }
}

/* Property model illustration ([nom_model_graphic]). */
.nom-model { margin: 0; background: #17191b; color: #ece7df; border-radius: 6px; overflow: hidden; box-shadow: 0 24px 60px rgba(15, 17, 18, 0.28); font-size: 0.95rem; }
.nom-model__bar { display: flex; justify-content: space-between; padding: 0.8rem 1.25rem; border-bottom: 1px solid rgba(236, 231, 223, 0.1); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #948f87; }
.nom-model__bar span:first-child { color: #d9cfbd; }
.nom-model__body { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; }
.nom-model__map { padding: 1.25rem; }
.nom-model__map img { display: block; width: 100%; height: auto; }
.nom-model__panel { padding: 1.25rem 1.5rem; border-left: 1px solid rgba(236, 231, 223, 0.1); align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.nom-model__label { margin: 0 0 0.6rem; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #948f87; }
.nom-model ul { list-style: none; margin: 0; padding: 0; }
.nom-model li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0; border-top: 1px solid rgba(236, 231, 223, 0.08); }
.nom-model li span { color: #948f87; }
.nom-model li strong { font-weight: 500; text-align: right; }
.nom-model__result { margin: 1rem 0 0; display: flex; align-items: center; gap: 0.6rem; color: #d9cfbd; font-size: 0.9rem; }
.nom-model__result i { flex: 0 0 auto; width: 0.75rem; height: 0.75rem; background: #d9cfbd; border-radius: 2px; }
.nom-model figcaption { padding: 0.8rem 1.25rem; border-top: 1px solid rgba(236, 231, 223, 0.1); font-size: 0.8rem; color: #948f87; }
@media (max-width: 781px) {
	.nom-model__body { grid-template-columns: 1fr; }
	.nom-model__panel { border-left: 0; border-top: 1px solid rgba(236, 231, 223, 0.1); }
}

/* Light ("shell") sections: keep links and buttons legible on the light background. */
.nom-light a:not(.wp-element-button) { color: #2c3a40; }
.nom-light .wp-element-button { background: #17191b; color: #ece7df; }
.nom-light .wp-element-button:hover { background: #2c3a40; color: #ece7df; }
.nom-model__map--photo { padding: 0; background: #dcdcdc; align-self: stretch; display: flex; align-items: center; }
.nom-model__checks li { justify-content: flex-start; gap: 0.7rem; }
.nom-model__checks li::before {
	content: ''; flex: 0 0 auto; width: 1rem; height: 1rem; margin-top: 0.2rem; border-radius: 50%;
	background: #d9cfbd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%2317191b' stroke-width='2'/%3E%3C/svg%3E") center / 80% no-repeat;
}
/* Last item: open-ended "any other criteria", marked with a plus. */
.nom-model__checks li.nom-model__any { color: #d9cfbd; font-style: italic; }
.nom-model__checks li.nom-model__any::before {
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4v8M4 8h8' fill='none' stroke='%23d9cfbd' stroke-width='1.8'/%3E%3C/svg%3E") center / 80% no-repeat;
	box-shadow: inset 0 0 0 1px #d9cfbd;
}

/* Parcel-level detail image. */
.nom-parcel { margin: 0; border-radius: 6px; overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35); background: #f2f2f2; }
.nom-parcel img { display: block; width: 100%; height: auto; }
.nom-parcel figcaption { padding: 0.75rem 1.1rem; background: #17191b; color: #948f87; font-size: 0.8rem; }

/* Check-mark list (Homeowners "Discretion is the default"). */
.nom-checklist { list-style: none; padding-left: 0; margin: 0; }
.nom-checklist li {
	position: relative;
	padding: 0.9rem 0 0.9rem 2rem;
	border-bottom: 1px solid rgba(236, 231, 223, 0.12);
	margin: 0;
}
.nom-checklist li:first-child { padding-top: 0; }
.nom-checklist li:first-child::before { top: 0.1rem; }
.nom-checklist li::before {
	content: "";
	position: absolute; left: 0; top: 1rem;
	width: 0.9rem; height: 0.9rem;
	background: var(--wp--preset--color--accent-1);
	clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

/* Scroll animations (classes are added by reveal.js, so nothing hides without it). */
@keyframes nom-intro {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: none; }
}
.nom-intro {
	animation: nom-intro 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	animation-delay: var(--nom-delay, 0ms);
}
.nom-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition:
		opacity 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--nom-delay, 0ms),
		transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--nom-delay, 0ms);
}
.nom-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.nom-intro { animation: none; }
	.nom-reveal { opacity: 1; transform: none; transition: none; }
}

/* Tablet widths: the full menu wraps, so use the overlay menu up to 1100px. */
@media (min-width: 600px) and (max-width: 1099px) {
	.wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.wp-block-navigation__responsive-container-close:not(.always-shown) { display: flex !important; }
}

/* Model checklist animation (classes added by reveal.js): spinner, then check. */
@keyframes nom-spin { to { transform: rotate(360deg); } }
@keyframes nom-pop { 0% { transform: scale(0.4); opacity: 0; } 70% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(1); } }
.nom-model__checks.is-animating li { transition: color 0.3s ease; }
.nom-model__checks.is-animating li:not(.is-done) { color: rgba(236, 231, 223, 0.45); }
.nom-model__checks.is-animating li:not(.is-done)::before {
	box-sizing: border-box;
	background: none;
	box-shadow: none;
	border: 2px solid rgba(217, 207, 189, 0.22);
	border-top-color: #d9cfbd;
	animation: nom-spin 0.7s linear infinite;
}
.nom-model__checks.is-animating li.is-done::before { animation: nom-pop 0.35s ease-out; }
.nom-model__panel.is-animating .nom-model__result { opacity: 0; transform: translateY(6px); transition: opacity 0.5s ease, transform 0.5s ease; }
.nom-model__panel.is-animating.is-complete .nom-model__result { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.nom-model__checks.is-animating li:not(.is-done)::before { animation: none; }
}
