/* ==========================================================================
   Logiks RC18 — Landing Page
   Direção visual: referência stefanini.com/pt, traduzida para a marca RC18.
     - superfícies grandes e arredondadas, hierarquia por bloco
     - tipografia display justa (tracking negativo) + corpo neutro legível
     - laranja da marca como acento pontual, ardósia como cor de estrutura
     - profundidade por sombra difusa (nada de sombra sólida / borda preta)
     - revelação suave ao rolar, desligada em prefers-reduced-motion
   Texto e logo: inalterados.
   ========================================================================== */

:root{
  /* ---------- Marca ---------- */
  --brand:#FF7726;
  --brand-strong:#EE5F0E;
  --brand-deep:#C64A08;
  --brand-tint:#FFF3EB;
  --brand-line:#FFD3B6;

  /* ---------- Estrutura ---------- */
  --ink:#0B1319;
  --slate:#2B3C46;
  --slate-deep:#16242C;
  --slate-soft:#3D515E;

  --text:#101820;
  --muted:#596A74;
  --placeholder:#84939D;
  --line:#E4EAEE;
  --line-strong:#D2DCE2;

  --surface:#FFFFFF;
  --surface-alt:#F4F7F9;
  --surface-sunken:#EAF0F3;

  --on-dark:#FFFFFF;
  --on-dark-muted:#B3C2CB;
  --on-dark-line:rgba(255,255,255,.14);

  --error:#C4331D;

  /* ---------- Tipografia ---------- */
  --font-display:"Space Grotesk","Inter",system-ui,-apple-system,sans-serif;
  --font-sans:"Inter","Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;

  --fs-display:clamp(2.25rem,1.4rem + 3.6vw,4rem);
  --fs-h2:clamp(1.85rem,1.35rem + 2.1vw,2.75rem);
  --fs-h3:clamp(1.2rem,1.08rem + .5vw,1.5rem);
  --fs-lead:clamp(1.0625rem,1rem + .45vw,1.3125rem);
  --fs-body:1.0625rem;
  --fs-small:.9375rem;
  --fs-micro:.8125rem;

  /* ---------- Layout ---------- */
  --container:1200px;
  --gutter:clamp(20px,5vw,72px);
  --section-pad:clamp(72px,8vw,130px);
  --nav-h:77px;
  --header-gap:clamp(40px,5vw,72px);

  /* ---------- Formas ---------- */
  --r-xs:8px;
  --r-sm:12px;
  --r-md:18px;
  --r-lg:26px;
  --r-xl:34px;
  --r-2xl:44px;
  --r-pill:999px;

  /* ---------- Profundidade ---------- */
  --shadow-xs:0 1px 2px rgba(11,19,25,.05);
  --shadow-sm:0 1px 2px rgba(11,19,25,.05),0 6px 16px -10px rgba(11,19,25,.22);
  --shadow-md:0 2px 4px rgba(11,19,25,.04),0 22px 44px -24px rgba(11,19,25,.30);
  --shadow-lg:0 40px 90px -46px rgba(11,19,25,.45);
  --shadow-brand:0 14px 30px -14px rgba(238,95,14,.55);

  --t:220ms cubic-bezier(.4,0,.2,1);
  --t-slow:420ms cubic-bezier(.22,1,.36,1);
}

/* ==========================================================================
   BASE
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.6;
  color:var(--text);
  background:var(--surface);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  margin:0;
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.06;
  letter-spacing:-.03em;
  color:var(--text);
  text-wrap:balance;
}
h1{font-size:var(--fs-display);letter-spacing:-.04em}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);line-height:1.18;letter-spacing:-.02em}
h4{font-size:1.125rem;line-height:1.25}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--brand);color:#fff}

:focus-visible{
  outline:2px solid var(--brand-strong);
  outline-offset:3px;
  border-radius:4px;
}

.container{
  width:100%;
  max-width:calc(var(--container) + var(--gutter) * 2);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ==========================================================================
   REVELAÇÃO AO ROLAR (só com JS ativo — sem JS o conteúdo aparece normal)
   ========================================================================== */
