/* Ajato. Sistemas de Acesso Veicular. Design tokens: Ajato DOC/DNA/DNA-v2.md */

@font-face{
  font-family:"Sharp Grotesk";
  src:url("../assets/fonts/SharpGrotesk/SharpGrotesk-Book20.otf") format("opentype");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Sharp Grotesk";
  src:url("../assets/fonts/SharpGrotesk/SharpGrotesk-Medium20.otf") format("opentype");
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Sharp Grotesk";
  src:url("../assets/fonts/SharpGrotesk/SharpGrotesk-SemiBold20.otf") format("opentype");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Sharp Grotesk";
  src:url("../assets/fonts/SharpGrotesk/SharpGrotesk-Bold20.otf") format("opentype");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Sharp Grotesk";
  src:url("../assets/fonts/SharpGrotesk/SharpGrotesk-Black20.otf") format("opentype");
  font-weight:900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../assets/fonts/Inter/Inter-Variable.ttf") format("truetype-variations");
  font-weight:100 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Inter";
  src:url("../assets/fonts/Inter/Inter-Variable-Italic.ttf") format("truetype-variations");
  font-weight:100 900; font-style:italic; font-display:swap;
}

:root{
  --navy:#00182E;
  --navy-700:#1F3A54;
  --navy-900:#000D1A;
  --lima:#ACEC00;
  --gelo:#F4F6F8;
  --cinza:#C1C1C1;
  --ink-on-navy:#EAF0F4;
  --muted-on-navy:#93A5B2;
  --muted-on-gelo:#5B6B78;
  --max:1180px;
  --gutter:24px;
  --radius:2px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--gelo);
  color:var(--navy);
  font-family:"Inter",system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{
  font-family:"Sharp Grotesk",system-ui,sans-serif;
  margin:0;
  font-weight:700;
  letter-spacing:-.01em;
  text-wrap:balance;
}
.eyebrow{
  font-family:"Sharp Grotesk",system-ui,sans-serif;
  font-weight:600;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
section{padding:88px 0;}
@media (max-width:720px){ section{padding:56px 0;} }

/* ---------- buttons ---------- */
.btn{
  font-family:"Sharp Grotesk",system-ui,sans-serif;
  font-weight:600;
  font-size:14.5px;
  letter-spacing:.01em;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 26px;
  border-radius:var(--radius);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
  border:1.5px solid transparent;
}
.btn-primary{
  background:transparent;
  color:var(--lima);
  border-color:var(--lima);
}
.btn-primary:hover{background:rgba(172,236,0,.08); transform:translateY(-1px);}
.btn-primary.on-light{color:var(--navy-700); border-color:var(--navy-700);}
.btn-primary.on-light:hover{background:rgba(0,24,46,.05);}
.btn-ghost{
  color:var(--ink-on-navy);
  border-color:rgba(234,240,244,.28);
}
.btn-ghost:hover{border-color:rgba(234,240,244,.6);}
.btn-ghost.on-light{color:var(--navy); border-color:var(--cinza);}
.btn svg{width:16px;height:16px;flex:none;}

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--navy);
  border-bottom:1px solid rgba(234,240,244,.1);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.brand img{height:36px; width:auto;}
.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{
  font-family:"Sharp Grotesk",system-ui,sans-serif;
  font-weight:500; font-size:14px;
  color:var(--ink-on-navy);
  opacity:.82;
  transition:opacity .15s ease;
}
.nav-links a:hover{opacity:1;}
.nav-links a.current{opacity:1; color:var(--lima);}
.nav-actions{display:flex; align-items:center; gap:22px;}
.nav-toggle{display:none; background:none; border:0; padding:8px; cursor:pointer;}
.nav-toggle span{display:block; width:22px; height:1.5px; background:var(--ink-on-navy); margin:5px 0;}

