/* Gerado por scripts/build-content.mjs a partir do <style> do index.html — não editar à mão. */
@font-face{font-family:'Jakarta';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-400.woff2') format('woff2')}
@font-face{font-family:'Jakarta';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-600.woff2') format('woff2')}
@font-face{font-family:'Jakarta';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/plus-jakarta-sans-800.woff2') format('woff2')}

:root{
  color-scheme: light;
  --brand:#43ACB4; --brand-600:#35909A; --brand-700:#2A727C; --brand-300:#7DD2D8;
  --brand-100:#D5EFF1; --brand-50:#EBF7F8;
  --ink-900:#1F2833; --ink-800:#2B3745; --ink-700:#374657; --ink-500:#51677F;
  --ink-400:#7B92A9; --ink-200:#C8D3DE; --ink-100:#E6ECF1; --ink-50:#F4F7F9;
  --good:#3BAE7A; --warn:#E9A23B; --bad:#E05B5B;

  --bg:var(--ink-50); --surface:#ffffff; --surface-2:var(--brand-50);
  --text:var(--ink-800); --text-strong:var(--ink-900); --text-2:var(--ink-500);
  --muted:var(--ink-400); --line:var(--ink-100); --line-2:var(--ink-200);
  --nav-bg:rgba(244,247,249,.82);
  --shadow-card:0 1px 2px rgba(31,40,51,.04), 0 8px 24px -12px rgba(31,40,51,.12);
  --shadow-hover:0 2px 4px rgba(31,40,51,.06), 0 16px 32px -12px rgba(31,40,51,.18);
  --band-bg:var(--brand);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Jakarta',system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--brand-100); color:var(--ink-900)}
h1,h2,h3{color:var(--text-strong); text-wrap:balance; line-height:1.15; margin:0}
p{margin:0}
a{color:inherit}
img{max-width:100%}
button{font-family:inherit}

.container{max-width:1120px; margin:0 auto; padding:0 24px}
/* O design inteiro é definido em px sobre um container de 1120px. Em telas
   largas escalamos tudo proporcionalmente (mockups inclusive) via `zoom` no
   <html>. O valor contínuo é calculado por JS (fitZoom, no <head>); estes
   breakpoints são só o fallback sem-JS — por isso vão em html{} (o inline do
   JS sobrepõe). Nada compõe zoom porque é sempre o mesmo elemento. */
@media (min-width:1360px){ html{zoom:1.06} }
@media (min-width:1600px){ html{zoom:1.20} }
@media (min-width:1920px){ html{zoom:1.42} }
@media (min-width:2300px){ html{zoom:1.72} }
@media (min-width:2800px){ html{zoom:2.06} }
@media (min-width:3400px){ html{zoom:2.40} }
.section{padding:96px 0}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--brand-600); margin-bottom:16px;
}
.eyebrow::before{content:""; width:20px; height:2px; background:currentColor; border-radius:2px}
.section-head{max-width:640px; margin-bottom:48px}
.section-head h2{font-size:clamp(28px,4vw,38px); font-weight:800; letter-spacing:-.02em}
.section-head p{margin-top:14px; font-size:17px; color:var(--text-2)}

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--nav-bg); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex; align-items:center; gap:32px; height:68px}
.logo{display:flex; align-items:center; gap:10px; text-decoration:none}
.logo img{width:34px; height:34px; border-radius:9px}
.logo b{font-size:23px; font-weight:800; letter-spacing:-.03em; color:var(--text-strong); text-transform:lowercase}
.nav-links{display:flex; gap:26px; margin-left:12px; flex:1}
.nav-links a{font-size:14px; font-weight:600; color:var(--text-2); text-decoration:none; transition:color .15s}
.nav-links a:hover{color:var(--brand-600)}
.nav-cta{display:flex; gap:10px; margin-left:auto}
@media (max-width:840px){ .nav-links{display:none} }

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border-radius:14px; font-weight:600; font-size:15px; text-decoration:none;
  padding:12px 22px; border:none; cursor:pointer; white-space:nowrap;
  transition:transform .15s, box-shadow .15s, background .15s;
}
.btn:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible{
  outline:2px solid var(--brand); outline-offset:2px;
}
.btn-primary{background:var(--brand); color:#fff; box-shadow:0 8px 20px -8px rgba(67,172,180,.5)}
.btn-primary:hover{background:var(--brand-600); transform:translateY(-1px)}
.btn-ghost{background:transparent; color:var(--text-2); border:1.5px solid var(--line-2)}
.btn-ghost:hover{border-color:var(--brand); color:var(--brand-600)}
.btn-sm{padding:9px 16px; font-size:14px; border-radius:11px}
.btn-lg{padding:15px 28px; font-size:16px}

/* ---------- hero ---------- */
.hero{padding:80px 0 40px; overflow:hidden}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center}
@media (max-width:920px){ .hero-grid{grid-template-columns:1fr} }
.hero h1{font-size:clamp(36px,5.2vw,54px); font-weight:800; letter-spacing:-.03em; line-height:1.08}
.hero h1 em{font-style:normal; color:var(--brand); position:relative; white-space:nowrap}
.hero h1 em svg{position:absolute; left:0; bottom:-6px; width:100%; height:10px}
.hero-sub{margin-top:22px; font-size:18px; color:var(--text-2); max-width:52ch}
.hero-ctas{margin-top:32px; display:flex; gap:12px; flex-wrap:wrap}
.hero-proof{margin-top:44px; display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:24px}
.proof-item{padding-right:32px; margin-right:32px; border-right:1px solid var(--line)}
.proof-item:last-child{border-right:none; margin-right:0; padding-right:0}
.proof-item b{display:block; font-size:24px; font-weight:800; color:var(--text-strong); letter-spacing:-.02em}
.proof-item span{font-size:13px; color:var(--muted)}

