/* ── THEME ADJUSTMENTS ──
   Loaded after css/elliman-theme.css (Chris's theme file, kept unchanged). These cover parts of the
   site the theme was not tested on, plus Chris's earlier choices that still apply. */

/* Chris (2026-10-14): menu words bold; card headings bold. Libre Caslon Display has no bold,
   so bold card headings use its companion Libre Caslon Text 700. */
html:root body .nav .nav-links a, html:root body .nav .nav-cta { font-weight: 600 !important; }
html:root body :is(
  .pathway-grid > a h4, .intro-badge strong, .cta-glass h2, .area-name, .area-card-image-label,
  .sidebar-card h4, .sidebar-widget h4, .sidebar-block h4, .sidebar-cta-block h4,
  .data-card h4, .neighborhood-card h4, .thing-card h5, .pros h4, .cons h4, .faq-item .faq-q,
  .approach-item h4, .marketing-card h4, .why-card h4, .insight-box h5, .insight-box-title,
  .featured-post h2, .post-card h3, .contact-form-card h3, .val-form-card h3,
  .journey-title, .journey-list h4, .tl-detail-card h4, .report-section > h2,
  .mm-info h3, .mm-method h4
) { font-family: 'Libre Caslon Text', Georgia, serif !important; font-weight: 700 !important; }

/* ── Content that sits outside <section> (neighborhood guides, blog posts) ──
   The theme recolors text inside sections; these page blocks get the same treatment. */