@media (max-width:860px){
  .nav-links{
    position:fixed; inset:76px 0 0 0; background:var(--navy);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:8px var(--gutter) 24px;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
  }
  .nav-links a{padding:16px 0; width:100%; border-bottom:1px solid rgba(234,240,244,.08); opacity:1;}
  .nav-links.open{transform:translateY(0); opacity:1; pointer-events:auto;}
  .nav-toggle{display:block;}
  .nav-actions .btn-primary{padding:10px 16px; font-size:13px;}
}

@media (max-width:520px){
  .nav-actions .btn-primary{display:none;}
  .site-header .wrap{position:relative; width:100%;}
  .nav-toggle{display:block !important; visibility:visible; opacity:1; position:absolute; right:16px; top:50%; width:38px; height:38px; transform:translateY(-50%); z-index:2;}
  .nav-toggle span{display:none;}
  .nav-toggle::before,.nav-toggle::after{content:""; position:absolute; left:8px; width:22px; height:2px; background:var(--ink-on-navy);}
  .nav-toggle::before{top:11px; box-shadow:0 7px 0 var(--ink-on-navy);}
  .nav-toggle::after{top:25px;}
  .hero .wrap > div{min-width:0;}
  .hero h1{max-width:100%; font-size:30px; overflow-wrap:break-word; text-wrap:wrap;}
}

/* ---------- launch bar (TÁTICO — remover após campanha, combinar data com Diego) ---------- */
.launch-bar{
  position:relative;
  background:var(--navy-900);
  border-bottom:1px solid rgba(172,236,0,.25);
  overflow:hidden;
}
.launch-bar-track{
  position:relative;
  height:44px;
}
.launch-bar-slide{
  position:absolute; inset:0;
  display:flex; align-items:center;
  opacity:0; visibility:hidden;
  transition:opacity .5s ease;
  pointer-events:none;
}
.launch-bar-slide.is-active{
  opacity:1; visibility:visible;
  pointer-events:auto;
}
.launch-bar-inner{
  display:flex; align-items:center; gap:10px;
  width:100%;
}
.launch-bar-eyebrow{
  font-family:"Sharp Grotesk",system-ui,sans-serif;
  font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--lima);
  flex:none;
}
.launch-bar-text{
  margin:0;
  font-size:13.5px; line-height:1.4;
  color:var(--ink-on-navy);
}
.launch-bar-text a{
  color:var(--lima);
  text-decoration:underline;
  text-underline-offset:2px;
}
.launch-bar-close{
  position:absolute; right:var(--gutter); top:50%; transform:translateY(-50%);
  z-index:2;
  background:none; border:0; cursor:pointer;
  color:var(--muted-on-navy);
  font-size:18px; line-height:1;
  padding:6px;
}
.launch-bar-close:hover{color:var(--ink-on-navy);}

@media (max-width:640px){
  .launch-bar-track{height:auto; min-height:52px;}
  .launch-bar-slide{position:static; opacity:1; visibility:visible; display:none;}
  .launch-bar-slide.is-active{display:flex;}
  .launch-bar-inner{padding:10px var(--gutter); padding-right:40px;}
  .launch-bar-text{font-size:13px;}
}

@media (prefers-reduced-motion: reduce){
  .launch-bar-slide{transition:none;}
}

/* ---------- hero ---------- */
.hero{
  background:var(--navy); color:var(--ink-on-navy);
  padding:76px 0 0;
  position:relative; overflow:hidden;
}
.hero .wrap{
  display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;
  padding-bottom:64px;
}
.hero .eyebrow{color:var(--lima); margin-bottom:18px;}
.hero h1{
  font-size:clamp(34px,4.6vw,54px);
  line-height:1.06;
  color:#fff;
}
.hero p.lead{
  margin:22px 0 32px;
  font-size:17px; line-height:1.65;
  color:var(--muted-on-navy);
  max-width:52ch;
}
.hero .cta-row{display:flex; flex-wrap:wrap; gap:14px;}

