:root{
  --primary:#a61f20;
  --accent:#0a4775;
  --bg:#1b1b1c;
  --muted:#7f848a;
  --text:#f4f6f8;
  --panel:#222326;
  --topbar-h:110px;
  --footer-h:56px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:Montserrat,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
  background: radial-gradient(1200px 600px at 80% -10%, rgba(166,31,32,.25), transparent 40%),
              radial-gradient(900px 500px at -10% 120%, rgba(10,71,117,.25), transparent 40%),
              var(--bg);
  color:var(--text);
  overscroll-behavior-y: contain;
}
.container{width:min(1100px,92%);margin:0 auto}
.container.narrow{width:min(760px,92%)}
.topbar{position:sticky;top:0;z-index:10;background:transparent;border-bottom:none;height:var(--topbar-h);display:flex;align-items:center}
.topbar .container{display:flex;align-items:center;justify-content:center;padding:12px 0}
.brand img{display:block;height:80px}

.hero{padding:80px 0 100px;min-height:calc(100vh - 60px);display:flex;align-items:center}
/* Página inicial sem scroll */
.home .hero{height:calc(100vh - var(--topbar-h) - var(--footer-h));height:calc(100dvh - var(--topbar-h) - var(--footer-h));min-height:auto;padding:24px 0;box-sizing:border-box}

.kicker{letter-spacing:.35em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 12px}
.headline{font-size:clamp(40px,7.5vw,84px);line-height:.95;margin:0 0 18px;font-weight:800;color:#fff}
.lede{font-size:clamp(16px,2.1vw,22px);color:#d7dadd;max-width:860px}
.sublede{margin-top:14px;color:#e6e8ea}
.sublede strong{color:#fff}
.cta{margin-top:28px}

.btn{display:inline-block;border-radius:12px;padding:14px 22px;background:#2a2b2e;color:#fff;text-decoration:none;border:1px solid #383a3e;transition:.2s ease;font-weight:600}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--primary),#c33a3a);border-color:#d75b5b}
.btn-lg{padding:18px 28px;font-size:18px}

.footer{padding:24px 0;color:#b9bdc2}
/* Footer fixo em altura para cálculo da hero na home */
.footer{height:var(--footer-h);padding:0}
.footer .container{display:flex;align-items:center;justify-content:center;height:100%}

/* Form */
.form-section{padding:64px 0 90px}
.section-title{font-size:clamp(22px,3.5vw,30px);margin:0 0 28px}
.form{background:var(--panel);border:1px solid #2e3033;border-radius:16px;padding:22px}
.grid-2{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:720px){.grid-2{grid-template-columns:1fr 1fr}}
.form-field{display:flex;flex-direction:column;margin-bottom:16px}
.form-field label{font-weight:600;color:#eaecee;margin-bottom:6px}
.form-field input[type=text],
.form-field input[type=email],
.form-field input[type=tel]{background:#1f2023;border:1px solid #2d2f33;color:#fff;border-radius:10px;padding:14px 12px;outline:none}
.form-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(10,71,117,.25)}
fieldset.form-field{border:1px dashed #3a3d42;border-radius:12px;padding:14px 14px 8px}
legend{padding:0 6px;color:#eaecee}
.radio{display:block;margin-bottom:8px;color:#e2e5e9}
.radio input{margin-right:8px}
.actions{margin-top:10px}

/* Thanks */
.thanks{padding:72px 0 120px}
.logo-large{height:120px;display:block;margin:0 auto 15px;opacity:.95}
.center{text-align:center}

/* Error simple */
.error-page{display:flex;align-items:center;justify-content:center;min-height:100vh}
/* Form page full height */
.form-page .form-section{height:calc(100vh - var(--topbar-h) - var(--footer-h));height:calc(100dvh - var(--topbar-h) - var(--footer-h));display:flex;align-items:stretch;justify-content:center;padding:8px 0;box-sizing:border-box}
.form-page .form-section>.container{width:min(760px,92%);max-height:100%;overflow:auto;padding:8px 0}
.form-page .form{max-height:unset;overflow:visible;padding:16px}
.form-page .section-title{font-size:18px;line-height:1.25;margin:0 0 10px}
.form-page .form-field{margin-bottom:10px}
.form-page .btn{width:100%}

@media (max-width:420px){
  .form-page .section-title{font-size:16px}
  .form-field input[type=text],
  .form-field input[type=email],
  .form-field input[type=tel]{padding:12px 10px}
  fieldset.form-field{padding:10px}
  .radio{font-size:14px}
}
/* Thanks page full height */
.thanks-page .thanks{height:calc(100vh - var(--topbar-h) - var(--footer-h));height:calc(100dvh - var(--topbar-h) - var(--footer-h));display:flex;align-items:center;justify-content:center;padding:16px 0;box-sizing:border-box}
.thanks-page .thanks .container{max-width:720px}