/**
 * Optimus Engine 1.4 — layout styles (loaded on the front end after front.css).
 *
 *  1. Property archive (optimus/property-archive): grid/list wrapper and the half-map split view
 *  2. Testimonials (optimus/testimonials): carousel, grid, masonry, ratings
 *  3. Agent social links (brand colors)
 *  4. Footer legal links + credit (optimus/copyright) in every footer preset
 *  5. Color scheme toggle + dark mode fixes for hard-coded light surfaces
 */

/* =========================================================================
   1. Property archive
   ========================================================================= */

.optimus-property-archive__wide {
	max-inline-size: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
	padding-inline: var(--wp--style--root--padding-right, 1.25rem) var(--wp--style--root--padding-left, 1.25rem);
}

.optimus-property-archive__wide > .optimus-archive-map:first-child,
.optimus-property-archive__wide > .optimus-archive-results:first-child {
	margin-block-start: var(--optimus-gap);
}

/* ---- Half map ------------------------------------------------------------ */

.optimus-split {
	--optimus-split-top: var(--optimus-admin-bar, 0px);
	--optimus-split-map: 50%;
	--optimus-split-columns: 2;
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "results";
	margin-block-start: 0;
	border-block-start: 1px solid var(--optimus-c-border);
}

body.optimus-header--sticky .optimus-split {
	--optimus-split-top: calc(var(--optimus-admin-bar, 0px) + var(--optimus-header-height, 0px));
}

.optimus-split__results {
	grid-area: results;
	display: grid;
	align-content: start;
	gap: 1rem;
	min-inline-size: 0;
	padding: 1.25rem var(--wp--style--root--padding-right, 1.25rem) 2rem var(--wp--style--root--padding-left, 1.25rem);
}

.optimus-split__toolbar {
	position: sticky;
	inset-block-start: var(--optimus-split-top);
	z-index: 5;
	margin-inline: -.5rem;
	padding: .5rem;
	border-radius: var(--optimus-radius);
	background: color-mix(in srgb, var(--optimus-c-base) 92%, transparent);
	backdrop-filter: blur(6px);
}

.optimus-split__grid {
	--optimus-columns: var(--optimus-split-columns);
	transition: opacity .2s;
}

.optimus-split.is-loading .optimus-split__grid {
	opacity: .45;
	pointer-events: none;
}

.optimus-split.is-loading .optimus-toolbar__count::after {
	content: "";
	display: inline-block;
	inline-size: .9em;
	block-size: .9em;
	margin-inline-start: .5em;
	border: 2px solid currentColor;
	border-inline-end-color: transparent;
	border-radius: 50%;
	vertical-align: -.1em;
	animation: optimus-split-spin .7s linear infinite;
}

@keyframes optimus-split-spin {
	to {
		transform: rotate(360deg);
	}
}

.optimus-split__grid .optimus-card.is-highlighted {
	outline: 3px solid var(--optimus-c-accent);
	outline-offset: 2px;
}

.optimus-split__empty[hidden] {
	display: none;
}

.optimus-split__pagination:empty {
	display: none;
}

.optimus-split__map {
	grid-area: map;
	position: relative;
	min-inline-size: 0;
}

.optimus-split__map-inner {
	position: relative;
	block-size: 100%;
}

.optimus-split__canvas.optimus-map {
	block-size: 100%;
	min-block-size: 20rem;
	border-radius: 0;
}

.optimus-split__controls {
	position: absolute;
	inset-block-start: .75rem;
	inset-inline: 0;
	z-index: 1001;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	pointer-events: none;
}

.optimus-split__controls[hidden],
.optimus-split__redo[hidden],
.optimus-split__toggle[hidden] {
	display: none;
}

.optimus-split__controls > * {
	pointer-events: auto;
}

.optimus-split__move {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .45rem .85rem;
	border-radius: 999px;
	background: var(--optimus-c-base);
	color: var(--optimus-c-text);
	font-size: .875rem;
	font-weight: 600;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
	cursor: pointer;
}

.optimus-split__move input {
	inline-size: 1.05rem;
	block-size: 1.05rem;
	margin: 0;
	accent-color: var(--optimus-c-primary);
}

