:root{--bg:#F3F2EE;--ink:#111114;--muted:#55555C;--line:#D9D7CF;--accent:#2B4BFF;--disp:'Bricolage Grotesque',system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 'DM Sans',system-ui,sans-serif}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
nav{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:28px 0}
.logo{font:700 26px var(--disp);letter-spacing:-.02em}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;border-radius:999px;font:500 17px 'DM Sans',sans-serif;border:1.5px solid var(--ink);cursor:pointer;background:none;color:var(--ink)}
.btn.p{background:var(--accent);border-color:var(--accent);color:#fff;min-height:56px;font-size:18px}
.eyebrow{font-size:15px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
h1,h2,h3{margin:0;font-family:var(--disp);letter-spacing:-.03em;line-height:1.05}
h1{font-size:clamp(46px,8.5vw,116px);line-height:.98;max-width:1000px;margin-top:20px}
h1.sm{font-size:clamp(40px,6vw,72px)}
h2{font-size:clamp(34px,5vw,56px)}
.lead{max-width:620px;font-size:20px;color:var(--muted);margin:32px 0 0}
.hero{padding:88px 0 112px}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:40px}
.link{border-bottom:1.5px solid var(--ink);min-height:44px;display:inline-flex;align-items:center;font-weight:500}
section{border-top:1px solid var(--line);padding:96px 0}
.grid,.steps{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:48px}
.steps{gap:40px}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;min-height:240px}
.card b{color:var(--accent);letter-spacing:.08em;display:block;margin-bottom:12px}
.card h3{font-size:28px;margin-bottom:12px}
.card p,.step p{margin:0;color:var(--muted)}
.step{border-top:2px solid var(--ink);padding-top:20px}
.step h3{font-size:24px;margin-bottom:8px}
.cta{background:var(--accent);color:#fff;border-radius:32px;padding:72px 48px;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.cta h2{font-size:clamp(36px,6vw,72px);line-height:1}
.cta p{margin:0;font-size:20px;max-width:520px}
.cta .btn{background:#fff;border-color:#fff;color:var(--ink);min-height:60px;font:700 22px var(--disp);margin-top:12px}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:32px 0;color:var(--muted);font-size:15px}
form{display:grid;gap:20px;margin-top:40px;max-width:640px}
label{display:grid;gap:8px;font-weight:500}
input,textarea{font:inherit;padding:14px 16px;border:1.5px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);width:100%}
.hp{position:absolute;left:-9999px}
.note{padding:16px 20px;border-radius:12px;margin-top:32px;max-width:640px}
.ok{background:#E3F3E6;border:1px solid #2F6B3B;color:#14391d}
.bad{background:#FBE7E7;border:1px solid #9B2C2C;color:#5c1414}

/* Contact form */
.contact-layout{padding:56px 0 96px}
.contact-intro{margin-top:20px}
.contact-layout form{margin-top:36px}
.contact-layout input:focus,.contact-layout textarea:focus{border-color:var(--accent)}
.contact-layout textarea{resize:vertical;min-height:170px}
.optional,.form-hint{color:var(--muted);font-size:14px;font-weight:400}
.form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}
.form-actions button:disabled{opacity:.65;cursor:wait}
.contact-layout .note{margin-top:28px}
.note[hidden]{display:none}
@media(max-width:600px){.contact-layout{padding:44px 0 72px}.wrap{padding:0 22px}.contact-layout form{gap:18px}}
