/* ============================================================
   TERRA LUMEN — design system for Maiden Magdaraog / DMCI Homes
   Beige-dominant warm neutral. Palette sourced from the six
   reference swatches:
     #3A2D28  espresso   (the dark that makes beige pop)
     #A48374  rosewood   (primary accent)
     #CBAD8D  beige      (signature colour)
     #D1C7BD  stone      (borders / muted)
     #EBE3DB  cream      (alternating sections)
     #F1EDE6  linen      (page ground)
   Deeper/lighter steps are derived from those six so every
   text pairing clears WCAG AA.

   Token selectors are doubled (:root:root) so they win
   regardless of source order. Hero + footer stay espresso on
   purpose — they are the contrast bookends for the beige body.
   ============================================================ */

:root:root {
  /* ---- linen ground (light ramp) ----------------------- */
  --linen-50:#FBF9F5;
  --linen-100:#F1EDE6;   /* page ground        (swatch 6) */
  --linen-200:#EBE3DB;   /* alternating band   (swatch 5) */
  --linen-300:#E4DACE;
  --linen-400:#D9CCBC;
  --stone-300:#D1C7BD;   /* borders / muted    (swatch 4) */
  --stone-400:#C6B8A8;

  /* ---- beige (the signature) --------------------------- */
  --beige-300:#DBC4AC;
  --beige-400:#CBAD8D;   /* signature beige    (swatch 3) */
  --beige-500:#B8946F;
  --beige-600:#9A7C50;
  --beige-700:#8A6E45;   /* bronze — text-safe on linen   */

  /* ---- rosewood clay (primary accent) ------------------ */
  /* clay-300 was a light tint for dark grounds; on linen it is used as
     TEXT (.t-go, .t-sign, kickers), so it has to be text-safe. The old
     light tint lives on as --clay-200 for decorative gradients only. */
  --clay-200:#BFA093;
  --clay-300:#8A6656;
  --clay-400:#A48374;    /* reference rosewood (swatch 2) */
  --clay-500:#8A6656;
  --clay-600:#7D5A4B;    /* links / buttons — AA on linen */
  --clay-700:#5E4238;

  /* ---- espresso (the dark anchor) ---------------------- */
  --espresso-500:#63534A;
  --espresso-600:#5A4A40;
  --espresso-700:#4A3C34;
  --espresso-800:#3A2D28;  /* reference espresso (swatch 1) */
  --espresso-900:#2A211D;
  --espresso-950:#1E1714;

  /* ---- legacy Terra names kept alive (light values) ---- */
  --terra-950:var(--linen-100);
  --terra-900:var(--linen-200);
  --terra-850:var(--linen-50);
  --terra-800:var(--linen-300);
  --terra-700:var(--stone-300);
  --terra-600:var(--stone-400);

  --sage-600:var(--beige-600);
  --sage-500:var(--beige-600);
  --sage-400:var(--beige-700);
  --sage-300:var(--beige-700);

  --bone:var(--espresso-900);
  --sand:var(--espresso-700);
  --taupe:var(--espresso-500);
  --line:rgba(58,45,40,0.10);
  --line-strong:rgba(58,45,40,0.18);

  /* ---- remap the inherited UncleKris palette ----------- */
  --gold:#6B4A39;
  /* on a light ground the "lighter" accent has to be the DARKER one, or
     emphasis text stops clearing AA on the --linen-200 bands */
  --gold-light:#6E4C3E;
  --gold-dark:var(--clay-700);
  --gold-soft:#674839;
  --gold-subtle:rgba(164,131,116,0.14);

  --dark:var(--linen-100);
  --dark-2:var(--linen-200);
  --dark-3:var(--linen-300);
  --dark-4:var(--linen-400);
  --dark-mid:var(--linen-300);
  --black:var(--espresso-950);

  --white:var(--espresso-900);
  --light:var(--espresso-800);
  --light-2:var(--espresso-600);
  --text:var(--espresso-800);
  --text-light:var(--espresso-700);
  --text-body:var(--espresso-700);
  --text-muted:var(--espresso-500);
  --border:rgba(58,45,40,0.16);

  /* Light-panel tokens. NOTE: --navy / --ink / --muted are deliberately NOT
     remapped here — property pages use --navy as a dark SECTION BACKGROUND
     while the computation page uses it as TEXT on a light panel. Each page
     defines its own value and the palette sweep already converted both
     correctly; overriding them globally inverted every property section. */
  --card:var(--linen-50);
  --bg:var(--linen-100);
  --surface:var(--linen-200);

  /* ---- type -------------------------------------------- */
  --font-display:'Fraunces','Cormorant Garamond',Georgia,serif;
  --font-sans:'Inter',system-ui,-apple-system,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;

  /* ---- shape & motion ---------------------------------- */
  --r-sm:8px; --r-md:14px; --r-lg:20px; --r-xl:28px;
  --shadow-sm:0 2px 10px rgba(58,45,40,.07);
  --shadow-md:0 14px 34px rgba(58,45,40,.11);
  --shadow-lg:0 26px 64px rgba(58,45,40,.15);
  --ease:cubic-bezier(.22,.61,.36,1);
  --transition:.42s var(--ease);
  --transition-fast:.18s var(--ease);
}