html:root body :is(.area-layout, .toc-section, .article-layout) *:not(.btn):not(.btn *):not(.btn-cta):not(.btn-cta *) {
  color: #111 !important; -webkit-text-fill-color: #111 !important;
}
html:root body :is(.area-layout, .article-layout) :is(p, li, td, .data-row-label, .sidebar-stat-label) {
  color: #555 !important; -webkit-text-fill-color: #555 !important; opacity: 1 !important;
}
html:root body :is(.area-layout, .toc-section, .article-layout) :is([class*=eyebrow], .toc-label, .data-table-title, .insight-box-title, .tl-detail-label) {
  color: #777 !important; -webkit-text-fill-color: #777 !important; opacity: 1 !important; text-transform: uppercase; letter-spacing: .2em;
}
html:root body :is(.area-layout, .article-layout) :is(.data-row-value, .sidebar-stat-value, td:last-child, strong) {
  color: #111 !important; -webkit-text-fill-color: #111 !important;
}
html:root body :is(.area-layout, .article-layout) [class*=rule] { background: #111 !important; height: 1px !important; }
html:root body :is(.area-layout, .article-layout) :is(.data-row, .sidebar-stat, td) { border-color: #e5e5e5 !important; }
html:root body .toc-section { background: #f6f6f4 !important; border-top: 1px solid #e5e5e5 !important; border-bottom: 1px solid #e5e5e5 !important; }
html:root body :is(.toc-link, .cat-tag) { background: #fff !important; border: 1px solid #ddd !important; color: #111 !important; -webkit-text-fill-color: #111 !important; }
html:root body :is(.toc-link, .cat-tag):hover { border-color: #111 !important; }
html:root body .article-body li::before, html:root body .area-layout li::before { color: #111 !important; -webkit-text-fill-color: #111 !important; }
html:root body .pull-quote { border-left: 2px solid #111 !important; background: #f6f6f4 !important; }
html:root body .pull-quote, html:root body .pull-quote * { color: #111 !important; -webkit-text-fill-color: #111 !important; }
html:root body .data-table-wrap, html:root body .insight-box { background: #fff !important; border: 1px solid #ddd !important; }

/* Pros / cons: readable green and red on white */
html:root body .pros { background: #f2f8f4 !important; border: 1px solid #cfe5d7 !important; }
html:root body .cons { background: #fbf2f1 !important; border: 1px solid #f0d3cf !important; }
html:root body .pros h4 { color: #1f6b43 !important; -webkit-text-fill-color: #1f6b43 !important; }
html:root body .cons h4 { color: #a3302a !important; -webkit-text-fill-color: #a3302a !important; }

/* Buttons the theme doesn't name */
html:root body section:not(.ell-hero) .btn-white,
html:root body :is(.article-layout, .area-layout) .btn-cta-gold {
  background: #111 !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border: 1px solid #111 !important;
}
html:root body :is(.article-layout, .area-layout) :is(.btn-cta-glass, .btn-outline) {
  background: transparent !important; color: #111 !important; -webkit-text-fill-color: #111 !important; border: 1px solid #111 !important;
}
html:root body .ell-hero .btn-white { background: #fff !important; color: #111 !important; -webkit-text-fill-color: #111 !important; border: 1px solid #fff !important; }
html:root body .ell-hero .btn-glass { background: transparent !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border: 1px solid #fff !important; }
html:root body section:not(.ell-hero):not(.zz):not(.zy):not(.zx) button[type=submit] {
  background: #111 !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border: 1px solid #111 !important;
}

/* Language switch: the language you're not on, in a gray that is still easy to read */
html:root body .nav .lang-toggle a { color: #6b6b6b !important; -webkit-text-fill-color: #6b6b6b !important; }

/* Rate forecast tables: forecast rows bold black instead of gold */
html:root body .report .rate-table td:last-child, html:root body .report .rate-table tr.is-forecast td:last-child { color: #111 !important; -webkit-text-fill-color: #111 !important; }
html:root body .report .rate-table tr.is-forecast td:last-child { font-weight: 600 !important; }
html:root body .report .rate-table th { background: #f6f6f4 !important; }
html:root body .report .rate-table :is(td, th), html:root body .rate-table-wrap { border-color: #e5e5e5 !important; }
html:root body .is-forecast .rate-status { color: #111 !important; -webkit-text-fill-color: #111 !important; }

/* Buy page timeline (SVG and phone list), redrawn in black and gray */
.tl-axis, .tl-tick { stroke: #111 !important; }
.tl-day, .tl-label { fill: #111 !important; }
.tl-lane { fill: #777 !important; }
.tl-sep { stroke: #e5e5e5 !important; }
.tl-branch-deadline { stroke: #111 !important; }
.tl-branch-step, .tl-branch-span { stroke: #b5b5b5 !important; }
.tl-deadline .tl-dot, .tl-deadline .tl-bar { fill: #111 !important; }
.tl-step .tl-dot { fill: #fff !important; stroke: #111 !important; }
.tl-span .tl-bar { fill: #cfcfcf !important; }
.tl-ev:hover .tl-dot, .tl-ev:hover .tl-bar, .tl-ev.selected .tl-dot, .tl-ev.selected .tl-bar { stroke: #111 !important; }
.tl-ev.selected .tl-bar { stroke-width: 3 !important; }
.tl-list::before { background: #ddd !important; }
.tl-item.tl-deadline .tl-mark, .tl-key-deadline { background: #111 !important; }
.tl-item.tl-step .tl-mark, .tl-key-step { background: #fff !important; border: 2px solid #111 !important; }
.tl-item.tl-span .tl-mark, .tl-key-span { background: #cfcfcf !important; }
.tl-item.selected .tl-mark { box-shadow: 0 0 0 3px #fff, 0 0 0 4px #111 !important; }
html:root body .tl-item:hover, html:root body .tl-item.selected { background: #f6f6f4 !important; }
html:root body section .tl-item-when { color: #111 !important; -webkit-text-fill-color: #111 !important; font-weight: 600 !important; }
.journey-card[aria-expanded="true"] { border-color: #111 !important; }
.journey-chevron { border-color: #111 !important; }
.journey-list li::before { border-color: #111 !important; color: #111 !important; -webkit-text-fill-color: #111 !important; }

/* Market Map (still hidden): light map */
.market-svg .water { fill: #eef1f4 !important; }
.market-svg .ctx { fill: #e4e4e1 !important; stroke: #fff !important; }
.market-svg .county { stroke: #fff !important; }
.market-svg .county[data-market="none"] { fill: #c9c9c5 !important; }
.market-svg .county-focus { stroke: #111 !important; }
.market-svg .county-label { fill: #111 !important; stroke: rgba(255,255,255,.85) !important; }
.market-svg .city circle { fill: #111 !important; stroke: #fff !important; }
.market-svg .city text { fill: #333 !important; stroke: rgba(255,255,255,.85) !important; }

/* Homepage hero: the old design's dark overlay and blue/gold glow layers sit on top of the theme's own
   shading; hide them so the photo shows with just the theme's gradient */
html:root body .ell-hero :is(.hero-overlay, .hero-bleed) { display: none !important; }

/* "Glass" buttons outside the hero (e.g. "More About Me"): the theme's outlined black style */
html:root body section:not(.ell-hero) .btn-glass {
  background: transparent !important; color: #111 !important; -webkit-text-fill-color: #111 !important; border: 1px solid #111 !important;
}
html:root body section:not(.ell-hero) .btn-glass:hover { background: #111 !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
/* Old design's colored glow layers (cards and sections): not part of the editorial look */
html:root body [class*=bleed] { display: none !important; }
/* Timeline labels: the theme capitalizes and spaces anything called "label"; these need normal text to fit */
html:root body section:not(.ell-hero) .tl-label { text-transform: none !important; letter-spacing: 0 !important; }
html:root body .tl-svg .tl-label { paint-order: stroke; stroke: #ffffff; stroke-width: 5px; stroke-linejoin: round; }

/* Hero content always starts clear of the fixed menu bar (taller on phones, where the logo stacks taller) */
html:root body section.ell-hero { padding-top: 130px !important; padding-bottom: 70px !important; box-sizing: border-box; }
@media (max-width: 960px) { html:root body section.ell-hero { padding-top: 175px !important; padding-bottom: 60px !important; } }

/* ── Floating cards that bob on hover (Chris, 2026-10-14) ──
   A soft shadow lifts cards off the white/off-white background; on hover they rise with a small bounce
   and settle. Long reading panels (stats tables, sidebars, report sections) float but don't move. */
html:root body :is(
  .pathway-grid > a, .area-card, .area-big-card, .testimonial, .journey-card, .post-card, .featured-post,
  .neighborhood-card, .thing-card, .marketing-card, .approach-item, .why-card, .value, .faq-item,
  .data-card, .sidebar-widget, .sidebar-card, .sidebar-block, .sidebar-cta-block, .tl-detail-card,
  .report-section, .insight-box, .data-table-wrap, .contact-form-card, .mm-info, .mm-map-card, .cta-glass, .intro-badge
) {
  box-shadow: 0 1px 2px rgba(17,17,17,.04), 0 10px 28px rgba(17,17,17,.07) !important;
}
html:root body :is(
  .pathway-grid > a, .area-card, .area-big-card, .testimonial, .journey-card, .post-card, .featured-post,
  .neighborhood-card, .thing-card, .marketing-card, .approach-item, .why-card, .value
) {
  transition: transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease !important;
  will-change: transform;
}
@keyframes card-bob {
  0%   { transform: translateY(0); }
  40%  { transform: translateY(-11px); }
  65%  { transform: translateY(-5px); }
  85%  { transform: translateY(-8px); }
  100% { transform: translateY(-7px); }
}
html:root body :is(
  .pathway-grid > a, .area-card, .area-big-card, .testimonial, .journey-card, .post-card, .featured-post,
  .neighborhood-card, .thing-card, .marketing-card, .approach-item, .why-card, .value
):hover {
  /* not !important: an !important transform would block the bounce animation */
  transform: translateY(-7px);
  animation: card-bob .6s ease-out both;
  box-shadow: 0 2px 4px rgba(17,17,17,.05), 0 22px 44px rgba(17,17,17,.14) !important;
}
@media (prefers-reduced-motion: reduce) {
  html:root body :is(.pathway-grid > a, .area-card, .area-big-card, .testimonial, .journey-card, .post-card, .featured-post,
    .neighborhood-card, .thing-card, .marketing-card, .approach-item, .why-card, .value):hover { animation: none; transform: none !important; }
}
/* The reviews wall uses inline-block cards; keep their lift from clipping at the column top */
.reviews-wall { padding-top: 12px; }

/* ── Header logo: The Real Estate Collection (Chris, 2026-10-14) ──
   Two copies of the logo sit in the header: grey lettering for the white bar, white lettering for over a photo.
   The theme blacks out header images with a filter; these keep their gold. */
html:root body .nav .nav-logo img { filter: none !important; height: 84px; width: auto; transition: height .35s ease, opacity .25s; }
html:root body .nav.scrolled .nav-logo img { height: 66px; }
html:root body .nav .nav-logo .logo-on-photo { display: none; }
@media (max-width: 760px) {
  html:root body .nav .nav-logo img { height: 64px; }
  html:root body .nav.scrolled .nav-logo img { height: 54px; }
}

/* ── Homepage: header see-through over the photo, white once you scroll ── */
html:root body .nav.nav-over-photo { transition: background-color .35s ease, border-color .35s ease, padding .35s ease !important; }
html:root body .nav.nav-over-photo:not(.scrolled) {
  background: transparent !important; border-bottom-color: transparent !important; box-shadow: none !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  background-image: linear-gradient(180deg, rgba(0,0,0,.38), rgba(0,0,0,0)) !important;
}
html:root body .nav.nav-over-photo:not(.scrolled) .logo-on-white { display: none; }
html:root body .nav.nav-over-photo:not(.scrolled) .logo-on-photo { display: block; }
html:root body .nav.nav-over-photo:not(.scrolled) :is(.nav-links a, .lang-toggle a, .lang-toggle span) {
  color: #fff !important; -webkit-text-fill-color: #fff !important;
}
html:root body .nav.nav-over-photo:not(.scrolled) .lang-toggle a { opacity: .75 !important; }
html:root body .nav.nav-over-photo:not(.scrolled) .lang-toggle [aria-current] { border-bottom-color: #fff !important; }
html:root body .nav.nav-over-photo:not(.scrolled) .nav-cta {
  background: transparent !important; border-color: #fff !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
}
html:root body .nav.nav-over-photo:not(.scrolled) .hamburger span { background: #fff !important; }

/* ── Hero titles: the italic line ("Central Florida") was see-through; solid white now ── */
html:root body .ell-hero h1 :is(em, span) { opacity: 1 !important; }

/* ── Footer: all text white, social links bold ── */
html:root body .footer *, html:root body .footer a { color: #fff !important; -webkit-text-fill-color: #fff !important; }
html:root body .footer :is(p, a, h5, li, span, div, img) { opacity: 1 !important; }
html:root body .footer .footer-social a { font-weight: 700 !important; opacity: 1 !important; }

/* ── Insights: the featured post's dark title tile keeps white lettering ── */
html:root body section:not(.ell-hero) .featured-post .featured-img:not(.zz),
html:root body section:not(.ell-hero) .featured-post .featured-img:not(.zz) *:not(.zz) {
  color: #fff !important; -webkit-text-fill-color: #fff !important;
}
html:root body .featured-post .featured-img div:first-child > div:first-child { opacity: .8; }

/* ── Dark outline buttons (e.g. "Ask Christian") were white on white: solid black like the other buttons ── */
html:root body section:not(.ell-hero) .btn-outline-dark {
  display: inline-flex !important; background: #111 !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
  border: 1px solid #111 !important; opacity: 1 !important; visibility: visible !important;
}
html:root body section:not(.ell-hero) .btn-outline-dark:hover { background: #fff !important; color: #111 !important; -webkit-text-fill-color: #111 !important; }

/* ── Inner-page hero photos (each page has its own since 2026-10-14): a little more shade so the white
   title reads on bright interiors. The homepage keeps the theme's lighter shade. ── */
html:root body section.ell-hero:not(.hero) {
  background: linear-gradient(90deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.28) 100%), var(--hero-img) center/cover no-repeat !important;
}
