/**
 * LandFlip-inspired design system for Land Sellers Network.
 * Covers FSE theme, Elementor homepage, Estatik listings, and buyer/seller dashboards.
 */

:root {
	/* Dashboard-matched palette: light pages, forest-green chrome, gold accent. */
	--ls-swatch-grey: #1a301f;
	--ls-swatch-grey-dark: #14261a;
	--ls-swatch-grey-light: #243d2e;
	--ls-swatch-green-dark: #f5f7f4;
	--ls-swatch-green-surface: #ffffff;
	--ls-swatch-green-deep: #e8ece6;

	/* Header, footer, profile chrome. */
	--ls-chrome-bg: var(--ls-swatch-grey);
	--ls-chrome-bg-deep: var(--ls-swatch-grey-dark);
	--ls-chrome-surface: var(--ls-swatch-grey-light);
	--ls-chrome-sidebar: #ffffff;
	--ls-chrome-text: #ffffff;
	--ls-chrome-text-muted: rgba(255, 255, 255, 0.78);
	--ls-chrome-border: rgba(255, 255, 255, 0.14);
	--ls-chrome-accent: #c9a84c;
	--ls-chrome-accent-soft: #e0c36a;

	/* Brand accents. */
	--ls-brand-primary: var(--ls-swatch-grey);
	--ls-brand-primary-dark: var(--ls-swatch-grey-dark);
	--ls-brand-secondary: var(--ls-swatch-grey-light);
	--ls-brand-text: #1a301f;
	--ls-brand-text-muted: #5a6b60;
	--ls-brand-bg: var(--ls-swatch-green-dark);
	--ls-brand-surface: var(--ls-swatch-green-surface);
	--ls-brand-border: rgba(26, 48, 31, 0.12);
	--ls-brand-radius: 4px;
	--ls-brand-radius-lg: 8px;
	--ls-brand-shadow: 0 1px 4px rgba(26, 48, 31, 0.12);
	--ls-brand-font: "Source Sans 3", "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ls-brand-font-serif: "Lora", Georgia, "Times New Roman", serif;
	--ls-link-on-dark: #e0c36a;
	--ls-link-on-dark-hover: #f0d878;

	/* Sync WP theme.json presets when child theme is active. */
	--wp--preset--color--base: var(--ls-brand-bg);
	--wp--preset--color--primary: var(--ls-brand-primary);
	--wp--preset--color--secondary: var(--ls-brand-secondary);
	--wp--preset--color--contrast: var(--ls-brand-text);
	--wp--preset--color--header-background: var(--ls-chrome-bg);
	--wp--preset--color--header-foreground: var(--ls-chrome-text);
}

/* --- Global typography --- */
body,
.wp-site-blocks,
.content-font,
.es-wrap,
.es-profile,
.es-auth,
.es-search,
.es-listings-filter {
	font-family: var(--ls-brand-font);
	color: var(--ls-brand-text);
	background-color: var(--ls-brand-bg);
}

html {
	background-color: var(--ls-brand-bg);
}

/* Site header chrome — forest green like dashboard topbar */
.ls-site-header-chrome,
header.has-header-background-background-color,
.has-header-background-background-color {
	background-color: var(--ls-chrome-bg) !important;
	color: var(--ls-chrome-text) !important;
}

.heading-font,
h1, h2, h3, h4, h5, h6,
.es-title,
.es-subtitle,
.es-profile-heading {
	font-family: var(--ls-brand-font);
	color: var(--ls-brand-text);
}