/* ============================================================
   BASE
   ============================================================ */
html { -webkit-text-size-adjust:100%; background:var(--linen-100); }

body {
  background:var(--linen-100);
  color:var(--espresso-700);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* fine paper grain — warms the flat beige */
body::before {
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:.30; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}
body > * { position:relative; z-index:1; }

::selection { background:var(--beige-400); color:var(--espresso-900); }

:focus-visible {
  outline:2px solid var(--clay-600);
  outline-offset:3px;
  border-radius:4px;
}

* { scrollbar-color:var(--stone-400) var(--linen-200); }
::-webkit-scrollbar { width:11px; height:11px; }
::-webkit-scrollbar-track { background:var(--linen-200); }
::-webkit-scrollbar-thumb {
  background:var(--stone-400); border-radius:99px;
  border:3px solid var(--linen-200);
}
::-webkit-scrollbar-thumb:hover { background:var(--clay-400); }

/* ============================================================
   TYPE
   ============================================================ */
h1,h2,h3,h4,.hero h1,.section-title {
  font-family:var(--font-display);
  font-variation-settings:'SOFT' 0,'WONK' 0;
  color:var(--espresso-900);
  letter-spacing:-.015em;
  font-weight:500;
}
h1,.hero h1 { line-height:1.04; letter-spacing:-.028em; }
h2,.section-title { line-height:1.10; letter-spacing:-.022em; }
h3 { line-height:1.20; }

p { color:var(--espresso-700); }

/* eyebrows / kickers */
.section-label,.hero-eyebrow,.eyebrow,.badge-label {
  font-family:var(--font-sans);
  font-size:.70rem; font-weight:600;
  letter-spacing:.19em; text-transform:uppercase;
  color:var(--clay-600);
}

a { color:var(--clay-600); }
a:hover { color:var(--clay-700); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn,.btn-primary,.btn-secondary,.btn-gold,.cta-btn,.hero-btn {
  font-family:var(--font-sans);
  font-weight:600; letter-spacing:.01em;
  border-radius:var(--r-sm);
  transition:transform var(--transition-fast),
             box-shadow var(--transition-fast),
             background var(--transition-fast),
             border-color var(--transition-fast);
}
.btn-primary,.btn-gold,.cta-btn {
  background:linear-gradient(135deg,var(--clay-500),var(--clay-700));
  color:var(--linen-50) !important;
  border:1px solid var(--clay-600);
  box-shadow:0 8px 22px rgba(94,66,56,.22);
}
.btn-primary:hover,.btn-gold:hover,.cta-btn:hover {
  transform:translateY(-2px);
  box-shadow:0 14px 32px rgba(94,66,56,.30);
  background:linear-gradient(135deg,var(--clay-600),var(--espresso-800));
  color:var(--linen-50) !important;
}
/* nav CTA — deep clay so it still reads as a button on the linen bar
   (the inherited rule paired a clay fill with espresso text: 2.1:1) */
.btn-nav,.nav-cta,.prop-card-cta,.btn-form {
  background:var(--clay-700) !important;
  color:var(--linen-100) !important;
  border-color:var(--clay-700) !important;
}
.btn-nav:hover,.nav-cta:hover,.prop-card-cta:hover,.btn-form:hover {
  background:var(--espresso-800) !important;
  border-color:var(--espresso-800) !important;
  color:var(--linen-50) !important;
}
.nav-promo-pill { color:var(--linen-100) !important; }

.btn-secondary {
  background:transparent;
  color:var(--espresso-800) !important;
  border:1px solid var(--stone-400);
}
.btn-secondary:hover {
  border-color:var(--clay-500);
  color:var(--espresso-900) !important;
  background:rgba(164,131,116,.12);
  transform:translateY(-2px);
}

/* ============================================================
   SURFACES / CARDS
   ============================================================ */
.card,.property-card,.promo-card,.feature-card,.stat-card,
.testimonial-card,.amenity-card,.info-card {
  background:var(--linen-50);
  border:1px solid var(--stone-300);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-sm);
  transition:transform var(--transition), border-color var(--transition),
             box-shadow var(--transition);
}
.card:hover,.property-card:hover,.promo-card:hover,.feature-card:hover {
  transform:translateY(-5px);
  border-color:var(--beige-400);
  box-shadow:var(--shadow-md);
}

/* tables inherited from the payment-terms work */
.promo-table th {
  background:var(--espresso-800);
  color:var(--linen-100);
  font-family:var(--font-sans);
  letter-spacing:.10em;
}
.promo-table td { border-color:var(--stone-300); color:var(--espresso-700); }
.promo-table tr:nth-child(even) td { background:var(--linen-200); }

/* ============================================================
   NAV  — transparent over the espresso hero, linen once scrolled
   ============================================================ */
.nav,nav.nav,#mainNav,.uknav,.site-nav {
  border-bottom:1px solid rgba(247,242,234,.14);
}
.nav.scrolled,.uknav.scrolled,.site-nav.scrolled,#mainNav.scrolled {
  background:rgba(248,245,239,.94) !important;
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid var(--stone-300) !important;
  box-shadow:0 1px 20px rgba(58,45,40,.07);
}
.nav.scrolled a,.uknav.scrolled a,.site-nav.scrolled a,
.nav.scrolled .nav-link,.uknav.scrolled .nav-link {
  color:var(--espresso-800) !important;
}
.nav.scrolled a:hover,.uknav.scrolled a:hover,.site-nav.scrolled a:hover {
  color:var(--clay-600) !important;
}
/* white wordmark is invisible on linen — swap to the espresso lockup */
.nav.scrolled .nav-logo img,.uknav.scrolled .nav-logo img,
.site-nav.scrolled .nav-logo img,.mobile-menu .nav-logo img,
.uknav-mobile .nav-logo img,
.nav.scrolled .logo img,.mobile-menu .logo img {
  content:url("dmci-by-maiden-dark.png");
}
.mobile-menu,.uknav-mobile {
  background:rgba(248,245,239,.985) !important;
  border-color:var(--stone-300) !important;
}
.mobile-menu a,.uknav-mobile a { color:var(--espresso-800) !important; }
.mobile-menu a:hover,.uknav-mobile a:hover { color:var(--clay-600) !important; }

