/* SPFI Property Management — design system (contract for all sections) */
:root{
  /* Brand palette derived from the SPFI logo (navy + forest/sage green). Variable names
     kept as --teal/--blue for legacy reuse, but values are the real brand colors. */
  --teal:#0F2350;        /* PRIMARY brand — SPFI navy */
  --teal-700:#0a1838;    /* darker navy (footer/dark sections) */
  --coral:#F26E5F;       /* CTA accent — warm pop against navy/green; use sparingly */
  --coral-600:#e25a4a;
  --blue:#0c5a2e;        /* secondary / links / icons — forest green (logo roof) */
  --sage:#79876E;        /* soft sage (logo roof) — subtle accents */
  --ink:#1E1E1E;         /* body text */
  --muted:#5b6b72;       /* secondary text */
  --bg:#ffffff;
  --cool:#F4F6FA;        /* cool tint section (navy-leaning) */
  --warm:#F6F4EF;        /* warm tint section (sage-leaning) */
  --line:#E4E8EF;        /* hairlines / card borders */
  /* Headings use a clean sans (DM Sans) — Fraunces's swashy f/g read "goofy". Kept the --serif
     name so all heading refs update from one spot; set a serif here to restore one later. */
  --serif:'DM Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --sans:'DM Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --wrap:1120px;
  --radius:12px;
  --radius-sm:6px;
  --shadow:0 1px 2px rgba(17,66,86,.06),0 8px 24px rgba(17,66,86,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;line-height:1.12;color:var(--teal);margin:0 0 .4em;letter-spacing:-.01em}
h1{font-size:clamp(38px,5vw,58px);font-weight:700;letter-spacing:-.015em}
h2{font-size:clamp(28px,3.4vw,40px)}
h3{font-size:22px}
p{margin:0 0 1rem}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.sec{padding:84px 0}
.sec--tint{background:var(--cool)}
.sec--warm{background:var(--warm)}
.sec--teal{background:var(--teal);color:#eaf2f5}
.sec--teal h2,.sec--teal h3{color:#fff}
.eyebrow{font-family:var(--sans);font-weight:700;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--blue);margin:0 0 12px}
.lede{font-size:19px;color:var(--muted);max-width:60ch}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--coral);color:#fff;
  font-family:var(--sans);font-weight:700;font-size:16px;padding:14px 28px;border:0;
  border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,transform .15s;text-decoration:none}
.btn:hover{background:var(--coral-600);text-decoration:none;transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--teal);border:1.5px solid var(--line)}
.btn--ghost:hover{background:#fff;border-color:var(--teal)}
.btn--light{background:#fff;color:var(--teal)}
.btn--light:hover{background:#f1f5f7}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.center{text-align:center}
.sec__head{max-width:680px;margin:0 auto 48px}
.sec--left .sec__head{margin-left:0}
@media(max-width:900px){
  .sec{padding:60px 0}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  body{font-size:16px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .sec{padding:48px 0}
}
