/* ===== ROCKSTAR REALTY BRAND ===== */
:root{
  --red:        #BF1F24;   /* Rockstar red */
  --red-dark:   #921519;
  --ink:        #1A1A1A;
  --black:      #0C0C0C;
  --panel:      #F4F8F8;   /* cool off-white */
  --surface:    #FFFFFF;
  --line:       #E2E6E6;
  --muted:      #5C6666;
  --ok:         #1F7A4D;
  --radius:     8px;   --radius-sm: 5px;
  --shadow:     0 1px 2px rgba(12,12,12,.05), 0 10px 26px rgba(12,12,12,.07);
  --shadow-lg:  0 24px 60px rgba(12,12,12,.22);
  --display: "Archivo", "Arial Narrow", Arial, sans-serif;
  --body:    Arial, "Helvetica Neue", Helvetica, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; background:var(--panel); color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased}
img{max-width:100%; display:block}
button{font-family:inherit; cursor:pointer}
.rule{display:block; width:58px; height:4px; background:var(--red); border:0; margin:12px 0 0}

header.site{position:sticky; top:0; z-index:40; background:rgba(255,255,255,.92); backdrop-filter:saturate(1.3) blur(8px); border-bottom:1px solid var(--line)}
.bar{max-width:1120px; margin:0 auto; padding:13px 22px; display:flex; align-items:center; gap:12px}
.logo-img{height:34px; width:auto; display:block}
.bar .spacer{flex:1}
.header-cta{display:none; text-decoration:none; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding:10px 18px; border-radius:var(--radius-sm); background:var(--red); color:#fff; font-family:var(--display)}
.header-cta:hover{background:var(--red-dark)}
@media(min-width:640px){ .header-cta{display:inline-block} }

.hero{max-width:1120px; margin:0 auto; padding:40px 22px 6px; position:relative}
.hero-inner{border-left:4px solid var(--red); padding-left:22px}
.kicker{font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:12.5px; color:var(--red); margin:0 0 10px}
.hero h1{font-family:var(--display); font-weight:800; letter-spacing:-.015em; font-size:clamp(32px,7vw,54px); line-height:1.02; margin:0; color:var(--ink)}
.hero h1 .lt{font-weight:300}
.hero p.lead{font-size:clamp(15px,2.3vw,18px); color:var(--muted); max-width:48ch; margin:18px 0 0}

.agent{max-width:1120px; margin:26px auto 0; padding:0 22px; display:flex; align-items:center; gap:14px}
.agent .pic{width:52px; height:52px; border-radius:50%; flex:0 0 auto; object-fit:cover; background:var(--ink); color:#fff; display:grid; place-items:center; font-family:var(--display); font-weight:700; font-size:18px}
.agent b{font-family:var(--display); font-size:15px; font-weight:700; display:block; line-height:1.15}
.agent span{font-size:12.5px; color:var(--muted)}

.filters{max-width:1120px; margin:0 auto; padding:26px 22px 6px; display:flex; gap:10px; flex-wrap:wrap}
.chip{border:1px solid var(--line); background:var(--surface); color:var(--ink); padding:9px 16px; border-radius:var(--radius-sm); font-family:var(--display); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; display:inline-flex; align-items:center; gap:8px}
.chip[aria-pressed="true"]{background:var(--red); color:#fff; border-color:var(--red)}
.chip .count{font-size:11px; padding:1px 7px; border-radius:3px; background:rgba(0,0,0,.09)}
.chip[aria-pressed="true"] .count{background:rgba(255,255,255,.25)}

.grid{max-width:1120px; margin:0 auto; padding:16px 22px 64px; display:grid; gap:22px; grid-template-columns:1fr}
@media(min-width:640px){ .grid{grid-template-columns:1fr 1fr} }
@media(min-width:980px){ .grid{grid-template-columns:1fr 1fr 1fr} }
.card{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; transition:transform .16s ease, box-shadow .16s ease}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg)}
.photo{position:relative; aspect-ratio:16/10; background:#e7ecec}
.photo svg{width:100%; height:100%}
.photo img{width:100%; height:100%; object-fit:cover}
.banner{position:absolute; top:14px; left:0; background:var(--red); color:#fff; font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:.05em; font-size:13px; padding:7px 16px 7px 14px; box-shadow:0 3px 10px rgba(0,0,0,.22)}
.banner.off{background:#fff; color:var(--muted); font-weight:700; border:1px solid var(--line); left:14px; box-shadow:none}
.card-body{padding:16px 17px 18px; display:flex; flex-direction:column; gap:8px; flex:1}
.price{font-family:var(--display); font-size:22px; font-weight:800; color:var(--ink)}
.addr{font-weight:700; font-size:15px; line-height:1.3}
.specs{display:flex; gap:15px; font-size:13px; color:var(--muted); flex-wrap:wrap}
.specs span{display:inline-flex; align-items:center; gap:5px}
.specs svg{flex:0 0 auto}
.blurb{font-size:14px; color:var(--muted); margin:0}
.listing-link{display:inline-block; font-size:13px; color:var(--muted); text-decoration:underline; text-underline-offset:2px}
.listing-link:hover{color:var(--ink)}
.modal-head .listing-link{margin-top:5px}
.showline{font-family:var(--display); font-size:13px; font-weight:700; color:var(--red); display:flex; align-items:center; gap:7px; margin-top:2px}
.card-actions{margin-top:auto; padding-top:8px}
.btn{width:100%; border:none; padding:13px 16px; border-radius:var(--radius-sm); font-family:var(--display); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none}
.btn-primary{background:var(--red); color:#fff}
.btn-primary:hover{background:var(--red-dark)}
.btn-ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-outline{background:var(--surface); color:var(--red); border:1.5px solid var(--red)}
.btn-outline:hover{background:var(--red); color:#fff}
.btn:disabled{opacity:.55; cursor:default}
.btn-submit{font-size:15px; padding:15px}

.status-card{grid-column:1/-1; background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--red); border-radius:var(--radius); padding:22px; color:var(--muted); font-size:15px}

.overlay{position:fixed; inset:0; z-index:60; background:rgba(12,12,12,.6); display:none; align-items:flex-end; justify-content:center}
.overlay.open{display:flex}
@media(min-width:640px){ .overlay{align-items:center; padding:24px} }
.modal{background:var(--surface); width:100%; max-width:530px; border-radius:12px 12px 0 0; max-height:92vh; overflow-y:auto; box-shadow:var(--shadow-lg); animation:slideUp .26s cubic-bezier(.2,.8,.2,1)}
@media(min-width:640px){ .modal{border-radius:10px} }
@keyframes slideUp{from{transform:translateY(22px); opacity:.6} to{transform:none; opacity:1}}
@media (prefers-reduced-motion:reduce){ .modal{animation:none} .card{transition:none} }
.modal-head{position:sticky; top:0; background:var(--surface); padding:18px 22px 14px; border-bottom:1px solid var(--line); display:flex; align-items:flex-start; gap:12px}
.modal-head h2{font-family:var(--display); font-size:19px; font-weight:800; margin:0; line-height:1.15; text-transform:uppercase; letter-spacing:.01em}
.modal-head .subline{margin:6px 0 0; font-size:13px; color:var(--muted)}
.modal-head .rule{margin-top:8px}
.x{margin-left:auto; flex:0 0 auto; border:none; background:var(--panel); color:var(--ink); width:34px; height:34px; border-radius:50%; font-size:19px; line-height:1}
.modal-body{padding:18px 22px 26px}
.field{margin-bottom:15px}
.field label{display:block; font-family:var(--display); font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; margin-bottom:6px}
.field label .opt{color:var(--muted); font-weight:400; text-transform:none; letter-spacing:0}
.field .req{color:var(--red)}
.field input, .field select, .field textarea{width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:var(--radius-sm); font-family:var(--body); font-size:15px; background:#fff; color:var(--ink)}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--red); outline-offset:1px; border-color:var(--red)}
.field textarea{resize:vertical; min-height:66px}
.two{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.fixed-time{background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--red); border-radius:var(--radius-sm); padding:12px 13px; font-family:var(--display); font-weight:700; font-size:15px}
.consent{display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--muted); margin:6px 0 6px}
.consent input{width:18px; height:18px; margin-top:2px; flex:0 0 auto; accent-color:var(--red)}
.consent .req{color:var(--red)}
.err{color:var(--red); font-size:12.5px; margin-top:5px; display:none}
#consentErr{margin:0 0 14px}
#submitErr{margin-top:10px; text-align:center}
.hp-field{position:absolute; left:-5000px; top:-5000px; opacity:0; height:0; overflow:hidden; pointer-events:none}
.field.invalid .err{display:block}
.field.invalid input, .field.invalid select{border-color:var(--red)}
.confirm{text-align:center; padding:8px 6px 4px}
.tick{width:62px; height:62px; border-radius:50%; background:rgba(31,122,77,.12); color:var(--ok); display:grid; place-items:center; margin:6px auto 14px}
.confirm h2{font-family:var(--display); font-size:23px; font-weight:800; margin:0 0 6px; text-transform:uppercase}
.confirm-lead{color:var(--muted); margin:0}
.confirm .sum{background:var(--panel); border:1px solid var(--line); border-left:4px solid var(--red); border-radius:var(--radius-sm); padding:14px 16px; text-align:left; margin:16px 0; font-size:14px}
.confirm .sum b{display:block; font-family:var(--display); font-size:15px; margin-bottom:2px}
.cal-row{display:grid; gap:10px; margin-top:6px}
.doc-sec{margin-top:20px; border-top:1px solid var(--line); padding-top:14px}
.doc-head{font-family:var(--display); font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:0 0 4px; text-align:left}
.note{font-size:12.5px; color:var(--muted); background:#fff; border:1px solid var(--line); border-left:4px solid var(--red); border-radius:var(--radius-sm); padding:11px 13px; margin-top:16px; text-align:left}
.note b{font-family:var(--display)}

/* Footer - light panel */
footer{background:var(--panel); color:var(--ink); padding:34px 22px 40px; margin-top:10px; border-top:1px solid var(--line)}
.foot-in{max-width:1120px; margin:0 auto; display:flex; flex-wrap:wrap; gap:22px; align-items:center; justify-content:space-between}
.foot-logo{height:34px; width:auto; display:block}
.foot-contact{display:flex; flex-direction:column; gap:9px; font-size:14px}
.foot-contact a{display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none}
.ic{width:26px; height:26px; border-radius:50%; background:var(--red); display:grid; place-items:center; flex:0 0 auto}
.foot-note{width:100%; border-top:1px solid var(--line); margin-top:6px; padding-top:16px; font-size:12px; color:var(--muted)}