/* mega-menu panels */
.mega,.mega-menu,.nav-mega,.dropdown-menu {
  background:rgba(248,245,239,.985) !important;
  border:1px solid var(--stone-300) !important;
  box-shadow:var(--shadow-lg) !important;
}
.mega a,.mega-menu a,.nav-mega a,.dropdown-menu a { color:var(--espresso-800) !important; }
.mega a:hover,.mega-menu a:hover,.nav-mega a:hover { color:var(--clay-600) !important; }

/* ============================================================
   HERO — deliberately espresso. This is the contrast that
   makes the beige body pop when you scroll into it.
   ============================================================ */
.hero-bg::after,.page-hero-bg::after {
  background:linear-gradient(105deg,
    rgba(30,23,20,.94) 0%,
    rgba(42,33,29,.86) 34%,
    rgba(42,33,29,.52) 66%,
    rgba(30,23,20,.74) 100%) !important;
}
.t-hero-scrim {
  background:linear-gradient(100deg,
    var(--espresso-950) 4%,
    rgba(30,23,20,.90) 34%,
    rgba(42,33,29,.54) 62%,
    rgba(42,33,29,.76) 100%) !important;
}
.t-hero-scrim::after {
  background:linear-gradient(to top,var(--linen-100),rgba(241,237,230,0) 34%) !important;
}
.hero h1,.t-hero h1,.page-hero h1,
.hero-sub,.t-hero-sub,.page-hero p,.hero-title,.hero-subtitle {
  color:var(--linen-100) !important;
}
/* gradient wordmark — set background-image (not the `background`
   shorthand, which would reset background-clip back to border-box) */
