/*
Theme Name:   Texas Experts Child
Theme URI:    https://www.reeot.com
Description:  Hello Elementor child theme for Real Estate Experts of Texas — Listings & Agents post types, IDX Broker styling, Elementor Pro templates, and one-click setup (Appearance → Texas Experts Setup).
Author:       Kre8ivDesigns Marketing
Author URI:   https://www.kre8ivdesigns.com
Template:     hello-elementor
Version:      1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain:  texas-experts
*/

/* ==========================================================================
   Tokens — mirror the Elementor kit globals (Site Settings → Global Colors).
   Change colors in Elementor first; these only drive the glue CSS below.
   ========================================================================== */
:root {
	--te-pine: #06150E;
	--te-pine-2: #0D2419;
	--te-gold: #C9A24B;
	--te-gold-hover: #B8934A;
	--te-gold-light: #DDBD73;
	--te-gold-deep: #9A7A2F;
	--te-gold-dark: #7A5A1E;
	--te-ivory: #F5F1E4;
	--te-cream: #EFEAD9;
	--te-ink: #14261B;
	--te-sage: #B9C2B2;
	--te-muted: #98A491;
	--te-slate: #4B5A4F;
	--te-stone: #ECE4CD;
	--te-line-dark: rgba(244, 241, 228, 0.12);
	--te-line-light: rgba(20, 38, 27, 0.14);
	--te-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--te-header-h: 83px;
}

body {
	background: var(--te-pine);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
::selection { background: var(--te-gold); color: var(--te-pine); }
a { color: var(--te-gold); transition: color 0.2s var(--te-ease); }
a:hover { color: var(--te-gold-light); }
:focus-visible { outline: 2px solid var(--te-gold); outline-offset: 3px; }
h1, h2, h3, h4, p { text-wrap: pretty; }

/* ==========================================================================
   Eyebrow labels — diamond accent (Heading widget, CSS class: te-eyebrow)
   te-eyebrow--center adds a trailing diamond. te-eyebrow--plain removes it.
   ========================================================================== */
.te-eyebrow .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.te-eyebrow .elementor-heading-title::before,
.te-eyebrow--center .elementor-heading-title::after {
	content: "";
	flex: none;
	width: 6px;
	height: 6px;
	background: currentColor;
	transform: rotate(45deg);
}
.te-eyebrow--plain .elementor-heading-title::before { display: none; }

/* Hero text legibility over photography */
.te-hero .elementor-heading-title,
.te-hero .elementor-widget-text-editor { text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35); }
.te-maxw-65 { max-width: 65%; }
.te-measure { max-width: 62ch; }

/* ==========================================================================
   Header — sticky shrink (Elementor Pro Sticky: Top, Effects Offset 40)
   ========================================================================== */
.te-header { transition: box-shadow 0.3s var(--te-ease); }
.te-header__logo img {
	height: 52px !important;
	width: auto !important;
	max-width: none;
	transition: height 0.3s var(--te-ease);
}
.te-header.elementor-sticky--effects { box-shadow: 0 12px 30px -18px rgba(0, 0, 0, 0.7); }
.te-header.elementor-sticky--effects .te-header__logo img { height: 38px !important; }

.te-nav .elementor-nav-menu--main .sub-menu {
	border-top: 1px solid var(--te-gold);
	min-width: 220px !important;
	box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.6);
}
.te-nav .elementor-nav-menu--main .sub-menu a { letter-spacing: 0.06em; }
.te-nav .elementor-nav-menu--dropdown { border-top: 1px solid var(--te-line-dark); }
.te-nav .elementor-nav-menu--dropdown a { padding-top: 16px !important; padding-bottom: 16px !important; }

/* ==========================================================================
   Buttons (Button widget, CSS classes: te-btn te-btn--gold | --ghost | --link)
   ========================================================================== */
.te-btn .elementor-button { transition: all 0.25s var(--te-ease); }
.te-btn--link .elementor-button {
	padding: 0 0 6px !important;
	background: none !important;
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
}

/* ==========================================================================
   Imagery
   ========================================================================== */
.te-portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.te-wide img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }

/* Broker photo with offset stone backing (Image widget, class: te-frame) */
.te-frame { position: relative; isolation: isolate; }
.te-frame::before {
	content: "";
	position: absolute;
	top: -24px;
	right: -24px;
	bottom: 24px;
	left: 24px;
	background: var(--te-stone);
	z-index: -1;
}
.te-frame img {
	border: 1px solid var(--te-gold-deep);
	box-shadow: 0 24px 48px -20px rgba(20, 38, 27, 0.35);
}

