:root { --charcoal:#3B3F44; --blue:#6FAEDB; --blue-deep:#3F86BD; --off:#F5F6F7; --border:#DDE1E4; }
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif; color:var(--charcoal); line-height:1.65; background:#fff; }
.hero { background:var(--charcoal); text-align:center; padding:2.5rem 1.5rem 3rem; }
.logo { width:min(420px,80vw); height:auto; margin:0 auto; display:block; }
.soon { display:inline-block; margin-top:.5rem; color:var(--blue); letter-spacing:.2em; text-transform:uppercase; font-size:.8rem; font-weight:600; border-top:1px solid var(--blue); padding-top:.9rem; }
.intro, .contact { max-width:640px; margin:0 auto; padding:3.5rem 1.5rem 1rem; }
.eyebrow { color:var(--blue-deep); text-transform:uppercase; letter-spacing:.15em; font-size:.78rem; font-weight:600; margin-bottom:.6rem; }
h1 { font-size:clamp(1.7rem,5vw,2.3rem); line-height:1.2; margin-bottom:1.2rem; }
h2 { font-size:1.6rem; margin-bottom:.5rem; }
.intro p, .contact p { margin-bottom:1rem; }
.services { list-style:none; display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.4rem; }
.services li { border:1px solid var(--blue); color:var(--charcoal); padding:.35rem .9rem; border-radius:999px; font-size:.9rem; font-weight:500; }
.contact { padding-bottom:3.5rem; }
form { display:grid; gap:1rem; margin-top:1.2rem; }
label { display:grid; gap:.3rem; font-weight:600; font-size:.9rem; }
.opt { font-weight:400; color:#777; }
input, textarea { font:inherit; font-weight:400; padding:.7rem .8rem; border:1px solid var(--border); border-radius:4px; background:var(--off); color:var(--charcoal); width:100%; }
input:focus, textarea:focus { outline:2px solid var(--blue); border-color:var(--blue); background:#fff; }
button { font:inherit; font-weight:600; background:var(--charcoal); color:#fff; border:0; padding:.85rem 1.6rem; border-radius:4px; cursor:pointer; justify-self:start; }
button:hover { background:var(--blue-deep); }
.hp { position:absolute; left:-9999px; height:0; overflow:hidden; }
.notice { background:#EAF4FB; border-left:4px solid var(--blue); padding:.8rem 1rem; }
.notice.err { background:#FDEDED; border-color:#C0392B; }
footer { background:var(--charcoal); color:#B8BDC2; text-align:center; font-size:.8rem; padding:1.4rem 1rem; }