/* Keep global gold links off chrome surfaces — footer/header set their own colors */
a {
	color: var(--ls-chrome-accent, #c9a84c);
}

a:hover,
a:focus {
	color: var(--ls-link-on-dark-hover, #e0c36a);
}

.ls-site-footer a,
.ls-site-header-chrome a,
.ls-dash-topbar a {
	color: inherit;
}

/* --- Elementor (homepage & kit) --- */
.elementor-button,
.elementor-button:visited {
	background-color: var(--ls-brand-primary) !important;
	border-color: var(--ls-brand-primary) !important;
	color: #fff !important;
	border-radius: var(--ls-brand-radius);
	font-family: var(--ls-brand-font);
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0.01em;
}

.elementor-button:hover,
.elementor-button:focus {
	background-color: var(--ls-brand-primary-dark) !important;
	border-color: var(--ls-brand-primary-dark) !important;
	color: #fff !important;
}

.elementor-widget-heading .elementor-heading-title {
	font-family: var(--ls-brand-font);
	color: var(--ls-brand-text);
}

/* --- Estatik buttons --- */
.es-btn.es-btn--primary:not(.es-btn--bordered),
.es-btn--primary[type="submit"],
button.es-btn--primary,
a.es-btn--primary {
	background-color: var(--ls-brand-primary) !important;
	border-color: var(--ls-brand-primary) !important;
	color: #fff !important;
	border-radius: var(--ls-brand-radius);
	font-weight: 600;
}

.es-btn.es-btn--primary:hover:not([disabled]),
.es-btn.es-btn--primary:focus:not([disabled]),
button.es-btn--primary:hover,
a.es-btn--primary:hover {
	background-color: var(--ls-brand-primary-dark) !important;
	border-color: var(--ls-brand-primary-dark) !important;
}

.es-btn.es-btn--primary.es-btn--bordered {
	color: var(--ls-brand-primary) !important;
	border-color: var(--ls-brand-primary) !important;
	background: transparent !important;
}

.es-btn.es-btn--primary.es-btn--bordered:hover {
	background-color: var(--ls-brand-primary) !important;
	color: #fff !important;
}

.es-btn.es-btn--secondary:not(.es-btn--bordered),
.es-btn--secondary[type="submit"]:not(.es-btn--bordered),
button.es-btn--secondary:not(.es-btn--bordered),
a.es-btn--secondary:not(.es-btn--bordered) {
	background-color: var(--ls-brand-secondary) !important;
	border-color: var(--ls-brand-secondary) !important;
	color: #fff !important;
	border-radius: var(--ls-brand-radius);
}

.es-btn.es-btn--secondary.es-btn--bordered,
a.es-btn--secondary.es-btn--bordered,
button.es-btn--secondary.es-btn--bordered {
	background-color: transparent !important;
	border-color: var(--ls-chrome-accent, #c9a84c) !important;
	color: var(--ls-chrome-accent, #c9a84c) !important;
	border-radius: var(--ls-brand-radius);
}

.es-btn.es-btn--secondary.es-btn--bordered:hover,
a.es-btn--secondary.es-btn--bordered:hover,
button.es-btn--secondary.es-btn--bordered:hover {
	background-color: var(--ls-chrome-accent, #c9a84c) !important;
	border-color: var(--ls-chrome-accent, #c9a84c) !important;
	color: #1a1a1a !important;
}

.es-btn.es-btn--default {
	border-radius: var(--ls-brand-radius);
	border-color: var(--ls-brand-border);
}

.es-primary-bg {
	background-color: var(--ls-brand-primary) !important;
}

.es-secondary-bg,
.es-bg-secondary {
	background-color: var(--ls-brand-secondary) !important;
}

.es-secondary-color,
a.es-secondary-color {
	color: var(--ls-chrome-accent, #c9a84c) !important;
}

/* --- Listing cards (browse, search, profile) --- */
.es-listing,
.es-listing--grid,
.es-listings-wrap .es-listing {
	background: var(--ls-brand-bg);
	border: 1px solid var(--ls-brand-border);
	border-radius: var(--ls-brand-radius-lg);
	box-shadow: var(--ls-brand-shadow);
	overflow: hidden;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.es-listing:hover {
	border-color: #c5d4c0;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.es-listing__price,
.es-price {
	color: var(--ls-brand-text);
	font-weight: 700;
}

.es-listing__address,
.es-listing__meta {
	color: var(--ls-brand-text-muted);
}

.es-listings-filter {
	background: var(--ls-brand-surface);
	border: 1px solid var(--ls-brand-border);
	border-radius: var(--ls-brand-radius-lg);
	padding: 1rem 1.25rem;
}

.es-listings-filter .es-title {
	color: var(--ls-brand-text);
	font-weight: 700;
}

/* --- Profile dashboard (buyer + seller) — light shell like Account Type --- */
.es-wrap .es-profile {
	background: var(--ls-brand-surface, #fff);
	border: 1px solid var(--ls-brand-border, rgba(26, 48, 31, 0.1));
	border-radius: 0;
	box-shadow: var(--ls-brand-shadow);
	overflow: hidden;
	color: var(--ls-brand-text);
}

.es-profile__nav-bar {
	background: #fff;
	border-bottom: 1px solid rgba(26, 48, 31, 0.1);
	padding: 0.75rem 1rem;
	color: var(--ls-brand-text);
}

.es-profile__sidebar {
	background: #fafbfa;
	border-right: 1px solid rgba(26, 48, 31, 0.1);
	color: var(--ls-brand-text);
}

.es-profile__sidebar::before,
.es-profile__nav-bar::before {
	content: "";
	display: block;
	height: 3px;
	background: linear-gradient(90deg, var(--ls-chrome-accent) 0%, var(--ls-chrome-accent-soft) 100%);
}

.es-profile__sidebar__user,
.es-profile__nav-bar__user {
	color: var(--ls-brand-text);
}

.es-user__name,
.es-user__name a {
	color: var(--ls-brand-text, #1a301f) !important;
	font-family: var(--ls-brand-font-serif);
	font-weight: 700;
	text-decoration: none;
}

.es-profile__menu {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
}

.es-profile__menu li a {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1.25rem;
	color: var(--ls-brand-text-muted);
	text-decoration: none;
	font-weight: 600;
	font-family: var(--ls-brand-font-serif);
	border-left: 3px solid transparent;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.es-profile__menu li.active a,
.es-profile__menu li.active-counter a {
	color: var(--ls-brand-text);
	background: rgba(26, 48, 31, 0.06);
	border-left-color: var(--ls-chrome-accent);
}

.es-profile__menu li a:hover {
	color: var(--ls-brand-text);
	background: rgba(26, 48, 31, 0.04);
}

.es-profile__menu .es-counter {
	background-color: var(--ls-brand-primary) !important;
	border-radius: 999px;
	font-size: 0.75rem;
	min-width: 1.35rem;
	text-align: center;
}

.es-profile__main {
	background: var(--ls-brand-bg, #f5f7f4);
	padding: 1.5rem 1.75rem;
	color: var(--ls-brand-text);
}

.es-profile__content h2.heading-font,
.es-profile__content .es-title-with-button h2 {
	font-family: var(--ls-brand-font-serif);
	color: var(--ls-brand-text);
	font-weight: 600;
}

.es-profile__content .es-subtitle,
.es-profile-heading {
	margin-bottom: 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 3px solid var(--ls-chrome-accent);
	color: var(--ls-brand-text);
	font-family: var(--ls-brand-font-serif);
}

.es-profile__content,
.es-profile__content p,
.es-profile__content .es-subtitle {
	color: var(--ls-brand-text-muted);
}

.es-profile__content a:not(.es-btn) {
	color: #1a301f;
}

.es-profile__content a:not(.es-btn):hover {
	color: var(--ls-chrome-accent);
}

.ls-profile-browse-listings .es-properties {
	margin-top: 1rem;
}

/* Profile page title above dashboard */
.page-id-173 .entry-content > h1,
.page-id-173 .wp-block-post-title {
	font-family: var(--ls-brand-font-serif);
	color: var(--ls-brand-text);
	text-align: center;
}

.page-id-173 .entry-content,
.page-id-173 main .wp-block-group {
	background: var(--ls-brand-bg, #f5f7f4);
}

/* --- Property management inside profile (light) --- */
.es-profile__content .es-property-management,
.es-profile__content .es-property-management--form,
.es-profile__content .es-property-management--list {
	background: transparent;
	color: var(--ls-brand-text);
}

.es-profile__content .es-property-management .es-sort-wrap,
.es-profile__content .es-property-management .es-search-form {
	color: var(--ls-brand-text);
}

.es-profile__content .es-table-wrap {
	border: 1px solid var(--ls-brand-border);
	border-radius: var(--ls-brand-radius-lg);
	overflow: hidden;
	background: #fff;
}

.es-profile__content .es-table thead th {
	background: #f0f3f0;
	color: var(--ls-brand-text);
	border-bottom: 1px solid var(--ls-brand-border);
}

.es-profile__content .es-table tbody td {
	color: var(--ls-brand-text-muted);
	border-color: var(--ls-brand-border);
}

.es-profile__content .es-table tbody tr:hover td {
	background: rgba(26, 48, 31, 0.03);
}

/* --- Property management (standalone PM page) --- */
.es-property-management--form,
.es-property-management {
	background: var(--ls-brand-bg);
}

.es-property-management--form .es-tabs__nav li .es-tabs__numeric,
.es-property-management--form .es-tabs__nav li.active .es-tabs__numeric,
.es-property-management--form .es-tabs__nav li:hover .es-tabs__numeric {
	background-color: var(--ls-brand-secondary) !important;
}

.es-property-management--form .es-tabs__nav li.active {
	border-bottom-color: var(--ls-brand-primary);
}

.es-table-wrap {
	border: 1px solid var(--ls-brand-border);
	border-radius: var(--ls-brand-radius-lg);
	overflow: hidden;
}

.es-table thead th {
	background: var(--ls-brand-surface);
	color: var(--ls-brand-text);
	font-weight: 700;
	border-bottom: 1px solid var(--ls-brand-border);
}

.es-table tbody tr:hover td {
	background: rgba(255, 255, 255, 0.04);
}

/* --- Auth (sign-up, login, agent registration) --- */
.es-auth {
	background: var(--ls-brand-bg);
	border: 1px solid var(--ls-brand-border);
	border-radius: var(--ls-brand-radius-lg);
	box-shadow: var(--ls-brand-shadow);
	padding: 2rem;
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
}

.es-auth .es-title {
	color: var(--ls-brand-text);
	font-weight: 700;
}

.es-auth a:not(.es-btn) {
	color: var(--ls-chrome-accent, #c9a84c);
}

.es-field .es-field__label {
	color: var(--ls-brand-text);
	font-weight: 600;
}

.es-field input[type="text"],
.es-field input[type="email"],
.es-field input[type="password"],
.es-field input[type="tel"],
.es-field input[type="number"],
.es-field select,
.es-field textarea,
.es-field .select2-container .select2-selection {
	border-color: var(--ls-brand-border);
	border-radius: var(--ls-brand-radius);
}

.es-field input:focus,
.es-field select:focus,
.es-field textarea:focus {
	border-color: var(--ls-brand-primary);
	outline: none;
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.12);
}

.es-field.es-field--checkbox input:checked,
.es-field.es-field--radio input:checked {
	background-color: var(--ls-brand-primary);
	border-color: var(--ls-brand-primary);
}

/* --- Pagination --- */
.es-pagination ul li a.page-numbers:hover,
.es-pagination ul li span.current {
	border-color: var(--ls-brand-primary);
	color: var(--ls-brand-primary);
}

/* --- Header login links (text on dark chrome) --- */
.ls-custom-header-login .wp-block-navigation-item__content,
.ls-custom-header-login__btn,
.ls-custom-header-login__link {
	background: transparent !important;
	border-radius: 0;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0.01em;
}

/* --- Site header — unified dark chrome (matches footer) --- */
.ls-site-header-chrome,
header .has-header-background-background-color.alignfull {
	background: linear-gradient(180deg, var(--ls-chrome-bg) 0%, var(--ls-chrome-bg-deep) 100%) !important;
	color: var(--ls-chrome-text) !important;
	border-bottom: 1px solid var(--ls-chrome-border);
}

.ls-site-header-chrome .wp-block-site-title a,
.ls-site-header-chrome .wp-block-site-tagline,
header .has-header-background-background-color .wp-block-site-title a,
header .has-header-background-background-color .wp-block-site-tagline {
	color: var(--ls-chrome-text) !important;
}

.ls-site-header-chrome .wp-block-site-title a {
	font-weight: 700;
	letter-spacing: 0.01em;
}

.ls-site-header-chrome .wp-block-navigation .wp-block-navigation-item__content,
header .has-header-background-background-color .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--ls-chrome-text) !important;
	font-family: var(--ls-brand-font);
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0.02em;
}

.ls-site-header-chrome .wp-block-navigation .wp-block-navigation-item__content:hover,
.ls-site-header-chrome .wp-block-navigation .wp-block-navigation-item__content:focus,
header .has-header-background-background-color .wp-block-navigation .wp-block-navigation-item__content:hover {
	color: var(--ls-chrome-accent-soft) !important;
}

.ls-site-header-chrome > .wp-block-group.is-content-justification-space-between,
header .has-header-background-background-color > .wp-block-group.is-content-justification-space-between {
	align-items: center;
	flex-wrap: nowrap;
	gap: 1rem;
}

.ls-site-header-chrome .wp-block-navigation,
header .has-header-background-background-color .wp-block-navigation {
	flex-wrap: nowrap !important;
}

/* --- Site header / footer subtle polish --- */
.wp-site-blocks .wp-block-site-title a {
	color: var(--ls-brand-text);
}

.wp-block-navigation .wp-block-navigation-item__content {
	font-family: var(--ls-brand-font);
}
.ls-listings-view-toggle {
	border-color: var(--ls-brand-border);
	border-radius: var(--ls-brand-radius);
}

.ls-listings-view-toggle__btn.is-active {
	background: var(--ls-brand-primary);
	color: #fff;
}

.ls-listings-view--grid .es-table tbody tr {
	border-color: var(--ls-brand-border);
	border-radius: var(--ls-brand-radius-lg);
}

.ls-listings-view--grid .es-table tbody td.es-column--price {
	color: var(--ls-brand-primary);
}

/* --- How It Works pattern --- */
.ls-how-it-works {
	--ls-how-primary: var(--ls-brand-primary);
	--ls-how-secondary: var(--ls-brand-secondary);
}

/* --- Site header / footer subtle polish --- */
.wp-site-blocks .wp-block-site-title a {
	color: var(--ls-brand-text);
}

/* --- Listings grid/list toggle --- */
.es-locations-grid .es-location-item > a {
	display: block;
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.es-locations-grid .es-location-item img {
	z-index: 0;
}

.es-locations-grid .es-location-item__inner {
	z-index: 1;
}

.es-locations-grid .es-location-item__inner::before {
	z-index: 0;
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0) 30%,
		rgba(0, 0, 0, 0.45) 65%,
		rgba(0, 0, 0, 0.78) 100%
	);
}

.es-locations-grid .es-location-item__content {
	position: relative;
	z-index: 2;
}

.es-locations-grid .es-location-item h3.heading-font,
.es-locations-grid .es-location-item p {
	color: #fff !important;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
}

.es-locations-grid .es-location-item__inner,
.es-locations-grid .es-location-item__inner a {
	color: #fff !important;
}

.es-locations-grid--slider .slick-slide > div,
.es-locations-grid--slider .slick-slide .es-location-item {
	height: 100%;
}

/* --- White surfaces → dark green (#1D2412) --- */
body,
.wp-site-blocks,
main,
.elementor-page,
.es-wrap {
	background-color: var(--ls-brand-bg);
	color: var(--ls-brand-text);
}

.es-listing,
.es-properties__list,
.es-properties__search,
.es-listings-filter,
.es-search--main .es-search-nav.es-search-nav--dropdowns > li,
.es-search--simple .es-search-nav.es-search-nav--dropdowns > li,
.es-auth,
.es-table tbody tr,
.es-field input[type="text"],
.es-field input[type="email"],
.es-field input[type="password"],
.es-field input[type="number"],
.es-field select,
.es-field textarea {
	background-color: var(--ls-brand-surface);
	color: var(--ls-brand-text);
	border-color: var(--ls-brand-border);
}

/* Half-map price controls stay on dark chrome (native + Select2). */
.es-properties.ls-landflip-split .ls-search__price,
.es-properties.ls-landflip-split .ls-search__price .es-field,
.es-properties.ls-landflip-split .ls-search__price select,
.es-properties.ls-landflip-split .ls-search__price .select2-container .select2-selection {
	background-color: transparent;
	color: rgba(255, 255, 255, 0.92);
	border-color: transparent;
}

.es-listing__title,
.es-listing__title a,
.es-listing__price,
.es-title,
.es-listings-filter,
.es-search-nav > li > a {
	color: var(--ls-brand-text);
}

.es-table tbody tr:hover td {
	background: rgba(255, 255, 255, 0.04);
}

@media (max-width: 781px) {
	.es-profile__main {
		padding: 1rem;
	}

	.es-profile__menu li a {
		padding: 0.75rem 1rem;
	}

	.es-auth {
		padding: 1.25rem;
		border-radius: 0;
		border-left: 0;
		border-right: 0;
	}
}