/* ==========================================================================
   Cards — listing card loop item (container class: te-card) + guide tiles
   ========================================================================== */
.te-card,
.te-tile {
	background-color: var(--te-pine-2);
	overflow: hidden;
	transition: transform 0.5s var(--te-ease), box-shadow 0.5s var(--te-ease);
}
.te-card { aspect-ratio: 4 / 5; }
.te-tile { aspect-ratio: 3 / 4; }
.te-card:hover,
.te-tile:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -30px rgba(0, 0, 0, 0.8); }

.te-badge .elementor-heading-title {
	display: inline-block;
	background: var(--te-gold);
	color: var(--te-pine);
	padding: 6px 11px;
}

/* ==========================================================================
   Content bits
   ========================================================================== */
.te-creds ul,
.te-features {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 28px;
}
.te-creds li,
.te-features li {
	position: relative;
	padding-left: 18px;
}
.te-creds li::before,
.te-features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 5px;
	height: 5px;
	background: var(--te-gold-deep);
	transform: rotate(45deg);
}
.te-stat { border-top: 1px solid var(--te-line-light); }
.te-sticky { position: sticky; top: calc(var(--te-header-h) + 32px); }

.te-step-num .elementor-heading-title { font-variant-numeric: lining-nums; }

/* Agents loop — alternate rows (Loop Grid class: te-agent-loop) */
.te-agent-loop .e-loop-item:nth-child(even) .te-agent { background-color: #FBF8EF; }
.te-agent-loop .e-loop-item:nth-child(even) .te-agent__photo { order: 2; }

/* ==========================================================================
   Forms (Elementor Pro Form, class: te-form | te-form--dark)
   ========================================================================== */
.te-form .elementor-field-group .elementor-field {
	padding: 14px 16px;
	border-radius: 0 !important;
	transition: border-color 0.2s var(--te-ease), box-shadow 0.2s var(--te-ease);
}
.te-form .elementor-field:focus {
	border-color: var(--te-gold) !important;
	box-shadow: 0 0 0 1px var(--te-gold);
	outline: 0;
}
.te-form--dark .elementor-field-group .elementor-field {
	background: rgba(244, 241, 228, 0.04) !important;
	border-color: var(--te-line-dark) !important;
	color: var(--te-ivory) !important;
}
.te-form--dark .elementor-field::placeholder { color: var(--te-muted); }
.te-form .elementor-message { font-size: 14px; margin-top: 14px; }

/* Contact tabs (Nested Tabs, class: te-tabs) */
.te-tabs .e-n-tabs-heading { gap: 0 !important; border-bottom: 1px solid var(--te-line-light); }
.te-tabs .e-n-tab-title {
	font-family: "Public Sans", sans-serif;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 13px 22px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--te-slate) !important;
}
.te-tabs .e-n-tab-title[aria-selected="true"] { background: var(--te-ink) !important; color: var(--te-ivory) !important; }
.te-tabs .e-n-tabs-content > .e-con { padding: 28px 0 0 !important; border: 0 !important; }

/* ==========================================================================
   Property search — native form ([te_property_search] fallback)
   ========================================================================== */
.te-search-form {
	display: grid;
	grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto;
	gap: 2px;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 2px;
	background: rgba(6, 21, 14, 0.66);
	border: 1px solid rgba(244, 241, 228, 0.16);
	backdrop-filter: blur(6px);
}
.te-search-form__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 14px 18px;
	background: rgba(13, 36, 25, 0.75);
	text-align: left;
	margin: 0;
}
.te-search-form__field span {
	font-family: "Public Sans", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--te-gold);
}
.te-search-form input,
.te-search-form select {
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	font-family: "Spectral", serif;
	font-size: 17px;
	color: var(--te-ivory);
}
.te-search-form select option { color: var(--te-ink); }
.te-search-form input::placeholder { color: var(--te-muted); }
.te-search-form input:focus,
.te-search-form select:focus { outline: 0; }
.te-search-form__field:focus-within { box-shadow: inset 0 -1px 0 var(--te-gold); }
.te-search-form__submit {
	border: 0;
	border-radius: 0;
	padding: 0 34px;
	background: var(--te-gold);
	color: var(--te-pine);
	font-family: "Public Sans", sans-serif;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.2s var(--te-ease);
}
.te-search-form__submit:hover { background: var(--te-gold-hover); }

