/* Layout: RS Residential section order, dressed in the logo's world — bone and charcoal only, sign-painter caps with hard offset shadows. Single committed look (both host themes). */
:root{
  --bone:#F0E6D3; --bone-2:#E7DBC4; --char:#21282E; --char-2:#2B333A; --char-deep:#161B1F;
  --ink-muted:#555B5F; --bone-muted:#BDB4A3; --rule:#CFC3AC; --rule-dark:#3A434A;
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --wrap:1180px; color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--bone);color:var(--char);font-family:var(--body);font-size:1rem;line-height:1.6;margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--display);text-transform:uppercase;line-height:.95;margin:0;text-wrap:balance;letter-spacing:.01em}
h2{font-size:clamp(2.6rem,6vw,4.4rem);font-weight:900;color:var(--bone);-webkit-text-stroke:1.5px var(--char);paint-order:stroke fill;text-shadow:5px 5px 0 var(--char)}
h3{font-size:1.6rem;font-weight:800}
p{margin:0}
a{color:inherit}
.label{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.label.accent{color:var(--char);font-weight:600}
.lede{color:var(--ink-muted);max-width:60ch;font-size:1.075rem}
.btn{display:inline-flex;align-items:center;gap:.6em;background:var(--bone);color:var(--char);font-family:var(--mono);font-weight:600;font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:.9em 1.35em;border:2px solid var(--char);border-radius:3px;box-shadow:4px 4px 0 var(--char);cursor:pointer;transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--char)}
.btn.ghost{background:transparent;box-shadow:none}
.btn.ghost:hover{transform:none;background:var(--bone-2)}
:focus-visible{outline:3px dashed var(--char);outline-offset:3px}
section{padding-block:clamp(64px,9vw,112px)}
.sec-head{display:grid;gap:20px;margin-bottom:48px}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--rule);padding:.35em .7em;color:var(--ink-muted)}

/* dark sections */
.dark{background:var(--char);color:var(--bone)}
.dark h2{color:var(--bone);-webkit-text-stroke:0;text-shadow:none}
.dark .label,.dark .label.accent{color:var(--bone-muted)}
.dark .lede,.dark p{color:var(--bone-muted)}
.dark h3{color:var(--bone)}
.dark .btn{box-shadow:4px 4px 0 var(--char-deep);border-color:var(--bone)}
.dark .btn:hover{box-shadow:2px 2px 0 var(--char-deep)}
.dark .btn.ghost{color:var(--bone);background:transparent;box-shadow:none}
.dark .btn.ghost:hover{background:var(--char-2)}
.dark :focus-visible{outline-color:var(--bone)}
.alt{background:var(--bone-2)}

/* nav */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--bone);border-bottom:2px solid var(--char)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:10px}
.brand{display:block;line-height:0}
.brand img{height:52px;width:auto;display:block}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-family:var(--display);font-weight:800;font-size:1.15rem;text-transform:uppercase;letter-spacing:.04em}
.nav ul a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
@media (max-width:900px){.nav ul{display:none}.nav .btn{padding:.7em .9em;font-size:.72rem}.brand img{height:40px}}

/* hero */
.hero{padding-block:clamp(56px,8vw,104px)}
.hero-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(32px,5vw,64px);align-items:center}
.hero h1{font-size:clamp(3.4rem,9vw,7rem);font-weight:900;color:var(--bone);line-height:1.02}
.hero h1 span{background:var(--bone);color:var(--char);padding:0 .12em;-webkit-box-decoration-break:clone;box-decoration-break:clone;box-shadow:6px 6px 0 var(--char-deep)}
.hero .copy{display:grid;gap:26px;min-width:0}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px}
.ticket{background:var(--bone);color:var(--char);border:2px solid var(--char-deep);box-shadow:8px 8px 0 var(--char-deep);font-family:var(--mono);font-size:.82rem;min-width:0;transform:rotate(1.2deg)}
.dark .ticket p{color:var(--ink-muted)}
.ticket-head{display:flex;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:2px dashed var(--rule)}
.ticket-head strong{font-weight:600}
.ticket .label{color:var(--ink-muted)}
.ticket dl{margin:0;padding:6px 18px}
.ticket .row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--rule)}
.ticket .row:last-child{border-bottom:0}
.ticket dt{color:var(--ink-muted)}
.ticket dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.ticket-foot{background:var(--char);color:var(--bone);padding:14px 18px;display:flex;justify-content:space-between;gap:12px;font-weight:600}
.ticket-note{padding:10px 18px;font-size:.7rem}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.ticket{transform:none}}
@media (prefers-reduced-motion:reduce){.ticket{transform:none}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:3px solid var(--char)}
.step{padding:28px 24px 8px 0;display:grid;gap:14px;align-content:start;min-width:0}
.step + .step{padding-left:24px;border-left:1px solid var(--rule)}
.step .num{font-family:var(--display);font-weight:900;font-size:3.6rem;line-height:1;color:var(--bone);-webkit-text-stroke:1.5px var(--char);paint-order:stroke fill;text-shadow:4px 4px 0 var(--char)}
.step p{color:var(--ink-muted)}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr}.step:nth-child(3){border-left:0;padding-left:0}.step{padding-bottom:28px}}
@media (max-width:560px){.steps{grid-template-columns:1fr}.step + .step{border-left:0;padding-left:0;border-top:1px solid var(--rule)}}