.js [data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity 640ms ease,transform 640ms cubic-bezier(.22,1,.36,1);
  transition-delay:var(--reveal-delay,0ms);
}
.js [data-reveal].is-visible{opacity:1;transform:none}

/* ==========================================================================
   MARCADOR DE TÍTULO
   ========================================================================== */
.highlight{
  display:inline;
  background-image:linear-gradient(var(--brand),var(--brand));
  background-repeat:no-repeat;
  background-size:100% .13em;
  background-position:0 96%;
  padding-bottom:.06em;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.highlight--white{color:var(--on-dark)}

/* ==========================================================================
   BOTÕES
   ========================================================================== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:52px;
  padding:14px 26px;
  border:1px solid transparent;
  border-radius:var(--r-xs);
  font-family:var(--font-sans);
  font-size:1rem;
  font-weight:600;
  letter-spacing:-.01em;
  line-height:1.2;
  cursor:pointer;
  text-align:center;
  transition:background var(--t),color var(--t),border-color var(--t),
             transform var(--t),box-shadow var(--t);
}
.btn::after{
  content:"";
  flex:none;
  width:17px;height:17px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 12h14M12.5 5.5 19 12l-6.5 6.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4.5 12h14M12.5 5.5 19 12l-6.5 6.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform var(--t);
}
.btn:hover::after{transform:translateX(4px)}

.btn--primary{
  background:var(--brand);
  color:var(--ink);
  box-shadow:var(--shadow-brand);
}
.btn--primary:hover{
  background:var(--brand-strong);
  transform:translateY(-2px);
  box-shadow:0 18px 34px -14px rgba(238,95,14,.65);
}
.btn--primary:active{transform:translateY(0)}

.btn--secondary{
  background:var(--slate);
  color:var(--on-dark);
}
.btn--secondary:hover{
  background:var(--slate-deep);
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}

.btn--accent{
  background:var(--brand);
  color:var(--ink);
}
.btn--accent:hover{background:var(--brand-strong);transform:translateY(-2px)}

.btn--block{width:100%}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}

/* ==========================================================================
   NAVBAR
   ========================================================================== */
.navbar{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color var(--t),box-shadow var(--t);
}
.navbar.is-stuck{
  border-bottom-color:var(--line);
  box-shadow:0 10px 30px -24px rgba(11,19,25,.5);
}
.navbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:76px;
}
.navbar__brand{display:flex;align-items:center;flex:none}
.navbar__brand img{width:auto;height:52px;transition:transform var(--t)}
.navbar__brand:hover img{transform:scale(1.03)}

.navbar__menu{display:flex;align-items:center;gap:4px}
.navbar__link{
  position:relative;
  padding:10px 14px;
  border-radius:var(--r-xs);
  font-size:.9375rem;
  font-weight:500;
  color:var(--muted);
  transition:color var(--t)}
.navbar__link::after{
  content:"";
  position:absolute;
  left:14px;right:14px;bottom:4px;
  height:2px;
  border-radius:2px;
  background:var(--brand);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--t);
}
.navbar__link:hover{color:var(--text)}
.navbar__link:hover::after{transform:scaleX(1)}

.navbar__menu .btn{
  min-height:46px;
  padding:11px 20px;
  font-size:.9375rem;
  margin-left:12px;
}

