/* ==========================================================================
   Daviess County Master Commissioner — theme.css
   Design system + components + Elementor compensation layer.
   Rules that Elementor's kit also styles are prefixed `body .elementor` so
   they win in the editor (0,3,1) without beating the client's own controls.
   ========================================================================== */

/* ---------- Tokens ------------------------------------------------------ */
:root {
  --navy-950: #07142B; --navy-900: #0B1F3F; --navy-800: #12305E; --navy-700: #1A417C; --navy-100: #DCE4F2;
  --gold-600: #A8851C; --gold-500: #C9A227; --gold-400: #D9B84A; --gold-300: #E8CF7A; --gold-100: #FBF1D3;
  --ivory-50: #FAF8F3; --paper-100: #F3EFE6; --sand-200: #E6DFCF; --sand-300: #D3C9B2;
  --ink-900: #14202E; --ink-700: #33465C; --ink-500: #5B6B7C; --ink-300: #9AA7B5;
  --ok-700: #1F7A4D; --ok-100: #E6F4EC; --bad-700: #B23A3A; --bad-100: #F9E7E7; --warn-700: #8A6A0E; --warn-100: #FBF1D3;
  --font-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --radius: 14px; --radius-sm: 8px;
  --shadow: 0 18px 44px -22px rgba(7,20,43,.45), 0 2px 6px rgba(7,20,43,.06);
  --shadow-lg: 0 30px 70px -30px rgba(7,20,43,.55), 0 4px 12px rgba(7,20,43,.08);
  --container: 1200px; --gutter: clamp(16px, 4vw, 40px);
  --header-h: 84px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

/* ---------- Base -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0; background: var(--ivory-50); color: var(--ink-700);
  font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.65;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--navy-700); text-decoration-thickness: 1px; text-underline-offset: .15em; }
a:hover { color: var(--navy-900); }
:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4, .h-display { font-family: var(--font-display); color: var(--navy-900); line-height: 1.12; margin: 0 0 .5em; font-weight: 700; letter-spacing: -.01em; }
h1 { font-size: clamp(2.3rem, 4.6vw, 3.9rem); }
h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
h3 { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
h4 { font-size: 1.1rem; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
strong, b { color: var(--ink-900); }
hr { border: 0; border-top: 1px solid var(--sand-200); margin: 2rem 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.skip-link { position: absolute; left: 8px; top: -60px; z-index: 1000; background: var(--navy-900); color: #fff; padding: 10px 14px; border-radius: 6px; }
.skip-link:focus { top: 8px; }
::selection { background: var(--gold-300); color: var(--navy-950); }

/* ---------- Layout primitives ------------------------------------------ */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.section { position: relative; padding-block: clamp(56px, 8vw, 104px); }
.section--tight { padding-block: clamp(36px, 5vw, 64px); }
.sec-white { background: #fff; }
.sec-ivory { background: var(--ivory-50); }
.sec-paper { background: var(--paper-100); }
.sec-navy { background: var(--navy-900); color: var(--navy-100); }
.sec-navy h1, .sec-navy h2, .sec-navy h3, .sec-navy h4 { color: #fff; }
.sec-navy p { color: var(--navy-100); }
.sec-navy a:not(.dcmc-btn) { color: var(--gold-300); }
.sec-navy strong, .sec-navy b { color: #fff; }

/* ---------- Type helpers ------------------------------------------------ */
.eyebrow { font-family: var(--font-body); font-weight: 700; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-600); margin: 0 0 .9rem; display: block; }
.sec-navy .eyebrow, .hero .eyebrow { color: var(--gold-400); }
.eyebrow:not(.elementor-widget)::before { content: ""; display: inline-block; width: 26px; height: 2px; background: currentColor; vertical-align: middle; margin-right: 10px; border-radius: 2px; }
.lede { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.6; color: var(--ink-500); }
.lede:not(.elementor-widget) { max-width: 62ch; }
.sec-navy .lede, .hero .lede { color: #D7DFEE; }
.small { font-size: .92rem; color: var(--ink-500); }
.mono { font-family: var(--font-mono); font-size: .92em; letter-spacing: .01em; }
.center { text-align: center; }
.center .lede:not(.elementor-widget), .center .eyebrow:not(.elementor-widget) { margin-inline: auto; }
.narrow { max-width: 760px; margin-inline: auto; }
.rich:not(.elementor-widget) { max-width: 76ch; }
.rich h2 { margin-top: 2rem; font-size: clamp(1.4rem,2vw,1.8rem); }
.rich h3 { margin-top: 1.6rem; }
.rich ul, .rich ol { padding-left: 1.3em; }
.rich li { margin-bottom: .45em; }
.rich blockquote { margin: 1.5rem 0; padding: 1rem 1.25rem; border-left: 4px solid var(--gold-500); background: var(--gold-100); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--ink-900); }

/* ---------- Buttons ----------------------------------------------------- */
.dcmc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55em;
  font-family: var(--font-body); font-weight: 700; font-size: .98rem; letter-spacing: .01em;
  padding: .9em 1.5em; border-radius: 999px; text-decoration: none; border: 2px solid transparent;
  cursor: pointer; line-height: 1.1; transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s, color .18s, border-color .18s;
  white-space: nowrap;
}
.dcmc-btn:hover { transform: translateY(-2px); }
.dcmc-btn:active { transform: translateY(0); }
.dcmc-btn--gold { background: var(--gold-500); color: var(--navy-950); box-shadow: 0 10px 24px -12px rgba(201,162,39,.8); }
.dcmc-btn--gold:hover { background: var(--gold-400); color: var(--navy-950); box-shadow: 0 14px 30px -12px rgba(201,162,39,.9); }
.dcmc-btn--navy { background: var(--navy-900); color: #fff; }
.dcmc-btn--navy:hover { background: var(--navy-800); color: #fff; }
.dcmc-btn--ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.dcmc-btn--ghost:hover { background: rgba(255,255,255,.1); color: #fff; border-color: #fff; }
.dcmc-btn--outline { background: transparent; color: var(--navy-900); border-color: var(--navy-900); }
.dcmc-btn--outline:hover { background: var(--navy-900); color: #fff; }
.dcmc-btn--sm { padding: .62em 1.1em; font-size: .88rem; }
.dcmc-btn svg { width: 1em; height: 1em; }
.dcmc-btn .arrow { transition: transform .18s var(--ease); }
.dcmc-btn:hover .arrow { transform: translateX(3px); }

/* ---------- Badges ------------------------------------------------------ */
.dcmc-badge { display: inline-flex; align-items: center; gap: .4em; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .32em .7em; border-radius: 999px; line-height: 1.2; white-space: nowrap; }
.dcmc-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.dcmc-badge--scheduled { background: var(--warn-100); color: var(--warn-700); }
.dcmc-badge--sold { background: var(--ok-100); color: var(--ok-700); }
.dcmc-badge--cancelled { background: var(--bad-100); color: var(--bad-700); }
.dcmc-badge--next { background: var(--navy-900); color: var(--gold-300); }
.dcmc-badge--next::before { background: var(--gold-400); box-shadow: 0 0 0 4px rgba(217,184,74,.25); }

/* ---------- Header ------------------------------------------------------ */
.site-header { position: sticky; top: 0; z-index: 900; background: rgba(250,248,243,.92); backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid rgba(20,32,46,.08); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.topbar { background: var(--navy-950); color: #C9D3E6; font-size: .8rem; letter-spacing: .01em; }
.topbar .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; }
.topbar a { color: #E8EEF9; text-decoration: none; }
@media (max-width: 480px) { .topbar { font-size: .74rem; } .topbar__group { gap: 14px; } }
.topbar a:hover { color: var(--gold-300); }
.topbar__item { display: inline-flex; align-items: center; gap: .45em; white-space: nowrap; }
.topbar__item svg { width: 14px; height: 14px; opacity: .8; }
.topbar__group { display: flex; gap: 22px; }
@media (max-width: 900px) { .topbar__left { display: none; } .topbar .container { justify-content: center; } }
@media (max-width: 560px) { .topbar__hours { display: none; } }
.mainbar .container { display: flex; align-items: center; gap: 28px; min-height: var(--header-h); }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--navy-900); flex: 0 0 auto; }
.brand img { width: 52px; height: 52px; border-radius: 50%; box-shadow: 0 4px 12px rgba(7,20,43,.18); }
.brand__text { display: flex; flex-direction: column; line-height: 1.1; }
.brand__kicker { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-600); font-weight: 700; }
.brand__name { font-family: var(--font-display); font-weight: 700; font-size: 1.28rem; color: var(--navy-900); }
.nav { margin-left: auto; }
.nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.nav li { position: relative; }
.nav a { display: block; padding: .6em .9em; font-weight: 600; font-size: .95rem; color: var(--ink-700); text-decoration: none; border-radius: 8px; transition: background .15s, color .15s; }
.nav a:hover { background: var(--paper-100); color: var(--navy-900); }
.nav .current-menu-item > a, .nav .current_page_item > a, .nav .is-current > a { color: var(--navy-900); }
.nav .current-menu-item > a::after, .nav .current_page_item > a::after, .nav .is-current > a::after { content: ""; position: absolute; left: .9em; right: .9em; bottom: 2px; height: 2px; background: var(--gold-500); border-radius: 2px; }
.nav ul ul { display: none; position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff; border-radius: 10px; box-shadow: var(--shadow); padding: 6px; flex-direction: column; gap: 0; }
.nav li:hover > ul, .nav li:focus-within > ul { display: flex; }
.header-cta { flex: 0 0 auto; }
.nextpill { display: inline-flex; align-items: center; gap: 10px; background: var(--navy-900); color: #fff; text-decoration: none; padding: 8px 14px 8px 8px; border-radius: 999px; font-size: .84rem; font-weight: 600; box-shadow: 0 10px 24px -14px rgba(7,20,43,.7); transition: transform .18s var(--ease), background .18s; }
.nextpill:hover { background: var(--navy-800); color: #fff; transform: translateY(-1px); }
.nextpill__date { background: var(--gold-500); color: var(--navy-950); border-radius: 999px; padding: 4px 10px; font-weight: 800; letter-spacing: .02em; }
.nextpill__label { opacity: .9; }
.nav-toggle { display: none; margin-left: auto; background: transparent; border: 1px solid var(--sand-300); border-radius: 10px; width: 46px; height: 46px; align-items: center; justify-content: center; cursor: pointer; color: var(--navy-900); }
.nav-toggle span { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }
.nav-toggle span::before, .nav-toggle span::after { content: ""; position: absolute; left: 0; width: 20px; height: 2px; background: currentColor; transition: transform .2s; }
.nav-toggle span::before { top: -6px; } .nav-toggle span::after { top: 6px; }
@media (max-width: 1080px) {
  .brand__name { font-size: 1.1rem; }
  .nav a { padding: .55em .65em; font-size: .9rem; }
  .nextpill__label { display: none; }
}
@media (max-width: 900px) {
  .nav-toggle { display: inline-flex; }
  .header-cta { display: none; }
  .nav { position: fixed; inset: 0; top: 0; background: var(--navy-950); z-index: 950; margin: 0; padding: 96px var(--gutter) 40px; display: none; }
  .nav.is-open { display: block; }
  .nav ul { flex-direction: column; gap: 6px; }
  .nav a { font-family: var(--font-display); font-size: 1.6rem; color: #fff; padding: .45em 0; border-radius: 0; }
  .nav a:hover { background: transparent; color: var(--gold-300); }
  .nav .current-menu-item > a::after, .nav .current_page_item > a::after, .nav .is-current > a::after { display: none; }
  .nav .current-menu-item > a, .nav .is-current > a { color: var(--gold-300); }
  .nav__cta { margin-top: 24px; }
  body.nav-open { overflow: hidden; }
  body.nav-open .nav-toggle { position: fixed; top: 22px; right: var(--gutter); z-index: 960; color: #fff; border-color: rgba(255,255,255,.3); }
  body.nav-open .nav-toggle span { background: transparent; }
  body.nav-open .nav-toggle span::before { transform: translateY(6px) rotate(45deg); }
  body.nav-open .nav-toggle span::after { transform: translateY(-6px) rotate(-45deg); }
}
.nav__cta { display: none; }
@media (max-width: 900px) { .nav__cta { display: block; } }

/* ---------- Hero -------------------------------------------------------- */
.hero { position: relative; isolation: isolate; color: #fff; background: var(--navy-950) center/cover no-repeat; overflow: hidden; padding-block: clamp(64px, 9vw, 120px); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(82deg, rgba(7,20,43,.96) 0%, rgba(11,31,63,.88) 42%, rgba(11,31,63,.35) 100%); }
.hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; z-index: 0; background: linear-gradient(180deg, rgba(7,20,43,0), rgba(7,20,43,.6)); pointer-events: none; }
.hero > .container, body .elementor .elementor-section.hero > .elementor-container { position: relative; z-index: 2; }
.hero h1 { color: #fff; font-size: clamp(2.5rem, 5.2vw, 4.4rem); text-wrap: balance; }
.hero h1 em { font-style: italic; color: var(--gold-300); }
.hero .lede { color: #D7DFEE; font-size: clamp(1.08rem, 1.5vw, 1.28rem); }
.hero .lede:not(.elementor-widget) { max-width: 56ch; }
.hero .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.6rem; }
.hero-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .9fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
@media (max-width: 960px) { .hero-cols { grid-template-columns: 1fr; } }
.hero-trust:not(.elementor-widget) { display: flex; flex-wrap: wrap; gap: 8px 26px; margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .85rem; color: #C9D3E6; }
.hero-trust span { display: inline-flex; align-items: center; gap: .5em; }
.hero-trust svg { width: 16px; height: 16px; color: var(--gold-400); }
.hero .eyebrow { color: var(--gold-400); }
/* small page hero (inner pages) */
.hero--page { padding-block: clamp(48px, 6vw, 84px); }
.hero--page h1 { font-size: clamp(2.2rem, 4vw, 3.4rem); margin-bottom: .35em; }
.hero--page .lede { margin-bottom: 0; }
.hero--page .crumbs { font-size: .82rem; color: #B9C4D8; margin-bottom: 1.2rem; display: flex; gap: .6em; flex-wrap: wrap; }
.hero--page .crumbs a { color: #E8EEF9; text-decoration: none; }
.hero--page .crumbs a:hover { color: var(--gold-300); }
.hero--page .crumbs span::before { content: "›"; margin-right: .6em; opacity: .5; }

/* ---------- Next-sale card --------------------------------------------- */
.dcmc-nextsale { position: relative; background: #fff; color: var(--ink-700); border-radius: var(--radius); padding: clamp(22px, 3vw, 32px); box-shadow: var(--shadow-lg); border-top: 5px solid var(--gold-500); max-width: 460px; }
.dcmc-nextsale::after { content: ""; position: absolute; right: 18px; top: 18px; width: 56px; height: 56px; background: url("../img/seal-64.png") center/contain no-repeat; opacity: .12; }
.dcmc-nextsale__eyebrow { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-600); margin: 0 0 .8rem; }
.dcmc-nextsale__date { display: flex; align-items: baseline; gap: 10px; margin: 0 0 .3rem; font-family: var(--font-display); color: var(--navy-900); line-height: 1; }
.dcmc-nextsale__month { font-size: 1.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.dcmc-nextsale__day { font-size: clamp(3.2rem, 5vw, 4.4rem); font-weight: 800; letter-spacing: -.03em; }
.dcmc-nextsale__year { font-size: 1.1rem; color: var(--ink-500); font-family: var(--font-body); font-weight: 600; }
.dcmc-nextsale__when { margin: 0 0 .9rem; font-weight: 600; color: var(--navy-900); }
.dcmc-nextsale__in { display: inline-block; background: var(--gold-100); color: var(--warn-700); padding: .15em .6em; border-radius: 999px; font-size: .82rem; font-weight: 700; letter-spacing: .04em; }
.dcmc-nextsale__where { margin: 0 0 1rem; font-size: .93rem; color: var(--ink-500); line-height: 1.5; padding-left: 22px; position: relative; }
.dcmc-nextsale__where::before { content: ""; position: absolute; left: 0; top: .32em; width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--gold-500); }
.dcmc-nextsale__count { margin: 0 0 1.2rem; font-size: .95rem; }
.dcmc-nextsale__count b { font-size: 1.35rem; color: var(--navy-900); font-family: var(--font-display); }
.dcmc-nextsale .dcmc-btn { width: 100%; }
.dcmc-nextsale--none .dcmc-nextsale__text { color: var(--ink-500); }
.dcmc-nextsale--none .dcmc-nextsale__date { display: none; }

/* ---------- Stats band -------------------------------------------------- */
.dcmc-stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.dcmc-stat { position: relative; padding: 22px 20px 20px 24px; border-radius: var(--radius-sm); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); }
.dcmc-stat::before { content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 3px; background: var(--gold-500); border-radius: 2px; }
.dcmc-stat__n { display: block; font-family: var(--font-display); font-size: clamp(2rem, 3.4vw, 2.9rem); font-weight: 800; color: #fff; line-height: 1; letter-spacing: -.02em; }
.dcmc-stat__l { display: block; margin-top: 8px; font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: #B9C4D8; font-weight: 600; }
@media (max-width: 900px) { .dcmc-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .dcmc-stats { grid-template-columns: 1fr; } }
.sec-white .dcmc-stat, .sec-ivory .dcmc-stat { background: #fff; border-color: var(--sand-200); box-shadow: var(--shadow); }
.sec-white .dcmc-stat__n, .sec-ivory .dcmc-stat__n { color: var(--navy-900); }
.sec-white .dcmc-stat__l, .sec-ivory .dcmc-stat__l { color: var(--ink-500); }

/* ---------- Cards / grids ---------------------------------------------- */
.dcmc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1000px) { .dcmc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .dcmc-cards { grid-template-columns: 1fr; } }
.dcmc-card { background: #fff; border-radius: var(--radius); border: 1px solid var(--sand-200); box-shadow: 0 1px 2px rgba(7,20,43,.04); transition: transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s; overflow: hidden; }
.dcmc-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--sand-300); }
.dcmc-card__link { display: flex; flex-direction: column; gap: 10px; padding: 22px 22px 20px; height: 100%; text-decoration: none; color: inherit; }
.dcmc-card__eyebrow { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-600); margin: 0; }
.dcmc-card__title { font-family: var(--font-display); font-size: 1.28rem; color: var(--navy-900); margin: 0; line-height: 1.25; }
.dcmc-card__case { font-size: .9rem; color: var(--ink-500); margin: 0; }
.dcmc-card__case span { display: block; font-family: var(--font-mono); font-size: .8rem; color: var(--ink-300); margin-top: 2px; }
.dcmc-card__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 6px 0 4px; padding: 12px 0 0; border-top: 1px dashed var(--sand-200); }
.dcmc-card__facts div { min-width: 0; }
.dcmc-card__facts dt { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-300); font-weight: 700; }
.dcmc-card__facts dd { margin: 2px 0 0; font-weight: 700; color: var(--ink-900); font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dcmc-card .dcmc-badge { align-self: flex-start; margin-top: auto; }
.dcmc-cards--empty { padding: 28px; background: #fff; border: 1px dashed var(--sand-300); border-radius: var(--radius); text-align: center; color: var(--ink-500); }

/* feature / link cards built from Elementor columns */
.card:not(.elementor-column) { background: #fff; border-radius: var(--radius); border: 1px solid var(--sand-200); box-shadow: 0 1px 2px rgba(7,20,43,.04); transition: transform .22s var(--ease), box-shadow .22s var(--ease); }
.card:not(.elementor-column):hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.card > .container, .card__inner { padding: clamp(22px, 3vw, 32px); }
.card h3 { margin-bottom: .4em; }
.card p { color: var(--ink-500); font-size: .98rem; }
.card .icon { width: 46px; height: 46px; border-radius: 12px; background: var(--navy-100); color: var(--navy-800); display: grid; place-items: center; margin-bottom: 16px; }
.card .icon svg { width: 22px; height: 22px; }
.card--gold:not(.elementor-column) { background: var(--navy-900); border-color: var(--navy-900); }
.card--gold h3 { color: #fff; } .card--gold p { color: #C9D3E6; }
.card--gold .icon { background: rgba(255,255,255,.1); color: var(--gold-300); }
.cols-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.cols-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(24px, 4vw, 56px); align-items: center; }
.cols-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; }
@media (max-width: 960px) { .cols-3, .cols-4 { grid-template-columns: repeat(2, minmax(0,1fr)); } .cols-2 { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .cols-3, .cols-4 { grid-template-columns: 1fr; } }

/* steps ("How a sale works") */
.steps { counter-reset: step; }
.step:not(.elementor-column) { position: relative; padding: 26px 22px 22px; background: #fff; border-radius: var(--radius); border: 1px solid var(--sand-200); counter-increment: step; }
.step:not(.elementor-column)::before { content: counter(step, decimal-leading-zero); font-family: var(--font-display); font-weight: 800; font-size: 2.6rem; line-height: 1; color: var(--gold-300); display: block; margin-bottom: 14px; letter-spacing: -.03em; }
.step h3 { font-size: 1.15rem; margin-bottom: .4em; }
.step p { font-size: .95rem; color: var(--ink-500); margin: 0; }
.step--dark:not(.elementor-column) { background: var(--navy-900); border-color: var(--navy-900); }
.step--dark h3 { color: #fff; } .step--dark p { color: #C9D3E6; }

/* ---------- Notice / alert --------------------------------------------- */
.dcmc-notice { display: flex; gap: 14px; align-items: flex-start; background: var(--gold-100); border: 1px solid var(--gold-300); border-left: 5px solid var(--gold-500); border-radius: var(--radius-sm); padding: 16px 18px; color: var(--ink-900); }
.dcmc-notice svg { width: 22px; height: 22px; flex: 0 0 auto; color: var(--gold-600); margin-top: 2px; }
.dcmc-notice p { margin: 0; }
.dcmc-notice b { display: block; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--warn-700); margin-bottom: 2px; }
.dcmc-notice--info { background: var(--navy-100); border-color: #C5D2EA; border-left-color: var(--navy-700); }
.dcmc-notice--info svg, .dcmc-notice--info b { color: var(--navy-700); }

/* ---------- Office card / contact -------------------------------------- */
.office-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); border: 1px solid var(--sand-200); overflow: hidden; }
.office-card__head { background: var(--navy-900); color: #fff; padding: 22px 26px; display: flex; align-items: center; gap: 14px; }
.office-card__head img { width: 44px; height: 44px; border-radius: 50%; }
.office-card__head h3 { color: #fff; margin: 0; font-size: 1.2rem; }
.office-card__head p { margin: 0; font-size: .82rem; color: #B9C4D8; }
.office-card__body { padding: 8px 26px 12px; }
.office-card__row { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--sand-200); align-items: start; }
.office-card__row > div { min-width: 0; overflow-wrap: anywhere; }
.office-card__row:last-child { border-bottom: 0; }
.office-card__row svg { width: 20px; height: 20px; color: var(--gold-600); margin-top: 3px; }
.office-card__row b { display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-300); margin-bottom: 3px; }
.office-card__row a { text-decoration: none; font-weight: 600; }
.office-card__row a:hover { text-decoration: underline; }
.office-card__row .lg { font-family: var(--font-display); font-size: 1.25rem; color: var(--navy-900); font-weight: 700; }
.office-card__foot { padding: 16px 26px 22px; display: flex; gap: 10px; flex-wrap: wrap; background: var(--paper-100); }
.dcmc-map { width: 100%; max-width: 100%; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--sand-200); background: var(--paper-100); aspect-ratio: 16/9; min-height: 320px; }
.dcmc-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: saturate(.85) contrast(1.02); }

/* ---------- MC profile -------------------------------------------------- */
.mc-photo, body .elementor .elementor-widget.mc-photo { position: relative; isolation: isolate; max-width: 440px; margin-inline: auto; }
.mc-photo img, body .elementor .elementor-widget.mc-photo img { position: relative; z-index: 1; border-radius: var(--radius); box-shadow: var(--shadow-lg); aspect-ratio: 1; object-fit: cover; width: 100%; display: block; }
.mc-photo::before, body .elementor .elementor-widget.mc-photo::before { content: ""; position: absolute; inset: -18px auto auto -18px; width: 60%; height: 60%; border: 2px solid var(--gold-400); border-radius: var(--radius); z-index: 0; pointer-events: none; }
.mc-photo::after, body .elementor .elementor-widget.mc-photo::after { content: ""; position: absolute; right: -14px; bottom: -14px; width: 120px; height: 120px; background: url("../img/seal-160.png") center/contain no-repeat; filter: drop-shadow(0 8px 16px rgba(7,20,43,.25)); z-index: 3; pointer-events: none; }
.mc-quote { font-family: var(--font-display); font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-style: italic; color: var(--navy-800); border-left: 3px solid var(--gold-500); padding-left: 18px; margin: 1.4rem 0; line-height: 1.5; }

/* ---------- Icon lists (native Elementor + fallback) ------------------- */
.checks, body .elementor .elementor-widget.checks .elementor-icon-list-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.checks li, body .elementor .elementor-widget.checks .elementor-icon-list-item { display: flex; gap: 12px; align-items: flex-start; font-size: 1rem; color: var(--ink-700); }
.checks li:not(.elementor-icon-list-item)::before { content: ""; flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; background: var(--ok-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231F7A4D' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7'/%3E%3C/svg%3E") center/13px no-repeat; margin-top: 2px; }
body .elementor .elementor-widget.checks .elementor-icon-list-icon { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; background: var(--ok-100); display: grid; place-items: center; margin-top: 2px; }
body .elementor .elementor-widget.checks .elementor-icon-list-icon i { color: var(--ok-700); font-size: 11px; }
body .elementor .elementor-widget.checks .elementor-icon-list-icon svg { width: 12px; height: 12px; fill: var(--ok-700); }
body .elementor .elementor-widget.checks .elementor-icon-list-text { color: var(--ink-700); padding: 0; }
.sec-navy .checks li, body .elementor .sec-navy .elementor-widget.checks .elementor-icon-list-text { color: #D7DFEE; }
.checks--gold li::before, body .elementor .elementor-widget.checks--gold .elementor-icon-list-icon { background: var(--gold-100); }
.checks--gold li:not(.elementor-icon-list-item)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%238A6A0E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7'/%3E%3C/svg%3E"); }
body .elementor .elementor-widget.checks--gold .elementor-icon-list-icon i { color: var(--warn-700); }

/* ---------- FAQ (native toggle + fallback details) ---------------------- */
.faq details, body .elementor .elementor-widget.faq .elementor-toggle-item { background: #fff; border: 1px solid var(--sand-200); border-radius: var(--radius-sm); margin-bottom: 10px; overflow: hidden; }
.faq summary, body .elementor .elementor-widget.faq .elementor-tab-title { cursor: pointer; list-style: none; padding: 18px 54px 18px 22px; font-family: var(--font-display); font-size: 1.12rem; font-weight: 700; color: var(--navy-900); position: relative; line-height: 1.35; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after, body .elementor .elementor-widget.faq .elementor-tab-title::after { content: ""; position: absolute; right: 20px; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 50%; background: var(--gold-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%238A6A0E' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M10 5v10M5 10h10'/%3E%3C/svg%3E") center/12px no-repeat; transition: transform .2s var(--ease); }
.faq details[open] summary::after, body .elementor .elementor-widget.faq .elementor-tab-title.elementor-active::after { transform: rotate(45deg); }
.faq details > div, body .elementor .elementor-widget.faq .elementor-tab-content { padding: 0 22px 20px; color: var(--ink-700); border-top: 0; }
.faq details > div p:last-child { margin-bottom: 0; }
body .elementor .elementor-widget.faq .elementor-toggle-icon { display: none; }
body .elementor .elementor-widget.faq .elementor-tab-title a, body .elementor .elementor-widget.faq .elementor-toggle-title { color: var(--navy-900); font-family: var(--font-display); font-weight: 700; font-size: 1.12rem; }
body .elementor .elementor-widget.faq .elementor-tab-content { border: 0; }
.faq-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 1.5rem; }
.faq-jump a { text-decoration: none; background: #fff; border: 1px solid var(--sand-200); border-radius: 999px; padding: .45em 1em; font-size: .88rem; font-weight: 600; color: var(--navy-800); }
.faq-jump a:hover { border-color: var(--gold-500); background: var(--gold-100); }

/* ---------- Listings (properties) -------------------------------------- */
.dcmc-listings { --row-pad: 14px; }
.dcmc-toolbar { position: sticky; top: calc(var(--header-h) + 8px); z-index: 20; display: grid; grid-template-columns: auto minmax(220px, 1fr) auto auto; gap: 12px; align-items: center; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--sand-200); border-radius: var(--radius); padding: 12px; margin-bottom: 28px; box-shadow: var(--shadow); }
.admin-bar .dcmc-toolbar { top: calc(var(--header-h) + 40px); }
@media (max-width: 900px) { .dcmc-toolbar { position: static; grid-template-columns: 1fr 1fr; } .dcmc-tabs { grid-column: 1 / -1; } .dcmc-search { grid-column: 1 / -1; } }
.dcmc-tabs { display: inline-flex; background: var(--paper-100); border-radius: 999px; padding: 4px; gap: 2px; }
.dcmc-tab { border: 0; background: transparent; padding: .55em 1em; border-radius: 999px; font: inherit; font-weight: 600; font-size: .9rem; color: var(--ink-500); cursor: pointer; display: inline-flex; align-items: center; gap: .5em; white-space: nowrap; transition: background .15s, color .15s; }
.dcmc-tab:hover { color: var(--navy-900); }
.dcmc-tab.is-active { background: var(--navy-900); color: #fff; box-shadow: 0 6px 16px -8px rgba(7,20,43,.6); }
.dcmc-tab__count { font-size: .72rem; background: rgba(0,0,0,.08); padding: .15em .5em; border-radius: 999px; font-weight: 700; }
.dcmc-tab.is-active .dcmc-tab__count { background: var(--gold-500); color: var(--navy-950); }
.dcmc-search { position: relative; display: block; }
.dcmc-search input, .dcmc-select { width: 100%; font: inherit; font-size: .95rem; padding: .7em 1em .7em 2.6em; border: 1px solid var(--sand-300); border-radius: 999px; background: #fff; color: var(--ink-900); }
.dcmc-search::before { content: ""; position: absolute; left: 14px; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6B7C' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") center/contain no-repeat; pointer-events: none; }
.dcmc-select { padding-left: 1em; padding-right: 2.2em; appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%235B6B7C' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 8l4 4 4-4'/%3E%3C/svg%3E") right 12px center/14px no-repeat; cursor: pointer; min-width: 130px; }
.dcmc-search input:focus, .dcmc-select:focus { outline: 0; border-color: var(--navy-700); box-shadow: 0 0 0 3px rgba(201,162,39,.35); }
.dcmc-toolbar__result { grid-column: 1 / -1; margin: 0; font-size: .85rem; color: var(--ink-500); padding: 0 6px; }
.dcmc-toolbar__result:empty { display: none; }

.dcmc-sale { background: #fff; border: 1px solid var(--sand-200); border-radius: var(--radius); margin-bottom: 22px; overflow: hidden; box-shadow: 0 1px 2px rgba(7,20,43,.04); }
.dcmc-sale.is-next { border-color: var(--gold-400); box-shadow: 0 0 0 4px var(--gold-100), var(--shadow); }
.dcmc-sale__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--sand-200); background: linear-gradient(180deg, #fff, var(--ivory-50)); }
.dcmc-sale.is-next .dcmc-sale__head { background: linear-gradient(90deg, var(--gold-100), #fff 60%); }
.dcmc-sale__title { margin: 0; font-size: clamp(1.25rem, 2vw, 1.6rem); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dcmc-sale__meta { margin: 4px 0 0; font-size: .9rem; color: var(--ink-500); }
.dcmc-sale__meta b { color: var(--navy-900); }
.dcmc-sale__toggle { flex: 0 0 auto; border: 1px solid var(--sand-300); background: #fff; border-radius: 999px; padding: .5em 1em; font: inherit; font-size: .85rem; font-weight: 600; color: var(--navy-800); cursor: pointer; }
.dcmc-sale__toggle:hover { border-color: var(--navy-700); }
html:not(.js) .dcmc-sale__toggle { display: none; }
.dcmc-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dcmc-table { width: 100%; border-collapse: collapse; font-size: .95rem; min-width: 760px; }
.dcmc-table th { text-align: left; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-300); font-weight: 700; padding: 12px 16px; border-bottom: 1px solid var(--sand-200); background: #fff; }
.dcmc-table td { padding: var(--row-pad) 16px; border-bottom: 1px solid var(--paper-100); vertical-align: top; }
.dcmc-row:last-child td { border-bottom: 0; }
.dcmc-row:hover td { background: var(--ivory-50); }
.dcmc-row[data-status="cancelled"] .dcmc-row__case a, .dcmc-row[data-status="cancelled"] .dcmc-row__street { color: var(--ink-500); }
.dcmc-row__n { color: var(--ink-300); font-weight: 700; font-family: var(--font-mono); width: 44px; }
.dcmc-row__case a { font-weight: 600; color: var(--navy-900); text-decoration: none; }
.dcmc-row__case a:hover { text-decoration: underline; color: var(--navy-700); }
.dcmc-row__caseno { display: block; font-family: var(--font-mono); font-size: .8rem; color: var(--ink-300); margin-top: 3px; }
.dcmc-row__street { display: block; font-weight: 600; color: var(--ink-900); }
.dcmc-row__map { display: block; font-size: .8rem; color: var(--ink-300); margin-top: 3px; }
.dcmc-col-money, .dcmc-row__money { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.dcmc-row__money { font-weight: 600; color: var(--ink-900); }
.dcmc-row__status { white-space: nowrap; }
.dcmc-row__price { display: block; margin-top: 6px; font-weight: 700; color: var(--ok-700); font-variant-numeric: tabular-nums; }
.dcmc-row__price::before { content: "Sold for "; font-weight: 500; color: var(--ink-500); font-size: .82rem; }
.dcmc-row__note { display: block; margin-top: 6px; font-size: .82rem; color: var(--ink-500); white-space: normal; }
.dcmc-empty { text-align: center; padding: 40px; background: #fff; border: 1px dashed var(--sand-300); border-radius: var(--radius); color: var(--ink-500); }
.dcmc-sale__body[hidden] { display: none; }
@media (max-width: 640px) { .dcmc-sale__head { padding: 16px 18px; } .dcmc-table th, .dcmc-table td { padding-inline: 12px; } }

/* ---------- Single listing --------------------------------------------- */
.listing-hero { padding-block: clamp(40px, 6vw, 72px); }
.listing-hero h1 { font-size: clamp(1.9rem, 3.6vw, 3rem); }
.listing-hero .listing-case { color: #D7DFEE; font-size: 1.05rem; margin: 0 0 .5rem; }
.listing-hero .listing-case span { font-family: var(--font-mono); color: var(--gold-300); margin-left: .6em; }
.listing-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
@media (max-width: 900px) { .listing-grid { grid-template-columns: 1fr; } }
.facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 0 0 1.8rem; }
.fact { background: #fff; border: 1px solid var(--sand-200); border-radius: var(--radius-sm); padding: 16px 18px; }
.fact dt { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-300); font-weight: 700; }
.fact dd { margin: 4px 0 0; font-family: var(--font-display); font-size: 1.45rem; font-weight: 700; color: var(--navy-900); }
.fact--wide { grid-column: 1 / -1; }
.fact--wide dd { font-family: var(--font-body); font-size: 1.05rem; font-weight: 600; }
.listing-aside { position: sticky; top: calc(var(--header-h) + 24px); }
.listing-actions { display: grid; gap: 10px; margin-top: 16px; }
.listing-actions .dcmc-btn { width: 100%; }
.listing-back { display: inline-flex; align-items: center; gap: .4em; font-weight: 600; text-decoration: none; margin-bottom: 1.2rem; color: #E8EEF9; }
.listing-back:hover { color: var(--gold-300); }
.listing-related { margin-top: clamp(40px, 6vw, 72px); }

/* ---------- Forms ------------------------------------------------------- */
.dcmc-form { color: var(--ink-700); background: #fff; border: 1px solid var(--sand-200); border-radius: var(--radius); padding: clamp(22px, 3vw, 34px); box-shadow: var(--shadow); }
.dcmc-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
@media (max-width: 600px) { .dcmc-form__grid { grid-template-columns: 1fr; } }
.dcmc-field { display: flex; flex-direction: column; gap: 6px; }
.dcmc-field--full { grid-column: 1 / -1; }
.dcmc-field > span { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-500); }
.dcmc-field input, .dcmc-field textarea, .dcmc-field select { font: inherit; font-size: 1rem; padding: .8em 1em; border: 1px solid var(--sand-300); border-radius: var(--radius-sm); background: var(--ivory-50); color: var(--ink-900); width: 100%; }
.dcmc-field input:focus, .dcmc-field textarea:focus, .dcmc-field select:focus { outline: 0; border-color: var(--navy-700); background: #fff; box-shadow: 0 0 0 3px rgba(201,162,39,.35); }
.dcmc-field textarea { resize: vertical; min-height: 130px; }
.dcmc-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }
.dcmc-form__msg { margin: 12px 0 0; font-size: .92rem; }
.dcmc-form__msg:empty { display: none; }
.dcmc-form__success { background: var(--ok-100); border: 1px solid #BFE3CE; color: var(--ok-700); border-radius: var(--radius-sm); padding: 16px 18px; font-weight: 600; margin-bottom: 16px; }
.dcmc-form__error { background: var(--bad-100); border: 1px solid #EFC4C4; color: var(--bad-700); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 16px; }
.dcmc-checks { display: grid; gap: 10px; border: 0; padding: 0; margin: 0 0 18px; }
.dcmc-checks legend { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-500); margin-bottom: 8px; }
.dcmc-checks label { color: var(--ink-900); display: flex; align-items: center; gap: 10px; font-size: .98rem; }
.dcmc-checks input { width: 18px; height: 18px; accent-color: var(--navy-800); }
.dcmc-form__foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.dcmc-form__foot .small { margin: 0; color: var(--ink-500); }
/* WPForms output */
body .dcmc-wpform-wrap .wpforms-form .wpforms-field-label { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-500); }
body .dcmc-wpform-wrap .wpforms-form input[type=text], body .dcmc-wpform-wrap .wpforms-form input[type=email], body .dcmc-wpform-wrap .wpforms-form input[type=tel], body .dcmc-wpform-wrap .wpforms-form textarea { font: inherit; padding: .8em 1em; border: 1px solid var(--sand-300); border-radius: var(--radius-sm); background: var(--ivory-50); max-width: 100%; }
body .dcmc-wpform-wrap .wpforms-form button[type=submit] { background: var(--gold-500); color: var(--navy-950); border: 0; border-radius: 999px; padding: .9em 1.6em; font: inherit; font-weight: 700; cursor: pointer; }
body .dcmc-wpform-wrap .wpforms-form button[type=submit]:hover { background: var(--gold-400); }
.dcmc-wpform-wrap { background: #fff; border: 1px solid var(--sand-200); border-radius: var(--radius); padding: clamp(22px, 3vw, 34px); box-shadow: var(--shadow); }

/* ---------- CTA band ---------------------------------------------------- */
.sec-cta { background: var(--navy-900); color: #fff; position: relative; overflow: hidden; }
.sec-cta::before { content: ""; position: absolute; right: -80px; top: -80px; width: 420px; height: 420px; background: url("../img/seal.png") center/contain no-repeat; opacity: .06; pointer-events: none; }
.sec-cta::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: repeating-linear-gradient(90deg, var(--gold-500) 0 60px, transparent 60px 80px); opacity: .9; }
.cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 1.4rem; }

/* ---------- Footer ------------------------------------------------------ */
.site-footer { background: var(--navy-950); color: #B9C4D8; font-size: .93rem; }
.site-footer a { color: #E8EEF9; text-decoration: none; }
.site-footer a:hover { color: var(--gold-300); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: clamp(24px, 4vw, 48px); padding-block: clamp(48px, 6vw, 72px); border-bottom: 1px solid rgba(255,255,255,.1); }
@media (max-width: 960px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-brand { display: flex; gap: 14px; align-items: center; margin-bottom: 16px; }
.footer-brand img { width: 56px; height: 56px; border-radius: 50%; }
.footer-brand .brand__kicker { color: var(--gold-400); }
.footer-brand .brand__name { color: #fff; font-size: 1.2rem; }
.footer-col h4 { color: #fff; font-family: var(--font-body); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 14px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.footer-col p { margin: 0 0 8px; }
.footer-disclaimer { font-size: .85rem; color: #8E9BB1; max-width: 46ch; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-block: 20px; font-size: .82rem; color: #8E9BB1; }
.footer-bottom ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.footer-bottom a { color: #B9C4D8; }

/* ---------- Reveal (fail-open) ----------------------------------------- */
.reveal { opacity: 1; transform: none; }
html.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
html.js .reveal.in { opacity: 1; transform: none; }
body.elementor-editor-active .reveal, body.elementor-editor-active .reveal.in { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { html.js .reveal { opacity: 1; transform: none; transition: none; } }

/* ==========================================================================
   Elementor compensation layer
   Elementor's DOM: .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget > .elementor-widget-container
   ========================================================================== */
body .elementor .elementor-section-boxed > .elementor-container { max-width: var(--container); padding-inline: var(--gutter); }
body .elementor .elementor-section.section { padding-block: clamp(56px, 8vw, 104px); }
body .elementor .elementor-section.section--tight { padding-block: clamp(36px, 5vw, 64px); }
body .elementor .elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }
body .elementor .elementor-widget-wrap { align-content: flex-start; }
/* widget rhythm: tighter than Elementor's 20px default where the design wants it */
body .elementor .elementor-widget.eyebrow, body .elementor .elementor-widget.eyebrow:not(:last-child) { margin-bottom: 10px; }
body .elementor .elementor-widget.eyebrow .elementor-heading-title { font-family: var(--font-body); font-weight: 700; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-600); }
body .elementor .elementor-widget.eyebrow .elementor-heading-title::before { content: ""; display: inline-block; width: 26px; height: 2px; background: currentColor; vertical-align: middle; margin-right: 10px; border-radius: 2px; }
body .elementor .sec-navy .elementor-widget.eyebrow .elementor-heading-title, body .elementor .hero .elementor-widget.eyebrow .elementor-heading-title, body .elementor .sec-cta .elementor-widget.eyebrow .elementor-heading-title { color: var(--gold-400); }
body .elementor .elementor-widget-heading .elementor-heading-title { font-family: var(--font-display); color: var(--navy-900); line-height: 1.12; font-weight: 700; letter-spacing: -.01em; }
body .elementor .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.3rem, 4.6vw, 3.9rem); }
body .elementor .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.75rem, 3vw, 2.5rem); }
body .elementor .elementor-widget-heading h3.elementor-heading-title { font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
body .elementor .elementor-widget-heading h4.elementor-heading-title { font-size: 1.1rem; }
body .elementor .hero .elementor-widget-heading .elementor-heading-title, body .elementor .sec-navy .elementor-widget-heading .elementor-heading-title, body .elementor .sec-cta .elementor-widget-heading .elementor-heading-title { color: #fff; }
body .elementor .hero .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.5rem, 5.2vw, 4.4rem); text-wrap: balance; max-width: 14ch; }
body .elementor .hero--page .elementor-widget-heading h1.elementor-heading-title { font-size: clamp(2.2rem, 4vw, 3.4rem); max-width: 24ch; }
body .elementor .elementor-widget-heading .elementor-heading-title em { font-style: italic; color: var(--gold-300); }
body .elementor .elementor-widget-text-editor { color: var(--ink-700); font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.65; }
body .elementor .hero .elementor-widget-text-editor, body .elementor .sec-navy .elementor-widget-text-editor, body .elementor .sec-cta .elementor-widget-text-editor { color: #D7DFEE; }
body .elementor .sec-navy .elementor-widget-text-editor a, body .elementor .sec-cta .elementor-widget-text-editor a, body .elementor .hero .elementor-widget-text-editor a { color: var(--gold-300); }
body .elementor .elementor-widget.lede { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.6; color: var(--ink-500); }
body .elementor .elementor-widget.lede p, body .elementor .elementor-widget.lede .elementor-widget-container { max-width: 62ch; }
body .elementor .hero .elementor-widget.lede, body .elementor .sec-navy .elementor-widget.lede, body .elementor .sec-cta .elementor-widget.lede { color: #D7DFEE; }
body .elementor .hero .elementor-widget.lede p, body .elementor .sec-navy .elementor-widget.lede p, body .elementor .sec-cta .elementor-widget.lede p { max-width: 56ch; }
body .elementor .elementor-widget.small { font-size: .92rem; color: var(--ink-500); }
body .elementor .elementor-widget.rich > *, body .elementor .elementor-widget.rich .elementor-widget-container > * { max-width: 76ch; }
body .elementor .center .elementor-widget, body .elementor .elementor-column.center .elementor-widget-wrap { text-align: center; }
body .elementor .center .elementor-widget.lede p { margin-inline: auto; }
/* buttons */
body .elementor .elementor-widget-button .elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: .55em; font-family: var(--font-body); font-weight: 700; font-size: .98rem; letter-spacing: .01em; padding: .9em 1.5em; border-radius: 999px; border: 2px solid transparent; line-height: 1.1; background: var(--gold-500); color: var(--navy-950); box-shadow: 0 10px 24px -12px rgba(201,162,39,.8); transition: transform .18s var(--ease), box-shadow .18s var(--ease), background .18s, color .18s; }
body .elementor .elementor-widget-button .elementor-button:hover { background: var(--gold-400); color: var(--navy-950); transform: translateY(-2px); }
body .elementor .elementor-widget-button.btn-navy .elementor-button { background: var(--navy-900); color: #fff; box-shadow: none; }
body .elementor .elementor-widget-button.btn-navy .elementor-button:hover { background: var(--navy-800); color: #fff; }
body .elementor .elementor-widget-button.btn-ghost .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); box-shadow: none; }
body .elementor .elementor-widget-button.btn-ghost .elementor-button:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }
body .elementor .elementor-widget-button.btn-outline .elementor-button { background: transparent; color: var(--navy-900); border-color: var(--navy-900); box-shadow: none; }
body .elementor .elementor-widget-button.btn-outline .elementor-button:hover { background: var(--navy-900); color: #fff; }
body .elementor .elementor-widget.btn-inline { width: auto; margin-right: 12px; margin-bottom: 12px; }
body .elementor .elementor-widget.btn-inline:not(:last-child) { margin-bottom: 12px; }
body .elementor .elementor-widget.btn-inline .elementor-widget-container, body .elementor .elementor-widget.btn-inline .elementor-button-wrapper { width: auto; }
body .elementor .elementor-widget.btn-block .elementor-button { width: 100%; }
body .elementor .elementor-widget.mt-lg { margin-top: 12px; }
/* columns as cards / steps (classes on columns) */
body .elementor .elementor-column.card { background: #fff; border-radius: var(--radius); border: 1px solid var(--sand-200); box-shadow: 0 1px 2px rgba(7,20,43,.04); transition: transform .22s var(--ease), box-shadow .22s var(--ease); margin: 0; }
body .elementor .elementor-column.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
body .elementor .elementor-column.card > .elementor-widget-wrap { padding: clamp(22px, 3vw, 32px); }
body .elementor .elementor-column.card--gold { background: var(--navy-900); border-color: var(--navy-900); }
body .elementor .elementor-column.card--gold .elementor-widget-heading .elementor-heading-title { color: #fff; }
body .elementor .elementor-column.card--gold .elementor-widget-text-editor { color: #C9D3E6; }
body .elementor .elementor-column.card .elementor-widget-text-editor { color: var(--ink-500); font-size: .98rem; }
body .elementor .elementor-column.card .elementor-widget-button .elementor-button { background: transparent; color: var(--navy-900); border-color: var(--navy-900); box-shadow: none; }
body .elementor .elementor-column.card .elementor-widget-button .elementor-button:hover { background: var(--navy-900); color: #fff; }
body .elementor .elementor-column.card--gold .elementor-widget-button .elementor-button { color: #fff; border-color: rgba(255,255,255,.55); }
body .elementor .elementor-column.card--gold .elementor-widget-button .elementor-button:hover { background: var(--gold-500); color: var(--navy-950); border-color: var(--gold-500); }
body .elementor .elementor-column.card .elementor-widget-button { margin-top: auto; }
body .elementor .elementor-section.steps .elementor-container { counter-reset: step; }
body .elementor .elementor-column.step { counter-increment: step; }
body .elementor .elementor-column.step > .elementor-widget-wrap { padding: 26px 22px 22px; background: #fff; border-radius: var(--radius); border: 1px solid var(--sand-200); }
body .elementor .elementor-column.step > .elementor-widget-wrap::before { content: counter(step, decimal-leading-zero); font-family: var(--font-display); font-weight: 800; font-size: 2.6rem; line-height: 1; color: var(--gold-300); display: block; width: 100%; margin-bottom: 14px; letter-spacing: -.03em; }
body .elementor .elementor-column.step .elementor-widget-heading .elementor-heading-title { font-size: 1.15rem; }
body .elementor .elementor-column.step .elementor-widget-text-editor { font-size: .95rem; color: var(--ink-500); }
body .elementor .elementor-column.step--dark > .elementor-widget-wrap { background: var(--navy-900); border-color: var(--navy-900); }
body .elementor .elementor-column.step--dark .elementor-widget-heading .elementor-heading-title { color: #fff; }
body .elementor .elementor-column.step--dark .elementor-widget-text-editor { color: #C9D3E6; }
/* column gaps: Elementor removes gaps with gap "no"; restore grid-like spacing for card rows */
body .elementor .elementor-section.gap-cards > .elementor-container { gap: 22px; }
body .elementor .elementor-section.gap-cards > .elementor-container > .elementor-column { flex: 1 1 0; min-width: 0; }
body .elementor .elementor-section.gap-wide > .elementor-container { gap: clamp(24px, 4vw, 56px); align-items: center; }
body .elementor .elementor-section.gap-wide > .elementor-container > .elementor-column { flex: 1 1 0; min-width: 0; }
body .elementor .elementor-section.gap-wide > .elementor-container > .elementor-column.elementor-col-40, body .elementor .elementor-section.gap-wide > .elementor-container > .elementor-column.elementor-col-41 { flex-basis: 40%; }
body .elementor .elementor-section.gap-wide > .elementor-container > .elementor-column.elementor-col-60, body .elementor .elementor-section.gap-wide > .elementor-container > .elementor-column.elementor-col-58 { flex-basis: 58%; }
@media (max-width: 1024px) {
  body .elementor .elementor-section.gap-cards > .elementor-container { flex-wrap: wrap; }
  body .elementor .elementor-section.gap-cards > .elementor-container > .elementor-column { flex: 1 1 calc(50% - 22px); }
  body .elementor .elementor-section.gap-wide > .elementor-container { flex-wrap: wrap; }
  body .elementor .elementor-section.gap-wide > .elementor-container > .elementor-column { flex: 1 1 100%; width: 100%; }
}
@media (max-width: 640px) { body .elementor .elementor-section.gap-cards > .elementor-container > .elementor-column { flex: 1 1 100%; } }
/* hero in Elementor: section carries the background image control; column layout */
body .elementor .elementor-section.hero { padding-block: clamp(64px, 9vw, 120px); }
body .elementor .elementor-section.hero > .elementor-container { min-height: 0; align-items: center; gap: clamp(28px, 5vw, 72px); }
body .elementor .elementor-section.hero > .elementor-container > .elementor-column { flex: 1 1 0; min-width: 0; }
body .elementor .elementor-section.hero > .elementor-container > .elementor-column.hero-side { flex: 0 1 460px; }
@media (max-width: 960px) { body .elementor .elementor-section.hero > .elementor-container { flex-wrap: wrap; } body .elementor .elementor-section.hero > .elementor-container > .elementor-column, body .elementor .elementor-section.hero > .elementor-container > .elementor-column.hero-side { flex: 1 1 100%; width: 100%; } }
body .elementor .elementor-section.hero--page { padding-block: clamp(48px, 6vw, 84px); }
/* image widget */
body .elementor .elementor-widget-image img { border-radius: var(--radius); }
body .elementor .elementor-widget.img-plain img { border-radius: 0; }
/* notices in text-editor */
body .elementor .elementor-widget.notice, body .elementor .elementor-widget.notice .elementor-widget-container { display: flex; gap: 14px; align-items: flex-start; background: var(--gold-100); border: 1px solid var(--gold-300); border-left: 5px solid var(--gold-500); border-radius: var(--radius-sm); padding: 16px 18px; color: var(--ink-900); }
body .elementor .elementor-widget.notice::before { content: "!"; flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%; background: var(--gold-500); color: var(--navy-950); font-weight: 800; display: grid; place-items: center; font-size: .9rem; margin-top: 1px; }
body .elementor .elementor-widget.notice p { margin: 0; }
body .elementor .elementor-widget.notice .elementor-widget-container { display: contents; }
/* shortcode widget wrapper: no extra spacing */
body .elementor .elementor-widget-shortcode .elementor-shortcode { display: block; }
/* keep sections positioned (editor overlays depend on it) */
body .elementor .elementor-section, body .elementor .elementor-column { position: relative; }
/* MC photo column */
body .elementor .elementor-widget.mc-quote { font-family: var(--font-display); font-size: clamp(1.15rem, 1.7vw, 1.4rem); font-style: italic; color: var(--navy-800); border-left: 3px solid var(--gold-500); padding-left: 18px; line-height: 1.5; }
/* centered sections */
body .elementor .elementor-section.center .elementor-widget { text-align: center; }
body .elementor .elementor-section.center .elementor-widget.lede p, body .elementor .elementor-section.center .elementor-widget.rich > * { margin-inline: auto; }
body .elementor .elementor-section.center .elementor-widget.eyebrow .elementor-heading-title::before { display: none; }
body .elementor .elementor-section.center .elementor-widget.btn-inline { margin-inline: 6px; }
body .elementor .elementor-section.center .elementor-widget-wrap { justify-content: center; }
/* sec-cta */
body .elementor .elementor-section.sec-cta { position: relative; overflow: hidden; }
/* toggle / faq widget spacing */
body .elementor .elementor-widget.faq .elementor-toggle { margin: 0; }
/* the hero gradient scrim on Elementor sections (background image is a control) */
body .elementor .elementor-section.hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(82deg, rgba(7,20,43,.96) 0%, rgba(11,31,63,.88) 42%, rgba(11,31,63,.35) 100%); }
body .elementor .elementor-section.hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 30%; z-index: 0; background: linear-gradient(180deg, rgba(7,20,43,0), rgba(7,20,43,.6)); pointer-events: none; }
body .elementor .elementor-section.hero > .elementor-background-overlay { z-index: 1; }

/* ---------- Print: sale lists print cleanly ---------------------------- */
@media print {
  .site-header, .site-footer, .dcmc-toolbar, .dcmc-sale__toggle, .hero-actions, .nextpill, .dcmc-btn { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; }
  .hero, .sec-navy, .sec-cta { background: #fff !important; color: #000; }
  .hero::before, .hero::after { display: none; }
  .hero h1, .hero .lede { color: #000; }
  .dcmc-sale { break-inside: avoid; border: 1px solid #999; box-shadow: none; }
  .dcmc-sale__body[hidden] { display: block !important; }
  .dcmc-table { min-width: 0; font-size: 10pt; }
  .dcmc-badge { border: 1px solid #999; }
  a { color: #000; text-decoration: none; }
}

/* ---------- Classic templates: featured image, paged links, post nav, search page ---- */
.page-thumb { margin: 0 0 1.8rem; }
.page-thumb img, .page-thumb__img { display: block; width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow); }
.page-links { display: flex; flex-wrap: wrap; align-items: center; gap: .5em; margin-top: 2rem; font-size: .92rem; color: var(--ink-500); }
.page-links a { padding: .3em .7em; border: 1px solid var(--sand-300); border-radius: var(--radius-sm); text-decoration: none; }
.post-nav { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-top: 2.4rem; padding-top: 1.4rem; border-top: 1px solid var(--sand-200); font-weight: 600; }
.post-nav span:last-child:not(:first-child) { margin-left: auto; text-align: right; }
.dcmc-search--page { max-width: 560px; margin: 0 0 1.2rem; }
.listing-notes { margin-top: 1.8rem; }

/* ---------- Spacing modifiers (both DOMs) ------------------------------ */
.section.pb-0, body .elementor .elementor-section.section.pb-0 { padding-bottom: 0; }
.section.pt-0, body .elementor .elementor-section.section.pt-0 { padding-top: 0; }
.section.pt-sm, body .elementor .elementor-section.section.pt-sm { padding-top: clamp(24px, 3vw, 40px); }
.site-header.is-scrolled { box-shadow: 0 8px 30px -18px rgba(7,20,43,.45); }
/* crumbs widget */
body .elementor .elementor-widget.crumbs, body .elementor .elementor-widget.crumbs:not(:last-child) { margin-bottom: 8px; }
body .elementor .elementor-widget.crumbs { font-size: .82rem; color: #B9C4D8; }
body .elementor .elementor-widget.crumbs p { display: flex; gap: .6em; flex-wrap: wrap; margin: 0; color: #B9C4D8; }
body .elementor .elementor-widget.crumbs a { color: #E8EEF9; text-decoration: none; }
body .elementor .elementor-widget.crumbs a:hover { color: var(--gold-300); }
body .elementor .elementor-widget.crumbs span::before { content: "›"; margin-right: .6em; opacity: .5; }
/* hero trust list: horizontal chips */
body .elementor .elementor-widget.hero-trust { margin-top: 10px; }
body .elementor .elementor-widget.hero-trust .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px 26px; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.14); }
body .elementor .elementor-widget.hero-trust .elementor-icon-list-item { font-size: .85rem; align-items: center; }
body .elementor .elementor-widget.hero-trust .elementor-icon-list-text { color: #C9D3E6; }
body .elementor .elementor-widget.hero-trust .elementor-icon-list-icon { width: 18px; height: 18px; flex-basis: 18px; margin-top: 0; }
body .elementor .elementor-widget.hero-trust .elementor-icon-list-icon i { font-size: 9px; }
/* faq headings + compact toggles */
body .elementor .elementor-widget.faq-h .elementor-heading-title { margin-bottom: .2em; }
body .elementor .elementor-widget.faq-h, body .elementor .elementor-widget.faq-h:not(:last-child) { margin-bottom: 18px; }
body .elementor .elementor-widget.faq-jump p.faq-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1.5rem; }
body .elementor .elementor-widget.faq-jump a { text-decoration: none; background: #fff; border: 1px solid var(--sand-200); border-radius: 999px; padding: .45em 1em; font-size: .88rem; font-weight: 600; color: var(--navy-800); }
body .elementor .elementor-widget.faq-jump a:hover { border-color: var(--gold-500); background: var(--gold-100); }
body .elementor .elementor-widget.faq--compact .elementor-tab-title { padding: 14px 54px 14px 20px; font-size: 1rem; }
body .elementor .elementor-widget.faq--compact .elementor-tab-content { font-size: .97rem; }
body .elementor .elementor-widget.faq--compact .elementor-tab-content ul { padding-left: 1.2em; }
body .elementor .elementor-widget.faq--compact .elementor-tab-content li { margin-bottom: .4em; }
/* notice widget follows the sale-notice shortcode tightly */
body .elementor .elementor-widget.notice { margin-bottom: 14px; }
/* shortcode widget that renders nothing (no sale notice) collapses */
body .elementor .elementor-widget-shortcode .elementor-shortcode:empty { display: none; }
body .elementor .elementor-widget-shortcode:has(.elementor-shortcode:empty) { margin: 0; }

/* ---------- Sale table: stacked cards on phones ------------------------ */
@media (max-width: 640px) {
  .dcmc-table { min-width: 0; }
  .dcmc-table thead { display: none; }
  .dcmc-table, .dcmc-table tbody { display: block; }
  .dcmc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; padding: 16px 18px; border-bottom: 1px solid var(--sand-200); }
  .dcmc-row:last-child { border-bottom: 0; }
  .dcmc-row td { display: block; padding: 0; border: 0; }
  .dcmc-row:hover td { background: transparent; }
  .dcmc-row__n { grid-column: 1 / -1; font-size: .78rem; width: auto; }
  .dcmc-row__n::before { content: "Property #"; }
  .dcmc-row__case, .dcmc-row__addr { grid-column: 1 / -1; }
  .dcmc-row__addr { order: -1; }
  .dcmc-row__street { font-family: var(--font-display); font-size: 1.1rem; }
  .dcmc-row__money { text-align: left; font-size: .95rem; }
  .dcmc-row__money::before { display: block; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-300); font-weight: 700; }
  .dcmc-row__money:nth-child(4)::before { content: "Judgment"; }
  .dcmc-row__money:nth-child(5)::before { content: "Appraisal"; }
  .dcmc-row__status { grid-column: 1 / -1; padding-top: 4px; }
  .dcmc-row__price { display: inline-block; margin: 0 0 0 10px; }
}