.hero-visual{
  position:relative; aspect-ratio:4/5; border-radius:var(--radius);
  background:var(--navy-900);
  overflow:hidden;
  border:1px solid rgba(234,240,244,.12);
}
.hero-visual video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:saturate(.9) brightness(.85);
}
.hero-visual::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,13,26,0) 45%, rgba(0,13,26,.75) 100%);
}
.hero-visual .tag{
  position:absolute; left:16px; bottom:16px; z-index:2;
  font-family:"Sharp Grotesk"; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--lima);
}
.hero-visual .corner{position:absolute; width:22px; height:22px; z-index:2;}
.hero-visual .corner.tl{top:14px; left:14px; border-top:2px solid var(--lima); border-left:2px solid var(--lima);}
.hero-visual .corner.br{bottom:14px; right:14px; border-bottom:2px solid var(--lima); border-right:2px solid var(--lima);}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:minmax(0,1fr); padding-bottom:40px;}
  .hero-visual{aspect-ratio:16/10;}
}

/* ---------- banner carousel (TÁTICO — remover junto com a campanha, combinar com Diego) ---------- */
.banner-carousel{
  position:relative;
  background:var(--navy);
  overflow:hidden;
  padding:0;
}
.banner-carousel-track{
  position:relative;
  height:clamp(320px, 32vw, 420px);
}
.banner-carousel-slide{
  position:absolute; inset:0;
  display:flex; align-items:center;
  opacity:0; visibility:hidden;
  transition:opacity .6s ease;
  pointer-events:none;
  background:var(--bc-bg, none) right center/cover no-repeat, var(--navy-900);
}
.banner-carousel-slide.is-active{
  opacity:1; visibility:visible;
  pointer-events:auto;
}
.banner-carousel-slide::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(0,13,26,.82) 0%, rgba(0,13,26,.55) 45%, rgba(0,13,26,.15) 100%);
}
.banner-carousel-inner{
  position:relative; z-index:2;
  max-width:560px;
  padding-bottom:44px;
}
.banner-carousel-eyebrow{color:var(--lima); margin-bottom:14px; display:block;}
.banner-carousel-headline{
  font-family:"Sharp Grotesk",system-ui,sans-serif;
  font-weight:700; letter-spacing:-.01em;
  font-size:clamp(22px, 2.6vw, 32px);
  line-height:1.14;
  color:#fff;
  max-width:20ch;
}
.banner-carousel-support{
  margin-top:12px;
  max-width:54ch;
  color:var(--muted-on-navy);
  font-size:15px;
  line-height:1.5;
}
.banner-carousel-cta{margin-top:20px;}

/* Série editorial: imagem conceitual em tela cheia, copy viva sobre campo quieto. */
.banner-carousel-slide--campaign{
  background-position:center center;
}
.banner-carousel-slide--campaign::before{
  background:linear-gradient(90deg, rgba(0,13,26,.96) 0%, rgba(0,13,26,.86) 28%, rgba(0,13,26,.42) 50%, rgba(0,13,26,.06) 76%);
}
.banner-carousel-slide--campaign .banner-carousel-inner{
  width:100%;
  max-width:var(--max);
}
.banner-carousel-slide--campaign .banner-carousel-eyebrow{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}
.banner-carousel-slide--campaign .banner-carousel-eyebrow::before{
  content:"";
  width:42px;
  height:3px;
  background:var(--lima);
}
.banner-carousel-slide--campaign .banner-carousel-headline{
  max-width:24ch;
  font-size:clamp(27px, 3vw, 42px);
  line-height:1.06;
  text-shadow:0 2px 22px rgba(0,13,26,.28);
}
.banner-carousel-slide--campaign .banner-carousel-support{
  max-width:54ch;
  color:rgba(234,240,244,.78);
}
.banner-carousel-slide--campaign .banner-carousel-cta .btn-primary{
  background:var(--gelo);
  border-color:var(--gelo);
  color:var(--navy);
}
.banner-carousel-slide--campaign .banner-carousel-cta .btn-primary:hover{
  background:#fff;
  border-color:#fff;
}