.navbar__toggle{
  display:none;
  width:46px;height:46px;
  padding:0;
  border:1px solid var(--line);
  border-radius:var(--r-xs);
  background:var(--surface);
  cursor:pointer;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  transition:border-color var(--t);
}
.navbar__toggle:hover{border-color:var(--line-strong)}
.navbar__toggle span{
  display:block;
  width:19px;height:2px;
  border-radius:2px;
  background:var(--slate);
  transition:transform var(--t),opacity var(--t);
}
.navbar__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.navbar__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.navbar__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  justify-content:center;
  /* altura = uma tela cheia abaixo da navbar (77px), com piso e teto */
  min-height:clamp(600px,calc(100vh - var(--nav-h)),900px);
  min-height:clamp(600px,calc(100svh - var(--nav-h)),900px);
  padding-block:clamp(64px,6vw,96px);
  background:
    radial-gradient(120% 100% at 82% 6%,rgba(255,119,38,.10) 0%,rgba(255,119,38,0) 55%),
    linear-gradient(100deg,rgba(11,20,26,.88) 0%,rgba(11,20,26,.72) 38%,rgba(11,20,26,.30) 60%,rgba(11,20,26,.14) 100%),
    url("hero-bg.png") 50% 50% / cover no-repeat,
    linear-gradient(160deg,#2E404B 0%,#1B2B34 48%,#101C23 100%);
  color:var(--on-dark);
  border-bottom-left-radius:var(--r-2xl);
  border-bottom-right-radius:var(--r-2xl);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px;
  opacity:.6;
  -webkit-mask-image:radial-gradient(85% 70% at 50% 28%,#000 0%,transparent 78%);
  mask-image:radial-gradient(85% 70% at 50% 28%,#000 0%,transparent 78%);
}
.hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
}
.hero__content{max-width:min(100%,54ch)}
.hero__content h1{color:var(--on-dark)}
.hero .highlight{
  color:var(--brand);
  background-image:none;
  padding-bottom:0;
}
.hero__text{
  margin-top:24px;
  max-width:40ch;
  font-size:var(--fs-lead);
  line-height:1.55;
  color:var(--on-dark-muted);
}
.hero__content .btn{margin-top:36px}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:36px;
}
.hero__actions .btn{margin-top:0}

.capability-line{
  margin-top:clamp(40px,5vw,64px);
  padding-top:clamp(28px,3vw,40px);
  border-top:1px solid var(--on-dark-line);
  max-width:56ch;
  font-size:clamp(1rem,1.6vw,1.1875rem);
  font-weight:500;
  line-height:1.5;
  color:var(--on-dark);
}

/* ==========================================================================
   SEÇÕES
   ========================================================================== */
.section{
  padding-block:var(--section-pad);
  scroll-margin-top:96px;
}
.section--alt{background:var(--surface-alt)}
.section--tight{padding-block:0 var(--section-pad)}

.section__header{
  max-width:760px;
  margin-bottom:var(--header-gap);
}
.section__header::before{
  content:"";
  display:block;
  width:46px;height:4px;
  margin-bottom:26px;
  border-radius:2px;
  background:var(--brand);
}
.section__subtitle{
  margin-top:20px;
  max-width:62ch;
  font-size:var(--fs-lead);
  line-height:1.55;
  color:var(--muted);
}

/* ==========================================================================
   PAINÉIS
   ========================================================================== */
.panel{
  border-radius:var(--r-2xl);
  padding:clamp(28px,4vw,60px);
}
.panel--grey{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-md);
}
.panel--dark{
  background:linear-gradient(155deg,#2E404B 0%,#1B2B34 60%,#131F26 100%);
  color:var(--on-dark);
}

/* ---------- A plataforma ---------- */
.platform{
  display:grid;
  gap:clamp(28px,3.2vw,44px);
  align-items:start;
}
.platform__kicker{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:8px 16px;
  border:1px solid var(--brand-line);
  border-radius:var(--r-pill);
  background:var(--brand-tint);
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--brand-deep);
}
.platform__kicker::before{
  content:"";
  flex:none;
  width:6px;height:6px;
  border-radius:50%;
  background:var(--brand);
}
.platform__text{display:grid;gap:20px}
.platform__text p{
  text-align:justify;
  text-justify:inter-word;
  -webkit-hyphens:auto;
  hyphens:auto;
  hyphenate-limit-chars:6 3 3;
}
.platform__lead{
  font-family:var(--font-display);
  font-size:clamp(1.25rem,1.05rem + .8vw,1.75rem);
  font-weight:500;
  line-height:1.32;
  letter-spacing:-.02em;
  color:var(--text);
  max-width:52ch;
}
.platform__text p:not(.platform__lead){color:var(--muted);line-height:1.68;max-width:70ch}