.optimus-split__redo {
	box-shadow: 0 2px 10px rgba(0, 0, 0, .2);
}

.optimus-split__toggle {
	position: fixed;
	inset-block-end: max(1rem, env(safe-area-inset-bottom));
	inset-inline-start: 50%;
	z-index: 160;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .7rem 1.25rem;
	border: 0;
	border-radius: 999px;
	background: var(--optimus-c-text, #0f172a);
	color: var(--optimus-c-base, #fff);
	font: inherit;
	font-weight: 700;
	box-shadow: 0 6px 22px rgba(0, 0, 0, .3);
	transform: translateX(-50%);
	cursor: pointer;
}

.optimus-split__toggle > span {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.optimus-split__toggle-list,
.optimus-split.is-map-open .optimus-split__toggle-map {
	display: none !important;
}

.optimus-split.is-map-open .optimus-split__toggle-list {
	display: inline-flex !important;
}

.optimus-split-popup .optimus-map-popup__title {
	display: block;
}

/* Mobile / tablet: list first; the map opens full screen from the floating toggle. */
@media (max-width: 900px) {
	.optimus-split__map {
		display: none;
	}

	.optimus-split.is-map-open .optimus-split__map {
		position: fixed;
		inset: var(--optimus-admin-bar, 0px) 0 0 0;
		z-index: 150;
		display: block;
		background: var(--optimus-c-base);
	}

	.optimus-split__toolbar {
		position: static;
		margin-inline: 0;
		padding: 0;
		background: none;
		backdrop-filter: none;
	}

	html.optimus-split-lock,
	html.optimus-split-lock body {
		overflow: hidden;
	}

	.optimus-split__results {
		padding-block-end: 5rem;
	}
}

/* Desktop: results column + sticky full-height map. */
@media (min-width: 901px) {
	.optimus-split {
		grid-template-columns: minmax(0, 1fr) var(--optimus-split-map);
		grid-template-areas: "results map";
	}

	.optimus-split--map-left {
		grid-template-columns: var(--optimus-split-map) minmax(0, 1fr);
		grid-template-areas: "map results";
	}

	.optimus-split__map-inner {
		position: sticky;
		inset-block-start: var(--optimus-split-top);
		block-size: calc(100vh - var(--optimus-split-top));
		block-size: calc(100dvh - var(--optimus-split-top));
	}

	.optimus-split--map-right .optimus-split__map {
		border-inline-start: 1px solid var(--optimus-c-border);
	}

	.optimus-split--map-left .optimus-split__map {
		border-inline-end: 1px solid var(--optimus-c-border);
	}

	/* Columns follow the option but never squeeze cards below ~15rem. */
	.optimus-split .optimus-split__grid.optimus-grid--grid {
		grid-template-columns: repeat(auto-fill, minmax(max(15rem, calc((100% - (var(--optimus-split-columns) - 1) * var(--optimus-gap)) / var(--optimus-split-columns))), 1fr));
	}
}

@media (min-width: 600px) and (max-width: 900px) {
	.optimus-split .optimus-split__grid.optimus-grid--grid {
		grid-template-columns: repeat(min(2, var(--optimus-split-columns)), minmax(0, 1fr));
	}
}

/* Split view is edge to edge: no footer gap below the sticky map. */
main:has(> .optimus-split:last-child) {
	padding-block-end: 0 !important;
}

/* =========================================================================
   2. Testimonials (optimus/testimonials)
   ========================================================================= */

.optimus-testimonials-block {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.optimus-testimonials-block__head {
	display: grid;
	gap: .5rem;
	max-inline-size: 44rem;
	margin-inline: auto;
	text-align: center;
}

.optimus-testimonials-block__title {
	margin: 0;
}

.optimus-testimonials-block__intro {
	margin: 0;
	color: var(--optimus-c-muted);
}

.optimus-testimonial-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	block-size: 100%;
	margin: 0;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border: 1px solid var(--optimus-c-border);
	border-radius: var(--optimus-radius);
	background: var(--optimus-c-base);
	color: var(--optimus-c-text);
	box-shadow: var(--optimus-card-shadow);
}

.optimus-testimonial-card::before {
	content: "\201C";
	position: absolute;
	inset-block-start: .25rem;
	inset-inline-end: 1rem;
	color: color-mix(in srgb, var(--optimus-c-primary) 18%, transparent);
	font-family: Georgia, serif;
	font-size: 5rem;
	line-height: 1;
	pointer-events: none;
}

.optimus-stars {
	display: inline-flex;
	gap: .125rem;
	color: color-mix(in srgb, var(--optimus-c-muted) 45%, transparent);
}

.optimus-stars__star {
	display: inline-flex;
}

.optimus-stars__star.is-filled {
	color: #f5a623;
}

.optimus-stars__star.is-filled svg,
.optimus-stars__star.is-filled svg * {
	fill: currentColor;
}

.optimus-testimonial-card__quote {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1.0625rem;
	line-height: 1.6;
}

.optimus-testimonial-card__quote p {
	margin: 0;
}

.optimus-testimonial-card__author {
	display: flex;
	align-items: center;
	gap: .75rem;
}

.optimus-testimonial-card__photo,
.optimus-testimonial-card__avatar {
	flex: none;
	inline-size: 3rem;
	block-size: 3rem;
	border-radius: 50%;
	object-fit: cover;
}

.optimus-testimonial-card__avatar {
	display: grid;
	place-items: center;
	background: var(--optimus-c-primary);
	color: #fff;
	font-weight: 700;
	font-size: 1.125rem;
}

.optimus-testimonial-card__who {
	display: grid;
	gap: .125rem;
	min-inline-size: 0;
}

.optimus-testimonial-card__name {
	font-style: normal;
	font-weight: 700;
}

.optimus-testimonial-card__meta {
	color: var(--optimus-c-muted);
	font-size: .875rem;
}

.optimus-testimonial-card__meta a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Grid & masonry */
.optimus-tm-list {
	--optimus-tm-columns: 3;
	margin: 0;
	padding: 0;
	list-style: none;
}

.optimus-tm-list--grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--optimus-gap);
}

.optimus-tm-list--masonry {
	columns: 1;
	column-gap: var(--optimus-gap);
}

.optimus-tm-list--masonry .optimus-tm-list__item {
	margin-block-end: var(--optimus-gap);
	break-inside: avoid;
}

@media (min-width: 700px) {
	.optimus-tm-list--grid {
		grid-template-columns: repeat(min(2, var(--optimus-tm-columns)), minmax(0, 1fr));
	}

	.optimus-tm-list--masonry {
		columns: min(2, var(--optimus-tm-columns));
	}
}

@media (min-width: 1024px) {
	.optimus-tm-list--grid {
		grid-template-columns: repeat(var(--optimus-tm-columns), minmax(0, 1fr));
	}

	.optimus-tm-list--masonry {
		columns: var(--optimus-tm-columns);
	}
}

/* Carousel */
.optimus-tm-carousel {
	display: grid;
	gap: 1.25rem;
}

.optimus-tm-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 100%;
	gap: var(--optimus-gap);
	margin: 0;
	padding: .25rem .25rem 1rem;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	list-style: none;
}

