/* =========================================================
   RED BRICK REALTY — "Data-Forward, Brick"
   Confident property brokerage. Newsreader display, Archivo
   body. Warm off-white, deep brick-red accent (the name made
   literal), warm-charcoal ink. Structured, gridded, honest.
   ========================================================= */

:root {
  --brick:      oklch(0.505 0.14 33);
  --brick-d:    oklch(0.42 0.125 32);
  --brick-soft: oklch(0.505 0.14 33 / 0.11);
  --brick-dark: oklch(0.225 0.03 34);   /* dark warm bg */
  --brick-light:oklch(0.74 0.1 40);     /* accents on dark */
  --ink:        oklch(0.235 0.012 45);
  --ink-soft:   oklch(0.44 0.012 45);
  --ink-faint:  oklch(0.58 0.01 45);
  --paper:      oklch(0.972 0.008 72);
  --paper-2:    oklch(0.948 0.01 70);
  --card:       oklch(1 0 0);
  --line:       oklch(0.235 0.012 45 / 0.14);
  --line-d:     oklch(0.98 0.006 70 / 0.16);

  /* legacy aliases */
  --green: var(--brick);
  --green-deep: var(--brick-d);
  --green-dark: var(--brick-dark);
  --green-soft: var(--brick-soft);

  --display: "Newsreader", Georgia, "Times New Roman", serif;
  --body: "Archivo", system-ui, -apple-system, sans-serif;

  --wrap: 1240px;
  --gut: clamp(20px, 5vw, 60px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--body); color: var(--ink); background: var(--paper); font-size: 17px; line-height: 1.62; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 500; line-height: 1.04; margin: 0; letter-spacing: -0.01em; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }

.eyebrow { font-family: var(--body); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brick-d); margin: 0 0 1.1rem; display: inline-flex; align-items: center; gap: 0.6em; }
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--brick); }
.eyebrow--light { color: var(--brick-light); }
.eyebrow--light::before { background: var(--brick-light); }

.lead { font-size: 1.16rem; color: var(--ink-soft); line-height: 1.6; max-width: 56ch; }

.btn { display: inline-flex; align-items: center; gap: 0.55em; font-family: var(--body); font-weight: 700; font-size: 0.85rem; letter-spacing: 0.02em; padding: 0.95em 1.7em; border: 1.5px solid transparent; border-radius: 4px; cursor: pointer; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn--green { background: var(--brick); color: #fff; }
.btn--green:hover { background: var(--brick-d); }
.btn--dark { background: var(--ink); color: var(--paper); }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--ink); }
.btn--ghost-light { background: transparent; color: var(--paper); border-color: var(--line-d); }
.btn--ghost-light:hover { border-color: var(--paper); background: oklch(0.98 0.006 70 / 0.08); }
.btn--lg { font-size: 0.92rem; padding: 1.1em 2em; }

.arrow-link { display: inline-flex; align-items: center; gap: 0.5em; font-family: var(--body); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--brick-d); }
.arrow-link span { transition: transform .2s ease; }
.arrow-link:hover span { transform: translateX(5px); }

/* nav */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 1.05rem var(--gut); transition: background .35s ease, border-color .35s ease, color .35s ease; border-bottom: 1px solid transparent; }
.nav__brand { display: flex; align-items: center; gap: 0.6rem; font-family: var(--display); font-size: 1.5rem; font-weight: 600; }
.nav__brand .mark { width: 24px; height: 24px; background: var(--brick); border-radius: 2px; flex: none; }
.nav__links { display: flex; align-items: center; gap: clamp(1rem, 2.6vw, 2.4rem); list-style: none; margin: 0; padding: 0; }
.nav__links a { font-weight: 600; font-size: 0.86rem; position: relative; }
.nav__links a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 0; height: 2px; background: var(--brick); transition: width .25s ease; }
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after { width: 100%; }
.nav.scrolled, .nav--solid { background: oklch(0.972 0.008 72 / 0.92); backdrop-filter: blur(14px); border-bottom-color: var(--line); color: var(--ink); }
.nav--overlay { color: var(--paper); }
@media (max-width: 760px) { .nav__links li:not(.nav__cta) { display: none; } }

/* footer */
.footer { background: var(--brick-dark); color: var(--paper); padding: clamp(3rem,6vw,5rem) 0 2rem; }
.footer__top { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2.5rem; padding-bottom: 2.6rem; border-bottom: 1px solid var(--line-d); }
.footer__brand { display: flex; align-items: center; gap: 0.6rem; font-family: var(--display); font-size: 1.8rem; font-weight: 600; }
.footer__brand .mark { width: 24px; height: 24px; background: var(--brick); border-radius: 2px; }
.footer p, .footer li { color: oklch(0.98 0.006 70 / 0.66); font-size: 0.95rem; }
.footer h4 { font-family: var(--body); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 1rem; }
.footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-top: 1.5rem; font-size: 0.8rem; color: oklch(0.98 0.006 70 / 0.5); }
@media (max-width: 760px) { .footer__top { grid-template-columns: 1fr; gap: 2rem; } }

/* listing card */
.lcard { background: var(--card); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease; display: flex; flex-direction: column; }
.lcard:hover { transform: translateY(-5px); box-shadow: 0 28px 60px -36px oklch(0.3 0.05 40 / 0.4); }
.lcard__thumb { aspect-ratio: 3/2; position: relative; overflow: hidden; background: var(--paper-2); }
.lcard__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.lcard:hover .lcard__thumb img { transform: scale(1.05); }
.lcard__badges { position: absolute; top: 0; left: 0; right: 0; z-index: 3; display: flex; justify-content: space-between; padding: 0.8rem; }
.badge { font-family: var(--body); font-weight: 700; font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.4em 0.7em; border-radius: 4px; }
.badge--type { background: oklch(1 0 0 / 0.92); color: var(--ink); backdrop-filter: blur(4px); }
.badge--active { background: var(--brick); color: #fff; }
.badge--sold { background: var(--ink); color: var(--paper); }
.lcard__body { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.lcard__price { font-family: var(--display); font-size: 1.85rem; font-weight: 600; line-height: 1; }
.lcard__addr { font-weight: 600; margin-top: 0.5rem; }
.lcard__hood { color: var(--ink-faint); font-size: 0.86rem; margin-top: 0.1rem; }
.lcard__specs { display: flex; gap: 1.1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: 0.88rem; color: var(--ink-soft); font-weight: 600; }
.lcard__specs span { display: inline-flex; align-items: center; gap: 0.35em; }
.lcard__specs b { color: var(--ink); }
.th-label { position: absolute; left: 0; bottom: 0; z-index: 2; font-family: ui-monospace, Menlo, monospace; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.04em; color: oklch(1 0 0 / 0.9); background: oklch(0.2 0.02 40 / 0.5); padding: 0.4em 0.65em; margin: 0.7rem; backdrop-filter: blur(3px); }

/* reveal */
html.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s cubic-bezier(.2,.7,.2,1), transform .75s cubic-bezier(.2,.7,.2,1); }
html.js .reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.js .reveal { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

/* section */
.section { padding: clamp(4rem, 9vw, 8rem) 0; }
.section--dark { background: var(--brick-dark); color: var(--paper); }
.section--paper2 { background: var(--paper-2); }
.section-head { max-width: 62ch; margin-bottom: clamp(2.4rem, 5vw, 3.6rem); }
.section-head h2 { font-size: clamp(2.4rem, 5.2vw, 3.8rem); }
.section-head h2 em { font-style: italic; color: var(--brick-d); }
.section-head .lead { margin-top: 1.1rem; }