.platform__diffs{display:grid;gap:clamp(20px,2.4vw,28px)}
.platform__diffs-title{font-size:var(--fs-h3);line-height:1.25}
.diffs{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(20px,2.4vw,32px);
}
.diffs li{
  min-width:0;
  padding-left:20px;
  border-left:2px solid var(--brand-line);
}
.diffs__title{
  margin-bottom:8px;
  font-weight:600;
  line-height:1.4;
  color:var(--text);
}
.diffs__text{
  font-size:.9375rem;
  line-height:1.62;
  color:var(--muted);
}
.platform__close{
  padding-top:clamp(22px,2.6vw,30px);
  border-top:1px solid var(--line);
  font-family:var(--font-display);
  font-size:clamp(1.0625rem,.98rem + .45vw,1.3125rem);
  font-weight:500;
  line-height:1.45;
  letter-spacing:-.01em;
  color:var(--text);
  max-width:46ch;
}

/* ---------- Benefícios ---------- */
.benefits{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3vw,48px);
  align-items:stretch;
  background:linear-gradient(150deg,#FF8A3F 0%,#FF7726 45%,#F0620E 100%);
  color:var(--ink);
}
.benefits__col{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:32px;
}
.benefits__col p{
  font-family:var(--font-display);
  font-size:clamp(1.2rem,1.02rem + .7vw,1.625rem);
  font-weight:500;
  line-height:1.28;
  letter-spacing:-.02em;
  color:var(--ink);
  text-wrap:balance;
}
.benefits__divider{
  width:1px;
  background:rgba(11,19,25,.18);
  justify-self:center;
  display:none;
}

.learn-more{
  display:inline-flex;
  align-items:center;
  gap:12px;
  align-self:flex-start;
  min-height:44px;
  font-size:.9375rem;
  font-weight:600;
  color:var(--ink);
  transition:gap var(--t),opacity var(--t);
}
.learn-more__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;height:34px;
  flex:none;
  border-radius:50%;
  background:var(--ink);
  color:var(--brand);
  transition:transform var(--t);
}
.learn-more:hover{gap:16px}
.learn-more:hover .learn-more__icon{transform:translateX(2px)}

/* ==========================================================================
   ACORDEÃO — O desafio
   ========================================================================== */
.accordion{display:grid;gap:14px}
.accordion__item{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  transition:border-color var(--t),box-shadow var(--t),transform var(--t);
}
.accordion__item:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}
.accordion__item.is-open{
  border-color:var(--brand-line);
  box-shadow:var(--shadow-md);
}

.accordion__head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(14px,2vw,28px);
  width:100%;
  padding:clamp(20px,2.4vw,30px) clamp(20px,2.6vw,34px);
  border:0;
  background:transparent;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
  border-radius:var(--r-md);
}
.accordion__number{
  font-family:var(--font-display);
  font-size:.9375rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:var(--placeholder);
  transition:color var(--t);
}
.accordion__item.is-open .accordion__number{color:var(--brand-strong)}

.accordion__title{
  font-family:var(--font-display);
  font-size:clamp(1.0625rem,.98rem + .5vw,1.375rem);
  font-weight:600;
  line-height:1.26;
  letter-spacing:-.02em;
  color:var(--text);
}

.accordion__toggle{
  position:relative;
  width:38px;height:38px;
  flex:none;
  border-radius:50%;
  border:1px solid var(--line-strong);
  background:var(--surface);
  transition:background var(--t),border-color var(--t),transform var(--t);
}
.accordion__toggle::before,
.accordion__toggle::after{
  content:"";
  position:absolute;
  top:50%;left:50%;
  width:13px;height:2px;
  margin:-1px 0 0 -6.5px;
  border-radius:2px;
  background:var(--slate);
  transition:transform var(--t),background var(--t);
}
.accordion__toggle::after{transform:rotate(90deg)}
.accordion__item.is-open .accordion__toggle{
  background:var(--brand);
  border-color:var(--brand);
}
.accordion__item.is-open .accordion__toggle::before,
.accordion__item.is-open .accordion__toggle::after{background:var(--ink)}
.accordion__item.is-open .accordion__toggle::after{transform:rotate(0deg)}