.optimus-tm-carousel__track::-webkit-scrollbar {
	display: none;
}

.optimus-tm-carousel__track:focus-visible {
	outline: 2px solid var(--optimus-c-primary);
	outline-offset: 2px;
	border-radius: var(--optimus-radius);
}

.optimus-tm-carousel__slide {
	scroll-snap-align: start;
	min-inline-size: 0;
}

@media (min-width: 700px) {
	.optimus-tm-carousel__track {
		grid-auto-columns: calc((100% - var(--optimus-gap)) / 2);
	}
}

@media (min-width: 1024px) {
	.optimus-tm-carousel__track {
		grid-auto-columns: calc((100% - 2 * var(--optimus-gap)) / 3);
	}
}

.optimus-tm-carousel.is-static .optimus-tm-carousel__track {
	justify-content: center;
}

.optimus-tm-carousel__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
}

.optimus-tm-carousel__controls[hidden],
.optimus-tm-carousel__pause[hidden] {
	display: none;
}

.optimus-tm-carousel__btn {
	display: inline-grid;
	place-items: center;
	inline-size: 2.75rem;
	block-size: 2.75rem;
	padding: 0;
	border: 1px solid var(--optimus-c-border);
	border-radius: 50%;
	background: var(--optimus-c-base);
	color: var(--optimus-c-text);
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}

