/* ===== RANCHO SANTA FE: horse country, by covenant ===== */
:root{
  --rsf-green:#1E3A2B; --rsf-green-2:#2C5240; --rsf-ox:#6E1F24; --rsf-brass:#A9844D; --rsf-brass-2:#C9A66B;
  --rsf-paper:#F4EFE4; --rsf-paper-line:rgba(30,58,43,.18); --rsf-ink:#13261C;
}
@media (prefers-color-scheme: dark){
  :root{ --rsf-paper:#121A15; --rsf-paper-line:rgba(201,166,107,.22); --rsf-brass:#C9A66B; --rsf-ox:#B0484E; --rsf-green-2:#7FB394; }
}

/* silks stripe: the page's signature rule */
.rsf-silks{ height:10px; background:repeating-linear-gradient(90deg, var(--rsf-green) 0 46px, var(--rsf-brass-2) 46px 54px, #6E1F24 54px 100px, var(--rsf-brass-2) 100px 108px); }

/* hero */
.rsf-hero{ min-height:92vh; }
.rsf-hero .hero-bg{ background:#0d150f; overflow:hidden; }
.rsf-hero-img{ position:absolute; inset:-4%; background-size:cover; background-position:center 62%; animation:rsfKB 30s ease-in-out infinite alternate; }
@keyframes rsfKB{ from{ transform:scale(1.02) translate(0,0); } to{ transform:scale(1.1) translate(-1.5%,-1%); } }
.rsf-hero .hero-bg::after{ background:linear-gradient(180deg, rgba(8,14,10,.35) 0%, rgba(8,14,10,.15) 30%, rgba(10,20,14,.6) 62%, rgba(6,10,8,.94) 100%); }
.rsf-hero .hero-tag{ border-color:rgba(201,166,107,.6); color:var(--rsf-brass-2); background:rgba(10,20,14,.55); }
.rsf-hero h1{ max-width:none; font-size:clamp(54px,10vw,136px); line-height:.9; letter-spacing:-.02em; font-weight:460; }
.rsf-hero h1 em{ display:block; font-style:italic; font-weight:380; font-size:.42em; letter-spacing:0; color:var(--rsf-brass-2); margin-top:.35em; }
.rsf-hero .lede{ color:#E2DED3; max-width:600px; }
.rsf-hero .btn-solid{ background:var(--rsf-brass-2); color:#13261C; }
.rsf-hero .btn-solid:hover{ background:#E0C08A; }
.rsf-hero-cap{ position:absolute; right:28px; bottom:22px; z-index:3; font:11px 'IBM Plex Mono',monospace; letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,.7); }
@media (prefers-reduced-motion:reduce){ .rsf-hero-img{ animation:none; } }
@media (max-width:760px){ .rsf-hero{ flex-direction:column; justify-content:flex-end; } .rsf-hero-cap{ position:relative; right:auto; bottom:auto; align-self:stretch; padding:0 28px 18px; } .rsf-hero .hero-inner{ padding-bottom:22px; } }

/* next-on-the-card strip */
.rsf-next{ padding:0; background:var(--rsf-ink); color:#F1ECE0; }
.rsf-next .wrap{ display:flex; align-items:center; gap:22px; padding-top:20px; padding-bottom:20px; flex-wrap:wrap; }
.rsf-next .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.6px; text-transform:uppercase; color:var(--rsf-brass-2); }
.rsf-next .t{ font-family:'Fraunces',Georgia,serif; font-size:22px; color:#FFFFFF; }
.rsf-next .d{ font:13px 'IBM Plex Mono',monospace; color:#B9B4A6; }
.rsf-next .cd{ margin-left:auto; text-align:right; }
.rsf-next .cd b{ display:block; font-family:'Fraunces',Georgia,serif; font-size:34px; line-height:1; color:var(--rsf-brass-2); }
.rsf-next a{ border-bottom:1px solid rgba(201,166,107,.5); }
@media (max-width:760px){ .rsf-next .cd{ margin-left:0; text-align:left; } }

/* shared */
.rsf-eyebrow{ color:var(--rsf-brass) !important; }
.rsf-paper{ background:var(--rsf-paper); }
.rsf-src{ margin-top:18px; font-size:12px; color:var(--text-faint); }
.rsf-src a{ text-decoration:underline; }
.rsf-shoe{ display:block; width:34px; height:34px; color:var(--rsf-brass); margin-bottom:14px; }

/* numbers */
.rsf-nums{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.rsf-num{ padding:30px 22px 28px; border-left:1px solid var(--line-soft); }
.rsf-num:first-child{ border-left:0; padding-left:0; }
.rsf-num b{ display:block; font-family:'Fraunces',Georgia,serif; font-weight:460; font-size:clamp(42px,5.4vw,68px); line-height:1; color:var(--rsf-green); }
@media (prefers-color-scheme: dark){ .rsf-num b{ color:var(--rsf-brass-2); } }
.rsf-num b small{ font-size:.42em; font-style:italic; margin-left:4px; }
.rsf-num span{ display:block; margin-top:12px; font-size:14.5px; color:var(--text-soft); }
@media (max-width:860px){ .rsf-nums{ grid-template-columns:repeat(2,1fr); } .rsf-num:nth-child(3){ border-left:0; padding-left:0; } .rsf-num{ border-top:1px solid var(--line-soft); } .rsf-num:nth-child(-n+2){ border-top:0; } }

/* THE SEASON: race-card program */
.rsf-program{ display:grid; grid-template-columns:300px 1fr; gap:40px; align-items:start; }
.rsf-card-side{ position:sticky; top:90px; border:1px solid var(--rsf-paper-line); border-radius:4px; padding:26px 24px; background:var(--bg-card); }
.rsf-card-side h3{ font-size:24px; font-weight:460; font-style:italic; }
.rsf-card-side p{ font-size:14px; color:var(--text-soft); margin:10px 0 0; }
.rsf-legend{ list-style:none; padding:0; margin:18px 0 0; display:grid; gap:9px; font-size:13.5px; }
.rsf-legend li{ display:flex; align-items:center; gap:10px; }
.rsf-cap{ width:18px; height:18px; border-radius:50%; flex:none; box-shadow:inset 0 0 0 2px rgba(255,255,255,.35); }
.rsf-cap.racing{ background:repeating-linear-gradient(90deg,#6E1F24 0 4px,#C9A66B 4px 8px); }
.rsf-cap.jumping{ background:repeating-linear-gradient(45deg,#1E3A2B 0 4px,#F4EFE4 4px 8px); }
.rsf-cap.dressage{ background:radial-gradient(circle,#F4EFE4 0 3px,#13261C 3px); }
.rsf-cap.village{ background:conic-gradient(#A9844D 0 25%,#1E3A2B 0 50%,#A9844D 0 75%,#1E3A2B 0); }
.rsf-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; }
.rsf-chips button{ font:500 13px 'Archivo',sans-serif; padding:8px 15px; border-radius:2px; border:1px solid var(--line); background:transparent; color:var(--text); cursor:pointer; letter-spacing:.2px; }
.rsf-chips button.is-on{ background:var(--rsf-green); color:#F4EFE4; border-color:var(--rsf-green); }
@media (prefers-color-scheme: dark){ .rsf-chips button.is-on{ background:var(--rsf-brass-2); color:#13261C; border-color:var(--rsf-brass-2); } }
.rsf-month{ font:600 11px 'IBM Plex Mono',monospace; letter-spacing:2.4px; text-transform:uppercase; color:var(--rsf-brass); padding:22px 0 8px; border-bottom:2px solid var(--rsf-brass); display:flex; justify-content:space-between; }
.rsf-month:first-child{ padding-top:0; }
.rsf-race{ display:grid; grid-template-columns:52px 74px 1fr auto; gap:18px; align-items:center; padding:16px 2px; border-bottom:1px solid var(--rsf-paper-line); color:inherit; transition:background .2s; }
.rsf-race:hover{ background:rgba(169,132,77,.08); }
.rsf-race .no{ font-family:'Fraunces',Georgia,serif; font-size:30px; font-weight:380; font-style:italic; color:var(--text-faint); text-align:right; }
.rsf-race .dt{ text-align:center; border:1px solid var(--rsf-paper-line); padding:6px 0; background:var(--bg-card); }
.rsf-race .dt b{ display:block; font-family:'Fraunces',Georgia,serif; font-size:24px; line-height:1; }
.rsf-race .dt span{ font:10px 'IBM Plex Mono',monospace; letter-spacing:1px; text-transform:uppercase; color:var(--text-faint); }
.rsf-race h3{ font-size:19px; font-weight:560; margin:0 0 3px; }
.rsf-race p{ margin:0; font-size:13.5px; color:var(--text-soft); }
.rsf-race .meta{ display:flex; gap:8px; align-items:center; font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.1px; text-transform:uppercase; color:var(--text-faint); margin-bottom:4px; flex-wrap:wrap; }
.rsf-race .exp{ border:1px dashed var(--text-faint); padding:1px 6px; }
.rsf-race .soon{ background:var(--rsf-ox); color:#fff; padding:2px 7px; }
.rsf-race .go{ font:12px 'IBM Plex Mono',monospace; color:var(--rsf-brass); white-space:nowrap; }
.rsf-empty{ color:var(--text-faint); padding:20px 0; }
@media (max-width:900px){ .rsf-program{ grid-template-columns:1fr; } .rsf-card-side{ position:static; } }
@media (max-width:600px){ .rsf-race{ grid-template-columns:60px 1fr; } .rsf-race .no, .rsf-race .go{ display:none; } }

/* THE MAP: an estate plat */
.rsf-mapband{ background:var(--rsf-ink); color:#EDE7DA; }
.rsf-mapband h2{ color:#FFFFFF; }
.rsf-mapband .section-head p{ color:#B9B4A6; }
.rsf-mapgrid{ display:grid; grid-template-columns:1.6fr 1fr; gap:34px; align-items:start; }
.rsf-plat{ position:relative; border:1px solid rgba(201,166,107,.35); background:#16291E; border-radius:2px; padding:10px; }
.rsf-plat svg{ display:block; width:100%; height:auto; }
.rsf-plat .pin{ cursor:pointer; }
.rsf-plat .pin circle.dot{ fill:#C9A66B; stroke:#16291E; stroke-width:3; transition:r .2s; }
.rsf-plat .pin.is-on circle.dot, .rsf-plat .pin:hover circle.dot, .rsf-plat .pin:focus circle.dot{ fill:#FFFFFF; }
.rsf-plat .pin circle.halo{ fill:none; stroke:#C9A66B; stroke-width:1.5; opacity:0; }
.rsf-plat .pin.is-on circle.halo{ opacity:1; }
.rsf-plat .pin text{ font:600 11px 'IBM Plex Mono',monospace; letter-spacing:1px; fill:#EDE7DA; text-transform:uppercase; }
.rsf-plat .pin:focus{ outline:none; }
.rsf-plat-note{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1px; text-transform:uppercase; color:#8E8A7E; margin-top:10px; }
.rsf-place{ border-top:2px solid #C9A66B; padding-top:20px; min-height:300px; }
.rsf-place .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.6px; text-transform:uppercase; color:#C9A66B; }
.rsf-place h3{ font-size:30px; font-weight:460; color:#FFFFFF; margin:8px 0 12px; }
.rsf-place p{ color:#C9C4B7; }
.rsf-place ul{ margin:14px 0 0; padding:0; list-style:none; display:grid; gap:8px; }
.rsf-place li{ font-size:14px; color:#DCD6C8; padding-left:18px; position:relative; }
.rsf-place li::before{ content:""; position:absolute; left:0; top:.6em; width:8px; height:1px; background:#C9A66B; }
.rsf-placelist{ display:flex; flex-wrap:wrap; gap:6px; margin-top:22px; }
.rsf-placelist button{ font:11px 'IBM Plex Mono',monospace; letter-spacing:.8px; text-transform:uppercase; padding:6px 10px; border:1px solid rgba(201,166,107,.35); background:transparent; color:#DCD6C8; cursor:pointer; }
.rsf-placelist button.is-on{ background:#C9A66B; color:#13261C; }
@media (max-width:900px){ .rsf-mapgrid{ grid-template-columns:1fr; } .rsf-place{ min-height:0; } }

/* the barns */
.rsf-barns{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(--line); }
.rsf-barn{ padding:28px 24px; border-left:1px solid var(--line-soft); display:flex; flex-direction:column; }
.rsf-barn:first-child{ border-left:0; }
.rsf-barn .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.4px; text-transform:uppercase; color:var(--rsf-brass); }
.rsf-barn h3{ font-size:22px; margin:8px 0 10px; font-weight:560; }
.rsf-barn p{ font-size:14px; color:var(--text-soft); margin:0; }
.rsf-barn .big{ font-family:'Fraunces',Georgia,serif; font-size:44px; line-height:1; margin-top:auto; padding-top:22px; color:var(--rsf-green); }
.rsf-barn .big small{ display:block; font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.2px; text-transform:uppercase; color:var(--text-faint); margin-top:6px; }
@media (prefers-color-scheme: dark){ .rsf-barn .big{ color:var(--rsf-brass-2); } }
@media (max-width:980px){ .rsf-barns{ grid-template-columns:repeat(2,1fr); } .rsf-barn:nth-child(3){ border-left:0; } .rsf-barn:nth-child(n+3){ border-top:1px solid var(--line-soft); } }
@media (max-width:560px){ .rsf-barns{ grid-template-columns:1fr; } .rsf-barn{ border-left:0; border-top:1px solid var(--line-soft); } .rsf-barn:first-child{ border-top:0; } }

/* the covenant timeline */
.rsf-tl{ position:relative; display:grid; gap:0; margin-top:10px; }
.rsf-tl::before{ content:""; position:absolute; left:132px; top:8px; bottom:8px; width:1px; background:var(--rsf-brass); }
.rsf-tl-row{ display:grid; grid-template-columns:110px 44px 1fr; align-items:baseline; padding:16px 0; }
.rsf-tl-row .y{ font-family:'Fraunces',Georgia,serif; font-size:34px; font-weight:460; text-align:right; color:var(--rsf-green); line-height:1; }
@media (prefers-color-scheme: dark){ .rsf-tl-row .y{ color:var(--rsf-brass-2); } }
.rsf-tl-row .m{ position:relative; height:100%; }
.rsf-tl-row .m::after{ content:""; position:absolute; left:17px; top:10px; width:9px; height:9px; transform:rotate(45deg); background:var(--rsf-paper); border:1px solid var(--rsf-brass); }
.rsf-tl-row h3{ font-size:20px; font-weight:560; margin:0 0 4px; }
.rsf-tl-row p{ margin:0; color:var(--text-soft); font-size:15px; max-width:640px; }
.rsf-tl-row.key h3{ font-style:italic; }
.rsf-tl-row.key .m::after{ background:var(--rsf-ox); border-color:var(--rsf-ox); }
@media (max-width:600px){ .rsf-tl::before{ left:82px; } .rsf-tl-row{ grid-template-columns:62px 40px 1fr; } .rsf-tl-row .y{ font-size:24px; } .rsf-tl-row .m::after{ left:15px; } }

/* covenant vs zip */
.rsf-cov{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.rsf-cov-box{ border:1px solid var(--line); padding:28px; background:var(--bg-card); }
.rsf-cov-box h3{ font-size:22px; }
.rsf-cov-box ol{ margin:14px 0 0; padding-left:20px; color:var(--text-soft); }
.rsf-cov-box li{ margin:8px 0; }
.rsf-cov-box li b{ color:var(--text); }
@media (max-width:860px){ .rsf-cov{ grid-template-columns:1fr; } }

/* form band */
.rsf-form input, .rsf-form textarea{ padding:14px 16px; border-radius:2px; border:1px solid rgba(201,166,107,.35); background:#0F1C14; color:#F5F5F3; font-family:Archivo,sans-serif; font-size:15px; }
.rsf-form button{ background:#C9A66B; color:#13261C; border:0; cursor:pointer; }