.accordion__body{
  display:grid;
  grid-template-rows:0fr;
  visibility:hidden;
  transition:grid-template-rows var(--t-slow),visibility 0s linear 420ms;
}
.accordion__body > *{overflow:hidden;min-height:0}
.accordion__item.is-open .accordion__body{
  grid-template-rows:1fr;
  visibility:visible;
  transition:grid-template-rows var(--t-slow),visibility 0s;
}
.accordion__body p{
  max-width:70ch;
  padding:0 clamp(20px,2.6vw,34px) clamp(22px,2.4vw,30px);
  color:var(--muted);
  line-height:1.68;
  transition:padding-bottom var(--t-slow);
}
/* o padding do parágrafo não é recortado pelo overflow do próprio elemento —
   zerá-lo no estado fechado é o que faz o item colapsar até 0px */
.accordion__item:not(.is-open) .accordion__body p{padding-bottom:0}

/* ==========================================================================
   CARDS — Diferenciais
   ========================================================================== */
.cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(16px,1.8vw,24px);
}
@media (max-width:1180px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.card{
  display:flex;
  flex-direction:column;
  gap:26px;
  padding:clamp(26px,2.6vw,36px);
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  background:var(--surface);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.card__body{display:grid;gap:14px}
.card__text{font-size:var(--fs-small);line-height:1.62;color:var(--muted)}

.card__mark{
  order:-1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;height:64px;
  flex:none;
  border-radius:var(--r-md);
  background:var(--surface-alt);
  transition:transform var(--t),background var(--t);
}
.card__mark svg{width:38px;height:38px}
.card:hover .card__mark{transform:rotate(-4deg) scale(1.04)}

.card--grey{background:var(--surface)}
.card--primary{
  background:var(--brand-tint);
  border-color:var(--brand-line);
}
.card--primary .highlight{color:var(--text)}
.card--primary .card__mark{background:rgba(255,255,255,.7)}
.card--dark{
  background:linear-gradient(155deg,#334753 0%,#22333C 100%);
  border-color:transparent;
}
.card--dark h3{color:var(--on-dark)}
.card--dark .card__text{color:var(--on-dark-muted)}
.card--dark .card__mark{background:rgba(255,255,255,.10)}

/* ==========================================================================
   CTA
   ========================================================================== */
.cta{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  align-items:center;
  gap:clamp(32px,4vw,64px);
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.cta::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:520px;height:520px;
  right:-140px;top:-200px;
  border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,119,38,.30),rgba(255,119,38,0));
}
.cta__content h2{color:var(--on-dark);max-width:20ch}
.cta__content p{
  margin-top:22px;
  max-width:56ch;
  color:var(--on-dark-muted);
  line-height:1.66;
}
.cta__content .btn{margin-top:34px}
.cta__art{
  margin:0;
  width:100%;
  justify-self:center;
  border-radius:var(--r-xl);
  overflow:hidden;
  border:1px solid rgba(255,119,38,.22);
  box-shadow:var(--shadow-lg);
}
.cta__art img{
  display:block;
  width:100%;
  /* A arte e 1080x1350; o recorte 4/3 tira a moldura vazia de cima e de baixo
     sem cortar nenhum dos doze pilares, que ocupam a faixa central. */
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center;
}

/* ==========================================================================
   CONTATO
   ========================================================================== */
.contact{
  display:grid;
  grid-template-columns:minmax(0,.64fr) minmax(0,.36fr);
  gap:clamp(32px,4vw,64px);
  align-items:center;
}
.contact__art{
  width:100%;
  max-width:340px;
  height:auto;
  justify-self:center;
  border-radius:18px;
  box-shadow:0 18px 44px rgba(0,0,0,.28);
}
.contact__col{min-width:0}

.contact__form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:20px;
}
.contact__form > .field:nth-of-type(5),
.contact__form > .field:nth-of-type(6),
.contact__form > .field--radios,
.contact__form > .btn{grid-column:1/-1}

