/* ============================================================
   GOODMAN PROPERTIES — Base: tokens, reset, type
   Palette: Deep Maroon + Refined Gold + Warm Neutrals
   Type: Fraunces (display) + Work Sans (body)
   ============================================================ */

:root {
  /* Type scale */
  --text-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
  --text-sm: clamp(0.8125rem, 0.78rem + 0.2vw, 0.9375rem);
  --text-base: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1.02rem + 0.45vw, 1.375rem);
  --text-xl: clamp(1.375rem, 1.15rem + 1vw, 2rem);
  --text-2xl: clamp(1.875rem, 1.35rem + 2.2vw, 3rem);
  --text-3xl: clamp(2.375rem, 1.4rem + 3.8vw, 4.5rem);

  /* Spacing (4px base) */
  --space-1: 0.25rem;  --space-2: 0.5rem;   --space-3: 0.75rem;
  --space-4: 1rem;     --space-5: 1.25rem;  --space-6: 1.5rem;
  --space-8: 2rem;     --space-10: 2.5rem;  --space-12: 3rem;
  --space-16: 4rem;    --space-20: 5rem;    --space-24: 6rem;
  --space-32: 8rem;

  /* Radius / motion */
  --radius-sm: 0.25rem; --radius-md: 0.5rem; --radius-lg: 0.875rem;
  --radius-xl: 1.25rem; --radius-full: 9999px;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --transition-interactive: 220ms var(--ease-out);

  /* Widths */
  --content-narrow: 680px;
  --content-default: 1040px;
  --content-wide: 1240px;

  /* Fonts */
  --font-display: 'Fraunces', 'Libre Baskerville', Georgia, serif;
  --font-body: 'Work Sans', 'Helvetica Neue', system-ui, sans-serif;

  /* Colors */
  --color-bg: #faf8f5;
  --color-surface: #ffffff;
  --color-surface-2: #f4f0ea;
  --color-surface-offset: #ece6dd;
  --color-divider: #e3dccf;
  --color-border: #d8cfbf;

  --color-text: #23140f;
  --color-text-muted: #6c5c52;
  --color-text-faint: #a99a8c;
  --color-text-inverse: #faf8f5;

  --color-maroon: #4a1310;
  --color-maroon-deep: #2e0b09;
  --color-maroon-soft: #6a201b;

  --color-gold: #b8892b;
  --color-gold-hover: #9c711f;
  --color-gold-soft: #d9b45f;
  --color-gold-tint: #f3e9d4;

  --color-primary: var(--color-maroon);
  --color-primary-hover: var(--color-maroon-soft);
  --color-accent: var(--color-gold);

  --shadow-sm: 0 1px 3px rgba(46, 11, 9, 0.08);
  --shadow-md: 0 6px 20px rgba(46, 11, 9, 0.10);
  --shadow-lg: 0 20px 48px rgba(46, 11, 9, 0.16);
  --shadow-gold: 0 8px 28px rgba(184, 137, 43, 0.28);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, picture, svg, video { display: block; max-width: 100%; }
img { height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
a { color: inherit; text-decoration: none; }
ul[role="list"] { list-style: none; padding: 0; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--color-text);
  text-wrap: balance;
  font-variation-settings: "opsz" 144;
}
h1 { font-size: var(--text-3xl); font-weight: 600; letter-spacing: -0.02em; }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-lg); }
h4 { font-size: var(--text-base); font-family: var(--font-body); font-weight: 700; }
p { text-wrap: pretty; }

:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 3px; border-radius: 2px; }

.skip-link {
  position: absolute; left: var(--space-4); top: -100px;
  background: var(--color-maroon); color: #fff; padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md); z-index: 1000; font-weight: 600;
}
.skip-link:focus { top: var(--space-4); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
