@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('../lib/inter/inter-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('../lib/inter/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ------------------------------------------------------------------
   Brand tokens on top of Tabler (Bootstrap 5). Tabler derives buttons,
   links, badges and focus rings from --tblr-primary.
------------------------------------------------------------------- */
:root {
  /* LG palette: navy + blue brand, yellow calls to action. Shared by the public site, sign-in pages and workspace. */
  --lg-navy: #0b2240;
  --lg-navy-2: #12325c;
  --lg-blue: #1d5ab9;
  --lg-blue-dark: #164a99;
  --lg-blue-soft: #e8f0fb;
  --lg-yellow: #ffc20e;
  --lg-yellow-dark: #e6ab00;
  --lg-ink: #1c2633;
  --lg-muted: #5b6878;
  --lg-line: #d8dee6;
  --lg-surface: #f2f4f7;
  --lg-radius: 4px;

  --brand: var(--lg-blue);
  --brand-dark: var(--lg-blue-dark);
  --brand-soft: var(--lg-blue-soft);
  --tblr-primary: #1d5ab9;
  --tblr-primary-rgb: 29, 90, 185;
  --tblr-primary-fg: #fff;
  --tblr-link-color: #1d5ab9;
  --tblr-link-color-rgb: 29, 90, 185;
  --tblr-link-hover-color: #164a99;
  /* Tabler ships these as literals derived from its own primary, so they must be re-declared or they stay off-brand. */
  --tblr-primary-darken: #164a99;
  --tblr-primary-lt: rgba(29, 90, 185, .1);
  --tblr-primary-lt-rgb: 232, 240, 251;
  --tblr-primary-bg-subtle: #d2def1;
  --tblr-primary-border-subtle: #a5bde3;
  --tblr-primary-text-emphasis: #0c244a;
  --tblr-font-sans-serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --gold: #b08d2c;
}

body { font-feature-settings: "cv03", "cv04", "cv11"; }

/* Brand mark */
.app-brand { display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; letter-spacing: -.01em; color: inherit; }
.app-brand-mark {
  display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: .5rem;
  background: var(--brand); color: #fff; font-size: 1.15rem;
}

/* ---------------- App shell (workspace + back office) ---------------- */
/* Light shell that matches the sign-in pages: white surfaces, blue accents, pale blue-grey canvas. */
body.app { background: linear-gradient(180deg, #f4f6f9 0%, #eef1f5 100%) fixed; }
.app-sidebar { background: #fff !important; border-right: 1px solid #e3e8ef; }
.app-sidebar .navbar-brand, .app-sidebar .navbar-brand:hover { color: var(--tblr-body-color); }
.app-sidebar .navbar-nav .nav-link { border-radius: .5rem; margin: 1px .5rem; color: #344154; font-weight: 500; }
.app-sidebar .navbar-nav .nav-link-icon { color: #66758a; }
.app-sidebar .navbar-nav .nav-link:hover { background: #f4f6f9; color: var(--brand); }
.app-sidebar .navbar-nav .nav-item.active > .nav-link { background: var(--brand-soft); box-shadow: inset 3px 0 0 var(--brand); color: var(--brand-dark); font-weight: 600; }
.app-sidebar .navbar-nav .nav-item.active > .nav-link .nav-link-icon,
.app-sidebar .navbar-nav .nav-link:hover .nav-link-icon { color: var(--brand); }
.app-nav-heading {
  padding: 1rem 1.25rem .35rem; font-size: .68rem; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; color: #7b8798;
}
/* Collapsible sidebar sections: closed by default, the current page's section opens. */
.app-nav-group { width: 100%; }
.app-nav-toggle {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  border: 0; background: none; text-align: left; cursor: pointer;
}
.app-nav-toggle:hover, .app-nav-toggle:focus-visible { color: var(--brand); }
.app-nav-chevron { font-size: .85rem; transition: transform .2s; }
.app-nav-toggle.collapsed .app-nav-chevron { transform: rotate(-90deg); }
.app-nav-sub { list-style: none; margin: 0; padding: 0; }
.app-topbar { border-bottom: 1px solid var(--tblr-border-color); background: var(--tblr-bg-surface); }
.page-header { margin-top: 1rem; }

/* Stat tiles */
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.stat-card .stat-label { font-size: .8rem; color: var(--tblr-secondary); }
.stat-card a.stretched-link:hover ~ * { text-decoration: underline; }

/* Tables inside cards */
.card-table td, .card-table th { vertical-align: middle; }
.table .text-truncate-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.audit-json { max-width: 360px; white-space: pre-wrap; word-break: break-word; font-size: .75rem; font-family: var(--tblr-font-monospace); }

/* Filters toolbar above tables */
.toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.toolbar .form-select, .toolbar .form-control { width: auto; min-width: 11rem; }

/* Property master columns */
.pm-col .list-group-item.active { background: var(--brand); border-color: var(--brand); color: #fff; }

/* ---------------- Public site ---------------- */
.site-header { background: var(--tblr-bg-surface); border-bottom: 1px solid var(--tblr-border-color); }
.hero {
  position: relative; overflow: hidden; border-radius: 1rem; color: #fff; padding: 3rem 2rem;
  background:
    radial-gradient(1200px 400px at 10% -20%, rgba(255, 255, 255, .18), transparent 60%),
    linear-gradient(100deg, var(--lg-navy) 0%, var(--lg-navy-2) 50%, var(--lg-blue) 100%);
}
.hero .lead { color: rgba(255, 255, 255, .85); }
.hero .search-panel { background: #fff; color: var(--tblr-body-color); border-radius: .75rem; padding: 1rem; box-shadow: 0 12px 30px rgba(0, 0, 0, .15); }
.hero-stats { color: rgba(255, 255, 255, .85); font-size: .85rem; }

.listing-card { transition: box-shadow .15s ease, transform .15s ease; }
.listing-card:hover { box-shadow: 0 .5rem 1.5rem rgba(11, 34, 64, .12); transform: translateY(-2px); }
/* Tabler makes .card-body relative, which traps the stretched-link inside it; let it cover the whole card. */
.listing-card .card-body { position: static; }
.listing-thumb {
  position: relative; height: 170px; overflow: hidden;
  background: repeating-linear-gradient(45deg, var(--brand-soft), var(--brand-soft) 12px, #d9e5f6 12px, #d9e5f6 24px);
  border-radius: var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0;
}
.listing-thumb img { width: 100%; height: 100%; object-fit: cover; }
.listing-price { color: var(--brand); font-weight: 700; font-size: 1.15rem; }

.detail-media { height: 360px; border-radius: .75rem; background: var(--brand-soft); }
.gallery { background: #0b2240; border-radius: .75rem; }
.gallery .carousel-item img { height: 440px; object-fit: contain; }
.gallery-thumbs img { width: 88px; height: 64px; object-fit: cover; border-radius: .375rem; opacity: .85; }
.gallery-thumbs img:hover { opacity: 1; }
.floorplan-thumb { width: 160px; height: 120px; object-fit: cover; }
.facts dt { font-weight: 500; color: var(--tblr-secondary); }
.description { white-space: pre-line; }
.price-card { top: 1rem; }

.media-tile { width: 132px; }
.media-tile img { width: 100%; height: 90px; object-fit: cover; border-radius: .25rem; }
.media-file { height: 90px; display: flex; flex-direction: column; justify-content: center; text-align: center; overflow: hidden; word-break: break-all; }

/* Badges */
.verified-badge { background: var(--brand-soft); color: var(--brand-dark); border: 1px solid #a5bde3; font-weight: 500; margin-right: .25rem; }
.tier-badge { background: var(--gold); color: #fff; }

/* Auth pages */
.auth-page { background: linear-gradient(180deg, #f4f6f9 0%, #eef1f5 100%); }

/* Fixes after visual review */
.app-sidebar .navbar-brand { justify-content: flex-start; width: 100%; padding-left: 1rem; }
.hero h1, .hero .display-6 { color: #fff; }
.listing-card .card-footer span { white-space: nowrap; }
.badge.bg-primary, .badge.bg-dark, .badge.bg-azure, .badge.bg-red, .badge.bg-green { color: #fff; }
.timeline-event-card { box-shadow: none; }
.app-sidebar .navbar-brand.app-brand { justify-content: flex-start !important; text-align: left !important; gap: .6rem; }
.app-sidebar .navbar-brand.app-brand > span:last-child { margin: 0 !important; }


/* ---------------- Premium polish ---------------- */
body { background: #f5f7f6; -webkit-font-smoothing: antialiased; }
h1, h2, h3, .page-title, .card-title { letter-spacing: -.015em; }
.card { border-color: #e3e8ef; box-shadow: 0 1px 2px rgba(16, 24, 20, .04), 0 1px 1px rgba(16, 24, 20, .02); border-radius: .75rem; }
.card-header { border-bottom-color: #eef1ef; }
.btn { border-radius: .5rem; font-weight: 500; }
.form-control, .form-select { border-radius: .5rem; }

/* Agency profile */
.profile-cover {
  height: 180px; border-radius: 1rem 1rem 0 0;
  background:
    radial-gradient(600px 200px at 85% 0%, rgba(255, 255, 255, .18), transparent 60%),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 14px),
    linear-gradient(100deg, var(--lg-navy) 0%, var(--lg-navy-2) 50%, var(--lg-blue) 100%);
}
.profile-card { border-radius: 1rem; overflow: hidden; }
.profile-body { position: relative; padding: 0 1.75rem 1.5rem; }
.profile-logo {
  width: 104px; height: 104px; margin-top: -52px; border-radius: 1.25rem; border: 4px solid #fff;
  background: linear-gradient(135deg, var(--lg-navy), var(--lg-blue)); color: #fff; font-size: 2.5rem; font-weight: 700;
  display: grid; place-items: center; box-shadow: 0 8px 24px rgba(11, 34, 64, .25);
}
.profile-name { font-size: 1.6rem; font-weight: 700; margin: 0; }
.profile-meta { color: var(--tblr-secondary); display: flex; flex-wrap: wrap; gap: 1rem; font-size: .875rem; }
.profile-meta i { margin-right: .25rem; }
.profile-stat { text-align: center; padding: 1rem .5rem; }
.profile-stat + .profile-stat { border-left: 1px solid #eef1ef; }
.profile-stat .v { font-size: 1.5rem; font-weight: 700; line-height: 1.1; }
.profile-stat .l { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--tblr-secondary); }
.contact-list .list-group-item { display: flex; gap: .75rem; align-items: flex-start; border: 0; padding: .6rem 0; }
.contact-list .icon-wrap { width: 2.25rem; height: 2.25rem; border-radius: .6rem; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; flex: 0 0 auto; }
.verified-agency { background: var(--lg-blue-soft); color: var(--lg-blue-dark); border: 1px solid #a5bde3; }
.section-title { font-size: 1.1rem; font-weight: 600; margin: 0; }

/* Map search list: the selected listing is highlighted while its pin is open. */
.map-row [role=button] { cursor: pointer; }
.map-row.active { background: var(--tblr-primary-lt); box-shadow: inset 3px 0 0 var(--tblr-primary); }

/* ---------------- Home hero: full width, one background per search tab ---------------- */
.home-hero { position: relative; overflow: hidden; color: #fff; min-height: 460px; display: flex; align-items: center; background: var(--lg-navy); }
.home-hero-bg {
  position: absolute; inset: 0; background-size: cover; background-position: center;
  opacity: 0; transform: scale(1.04); transition: opacity .6s ease, transform 6s ease;
}
.home-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 20, 15, .55) 0%, rgba(8, 20, 15, .35) 45%, rgba(8, 20, 15, .7) 100%); }
.home-hero-inner { position: relative; z-index: 1; padding-top: 3.5rem; padding-bottom: 2.5rem; text-align: center; }
.home-hero-title { display: none; color: #fff; font-size: clamp(1.75rem, 4vw, 2.75rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.15; margin-bottom: .75rem; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.home-hero-sub { color: rgba(255, 255, 255, .9); font-weight: 500; margin-bottom: 2rem; }
.home-hero[data-tab="buy"] [data-for="buy"],
.home-hero[data-tab="rent"] [data-for="rent"],
.home-hero[data-tab="plots"] [data-for="plots"],
.home-hero[data-tab="commercial"] [data-for="commercial"],
.home-hero[data-tab="projects"] [data-for="projects"] { opacity: 1; transform: none; }
.home-hero[data-tab="buy"] .home-hero-title[data-for="buy"],
.home-hero[data-tab="rent"] .home-hero-title[data-for="rent"],
.home-hero[data-tab="plots"] .home-hero-title[data-for="plots"],
.home-hero[data-tab="commercial"] .home-hero-title[data-for="commercial"],
.home-hero[data-tab="projects"] .home-hero-title[data-for="projects"] { display: block; }

.home-search { max-width: 980px; margin: 0 auto; text-align: left; }
.home-search-tabs {
  display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none;
  background: rgba(10, 25, 18, .72); backdrop-filter: blur(6px);
  border-radius: .75rem .75rem 0 0; padding: .35rem .75rem 0; width: fit-content; max-width: 100%;
}
.home-search-tabs::-webkit-scrollbar { display: none; }
.home-search-tabs button {
  background: none; border: 0; color: rgba(255, 255, 255, .75); font-weight: 600; font-size: .8rem;
  text-transform: uppercase; letter-spacing: .04em; padding: .75rem 1rem; position: relative; white-space: nowrap;
}
.home-search-tabs button:hover { color: #fff; }
.home-search-tabs button.active { color: #fff; }
.home-search-tabs button.active::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: .35rem; height: 2px; background: var(--lg-yellow); border-radius: 2px; }
.home-search-form { background: #fff; color: var(--tblr-body-color); border-radius: 0 .75rem .75rem .75rem; padding: .75rem; box-shadow: 0 18px 40px rgba(0, 0, 0, .25); }
.home-search-form[hidden] { display: none; }
.home-search-fields { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.home-search-fields > .form-select, .home-search-fields > .form-control { flex: 1 1 120px; min-width: 0; height: 2.75rem; }
.home-field { position: relative; }
.home-field > i { position: absolute; left: .85rem; top: 50%; transform: translateY(-50%); color: var(--tblr-secondary); }
.home-field > .form-control { padding-left: 2.4rem; height: 2.75rem; }
.home-field-wide { flex: 2 1 220px; }
.home-location { flex: 2 1 220px; min-width: 0; }
.home-location .form-control { height: 2.75rem; }
@media (min-width: 992px) { .home-search-fields { flex-wrap: nowrap; } }
.home-search-btn { height: 2.75rem; padding-inline: 1.75rem; font-weight: 600; flex: 0 0 auto; }
.home-radio { display: flex; gap: 1rem; padding: 0 .75rem; white-space: nowrap; }
.home-radio label { display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; margin: 0; }
.home-radio input { accent-color: var(--brand); }

.home-hero-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem 1.5rem; margin-top: 2rem; font-size: .85rem; color: rgba(255, 255, 255, .9); }
.home-hero-badges span, .home-hero-badges a { display: inline-flex; align-items: center; gap: .35rem; }
.home-hero-badges a { color: #fff; background: rgba(10, 25, 18, .72); padding: .4rem .9rem; border-radius: 999px; text-decoration: none; }
.home-hero-badges a:hover strong { text-decoration: underline; }

@media (max-width: 767.98px) {
  .home-hero { min-height: 0; }
  .home-hero-inner { padding-top: 2rem; padding-bottom: 1.5rem; }
  .home-search-tabs { border-radius: .75rem .75rem 0 0; width: 100%; }
  .home-search-form { border-radius: 0 0 .75rem .75rem; }
  .home-search-fields > * { flex: 1 1 100% !important; }
  .home-search-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .home-hero-bg { transition: none; transform: none; } }

/* ASP.NET renders the validation summary even with no errors (class
   validation-summary-valid); hide it so an empty red alert never shows. */
.validation-summary-valid { display: none !important; }

/* Listing whose plot was added by the advertiser and not yet confirmed by the office. */
.unverified-badge { background: #fff4e5; color: #8a4b00; border: 1px solid #f3c98b; font-weight: 500; margin-right: .25rem; }

/* Banner ad slider (several live banners in one slot). */
.banner-slider { position: relative; }
.banner-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--tblr-border-radius, .375rem); }
.banner-track::-webkit-scrollbar { display: none; }
.banner-slide { flex: 0 0 100%; scroll-snap-align: start; }
.banner-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0;
  background: #fff; color: #1d273b; box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.25rem;
  opacity: .92; transition: opacity .15s, transform .15s;
}
.banner-nav:hover, .banner-nav:focus-visible { opacity: 1; transform: translateY(-50%) scale(1.06); }
.banner-prev { left: .75rem; }
.banner-next { right: .75rem; }
.banner-dots { position: absolute; left: 0; right: 0; bottom: .6rem; display: flex; justify-content: center; gap: .4rem; z-index: 2; }
.banner-dot { width: .55rem; height: .55rem; padding: 0; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .6); box-shadow: 0 0 0 1px rgba(0, 0, 0, .15); }
.banner-dot.active { background: #fff; width: 1.4rem; border-radius: 1rem; }
@media (max-width: 575.98px) { .banner-nav { width: 2.25rem; height: 2.25rem; font-size: 1rem; } }

/* Banner size in cells (admin picks columns × rows). The image fills its box, cropped or letterboxed. */
.banner-link { position: absolute; inset: 0; display: block; }
.banner-img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--tblr-border-radius, .375rem); }
.banner-img.banner-contain { object-fit: contain; background: var(--tblr-bg-surface-secondary, #f1f5f9); }
.banner-box { width: var(--bn-width, 100%); }
.banner-box .banner-slide { position: relative; aspect-ratio: var(--bn-ratio, 16 / 3); }
.banner-box.bn-at { margin-left: var(--bn-offset, 0); }
/* Admin preview of one banner (?adPreview=id): outlined so it is easy to spot on the page. */
.banner-preview { outline: 3px dashed var(--tblr-primary, #066fd1); outline-offset: 4px; scroll-margin-top: 6rem; }
@media (max-width: 575.98px) { .banner-box { width: 100%; } .banner-box.bn-at { margin-left: 0; } }

/* Search results: listing cards and banner tiles share one grid, so a 1×1 banner is exactly one card. */
.results-grid { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-rows: 1fr; grid-auto-flow: row dense; gap: var(--tblr-page-padding, 1rem); }
.banner-tile { display: flex; flex-direction: column; min-height: calc(var(--bn-rows, 1) * 9rem); }
.banner-tile .banner-track { flex: 1; }
.banner-tile .banner-slide { position: relative; }
@media (min-width: 576px) {
  .results-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bn-c2, .bn-c3 { grid-column: span 2; }
  .bn-r2 { grid-row: span 2; } .bn-r3 { grid-row: span 3; } .bn-r4 { grid-row: span 4; }
  /* A tile pinned to a column (e.g. a skyscraper on the right); cards flow around it. */
  .banner-tile.bn-at { grid-column: var(--bn-s2) / span var(--bn-c2); }
}
@media (min-width: 1200px) {
  .results-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .bn-c3 { grid-column: span 3; }
  .banner-tile.bn-at { grid-column: var(--bn-s3) / span var(--bn-c3); }
}

/* News ticker: headline marquee under the header. Pauses on hover/focus; static for reduced motion. */
.news-ticker { display: flex; align-items: stretch; background: var(--brand); color: #fff; font-size: .8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; overflow: hidden; }
.news-ticker-label { display: inline-flex; align-items: center; gap: .4rem; flex: none; padding: .5rem 1rem; background: var(--gold); color: #fff; text-decoration: none; position: relative; z-index: 1; }
.news-ticker-label:hover { color: #fff; background: #9a7b25; text-decoration: none; }
.news-ticker-viewport { flex: 1; min-width: 0; overflow: hidden; display: flex; align-items: center;
  mask-image: linear-gradient(90deg, transparent, #000 2rem, #000 calc(100% - 2rem), transparent); }
.news-ticker-track { display: flex; width: max-content; animation: news-ticker-scroll var(--ticker-duration, 40s) linear infinite; }
.news-ticker:hover .news-ticker-track, .news-ticker:focus-within .news-ticker-track { animation-play-state: paused; }
.news-ticker-list { display: flex; flex: none; margin: 0; padding: 0; list-style: none; }
.news-ticker-list li { display: flex; align-items: center; white-space: nowrap; }
.news-ticker-list li::after { content: ""; width: .35rem; height: .35rem; margin: 0 2rem; border-radius: 50%; background: var(--gold); }
.news-ticker-list a, .news-ticker-list span { color: #fff; text-decoration: none; padding: .5rem 0; }
.news-ticker-list a:hover, .news-ticker-list a:focus { color: #fff; text-decoration: underline; }
@keyframes news-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .news-ticker-track { animation: none; }
  .news-ticker-viewport { overflow-x: auto; mask-image: none; }
  .news-ticker-list[aria-hidden="true"] { display: none; }
}

/* ==================================================================
   Public site theme (auction-marketplace style): navy + blue brand,
   yellow calls to action, square-ish dense cards, blue nav bar.
   Palette tokens are on :root; the dense shapes are scoped to body.site.
   ================================================================== */
body.site {
  --tblr-border-radius: var(--lg-radius);
  background: var(--lg-surface);
  color: var(--lg-ink);
}

/* Base controls */
body.site .btn { border-radius: var(--lg-radius); font-weight: 600; }
body.site .btn-primary { --tblr-btn-hover-bg: var(--lg-blue-dark); --tblr-btn-hover-border-color: var(--lg-blue-dark); }
body.site .btn-cta {
  --tblr-btn-bg: var(--lg-yellow); --tblr-btn-color: var(--lg-navy); --tblr-btn-border-color: var(--lg-yellow);
  --tblr-btn-hover-bg: var(--lg-yellow-dark); --tblr-btn-hover-color: var(--lg-navy); --tblr-btn-hover-border-color: var(--lg-yellow-dark);
  --tblr-btn-active-bg: var(--lg-yellow-dark); --tblr-btn-active-color: var(--lg-navy); --tblr-btn-active-border-color: var(--lg-yellow-dark);
  background: var(--tblr-btn-bg); color: var(--tblr-btn-color); border-color: var(--tblr-btn-border-color);
}
body.site .btn-cta:hover, body.site .btn-cta:focus-visible { background: var(--lg-yellow-dark); border-color: var(--lg-yellow-dark); color: var(--lg-navy); }
body.site .form-control, body.site .form-select { border-radius: var(--lg-radius); }
body.site .card { border-radius: var(--lg-radius); border-color: var(--lg-line); box-shadow: 0 1px 2px rgba(11, 34, 64, .06); }
body.site .card-header { border-bottom-color: var(--lg-line); }

/* Header: white top bar + blue nav bar */
body.site .site-header { background: #fff; border-bottom: 0; box-shadow: 0 2px 6px rgba(11, 34, 64, .08); position: relative; z-index: 1020; }
.site-topbar-inner { display: flex; align-items: center; gap: 1rem; padding-top: .75rem; padding-bottom: .75rem; }
.site-brand { color: var(--lg-navy); font-size: 1.15rem; font-weight: 800; text-decoration: none; flex: none; }
.site-brand:hover { color: var(--lg-navy); text-decoration: none; }
body.site .app-brand-mark { background: var(--lg-yellow); color: var(--lg-navy); border-radius: var(--lg-radius); }
.site-search { display: flex; flex: 1 1 auto; max-width: 620px; margin-inline: auto; }
.site-search .form-control { height: 2.6rem; border-right: 0; border-radius: var(--lg-radius) 0 0 var(--lg-radius); border-color: #b9c3cf; }
.site-search .form-control:focus { border-color: var(--lg-blue); box-shadow: none; }
.site-search .btn { height: 2.6rem; padding-inline: 1.1rem; border-radius: 0 var(--lg-radius) var(--lg-radius) 0; font-size: 1.1rem; }
.site-actions { display: flex; align-items: center; gap: .5rem; flex: none; }
@media (max-width: 767.98px) {
  .site-topbar-inner { flex-wrap: wrap; gap: .6rem; }
  .site-search { order: 3; flex-basis: 100%; max-width: none; }
  .site-actions { margin-left: auto; }
  .site-actions .btn { padding-inline: .7rem; }
}

body.site .site-nav.navbar {
  background: var(--lg-blue); border: 0; min-height: 0; padding: 0;
  --tblr-navbar-active-border-color: var(--lg-yellow);
}
body.site .site-nav .nav-link { color: #fff; font-weight: 600; font-size: .875rem; padding: .8rem 1rem; }
body.site .site-nav .nav-link .ti { opacity: .85; }
body.site .site-nav .nav-link:hover, body.site .site-nav .nav-link:focus-visible,
body.site .site-nav .show > .nav-link { color: #fff; background: rgba(0, 0, 0, .14); }
body.site .site-nav .nav-item.active > .nav-link { color: #fff; background: var(--lg-blue-dark); box-shadow: inset 0 -3px 0 var(--lg-yellow); }
body.site .site-nav .nav-item.active::after { display: none; }
.site-nav-toggler {
  display: inline-flex; align-items: center; gap: .4rem; background: none; border: 0;
  color: #fff; font-weight: 600; padding: .7rem 0;
}
.site-nav-toggler .ti { font-size: 1.35rem; }
@media (max-width: 767.98px) {
  body.site .site-nav .navbar-collapse { padding-bottom: .5rem; }
  body.site .site-nav .nav-link { padding: .6rem .25rem; }
}

/* News ticker: navy strip with a yellow label */
body.site .news-ticker { background: var(--lg-navy); }
body.site .news-ticker-label, body.site .news-ticker-label:hover { background: var(--lg-yellow); color: var(--lg-navy); }
body.site .news-ticker-list li::after { background: var(--lg-yellow); }

/* Home hero: photos under a navy-to-blue wash, folder tabs, yellow search */
body.site .home-hero { background: var(--lg-navy); min-height: 420px; }
body.site .home-hero::after { background: linear-gradient(100deg, rgba(11, 34, 64, .92) 0%, rgba(18, 50, 92, .78) 45%, rgba(29, 90, 185, .45) 100%); }
body.site .home-hero-title { text-shadow: none; }
body.site .home-search-tabs { background: transparent; backdrop-filter: none; padding: 0; gap: 2px; }
body.site .home-search-tabs button { background: rgba(255, 255, 255, .14); border-radius: var(--lg-radius) var(--lg-radius) 0 0; color: #fff; }
body.site .home-search-tabs button:hover { background: rgba(255, 255, 255, .24); }
body.site .home-search-tabs button.active { background: #fff; color: var(--lg-navy); }
body.site .home-search-tabs button.active::after { left: 0; right: 0; top: 0; bottom: auto; height: 3px; background: var(--lg-yellow); border-radius: 0; }
body.site .home-search-form { border-radius: 0 var(--lg-radius) var(--lg-radius) var(--lg-radius); box-shadow: 0 10px 30px rgba(0, 0, 0, .3); }
body.site .home-search-btn { font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
body.site .home-hero-badges a { background: var(--lg-yellow); color: var(--lg-navy); border-radius: var(--lg-radius); font-weight: 600; }
body.site .home-hero-badges .ti { color: var(--lg-yellow); }
body.site .home-hero-badges a .ti { color: var(--lg-navy); }
@media (max-width: 767.98px) { body.site .home-search-form { border-radius: 0 0 var(--lg-radius) var(--lg-radius); } }

/* Section headings with a short yellow rule */
.section-heading { position: relative; padding-bottom: .45rem; font-weight: 800; color: var(--lg-navy); }
.section-heading::after { content: ""; position: absolute; left: 0; bottom: 0; width: 2.75rem; height: 3px; background: var(--lg-yellow); }

/* Listing card: image, blue title, ref line, spec table, price bar */
body.site .listing-card { overflow: hidden; transition: box-shadow .15s ease, border-color .15s ease; }
body.site .listing-card:hover { transform: none; border-color: var(--lg-blue); box-shadow: 0 6px 18px rgba(11, 34, 64, .16); }
body.site .listing-thumb {
  height: auto; aspect-ratio: 4 / 3; border-radius: 0;
  background: repeating-linear-gradient(45deg, #eef2f7, #eef2f7 12px, #e3e9f1 12px, #e3e9f1 24px);
}
body.site .listing-thumb img { transition: transform .3s ease; }
body.site .listing-card:hover .listing-thumb img { transform: scale(1.03); }
.listing-thumb-icon { height: 100%; display: flex; align-items: center; justify-content: center; color: var(--lg-blue); opacity: .4; font-size: 2.5rem; }
.listing-tag {
  position: absolute; left: 0; top: .75rem; padding: .2rem .6rem; font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .04em; border-radius: 0 var(--lg-radius) var(--lg-radius) 0;
}
.listing-tag-sale { background: var(--lg-navy); color: #fff; }
.listing-tag-rent { background: var(--lg-yellow); color: var(--lg-navy); }
body.site .listing-card .card-body { padding: .85rem 1rem .75rem; }
.listing-title {
  margin: 0; font-size: .95rem; font-weight: 700; line-height: 1.3; color: var(--lg-blue); text-transform: uppercase;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em;
}
.listing-card:hover .listing-title { text-decoration: underline; }
.listing-ref { font-size: .75rem; color: var(--lg-muted); margin-top: .2rem; }
.listing-specs {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .75rem; margin: .65rem 0 0;
  padding-top: .6rem; border-top: 1px solid #edf0f4; font-size: .8125rem;
}
.listing-specs dt { font-weight: 500; color: var(--lg-muted); }
.listing-specs dd { margin: 0; font-weight: 600; color: var(--lg-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.listing-buy {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  padding: .65rem 1rem; background: #f6f8fb; border-top: 1px solid var(--lg-line);
}
.listing-price-label { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--lg-muted); }
body.site .listing-price { color: var(--lg-navy); font-size: 1.1rem; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.listing-buy .btn { flex: none; }

/* Project and post cards share the same frame */
body.site .cms-card:hover { transform: none; border-color: var(--lg-blue); box-shadow: 0 6px 18px rgba(11, 34, 64, .16); }
body.site .cms-card .card-title { color: var(--lg-blue); font-weight: 700; }
body.site .cms-card:hover .card-title { text-decoration: underline; }
body.site .cms-thumb .cms-thumb-icon { color: var(--lg-blue); }
body.site .cms-card .card-footer { background: #f6f8fb; border-top-color: var(--lg-line); }
body.site .project-price { color: var(--lg-navy); font-weight: 800; }
body.site .tier-badge { background: var(--lg-yellow); color: var(--lg-navy); }

/* Brand gradients: square corners on the public site */
body.site .hero { background: linear-gradient(100deg, var(--lg-navy) 0%, var(--lg-navy-2) 50%, var(--lg-blue) 100%); border-radius: var(--lg-radius); }
body.site .profile-cover {
  border-radius: var(--lg-radius) var(--lg-radius) 0 0;
  background:
    repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 14px),
    linear-gradient(100deg, var(--lg-navy) 0%, var(--lg-navy-2) 50%, var(--lg-blue) 100%);
}
body.site .profile-card { border-radius: var(--lg-radius); }
body.site .profile-logo { background: var(--lg-navy); border-radius: var(--lg-radius); box-shadow: 0 6px 18px rgba(11, 34, 64, .25); }
body.site .gallery { background: var(--lg-navy); border-radius: var(--lg-radius); }
body.site .detail-media { border-radius: var(--lg-radius); }

/* CMS pages (news, blog, areas, pages, projects): cms.css loads after this file, so these use body.site for weight. */
body.site .cms-hero {
  border-radius: var(--lg-radius);
  background:
    repeating-linear-gradient(135deg, rgba(255, 255, 255, .04) 0 2px, transparent 2px 14px),
    linear-gradient(100deg, var(--lg-navy) 0%, var(--lg-navy-2) 50%, var(--lg-blue) 100%);
}
body.site .cms-hero.has-image { background-size: cover; background-position: center; }
body.site .cms-hero.has-image::before { background: linear-gradient(180deg, rgba(11, 34, 64, .15) 0%, rgba(11, 34, 64, .85) 100%); }
body.site .cms-hero .form-select, body.site .cms-hero .form-control { border-radius: var(--lg-radius); }
body.site .cms-thumb { background: repeating-linear-gradient(45deg, #eef2f7, #eef2f7 12px, #e3e9f1 12px, #e3e9f1 24px); }
body.site .cms-tag { border-radius: var(--lg-radius); }
body.site .cms-tag:hover { background: #d2def1; }
body.site .cms-body { color: var(--lg-ink); }
body.site .cms-body img { border-radius: var(--lg-radius); }
body.site .cms-body th { background: var(--lg-surface); }
body.site .cms-body th, body.site .cms-body td { border-color: var(--lg-line); }
body.site .cms-body pre, body.site .project-gallery { background: var(--lg-navy); border-radius: var(--lg-radius); }
body.site .fact-tile, body.site .amenity-chip { border-color: var(--lg-line); }
body.site .fact-tile { border-radius: var(--lg-radius); }
body.site .availability-bar { background: #e3e9f1; }
body.site .verified-agency { background: var(--lg-blue-soft); color: var(--lg-blue-dark); border-color: #a5bde3; }

/* Map search list rows */
.map-thumb {
  flex: none; width: 104px; aspect-ratio: 4 / 3; border-radius: var(--lg-radius); overflow: hidden;
  background: repeating-linear-gradient(45deg, #eef2f7, #eef2f7 8px, #e3e9f1 8px, #e3e9f1 16px);
  display: grid; place-items: center; color: var(--lg-blue); font-size: 1.5rem;
}
.map-thumb img { width: 100%; height: 100%; object-fit: cover; }
.map-row-title { font-weight: 700; font-size: .875rem; color: var(--lg-blue); text-transform: uppercase; }
.map-row-price { font-weight: 800; color: var(--lg-navy); }
body.site .map-row.active { background: var(--lg-blue-soft); box-shadow: inset 3px 0 0 var(--lg-yellow); }
body.site .lg-popup .price { color: var(--lg-navy); font-weight: 800; }

/* Footer: navy with a darker legal strip */
.site-footer { margin-top: 3rem; background: var(--lg-navy); color: rgba(255, 255, 255, .78); }
.site-footer .subheader { color: var(--lg-yellow); }
.site-footer a.link-secondary { color: rgba(255, 255, 255, .78) !important; text-decoration: none; }
.site-footer a.link-secondary:hover { color: #fff !important; text-decoration: underline; }
.site-footer-bottom { background: #071730; color: rgba(255, 255, 255, .6); padding: 1rem 0; }