.field{display:grid;gap:8px;min-width:0;border:0;padding:0;margin:0}
.field__label{
  font-size:var(--fs-micro);
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--muted);
  padding:0;
}
.input,.textarea{
  width:100%;
  min-height:52px;
  padding:14px 16px;
  font-family:var(--font-sans);
  font-size:1rem;
  line-height:1.4;
  color:var(--text);
  background:var(--surface-alt);
  border:1px solid var(--line);
  border-radius:var(--r-xs);
  transition:border-color var(--t),box-shadow var(--t),background var(--t);
}
.textarea{min-height:132px;resize:vertical}
.input::placeholder,.textarea::placeholder{color:var(--placeholder)}
.input:hover,.textarea:hover{border-color:var(--line-strong)}
.input:focus,.textarea:focus{
  outline:none;
  background:var(--surface);
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(255,119,38,.18);
}
.field__error{
  font-size:var(--fs-micro);
  line-height:1.4;
  color:var(--error);
}
.field__error:empty{display:none}
.field.is-invalid .input,
.field.is-invalid .textarea{
  border-color:var(--error);
  box-shadow:0 0 0 3px rgba(196,51,29,.12);
}

.field--radios{display:block}
.field--radios .field__label{display:block;margin-bottom:14px}
.radios{display:flex;flex-wrap:wrap;gap:10px}
.radio{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:10px 18px 10px 14px;
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  background:var(--surface-alt);
  font-size:var(--fs-small);
  cursor:pointer;
  transition:border-color var(--t),background var(--t);
}
.radio:hover{border-color:var(--line-strong);background:var(--surface)}
.radio input{position:absolute;opacity:0;width:0;height:0}
.radio__dot{
  position:relative;
  width:18px;height:18px;
  flex:none;
  border:2px solid var(--line-strong);
  border-radius:50%;
  background:var(--surface);
  transition:border-color var(--t);
}
.radio__dot::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  background:var(--brand);
  transform:scale(0);
  transition:transform var(--t);
}
.radio input:checked + .radio__dot{border-color:var(--brand)}
.radio input:checked + .radio__dot::after{transform:scale(1)}
.radio:has(input:checked){border-color:var(--brand);background:var(--brand-tint)}
.radio input:focus-visible + .radio__dot{
  outline:2px solid var(--brand-strong);
  outline-offset:2px;
}

.contact__success{
  display:grid;
  gap:14px;
  justify-items:start;
  padding:clamp(26px,3vw,40px);
  border:1px solid var(--brand-line);
  border-radius:var(--r-lg);
  background:var(--brand-tint);
}
.contact__check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:56px;height:56px;
  border-radius:50%;
  background:var(--brand);
  color:var(--ink);
}
.contact__success p{color:var(--muted)}

/* Aviso de falha no envio — só aparece se o endpoint /api/leads não responder. */
.contact__error{
  margin-top:16px;
  padding:14px 18px;
  border:1px solid #E9B8B0;
  border-radius:var(--r-md);
  background:#FDEEEC;
  color:#7A2B22;
  font-size:.94rem;
  line-height:1.5;
}
.contact__error a{color:inherit;font-weight:600}

/* Honeypot anti-spam: fora da tela, sem display:none — bots ignoram campos
   com display:none, e leitores de tela pulam pelo aria-hidden do contêiner. */
.hp{
  position:absolute;
  left:-9999px;
  width:1px;height:1px;
  overflow:hidden;
}

/* ==========================================================================
   RODAPÉ
   ========================================================================== */