.banner-carousel-dots{
  position:absolute; left:max(var(--gutter), calc((100vw - var(--max))/2 + var(--gutter))); bottom:18px; z-index:3;
  display:flex; gap:10px;
  padding:9px 11px;
  background:rgba(0,24,46,.92);
}
.banner-carousel-dot{
  width:8px; height:8px; border-radius:50%;
  border:1.5px solid rgba(234,240,244,.4);
  background:transparent; padding:0; cursor:pointer;
  transition:background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.banner-carousel-dot:hover{border-color:var(--ink-on-navy);}
.banner-carousel-dot.is-active{
  background:var(--lima); border-color:var(--lima); transform:scale(1.15);
}
.banner-carousel-dot:focus-visible{
  outline:2px solid var(--lima); outline-offset:2px;
}

@media (max-width:640px){
  .banner-carousel-track{height:340px;}
  .banner-carousel-slide--campaign{background-position:32% center;}
  .banner-carousel-slide--campaign::before{background:linear-gradient(90deg, rgba(0,13,26,.97) 0%, rgba(0,13,26,.9) 72%, rgba(0,13,26,.56) 100%);}
  .banner-carousel-headline{font-size:20px; max-width:22ch;}
  .banner-carousel-support{font-size:14px; max-width:36ch;}
  .banner-carousel-cta{margin-top:16px;}
  .banner-carousel-cta .btn{padding:10px 16px; font-size:13px;}
  .banner-carousel-inner{padding-bottom:38px; padding-right:24px;}
  .banner-carousel-slide--campaign .banner-carousel-headline{font-size:23px; max-width:23ch;}
  .banner-carousel-slide--campaign .banner-carousel-support{font-size:13.5px; max-width:39ch;}
  .banner-carousel-slide--campaign .banner-carousel-eyebrow::before{width:28px;}
}

@media (prefers-reduced-motion: reduce){
  .banner-carousel-slide{transition:none;}
}

/* ---------- section headings ---------- */
.section-head{max-width:64ch; margin-bottom:44px;}
.section-head .eyebrow{color:var(--navy-700);}
.on-dark .section-head .eyebrow{color:var(--lima);}
.section-head h2{font-size:clamp(24px,3.2vw,34px); margin-top:14px;}
.section-head p{margin-top:14px; font-size:15.5px; color:var(--muted-on-gelo); max-width:56ch;}
.on-dark .section-head p{color:var(--muted-on-navy);}
.on-dark .section-head h2{color:#fff;}

.on-dark{background:var(--navy); color:var(--ink-on-navy);}
.on-light{background:var(--gelo);}

/* ---------- spec list (ficha técnica) ---------- */
/* Substitui o padrão de card SaaS (ícone + título + parágrafo em caixa) por
   listagem tabular, mais próxima de catálogo técnico industrial. */
.spec-list{border-top:1.5px solid var(--navy);}
.on-dark .spec-list{border-top-color:rgba(234,240,244,.2);}
.spec-row{
  display:grid; grid-template-columns:34px 220px 1fr; gap:22px; align-items:start;
  padding:24px 0; border-bottom:1px solid var(--cinza);
}
.on-dark .spec-row{border-bottom-color:rgba(234,240,244,.14);}
.spec-row .spec-icon{width:22px; height:22px; color:var(--lima); margin-top:2px;}
.on-light .spec-row .spec-icon{color:var(--navy);}
.spec-row .spec-icon svg{width:100%; height:100%;}
.spec-row .spec-tag{
  font-family:"Sharp Grotesk"; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted-on-gelo); margin-bottom:6px;
}
.on-dark .spec-row .spec-tag{color:var(--muted-on-navy);}
.spec-row h3,.spec-row h4{font-size:17px;}
.on-dark .spec-row h3,.on-dark .spec-row h4{color:#fff;}
.spec-row p{font-size:13.5px; line-height:1.6; color:var(--muted-on-gelo); margin:0; max-width:52ch;}
.on-dark .spec-row p{color:var(--muted-on-navy);}
.spec-row .badge{margin-left:10px;}
.spec-row.is-future{opacity:.62;}
.spec-row.no-icon{grid-template-columns:230px 1fr;}
.spec-row.no-icon h4{font-family:"Sharp Grotesk"; font-weight:600; font-size:15.5px;}
@media (max-width:680px){
  .spec-row{grid-template-columns:26px 1fr; row-gap:6px;}
  .spec-row p{grid-column:2;}
  .spec-row.no-icon{grid-template-columns:1fr; row-gap:6px;}
  .spec-row.no-icon p{grid-column:1;}
}

/* ---------- segments (usa .spec-list / .spec-row, ver acima) ---------- */

/* ---------- proof / video grid ---------- */
.proof-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.proof-card{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:var(--navy-900); aspect-ratio:4/3;
}
.proof-card video{width:100%; height:100%; object-fit:cover;}
.proof-card .label{
  position:absolute; left:0; right:0; bottom:0;
  padding:14px 16px 12px;
  background:linear-gradient(0deg, rgba(0,13,26,.92), transparent);
  font-family:"Sharp Grotesk"; font-weight:600; font-size:13.5px; color:#fff;
}
.proof-names{
  margin-top:22px; display:flex; flex-wrap:wrap; gap:10px 24px;
}
.proof-names span{
  font-family:"Sharp Grotesk"; font-size:12.5px; letter-spacing:.04em;
  color:var(--muted-on-navy);
}
@media (max-width:860px){ .proof-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .proof-grid{grid-template-columns:1fr;} }

/* ---------- services: usa .spec-list / .spec-row (ver acima) ---------- */
.badge{
  font-family:"Sharp Grotesk"; font-size:10px; letter-spacing:.08em;
  background:var(--navy); color:var(--lima); padding:3px 8px; border-radius:2px;
  display:inline-block;
}

/* ---------- diff / why ajato: usa .spec-list / .spec-row.no-icon (ver acima) ---------- */

/* ---------- accordion ---------- */
.accordion{border-top:1px solid rgba(0,24,46,.12);}
.acc-item{border-bottom:1px solid rgba(0,24,46,.12);}
.acc-item button{
  all:unset; cursor:pointer; width:100%;
  display:flex; justify-content:space-between; align-items:center;
  padding:20px 2px; font-family:"Sharp Grotesk"; font-weight:600; font-size:16px;
}
.acc-item .plus{font-family:"Sharp Grotesk"; color:var(--navy-700); font-size:20px; font-weight:400;}
.acc-item .msg{
  display:grid; grid-template-rows:0fr; transition:grid-template-rows .25s ease;
}
.acc-item .msg > div{
  overflow:hidden; min-height:0;
  font-size:14px; color:var(--muted-on-gelo); line-height:1.6; padding:0 2px;
}
.acc-item[data-open="true"] .msg{grid-template-rows:1fr;}
.acc-item[data-open="true"] .msg > div{padding-bottom:18px;}

/* ---------- final cta ---------- */
.final-cta{
  background:var(--navy); color:#fff; text-align:center;
  padding:80px 0;
}
.final-cta h2{font-size:clamp(24px,3.4vw,36px); max-width:22ch; margin:0 auto 26px;}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-900); color:#fff;}
.site-footer .wrap{padding:64px var(--gutter) 28px;}
.footer-top{
  display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px;
  padding-bottom:36px; border-bottom:1px solid rgba(234,240,244,.12);
}
.footer-brand img{height:24px; margin-bottom:16px;}
.footer-brand p{font-size:13px; color:var(--muted-on-navy); max-width:32ch; line-height:1.6;}
.footer-col h5{
  font-family:"Sharp Grotesk"; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted-on-navy); margin-bottom:14px;
}
.footer-col li{font-size:13.5px; margin-bottom:10px; color:#D7DEE3;}
.footer-col a:hover{color:var(--lima);}
.footer-bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px;
  padding-top:22px; font-size:11.5px; color:var(--muted-on-navy);
}
@media (max-width:860px){ .footer-top{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .footer-top{grid-template-columns:1fr;} }

/* ---------- page hero (inner pages) ---------- */
.page-hero{background:var(--navy); color:#fff; padding:64px 0 48px;}
.page-hero .eyebrow{color:var(--lima); margin-bottom:14px;}
.page-hero h1{font-size:clamp(28px,4vw,42px); color:#fff;}
.page-hero p{margin-top:16px; font-size:16px; color:var(--muted-on-navy); max-width:60ch;}

/* ---------- form ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px 22px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1/-1;}
.field label{font-family:"Sharp Grotesk"; font-weight:600; font-size:12.5px; color:var(--navy-700);}
.field select,.field input,.field textarea{
  font-family:"Inter"; font-size:14px; color:var(--navy);
  border:1.5px solid var(--cinza); background:#fff; border-radius:var(--radius);
  padding:12px 14px; outline:none; transition:border-color .15s ease;
}
.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--navy-700);}
.field textarea{resize:vertical; min-height:100px;}
.field select{
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231F3A54' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:14px;
  padding-right:38px; cursor:pointer;
}
@media (max-width:640px){ .form-grid{grid-template-columns:1fr;} }

.contact-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:20px;}
.contact-card{background:#fff; border:1px solid rgba(0,24,46,.08); padding:22px; border-radius:var(--radius);}
.contact-card .k{font-family:"Sharp Grotesk"; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-on-gelo);}
.contact-card .v{font-family:"Sharp Grotesk"; font-weight:600; font-size:16px; margin-top:8px;}
@media (max-width:760px){ .contact-cards{grid-template-columns:1fr;} }

/* ---------- comparison / process ---------- */
.process-steps{display:flex; gap:0; counter-reset:step;}
.process-steps .step{flex:1; position:relative; padding:0 20px 0 0;}
.process-steps .step:not(:last-child)::after{
  content:""; position:absolute; top:11px; right:0; width:calc(100% - 40px);
  border-top:1.5px dashed var(--cinza);
}
.process-steps .step .dot{
  width:22px; height:22px; border-radius:50%; background:var(--navy);
  color:var(--lima); font-family:"Sharp Grotesk"; font-weight:700; font-size:11px;
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.process-steps .step h4{font-size:14.5px; margin-bottom:6px;}
.process-steps .step p{font-size:13px; color:var(--muted-on-gelo); margin:0; line-height:1.55;}
@media (max-width:760px){
  .process-steps{flex-direction:column; gap:24px;}
  .process-steps .step::after{display:none;}
}

.pull-quote{
  border-top:1px solid var(--cinza); border-bottom:1px solid var(--cinza);
  padding:22px 0; margin:28px 0; max-width:46ch;
}
.pull-quote p{
  font-family:"Sharp Grotesk"; font-size:19px; font-weight:600; color:var(--navy);
  line-height:1.4; margin:0;
}

/* ---------- hub / link-in-bio (QR code only, fora do menu do site) ---------- */
/* Paleta invertida a pedido do Diego: lima como fundo, navy como cor de
   aplicação — exceção pontual, só nesta página isolada (DNA-v2 pede lima
   só como acento, nunca em área grande nas páginas do site principal). */
.hub-page{background:var(--lima);}
.hub-wrap{
  max-width:420px; margin:0 auto; min-height:100vh;
  padding:56px var(--gutter) 40px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.hub-logo{height:112px; width:auto; margin-bottom:40px;}
.hub-links{display:flex; flex-direction:column; gap:14px; width:100%;}
.hub-link{
  display:flex; align-items:center; gap:14px;
  width:100%; padding:16px 18px;
  border:1.5px solid rgba(0,24,46,.35); border-radius:var(--radius);
  background:transparent; color:var(--navy);
  transition:border-color .18s ease, background-color .18s ease, color .18s ease;
}
.hub-link:hover{border-color:var(--navy); background:var(--navy); color:var(--lima);}
.hub-link-icon{width:20px; height:20px; flex:none; color:currentColor;}
.hub-link-icon svg{width:100%; height:100%;}
.hub-link-label{
  font-family:"Sharp Grotesk"; font-weight:500; font-size:14.5px;
  text-align:left; color:currentColor; word-break:break-word;
}
.hub-footer{margin-top:48px;}
.hub-footer p{
  font-size:11.5px; line-height:1.7; color:rgba(0,24,46,.65); margin:0;
}