/* ---------- phone mockup ---------- */
.hero-visual{position:relative; display:flex; justify-content:center}
.phone{
  width:320px; background:#0d1418; border-radius:38px; padding:10px;
  box-shadow:0 24px 60px -20px rgba(31,40,51,.45), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.phone-screen{border-radius:30px; overflow:hidden; background:#EFE9E2; display:flex; flex-direction:column}
.wa-header{background:#008069; color:#fff; display:flex; align-items:center; gap:10px; padding:12px 14px}
.wa-header .wa-avatar{
  width:34px; height:34px; border-radius:50%; background:#fff; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.wa-avatar img{width:26px; height:26px}
.wa-header b{font-size:14.5px; font-weight:600; display:block; line-height:1.2}
.wa-header span{font-size:11px; opacity:.85}
.wa-chat{padding:14px 12px 16px; display:flex; flex-direction:column; gap:8px; min-height:340px;
  background:linear-gradient(rgba(239,233,226,.94),rgba(239,233,226,.94)),
  repeating-linear-gradient(45deg,#d8d0c4 0 1px,transparent 1px 14px)}
.bubble{
  max-width:82%; padding:8px 12px; font-size:13.5px; line-height:1.45; color:#111b21;
  border-radius:12px; box-shadow:0 1px 1px rgba(0,0,0,.08); position:relative;
}
.bubble .meta{display:flex; justify-content:flex-end; gap:3px; font-size:10px; color:#667781; margin-top:2px; align-items:center}
.bubble .meta .ticks{color:#53BDEB; font-weight:600; letter-spacing:-.12em}
.b-in{background:#fff; border-top-left-radius:4px; align-self:flex-start}
.b-out{background:#D9FDD3; border-top-right-radius:4px; align-self:flex-end}
.b-name{display:block; font-size:11px; font-weight:600; color:#008069; margin-bottom:2px}
.wa-day{align-self:center; background:#fff; border-radius:8px; padding:3px 10px; font-size:10.5px; font-weight:600;
  color:#667781; box-shadow:0 1px 1px rgba(0,0,0,.06); text-transform:uppercase; letter-spacing:.04em}
.wa-card{background:#fff; border-radius:12px; border-top-left-radius:4px; align-self:flex-start; max-width:86%;
  box-shadow:0 1px 1px rgba(0,0,0,.08); overflow:hidden; font-size:13px; color:#111b21}
.wa-card .wa-card-body{padding:10px 12px}
.wa-card .wa-card-btn{border-top:1px solid #e6e6e6; color:#008069; font-weight:600; text-align:center; padding:9px; font-size:13.5px}

/* WhatsApp Flow sheet (formulário nativo) */
.wa-flow{background:#fff; min-height:380px; display:flex; flex-direction:column}
.wa-flow-head{display:flex; align-items:center; gap:12px; padding:13px 14px; border-bottom:1px solid #ececec;
  font-weight:600; font-size:14px; color:#111b21}
.wa-flow-head .x{color:#54656f; font-size:16px; font-weight:400}
.wa-flow-body{padding:16px 16px 8px; flex:1}
.wa-q{font-size:13.5px; font-weight:600; color:#111b21; margin-bottom:8px}
.wa-q small{display:block; font-weight:400; color:#667781; font-size:11.5px; margin-top:1px}
.wa-opt{display:flex; align-items:center; gap:10px; padding:7px 0; color:#3b4a54; font-size:13px}
.wa-opt i{width:16px; height:16px; border:1.6px solid #8696a0; border-radius:50%; flex-shrink:0}
.wa-opt.sel i{border-color:#008069; background:radial-gradient(circle at center,#008069 45%,transparent 50%)}
.wa-flow-btn{margin:10px 14px 14px; background:#008069; color:#fff; border-radius:24px; text-align:center;
  padding:11px; font-weight:600; font-size:14px}
.wa-flow-note{text-align:center; font-size:10.5px; color:#8696a0; padding-bottom:10px}
@media (max-width:560px){
  .phone, .f-visual .phone, .hero-visual .phone{width:min(300px,100%)}
  .feature > div, .hero-grid > div, .contact-grid > *, .band-grid > div{min-width:0}
  .hero h1 em{white-space:normal}
  .hero h1 em svg{display:none}
  .proof-item{border-right:none; padding-right:0; margin-right:0; width:100%; margin-bottom:14px}
}

/* reveal animations */
@media (prefers-reduced-motion: no-preference){
  .chat-seq > *{opacity:0; transform:translateY(8px); animation:pop .45s cubic-bezier(.2,.7,.3,1) forwards}
  .chat-seq > *:nth-child(1){animation-delay:.25s}
  .chat-seq > *:nth-child(2){animation-delay:.85s}
  .chat-seq > *:nth-child(3){animation-delay:1.5s}
  .chat-seq > *:nth-child(4){animation-delay:2.15s}
  .chat-seq > *:nth-child(5){animation-delay:2.8s}
  .chat-seq > *:nth-child(6){animation-delay:3.45s}
  @keyframes pop{to{opacity:1; transform:none}}
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1)}
  .reveal.in{opacity:1; transform:none}
  .modules .reveal:nth-child(3n+2), .journeys .reveal:nth-child(2), .how .reveal:nth-child(2),
  .results-grid .reveal:nth-child(2), .form-card.reveal{transition-delay:.1s}
  .modules .reveal:nth-child(3n), .journeys .reveal:nth-child(3), .how .reveal:nth-child(3),
  .results-grid .reveal:nth-child(3){transition-delay:.2s}
}

/* ---------- clients ---------- */
.clients{padding:16px 0 56px}
.clients-label{text-align:center; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.clients-row{margin-top:22px; display:flex; justify-content:center; align-items:center; flex-wrap:wrap}
.client{display:flex; align-items:center; gap:18px; font-weight:800; font-size:32px; letter-spacing:-.02em; color:var(--ink-800)}
.client-tile{width:68px; height:68px; border-radius:18px; background:#DA291C; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px -10px rgba(218,41,28,.5)}
.client-tile svg{width:40px; height:36px}

/* ---------- teal band ---------- */
.band{background:var(--band-bg); color:#fff; padding:64px 0}
.band-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center}
@media (max-width:840px){ .band-grid{grid-template-columns:1fr} }
.band h2{color:#fff; font-size:clamp(24px,3.4vw,32px); font-weight:800; letter-spacing:-.02em}
.band p{color:rgba(255,255,255,.85); margin-top:12px; font-size:16.5px}
.band-compare{display:flex; flex-direction:column; gap:14px}
.cmp{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); border-radius:16px; padding:16px 20px}
.cmp .cmp-top{display:flex; justify-content:space-between; gap:12px; font-size:13.5px; font-weight:600; margin-bottom:8px}
.cmp .cmp-top b{font-weight:800; white-space:nowrap}
.cmp .track{height:10px; background:rgba(255,255,255,.18); border-radius:99px; overflow:hidden}
.cmp .fill{height:100%; border-radius:99px; background:#fff}
.cmp.dim{opacity:.75}
.cmp.dim .fill{background:rgba(255,255,255,.55)}
.band-note{margin-top:10px; font-size:12.5px; color:rgba(255,255,255,.7)}

/* ---------- modules ---------- */
.modules{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
@media (max-width:980px){ .modules{grid-template-columns:repeat(2,1fr)} }
@media (max-width:560px){ .modules{grid-template-columns:1fr} }
.module{
  background:var(--surface); border:1px solid var(--line); border-radius:20px;
  padding:26px 24px; box-shadow:var(--shadow-card);
  transition:transform .2s, box-shadow .2s;
}
.module:hover{transform:translateY(-3px); box-shadow:var(--shadow-hover)}
.module .mod-ico{
  width:44px; height:44px; border-radius:13px; background:var(--surface-2);
  display:flex; align-items:center; justify-content:center; color:var(--brand-600); margin-bottom:18px;
}
.module .mod-ico svg{width:22px; height:22px}
.module h3{font-size:17px; font-weight:800; letter-spacing:-.01em}
.module p{margin-top:8px; font-size:14px; color:var(--text-2)}
.module a{display:inline-flex; align-items:center; gap:5px; margin-top:14px; font-size:13.5px; font-weight:600;
  color:var(--brand-600); text-decoration:none}
.module a:hover{gap:8px}

/* ---------- feature rows ---------- */
.feature{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding:72px 0}
.feature + .feature{border-top:1px solid var(--line)}
@media (max-width:900px){ .feature{grid-template-columns:1fr; gap:40px} .feature .f-visual{order:-1} }
.feature h2{font-size:clamp(26px,3.4vw,34px); font-weight:800; letter-spacing:-.02em}
.feature > div > p{margin-top:14px; font-size:16.5px; color:var(--text-2)}
.f-list{list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:14px}
.f-list li{display:flex; gap:12px; font-size:15px}
.f-list li b{font-weight:600; color:var(--text-strong)}
.f-check{
  flex-shrink:0; width:22px; height:22px; border-radius:50%; margin-top:1px;
  background:rgba(59,174,122,.13); color:var(--good);
  display:flex; align-items:center; justify-content:center;
}
.f-check svg{width:12px; height:12px}
.f-visual{display:flex; justify-content:center; position:relative}
.f-visual .phone{width:300px}
.glow{position:absolute; inset:8% 12%; border-radius:50%; filter:blur(60px); opacity:.5; z-index:-1; background:var(--brand-100)}

/* ---------- dashboard mockup ---------- */
.dash-section{background:linear-gradient(var(--surface-2),var(--bg)); border-top:1px solid var(--line)}
.browser{
  border-radius:18px; overflow:hidden; border:1px solid var(--line-2);
  box-shadow:0 32px 80px -24px rgba(31,40,51,.35); background:#fff;
}
.browser-bar{display:flex; align-items:center; gap:8px; padding:11px 16px; background:#EDF1F5; border-bottom:1px solid #DFE6EC}
.browser-bar .dots{display:flex; gap:6px}
.browser-bar .dots i{width:11px; height:11px; border-radius:50%}
.browser-bar .url{
  flex:1; max-width:340px; margin:0 auto; background:#fff; border:1px solid #DFE6EC;
  border-radius:8px; font-size:12px; color:#51677F; text-align:center; padding:4px 12px;
}
.dash-scroll{overflow-x:auto}
.dash{display:grid; grid-template-columns:200px 1fr; min-width:920px; background:#F4F7F9; text-align:left}
.d-side{background:#2B3745; color:#fff; padding:18px 12px; display:flex; flex-direction:column; gap:4px}
.d-side .d-logo{display:flex; align-items:center; gap:8px; padding:4px 10px 16px}
.d-side .d-logo img{width:26px; height:26px; border-radius:7px}
.d-side .d-logo b{font-size:17px; font-weight:800; letter-spacing:-.02em; text-transform:lowercase; color:#fff}
.d-item{display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:11px; font-size:13px; font-weight:600; color:#C8D3DE}
.d-item svg{width:16px; height:16px; opacity:.9}
.d-item.active{background:#43ACB4; color:#fff; box-shadow:0 6px 16px -6px rgba(67,172,180,.45)}
.d-main{padding:22px 24px}
.d-header{display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:16px}
.d-header h4{margin:0; font-size:19px; font-weight:800; color:#1F2833; letter-spacing:-.01em}
.d-header p{font-size:12px; color:#7B92A9; margin-top:2px}
.d-filters{display:flex; gap:8px}
.d-chip{background:#fff; border:1px solid #E6ECF1; border-radius:99px; font-size:11.5px; font-weight:600; color:#51677F; padding:5px 12px}
.kpis{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
.kpi{background:#fff; border:1px solid #E6ECF1; border-radius:16px; padding:14px 16px 10px;
  box-shadow:0 1px 2px rgba(31,40,51,.04), 0 8px 24px -12px rgba(31,40,51,.10)}
.kpi-top{display:flex; align-items:center; gap:8px; margin-bottom:8px}
.kpi-emoji{width:28px; height:28px; border-radius:8px; background:#EBF7F8; display:flex; align-items:center; justify-content:center; font-size:14px}
.kpi-title{font-size:12px; font-weight:600; color:#51677F}
.kpi-val{display:flex; align-items:baseline; gap:8px; font-variant-numeric:tabular-nums}
.kpi-val b{font-size:26px; font-weight:800; color:#1F2833; letter-spacing:-.02em}
.kpi-val span{font-size:12px; color:#7B92A9}
.delta{display:inline-flex; align-items:center; gap:2px; font-size:10.5px; font-weight:600; padding:2px 7px; border-radius:99px}
.delta.up{background:rgba(59,174,122,.12); color:#2E8A60}
.delta.down{background:rgba(224,91,91,.12); color:#C24444}
.kpi-sub{font-size:11px; color:#7B92A9; margin-top:3px}
.kpi-chips{display:flex; gap:5px; margin-top:7px; flex-wrap:wrap}
.kpi-chip{font-size:10px; font-weight:600; border-radius:99px; padding:2px 8px}
.kc-good{background:rgba(59,174,122,.12); color:#2E8A60}
.kc-neutral{background:#E6ECF1; color:#51677F}
.kc-bad{background:rgba(224,91,91,.12); color:#C24444}
.kpi svg.spark{display:block; width:100%; height:30px; margin-top:8px}
.d-charts{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px}
.d-chart{background:#fff; border:1px solid #E6ECF1; border-radius:16px; padding:14px 16px;
  box-shadow:0 1px 2px rgba(31,40,51,.04), 0 8px 24px -12px rgba(31,40,51,.10)}
.d-chart h5{margin:0; font-size:12.5px; font-weight:800; color:#374657}
.d-chart .ch-sub{font-size:10.5px; color:#7B92A9; margin-top:1px}
.legend{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px}
.legend span{display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:600; color:#51677F}
.legend i{width:8px; height:8px; border-radius:3px}
.d-chart svg{display:block; width:100%; height:150px; margin-top:6px}
.dash-caption{display:flex; justify-content:center; gap:28px; flex-wrap:wrap; margin-top:28px}
.dc-item{display:flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--text-2)}
.dc-item svg{width:17px; height:17px; color:var(--brand-600); flex-shrink:0}

/* ---------- journeys ---------- */
.journeys{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
@media (max-width:840px){ .journeys{grid-template-columns:1fr} }
.journey{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px 26px; box-shadow:var(--shadow-card)}
.journey .j-emoji{font-size:30px}
.journey h3{font-size:19px; font-weight:800; margin-top:14px}
.journey > p{margin-top:8px; font-size:14.5px; color:var(--text-2)}
.j-steps{margin-top:20px; padding-left:0; list-style:none; border-left:2px solid var(--line-2); display:flex; flex-direction:column; gap:12px}
.j-steps li{position:relative; padding-left:18px; font-size:13.5px; color:var(--text-2)}
.j-steps li b{color:var(--text-strong); font-weight:600}
.j-steps li::before{content:""; position:absolute; left:-6px; top:6px; width:10px; height:10px; border-radius:50%;
  background:var(--brand); border:2px solid var(--surface)}

/* ---------- how ---------- */
.how{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; counter-reset:step}
@media (max-width:840px){ .how{grid-template-columns:1fr} }
.step{background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:28px 26px; box-shadow:var(--shadow-card); counter-increment:step; position:relative}
.step::before{
  content:counter(step, decimal-leading-zero);
  font-size:13px; font-weight:800; letter-spacing:.06em; color:var(--brand);
  display:inline-block; background:var(--surface-2); border-radius:99px; padding:4px 12px; margin-bottom:16px;
}
.step h3{font-size:18px; font-weight:800}
.step p{margin-top:8px; font-size:14.5px; color:var(--text-2)}

/* ---------- results ---------- */
.results{background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:88px 0}
.results h2{font-size:clamp(26px,3.6vw,34px); font-weight:800; letter-spacing:-.02em; max-width:560px}
.results-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px}
@media (max-width:840px){ .results-grid{grid-template-columns:1fr} }
.result{background:var(--bg); border:1px solid var(--line); border-radius:20px; padding:26px}
.result b{display:block; font-size:20px; font-weight:800; color:var(--text-strong); letter-spacing:-.01em}
.result p{margin-top:8px; font-size:14px; color:var(--text-2)}
.result .r-tag{display:inline-block; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; border-radius:99px; padding:3px 10px; margin-bottom:14px}
.rt-bad{background:rgba(224,91,91,.12); color:#C24444}
.rt-warn{background:rgba(233,162,59,.14); color:#A96F1E}
.rt-good{background:rgba(59,174,122,.12); color:#2E8A60}

/* ---------- contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
@media (max-width:840px){ .contact-grid{grid-template-columns:1fr} }
.contact h2{font-size:clamp(28px,4vw,38px); font-weight:800; letter-spacing:-.02em}
.contact-left p{margin-top:14px; font-size:17px; color:var(--text-2); max-width:44ch}
.contact-left .mail{margin-top:24px; font-size:15px}
.contact-left .mail a{color:var(--brand-600); font-weight:600; text-decoration:none}
.contact-left .mail a:hover{text-decoration:underline}
.form-card{background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:32px; box-shadow:var(--shadow-hover)}
.form-card label{display:block; font-size:13px; font-weight:600; color:var(--text-strong); margin-bottom:6px}
.form-card .field{margin-bottom:18px}
.form-card input, .form-card select{
  width:100%; border:1.5px solid var(--line-2); background:var(--bg); color:var(--text);
  border-radius:12px; padding:11px 14px; font-size:14.5px; font-family:inherit;
  transition:border-color .15s;
}
.form-card input::placeholder{color:var(--muted)}
.form-card input:focus, .form-card select:focus{border-color:var(--brand); outline:none}
.form-note{font-size:12px; color:var(--muted); margin-top:14px; text-align:center}
.form-ok{text-align:center; padding:36px 0}
.form-ok .ok-emoji{font-size:42px}
.form-ok h3{font-size:22px; font-weight:800; margin-top:14px}
.form-ok p{margin-top:8px; color:var(--text-2); font-size:15px}

/* ---------- footer ---------- */
footer{background:var(--ink-800); color:#A3B4C6; padding:52px 0 40px}
.foot-grid{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; align-items:flex-start}
.foot-brand .logo b{color:#fff}
.foot-brand p{margin-top:12px; font-size:13.5px; max-width:32ch}
.foot-links{display:flex; gap:48px; flex-wrap:wrap}
.foot-links div{display:flex; flex-direction:column; gap:9px}
.foot-links b{font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:#7B92A9; margin-bottom:4px}
.foot-links a{font-size:14px; color:#C8D3DE; text-decoration:none}
.foot-links a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:40px; padding-top:20px; font-size:12.5px; color:#7B92A9;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px}