.footer{padding-bottom:clamp(20px,3vw,40px)}
.footer__panel{
  padding:clamp(32px,4vw,64px);
  border-radius:var(--r-2xl);
  background:
    radial-gradient(80% 120% at 90% 0%,rgba(255,119,38,.16) 0%,rgba(255,119,38,0) 55%),
    linear-gradient(155deg,#22333C 0%,#16242C 60%,#0F1A21 100%);
  color:var(--on-dark);
}
.footer__top{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-bottom:clamp(30px,4vw,52px);
}
.footer__brand{
  display:inline-flex;
}
.footer__brand img{width:auto;height:40px}
.footer__menu{display:flex;flex-wrap:wrap;gap:6px}
.footer__menu a{
  padding:10px 14px;
  border-radius:var(--r-xs);
  font-size:.9375rem;
  color:var(--on-dark-muted);
  transition:color var(--t),background var(--t);
}
.footer__menu a:hover{color:var(--on-dark);background:rgba(255,255,255,.07)}

.footer__middle{padding-bottom:clamp(30px,4vw,52px)}
.footer__contact{display:grid;gap:18px;justify-items:start;max-width:620px}
.footer__tag{
  font-family:var(--font-display);
  font-size:clamp(1.25rem,1.05rem + .9vw,1.875rem);
  font-weight:600;
  line-height:1.24;
  letter-spacing:-.02em;
  color:var(--on-dark);
}
.footer__tag .highlight{color:var(--on-dark)}
.footer__note{color:var(--on-dark-muted);line-height:1.66;max-width:52ch}
.footer__contact .btn{margin-top:6px}

.footer__divider{
  height:1px;
  margin:0;
  border:0;
  background:var(--on-dark-line);
}
.footer__bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:clamp(20px,2.5vw,30px);
  font-size:var(--fs-small);
  color:var(--on-dark-muted);
}

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width:1023px){
  .navbar__toggle{display:flex}
  .navbar__inner{position:relative;min-height:68px}
  .navbar__menu{
    position:absolute;
    top:calc(100% + 10px);
    left:0;right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:var(--r-md);
    background:var(--surface);
    box-shadow:var(--shadow-md);
  }
  .navbar__menu.is-open{display:flex}
  .navbar__link{padding:14px;font-size:1rem}
  .navbar__link::after{display:none}
  .navbar__menu .btn{margin:6px 0 0;width:100%}

  .hero{
    --nav-h:68px;
    min-height:calc(100vh - var(--nav-h));
    min-height:calc(100svh - var(--nav-h));
    padding-block:clamp(56px,9vw,80px);
    /* imagem vira faixa no topo (largura total) e o texto comeca abaixo dela */
    padding-top:calc(56.3vw + 28px);
    background:
      radial-gradient(120% 90% at 78% 10%,rgba(255,119,38,.10) 0%,rgba(255,119,38,0) 58%),
      linear-gradient(180deg,rgba(11,20,26,.14) 0%,rgba(11,20,26,.22) 34%,rgba(11,20,26,.86) 52%,rgba(11,20,26,.94) 100%),
      url("hero-bg.png") 50% 0% / 100% auto no-repeat,
      linear-gradient(160deg,#2E404B 0%,#1B2B34 48%,#101C23 100%);
  }
  .hero__inner{grid-template-columns:1fr}
  .hero__content{max-width:100%}
  .hero__text{max-width:100%}

  .diffs{grid-template-columns:1fr}

  .benefits{grid-template-columns:1fr;gap:0}
  .benefits__col{padding-block:28px}
  .benefits__col:first-child{padding-top:0}
  .benefits__col:last-child{padding-bottom:0}
  .benefits__divider{
    display:block;
    width:auto;height:1px;
    justify-self:stretch;
  }

  .cta{grid-template-columns:1fr}
  .cta__art{max-width:560px}
  .cta__content h2{max-width:100%}

  .contact{grid-template-columns:1fr}
  .contact__art{order:-1;max-width:300px}
}

@media (max-width:767px){
  :root{--r-2xl:28px;--r-xl:24px;--r-lg:20px}
  .section__header::before{margin-bottom:20px}
  .accordion__head{grid-template-columns:auto 1fr auto;gap:12px}
  .accordion__number{align-self:start;padding-top:4px}
  .capability-line{font-size:1rem}
  .cards{grid-template-columns:1fr}
  .card{flex-direction:row;align-items:flex-start;gap:20px}
  .card__mark{width:54px;height:54px}
  .card__mark svg{width:32px;height:32px}
  .footer__top{flex-direction:column;align-items:flex-start}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:6px}
}

@media (max-width:400px){
  .accordion__toggle{width:32px;height:32px}
  .radio{width:100%}
  .card{flex-direction:column}
}

/* ==========================================================================
   CONTENÇÃO — nada estoura na horizontal
   ========================================================================== */
.hero__inner,.hero__content,.platform,.platform__text,.platform__diffs,.benefits,.benefits__col,
.cards,.card,.card__body,.cta,.cta__content,.contact,.contact__col,
.accordion__head,.accordion__title,.footer__top,.footer__bottom,.field{
  min-width:0;
}

/* ==========================================================================
   MOVIMENTO REDUZIDO
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .js [data-reveal]{opacity:1;transform:none}
}
