/* Keystone (real estate and property): clean and businesslike, packages up front. */
:root { --bg: #ffffff; --fg: #142029; --muted: #5d6b75; --line: #e3e8ec; --card: #f2f5f7;
  --font-display: "Manrope", "Helvetica Neue", Arial, sans-serif; --font-body: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --radius: 10px; --btn-bg: var(--accent); --btn-fg: #fff; --hero-h: min(78vh, 760px); }
.t-keystone h1, .t-keystone .s-h2, .t-keystone h3 { font-weight: 800; letter-spacing: -.03em; }
.t-keystone .s-hero h1 { font-size: clamp(40px, 5.6vw, 76px); }
.t-keystone .s-hero[data-hero="split"] { background: var(--card); }
.t-keystone .s-hero[data-hero="split"] .s-hero-copy { padding-inline: var(--gutter) clamp(24px, 4vw, 64px); margin-left: max(0px, calc((100vw - var(--wrap)) / 2 - var(--gutter))); }
.t-keystone .s-services { order: -1; }
.t-keystone .s-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.t-keystone .s-card { background: #fff; border: 1px solid var(--line); }
.t-keystone .s-card:nth-child(2) { border: 2px solid var(--accent); }
.t-keystone .s-price { font-size: 30px; font-weight: 800; letter-spacing: -.02em; }
.t-keystone .s-grid img { aspect-ratio: 3 / 2; }
.t-keystone .s-eyebrow { color: var(--accent); opacity: 1; font-weight: 700; }
.t-keystone .s-words blockquote p { font-weight: 600; }
.t-keystone #main { display: flex; flex-direction: column; } .t-keystone .s-hero { order: -2; }
