/* Keller inner pages: no dark gradient overlays on photos (Ryan, 2026-10-10; homepage done in
   kny-home-light.css). Text that sits on a photo gets its own warm-white backing plate instead,
   because the rendered-contrast QA gate (tools/qa/visual/lib/rendered-contrast.mjs) measures with
   text-shadow removed. Plates are Twig-wrapped (.kny-hero-plate) in the buy/sell/about/luxury heroes. */
/* Compatibility aliases for photo-led variants share the published palette. */
:root {
  --kny-ink: var(--vr-color-text);
  --kny-ink-soft: var(--vr-color-text);
  --kny-ink-muted: var(--vr-color-muted);
  --kny-ink-deep: var(--vr-color-accent);
  --kny-ink-on-dark: var(--vr-color-on-inverse);
  --kny-plate-bg: color-mix(in srgb, var(--vr-color-surface) 88%, transparent);
  --kny-plate-bg-strong: color-mix(in srgb, var(--vr-color-surface) 90%, transparent);
  --kny-plate-bar: color-mix(in srgb, var(--vr-color-surface) 92%, transparent);
}
.kny-lux-hero__overlay,
.kny-buy-hero__scrim,
.kny-sell-hero__scrim,
.kny-about-hero__scrim,
.kny-lux-neighborhood__photo-overlay,
.single-localpages .hero-section.has-overlay::before,
.post-type-archive-localpages .hero-section.has-overlay::before { background: none; }

.kny-hero-plate { width: fit-content; max-width: min(100%, 52rem); margin-inline: auto; padding: 1.5rem 2.25rem 1.75rem; text-align: center; color: var(--kny-ink); background: var(--kny-plate-bg); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.kny-hero-plate :is(.kny-buy-hero__title, .kny-sell-hero__title, .kny-about-hero__title, .kny-lux-hero__title) { color: var(--kny-ink); text-shadow: none; max-width: none; margin-inline: auto; }
.kny-hero-plate :is(.kny-sell-hero__lead, .kny-about-hero__lead, .kny-buy-hero__lead) { color: var(--kny-ink-soft); text-shadow: none; opacity: 1; margin-inline: auto; }
.kny-hero-plate :is(.kny-about-hero__eyebrow, .kny-lux-hero__eyebrow, .kny-buy-hero__eyebrow) { color: var(--kny-ink-muted); opacity: 1; }
.kny-hero-plate :is(.kny-buy-hero__cta, .kny-sell-hero__cta) { color: var(--kny-ink-on-dark); background: var(--vr-color-inverse); border: 1px solid var(--vr-color-inverse); text-shadow: none; }
.kny-hero-plate :is(.kny-buy-hero__cta, .kny-sell-hero__cta):hover,
.kny-hero-plate :is(.kny-buy-hero__cta, .kny-sell-hero__cta):focus-visible { color: var(--vr-color-on-accent); background: var(--kny-ink-deep); border-color: var(--kny-ink-deep); outline: 2px solid var(--kny-ink); outline-offset: 2px; }
.kny-about-hero__copy { max-width: none; }

/* Headers that float over a hero photo: solid light bar instead of a dark top gradient. */
.kny-lux-page .kny-header:not(.is-fixed),
.kny-about-hero .kny-header:not(.is-fixed) { background: var(--kny-plate-bar); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
:is(.kny-lux-page, .kny-about-hero) .kny-header:not(.is-fixed) :is(.kny-wordmark, .kny-wordmark__brand, .kny-wordmark__sub, .kny-nav__link, .kny-menu-toggle) { color: var(--kny-ink); }

/* Localpage hero: title on its own plate over the (now ungraded) photo. */
:is(.single-localpages, .post-type-archive-localpages) .hero-section.has-overlay .hero-heading { display: inline-block; max-width: 100%; color: var(--kny-ink) !important; padding: .5rem 1.25rem .65rem; background: var(--kny-plate-bg); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); text-shadow: none; }
@media (max-width: 767px) {
  /* Compact, bottom-anchored plates so at least half of each hero photo stays visible. */
  .kny-hero-plate { max-width: 100%; padding: .7rem .85rem .8rem; }
  .kny-buy-hero__inner, .kny-sell-hero__inner { padding-bottom: 1rem; padding-left: .75rem; padding-right: .75rem; }
  .kny-buy-hero__title, .kny-sell-hero__title, .kny-about-hero__title { font-size: clamp(1.5rem, 7vw, 1.9rem); line-height: 1.12; }
  .kny-hero-plate :is(.kny-buy-hero__lead, .kny-sell-hero__lead, .kny-about-hero__lead) { margin: .5rem auto 0; font-size: .78rem; line-height: 1.4; letter-spacing: 0; }
  .kny-hero-plate :is(.kny-buy-hero__cta, .kny-sell-hero__cta) { margin-top: .75rem; padding: .65rem 1.25rem; }
  .kny-about-hero__eyebrow { margin-bottom: .5rem; }
  .kny-about-hero__copy { padding: 5.5rem .75rem 1rem; margin-top: auto; margin-bottom: 0; }
}

/* Luxury neighborhood tiles: label sits on the (ungraded) photo, so it gets a plate. */
.kny-lux-neighborhood__photo-label { width: fit-content; max-width: calc(100% - 1rem); margin: 0 0 .6rem .6rem; padding: .4rem .7rem; background: var(--kny-plate-bg-strong); }
.kny-lux-neighborhood__name { color: var(--kny-ink); margin: 0; text-shadow: none; }