/* services */
.services{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.svc{background:var(--bone);border:2px solid var(--char);box-shadow:5px 5px 0 var(--char);padding:clamp(24px,3.5vw,40px);display:grid;gap:16px;align-content:start;min-width:0}
.svc .label{display:flex;justify-content:space-between;gap:8px}
.svc ul{margin:0;padding-left:1.1em;color:var(--ink-muted);display:grid;gap:4px}
@media (max-width:760px){.services{grid-template-columns:1fr}}

/* advantage */
.adv{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px)}
.adv div{display:grid;gap:14px;align-content:start;border-top:3px solid var(--bone);padding-top:22px;min-width:0}
.band .btn{margin-top:48px}
@media (max-width:860px){.adv{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(32px,6vw,80px)}
.about .body{display:grid;gap:18px;max-width:64ch;min-width:0}
.about .body p{color:var(--ink-muted)}
.about .body p:first-child{color:var(--char);font-size:1.15rem}
@media (max-width:860px){.about{grid-template-columns:1fr}}

/* markets */
.markets{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mkt{border:2px solid var(--char);background:var(--bone);padding:24px;display:grid;gap:12px;align-content:start;min-width:0}
.mkt .abbr{font-family:var(--display);font-weight:900;font-size:3.2rem;line-height:1;color:var(--bone);-webkit-text-stroke:1.5px var(--char);paint-order:stroke fill;text-shadow:4px 4px 0 var(--char)}
.mkt p{color:var(--ink-muted);font-size:.95rem}
.national{margin-top:20px;border:2px dashed var(--char);padding:22px 24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}
.national p{max-width:70ch;color:var(--ink-muted)}
@media (max-width:960px){.markets{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.markets{grid-template-columns:1fr}}

/* insights */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post{border-top:3px solid var(--char);padding-top:18px;display:grid;gap:10px;align-content:start;min-width:0}
.post h3{font-size:1.45rem}
.post p{color:var(--ink-muted);font-size:.95rem}
@media (max-width:860px){.posts{grid-template-columns:1fr}}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(32px,6vw,72px)}
.contact .intro{display:grid;gap:22px;align-content:start}
.contact .intro .email{color:var(--bone);font-family:var(--mono);user-select:all}
form{background:var(--bone);color:var(--char);border:2px solid var(--char-deep);box-shadow:8px 8px 0 var(--char-deep);padding:clamp(20px,3.5vw,36px);display:grid;grid-template-columns:1fr 1fr;gap:18px;min-width:0}
.f{display:grid;gap:6px;min-width:0}
.f.full{grid-column:1/-1}
.f label,form legend{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
input,select,textarea{font:inherit;color:var(--char);background:#FBF6EC;border:1.5px solid var(--char);padding:.7em .8em;border-radius:2px;width:100%}
textarea{min-height:110px;resize:vertical}
fieldset{border:0;padding:0;margin:0;grid-column:1/-1;display:grid;gap:10px}
.checks{display:flex;flex-wrap:wrap;gap:8px}
.checks label{display:flex;align-items:center;gap:8px;border:1.5px solid var(--char);padding:.5em .8em;font-size:.9rem;cursor:pointer;background:#FBF6EC}
.checks input{width:auto;accent-color:var(--char)}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
form .btn{background:var(--char);color:var(--bone);border-color:var(--char);box-shadow:4px 4px 0 var(--rule)}
form .btn:hover{box-shadow:2px 2px 0 var(--rule)}
form :focus-visible{outline-color:var(--char)}
.form-msg{font-family:var(--mono);font-size:.8rem;color:var(--char);font-weight:600}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:520px){form{grid-template-columns:1fr}}

/* footer */
footer{background:var(--char-deep);color:var(--bone);padding-block:56px 32px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.foot-grid div{display:grid;gap:10px;align-content:start;min-width:0}
.foot-grid .label{color:var(--bone-muted)}
.foot-grid p{color:var(--bone-muted);font-size:.92rem}
.foot-logo{width:min(280px,100%);height:auto}
.legal{margin-top:40px;padding-top:20px;border-top:1px solid var(--rule-dark);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.8rem;color:var(--bone-muted)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* live Wix form */
.lead-form{min-width:0}
#lead,.form-skel,.form-state{background:var(--bone);color:var(--char);border:2px solid var(--char-deep);box-shadow:8px 8px 0 var(--char-deep);padding:clamp(20px,3.5vw,36px)}
.form-skel{display:grid;gap:14px}
.form-skel span{display:block;height:44px;background:var(--bone-2);border-radius:2px}
.form-state{display:grid;gap:12px;font-size:1.1rem}
.form-state p{color:var(--char)!important}
.form-state:focus{outline:3px dashed var(--char);outline-offset:3px}
.f .req{color:var(--char)}
.f .help{font-size:.82rem;color:var(--ink-muted)!important}
.f .err{font-family:var(--mono);font-size:.75rem;color:#9B2C1F!important;min-height:0}
.f .err:empty,.form-err:empty{display:none}
.form-err{font-family:var(--mono);font-size:.8rem;color:#9B2C1F!important;flex-basis:100%}
[aria-invalid="true"]{border-color:#9B2C1F!important;box-shadow:inset 0 0 0 1px #9B2C1F}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.f .note{font-size:.9rem;color:var(--ink-muted)!important}
.checks label.single{border:0;padding:0;background:none}