/* ==========================================================================
   IDX Broker — IMPress omnibar + wrapper pages (#IDX-main)
   ========================================================================== */
.te-idx-omnibar form,
.te-idx-omnibar .idx-omnibar-form {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	max-width: 1080px;
	margin: 0 auto;
	padding: 2px;
	background: rgba(6, 21, 14, 0.66);
	border: 1px solid rgba(244, 241, 228, 0.16);
}
.te-idx-omnibar input[type="text"],
.te-idx-omnibar .idx-omnibar-input {
	flex: 1 1 320px;
	min-height: 60px;
	padding: 0 20px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: rgba(13, 36, 25, 0.75) !important;
	color: var(--te-ivory) !important;
	font-family: "Spectral", serif !important;
	font-size: 17px !important;
}
.te-idx-omnibar button,
.te-idx-omnibar input[type="submit"] {
	min-height: 60px;
	padding: 0 34px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--te-gold) !important;
	color: var(--te-pine) !important;
	font-family: "Public Sans", sans-serif !important;
	font-weight: 700 !important;
	font-size: 12.5px !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

#IDX-main {
	font-family: "Public Sans", sans-serif;
	color: var(--te-ink);
	background: var(--te-ivory);
	padding: 48px 32px;
}
#IDX-main a { color: var(--te-gold-deep); }
#IDX-main a:hover { color: var(--te-gold-dark); }
#IDX-main h1, #IDX-main h2, #IDX-main h3,
#IDX-main .IDX-field-listingPrice .IDX-text,
#IDX-main .IDX-resultsPrice { font-family: "Spectral", serif; font-weight: 500; color: var(--te-ink); }
#IDX-main .IDX-field-listingPrice .IDX-text { color: var(--te-gold-deep); }
#IDX-main .IDX-btn,
#IDX-main .IDX-btn-default,
#IDX-main .IDX-btn-primary,
#IDX-main button,
#IDX-main input[type="submit"] {
	background: var(--te-gold) !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--te-pine) !important;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
#IDX-main .IDX-btn:hover,
#IDX-main button:hover { background: var(--te-gold-hover) !important; }
#IDX-main input,
#IDX-main select,
#IDX-main textarea { border-radius: 0 !important; border-color: var(--te-line-light) !important; }
#IDX-main .IDX-resultsCell { border-color: var(--te-line-light); }

/* ==========================================================================
   Compliance
   ========================================================================== */
.te-disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 22px 24px;
	border: 1px solid var(--te-line-dark);
}
.te-disclaimer__label {
	flex: none;
	font-family: "Public Sans", sans-serif;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--te-pine);
	background: var(--te-muted);
	padding: 4px 8px;
}
.te-disclaimer p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.7;
	color: var(--te-muted);
}
.te-disclaimer__logo { height: 32px; width: auto; flex: none; }
.te-on-light .te-disclaimer { border-color: var(--te-line-light); }
.te-on-light .te-disclaimer p { color: var(--te-slate); }

.te-footer-links ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.te-footer-links a { color: var(--te-sage); }
.te-footer-links a:hover { color: var(--te-gold); }
.te-legal p { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; }
.te-legal a { color: var(--te-muted); }
.te-legal a:hover { color: var(--te-gold); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.te-maxw-65 { max-width: 85%; }
	.te-search-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.te-search-form__field--wide { grid-column: 1 / -1; }
	.te-search-form__submit { grid-column: 1 / -1; min-height: 56px; }
	.te-agent-loop .e-loop-item:nth-child(even) .te-agent__photo { order: 0; }
}
@media (max-width: 767px) {
	:root { --te-header-h: 70px; }
	.te-maxw-65 { max-width: 100%; }
	.te-header__logo img { height: 42px !important; }
	.te-frame::before { top: -14px; right: -14px; bottom: 14px; left: 14px; }
	.te-creds ul, .te-features { grid-template-columns: 1fr; }
	.te-search-form { grid-template-columns: 1fr; }
	.te-sticky { position: static; }
	.te-disclaimer { flex-direction: column; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* IDX wrapper and Elementor mobile navigation alignment. */
@media (max-width: 1024px) {
  .te-header { position: relative; }
  .te-header .elementor-widget-nav-menu,
  .te-header .elementor-widget-nav-menu > .elementor-widget-container { position: static; }
  .te-header .elementor-nav-menu--dropdown.elementor-nav-menu__container {
    left: 0 !important; right: 0 !important; width: 100% !important;
    max-width: 100vw; top: 100% !important; box-sizing: border-box;
  }
}