.optimus-tm-carousel__btn:hover,
.optimus-tm-carousel__btn:focus-visible {
	border-color: var(--optimus-c-primary);
	background: var(--optimus-c-primary);
	color: #fff;
}

.optimus-tm-carousel__icon-play,
.optimus-tm-carousel__pause.is-paused .optimus-tm-carousel__icon-pause {
	display: none;
}

.optimus-tm-carousel__pause.is-paused .optimus-tm-carousel__icon-play {
	display: inline-flex;
}

.optimus-tm-carousel__dots {
	display: flex;
	gap: .25rem;
}

.optimus-tm-carousel__dot {
	position: relative;
	inline-size: 1.5rem;
	block-size: 1.5rem;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.optimus-tm-carousel__dot::after {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	inline-size: .625rem;
	block-size: .625rem;
	border-radius: 999px;
	background: var(--optimus-c-border);
	transform: translate(-50%, -50%);
	transition: inline-size .2s, background-color .2s;
}

.optimus-tm-carousel__dot.is-active::after {
	inline-size: 1.25rem;
	background: var(--optimus-c-primary);
}

.optimus-tm-carousel__dot:focus-visible {
	outline: 2px solid var(--optimus-c-primary);
	border-radius: 999px;
}

/* About page part + homepage pattern band */
.optimus-about .optimus-testimonials-block,
.optimus-section--testimonials .optimus-testimonials-block {
	max-inline-size: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
}

/* =========================================================================
   3. Agent social links (cards + profile): brand colors on hover
   ========================================================================= */

.optimus-social a {
	--optimus-brand: var(--optimus-c-primary);
	transition: background-color .15s, color .15s, transform .15s;
}

.optimus-social a:hover,
.optimus-social a:focus-visible {
	background: var(--optimus-brand) !important;
	color: #fff !important;
	transform: translateY(-1px);
}

.optimus-social a[data-network="whatsapp"] { --optimus-brand: #25d366; }
.optimus-social a[data-network="telegram"] { --optimus-brand: #229ed9; }
.optimus-social a[data-network="instagram"] { --optimus-brand: #e1306c; }
.optimus-social a[data-network="facebook"] { --optimus-brand: #1877f2; }
.optimus-social a[data-network="linkedin"] { --optimus-brand: #0a66c2; }
.optimus-social a[data-network="x"] { --optimus-brand: #000; }
.optimus-social a[data-network="youtube"] { --optimus-brand: #ff0000; }
.optimus-social a[data-network="tiktok"] { --optimus-brand: #010101; }
.optimus-social a[data-network="threads"] { --optimus-brand: #000; }
.optimus-social a[data-network="snapchat"] { --optimus-brand: #fffc00; }
.optimus-social a[data-network="pinterest"] { --optimus-brand: #e60023; }

.optimus-social a[data-network="snapchat"]:hover,
.optimus-social a[data-network="snapchat"]:focus-visible {
	color: #000 !important;
}

.optimus-agent-card__social {
	justify-content: center;
	flex-wrap: wrap;
}

.optimus-agent-card--list .optimus-agent-card__social {
	justify-content: flex-start;
}

.optimus-btn--telegram {
	--_fg: #229ed9;
}

.optimus-btn--whatsapp:hover {
	--_bg: #25d366;
	--_bd: #25d366;
	--_fg: #fff;
}

.optimus-btn--telegram:hover {
	--_bg: #229ed9;
	--_bd: #229ed9;
	--_fg: #fff;
}

/* =========================================================================
   4. Footer: legal links + "Created by Realtyna.com" (optimus/copyright)
   ========================================================================= */

.optimus-copyright {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .25rem .5rem;
	line-height: 1.6;
}

.optimus-copyright__links,
.optimus-copyright__credit {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .25rem .75rem;
}

/* Footer credit style (Optimus Engine Core → Footer credit): alignment, size, separator, logo. */
.optimus-copyright__credit { align-items: center; gap: .25rem .4rem; }
.optimus-copyright__credit.is-align-left,
.optimus-copyright__credit.is-align-center { flex-basis: 100%; }
.optimus-copyright__credit.is-align-center { justify-content: center; text-align: center; }
.optimus-copyright__credit.is-align-right { margin-inline-start: auto; justify-content: flex-end; }
.optimus-copyright__credit.is-size-small { font-size: .85em; }
.optimus-copyright__sep { opacity: .6; margin-inline-end: .1rem; }
.optimus-copyright__logo { display: inline-block; width: auto; height: 1.15em; max-height: 22px; vertical-align: middle; }
.optimus-copyright__logolink { display: inline-flex; line-height: 0; }
.optimus-copyright__credit.has-own-sep::before,
.optimus-copyright__credit.is-align-left::before,
.optimus-copyright__credit.is-align-center::before { display: none; }
/* Right/own-line credit: let the copyright line take the free width of the footer bar. */
.optimus-copyright:has(> .optimus-copyright__credit:is(.is-align-right, .is-align-center, .is-align-left)) { flex: 1 1 auto; }
@media (max-width: 781px) {
	.optimus-copyright__credit { display: block; white-space: normal; text-align: center; margin-inline-start: 0; }
	.optimus-copyright__credit > * { vertical-align: middle; }
	.optimus-copyright__logolink { display: inline-block; margin-inline-end: .35rem; }
	.optimus-copyright__logo { margin-inline-end: .35rem; }
	.optimus-copyright__logolink .optimus-copyright__logo { margin: 0; }
	.optimus-copyright__sep { display: none; }
}

.optimus-copyright__links a + a,
.optimus-copyright__links a + button,
.optimus-copyright__links button + a {
	margin-inline-start: 0;
}

.optimus-copyright__links a,
.optimus-copyright__links button,
.optimus-copyright__credit a {
	color: var(--optimus-footer-link, inherit);
}

.optimus-copyright .optimus-copyright__links :is(a, button) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.optimus-copyright__links a:hover,
.optimus-copyright__links button:hover,
.optimus-copyright__credit a:hover {
	text-decoration-thickness: 2px;
}

.optimus-copyright__links button:focus-visible,
.optimus-copyright__links a:focus-visible,
.optimus-copyright__credit a:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 2px;
}

/* Centered presets (footer-centered / footer-minimal centered rows) */
.has-text-align-center .optimus-copyright,
.optimus-copyright.has-text-align-center,
.is-content-justification-center .optimus-copyright {
	justify-content: center;
}

@media (max-width: 781px) {
	.optimus-copyright {
		justify-content: center;
		text-align: center;
	}

	.optimus-copyright__links::before,
	.optimus-copyright__credit::before {
		display: none;
	}

	.optimus-copyright__links,
	.optimus-copyright__credit {
		flex-basis: 100%;
		justify-content: center;
	}
}

/* =========================================================================
   5. Color scheme toggle + dark mode
   ========================================================================= */

/* Toggle icon: moon (→ dark) in light mode, sun (→ light) in dark mode; scheme.js keeps `hidden` in sync. */
.optimus-scheme-toggle__light,
html[data-scheme="dark"] .optimus-scheme-toggle__dark {
	display: none;
}

html[data-scheme="dark"] .optimus-scheme-toggle__light,
.optimus-scheme-toggle__dark {
	display: inline-flex;
}

.optimus-scheme-toggle [hidden] {
	display: none !important;
}

@media (prefers-color-scheme: dark) {
	html[data-scheme="system"] .optimus-scheme-toggle__light {
		display: inline-flex;
	}

	html[data-scheme="system"] .optimus-scheme-toggle__dark {
		display: none;
	}
}

/* Leaflet popups follow the palette in both modes (leaflet.css hard-codes white). */
.optimus-leaflet-popup .leaflet-popup-content-wrapper,
.optimus-leaflet-popup .leaflet-popup-tip {
	background: var(--optimus-c-base);
	color: var(--optimus-c-text);
}

.optimus-leaflet-popup a.leaflet-popup-close-button {
	color: var(--optimus-c-muted);
}

/* Smooth palette swap when the visitor toggles (not on first paint). */
html.optimus-scheme-anim,
html.optimus-scheme-anim * {
	transition: background-color .25s, border-color .25s, color .25s !important;
}

@media (prefers-reduced-motion: reduce) {
	html.optimus-scheme-anim,
	html.optimus-scheme-anim * {
		transition: none !important;
	}
}

/* ---- Dark mode (html[data-scheme="dark"], and "system" on a dark OS) ---- */

/* Theme "base" used as a text color means "white on a dark/colored band" (hero, CTA band). */
html[data-scheme="dark"] .has-base-color {
	color: #fff !important;
}

html[data-scheme="dark"] .has-base-border-color {
	border-color: rgba(255, 255, 255, .85) !important;
}

/* White chips over photos keep dark text. */
html[data-scheme="dark"] .optimus-btn--light,
html[data-scheme="dark"] .optimus-fav,
html[data-scheme="dark"] .optimus-gallery--slider .optimus-carousel__btn,
html[data-scheme="dark"] .optimus-footer__band-button .wp-block-button__link {
	--_fg: #1a1f2c;
	color: #1a1f2c;
}

html[data-scheme="dark"] .optimus-fav[aria-pressed="true"],
html[data-scheme="dark"] .optimus-fav:hover {
	color: #dc3545;
}

html[data-scheme="dark"] .optimus-search--hero .optimus-search__advanced {
	background: color-mix(in srgb, var(--optimus-c-base) 94%, transparent);
	color: var(--optimus-c-text);
}

html[data-scheme="dark"] .optimus-listings-cta__field input {
	background: var(--optimus-c-base);
	color: var(--optimus-c-text);
}

html[data-scheme="dark"] .optimus-card:hover {
	box-shadow: 0 14px 36px rgba(0, 0, 0, .45);
}

html[data-scheme="dark"] .optimus-card,
html[data-scheme="dark"] .optimus-agent-card,
html[data-scheme="dark"] .optimus-testimonial-card {
	--optimus-card-shadow: 0 6px 24px rgba(0, 0, 0, .35);
}

/* Maps: dim the (light) tiles; pills, popups and controls follow the palette. */
html[data-scheme="dark"] .leaflet-tile-pane {
	filter: brightness(.72) contrast(1.08) saturate(.85);
}

html[data-scheme="dark"] .leaflet-bar a,
html[data-scheme="dark"] .leaflet-control-attribution {
	background: var(--optimus-c-surface);
	color: var(--optimus-c-text);
	border-color: var(--optimus-c-border);
}

html[data-scheme="dark"] .leaflet-control-attribution a {
	color: var(--optimus-c-primary);
}

html[data-scheme="dark"] .optimus-map-pill,
html[data-scheme="dark"] .optimus-map-cluster {
	box-shadow: 0 2px 8px rgba(0, 0, 0, .6);
}

/* Native form controls, scrollbars, date pickers. */
html[data-scheme="dark"] input,
html[data-scheme="dark"] select,
html[data-scheme="dark"] textarea {
	color-scheme: dark;
}


/* Tables and code. */
html[data-scheme="dark"] :where(.wp-block-table) :where(th, td) {
	border-color: var(--optimus-c-border);
}

html[data-scheme="dark"] :where(pre, code, kbd) {
	background: var(--optimus-c-surface);
	color: var(--optimus-c-text);
}

/* Core blocks that ship light defaults. */
html[data-scheme="dark"] .wp-block-separator {
	border-color: var(--optimus-c-border);
	color: var(--optimus-c-border);
}

html[data-scheme="dark"] .wp-block-pullquote,
html[data-scheme="dark"] .wp-block-quote {
	border-color: var(--optimus-c-border);
}

html[data-scheme="dark"] .optimus-split__move {
	background: var(--optimus-c-surface);
}

@media (prefers-color-scheme: dark) {

	/* Theme "base" used as a text color means "white on a dark/colored band" (hero, CTA band). */
	html[data-scheme="system"] .has-base-color {
		color: #fff !important;
	}

	html[data-scheme="system"] .has-base-border-color {
		border-color: rgba(255, 255, 255, .85) !important;
	}

	/* White chips over photos keep dark text. */
	html[data-scheme="system"] .optimus-btn--light,
	html[data-scheme="system"] .optimus-fav,
	html[data-scheme="system"] .optimus-gallery--slider .optimus-carousel__btn,
	html[data-scheme="system"] .optimus-footer__band-button .wp-block-button__link {
		--_fg: #1a1f2c;
		color: #1a1f2c;
	}

	html[data-scheme="system"] .optimus-fav[aria-pressed="true"],
	html[data-scheme="system"] .optimus-fav:hover {
		color: #dc3545;
	}

	html[data-scheme="system"] .optimus-search--hero .optimus-search__advanced {
		background: color-mix(in srgb, var(--optimus-c-base) 94%, transparent);
		color: var(--optimus-c-text);
	}

	html[data-scheme="system"] .optimus-listings-cta__field input {
		background: var(--optimus-c-base);
		color: var(--optimus-c-text);
	}

	html[data-scheme="system"] .optimus-card:hover {
		box-shadow: 0 14px 36px rgba(0, 0, 0, .45);
	}

	html[data-scheme="system"] .optimus-card,
	html[data-scheme="system"] .optimus-agent-card,
	html[data-scheme="system"] .optimus-testimonial-card {
		--optimus-card-shadow: 0 6px 24px rgba(0, 0, 0, .35);
	}

	/* Maps: dim the (light) tiles; pills, popups and controls follow the palette. */
	html[data-scheme="system"] .leaflet-tile-pane {
		filter: brightness(.72) contrast(1.08) saturate(.85);
	}

	html[data-scheme="system"] .leaflet-bar a,
	html[data-scheme="system"] .leaflet-control-attribution {
		background: var(--optimus-c-surface);
		color: var(--optimus-c-text);
		border-color: var(--optimus-c-border);
	}

	html[data-scheme="system"] .leaflet-control-attribution a {
		color: var(--optimus-c-primary);
	}

	html[data-scheme="system"] .optimus-map-pill,
	html[data-scheme="system"] .optimus-map-cluster {
		box-shadow: 0 2px 8px rgba(0, 0, 0, .6);
	}

	/* Native form controls, scrollbars, date pickers. */
	html[data-scheme="system"] input,
	html[data-scheme="system"] select,
	html[data-scheme="system"] textarea {
		color-scheme: dark;
	}


	/* Tables and code. */
	html[data-scheme="system"] :where(.wp-block-table) :where(th, td) {
		border-color: var(--optimus-c-border);
	}

	html[data-scheme="system"] :where(pre, code, kbd) {
		background: var(--optimus-c-surface);
		color: var(--optimus-c-text);
	}

	/* Core blocks that ship light defaults. */
	html[data-scheme="system"] .wp-block-separator {
		border-color: var(--optimus-c-border);
		color: var(--optimus-c-border);
	}

	html[data-scheme="system"] .wp-block-pullquote,
	html[data-scheme="system"] .wp-block-quote {
		border-color: var(--optimus-c-border);
	}

	html[data-scheme="system"] .optimus-split__move {
		background: var(--optimus-c-surface);
	}
}

/* A testimonials band with no testimonials yet renders nothing (the block outputs no markup on the front end). */
.optimus-section--testimonials:not(:has(.optimus-testimonials-block)):not(:has(.optimus-testimonial)) {
	display: none;
}

.optimus-copyright .optimus-copyright__links :is(a, button):hover {
	text-decoration-thickness: 2px;
}

/* Keep the half-map Map/List toggle above a visible cookie banner. */
html.optimus-consent-visible .optimus-split__toggle {
	inset-block-end: calc(var(--optimus-consent-h, 0px) + 1rem);
}
