/* Jetson Rocket Property Management — shared stylesheet
   Light professional theme. All text/background token pairs computed ≥ 4.5:1 (WCAG AA). */

:root{
  --ink:#1a1a2e;          /* headings, body text — 17.06:1 on paper */
  --ink-soft:#4b5563;     /* secondary text — 7.56:1 on paper, 6.98:1 on paper-2 */
  --paper:#ffffff;
  --paper-2:#f4f6f9;      /* alternate section / card background */
  --accent:#2563eb;       /* brand blue — 5.17:1 as text on paper, 5.17:1 under white text */
  --accent-deep:#1e40af;  /* hover/active — 8.72:1 under white text */
  --accent-soft:#eff6ff;  /* tinted background */
  --line:#d8dee9;
  --ok-text:#166534; --ok-bg:#f0fdf4; --ok-line:#bbf7d0;
  --err-text:#b91c1c; --err-bg:#fef2f2; --err-line:#fecaca;
  --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;
  --r:8px; --r-lg:12px;
  --display:'Sora',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;
}

*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:0.01ms !important;animation-duration:0.01ms !important}
}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.6;font-size:1rem}
.container{width:min(1080px,92vw);margin-inline:auto}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.2;text-wrap:balance}
h1{font-size:clamp(2rem,4.5vw,3.25rem)}
h2{font-size:clamp(1.5rem,3vw,2.125rem)}
h3{font-size:1.25rem}
p{max-width:65ch}
a{color:var(--accent)}
a:hover{color:var(--accent-deep)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}

/* visually hidden (screen-reader-only) text */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* skip link */
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);
  padding:var(--s3) var(--s4);z-index:100;border-radius:0 0 var(--r) 0}
.skip-link:focus{left:0;color:var(--paper)}

/* header / nav */
header{border-bottom:1px solid var(--line);background:var(--paper)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);
  padding:var(--s4) 0;flex-wrap:wrap}
.brand{font-family:var(--display);font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none}
.brand:hover{color:var(--ink)}
.nav ul{display:flex;gap:var(--s5);list-style:none;padding:0;align-items:center}
.nav ul a{color:var(--ink-soft);text-decoration:none;font-weight:600;font-size:0.95rem}
.nav ul a:hover{color:var(--ink)}
.nav ul a[aria-current="page"]{color:var(--accent)}

/* buttons */
.btn{display:inline-block;padding:var(--s3) var(--s5);border-radius:var(--r);font-weight:600;
  font-size:1rem;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--body)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-deep);color:#fff}
.btn-ghost{border-color:var(--line);color:var(--ink);background:var(--paper)}
.btn-ghost:hover{border-color:var(--ink-soft);color:var(--ink)}

/* layout blocks */
main{display:block}
section{padding:var(--s8) 0}
.section-alt{background:var(--paper-2)}
.lede{font-size:1.125rem;color:var(--ink-soft);margin-top:var(--s4)}
.hero{padding:var(--s8) 0}
.hero .actions{margin-top:var(--s6);display:flex;gap:var(--s4);flex-wrap:wrap}
.kicker{font-weight:600;color:var(--accent);font-size:0.9rem;letter-spacing:0.04em;
  text-transform:uppercase;margin-bottom:var(--s3)}

/* facts strip */
.facts{display:flex;gap:var(--s5) var(--s7);flex-wrap:wrap;padding:var(--s5) 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:var(--s7)}
.fact strong{display:block;font-family:var(--display);font-size:1.35rem;color:var(--ink)}
.fact span{color:var(--ink-soft);font-size:0.9rem}

/* card grids */
.grid{display:grid;gap:var(--s5);margin-top:var(--s6)}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5)}
.card h3{margin-bottom:var(--s2)}
.card p{color:var(--ink-soft);font-size:0.95rem}
.card a{font-weight:600}
.section-alt .card{background:var(--paper)}

/* numbered steps */
.step-num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);font-weight:700;
  font-family:var(--display);margin-bottom:var(--s3)}

/* service detail blocks (services.html) */
.service-block{padding:var(--s6) 0;border-bottom:1px solid var(--line)}
.service-block:last-of-type{border-bottom:0}
.service-block ul{margin:var(--s4) 0 0 var(--s5);color:var(--ink-soft)}
.service-block li{margin-bottom:var(--s2)}

/* CTA band */
.cta-band{background:var(--ink);color:var(--paper);text-align:center;padding:var(--s7) 0}
.cta-band h2{color:var(--paper)}
.cta-band p{color:#c7cbd4;margin:var(--s4) auto var(--s5)}
.cta-band .btn-primary{background:var(--accent);color:#fff}

/* contact form */
form{max-width:560px}
.field{margin-bottom:var(--s5)}
label{display:block;font-weight:600;margin-bottom:var(--s2)}
label .optional{font-weight:400;color:var(--ink-soft)}
input,select,textarea{width:100%;padding:var(--s3) var(--s4);border:1px solid var(--line);
  border-radius:var(--r);font:inherit;color:var(--ink);background:var(--paper)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
input:user-invalid,textarea:user-invalid{border-color:var(--err-text)}
textarea{min-height:140px;resize:vertical}
button[disabled]{opacity:0.6;cursor:not-allowed}
.form-note{color:var(--ink-soft);font-size:0.9rem;margin-top:var(--s3)}
.hidden{display:none}

/* form status messages — base class stays empty/invisible so the live region
   is always in the accessibility tree; variants add the visible box */
.form-status{margin-top:var(--s5);font-weight:600}
.form-status.ok,.form-status.err{padding:var(--s4);border-radius:var(--r)}
.form-status.ok{background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-line)}
.form-status.err{background:var(--err-bg);color:var(--err-text);border:1px solid var(--err-line)}

/* FAQ (owners.html) */
.faq dt{font-weight:700;font-family:var(--display);margin-top:var(--s5)}
.faq dd{margin:var(--s2) 0 0;color:var(--ink-soft)}

/* footer */
footer{border-top:1px solid var(--line);padding:var(--s7) 0;margin-top:var(--s8);
  color:var(--ink-soft);font-size:0.9rem}
footer .cols{display:flex;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}
footer ul{list-style:none;padding:0;display:flex;gap:var(--s5)}
footer a{color:var(--ink-soft)}
footer a:hover{color:var(--ink)}
footer .legal{margin-top:var(--s5)}

@media (max-width:640px){
  section{padding:var(--s7) 0}
  .nav ul{gap:var(--s4)}
  .facts{gap:var(--s4) var(--s5)}
}