.t-hero h1 em {
  background-image:linear-gradient(100deg,var(--beige-400) 10%,#E4CDB2 50%,var(--clay-200) 90%) !important;
  -webkit-background-clip:text !important; background-clip:text !important;
  color:transparent !important;
}
.hero-eyebrow,.t-hero .t-kicker,.hero .eyebrow { color:var(--beige-400) !important; }
.t-hero .t-kicker::before,.t-hero .t-kicker::after { background:var(--beige-400) !important; }
.t-hero-sub { color:var(--linen-200) !important; }

.t-chip,.hero .chip {
  background:rgba(247,242,234,.10) !important;
  border-color:rgba(247,242,234,.22) !important;
  color:var(--linen-200) !important;
}
.t-chip b { color:var(--beige-400) !important; }

/* ghost button: light only where it sits on the espresso hero — the same
   class is reused in the beige sections further down the homepage */
.t-hero .t-btn-ghost {
  background:rgba(247,242,234,.08) !important;
  color:var(--linen-100) !important;
  border-color:rgba(247,242,234,.30) !important;
}
.t-hero .t-btn-ghost:hover {
  background:rgba(203,173,141,.20) !important;
  border-color:var(--beige-400) !important;
  color:#fff !important;
}
.t-btn-ghost {
  background:rgba(58,45,40,.05) !important;
  color:var(--espresso-800) !important;
  border-color:var(--stone-400) !important;
}
.t-btn-ghost:hover {
  background:rgba(164,131,116,.14) !important;
  border-color:var(--clay-500) !important;
  color:var(--espresso-900) !important;
}
.t-btn-solid {
  background:linear-gradient(135deg,var(--beige-400),var(--clay-400)) !important;
  color:var(--espresso-900) !important;
  border-color:var(--beige-300) !important;
  box-shadow:0 10px 26px rgba(30,23,20,.34) !important;
}
.t-btn-solid:hover {
  background:linear-gradient(135deg,var(--beige-300),var(--beige-400)) !important;
  color:var(--espresso-900) !important;
}

/* hero feature card sits on the espresso ground */
.t-hero-card {
  background:linear-gradient(165deg,rgba(42,33,29,.90),rgba(30,23,20,.94)) !important;
  border-color:rgba(247,242,234,.20) !important;
}
.t-hero-card-label { color:var(--beige-400) !important; }
.t-hcl .n { color:var(--linen-100) !important; }
.t-hcl .m { color:var(--stone-300) !important; }
.t-hcl .p { color:var(--beige-400) !important; }
.t-hcl li a:hover,.t-hcl li.on a {
  background:rgba(203,173,141,.16) !important;
  border-color:rgba(203,173,141,.34) !important;
}
.t-dots { border-top-color:rgba(247,242,234,.16) !important; }
.t-dot { background:rgba(247,242,234,.28) !important; }
.t-dot.on { background:var(--beige-400) !important; }

/* ---- property-page heroes -------------------------------
   These sit on the espresso scrim, so every piece of text the
   palette sweep darkened has to be relit here. Property pages use
   the `uknav-*` nav, the homepage uses `nav-*`; both are covered. */
.hero-title,.page-hero-title,.bg-hero h1,
.hero-stat-num,.hero-price {
  color:var(--linen-100) !important;
}
.hero-tagline,.hero-sub,.page-hero-sub,.hero-stat-label {
  color:var(--linen-200) !important;
}
.hero-eyebrow,.page-hero-eyebrow,.hero-tag,.bg-hero h1 em,
.hero-breadcrumb,.hero-kicker {
  color:var(--beige-400) !important;
}
.hero-scroll,.hero-scroll-indicator,.hero-scroll-indicator * {
  color:var(--stone-300) !important;
}
.hero-actions .btn-outline,.hero-content .btn-outline,
.hero-actions .btn-secondary,.hero-content .btn-secondary {
  color:var(--linen-100) !important;
  border-color:rgba(247,242,234,.42) !important;
  background:rgba(247,242,234,.08) !important;
}
.hero-actions .btn-outline:hover,.hero-content .btn-outline:hover {
  background:rgba(203,173,141,.22) !important;
  border-color:var(--beige-400) !important;
}

/* nav bar is transparent over that hero until it gains .scrolled —
   its controls must stay light there (the mega panels below are linen
   and correctly keep espresso text) */
.nav:not(.scrolled) .nav-trigger,
.nav:not(.scrolled) .nav-link-direct,
.nav:not(.scrolled) .nav-phone,
.uknav:not(.scrolled) .uknav-trigger,
.uknav:not(.scrolled) .uknav-direct,
.uknav:not(.scrolled) .uknav-phone,
.site-nav:not(.scrolled) .nav-trigger {
  color:rgba(247,242,234,.88) !important;
}
.nav:not(.scrolled) .nav-trigger:hover,
.uknav:not(.scrolled) .uknav-trigger:hover,
.uknav:not(.scrolled) .uknav-direct:hover,
.nav:not(.scrolled) .nav-link-direct:hover {
  color:var(--beige-400) !important;
}
.nav:not(.scrolled) .nav-toggle span,
.uknav:not(.scrolled) .uknav-toggle span { background:var(--linen-100) !important; }

/* tags sit absolutely over card photography — they need their own
   ground, not the page ground */
.t-tag {
  background:rgba(30,23,20,.74) !important;
  color:var(--linen-100) !important;
  border:1px solid rgba(247,242,234,.22) !important;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.t-tag.sage {
  background:var(--beige-400) !important;
  color:var(--espresso-900) !important;
  border:1px solid var(--beige-300) !important;
}

/* city chips ride on top of photography — keep them espresso */
.card-city,.badge-city,.card-badge-city,.prop-card-city {
  background:rgba(30,23,20,.72) !important;
  color:var(--linen-100) !important;
  border-color:rgba(247,242,234,.20) !important;
}

/* the computation tool's agent block: light text that needs relighting
   the other way now that its panels are linen */
.agent-name,.agent-title { color:var(--espresso-900) !important; }
.role,.footer-bar,.contact-strip span,.agent-section span {
  color:var(--espresso-500) !important;
}
/* the accreditation chips sit on a clay fill */
.cb-num,.cb-lbl,.credential-badge,.credential-badge * {
  color:var(--linen-100) !important;
}

/* ============================================================
   SECTIONS / TRUST STRIP / GRID  (the beige body)
   ============================================================ */
.t-sec:nth-of-type(even) { background:var(--linen-200); }
.t-kicker { color:var(--clay-600); }
.t-kicker::before,.t-head.center .t-kicker::after { background:var(--beige-400); }
.t-h2 { color:var(--espresso-900); }
.t-h2 em { color:var(--clay-500); }
.t-lead { color:var(--espresso-500); }

.t-trust {
  background:var(--linen-200);
  border-top:1px solid var(--stone-300);
  border-bottom:1px solid var(--stone-300);
}
.t-trust-grid { background:var(--stone-300); }
.t-trust-item { background:var(--linen-200); }
.t-trust-item h3 { color:var(--espresso-900); }
.t-trust-item p { color:var(--espresso-500); }

.t-card {
  background:var(--linen-50);
  border:1px solid var(--stone-300);
  box-shadow:var(--shadow-sm);
}
.t-card:hover { border-color:var(--beige-400); box-shadow:var(--shadow-md); }
.t-card-media { background:var(--linen-300); }

/* ============================================================
   FOOTER — the closing espresso bookend
   ============================================================ */
.footer,footer.footer,.site-footer {
  background:var(--espresso-900) !important;
  border-top:1px solid var(--espresso-700) !important;
  color:var(--stone-300) !important;
}
/* the footer stays espresso, so every inherited light-on-dark colour that
   the palette sweep flipped has to be flipped back here */
.footer p,.footer li,.footer span,.footer div,.footer small,.footer em,
.site-footer p,.site-footer div { color:var(--stone-300) !important; }
.footer h1,.footer h2,.footer h3,.footer h4,.footer strong,
.site-footer h3,.site-footer h4 { color:var(--linen-100) !important; }
/* column labels: beige reads on espresso, clay does not (1.9:1) */
.footer .footer-col-title,.footer .footer-label,.footer .eyebrow,
.footer h5,.footer h6,.site-footer h5,
.site-footer .footer-col-title { color:var(--beige-400) !important; }
.footer a,.site-footer a { color:var(--linen-200) !important; }
.footer a:hover,.site-footer a:hover { color:var(--beige-400) !important; }
.footer .footer-logo img,.site-footer .logo img { filter:none; }

/* ============================================================
   FORMS
   ============================================================ */
input,select,textarea {
  background:var(--linen-50) !important;
  border:1px solid var(--stone-400) !important;
  color:var(--espresso-900) !important;
  border-radius:var(--r-sm) !important;
  font-family:var(--font-body);
}
input::placeholder,textarea::placeholder { color:var(--espresso-500) !important; }
input:focus,select:focus,textarea:focus {
  border-color:var(--clay-500) !important;
  box-shadow:0 0 0 3px rgba(164,131,116,.22) !important;
  outline:none;
}
label { color:var(--espresso-700); }

/* ============================================================
   COMPUTATION TOOL — its own light panel system, warmed
   onto the linen ground.
   ============================================================ */
body > header,
.agent-section,
.footer-bar,
.fab-tooltip {
  background:var(--linen-200) !important;
  border-color:var(--stone-300) !important;
}
.agent-photo-frame,
.contact-strip {
  background:var(--linen-50) !important;
  border-color:var(--stone-300) !important;
}
.disclaimer {
  background:rgba(203,173,141,.16) !important;
  border-color:var(--beige-400) !important;
}
.panel-title, .area-label, .pdf-hint, .ei {
  color:var(--espresso-500) !important;
}
.area-val, .cb-num, .empty h3, .disclaimer, .disclaimer strong {
  color:var(--espresso-800) !important;
}
.empty h3 { color:var(--espresso-900) !important; }
.btn-outline {
  color:var(--espresso-800) !important;
  border-color:var(--stone-400) !important;
}
.btn-outline:hover { color:var(--espresso-900) !important; border-color:var(--clay-500) !important; }
.pdf-opts { background:var(--linen-50) !important; border-color:var(--stone-300) !important; }
.pdf-opts, .pdf-opts * { color:var(--espresso-800) !important; }
.pdf-opts .pdf-hint { color:var(--espresso-500) !important; }

/* ============================================================
   LEGIBILITY BACKSTOPS
   Values that were fine as light-on-dark and are too faint now
   that the same element sits on linen.
   ============================================================ */

/* very low-alpha espresso reads as a smudge on linen */
.footer-bar,.credit,.colophon,.site-credit,
.footer-legal,.legal-line { color:var(--espresso-500) !important; }

/* the Valeron scope panel: light-on-dark reds became light-on-light */
.vcmp-scope-lbl,.vcmp-scope-s,.vcmp-scope-t { color:var(--espresso-800) !important; }
.vcmp-scope-n { color:var(--espresso-900) !important; font-weight:600; }

/* brand-coloured chat buttons keep their own white-on-brand treatment */
.fab-option.wa,.fab-option.vb,.fab-option.mg,.fab-option.wa *,
.fab-option.vb *,.fab-option.mg * { color:#fff !important; }

/* gold-filled bars and pills: --gold is now a DARK accent, so anything
   filled with it needs light text rather than the old dark-on-bright */
.uk-bookbar-btn.gold,.pf-btn.active,.pcard-cta,.card-cta,
.pr-cta,.lg20-cta,.har-cta,.cmp-cta,
.pr-badge,.lg20-badge,.har-badge,.rfo-badge,.card-badge,
.inv-tower-tag.rfo,th.cmp-hl,.pcard-tag-hot {
  color:var(--linen-100) !important;
}
/* …but the outline/table variants of those are NOT filled */
.pcard-cta.outline,.card-cta.outline,.btn.outline,
td.cmp-hl,td.cpt-hl { color:var(--espresso-800) !important; }
td.cmp-hl,td.cpt-hl { font-weight:600; }

/* homepage kicker: the page's own rule loads after this file */
.t-kicker { color:var(--clay-600) !important; }

/* Fortis captions sit on photography inside the image frame */
.interior-label,.unit-variant-btn,.amenity-card .label,
.amenity-item .label,.gallery-label,.am-card .label {
  color:var(--linen-100) !important;
}
/* full-bleed editorial blocks (Fortis / One South Drive) print over
   photography, so their labels and copy stay light */
.full-bleed-content,.full-bleed-content *,
.full-bleed-content .label { color:var(--linen-100) !important; }
.full-bleed-content .label,.full-bleed-content .eyebrow { color:var(--beige-400) !important; }

/* light-filled badge variants must not inherit the gold-fill treatment */
.card-badge.badge-ps,.card-badge.badge-rfo.outline,.pcard-tag {
  color:var(--espresso-800) !important;
}
.card-turnover,.prop-card-turnover,.card-chip,.img-chip {
  color:var(--linen-100) !important;
}
.pcard-urgency.warm { color:#6B4A3C !important; }
.pcard-urgency.hot  { color:#8E2A1C !important; }
.status.now,.status.soon { color:#1F6B4A !important; }
.pcard-qual .small,.pcard-qual span.small { color:var(--espresso-700) !important; }

/* the fixed "Book a Viewing" bar is an espresso anchor on every page */
.uk-bookbar {
  background:rgba(42,33,29,.95) !important;
  border-top:1px solid var(--espresso-700) !important;
}
.uk-bookbar-txt,.uk-bookbar a,.uk-bookbar b,.uk-bookbar span {
  color:var(--linen-100) !important;
}
.uk-bookbar-btn.ghost {
  color:var(--linen-100) !important;
  border-color:rgba(247,242,234,.38) !important;
  background:rgba(247,242,234,.08) !important;
}

/* badges pinned over photography keep their espresso plate */
.overview-badge { background:rgba(30,23,20,.88) !important; }
/* photo captions get their own plate so they never rely on the image */
.interior-label,.gallery-caption {
  background:rgba(30,23,20,.72) !important;
  padding:6px 12px !important; border-radius:6px !important;
}
.overview-badge-value,.overview-badge *,.photo-badge,.photo-badge * {
  color:var(--linen-100) !important;
}
.overview-badge-label { color:var(--beige-400) !important; }

/* .cpt-cta is styled only inside #compare-payment-terms upstream; on a few
   pages the button sits outside that container and lost its fill entirely */
.cpt-cta {
  background:var(--gold) !important;
  color:var(--linen-100) !important;
  display:inline-flex; align-items:center;
  padding:14px 26px; border-radius:3px; min-height:44px;
  font-weight:700; letter-spacing:.12em; text-transform:uppercase;
}
.cpt-cta:hover { background:var(--clay-700) !important; color:var(--linen-50) !important; }

/* gold-filled comparison winners */
/* more specific than the `.vcmp-table th` rule below, which would otherwise
   win on source order and paint the gold winner column espresso-on-espresso */
.vcmp-table th.vcmp-win,.vcmp-table td.vcmp-win,.vcmp-table th.vcmp-win *,
.cmp-table th.cmp-win,th.vcmp-win,td.vcmp-win,.vcmp-win *,
th.cmp-win,.cmp-win,.cmp-win * { color:var(--linen-100) !important; }
/* small print inside the promo qualifier panels — scoped to page content so
   the espresso footer keeps its light small print */
main span.small,section span.small,.pcard span.small,
.pcard-qual .small,.qual-note { color:var(--espresso-800) !important; }
.footer span.small,.site-footer span.small { color:var(--stone-300) !important; }
/* promo qualifier panels sit on a deeper beige */
.pcard-qual,.pcard-qual *,.promo-note,.promo-note * { color:var(--espresso-800) !important; }

/* comparison tables: header row is linen now, so its text goes espresso.
   Scoped — .promo-table keeps its espresso header with light text. */
.cmp-table th,.cpt-table th,.vcmp-table th { color:var(--espresso-800) !important; }
th.cmp-hl,th.cpt-hl { color:var(--linen-100) !important; }

/* colophon lines that were low-alpha white on a dark footer */
footer div:not([class]),.footer-credit,.powered-by {
  color:var(--espresso-500) !important;
}
.footer footer div:not([class]),.footer div:not([class]) {
  color:var(--stone-300) !important;
}
/* computation tool: faint agent copy */
.agent-bio,.agent-section a,.agent-section p { color:var(--espresso-500) !important; }
.cb-num,.cb-lbl { color:var(--linen-100) !important; }

/* ============================================================
   MOTION PREFERENCES
   ============================================================ */
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
