/* ==========================================================================
   3M Publicidade — site institucional
   Folha de estilo compartilhada por todas as páginas.

   REGRA DO RESPIRO: todo margin/padding de layout usa 25, 50 ou 75px
   (var(--space-1|2|3)). Exceções permitidas: padding interno de botão,
   gap entre ícone e rótulo, line-height.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root{
  --brand:#12744c;
  --brand-ink:#0c563a;
  --brand-deep:#0a3f2b;
  --accent:#6fe3a6;
  --gold:#f4b13d;

  --bg:#ffffff;
  --bg-soft:#f5f7f6;
  --card:#ffffff;
  --text:#0f1712;
  --muted:#5b6a62;
  --line:#e4e9e6;

  --r-sm:10px; --r-md:16px; --r-lg:24px; --r-pill:999px;
  --sh-sm:0 1px 2px rgba(10,63,43,.06), 0 1px 3px rgba(10,63,43,.08);
  --sh-md:0 8px 24px rgba(10,63,43,.08);
  --sh-lg:0 24px 60px rgba(10,63,43,.12);

  /* REGRA DO RESPIRO — use SOMENTE estes três valores */
  --space-1:25px; --space-2:50px; --space-3:75px;
  --container:1180px;

  --font-title:"Sora", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --head-h:88px;          /* altura do header (não é padding: pode variar) */
  --ease:cubic-bezier(.16,1,.3,1);
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}
body{overflow-x:hidden;max-width:100vw}

/* Barra de rolagem com a identidade visual da 3M */
html{scrollbar-width:thin;scrollbar-color:var(--brand) var(--bg-soft)}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--bg-soft)}
::-webkit-scrollbar-thumb{background:var(--brand);border-radius:var(--r-pill);border:3px solid var(--bg-soft)}
::-webkit-scrollbar-thumb:hover{background:var(--brand-ink)}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:1.05rem;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-title);font-weight:700;line-height:1.1;margin:0;letter-spacing:-.02em}
p,figure,blockquote{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--space-1)}
.section{padding-block:var(--space-2)}
.section--tight-top{padding-top:var(--space-1)}
.section--pull-up{padding-top:10px}
.section--soft{background:var(--bg-soft);border-block:1px solid var(--line)}
.section--line{border-top:1px solid var(--line)}
.section--deep{background:var(--brand-deep);color:#eef5f1}
.section--deep .eyebrow{color:#bfe6cf}
.section--deep .lead{color:#cfe3d8}

/* ------------------------------------------- ilustração "Nossa Missão" */
.mission{position:relative;overflow:hidden}
.mission .container{position:relative;z-index:1}

/* Nossa Missão — conteúdo centralizado */
.mission-center{max-width:720px;margin-inline:auto;text-align:center}
.mission-title{font-size:clamp(2rem,4.2vw,3rem);line-height:1.12;margin-top:10px}
.mission-cta{margin-top:var(--space-2);display:inline-block}
@media (max-width:600px){.mission-cta{margin-top:20px}}

.ig-cta{margin-top:var(--space-2);display:flex;justify-content:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sr-only:focus{
  position:fixed;top:14px;left:14px;z-index:100;width:auto;height:auto;clip:auto;
  padding:12px 18px;background:var(--brand);color:#fff;border-radius:var(--r-pill);box-shadow:var(--sh-md);
}
/* âncoras não ficam escondidas atrás do header */
section[id],div[id],h2[id]{scroll-margin-top:100px}

/* Cabeçalho de seção */
.section-head{max-width:720px;margin-bottom:var(--space-2)}
.section-head--split{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}
.section-head--split .blogsearch{margin-bottom:0;flex:0 0 340px;max-width:100%}
@media (max-width:700px){.section-head--split{align-items:stretch}}
.section-head--center{margin-inline:auto}
/* no mobile os títulos ficam à esquerda (mais fácil de ler em coluna estreita);
   a centralização só entra a partir daqui, em telas maiores */
@media (min-width:640px){
  .section-head--center{text-align:center}
  /* .lead tem max-width próprio (62ch) menor que o do section-head (720px);
     sem isso, a caixa do parágrafo fica presa à esquerda mesmo com o texto
     centralizado dentro dela — dá a impressão de estar "desalinhado" */
  .section-head--center .lead{margin-inline:auto}
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand);margin-bottom:var(--space-1)
}

.section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.lead{margin-top:var(--space-1);color:var(--muted);font-size:1.08rem;max-width:62ch}

/* --------------------------------------------------------------------------
   3. Divisórias
   -------------------------------------------------------------------------- */
.rule{height:1px;background:var(--line);border:0}

/* --------------------------------------------------------------------------
   4. Botões
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:13px 24px;border-radius:var(--r-pill);
  font-weight:500;font-size:1rem;line-height:1.2;text-align:center;
  transition:transform .2s var(--ease), background .2s ease, box-shadow .25s ease, color .2s ease;
}
.btn svg{width:20px;height:20px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--primary{background:var(--brand);color:#fff;box-shadow:var(--sh-sm)}
.btn--primary:hover{background:var(--brand-ink);box-shadow:var(--sh-md)}
.btn--ghost{border:1px solid var(--line);background:var(--card);color:var(--text)}
.btn--ghost:hover{border-color:var(--brand);color:var(--brand-ink)}
.btn--light{background:#fff;color:var(--brand-ink)}
.btn--outline-light{border:1px solid rgba(255,255,255,.4);color:#fff}
.btn--outline-light:hover{background:rgba(255,255,255,.1)}
.btn--wa{background:#12a35c;color:#fff}
.btn--wa:hover{background:#0e8a4d}
.btn--sm{min-height:44px;padding:11px 20px;font-size:.95rem}
.btn--block{width:100%}

/* --------------------------------------------------------------------------
   5. Header + navegação
   -------------------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(150%) blur(12px);
  border-bottom:1px solid transparent;
  transition:box-shadow .25s ease, border-color .25s ease;
  view-transition-name:header;
}
.site-header.is-scrolled{box-shadow:var(--sh-sm);border-bottom-color:var(--line)}
.header__inner{
  position:relative;
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-1);
  height:var(--head-h);transition:height .25s ease;
}
.site-header.is-scrolled .header__inner{height:72px}

.logo{display:inline-flex;align-items:center;gap:10px;view-transition-name:logo}
.logo svg{width:30px;height:32px;color:var(--brand);flex:none}
.logo__name{font-family:var(--font-title);font-weight:700;font-size:1.05rem;letter-spacing:-.02em}
.logo__name span{color:var(--brand)}

/* Navegação desktop */
.nav{display:none}
.nav__list{display:flex;align-items:center;gap:var(--space-1)}
.nav__link{
  position:relative;display:inline-flex;align-items:center;gap:6px;
  padding:8px 2px;font-size:.98rem;font-weight:500;color:var(--text);
}
.nav__link{transition:color .2s ease}
.nav__link:hover,
.nav__item.is-open > .nav__link{color:var(--brand-ink)}
.nav__link[aria-current="page"]{color:var(--brand-ink);font-weight:600}
.nav__link .chev{width:10px;height:10px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .25s ease;flex:none}
.nav__item.is-open .chev{transform:rotate(-135deg) translate(-3px,-3px)}

.panel{
  position:absolute;left:50%;top:calc(100% - 6px);
  transform:translate(-50%,8px);
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-lg);padding:var(--space-1);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s ease, transform .22s var(--ease), visibility .22s;
  z-index:90;
}
.nav__item{position:relative}
.nav__item--mega{position:static}  /* mega-menu centraliza no container, não no item */
.nav__item.is-open .panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.panel--mega{width:min(1000px,calc(100vw - 50px));left:50%}
.panel__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1)}
.panel__col h3{font-size:.95rem}
.panel__col h3 a{display:inline-flex;align-items:center;gap:5px}
.panel__col h3 a svg{width:12px;height:12px;color:var(--brand);transition:transform .2s ease}
.panel__col h3 a:hover{color:var(--brand-ink)}
.panel__col h3 a:hover svg{transform:translateX(3px)}
.panel__col p{font-size:.85rem;color:var(--muted);margin-top:6px;line-height:1.45}
.panel__col ul{margin-top:14px;display:grid;gap:2px}
.panel__col li a{display:block;padding:7px 10px;margin-inline:-10px;border-radius:var(--r-sm);font-size:.92rem;color:var(--muted);transition:background .2s ease,color .2s ease}
.panel__col li a:hover{background:var(--bg-soft);color:var(--brand-ink)}
.panel--simple{width:290px;padding:14px}
.panel--simple ul{display:grid;gap:2px}
.panel--simple li a{display:block;padding:10px 12px;border-radius:var(--r-sm);font-size:.94rem;transition:background .2s ease,color .2s ease}
.panel--simple li a:hover{background:var(--bg-soft);color:var(--brand-ink)}
.panel--simple .panel__note{display:block;font-size:.82rem;color:var(--muted);margin-top:2px}
.panel__foot{margin-top:var(--space-1);padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.panel__foot p{font-size:.9rem;color:var(--muted)}

.header__cta{display:none}

/* Botão do menu mobile */
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:48px;height:48px;align-items:center;border-radius:var(--r-sm)}
.burger span{width:22px;height:2px;background:var(--text);transition:transform .3s var(--ease),opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Drawer mobile */
.drawer{
  position:fixed;inset:0;z-index:70;background:var(--bg);
  padding-top:var(--head-h);
  transform:translateX(100%);visibility:hidden;
  transition:transform .35s var(--ease),visibility .35s;
  overflow-y:auto;overscroll-behavior:contain;
}
.drawer.is-open{transform:translateX(0);visibility:visible}
.drawer__inner{padding-block:var(--space-1) var(--space-3)}
.drawer__link{display:block;padding:14px 0;font-family:var(--font-title);font-weight:700;font-size:1.15rem;border-bottom:1px solid var(--line)}
.acc{border-bottom:1px solid var(--line)}
.acc__btn{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;font-family:var(--font-title);font-weight:700;font-size:1.15rem;text-align:left}
.acc__btn .plus{position:relative;width:16px;height:16px;flex:none}
.acc__btn .plus::before,.acc__btn .plus::after{content:"";position:absolute;inset:50% 0 auto 0;height:2px;background:var(--brand);transition:transform .3s var(--ease)}
.acc__btn .plus::after{transform:rotate(90deg)}
.acc__btn[aria-expanded="true"] .plus::after{transform:rotate(0)}
.acc__panel{overflow:hidden;height:0;transition:height .3s var(--ease)}
.acc__panel ul{padding-bottom:var(--space-1);display:grid;gap:2px}
.acc__panel a{display:block;padding:9px 0;color:var(--muted);font-size:.98rem}
.acc__panel a:hover{color:var(--brand-ink)}
.acc__panel .acc__cat{color:var(--text);font-weight:500}
.drawer__cta{margin-top:var(--space-1);display:grid;gap:14px}

body.is-locked{overflow:hidden}

/* --------------------------------------------------------------------------
   6. Hero
   -------------------------------------------------------------------------- */
.hero{position:relative;overflow:hidden;padding-block:var(--space-3);view-transition-name:hero}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(80px);opacity:.18;z-index:0;pointer-events:none}
.hero::before{width:460px;height:460px;background:var(--brand);top:-160px;right:-120px}
.hero::after{width:380px;height:380px;background:var(--accent);bottom:-200px;left:-140px}
.hero > *{position:relative;z-index:1}
.hero__grid{display:grid;gap:var(--space-2);align-items:center}
.hero__solo{max-width:900px;margin-inline:auto;text-align:center}
.hero__solo .hero__sub{margin-inline:auto}
.hero__solo .hero__actions{justify-content:center}
.hero h1{font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.05}
.hero h1.hero__title--sm{font-size:clamp(2.2rem,4.3vw,3.2rem)}
@media (max-width:767px){.hero h1.hero__title--about{font-size:1.65rem;line-height:1.2}}
@media (max-width:359px){.hero h1.hero__title--about{font-size:1.4rem}}
.hero .eyebrow{font-size:.86rem}

/* --------------------------------------- medalhões (Autoridade no hero) */
.medallions{
  --medal-size:60px; --medal-img:34px; --medal-ring-gap:7px;
  position:relative;display:flex;justify-content:space-between;gap:var(--space-2);
  max-width:560px;margin:var(--space-2) auto 0;
}
.medallions__track{position:absolute;top:calc(var(--medal-size) / 2);left:16.6667%;right:16.6667%;height:1.5px;background:var(--brand);opacity:.6;z-index:0}
.medallions__node{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.medallions__node strong{font-family:var(--font-title);font-size:.82rem;margin-top:12px}
.medallions__node span{font-size:.72rem;color:var(--muted);line-height:1.45;max-width:17ch}
.medallions__badge-wrap{position:relative;width:var(--medal-size);height:var(--medal-size);display:flex;align-items:center;justify-content:center;flex:none}
.medallions__badge{position:relative;z-index:1;width:var(--medal-size);height:var(--medal-size);border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-sm);border:1px solid var(--line)}
.medallions__badge img{width:var(--medal-img);height:var(--medal-img);object-fit:contain;position:absolute;inset:0;margin:auto}
.medallions__ring{position:absolute;inset:calc(var(--medal-ring-gap) * -1);border-radius:50%;border:1.2px dashed var(--brand);opacity:.5;animation:medallion-spin 14s linear infinite}
@keyframes medallion-spin{to{transform:rotate(360deg)}}
@media (max-width:639px){
  .medallions{--medal-size:50px;--medal-img:27px;--medal-ring-gap:6px;gap:16px;max-width:380px}
  .medallions__node strong{font-size:.7rem;margin-top:9px}
  .medallions__node span{font-size:.63rem;line-height:1.4;max-width:13ch}

  /* Nossa Missão: colado na borda inferior da seção, não flutuando no meio */
  .mission-bars{top:auto;bottom:0;transform:translateX(-50%);height:55%}
}
@media (prefers-reduced-motion:reduce){.medallions__ring{animation:none}}

.medallions--pair{max-width:360px;margin-left:0;margin-right:auto;justify-content:flex-start;gap:var(--space-3)}
.medallions--pair .medallions__track{left:calc(var(--medal-size) / 2);right:calc(var(--medal-size) / 2 + var(--space-3))}
.medallions--pair .medallions__node{flex:none}

.medallions--five{max-width:760px;gap:var(--space-1)}
.medallions--five .medallions__track{left:10%;right:10%}
.medallions--five .medallions__node--center strong{color:var(--brand-ink)}
@media (max-width:820px){
  .medallions--five{
    max-width:280px;flex-direction:column;align-items:center;gap:0;
    --medal-size:46px;--medal-img:24px;--medal-ring-gap:5px;
  }
  .medallions--five .medallions__track{display:none}
  /* Cada tópico: ícone centralizado em cima, título e subtítulo abaixo
     (empilhados), com uma linha tracejada vertical ligando ao próximo
     tópico — igual ao padrão de "roadmap" usado em Como Funciona. */
  .medallions--five .medallions__node{
    flex:none;flex-direction:column;align-items:center;text-align:center;gap:6px;
    position:relative;padding-bottom:34px;width:100%;
  }
  .medallions--five .medallions__node:last-child{padding-bottom:0}
  .medallions--five .medallions__node:not(:last-child)::after{
    content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
    width:2px;height:34px;opacity:.55;
    background:repeating-linear-gradient(var(--brand) 0 5px,transparent 5px 10px);
  }
  .medallions--five .medallions__node strong,
  .medallions--five .medallions__node span{display:block;margin-top:0}
  .medallions--five .medallions__node span{max-width:26ch}
  .medallions--five .medallions__node--center{order:1}
  .medallions--five .medallions__node--google{order:2}
  .medallions--five .medallions__node--meta{order:3}
  .medallions--five .medallions__node--tiktok{order:4}
  .medallions--five .medallions__node--youtube{order:5}
}

/* ------------------------------------------------- partículas do hero */
.hero__particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.particle{position:absolute;width:0;height:0;pointer-events:none}
.particle__dot,.particle__ring{
  position:absolute;left:0;top:0;width:8px;height:8px;margin:-4px 0 0 -4px;
  border-radius:50%;opacity:0;
}
.particle__dot{background:var(--gold);animation:particle-rise 3.6s ease-in-out var(--delay,0s) infinite}
.particle__ring{border:1px solid var(--gold);background:transparent;animation:particle-ring 3.6s ease-out var(--delay,0s) infinite}
.particle--accent .particle__dot{background:var(--accent)}
.particle--accent .particle__ring{border-color:var(--accent)}

@keyframes particle-rise{
  0%{opacity:0;transform:translateY(0)}
  15%{opacity:.75}
  80%{opacity:0}
  100%{opacity:0;transform:translateY(-70px)}
}
@keyframes particle-ring{
  0%{opacity:0;transform:scale(.4)}
  20%{opacity:.5}
  100%{opacity:0;transform:scale(2.4)}
}
@media (prefers-reduced-motion:reduce){
  .particle__dot,.particle__ring{animation:none;opacity:0}
}
.hero__sub{
  margin-top:var(--space-1);font-size:1.125rem;color:var(--muted);max-width:56ch;
  /* pode ser aplicada a um <h2> semântico (subtítulo real, não decorativo);
     reseta a herança de título para manter a leitura de texto corrido */
  font-family:var(--font-body);font-weight:400;letter-spacing:normal;line-height:1.6;
}
.hero__actions{margin-top:var(--space-2);display:flex;flex-wrap:wrap;gap:14px}
/* seta discreta de rolagem — no fluxo normal, sempre depois do texto
   (posicionamento absoluto causava sobreposição quando o título/subtítulo
   quebrava em mais linhas, como no mobile) */
.hero__scroll{
  display:grid;place-items:center;margin-top:25px;margin-inline:auto;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);color:var(--muted);
  transition:border-color .2s ease,color .2s ease;
}
.hero__scroll:hover{border-color:var(--brand);color:var(--brand-ink)}
.hero__scroll svg{width:16px;height:16px}
/* quebra de linha proposital em headlines — some no mobile, onde o texto
   já quebra naturalmente, e evitaria linhas curtas demais */
br.lg{display:none}
@media (min-width:640px){br.lg{display:inline}}

/* Inverso do br.lg: quebra visível só no mobile, some a partir de 640px.
   Usado quando o padrão de quebra desejado é DIFERENTE entre mobile e
   desktop (não apenas "remover no mobile"). */
br.sm{display:inline}
@media (min-width:640px){br.sm{display:none}}
/* trecho de destaque em verde dentro de um título — quebra a monotonia do preto */
.accent{color:var(--brand)}
.js .hero__scroll{animation:scrollcue 2.2s ease-in-out infinite}
@keyframes scrollcue{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* Hero das páginas internas (shells) */
.pagehero{position:relative;overflow:hidden;padding-block:var(--space-3);background:var(--bg-soft);border-bottom:1px solid var(--line);view-transition-name:hero}
.pagehero::before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:var(--brand);filter:blur(80px);opacity:.13;top:-220px;right:-140px;pointer-events:none}
.pagehero > *{position:relative;z-index:1}
.pagehero > .hero__particles{position:absolute;inset:0;z-index:0}
.pagehero h1{font-size:clamp(2.1rem,5vw,3.4rem);max-width:20ch}
.pagehero__sub{margin-top:var(--space-1);color:var(--muted);font-size:1.12rem;max-width:60ch}
.pagehero__actions{margin-top:var(--space-2);display:flex;flex-wrap:wrap;gap:14px}
.pagehero--center{text-align:center}
.pagehero--center .breadcrumb ol{justify-content:center}
.pagehero--center h1{margin-inline:auto}
.pagehero--center .pagehero__sub{margin-inline:auto}
.pagehero--center .pagehero__actions{justify-content:center}

.breadcrumb{font-size:.85rem;color:var(--muted);margin-bottom:var(--space-1)}
.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.breadcrumb--center ol{justify-content:center}
.breadcrumb a:hover{color:var(--brand-ink)}
.breadcrumb li[aria-current]{color:var(--text)}

/* --------------------------------------------------------------------------
   7. Faixa de credibilidade
   -------------------------------------------------------------------------- */
.strip{border-block:1px solid var(--line);background:var(--bg-soft)}
.strip__grid{display:grid;gap:var(--space-1);padding-block:var(--space-2)}
.strip__item{display:flex;gap:14px;align-items:flex-start}
.strip__item svg{width:22px;height:22px;color:var(--brand);flex:none;margin-top:2px}
.strip__item img{height:24px;width:auto;max-width:110px;object-fit:contain;flex:none;margin-top:2px}
.strip__item img.strip__item-badge{height:34px;margin-top:0}
/* 3M e Google maiores também no desktop */
.strip__item-logo{height:34px}
.strip__item-badge--google{height:44px}
/* quando não tem título em texto (o selo já faz esse papel), o parágrafo
   sobe um pouco — sem o "strong" acima, sobrava respiro onde ele estava */
.strip__item-badge + div{margin-top:-5px}
.strip__item strong{display:block;font-family:var(--font-title);font-size:1rem;font-weight:700}
.strip__item span{font-size:.92rem;color:var(--muted);line-height:1.5}

/* --------------------------------------------------------------------------
   7b. Faixa de transição em movimento
   -------------------------------------------------------------------------- */
.ticker{
  position:relative;
  background:var(--brand-deep);color:#eaf4ee;overflow:hidden;
  padding-block:14px; /* exceção à regra do respiro: faixa decorativa fina, não bloco de layout */
}
/* Sem esmaecimento nas bordas: a versão anterior usava uma sobreposição em
   gradiente para a faixa "sumir" suavemente nas pontas, mas gradientes
   com transparência em cima de fundo escuro têm se mostrado instáveis
   entre placas de vídeo — em alguns computadores pintavam um bloco claro
   em vez de esmaecer. O texto agora é cortado direto pela borda da faixa,
   sem risco de artefato visual, com o mesmo efeito de "fita contínua". */
.ticker__track{
  display:flex;width:max-content;
  animation:ticker 46s linear infinite;
  transform:translateZ(0); /* força camada própria: evita engasgo no arranque da animação */
  backface-visibility:hidden;
}
.ticker:hover .ticker__track{animation-play-state:paused}
.ticker__list{display:flex;align-items:center;flex:none}
.ticker__list li{
  display:flex;align-items:center;gap:10px;padding-inline:var(--space-1);
  font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  flex:none;
}
.ticker__list li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}
@keyframes ticker{to{transform:translate3d(-50%,0,0)}}

/* --------------------------------------------------------------------------
   8. Grids e cards
   -------------------------------------------------------------------------- */
.grid{display:grid;gap:var(--space-1)}
.grid--2{grid-template-columns:1fr}
@media (min-width:640px){
  .grid--2-reverse > :first-child{order:2}
  .grid--2-reverse > :last-child{order:1}
}
.grid--after-rule{margin-top:var(--space-2)}
.grid--3{grid-template-columns:1fr}
.grid--4{grid-template-columns:1fr}

.card{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--space-1);
  transition:transform .3s var(--ease),box-shadow .3s ease,border-color .3s ease;
}
.card::after{
  content:"";position:absolute;left:var(--space-1);right:var(--space-1);bottom:0;height:2px;
  background:var(--brand);transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
a.card:hover,.card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:#d7e2dc}
.card:hover::after{transform:scaleX(1)}
.card__icon{width:44px;height:44px;border-radius:var(--r-sm);background:rgba(18,116,76,.08);display:grid;place-items:center;color:var(--brand);margin-bottom:var(--space-1)}
.card__icon svg{width:22px;height:22px}
.card__icon--brand{width:56px;height:56px;border-radius:var(--r-md);background:transparent;padding:0}
.card__icon--brand img{width:100%;height:100%;object-fit:contain}
.card__icon--brand-google{width:104px}
.card__icon--brand-tiktok img,.card__icon--brand-linkedin img{width:72%;height:72%;margin:14%}

/* variação sem o cartão/fundo ao redor do ícone: só o ícone, título e texto */
.grid--bare-icons .card{background:transparent;border:none;box-shadow:none!important;transform:none!important;overflow:visible;border-radius:0}
.grid--bare-icons .card::after{display:none}
.grid--bare-icons .card:hover{transform:none;box-shadow:none;border-color:transparent}
.card h3{font-size:1.2rem}
.card p{margin-top:14px;color:var(--muted);font-size:.98rem}
.card__list{margin-top:var(--space-1);display:grid;gap:8px}
.card__list li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--muted)}
.card__list li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:8px;flex:none}
.card__more{margin-top:auto;padding-top:var(--space-1);display:inline-flex;align-items:center;gap:8px;color:var(--brand-ink);font-weight:500;font-size:.95rem}
.card__more svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.card:hover .card__more svg{transform:translateX(4px)}

/* ------------------------------------------- roadmap "Como Trabalhamos" */
.roadmap{position:relative;padding-bottom:var(--space-1)}

/* ---------- DESKTOP: cards alinhados em fileira, trilha abaixo ---------- */
.roadmap__desktop{display:none}
@media (min-width:900px){
  .roadmap__desktop{display:block;position:relative;padding-top:14px}
  .roadmap__mobile{display:none}
}
.roadmap__flat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch}
.roadmap__flat-item{display:flex;flex-direction:column;align-items:center;text-align:center}
.roadmap__card{
  flex:1;width:100%;z-index:2;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--space-1);box-shadow:var(--sh-md);
  transition:transform .35s var(--ease),box-shadow .35s ease,border-color .35s ease;
}
.roadmap__card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg);border-color:var(--brand)}
.roadmap__card--accent{border-color:var(--brand)}
.roadmap__step{display:block;margin:5px 0;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}
.roadmap__card h3{font-size:1.05rem;margin-top:6px}
.roadmap__card p{margin-top:8px;color:var(--muted);font-size:.9rem;line-height:1.55}
.roadmap__flat-connector{width:2px;height:20px;background:var(--line);flex:none}
.roadmap__stop{
  width:44px;height:44px;border-radius:50%;background:var(--brand);color:#fff;flex:none;
  display:grid;place-items:center;font-family:var(--font-title);font-weight:700;font-size:1.05rem;
  box-shadow:0 4px 12px rgba(18,116,76,.3);position:relative;z-index:2;
}

.roadmap__flat-track{position:relative;height:0}
.roadmap__flat-line{position:absolute;left:12.5%;right:12.5%;bottom:22px;height:2px;z-index:0;background:repeating-linear-gradient(to right,var(--line) 0 6px,transparent 6px 12px)}
.roadmap__flat-logo{
  position:absolute;bottom:0;left:12.5%;width:44px;height:44px;transform:translate(-50%,50%);z-index:3;
  border-radius:50%;background:#fff;border:2px solid var(--brand);
  box-shadow:0 6px 18px rgba(18,116,76,.28);display:grid;place-items:center;
  animation:roadmap-flat-travel 12s ease-in-out infinite;
}
.roadmap__flat-logo svg{width:24px;height:24px;color:var(--brand)}
@keyframes roadmap-flat-travel{
  0%{left:12.5%;opacity:0}
  4%{opacity:1}
  28%{left:37.5%;opacity:1}
  52%{left:62.5%;opacity:1}
  76%{left:87.5%;opacity:1}
  84%{left:87.5%;opacity:0}
  100%{left:87.5%;opacity:0}
}
@media (prefers-reduced-motion:reduce){.roadmap__flat-logo{animation:none;left:12.5%;opacity:1}}

/* ---------- MOBILE: rota vertical, logo avança por scroll ---------- */
.roadmap__mobile{position:relative;padding-left:52px}
.roadmap__mline{position:absolute;left:21px;top:10px;width:2px;background:repeating-linear-gradient(var(--brand) 0 6px,transparent 6px 14px);opacity:.5}
.roadmap__mprogress{position:absolute;left:21px;top:10px;width:2px;background:var(--brand);height:0;transition:height .3s ease;z-index:1}
.roadmap__mlogo{
  position:absolute;left:22px;top:10px;width:42px;height:42px;margin:-21px 0 0 -21px;z-index:3;
  border-radius:50%;background:#fff;border:2px solid var(--brand);box-shadow:0 4px 12px rgba(18,116,76,.28);
  display:grid;place-items:center;transition:top .45s var(--ease);
}
.roadmap__mlogo svg{width:22px;height:22px;color:var(--brand)}
.roadmap__mstop{position:relative;margin-bottom:var(--space-2)}
.roadmap__mstop:last-child{margin-bottom:0}
.roadmap__mnum{
  position:absolute;left:-52px;top:0;width:42px;height:42px;border-radius:50%;
  background:var(--brand);color:#fff;display:grid;place-items:center;
  font-family:var(--font-title);font-weight:700;box-shadow:0 4px 12px rgba(18,116,76,.3);z-index:2;
}
.roadmap__mcard{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:var(--space-1);box-shadow:var(--sh-sm);transition:border-color .35s ease,box-shadow .35s ease;
}
.roadmap__mstop.is-active .roadmap__mcard{border-color:var(--brand);box-shadow:var(--sh-md)}
.roadmap__mstop.is-active .roadmap__mnum{outline:3px solid rgba(18,116,76,.18)}

/* ------------------------------------------- comentários do blog */
.comments__title{display:flex;align-items:center;gap:8px}
.comments__title span{color:var(--muted);font-weight:500;font-size:1rem}
.comments__list{margin-top:var(--space-2);display:grid;gap:var(--space-1)}
.comments__empty{color:var(--muted);font-size:.95rem}
.comment{display:flex;gap:14px;padding:var(--space-1);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
.comment__avatar{flex:none;width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--font-title);font-weight:700;font-size:.9rem}
.comment__head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.comment__head strong{font-family:var(--font-title);font-size:.98rem}
.comment__head span{font-size:.8rem;color:var(--muted)}
.comment__body{margin-top:4px;color:var(--text);font-size:.94rem;line-height:1.6}
.comments__form{margin-top:var(--space-2);max-width:560px}
.comments__form textarea{
  width:100%;min-height:100px;padding:10px 14px;font-family:inherit;font-size:.95rem;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);resize:vertical;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.comments__form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(18,116,76,.14)}

/* ------------------------------------------- ponte dor → solução (Pacotes) */
.bridge{position:relative;padding:var(--space-1) 0}

.bridge__grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:var(--space-3)}
@media (min-width:900px){.bridge__grid{grid-template-columns:1fr 110px 1fr;gap:var(--space-2)}}

/* .bridge__link são conectores decorativos (linhas até o badge central) que só
   fazem sentido no layout desktop de 3 colunas. Sem isto, no mobile eles viram
   filhos "vazios" do grid de 1 coluna e cada um abre uma linha extra com
   gap:var(--space-3) (75px) antes/depois — o "buraco" enorme entre o título e
   os cards de "Onde você está / vai estar". */
.bridge__link{display:none}
@media (min-width:900px){.bridge__link{display:block}}

.bridge__eyebrow--pain{color:#c0392b}
.bridge__eyebrow--solve{color:var(--brand)}

.bridge__cards{display:grid;gap:12px;margin-top:var(--space-1)}
.bridge__card{
  position:relative;display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:14px 18px;box-shadow:var(--sh-sm);
  transition:transform .3s var(--ease),box-shadow .3s ease;
}
.bridge__card:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.bridge__card p{font-size:.95rem;color:var(--text)}
.bridge__icon{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.82rem;font-weight:700}
.bridge__icon--pain{background:rgba(192,57,43,.1);color:#c0392b}
.bridge__icon--solve{background:rgba(18,116,76,.1);color:var(--brand)}

@media (min-width:900px){
  .bridge__cards{position:relative}
  .bridge__cards--pain{padding-right:24px}
  .bridge__cards--solve{padding-left:24px}
  .bridge__spine{position:absolute;width:2px;z-index:0;pointer-events:none;background:repeating-linear-gradient(var(--line) 0 6px,transparent 6px 12px)}
  .bridge__cards--pain .bridge__spine{right:0}
  .bridge__cards--solve .bridge__spine{left:0}
  .bridge__cards--pain .bridge__card::after{
    content:"";position:absolute;top:50%;right:-24px;width:24px;height:2px;transform:translateY(-50%);z-index:0;
    background:repeating-linear-gradient(to right,var(--line) 0 6px,transparent 6px 12px);
  }
  .bridge__cards--solve .bridge__card::after{
    content:"";position:absolute;top:50%;left:-24px;width:24px;height:2px;transform:translateY(-50%);z-index:0;
    background:repeating-linear-gradient(to right,var(--line) 0 6px,transparent 6px 12px);
  }

  /* energia: converge dos cards 1 e 4 até o ponto de encontro, atravessa até o badge,
     transmuta de vermelho pra verde, atravessa pro outro lado e se espalha pros 4 cards */
  .bridge__spine-dot{position:absolute;left:50%;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;opacity:0}
  .bridge__cards--pain .bridge__spine-dot--a{background:#c0392b;box-shadow:0 0 8px rgba(192,57,43,.85);animation:bridge-pain-a 8s linear infinite}
  .bridge__cards--pain .bridge__spine-dot--b{background:#c0392b;box-shadow:0 0 8px rgba(192,57,43,.85);animation:bridge-pain-b 8s linear infinite}
  .bridge__cards--solve .bridge__spine-dot--a{background:var(--accent);box-shadow:0 0 8px rgba(111,227,166,.9);animation:bridge-solve-a 8s linear infinite}
  .bridge__cards--solve .bridge__spine-dot--b{background:var(--accent);box-shadow:0 0 8px rgba(111,227,166,.9);animation:bridge-solve-b 8s linear infinite}
  @keyframes bridge-pain-a{
    0%{top:0%;opacity:0}
    2%{opacity:1}
    18%{top:var(--meet-pct,50%);opacity:1}
    19%,100%{top:var(--meet-pct,50%);opacity:0}
  }
  @keyframes bridge-pain-b{
    0%{top:100%;opacity:0}
    2%{opacity:1}
    18%{top:var(--meet-pct,50%);opacity:1}
    19%,100%{top:var(--meet-pct,50%);opacity:0}
  }
  @keyframes bridge-solve-a{
    0%,63%{top:var(--meet-pct,50%);opacity:0}
    65%{opacity:1}
    81%{top:0%;opacity:1}
    83%,100%{top:0%;opacity:0}
  }
  @keyframes bridge-solve-b{
    0%,63%{top:var(--meet-pct,50%);opacity:0}
    65%{opacity:1}
    81%{top:100%;opacity:1}
    83%,100%{top:100%;opacity:0}
  }

  /* elos horizontais: da espinha até o badge, e do badge até a outra espinha */
  .bridge__link{position:absolute;height:2px;z-index:0;pointer-events:none;background:repeating-linear-gradient(to right,var(--line) 0 6px,transparent 6px 12px)}
  .bridge__link-dot{position:absolute;top:50%;left:0;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;opacity:0}
  .bridge__link--left .bridge__link-dot{background:#c0392b;box-shadow:0 0 8px rgba(192,57,43,.85);animation:bridge-link-left 8s linear infinite}
  .bridge__link--right .bridge__link-dot{background:var(--accent);box-shadow:0 0 8px rgba(111,227,166,.9);animation:bridge-link-right 8s linear infinite}
  @keyframes bridge-link-left{
    0%,18%{left:0%;opacity:0}
    20%{opacity:1}
    32%{left:100%;opacity:1}
    34%,100%{left:100%;opacity:0}
  }
  @keyframes bridge-link-right{
    0%,48%{left:0%;opacity:0}
    50%{opacity:1}
    62%{left:100%;opacity:1}
    64%,100%{left:100%;opacity:0}
  }

  .bridge__badge::after{
    content:"";position:absolute;inset:-6px;border-radius:50%;opacity:0;pointer-events:none;
    animation:bridge-transmute 8s linear infinite;
  }
  @keyframes bridge-transmute{
    0%,30%{opacity:0;background:radial-gradient(circle,rgba(192,57,43,.4),transparent 72%)}
    38%{opacity:1;background:radial-gradient(circle,rgba(192,57,43,.4),transparent 72%)}
    50%{opacity:1;background:radial-gradient(circle,rgba(111,227,166,.45),transparent 72%)}
    60%,100%{opacity:0;background:radial-gradient(circle,rgba(111,227,166,.45),transparent 72%)}
  }
  @media (prefers-reduced-motion:reduce){
    .bridge__spine-dot,.bridge__link-dot,.bridge__badge::after{animation:none;opacity:0}
  }
}

.bridge__center{display:none}
@media (min-width:900px){
  .bridge__center{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px}
}
.bridge__badge{position:relative;width:78px;height:78px;border-radius:50%;background:transparent;color:var(--brand);display:grid;place-items:center}
.bridge__badge svg{width:34px;height:34px}
.bridge__badge-ring{position:absolute;inset:-9px;border-radius:50%;border:1.5px dashed var(--line);animation:medallion-spin 24s linear infinite}
@media (prefers-reduced-motion:reduce){.bridge__badge-ring{animation:none}}
.bridge__badge-label{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}

/* ------------------------------------------- mockups de anúncio (subpáginas de canal) */
.admock{max-width:520px;margin:0 auto var(--space-2);position:relative}
.admock__frame{
  border:1px solid var(--line);border-radius:var(--r-lg);background:#fff;
  box-shadow:var(--sh-md);overflow:hidden;
}
.admock__note{margin-top:10px;text-align:center;font-size:.78rem;color:var(--muted);font-style:italic}

/* --- SERP (Google) --- */
.serp{padding:var(--space-1) var(--space-2) var(--space-2)}
.serp__bar{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--r-pill);padding:9px 16px;margin-bottom:var(--space-2);color:var(--muted);font-size:.88rem}
.serp__bar svg{width:15px;height:15px;flex:none}
.serp__tag{display:inline-block;font-size:.68rem;font-weight:700;border:1px solid #202124;color:#202124;border-radius:4px;padding:1px 5px;margin-right:8px;vertical-align:middle}
.serp__url{font-size:.78rem;color:#5f6368;margin-bottom:3px}
.serp__title{font-family:var(--font-body);font-size:1.05rem;color:#1a0dab;line-height:1.35;font-weight:500}
.serp__desc{font-size:.85rem;color:#4d5156;line-height:1.5;margin-top:5px}
.serp__links{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}
.serp__links a{font-size:.82rem;color:#1a0dab}
.serp__call{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:.82rem;color:#1a73e8;font-weight:500}
.serp__call svg{width:13px;height:13px}

/* --- Feed social (Meta / LinkedIn) --- */
.feedmock__head{display:flex;align-items:center;gap:10px;padding:12px var(--space-1)}
.feedmock__avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--accent));flex:none;display:grid;place-items:center;color:#fff;font-family:var(--font-title);font-weight:700;font-size:.85rem}
.feedmock__who strong{display:block;font-family:var(--font-body);font-size:.86rem;font-weight:600;color:#111}
.feedmock__who span{font-size:.72rem;color:var(--muted)}
.feedmock__caption{padding:0 var(--space-1) 12px;font-size:.86rem;color:#333;line-height:1.5}
.feedmock__media{aspect-ratio:4/3;background:linear-gradient(135deg,#eef4f0,#dfeae4);display:grid;place-items:center;color:var(--brand);border-block:1px solid var(--line)}
.feedmock__media svg{width:34px;height:34px;opacity:.55}
.feedmock__cta{display:flex;align-items:center;justify-content:space-between;padding:12px var(--space-1);background:var(--bg-soft);font-size:.85rem;font-weight:600;color:var(--brand-ink)}
.feedmock__cta svg{width:15px;height:15px}
.feedmock__doc{padding:0 var(--space-1) 12px}
.feedmock__docbox{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;display:flex;gap:10px;align-items:center;background:var(--bg-soft)}
.feedmock__docbox svg{width:22px;height:22px;color:var(--brand);flex:none}
.feedmock__docbox span{font-size:.8rem;color:var(--muted)}
.feedmock__preview{aspect-ratio:16/10;background:linear-gradient(135deg,#eef4f0,#dfeae4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--brand);border-block:1px solid var(--line);text-align:center;padding:var(--space-1)}
.feedmock__preview svg{width:42px;height:42px;opacity:.6}
.feedmock__preview span{font-size:.82rem;color:var(--muted);font-weight:600;max-width:320px}
.feedmock__stats{display:flex;align-items:center;gap:18px;padding:10px var(--space-1);border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}
.feedmock__stats span{display:flex;align-items:center;gap:5px}
.feedmock__stats svg{width:15px;height:15px}

/* --- Vídeo vertical (TikTok) --- */
.vidmock{max-width:260px;margin-inline:auto}
.vidmock__frame{position:relative;aspect-ratio:9/16;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(160deg,#2b3a33,#0f1512);border:1px solid var(--line);box-shadow:var(--sh-lg)}
.vidmock__play{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.5)}
.vidmock__play svg{width:40px;height:40px}
.vidmock__overlay{position:absolute;left:0;right:0;bottom:0;padding:14px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent)}
.vidmock__who{color:#fff;font-size:.82rem;font-weight:600;margin-bottom:5px}
.vidmock__legend{color:rgba(255,255,255,.9);font-size:.75rem;line-height:1.45;margin-bottom:10px}
.vidmock__btn{display:block;text-align:center;background:var(--accent);color:#0f1512;font-size:.78rem;font-weight:700;padding:8px;border-radius:var(--r-sm)}
.vidmock__caption{position:absolute;left:14px;right:14px;top:38%;text-align:center;color:#fff;font-family:var(--font-title);font-weight:700;font-size:1rem;text-shadow:0 2px 8px rgba(0,0,0,.6)}

.convchart{max-width:480px;margin-inline:auto}
.convchart svg{width:100%;height:auto;overflow:visible}
.convchart__bar{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:transform .8s var(--ease)}
.convchart.is-in .convchart__bar{transform:scaleY(1)}
.convchart__bar:nth-of-type(1){transition-delay:0s}
.convchart__bar:nth-of-type(2){transition-delay:.15s}
.convchart__bar:nth-of-type(3){transition-delay:.3s}
.convchart__bar--muted{fill:var(--line)}
.convchart__bar--mid{fill:#a9c4b6}
.convchart__bar--brand{fill:var(--brand)}
.convchart__axis{font-family:var(--font-body);font-size:12px;fill:var(--muted);font-weight:600}
.convchart__tag{font-family:var(--font-title);font-size:12.5px;font-weight:700;fill:var(--text)}
.convchart__tag--brand{fill:var(--brand-ink)}
.convchart__trend{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 4;fill:none;opacity:0;transition:opacity .6s ease .9s}
.convchart.is-in .convchart__trend{opacity:1}
.convchart__baseline{stroke:var(--line);stroke-width:1}
@media (prefers-reduced-motion:reduce){
  .convchart__bar{transition:none;transform:scaleY(1)}
  .convchart__trend{transition:none;opacity:1}
}

/* ============ convchart2 — gráfico de conversão dinâmico (Desenvolvimento) ============ */
.convchart2{max-width:560px;margin:var(--space-2) auto 0}
.convchart2 svg{width:100%;height:auto;overflow:visible}
.convchart2__note{text-align:center;color:var(--muted);font-size:.86rem;margin-top:var(--space-1);max-width:44ch;margin-inline:auto}
.cc-grid line{stroke:var(--line);stroke-width:1;stroke-dasharray:2 6;opacity:.7}
.cc-base{stroke:var(--line);stroke-width:1.5}
.cc-axis{font-family:var(--font-body);font-size:12px;fill:var(--muted);font-weight:600}
.cc-axis--brand{fill:var(--brand-ink);font-weight:700}
.cc-pct{font-family:var(--font-title);font-size:15px;font-weight:700;fill:var(--text);opacity:0;transition:opacity .5s var(--ease)}
.cc-pct--brand{fill:var(--brand-ink);font-size:17px}
.convchart2.is-in .cc-pct{opacity:1}
.convchart2.is-in .cc-col--1 .cc-pct{transition-delay:.35s}
.convchart2.is-in .cc-col--2 .cc-pct{transition-delay:.55s}
.convchart2.is-in .cc-col--3 .cc-pct{transition-delay:.8s}

.cc-bar{transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:transform .85s var(--ease)}
.convchart2.is-in .cc-bar{transform:scaleY(1)}
.convchart2.is-in .cc-col--1 .cc-bar{transition-delay:.15s}
.convchart2.is-in .cc-col--2 .cc-bar{transition-delay:.35s}
.convchart2.is-in .cc-col--3 .cc-bar{transition-delay:.55s}
.cc-bar--muted{fill:var(--line)}
.cc-bar--mid{fill:#a9c4b6}
.cc-bar--brand{fill:url(#cc-brand)}

.cc-area{fill:url(#cc-area);opacity:0;transition:opacity .7s ease .9s}
.convchart2.is-in .cc-area{opacity:1}
.cc-trend{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:520;stroke-dashoffset:520;transition:stroke-dashoffset 1.1s var(--ease) .75s}
.convchart2.is-in .cc-trend{stroke-dashoffset:0}

.cc-ping{fill:var(--accent);opacity:0}
.convchart2.is-in .cc-ping{opacity:1;animation:cc-ping 2s ease-out infinite 1.6s}
@keyframes cc-ping{
  0%{transform:scale(1);opacity:.9;transform-box:fill-box;transform-origin:center}
  70%{transform:scale(2.6);opacity:0;transform-box:fill-box;transform-origin:center}
  100%{transform:scale(2.6);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .cc-bar{transition:none;transform:scaleY(1)}
  .cc-pct,.cc-area{transition:none;opacity:1}
  .cc-trend{transition:none;stroke-dashoffset:0}
  .cc-ping{animation:none;opacity:0}
}

/* ============ Mockup de navegador desktop ============ */
.browser-mock{
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--line);background:var(--card);
  box-shadow:var(--sh-lg);
}
.browser-mock__bar{
  display:flex;align-items:center;gap:7px;
  padding:11px 14px;background:var(--bg-soft);border-bottom:1px solid var(--line);
}
.browser-mock__dot{width:11px;height:11px;border-radius:50%;background:var(--line);flex:none}
.browser-mock__dot:nth-child(1){background:#ff5f57}
.browser-mock__dot:nth-child(2){background:#febc2e}
.browser-mock__dot:nth-child(3){background:#28c840}
.browser-mock__url{
  margin-left:10px;flex:1;font-size:.76rem;color:var(--muted);
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-pill);
  padding:5px 14px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.browser-mock__screen{display:block;line-height:0;background:#fff}
.browser-mock__screen img{width:100%;height:auto;display:block}
.dev-mockup{width:100%;height:auto;display:block}

/* ============ CTA centralizado abaixo de grade de cards ============ */
.section-cta{margin-top:var(--space-2);text-align:center}


.trafego-funnel-visual{max-width:420px;margin-inline:auto}
.trafego-funnel-visual svg{width:100%;height:auto;overflow:visible}
.funnel-layer--1{fill:var(--brand)}
.funnel-layer--2{fill:var(--brand-ink)}
.funnel-layer--3{fill:var(--brand-deep)}
.funnel-num{font-family:var(--font-title);font-weight:700;font-size:22px;fill:#fff}
.funnel-num--sm{font-size:16px}
.funnel-label{font-family:var(--font-body);font-size:11px;fill:rgba(255,255,255,.85);font-weight:600;letter-spacing:.02em}
.funnel-tag{font-family:var(--font-body);font-size:13px;font-weight:700;fill:var(--brand-ink)}
.funnel-tag--accent{fill:var(--brand-ink);font-size:14px}
.funnel-inflow{stroke:var(--line);stroke-width:2;fill:none}
.funnel-outflow{stroke:var(--accent);stroke-width:2;fill:none}
.funnel-arrowhead{fill:var(--line)}
.funnel-arrowhead--accent{fill:var(--accent)}
.funnel-particle{fill:var(--accent);opacity:0}
.funnel-particle--1{animation:funnel-fall 3.2s ease-in infinite}
.funnel-particle--2{animation:funnel-fall 3.2s ease-in infinite;animation-delay:1.05s}
.funnel-particle--3{animation:funnel-fall 3.2s ease-in infinite;animation-delay:2.1s}
@keyframes funnel-fall{
  0%{transform:translateY(0);opacity:0}
  8%{opacity:1}
  92%{opacity:1}
  100%{transform:translateY(230px);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .funnel-particle{animation:none;opacity:0}
}


.link-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-2);align-items:center}
.link-flow__card{
  border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-2);
  background:var(--card);box-shadow:var(--sh-sm);text-align:center;
  transition:transform .3s var(--ease),box-shadow .3s ease,border-color .3s ease;
}
.link-flow__card:hover{transform:translateY(-5px);box-shadow:var(--sh-lg);border-color:var(--brand)}
.link-flow__icon{display:inline-flex;width:48px;height:48px;border-radius:50%;background:rgba(18,116,76,.08);color:var(--brand);align-items:center;justify-content:center;margin-bottom:var(--space-1)}
.link-flow__icon svg{width:24px;height:24px}
.link-flow__card h3{font-size:1.12rem}
.link-flow__card p{margin-top:8px;color:var(--muted);font-size:.94rem}
.link-flow__mid{display:flex;flex-direction:column;align-items:center;gap:10px}
.link-flow__line{position:relative;width:72px;height:2px;background:var(--line);border-radius:2px}
.link-flow__pulse{position:absolute;top:50%;width:8px;height:8px;border-radius:50%;background:var(--accent);transform:translateY(-50%);box-shadow:0 0 10px rgba(111,227,166,.85)}
.link-flow__pulse--right{animation:link-flow-right 2.8s ease-in-out infinite}
.link-flow__pulse--left{animation:link-flow-left 2.8s ease-in-out infinite}
@keyframes link-flow-right{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:calc(100% - 8px);opacity:0}}
@keyframes link-flow-left{0%{left:calc(100% - 8px);opacity:0}12%{opacity:1}88%{opacity:1}100%{left:0;opacity:0}}
.link-flow__tag{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--brand-ink);background:rgba(18,116,76,.08);padding:6px 12px;border-radius:var(--r-pill);white-space:nowrap}
@media (max-width:700px){
  .link-flow{grid-template-columns:1fr}
  .link-flow__mid{flex-direction:row-reverse;padding-block:4px}
  .link-flow__line{width:2px;height:32px}
  .link-flow__pulse{display:none}
}
@media (prefers-reduced-motion:reduce){
  .link-flow__pulse{animation:none;opacity:.9;left:calc(50% - 4px)}
}

/* ============ COMO FUNCIONA — funil animado (flowsys) ============ */
.flowsys__board{
  max-width:760px;margin:20px auto 0;
  padding:var(--space-2) var(--space-2) var(--space-1);
}
.tfunnel{display:block;width:100%;max-width:440px;height:auto;margin:0 auto;overflow:visible}
.flowsys__board--sm{max-width:360px;margin:0 auto;padding:var(--space-1)}
.flowsys__board--sm .tfunnel{max-width:320px}

/* fontes de tráfego */
.tf-src rect{fill:rgba(18,116,76,.06);stroke:var(--line);stroke-width:1}
.tf-src__label{font-family:var(--font-title);font-weight:700;font-size:13px;fill:var(--brand-ink)}
.tf-src__dot{animation:tf-dot 1.8s ease-in-out infinite}
.tf-src--paid .tf-src__dot{fill:var(--brand)}
.tf-src--organic .tf-src__dot{fill:var(--gold);animation-delay:.6s}
@keyframes tf-dot{0%,100%{opacity:1}50%{opacity:.3}}

/* setas de entrada com fluxo */
.tf-inflow{fill:none;stroke:var(--brand);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:4 7;opacity:.6;animation:tf-flow 1.1s linear infinite}
.tf-inflow--b{stroke:var(--gold)}
@keyframes tf-flow{to{stroke-dashoffset:-22}}

/* paredes do funil */
.tf-wall{fill:rgba(18,116,76,.10)}

/* bandas */
.tf-band--1 rect{fill:var(--brand)}
.tf-band--2 rect{fill:var(--brand-ink)}
.tf-band--3 rect{fill:var(--brand-deep)}
.tf-num{font-family:var(--font-title);font-weight:700;font-size:30px;fill:#fff}
.tf-band--3 .tf-num{font-size:26px}
.tf-lbl{font-family:var(--font-body);font-weight:600;font-size:12px;fill:rgba(255,255,255,.9);letter-spacing:.02em}
.tf-lbl--sm{font-size:10.5px;letter-spacing:0}

/* taxas de conversão */
.tf-rate rect{fill:#fff;stroke:var(--brand);stroke-width:1.2}
.tf-rate__txt{font-family:var(--font-body);font-weight:700;font-size:11px;fill:var(--brand-ink)}

/* saída */
.tf-out-line{stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;fill:none}
.tf-out rect{fill:url(#tf-out)}
.tf-out__txt{font-family:var(--font-title);font-weight:700;font-size:15px;fill:var(--brand-deep)}

/* partículas descendo pelo funil */
.tf-part{fill:var(--accent);opacity:0}
.tf-part--1{animation:tf-fall 3s ease-in infinite}
.tf-part--2{animation:tf-fall 3s ease-in infinite;animation-delay:.6s}
.tf-part--3{animation:tf-fall 3s ease-in infinite;animation-delay:1.2s}
.tf-part--4{animation:tf-fall 3s ease-in infinite;animation-delay:1.8s}
.tf-part--5{animation:tf-fall 3s ease-in infinite;animation-delay:2.4s}
@keyframes tf-fall{
  0%{opacity:0;transform:translateY(0)}
  8%{opacity:1}
  88%{opacity:1}
  100%{opacity:0;transform:translateY(252px)}
}

/* entrada em cena (stagger) das bandas ao rolar */
.js .flowsys__board .tf-band,
.js .flowsys__board .tf-rate,
.js .flowsys__board .tf-out,
.js .flowsys__board .tf-out-line{opacity:0;transition:opacity .55s var(--ease),transform .55s var(--ease)}
.js .flowsys__board .tf-band{transform:translateY(12px)}
.js .flowsys__board.is-in .tf-band{opacity:1;transform:none}
.js .flowsys__board.is-in .tf-band--1{transition-delay:.12s}
.js .flowsys__board.is-in .tf-band--2{transition-delay:.34s}
.js .flowsys__board.is-in .tf-band--3{transition-delay:.56s}
.js .flowsys__board.is-in .tf-rate{opacity:1;transition-delay:.62s}
.js .flowsys__board.is-in .tf-out,
.js .flowsys__board.is-in .tf-out-line{opacity:1;transition-delay:.8s}

/* papéis pago x orgânico */
.flowsys__roles{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);margin-top:var(--space-2)}
.flowsys__role{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-soft);padding:var(--space-1)}
.flowsys__role p{color:var(--muted);font-size:.94rem;margin-top:8px}
.flowsys__role-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-title);font-weight:700;font-size:.92rem;color:var(--text)}
.flowsys__role-tag::before{
  content:"";width:14px;height:14px;flex:none;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 12c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm0 2c-3.87 0-9 1.79-9 4.5V21h18v-2.5c0-2.71-5.13-4.5-9-4.5z"/></svg>') no-repeat center / contain;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 12c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm0 2c-3.87 0-9 1.79-9 4.5V21h18v-2.5c0-2.71-5.13-4.5-9-4.5z"/></svg>') no-repeat center / contain;
}
.flowsys__role-tag--paid::before{background:var(--brand)}
.flowsys__role-tag--organic::before{background:var(--gold)}

/* dados concretos abaixo do funil */
.flowsys__data{max-width:720px;margin:var(--space-2) auto 0;text-align:center}
.flowsys__data h3{font-size:clamp(1.3rem,2.6vw,1.72rem);line-height:1.25;margin-top:6px}
.flowsys__data .lead{margin-top:var(--space-1)}
.flowsys__data .btn{margin-top:var(--space-2)}

@media (max-width:560px){
  .flowsys__board{padding:var(--space-1)}
  .flowsys__roles{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .tf-part{animation:none;opacity:0}
  .tf-inflow{animation:none}
  .tf-src__dot{animation:none}
  .js .flowsys__board .tf-band,
  .js .flowsys__board .tf-rate,
  .js .flowsys__board .tf-out,
  .js .flowsys__board .tf-out-line{opacity:1!important;transform:none!important;transition:none!important}
}

.about-panel{position:relative}
.about-panel__grid{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-3);align-items:center}
.about-panel__connector{
  position:relative;align-self:stretch;width:1px;justify-self:center;min-height:220px;
  background:linear-gradient(to bottom,transparent,var(--line) 12%,var(--line) 88%,transparent);
}
.about-panel__dot{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:10px;height:10px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 6px rgba(18,116,76,.14),0 0 20px rgba(111,227,166,.85);
  opacity:1;
}
.eyebrow--rule{position:relative;padding-left:22px}
.eyebrow--rule::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:14px;height:1px;background:var(--brand)}

.team-tech{display:grid;gap:var(--space-2)}
.team-tech-card{
  position:relative;display:flex;align-items:center;gap:var(--space-1);
  border:1px solid var(--line);border-radius:var(--r-md);padding:var(--space-1) var(--space-2);
  background:var(--card);box-shadow:var(--sh-sm);
  transition:transform .35s var(--ease),box-shadow .35s ease,border-color .35s ease;
}
.team-tech-card:hover{transform:translateX(6px) scale(1.015);box-shadow:var(--sh-lg);border-color:var(--brand)}
.team-tech-card::before,.team-tech-card::after{
  content:"";position:absolute;width:16px;height:16px;border-color:var(--brand);border-style:solid;opacity:.7;pointer-events:none;
  transition:opacity .35s ease,width .35s ease,height .35s ease;
}
.team-tech-card::before{top:-1px;left:-1px;border-width:2px 0 0 2px;border-top-left-radius:6px}
.team-tech-card::after{bottom:-1px;right:-1px;border-width:0 2px 2px 0;border-bottom-right-radius:6px}
.team-tech-card:hover::before,.team-tech-card:hover::after{opacity:1;width:20px;height:20px}
.team-tech-card__photo{
  position:relative;width:68px;height:68px;border-radius:50%;overflow:hidden;flex:none;
  border:2px solid var(--brand);background:var(--bg-soft);
  box-shadow:0 0 0 4px rgba(18,116,76,.1);
  transition:box-shadow .35s ease;
}
.team-tech-card:hover .team-tech-card__photo{box-shadow:0 0 0 6px rgba(18,116,76,.16)}
.team-tech-card__photo img{width:100%;height:100%;object-fit:cover;display:block}
.team-tech-card h3{font-size:1.05rem;line-height:1.2}
.team-tech-card span{margin-top:4px;display:block;color:var(--brand-ink);font-weight:700;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}
.team-tech-card__bio{margin-top:8px;color:var(--muted);font-size:13px;line-height:1.5}

@media (max-width:820px){
  .about-panel__grid{grid-template-columns:1fr;gap:var(--space-1)}
  .about-panel__connector{display:none}
  .team-tech{margin-top:0}
}


/* --------------------------------------------------------------------------
   9. Pacotes
   -------------------------------------------------------------------------- */
.pkg{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);transition:transform .3s var(--ease),box-shadow .3s ease}
.pkg:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.pkg--hero{border-color:var(--brand);box-shadow:var(--sh-md);position:relative}
.pkg__tag{position:absolute;top:0;right:var(--space-1);transform:translateY(-50%);background:var(--gold);color:#3a2a05;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:6px 14px;border-radius:var(--r-pill)}
.pkg__title{display:flex;align-items:center;margin-bottom:var(--space-1)}
.pkg__title img{height:28px;width:auto;object-fit:contain;flex:none}
.pkg__title img.pkg__logo--meta{height:23px}
.pkg__title span{font-family:var(--font-title);font-weight:700;font-size:1.35rem;color:var(--text);margin-left:8px}
.pkg__title span.pkg__title-max--meta{position:relative;top:1px;left:5px}
.pkg h3{font-size:1.35rem}
.pkg__for{margin-top:10px;color:var(--muted);font-size:.95rem}
.pkg__list{margin-top:var(--space-1);display:grid;gap:10px;flex:1}
.pkg__list li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem}
.pkg__list svg{width:18px;height:18px;color:var(--brand);flex:none;margin-top:3px}
.pkg .btn{margin-top:var(--space-1)}
.pkg__note{margin-top:var(--space-1);text-align:center;color:var(--muted);font-size:.95rem}

/* --------------------------------------------------------------------------
   10. Como funciona (timeline real)
   -------------------------------------------------------------------------- */
.steps{display:grid;gap:var(--space-1);counter-reset:step}
.step{position:relative;padding-top:var(--space-1);border-top:2px solid var(--line);transition:border-color .3s ease}
.step:hover{border-top-color:var(--brand)}
.step__n{font-family:var(--font-title);font-weight:700;font-size:.85rem;color:var(--brand);letter-spacing:.1em}
.step h3{margin-top:10px;font-size:1.15rem}
.step p{margin-top:10px;color:var(--muted);font-size:.95rem}

/* --------------------------------------------------------------------------
   11. Depoimentos
   -------------------------------------------------------------------------- */
.quote{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);display:flex;flex-direction:column;gap:var(--space-1)}
.quote__mark{width:28px;height:20px;color:var(--accent)}
.quote__mark svg{width:100%;height:100%}
.quote__text{color:var(--muted);font-size:1rem;flex:1}
.quote__who{display:flex;align-items:center;gap:14px}
.quote__avatar{width:44px;height:44px;border-radius:50%;background:var(--bg-soft);border:1px dashed var(--line);flex:none}
.quote__who strong{display:block;font-size:.95rem;font-family:var(--font-title)}
.quote__who span{font-size:.85rem;color:var(--muted)}

/* --------------------------------------------------------------------------
   12. Placeholder de conteúdo pendente
   -------------------------------------------------------------------------- */
.ph{
  position:relative;display:grid;place-items:center;
  background:var(--bg-soft);border:1px dashed var(--line);border-radius:var(--r-md);
  color:var(--muted);text-align:center;padding:var(--space-1);min-height:120px;
}
.ph[data-ratio="16/9"]{aspect-ratio:16/9}
.ph[data-ratio="4/3"]{aspect-ratio:4/3}

/* ============ Ilustração animada: conteúdo gerando engajamento e clientes ============ */
.contentviz{max-width:460px;margin-inline:auto}
.contentviz svg{display:block;width:100%;height:auto;overflow:visible}

.cv-ring{fill:none;stroke:var(--brand);opacity:0}
.js .contentviz.is-in .cv-ring{animation:cv-ring-pulse 3.2s ease-out infinite}
.js .contentviz.is-in .cv-ring--2{animation-delay:1.05s}
.js .contentviz.is-in .cv-ring--3{animation-delay:2.1s}
@keyframes cv-ring-pulse{
  0%{opacity:.55;transform:scale(.6);transform-box:fill-box;transform-origin:center}
  100%{opacity:0;transform:scale(1.9);transform-box:fill-box;transform-origin:center}
}

.cv-post rect:first-child{fill:var(--card);stroke:var(--line);stroke-width:1.2}
.cv-post__img{fill:rgba(18,116,76,.08)}
.cv-post__mountain{fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cv-post__sun{fill:var(--gold)}
.cv-post__line{fill:var(--line)}

.cv-bubble{stroke:#fff;stroke-width:2}
.cv-bubble--heart{fill:#e0566b}
.cv-bubble--comment{fill:var(--brand)}
.cv-bubble--follow{fill:var(--gold)}
.cv-follow-plus{font-family:var(--font-title);font-weight:700;font-size:11px;fill:#fff}

.cv-float{opacity:0}
.js .contentviz.is-in .cv-float{animation:cv-float 4.4s ease-in-out infinite}
.js .contentviz.is-in .cv-float--2{animation-delay:.9s}
.js .contentviz.is-in .cv-float--3{animation-delay:1.8s}
@keyframes cv-float{
  0%{opacity:0;transform:translateY(6px) scale(.8)}
  12%{opacity:1;transform:translateY(0) scale(1)}
  50%{opacity:1;transform:translateY(-6px) scale(1)}
  88%{opacity:1;transform:translateY(0) scale(1)}
  100%{opacity:0;transform:translateY(6px) scale(.8)}
}

.cv-flow{fill:none;stroke:var(--brand);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:5 8;opacity:.7}
.js .contentviz.is-in .cv-flow{animation:cv-flow-move 1.4s linear infinite}
@keyframes cv-flow-move{to{stroke-dashoffset:-26}}

.cv-client__ring{fill:none;stroke:var(--accent);stroke-width:1.4;opacity:0}
.js .contentviz.is-in .cv-client__ring{animation:cv-client-ping 2.6s ease-out infinite 1s}
@keyframes cv-client-ping{
  0%{opacity:.8;transform:scale(.75);transform-box:fill-box;transform-origin:center}
  75%{opacity:0;transform:scale(1.35);transform-box:fill-box;transform-origin:center}
  100%{opacity:0}
}
.cv-client__bg{fill:var(--brand)}
.cv-client__icon{fill:#fff}
.cv-client__label{font-family:var(--font-title);font-weight:700;font-size:13px;fill:var(--text)}

@media (prefers-reduced-motion:reduce){
  .cv-ring,.cv-flow,.cv-client__ring{animation:none!important;opacity:0}
  .cv-float{animation:none!important;opacity:1}
}
.ph[data-ratio="1/1"]{aspect-ratio:1/1}
.ph[data-ratio="3/4"]{aspect-ratio:3/4}
.ph__label{font-size:.82rem;letter-spacing:.02em}
.ph::before{
  content:"";display:block;width:26px;height:26px;margin:0 auto 10px;
  border:1.5px solid var(--line);border-radius:6px;
  background:
    linear-gradient(45deg,transparent 45%,var(--line) 45%,var(--line) 55%,transparent 55%);
}
.ph--block{width:100%}

/* Bloco de seção pendente (shells) */
.pending{border:1px dashed var(--line);border-radius:var(--r-lg);background:var(--bg-soft);padding:var(--space-2);text-align:center}
.pending h2{font-size:1.25rem}
.pending p{margin-top:14px;color:var(--muted);font-size:.95rem;max-width:60ch;margin-inline:auto}
.pending__tag{display:inline-block;margin-bottom:14px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:500}

/* --------------------------------------------------------------------------
   13. Blog / cases
   -------------------------------------------------------------------------- */
.post{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s ease}
.post:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.post .ph{border:0;border-radius:0;border-bottom:1px dashed var(--line)}
.post__badge{
  position:absolute;top:14px;left:14px;z-index:1;
  background:var(--brand-deep);color:#fff;font-size:.7rem;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-pill);
}
.post__body{padding:var(--space-1);display:flex;flex-direction:column;flex:1}
.post-content h2{margin-bottom:16px}
.post-content p+p{margin-top:16px}
.post__cat{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-weight:500}
.post__date{display:block;margin-top:3px;font-size:.8rem;color:var(--muted)}

.blogsearch{position:relative;max-width:480px;margin-bottom:var(--space-1)}
.blogsearch svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none}
.blogsearch input{
  width:100%;padding:11px 14px 11px 42px;border:1px solid var(--line);border-radius:var(--r-pill);
  background:var(--card);font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease;
}
.blogsearch input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(18,116,76,.14)}
.blogsearch__empty{color:var(--muted);padding:var(--space-1) 0}
.post h3{margin-top:10px;font-size:1.1rem}
.post p{margin-top:10px;color:var(--muted);font-size:.93rem}
.post__soon{margin-top:auto;padding-top:14px;font-size:.82rem;color:var(--muted);font-style:italic}

/* Carrossel do Instagram — scroll nativo, sem JS */
.igcarousel{
  display:flex;gap:var(--space-1);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:14px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;
}
.igcarousel > a{flex:0 0 200px;scroll-snap-align:start;border-radius:var(--r-md);overflow:hidden}
.igcarousel .ph{width:200px;height:200px;border-radius:0;transition:opacity .2s ease}
.igcarousel > a:hover .ph{opacity:.85}
.igcarousel > .instagram-media{flex:0 0 328px !important;scroll-snap-align:start;margin:0 !important}
a.post:hover .post__cta{color:var(--brand-ink)}
.post__cta{margin-top:14px;display:inline-flex;align-items:center;gap:8px;color:var(--brand-ink);font-weight:500;font-size:.9rem}
.post__cta svg{width:15px;height:15px}

/* Filtro de categorias do blog */
.blogfilter{display:flex;flex-wrap:wrap;gap:10px;padding-block:var(--space-1);border-bottom:1px solid var(--line);margin-bottom:var(--space-1)}
.blogfilter__btn{
  padding:9px 18px;border-radius:var(--r-pill);border:1px solid var(--line);
  font-size:.9rem;font-weight:500;color:var(--muted);background:var(--card);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.blogfilter__btn:hover{border-color:var(--brand);color:var(--brand-ink)}
.blogfilter__btn.is-active{background:var(--brand);border-color:var(--brand);color:#fff}

.segment{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:240px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--bg-soft);padding:var(--space-1);transition:transform .3s var(--ease),box-shadow .3s ease}
.segment:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.segment::before{content:"";position:absolute;inset:auto -20% -60% auto;width:260px;height:260px;border-radius:50%;background:var(--brand);opacity:.07}
.segment > *{position:relative}
.segment h3{font-size:1.2rem}
.segment p{margin-top:10px;color:var(--muted);font-size:.93rem}

/* --------------------------------------------------------------------------
   14. Contato
   -------------------------------------------------------------------------- */
.contact{background:var(--brand-deep);color:#eef5f1;padding-block:var(--space-3)}
.contact h2{font-size:clamp(1.8rem,3.4vw,2.5rem);color:#fff}
.contact .eyebrow{color:var(--accent)}
.contact__grid{display:grid;gap:var(--space-2);align-items:center}
.contact__lead{margin-top:var(--space-1);color:#bfd6ca;max-width:48ch}
.contact__list{margin-top:var(--space-1);display:grid;gap:14px}
.contact__list li{display:flex;gap:12px;align-items:flex-start;font-size:.98rem;color:#d6e6dd}
.contact__list svg{width:20px;height:20px;color:var(--accent);flex:none;margin-top:2px}

.form{background:#fff;border-radius:var(--r-lg);padding:var(--space-1);box-shadow:var(--sh-lg);color:var(--text);max-width:480px;width:100%;justify-self:center}
.form__row{display:grid;gap:4px;margin-bottom:10px}
.form label{font-size:.84rem;font-weight:500}
.form input,.form select{
  width:100%;min-height:40px;padding:8px 12px;font-size:.94rem;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.form input:focus,.form select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(18,116,76,.14)}
.form input[aria-invalid="true"],.form select[aria-invalid="true"]{border-color:#c0392b}
.form .err{font-size:.78rem;color:#c0392b;min-height:0}
.form .err:empty{display:none}
.form__note{margin-top:10px;font-size:.8rem;color:var(--muted);text-align:center}
.form .btn{margin-top:10px}

/* --------------------------------------------------------------------------
   15. Footer
   -------------------------------------------------------------------------- */
.footer{background:var(--bg);border-top:1px solid var(--line);padding-block:var(--space-3) var(--space-2)}
.footer__top{display:grid;gap:var(--space-2)}
.footer__brand p{margin-top:var(--space-1);color:var(--muted);font-size:.95rem;max-width:34ch}
.footer__contact{margin-top:var(--space-1);display:grid;gap:8px;font-size:.95rem}
.footer__contact a:hover{color:var(--brand-ink)}
.footer__social{margin-top:var(--space-1);display:flex;gap:12px}
.footer__social a{
  width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  transition:background .2s ease,transform .2s var(--ease);
}
.footer__social a:hover{background:var(--brand-ink);transform:translateY(-2px)}
.footer__social svg{width:19px;height:19px}
.footer__map{display:grid;gap:var(--space-2) var(--space-3);grid-template-columns:repeat(2,1fr)}
.footer__col h3{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:14px;white-space:nowrap;overflow:visible}
.footer__col h3 a{color:inherit;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-wrap:nowrap}
.footer__col h3 a svg{width:13px;height:13px;transition:transform .2s ease}
.footer__col h3 a:hover{color:var(--brand-ink)}
.footer__col h3 a:hover svg{transform:translateX(3px)}
.footer__col ul{display:grid;gap:8px}
.footer__col a{font-size:.92rem;color:var(--muted)}
.footer__col a:hover{color:var(--brand-ink)}
.footer__bottom{margin-top:var(--space-3);padding-top:var(--space-1);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:var(--space-1);justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted)}
.footer__bottom nav{display:flex;flex-wrap:wrap;gap:20px}
.footer__bottom a:hover{color:var(--brand-ink)}

/* --------------------------------------------------------------------------
   16. WhatsApp flutuante
   -------------------------------------------------------------------------- */
.wa-float{
  position:fixed;right:20px;bottom:20px;z-index:60;
  display:inline-flex;align-items:center;gap:10px;
  background:#12a35c;color:#fff;border-radius:var(--r-pill);
  padding:14px 18px;box-shadow:var(--sh-md);font-weight:500;font-size:.95rem;
  transition:transform .25s var(--ease),box-shadow .25s ease;
}
.wa-float:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.wa-float svg{width:22px;height:22px;flex:none}
.wa-float span{display:none}

/* --------------------------------------------------------------------------
   17. Scroll reveal
   -------------------------------------------------------------------------- */
/* Nada some sem JS: o estado escondido depende da classe .js no <html> */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}

/* Sequência de entrada do hero */
.js .hero .seq{opacity:0;transform:translateY(14px);animation:seq .55s var(--ease) forwards}
.js .hero .seq:nth-child(1){animation-delay:.05s}
.js .hero .seq:nth-child(2){animation-delay:.13s}
.js .hero .seq:nth-child(3){animation-delay:.21s}
.js .hero .seq:nth-child(4){animation-delay:.29s}
.js .hero .seq:nth-child(5){animation-delay:.37s}
.js .hero .seq:nth-child(6){animation-delay:.45s}
@keyframes seq{to{opacity:1;transform:none}}

/* --------------------------------------------------------------------------
   18. Responsivo
   -------------------------------------------------------------------------- */
@media (min-width:640px){
  .grid--2{grid-template-columns:repeat(2,1fr)}
  .grid--3{grid-template-columns:repeat(2,1fr)}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .strip__grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .wa-float span{display:inline}
}
@media (min-width:980px){
  .grid--3{grid-template-columns:repeat(3,1fr)}
  .grid--4{grid-template-columns:repeat(4,1fr)}
  .strip__grid{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .hero__grid{grid-template-columns:1.15fr .85fr}
  .contact__grid{grid-template-columns:1fr 1fr}
  .footer__top{grid-template-columns:.9fr 2.1fr}
  .footer__map{grid-template-columns:repeat(4,1fr)}
  .nav{display:block}
  .header__cta{display:inline-flex}
  .burger{display:none}
  .drawer{display:none}
  .hero__scroll{margin-top:45px}
  .pkg__title span.pkg__title-max--meta{top:3.5px}
}
@media (max-width:979px){
  :root{--head-h:72px}
  .section{padding-block:var(--space-2)}
  .contact{padding-block:var(--space-2)}
  .footer{padding-block:var(--space-2) var(--space-1)}
  .hero,.pagehero{padding-block:var(--space-2)}
  .section-head{margin-bottom:var(--space-1)}
  .footer__bottom{margin-top:var(--space-2)}
  .footer__map{grid-template-columns:1fr}
  .pending{padding:var(--space-1)}

  /* Pacote Meta: logo menor no mobile (mais 10px a menos que o padrão de 28px),
     alinhada com o "Max" e com menos respiro até o texto */
  .pkg__title img.pkg__logo--meta{height:18px;top:-1px}
  .pkg__title span.pkg__title-max--meta{margin-left:4px}

  /* Seção Autoridade: logo empilhada acima do texto, com 3M e Google maiores;
     o selo do Google recua um pouco à esquerda para ficar rente ao texto */
  .strip__item{flex-direction:column;align-items:flex-start;text-align:left;gap:10px}
  .strip__item img{margin-top:0}
  .strip__item-badge+div{margin-top:0}
  .strip__item-logo{height:70px}
  .strip__item-badge--google{height:82px;margin-left:-8px}

  /* Faixa de transição: texto um pouco menor para não cortar as frases */
  .ticker__list li{font-size:.68rem}

  /* Nossa Missão: mais respiro entre o parágrafo e o que vem a seguir */
  .mission .lead{margin-bottom:15px}
}

/* --------------------------------------------------------------------------
   19. Transição entre páginas
   -------------------------------------------------------------------------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .22s ease both}
::view-transition-new(root){animation:vt-in .32s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}

/* --------------------------------------------------------------------------
   20. Movimento reduzido — desliga tudo
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .ticker{overflow-x:auto}
  .reveal,.js .reveal{opacity:1 !important;transform:none !important}
  .hero .seq,.js .hero .seq{opacity:1 !important;transform:none !important}
}

/* --------------------------------------------------------------------------
   14. Componentes — Sobre Nós / Pacotes (rodada 25)
   -------------------------------------------------------------------------- */

/* ------------------------------------------- linha do tempo (Nossa História) */
.timeline__track{display:flex;align-items:center;gap:14px;overflow-x:auto;padding-bottom:var(--space-1);-webkit-overflow-scrolling:touch}
.timeline__year{display:flex;align-items:center;gap:10px;flex:none;font-family:var(--font-title);font-weight:700;color:var(--brand);white-space:nowrap;font-size:1.05rem}
.timeline__dot{width:15px;height:15px;border-radius:50%;border:2px solid var(--brand);flex:none;position:relative}
.timeline__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--brand)}
.timeline__line{width:56px;height:1px;background:var(--line);flex:none}
.timeline__cards{margin-top:var(--space-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-1)}
.timeline__card{border:1px dashed var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--bg-soft)}
.timeline__card h3{font-size:1.02rem;margin-top:8px}

/* ------------------------------------------- valores da marca */
.value{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--card);transition:transform .3s var(--ease),box-shadow .3s ease}
.value:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.value__icon{width:42px;height:42px;border-radius:var(--r-sm);background:rgba(18,116,76,.08);display:grid;place-items:center;color:var(--brand)}
.value__icon svg{width:22px;height:22px}
.value h3{font-size:1.08rem;margin-top:var(--space-1)}
.value p{margin-top:10px;color:var(--muted);font-size:.95rem}

/* ------------------------------------------- jornada de relacionamento */
.journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-1)}
.journey__step{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--card)}
.journey__num{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--brand);color:#fff;font-family:var(--font-title);font-weight:700;font-size:1.1rem;margin-bottom:10px}
.journey__step h3{font-size:1.05rem;margin-top:var(--space-1)}
.journey__step p{margin-top:8px;color:var(--muted);font-size:.93rem}

/* ------------------------------------------- hero de pacote (IDV do parceiro) */
.pagehero--google{background:linear-gradient(120deg,rgba(66,133,244,.08),rgba(52,168,83,.05) 35%,rgba(251,188,5,.06) 65%,rgba(234,67,53,.07))}
.pagehero--meta{background:linear-gradient(120deg,rgba(0,99,235,.09),rgba(228,64,95,.06) 55%,rgba(255,204,2,.06))}
.promise-badge{display:inline-flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-pill);padding:9px 18px 9px 12px;font-size:.9rem;font-weight:500;margin-top:var(--space-1);box-shadow:var(--sh-sm)}
.promise-badge img{height:18px;width:auto}

/* ------------------------------------------- autoridade / stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-1)}
.stat{text-align:center;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-2) var(--space-1);background:var(--card)}
.stat strong{display:block;font-family:var(--font-title);font-size:2rem;color:var(--brand)}
.stat span{margin-top:6px;display:block;color:var(--muted);font-size:.88rem}
.badgerow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}
.badgerow img{height:40px;width:auto;object-fit:contain}

/* ------------------------------------------- dor / solução */
.painlist{display:grid;gap:14px;margin-top:var(--space-1)}
.painlist li{display:flex;gap:12px;align-items:flex-start;font-size:.98rem}
.painlist--pain li::before{content:"✕";color:#c0392b;font-weight:700;flex:none;line-height:1.5}
.painlist--solve li::before{content:"✓";color:var(--brand);font-weight:700;flex:none;line-height:1.5}

/* ------------------------------------------- calculadora de funil */
.funnel{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-2);background:var(--bg-soft)}
.funnel__inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-2)}
.funnel__field label{display:flex;justify-content:space-between;font-size:.92rem;font-weight:500;margin-bottom:10px}
.funnel__field output{color:var(--brand);font-family:var(--font-title)}
.funnel__field input[type="range"]{width:100%;accent-color:var(--brand)}
.funnel__stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-1);margin-top:var(--space-2)}
.funnel__stage{text-align:center;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--space-1);background:var(--card)}
.funnel__stage strong{display:block;font-family:var(--font-title);font-size:1.7rem;color:var(--brand)}
.funnel__stage span{color:var(--muted);font-size:.85rem}
.funnel__arrow{display:flex;align-items:center;justify-content:center;color:var(--line)}
.funnel__note{margin-top:var(--space-1);font-size:.85rem;color:var(--muted)}

/* ------------------------------------------- FAQ */
.faq{border:1px solid var(--line);border-radius:var(--r-lg);padding:0 var(--space-1);background:var(--card)}
.faq .acc:last-child{border-bottom:0}
.faq .acc__panel p{padding-bottom:var(--space-1);color:var(--muted);font-size:.95rem}

/* modificador para hero com título longo em formato de declaração (Sobre Nós) */
.pagehero__title--stmt{max-width:40ch;font-size:clamp(1.6rem,3.6vw,2.5rem)}

/* grid de 5 valores (Sobre Nós) — envelopa em auto-fit para não sobrar item órfão */
.grid--values{grid-template-columns:1fr}
@media (min-width:640px){.grid--values{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.grid--values{grid-template-columns:repeat(5,1fr)}}

/* --------------------------------------------------------------------------
   15. Sobre Nós — rodada 26 (hero com mídia, carrossel de história,
       "Como trabalhamos" animado, valores em selo de autoridade)
   -------------------------------------------------------------------------- */

/* ------------------------------------------- hero dividido (Sobre) */
.pagehero--split{overflow:visible}
.pagehero__grid{display:grid;gap:var(--space-3);align-items:center}
@media (min-width:900px){.pagehero__grid{grid-template-columns:1.05fr .95fr}}
.pagehero__media{position:relative;margin-top:var(--space-2)}
@media (min-width:900px){.pagehero__media{margin-top:0}}
.pagehero__media .ph{border-radius:var(--r-lg);box-shadow:var(--sh-lg)}

.floatcard{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  border-radius:var(--r-md);box-shadow:var(--sh-lg);font-size:.82rem;
  animation:float-bob 5s ease-in-out infinite;
}
.floatcard--dark{background:var(--brand-deep);color:#eef5f1}
.floatcard--gold{background:var(--gold);color:#3a2a05;font-weight:600;border-radius:var(--r-pill);gap:8px}
.floatcard strong{display:block;font-family:var(--font-title);font-size:.92rem;line-height:1.2}
.floatcard--dark span{display:block;color:#bfd6ca;font-size:.74rem;margin-top:2px}
.floatcard__icon{width:32px;height:32px;border-radius:var(--r-sm);background:rgba(255,255,255,.14);display:grid;place-items:center;flex:none}
.floatcard__icon svg{width:17px;height:17px}
.floatcard__dot{width:8px;height:8px;border-radius:50%;background:#3a2a05;flex:none}
@media (min-width:900px){
  .floatcard{position:absolute}
  .floatcard--tl{top:-16px;left:-18px;animation-delay:0s}
  .floatcard--tr{top:-14px;right:-16px;animation-delay:.7s}
  .floatcard--br{bottom:-16px;right:-14px;animation-delay:1.4s}
}
@media (max-width:899px){.floatcard{margin-top:12px}}
@keyframes float-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media (prefers-reduced-motion:reduce){.floatcard{animation:none}}

/* ------------------------------------------- carrossel Nossa História */
.histcarousel__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:var(--space-1);margin-bottom:var(--space-2)}
.histcarousel__intro{color:var(--muted);max-width:46ch}
.histcarousel__nav{display:flex;gap:10px;flex:none}
.histcarousel__btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;transition:background .2s ease,transform .2s ease,border-color .2s ease}
.histcarousel__btn:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-2px)}
.histcarousel__btn svg{width:18px;height:18px}
.histcarousel__viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;margin-inline:calc(var(--space-1) * -1);padding-inline:var(--space-1)}
.histcarousel__viewport::-webkit-scrollbar{display:none}
.histcarousel__track{display:flex;gap:var(--space-1)}
.histcarousel__item{flex:0 0 auto;width:250px;scroll-snap-align:start}
.histcarousel__year{display:flex;align-items:center;gap:10px;font-family:var(--font-title);font-weight:700;color:var(--brand);margin-bottom:14px;font-size:1.15rem}
.histcarousel__card{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--card);height:100%;transition:transform .3s var(--ease),box-shadow .3s ease}
.histcarousel__card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.histcarousel__card h3{font-size:1.02rem;margin-top:8px}
.histcarousel__card p{margin-top:8px;color:var(--muted);font-size:.92rem}
.histcarousel__dots{display:flex;gap:6px;margin-top:var(--space-2)}
.histcarousel__dash{flex:1;height:3px;border-radius:2px;background:var(--line);border:0;padding:0;cursor:pointer;transition:background .25s ease}
.histcarousel__dash.is-active{background:var(--gold)}

/* ------------------------------------------- Como Trabalhamos, com fluxo animado */
.journey--flow{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:var(--space-1)}
.journey--flow .journey__step{flex:1 1 220px;min-width:200px}
.journey__step{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--card);transition:transform .35s var(--ease),box-shadow .35s ease,border-color .35s ease}
.journey__step:hover{transform:translateY(-6px);box-shadow:var(--sh-md);border-color:var(--brand)}
.journey__step::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(18,116,76,.07),transparent 65%);opacity:0;transition:opacity .35s ease;pointer-events:none}
.journey__step:hover::after{opacity:1}
.journey__head{position:relative;z-index:1;display:flex;align-items:center;gap:12px}
.journey__icon{display:inline-flex;width:44px;height:44px;border-radius:50%;background:rgba(18,116,76,.08);color:var(--brand);align-items:center;justify-content:center;flex:none}
.journey__icon svg{width:22px;height:22px}
.journey__step h3{position:relative;z-index:1;font-size:1.05rem;margin-top:var(--space-1)}
.journey__step p{position:relative;z-index:1;margin-top:8px;color:var(--muted);font-size:.93rem}
.journey__arrow{display:flex;align-items:center;justify-content:center;color:var(--brand);flex:none;opacity:.55;animation:journey-flow-v 1.8s ease-in-out infinite;width:100%}
.journey__arrow svg{width:26px;height:26px}
.journey__arrow:nth-of-type(2){animation-delay:.2s}
.journey__arrow:nth-of-type(4){animation-delay:.4s}
.journey__arrow:nth-of-type(6){animation-delay:.6s}
@keyframes journey-flow-v{0%,100%{transform:rotate(90deg) translateX(0);opacity:.4}50%{transform:rotate(90deg) translateX(7px);opacity:1}}
@keyframes journey-flow{0%,100%{transform:translateX(0);opacity:.4}50%{transform:translateX(7px);opacity:1}}
@media (min-width:820px){.journey__arrow{animation-name:journey-flow;width:auto}}
@media (prefers-reduced-motion:reduce){.journey__arrow{animation:none;opacity:.7;transform:rotate(90deg)}}
@media (prefers-reduced-motion:reduce) and (min-width:820px){.journey__arrow{transform:none}}

/* ------------------------------------------- selo de autoridade (Nossos Valores) */
.authority{--medal-size:64px;--medal-img:26px;--medal-ring-gap:7px;position:relative;display:flex;justify-content:space-between;gap:var(--space-1)}
.authority__track{position:absolute;top:calc(var(--medal-size) / 2);left:10%;right:10%;height:1.5px;background:var(--brand);opacity:.5;z-index:0}
.authority__node{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.authority__badge-wrap{position:relative;width:var(--medal-size);height:var(--medal-size);display:grid;place-items:center;flex:none;margin-bottom:6px}
.authority__ring{position:absolute;inset:calc(var(--medal-ring-gap) * -1);border-radius:50%;border:1.2px dashed var(--brand);opacity:.5;animation:medallion-spin 14s linear infinite}
.authority__badge{position:relative;z-index:1;width:100%;height:100%;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:var(--sh-sm);border:1px solid var(--line);color:var(--brand)}
.authority__badge svg{width:var(--medal-img);height:var(--medal-img)}
.authority__node h3{font-family:var(--font-title);font-weight:700;font-size:1rem;margin-top:6px}
.authority__node p{margin-top:6px;color:var(--muted);font-size:.86rem;max-width:22ch}
@media (max-width:819px){
  .authority{--medal-size:30px;--medal-img:14px;--medal-ring-gap:4px;flex-direction:column;gap:var(--space-1)}
  .authority__track{display:none}
  .authority__node{position:relative;flex-direction:column;align-items:flex-start;text-align:left;gap:8px;padding:var(--space-1);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card)}
  .authority__node:not(:last-child)::after{content:"";position:absolute;left:calc(var(--space-1) + (var(--medal-size) / 2) - 1px);top:100%;width:2px;height:var(--space-1);background:var(--brand);opacity:.55}
  .authority__badge-wrap{margin-bottom:0}
  .authority__node h3{margin-top:0}
  .authority__node p{max-width:none}
}
@media (prefers-reduced-motion:reduce){.authority__ring{animation:none}}

/* --------------------------------------------------------------------------
   16. Google Max — como funciona, para quem é, funil com comparação
   -------------------------------------------------------------------------- */

/* ------------------------------------------- comparação Hoje x Projeção */
.funnel__compare{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-1);align-items:center;margin-bottom:var(--space-2)}
.funnel__col{text-align:center;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--card)}
.funnel__col--proj{border-color:var(--brand);background:rgba(18,116,76,.05)}
.funnel__col-tag{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-bottom:8px}
.funnel__col strong{display:block;font-family:var(--font-title);font-size:1.7rem;color:var(--text)}
.funnel__col--proj strong{color:var(--brand)}
.funnel__col span:last-child{display:block;margin-top:4px;color:var(--muted);font-size:.85rem}
.funnel__compare-arrow{display:flex;align-items:center;justify-content:center;color:var(--line);flex:none}
.funnel__compare-arrow svg{width:22px;height:22px}
.funnel__meta{margin-top:var(--space-1);text-align:center;font-weight:600;color:var(--brand-ink);background:rgba(18,116,76,.06);border-radius:var(--r-md);padding:12px 16px}
@media (max-width:639px){
  .funnel__compare{grid-template-columns:1fr}
  .funnel__compare-arrow{transform:rotate(90deg);margin:0 auto}
}

/* ------------------------------------------- Como Funciona (passo a passo) */
.howsteps{display:flex;flex-direction:column;gap:var(--space-2)}
.howsteps__item{display:flex;gap:var(--space-1);position:relative}
.howsteps__marker{position:relative;flex:none;width:44px}
.howsteps__num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--brand);color:#fff;font-family:var(--font-title);font-weight:700;font-size:1.05rem;position:relative;z-index:1}
.howsteps__line{position:absolute;top:44px;left:50%;transform:translateX(-50%);width:2px;bottom:calc(var(--space-2) * -1);background:var(--line)}
.howsteps__item:last-child .howsteps__line{display:none}
.howsteps__body{padding-top:4px;flex:1}
.howsteps__day{display:inline-block;background:rgba(18,116,76,.08);color:var(--brand-ink);font-weight:600;font-size:.76rem;letter-spacing:.03em;padding:4px 12px;border-radius:var(--r-pill);margin-bottom:8px}
.howsteps__body h3{font-size:1.12rem}
.howsteps__body p{margin-top:8px;color:var(--muted)}
.howsteps__list{margin-top:10px;display:grid;gap:8px}
.howsteps__list li{display:flex;gap:9px;align-items:flex-start;font-size:.95rem;color:var(--muted)}
.howsteps__list li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:8px;flex:none}

.howsteps--center{max-width:620px;margin-inline:auto}
.howsteps--center .howsteps__item{flex-direction:column;align-items:center;text-align:center}
.howsteps--center .howsteps__body{padding-top:18px}
.howsteps--center .howsteps__day{margin-inline:auto}
@media (min-width:820px){
  .howsteps--center{max-width:640px}
  .howsteps--center .howsteps__item{flex-direction:row;align-items:flex-start;text-align:left}
  .howsteps--center .howsteps__body{padding-top:4px}
  .howsteps--center .howsteps__day{margin-inline:0}
  .howsteps--center .howsteps__line{display:none}
}

/* ------------------------------------------- para quem é (encaixe) */
.prose p{color:var(--muted);font-size:1.02rem;line-height:1.75}
.prose p + p{margin-top:var(--space-1)}

.fitlist{display:grid;gap:var(--space-1)}
@media (min-width:820px){.fitlist{grid-template-columns:repeat(2,1fr)}}
.fitlist--2col{grid-template-columns:1fr !important}
.fitlist__item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-1);background:var(--card)}
.fitlist__check{flex:none;width:30px;height:30px;border-radius:50%;background:rgba(18,116,76,.08);color:var(--brand);display:grid;place-items:center}
.fitlist__check svg{width:16px;height:16px}
.fitlist__item strong{display:block;font-family:var(--font-title);font-weight:700;font-size:1rem;margin-bottom:4px}
.fitlist__item p{color:var(--muted);font-size:.94rem}

/* utilitário: ocultar em telas pequenas */
@media (max-width:639px){.u-hide-mobile{display:none !important}}

/* ------------------------------------------- capa real de post (substitui .ph) */
.post__media{position:relative;aspect-ratio:16/9;overflow:hidden}
.post__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.post:hover .post__media img{transform:scale(1.05)}

/* capa grande dentro do artigo (post__media reaproveitado fora do card) */
.post__media--hero{border-radius:var(--r-lg);box-shadow:var(--sh-md)}
.post__media--hero img{border-radius:var(--r-lg)}

/* ------------------------------------------- divisor com brilho verde animado */
.section-divider{position:relative;height:50px;overflow:hidden}
.section-divider__track{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line)}
.section-divider__glow{position:absolute;bottom:0;left:-30%;width:30%;height:2px;background:linear-gradient(90deg,transparent,var(--brand),var(--accent),transparent);animation:divider-sweep 3.5s linear infinite}
.section-divider--flush{height:2px;margin-top:-1px}
.section-divider--flush .section-divider__track,
.section-divider--flush .section-divider__glow{bottom:auto;top:0}
@keyframes divider-sweep{from{left:-30%}to{left:100%}}
@media (prefers-reduced-motion:reduce){.section-divider__glow{animation:none;left:35%}}

/* ------------------------------------------- seletor de objetivos/tipos de campanha (Google Ads) */
.campsel{margin-top:var(--space-2)}
.campsel__tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:var(--space-2)}
.campsel__tab{padding:12px 24px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}
.campsel__tab:hover{border-color:var(--brand)}
.campsel__tab.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.campsel__body{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--space-2);align-items:stretch}
@media (max-width:860px){.campsel__body{grid-template-columns:1fr}}
.campsel__list{display:flex;flex-direction:column;gap:10px}
.campsel__item{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--card);color:var(--text);text-align:left;cursor:pointer;font:inherit;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}
.campsel__item:hover{border-color:var(--brand)}
.campsel__item.is-active{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--sh-md)}
.campsel__item-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(18,116,76,.1);color:var(--brand);flex:none;transition:background .2s ease,color .2s ease}
.campsel__item.is-active .campsel__item-icon{background:rgba(255,255,255,.2);color:#fff}
.campsel__item-icon svg{width:18px;height:18px}
.campsel__item-label{font-weight:600;font-size:.92rem;line-height:1.3}
.campsel__detail{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--space-2);box-shadow:var(--sh-sm);display:flex;flex-direction:column}
.campsel__detail-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:rgba(18,116,76,.1);color:var(--brand);margin-bottom:var(--space-1)}
.campsel__detail-icon svg{width:26px;height:26px}
.campsel__detail-counter{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--brand);text-transform:uppercase;margin-bottom:8px}
.campsel__detail-title{font-size:1.4rem;margin-bottom:10px}
.campsel__detail-desc{color:var(--muted);line-height:1.6;margin-bottom:var(--space-1)}
.campsel__detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--space-1)}
.campsel__tag{padding:6px 14px;border-radius:var(--r-pill);background:var(--bg-soft);border:1px solid var(--line);font-size:.8rem;color:var(--text);font-weight:500}
.campsel__dots{display:flex;justify-content:flex-end;gap:6px;margin-top:auto;padding-top:var(--space-1)}
.campsel__dot{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .2s ease,width .2s ease}
.campsel__dot.is-active{background:var(--brand);width:18px;border-radius:var(--r-pill)}

/* ------------------------------------------- layout texto + widget lado a lado (Campanhas Google Ads) */
.campsel-layout{display:grid;grid-template-columns:minmax(0,480px) 1fr;gap:var(--space-3);align-items:center}
@media (max-width:900px){.campsel-layout{grid-template-columns:1fr;gap:var(--space-2)}}
.campsel-layout .campsel{margin-top:0}
.campsel-layout .campsel__body{grid-template-columns:minmax(0,150px) minmax(0,1fr)}
.campsel-layout .campsel__item{padding:11px 14px;gap:10px}
.campsel-layout .campsel__item-icon{width:30px;height:30px}
.campsel-layout .campsel__item-icon svg{width:15px;height:15px}
.campsel-layout .campsel__item-label{font-size:.82rem}
.campsel-layout .campsel__detail{padding:var(--space-1)}
.campsel-layout .campsel__detail-title{font-size:1.1rem}
.campsel-layout .campsel__detail-desc{font-size:.9rem}
.campsel-layout__text{max-width:480px}

/* ------------------------------------------- caixa de imagem provisória (aguardando imagem final) */
.imgph{aspect-ratio:4/3;border-radius:var(--r-lg);border:2px dashed var(--line);background:var(--bg-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);text-align:center;padding:var(--space-2)}
.imgph svg{width:40px;height:40px;color:var(--brand);opacity:.5}
.imgph span{font-size:.85rem;font-weight:600}

/* ------------------------------------------- mockup de relatório (Transparência nos Dados) */
.reportmock{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-lg);border:1px solid var(--line);overflow:hidden}
.reportmock__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px var(--space-1);border-bottom:1px solid var(--line)}
.reportmock__title{font-family:var(--font-title);font-weight:700;font-size:.95rem;color:#111}
.reportmock__period{flex:none;font-size:.72rem;color:var(--muted);background:var(--bg-soft);padding:4px 10px;border-radius:var(--r-pill);white-space:nowrap}
.reportmock__stats{display:grid;grid-template-columns:repeat(3,1fr)}
.reportmock__stat{padding:14px var(--space-1);text-align:left;border-right:1px solid var(--line)}
.reportmock__stat:last-child{border-right:none}
.reportmock__stat strong{display:block;font-family:var(--font-title);font-size:1.25rem;color:#111}
.reportmock__stat span{font-size:.7rem;color:var(--muted)}
.reportmock__chart{padding:var(--space-1);border-top:1px solid var(--line)}
.reportmock__bars{display:flex;align-items:flex-end;gap:8px;height:90px}
.reportmock__bars i{flex:1;background:linear-gradient(180deg,var(--accent),var(--brand));border-radius:4px 4px 0 0}
.reportmock__foot{display:flex;align-items:center;gap:10px;padding:12px var(--space-1);background:var(--bg-soft);border-top:1px solid var(--line);font-size:.8rem;color:var(--brand-ink);font-weight:600}
.reportmock__foot svg{width:16px;height:16px;flex:none}
@media (max-width:479px){
  .reportmock__stats{grid-template-columns:1fr;}
  .reportmock__stat{border-right:none;border-bottom:1px solid var(--line)}
  .reportmock__stat:last-child{border-bottom:none}
}

/* ------------------------------------------- imagem real dentro de layout texto+imagem */
.imgshot{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-md)}
.imgshot img{display:block;width:100%;height:auto;border-radius:var(--r-lg)}
/* Dentro de .grid--2 (texto + imagem lado a lado), o grid estica os itens
   por padrão (align-items:stretch) pra ocupar a altura da linha inteira.
   Como a imagem é mais curta que o texto ao lado e o .imgshot não tem
   fundo próprio, a caixa esticada deixava aparecer o fundo da seção
   (cinza, em .section--soft) como uma "sobra" abaixo da imagem. */
.grid--2 > .imgshot{align-self:center}
.imgshot--flat{border-radius:0;overflow:visible;box-shadow:none;display:flex;align-items:center}
.imgshot--flat img{border-radius:0}

/* ------------------------------------------- segmentação radial (núcleo animado + cards em órbita) */
.segradial{position:relative;display:none;max-width:740px;margin:0 auto;aspect-ratio:960/700}
.segradial__rings{position:absolute;inset:0;pointer-events:none}
.segradial__ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid var(--line);aspect-ratio:1}
.segradial__ring--1{width:34%}
.segradial__ring--2{width:60%;border-style:dashed;opacity:.7}
.segradial__dot{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--line)}
.segradial__core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:14%;aspect-ratio:1;border-radius:50%;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-md);display:grid;place-items:center;z-index:2}
.segradial__core-inner{position:relative;width:58%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--brand),var(--brand-deep));display:grid;place-items:center;color:#eafff3}
.segradial__core-inner svg{width:46%;height:46%}
.segradial__pulse{position:absolute;inset:0;border-radius:50%;border:1px solid var(--accent);opacity:0;animation:segradial-pulse 3s ease-out infinite}
.segradial__pulse--delay{animation-delay:1.5s}
@keyframes segradial-pulse{0%{opacity:.6;transform:scale(1)}100%{opacity:0;transform:scale(1.85)}}
.segradial__items{position:absolute;inset:0}
.segradial__item{position:absolute;transform:translate(-50%,-50%);width:min(210px,23%);min-width:150px;background:var(--card);border-radius:var(--r-md);box-shadow:var(--sh-md);padding:16px 18px;text-align:center}
.segradial__item h3{font-size:1rem;margin:0}
.segradial__item p{margin:4px 0 0;font-size:.82rem;color:var(--muted);line-height:1.4}
.segradial__item--top{left:50%;top:11.4%}
.segradial__item--ur{left:74.4%;top:30.7%}
.segradial__item--lr{left:74.4%;top:69.3%}
.segradial__item--bottom{left:50%;top:88.6%}
.segradial__item--ll{left:25.6%;top:69.3%}
.segradial__item--ul{left:25.6%;top:30.7%}
.segradial__mobile{display:grid}
@media (min-width:900px){
  .segradial{display:block}
  .segradial__mobile{display:none}
}
@media (prefers-reduced-motion:reduce){
  .segradial__pulse{animation:none;opacity:0}
}

/* ------------------------------------------- mockup de busca (Na Prática — Google Ads) */
.serpmock{max-width:600px;margin:0 auto}
.serpmock__search{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-pill);padding:14px 22px;margin-bottom:20px;box-shadow:var(--sh-md)}
.serpmock__search svg{width:18px;height:18px;color:var(--muted);flex:none}
.serpmock__search-text{font-size:.95rem;color:#333;white-space:nowrap;overflow:hidden;display:inline-flex;align-items:center}
.serpmock__caret{width:1px;height:1.1em;background:var(--muted);display:inline-block;margin-left:1px;animation:serp-caret .9s step-end infinite}
@keyframes serp-caret{50%{opacity:0}}
.serpmock__card{background:var(--card);border:1.5px solid var(--brand);border-radius:var(--r-lg);padding:24px 28px;box-shadow:var(--sh-md)}
.serpmock__tagrow{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.serpmock__tag{font-size:.72rem;font-weight:600;color:var(--brand-ink);border:1px solid var(--brand);border-radius:4px;padding:1px 6px}
.serpmock__url{font-size:.85rem;color:#444}
.serpmock__title{color:#1a0dab;font-size:1.15rem;font-weight:500;margin-bottom:8px;line-height:1.35}
.serpmock__desc{color:#444;font-size:.92rem;line-height:1.55;margin-bottom:14px}
.serpmock__links{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:10px}
.serpmock__links a{color:#1a0dab;font-size:.88rem;text-decoration:none}
.serpmock__links a:hover{text-decoration:underline}
.serpmock__call{display:flex;align-items:center;gap:8px;color:#1a0dab;font-size:.88rem;font-weight:500}
.serpmock__call svg{width:15px;height:15px}
.serpmock__steps{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:var(--space-1)}
.serpmock__step{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.95rem;color:#111}
.serpmock__num{width:32px;height:32px;border-radius:50%;background:var(--brand-ink);color:#fff;display:grid;place-items:center;font-size:.85rem;font-weight:700;font-style:normal}
.serpmock__num--gold{background:var(--gold);color:#3a2b06}
.serpmock__sep{width:6px;height:6px;border-radius:50%;background:var(--brand);opacity:.5}
@media (max-width:479px){
  .serpmock__steps{gap:8px}
  .serpmock__sep{display:none}
  .serpmock__step{width:45%}
  .serpmock__card{padding:20px}
}
@media (prefers-reduced-motion:reduce){
  .serpmock__caret{animation:none;opacity:1}
}

/* --------------------------------------------------------------------------
   21. Correções pontuais — Google Ads
   -------------------------------------------------------------------------- */

/* Segmentação: o reveal (.js .reveal / .js .reveal.is-in) sobrescrevia o
   transform de centralização dos cards (translate(-50%,-50%)), fazendo-os
   "pular" para a direita/baixo em metade da própria largura/altura assim
   que entravam em tela. Recompomos o transform combinando as duas partes. */
.js .segradial__item.reveal{transform:translate(-50%,-50%) translateY(16px)}
.js .segradial__item.reveal.is-in{transform:translate(-50%,-50%)}

/* Campanhas Google Ads: pontos de paginação alinhados à esquerda */
.campsel__dots{justify-content:flex-start}

/* Transparência nos Dados: parágrafos empilhados e centralizados */
.section-head--center .lead + .lead{margin-top:var(--space-1)}

/* Por que o Google Ads — layout alternado esquerda/direita, sem grade */
.whytimeline{position:relative;max-width:860px;margin:0 auto}
.whytimeline__line{position:absolute;left:50%;top:var(--wt-top,37px);bottom:var(--wt-bottom,37px);width:1px;background:var(--line);transform:translateX(-50%)}
.whytimeline__row{position:relative;display:grid;grid-template-columns:1fr 40px 1fr;align-items:center;gap:0 var(--space-2)}
.whytimeline__row + .whytimeline__row{margin-top:var(--space-2)}
.whytimeline__col--text{min-width:0}
.whytimeline__row--l .whytimeline__col--text{text-align:right}
.whytimeline__row--r .whytimeline__col--text{text-align:left}
.whytimeline__marker{position:relative;display:flex;align-items:center;justify-content:center}
.whytimeline__dot{position:relative;width:14px;height:14px;border-radius:50%;background:var(--brand);border:3px solid var(--card);box-shadow:0 0 0 1px var(--line);z-index:2}
.whytimeline__dot--gold{background:var(--gold)}
.whytimeline h3{font-size:1.1rem;margin:0 0 6px}
.whytimeline p{margin:0;color:var(--muted);line-height:1.6;font-size:.95rem}
@media (max-width:719px){
  .whytimeline__row{grid-template-columns:28px 1fr;gap:0 14px}
  .whytimeline__line{left:13px;transform:none;top:var(--wt-top-m,49px);bottom:var(--wt-bottom-m,37px)}
  .whytimeline__marker{grid-row:1;grid-column:1}
  .whytimeline__col--text,.whytimeline__row--l .whytimeline__col--text,.whytimeline__row--r .whytimeline__col--text{grid-row:1;grid-column:2;text-align:left}
  .whytimeline__col--spacer{display:none}
}

/* --------------------------------------------------------------------------
   22. Na Prática — simulação de navegação (Sites / Landing Pages / E-commerce)

   Três variantes de uma mesma casca (.navsim), rodando dentro do monitor:
     .navsim--site  → navegação entre páginas de um site institucional
     .navsim--shop  → vitrine → produto → carrinho, com item indo pro carrinho
     .navsim--lp    → rolagem contínua de uma landing page até o formulário

   Tudo em CSS: cada variante define --nsim-dur e todas as animações usam essa
   mesma duração, então os elementos ficam em fase entre si sem precisar de JS.
   -------------------------------------------------------------------------- */
.devicemock{position:relative;max-width:860px;margin:0 auto;width:100%}
.devicemock__frame{width:100%;height:auto;display:block;pointer-events:none;user-select:none}
.devicemock__screen{
  position:absolute;left:1.3%;top:4.6%;width:97.3%;height:71.5%;
  border-radius:2.2% / 4%;overflow:hidden;background:#fff;
  box-shadow:inset 0 0 0 1px rgba(10,63,43,.06);
}

/* ---------------------------------------------------------- casca comum */
.navsim{
  --nsim-dur:15s;
  position:relative;width:100%;height:100%;overflow:hidden;
  display:flex;flex-direction:column;font-family:var(--font-body);background:#fff;
}

/* barra do navegador */
.navsim__top{
  flex:none;height:13%;position:relative;z-index:2;
  display:flex;align-items:center;gap:2.4%;padding:0 3%;
  background:#eef2f0;border-bottom:1px solid var(--line);
}
.navsim__dots{display:flex;gap:clamp(3px,.45vw,5px);flex:none}
.navsim__dots i{width:clamp(4px,.6vw,7px);height:clamp(4px,.6vw,7px);border-radius:50%;display:block;background:var(--line)}
.navsim__dots i:nth-child(1){background:#ff5f57}
.navsim__dots i:nth-child(2){background:#febc2e}
.navsim__dots i:nth-child(3){background:#28c840}
.navsim__omni{
  flex:1;min-width:0;height:62%;border-radius:999px;background:#fff;
  border:1px solid var(--line);display:flex;align-items:center;gap:clamp(3px,.5vw,6px);
  padding:0 3.5%;font-size:clamp(.4rem,1.05vw,.64rem);color:var(--muted);
  letter-spacing:.01em;overflow:hidden;
}
.navsim__lock{width:clamp(5px,.75vw,9px);height:auto;flex:none;color:var(--brand)}
.navsim__host{color:var(--text);font-weight:600;white-space:nowrap}
.navsim__paths{position:relative;display:block;flex:1;min-width:0;height:1.25em}
.navsim__paths span{position:absolute;left:0;top:0;opacity:0;white-space:nowrap}
.navsim__progress{
  position:absolute;left:0;bottom:-1px;height:2px;width:100%;z-index:3;
  background:linear-gradient(90deg,var(--brand),var(--accent));
  transform:scaleX(0);transform-origin:0 50%;opacity:0;
  animation:nsim-progress var(--nsim-dur) linear infinite;
}

/* menu do site */
.navsim__nav{
  flex:none;height:14%;position:relative;z-index:1;
  display:flex;align-items:center;padding:0 3.5%;
  background:#fff;border-bottom:1px solid var(--line);
}
.navsim__brand{
  display:flex;align-items:center;gap:clamp(3px,.5vw,6px);
  font-family:var(--font-title);font-weight:800;letter-spacing:-.015em;
  font-size:clamp(.46rem,1.25vw,.76rem);color:var(--brand-ink);white-space:nowrap;
}
.navsim__brand::before{
  content:"";width:clamp(7px,1vw,12px);height:clamp(7px,1vw,12px);border-radius:3px;flex:none;
  background:linear-gradient(135deg,var(--brand-ink),var(--brand) 60%,var(--accent));
}
.navsim__links{
  position:absolute;right:2%;top:0;bottom:0;width:60%;
  display:grid;grid-template-columns:repeat(5,1fr);align-items:center;
}
.navsim__link{
  position:relative;text-align:center;white-space:nowrap;
  font-size:clamp(.4rem,1.02vw,.62rem);font-weight:600;color:var(--muted);
}
.navsim__ink{
  position:absolute;bottom:0;left:38%;width:12%;height:2px;border-radius:999px;
  background:var(--brand);
  animation:nsim-ink var(--nsim-dur) cubic-bezier(.65,0,.35,1) infinite;
}

/* palco das páginas */
.navsim__stage{position:relative;flex:1;min-height:0;background:var(--bg-soft);overflow:hidden}
.navsim__view{
  position:absolute;inset:0;padding:4.2% 4.6%;opacity:0;
  display:flex;flex-direction:column;gap:3.6%;
}
.navsim__view > *{
  animation:nsim-rise var(--nsim-dur) var(--ease) infinite;
  animation-delay:calc(var(--in,0s) + var(--i,0) * .11s);
}

/* ------------------------------------------- peças de conteúdo (skeleton)
   Alturas em clamp() e não em %: dentro do monitor os blocos vivem em
   containers de alturas bem diferentes (hero, card, coluna de formulário),
   e a mesma barra em % saía gorda num lugar e fina no outro. */
.nsim-hero{
  flex:1.15;min-height:0;border-radius:9px;position:relative;overflow:hidden;
  padding:0 6.5%;display:flex;flex-direction:column;justify-content:center;
  gap:clamp(6px,.85vw,11px);
  background:linear-gradient(135deg,var(--brand-ink),var(--brand) 58%,#199a66);
  box-shadow:0 6px 18px rgba(10,63,43,.14);
}
.nsim-hero::after{
  content:"";position:absolute;right:-10%;top:-55%;width:56%;padding-top:56%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.18),transparent 62%);
}
.nsim-hero > *{position:relative;z-index:1}

.nsim-t{height:clamp(6px,.9vw,11px);width:70%;flex:none;border-radius:999px;background:rgba(10,63,43,.15)}
.nsim-t--lg{height:clamp(9px,1.3vw,16px);width:56%}
.nsim-l{height:clamp(4px,.6vw,7px);width:90%;flex:none;border-radius:999px;background:rgba(10,63,43,.085)}
.nsim-eyebrow{height:clamp(4px,.55vw,6px);width:16%;flex:none;border-radius:999px;background:rgba(18,116,76,.42)}
.nsim-btn{
  height:clamp(12px,1.7vw,21px);width:36%;flex:none;border-radius:999px;
  background:var(--brand);box-shadow:0 3px 10px rgba(18,116,76,.3);
}
.nsim-field{height:clamp(11px,1.6vw,19px);flex:none;border-radius:6px;background:#fff;border:1px solid var(--line)}
.nsim-hero .nsim-t{background:rgba(255,255,255,.94)}
.nsim-hero .nsim-l{background:rgba(255,255,255,.45)}
.nsim-hero .nsim-btn{background:#fff;box-shadow:0 3px 10px rgba(6,30,20,.24)}

.nsim-row{display:flex;gap:clamp(6px,.9vw,12px);flex:1;min-height:0}
.nsim-col{display:flex;flex-direction:column;gap:clamp(5px,.75vw,10px);flex:1;min-width:0;min-height:0;justify-content:center}
.nsim-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:clamp(6px,.9vw,12px);flex:1;min-height:0}

.nsim-card{
  flex:1;min-width:0;min-height:0;border-radius:8px;background:#fff;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(10,63,43,.05);
  display:flex;flex-direction:column;justify-content:center;
  gap:clamp(5px,.7vw,9px);padding:clamp(8px,1.15vw,15px);
}
.nsim-card__ico{
  width:clamp(16px,2.4vw,30px);height:clamp(16px,2.4vw,30px);border-radius:7px;flex:none;
  background:linear-gradient(135deg,rgba(18,116,76,.22),rgba(111,227,166,.34));
}
.nsim-shot{
  flex:1;min-width:0;min-height:0;border-radius:8px;position:relative;overflow:hidden;
  background:linear-gradient(150deg,rgba(12,86,58,.42),rgba(18,116,76,.3) 45%,rgba(111,227,166,.42));
  border:1px solid rgba(18,116,76,.16);
}
.nsim-shot::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 26% 20%,rgba(255,255,255,.42),transparent 55%);
}
.nsim-avatar{
  width:clamp(18px,2.7vw,34px);height:clamp(18px,2.7vw,34px);border-radius:50%;flex:none;
  background:linear-gradient(135deg,rgba(18,116,76,.3),rgba(111,227,166,.45));
  box-shadow:inset 0 0 0 1px rgba(18,116,76,.2);
}

/* vitrine / produto */
.nsim-prod{
  flex:1;min-width:0;min-height:0;border-radius:8px;overflow:hidden;background:#fff;
  border:1px solid var(--line);box-shadow:0 2px 8px rgba(10,63,43,.05);
  display:flex;flex-direction:column;
}
.nsim-prod__img{
  flex:1;min-height:0;position:relative;
  background:linear-gradient(150deg,rgba(12,86,58,.4),rgba(18,116,76,.28) 45%,rgba(111,227,166,.44));
}
.nsim-prod__img::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.55),transparent 60%);
}
.nsim-prod__body{
  flex:none;padding:clamp(6px,.9vw,11px);display:flex;flex-direction:column;gap:clamp(4px,.6vw,7px);
}
.nsim-linha{
  display:flex;align-items:center;gap:clamp(7px,1vw,13px);flex:none;
  padding:clamp(7px,1vw,12px);border-radius:8px;background:#fff;border:1px solid var(--line);
}
.nsim-thumb{
  width:clamp(20px,3vw,38px);height:clamp(20px,3vw,38px);border-radius:6px;flex:none;
  background:linear-gradient(150deg,rgba(12,86,58,.4),rgba(111,227,166,.44));
}

/* ---------------------------------------------------- cursor + clique */
.navsim__cursor{
  position:absolute;width:clamp(10px,1.5vw,17px);height:clamp(10px,1.5vw,17px);z-index:6;
  transform:translate(-18%,-8%);filter:drop-shadow(0 2px 5px rgba(10,63,43,.4));opacity:0;
}
.navsim__cursor svg{width:100%;height:100%;fill:var(--brand-ink);stroke:#fff;stroke-width:1.4}
.navsim__cursor::after{
  content:"";position:absolute;left:6%;top:2%;width:100%;height:100%;border-radius:50%;
  border:2px solid var(--brand);opacity:0;
  animation:nsim-click var(--nsim-dur) ease-out infinite;
}

/* ============================ VARIANTE 1 — SITE INSTITUCIONAL ============================ */
.navsim--site{--nsim-dur:15s}
.navsim--site .navsim__cursor{animation:nsim-cursor-site var(--nsim-dur) cubic-bezier(.5,.05,.2,1) infinite}
.navsim--site .navsim__view--1{animation:nsim-view-1 var(--nsim-dur) var(--ease) infinite}
.navsim--site .navsim__view--2{animation:nsim-view-2 var(--nsim-dur) var(--ease) infinite;--in:2.5s}
.navsim--site .navsim__view--3{animation:nsim-view-3 var(--nsim-dur) var(--ease) infinite;--in:5.05s}
.navsim--site .navsim__view--4{animation:nsim-view-4 var(--nsim-dur) var(--ease) infinite;--in:7.6s}
.navsim--site .navsim__view--5{animation:nsim-view-5 var(--nsim-dur) var(--ease) infinite;--in:10.15s}
.navsim--site .navsim__paths span:nth-child(1){animation:nsim-step-1 var(--nsim-dur) steps(1,end) infinite}
.navsim--site .navsim__paths span:nth-child(2){animation:nsim-step-2 var(--nsim-dur) steps(1,end) infinite}
.navsim--site .navsim__paths span:nth-child(3){animation:nsim-step-3 var(--nsim-dur) steps(1,end) infinite}
.navsim--site .navsim__paths span:nth-child(4){animation:nsim-step-4 var(--nsim-dur) steps(1,end) infinite}
.navsim--site .navsim__paths span:nth-child(5){animation:nsim-step-5 var(--nsim-dur) steps(1,end) infinite}

/* páginas: entram de baixo, saem por cima */
@keyframes nsim-view-1{
  0%,16%{opacity:1;transform:none}
  18.5%,94.5%{opacity:0;transform:translateY(-9px) scale(.99)}
  97%,100%{opacity:1;transform:none}
}
@keyframes nsim-view-2{
  0%,16%{opacity:0;transform:translateY(14px) scale(.99)}
  18.5%,33%{opacity:1;transform:none}
  35.5%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
@keyframes nsim-view-3{
  0%,33%{opacity:0;transform:translateY(14px) scale(.99)}
  35.5%,50%{opacity:1;transform:none}
  52.5%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
@keyframes nsim-view-4{
  0%,50%{opacity:0;transform:translateY(14px) scale(.99)}
  52.5%,67%{opacity:1;transform:none}
  69.5%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
@keyframes nsim-view-5{
  0%,67%{opacity:0;transform:translateY(14px) scale(.99)}
  69.5%,94.5%{opacity:1;transform:none}
  97%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
/* troca do caminho na barra de endereço (corte seco, como num navegador) */
@keyframes nsim-step-1{0%,17%{opacity:1}17.01%,95.5%{opacity:0}95.51%,100%{opacity:1}}
@keyframes nsim-step-2{0%,17%{opacity:0}17.01%,34%{opacity:1}34.01%,100%{opacity:0}}
@keyframes nsim-step-3{0%,34%{opacity:0}34.01%,51%{opacity:1}51.01%,100%{opacity:0}}
@keyframes nsim-step-4{0%,51%{opacity:0}51.01%,68%{opacity:1}68.01%,100%{opacity:0}}
@keyframes nsim-step-5{0%,68%{opacity:0}68.01%,95.5%{opacity:1}95.51%,100%{opacity:0}}

@keyframes nsim-cursor-site{
  0%{left:24%;top:64%;opacity:0}
  3%{opacity:1}
  7%{left:26%;top:60%}
  16%{left:56%;top:20%}
  21%{left:56%;top:20%}
  27%{left:34%;top:58%}
  33%{left:68%;top:20%}
  38%{left:68%;top:20%}
  44%{left:40%;top:62%}
  50%{left:80%;top:20%}
  55%{left:80%;top:20%}
  61%{left:36%;top:56%}
  67%{left:92%;top:20%}
  72%{left:92%;top:20%}
  79%{left:24%;top:56%}
  86%{left:16.5%;top:80%}
  93%{left:16.5%;top:80%;opacity:1}
  97%{opacity:0}
  100%{left:24%;top:64%;opacity:0}
}
@keyframes nsim-ink{
  0%,15%{left:38%}
  18%,32%{left:50%}
  35%,49%{left:62%}
  52%,66%{left:74%}
  69%,95%{left:86%}
  98%,100%{left:38%}
}
@keyframes nsim-click{
  0%,15.6%{transform:scale(.15);opacity:0}
  16%{transform:scale(.15);opacity:.9}
  19.5%{transform:scale(2.4);opacity:0}
  32.6%{transform:scale(.15);opacity:0}
  33%{transform:scale(.15);opacity:.9}
  36.5%{transform:scale(2.4);opacity:0}
  49.6%{transform:scale(.15);opacity:0}
  50%{transform:scale(.15);opacity:.9}
  53.5%{transform:scale(2.4);opacity:0}
  66.6%{transform:scale(.15);opacity:0}
  67%{transform:scale(.15);opacity:.9}
  70.5%{transform:scale(2.4);opacity:0}
  85.6%{transform:scale(.15);opacity:0}
  86%{transform:scale(.15);opacity:.9}
  89.5%{transform:scale(2.4);opacity:0}
  100%{transform:scale(.15);opacity:0}
}
@keyframes nsim-progress{
  0%,16%{transform:scaleX(0);opacity:0}
  16.2%{transform:scaleX(0);opacity:1}
  17.4%{transform:scaleX(.7)}
  18.6%{transform:scaleX(1);opacity:1}
  19.6%{transform:scaleX(1);opacity:0}
  19.7%,33%{transform:scaleX(0);opacity:0}
  33.2%{transform:scaleX(0);opacity:1}
  34.4%{transform:scaleX(.7)}
  35.6%{transform:scaleX(1);opacity:1}
  36.6%{transform:scaleX(1);opacity:0}
  36.7%,50%{transform:scaleX(0);opacity:0}
  50.2%{transform:scaleX(0);opacity:1}
  51.4%{transform:scaleX(.7)}
  52.6%{transform:scaleX(1);opacity:1}
  53.6%{transform:scaleX(1);opacity:0}
  53.7%,67%{transform:scaleX(0);opacity:0}
  67.2%{transform:scaleX(0);opacity:1}
  68.4%{transform:scaleX(.7)}
  69.6%{transform:scaleX(1);opacity:1}
  70.6%{transform:scaleX(1);opacity:0}
  70.7%,100%{transform:scaleX(0);opacity:0}
}
@keyframes nsim-rise{
  0%{opacity:0;transform:translateY(10px)}
  6%{opacity:1;transform:none}
  100%{opacity:1;transform:none}
}
/* botão do formulário vira "enviado" no fim do ciclo */
.nsim-submit{position:relative;flex:none;width:46%;height:clamp(12px,1.7vw,21px)}
.nsim-submit .nsim-btn{width:100%;height:100%}
.nsim-sent{
  position:absolute;inset:0;border-radius:999px;background:var(--brand-ink);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:clamp(.3rem,.72vw,.5rem);font-weight:700;letter-spacing:.02em;
  white-space:nowrap;opacity:0;
  animation:nsim-sent var(--nsim-dur) var(--ease) infinite;
}
@keyframes nsim-sent{
  0%,86%{opacity:0}
  88.5%,94%{opacity:1}
  96%,100%{opacity:0}
}

/* ============================ VARIANTE 2 — E-COMMERCE ============================ */
.navsim--shop{--nsim-dur:14s}
.navsim--shop .navsim__links{grid-template-columns:repeat(4,1fr);width:52%}
.navsim--shop .navsim__ink{width:13%;left:46%;animation:nsim-ink-shop var(--nsim-dur) cubic-bezier(.65,0,.35,1) infinite}
.navsim--shop .navsim__progress{animation:nsim-progress-shop var(--nsim-dur) linear infinite}
.navsim--shop .navsim__cursor{animation:nsim-cursor-shop var(--nsim-dur) cubic-bezier(.5,.05,.2,1) infinite}
.navsim--shop .navsim__cursor::after{animation:nsim-click-shop var(--nsim-dur) ease-out infinite}
.navsim--shop .navsim__view--1{animation:nsim-shop-1 var(--nsim-dur) var(--ease) infinite}
.navsim--shop .navsim__view--2{animation:nsim-shop-2 var(--nsim-dur) var(--ease) infinite;--in:2.2s}
.navsim--shop .navsim__view--3{animation:nsim-shop-3 var(--nsim-dur) var(--ease) infinite;--in:4.7s}
.navsim--shop .navsim__view--4{animation:nsim-shop-4 var(--nsim-dur) var(--ease) infinite;--in:9.9s}
.navsim--shop .navsim__paths span:nth-child(1){animation:nsim-shopstep-1 var(--nsim-dur) steps(1,end) infinite}
.navsim--shop .navsim__paths span:nth-child(2){animation:nsim-shopstep-2 var(--nsim-dur) steps(1,end) infinite}
.navsim--shop .navsim__paths span:nth-child(3){animation:nsim-shopstep-3 var(--nsim-dur) steps(1,end) infinite}
.navsim--shop .navsim__paths span:nth-child(4){animation:nsim-shopstep-4 var(--nsim-dur) steps(1,end) infinite}

@keyframes nsim-shop-1{
  0%,15%{opacity:1;transform:none}
  17.5%,94%{opacity:0;transform:translateY(-9px) scale(.99)}
  96.5%,100%{opacity:1;transform:none}
}
@keyframes nsim-shop-2{
  0%,15%{opacity:0;transform:translateY(14px) scale(.99)}
  17.5%,33%{opacity:1;transform:none}
  35.5%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
@keyframes nsim-shop-3{
  0%,33%{opacity:0;transform:translateY(14px) scale(.99)}
  35.5%,70%{opacity:1;transform:none}
  72.5%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
@keyframes nsim-shop-4{
  0%,70%{opacity:0;transform:translateY(14px) scale(.99)}
  72.5%,94%{opacity:1;transform:none}
  96.5%,100%{opacity:0;transform:translateY(-9px) scale(.99)}
}
@keyframes nsim-shopstep-1{0%,16%{opacity:1}16.01%,95%{opacity:0}95.01%,100%{opacity:1}}
@keyframes nsim-shopstep-2{0%,16%{opacity:0}16.01%,34%{opacity:1}34.01%,100%{opacity:0}}
@keyframes nsim-shopstep-3{0%,34%{opacity:0}34.01%,71%{opacity:1}71.01%,100%{opacity:0}}
@keyframes nsim-shopstep-4{0%,71%{opacity:0}71.01%,95%{opacity:1}95.01%,100%{opacity:0}}
/* a página de produto continua dentro de "Produtos": o traço não pula pra
   "Contato" — ele fica onde a navegação realmente está. */
@keyframes nsim-ink-shop{
  0%,14%{left:46%}
  17%,69%{left:59%}
  72%,94%{left:85%}
  97%,100%{left:46%}
}
/* cliques: 15% menu Produtos · 33% card do produto · 52% adicionar · 70% carrinho · 87% finalizar */
@keyframes nsim-cursor-shop{
  0%{left:22%;top:62%;opacity:0}
  3%{opacity:1}
  7%{left:24%;top:58%}
  15%{left:65.5%;top:20%}
  20%{left:65.5%;top:20%}
  33%{left:38.6%;top:71%}
  38%{left:38.6%;top:71%}
  46%{left:58%;top:72%}
  52%{left:66%;top:78%}
  58%{left:66%;top:78%}
  70%{left:91.5%;top:20%}
  75%{left:91.5%;top:20%}
  82%{left:70%;top:54%}
  87%{left:77%;top:71%}
  93%{left:77%;top:71%;opacity:1}
  97%{opacity:0}
  100%{left:22%;top:62%;opacity:0}
}
@keyframes nsim-click-shop{
  0%,14.6%{transform:scale(.15);opacity:0}
  15%{transform:scale(.15);opacity:.9}
  18.5%{transform:scale(2.4);opacity:0}
  32.6%{transform:scale(.15);opacity:0}
  33%{transform:scale(.15);opacity:.9}
  36.5%{transform:scale(2.4);opacity:0}
  51.6%{transform:scale(.15);opacity:0}
  52%{transform:scale(.15);opacity:.9}
  55.5%{transform:scale(2.4);opacity:0}
  69.6%{transform:scale(.15);opacity:0}
  70%{transform:scale(.15);opacity:.9}
  73.5%{transform:scale(2.4);opacity:0}
  86.6%{transform:scale(.15);opacity:0}
  87%{transform:scale(.15);opacity:.9}
  90.5%{transform:scale(2.4);opacity:0}
  100%{transform:scale(.15);opacity:0}
}
@keyframes nsim-progress-shop{
  0%,15%{transform:scaleX(0);opacity:0}
  15.2%{transform:scaleX(0);opacity:1}
  16.4%{transform:scaleX(.7)}
  17.6%{transform:scaleX(1);opacity:1}
  18.6%{transform:scaleX(1);opacity:0}
  18.7%,33%{transform:scaleX(0);opacity:0}
  33.2%{transform:scaleX(0);opacity:1}
  34.4%{transform:scaleX(.7)}
  35.6%{transform:scaleX(1);opacity:1}
  36.6%{transform:scaleX(1);opacity:0}
  36.7%,70%{transform:scaleX(0);opacity:0}
  70.2%{transform:scaleX(0);opacity:1}
  71.4%{transform:scaleX(.7)}
  72.6%{transform:scaleX(1);opacity:1}
  73.6%{transform:scaleX(1);opacity:0}
  73.7%,100%{transform:scaleX(0);opacity:0}
}
/* selo do carrinho no menu */
.nsim-badge{
  position:absolute;top:16%;right:2%;
  min-width:clamp(8px,1.15vw,14px);height:clamp(8px,1.15vw,14px);padding:0 2px;
  border-radius:999px;background:var(--brand);color:#fff;
  font-size:clamp(.3rem,.78vw,.46rem);font-weight:800;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transform:scale(0);animation:nsim-badge var(--nsim-dur) var(--ease) infinite;
}
@keyframes nsim-badge{
  0%,55%{transform:scale(0)}
  58%{transform:scale(1.35)}
  61%,95%{transform:scale(1)}
  96%,100%{transform:scale(0)}
}
/* item voando pro carrinho */
.nsim-fly{
  position:absolute;width:clamp(9px,1.25vw,15px);height:clamp(9px,1.25vw,15px);
  border-radius:4px;z-index:5;opacity:0;
  background:linear-gradient(135deg,var(--brand),var(--accent));
  box-shadow:0 3px 9px rgba(10,63,43,.3);
  animation:nsim-fly var(--nsim-dur) cubic-bezier(.55,-.15,.6,1) infinite;
}
@keyframes nsim-fly{
  0%,52%{left:27.8%;top:66.6%;opacity:0;transform:scale(1) rotate(0deg)}
  53%{opacity:1;transform:scale(1) rotate(0deg)}
  57.5%{opacity:1}
  59%{left:91.5%;top:19.9%;opacity:0;transform:scale(.3) rotate(40deg)}
  59.1%,100%{opacity:0;left:27.8%;top:66.6%}
}
/* etiqueta de preço */
.nsim-price{
  font-family:var(--font-title);font-weight:800;color:var(--brand-ink);
  font-size:clamp(.5rem,1.35vw,.82rem);line-height:1;
}
.nsim-price small{display:block;font-size:.55em;font-weight:600;color:var(--muted);margin-top:.35em}

/* ============================ VARIANTE 3 — LANDING PAGE ============================ */
.navsim--lp{--nsim-dur:16s}
.navsim--lp .navsim__nav{justify-content:space-between}
.navsim--lp .navsim__navcta{
  height:52%;min-height:9px;width:14%;border-radius:999px;background:var(--brand);
  box-shadow:0 2px 8px rgba(18,116,76,.28);
}
.navsim__scroll{position:relative;flex:1;min-height:0;overflow:hidden;background:#fff}
.navsim__track{
  position:absolute;left:0;top:0;width:100%;height:500%;
  animation:nsim-lp-scroll var(--nsim-dur) cubic-bezier(.5,0,.2,1) infinite;
}
.nsim-sec{
  height:20%;padding:5% 6%;display:flex;flex-direction:column;justify-content:center;gap:6%;
  position:relative;border-bottom:1px solid rgba(10,63,43,.05);
}
.nsim-sec--hero{background:linear-gradient(140deg,var(--brand-ink),var(--brand) 62%,#199a66)}
.nsim-sec--hero .nsim-t{background:rgba(255,255,255,.94)}
.nsim-sec--hero .nsim-l{background:rgba(255,255,255,.45)}
.nsim-sec--hero .nsim-btn{background:#fff;box-shadow:0 3px 10px rgba(6,30,20,.26)}
.nsim-sec--benefits{background:#fff}
.nsim-sec--proof{background:var(--bg-soft)}
.nsim-sec--offer{background:#fff}
.nsim-sec--form{background:linear-gradient(140deg,#0a3f2b,#0c563a)}
.nsim-sec--form .nsim-t{background:rgba(255,255,255,.9)}
.nsim-sec--form .nsim-field{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24)}
.nsim-sec--form .nsim-btn{width:44%;background:var(--accent);box-shadow:0 3px 12px rgba(111,227,166,.3)}
.nsim-quote{
  flex:1;min-height:0;border-radius:9px;background:#fff;border:1px solid var(--line);
  box-shadow:0 3px 12px rgba(10,63,43,.06);
  display:flex;align-items:center;gap:5%;padding:5% 6%;
}
.nsim-stars{display:flex;gap:3px;flex:none}
.nsim-stars i{
  width:clamp(4px,.62vw,7px);height:clamp(4px,.62vw,7px);display:block;
  background:var(--gold);
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
}
.navsim__rail{
  position:absolute;right:1.6%;top:4%;bottom:4%;width:3px;border-radius:999px;
  background:rgba(10,63,43,.08);z-index:2;
}
.navsim__thumb{
  position:absolute;left:0;width:100%;height:20%;border-radius:999px;background:var(--brand);
  animation:nsim-lp-thumb var(--nsim-dur) cubic-bezier(.5,0,.2,1) infinite;
}
.navsim--lp .navsim__cursor{animation:nsim-cursor-lp var(--nsim-dur) cubic-bezier(.5,.05,.2,1) infinite}
.navsim--lp .navsim__cursor::after{animation:nsim-click-lp var(--nsim-dur) ease-out infinite}
.navsim--lp .navsim__progress{animation:nsim-progress-lp var(--nsim-dur) linear infinite}

@keyframes nsim-lp-scroll{
  0%{transform:translateY(0)}
  10%,20%{transform:translateY(0)}
  28%,38%{transform:translateY(-20%)}
  46%,56%{transform:translateY(-40%)}
  64%,72%{transform:translateY(-60%)}
  80%,96%{transform:translateY(-80%)}
  100%{transform:translateY(0)}
}
@keyframes nsim-lp-thumb{
  0%,10%,20%{top:0%}
  28%,38%{top:20%}
  46%,56%{top:40%}
  64%,72%{top:60%}
  80%,96%{top:80%}
  100%{top:0%}
}
@keyframes nsim-cursor-lp{
  0%{left:70%;top:70%;opacity:0}
  4%{opacity:1}
  12%{left:68%;top:62%}
  30%{left:64%;top:52%}
  50%{left:66%;top:60%}
  70%{left:52%;top:58%}
  84%{left:25%;top:74%}
  88%{left:25%;top:74%}
  94%{left:25%;top:74%;opacity:1}
  97%{opacity:0}
  100%{left:70%;top:70%;opacity:0}
}
@keyframes nsim-click-lp{
  0%,83.6%{transform:scale(.15);opacity:0}
  84%{transform:scale(.15);opacity:.9}
  88%{transform:scale(2.4);opacity:0}
  100%{transform:scale(.15);opacity:0}
}
.nsim-sec--hero .nsim-shot{border-color:rgba(255,255,255,.22);background:linear-gradient(150deg,rgba(255,255,255,.24),rgba(255,255,255,.1))}
.nsim-sec--hero .nsim-shot::after{background:radial-gradient(circle at 26% 20%,rgba(255,255,255,.3),transparent 58%)}
@keyframes nsim-progress-lp{
  0%{transform:scaleX(0);opacity:1}
  2.5%{transform:scaleX(.75);opacity:1}
  4.5%{transform:scaleX(1);opacity:1}
  6%{transform:scaleX(1);opacity:0}
  6.1%,100%{transform:scaleX(0);opacity:0}
}
/* aviso de lead recebido */
.nsim-toast{
  position:absolute;right:4%;bottom:6%;z-index:6;
  display:flex;align-items:center;gap:6px;padding:2.4% 3.4%;
  border-radius:999px;background:#fff;box-shadow:0 8px 22px rgba(10,63,43,.18);
  font-size:clamp(.36rem,.94vw,.58rem);font-weight:700;color:var(--brand-ink);white-space:nowrap;
  opacity:0;transform:translateY(8px);
  animation:nsim-toast var(--nsim-dur) var(--ease) infinite;
}
.nsim-toast::before{
  content:"";width:clamp(8px,1.1vw,13px);height:clamp(8px,1.1vw,13px);border-radius:50%;flex:none;
  background:var(--brand);
}
@keyframes nsim-toast{
  0%,84%{opacity:0;transform:translateY(8px)}
  86.5%,95%{opacity:1;transform:none}
  97%,100%{opacity:0;transform:none}
}

/* ---------------------------------------------------------- acessibilidade */
@media (prefers-reduced-motion:reduce){
  .navsim *,
  .navsim::before,
  .navsim::after{animation:none !important}
  .navsim__view{opacity:0}
  .navsim__view--1{opacity:1}
  .navsim__view > *{opacity:1;transform:none}
  .navsim__cursor,.navsim__progress,.nsim-fly,.nsim-toast,.nsim-sent,.nsim-badge{display:none}
  .navsim__track{transform:none}
}

@media (max-width:640px){
  .devicemock{max-width:520px}
  .navsim__brand{display:none}
  .navsim__omni{font-size:.4rem}
}

/* --------------------------------------------------------------------------
   AJUSTES DE RESPONSIVIDADE — solicitação cliente (ago/2026)
   -------------------------------------------------------------------------- */

/* 3.3 — Sobre Nós: cards do Guilherme e Daniel empilhados, alinhados à
   esquerda, em coluna única no mobile (hoje ficam foto+texto lado a lado,
   virando "duas colunas" espremidas). */
@media (max-width:639px){
  .team-tech-card{
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
    gap:14px;
    /* padding original (25px 50px) era pensado pro layout desktop lado a
       lado; empilhado, os 50px laterais sobravam demais e apertavam o
       texto. Reduzimos e equilibramos pra ficar mais perto da borda. */
    padding:18px;
  }
}

/* 2.4 — "Veja na Prática" (Analytics/SEO/E-mail Marketing) e qualquer outra
   seção que use .painlist com "<strong>Título:</strong> descrição": no
   mobile, o ícone e o título devem ficar juntos na mesma linha (título sem
   quebrar, contanto que caiba) e o parágrafo descritivo cai pra linha de
   baixo. O componente é compartilhado por várias páginas (Blog, Design,
   Audiovisual, Social Media, GMN, Identidade Visual, Estruturação de Perfil
   etc.), então a correção é feita uma vez, beneficiando todas elas. */
@media (max-width:639px){
  .painlist li{
    display:block;
    position:relative;
    padding-left:30px;
  }
  .painlist li::before{
    position:absolute;
    left:0;
    top:.15em;
  }
  .painlist li strong{
    display:block;
    margin-bottom:2px;
  }
}

/* 3.1 — Relatório "Transparência nos dados" (Meta/Google/TikTok/LinkedIn
   Ads): no mobile a imagem fica espremida pela largura do container.
   Deixamos ela "sangrar" até a borda da tela pra ficar maior e mais legível. */
@media (max-width:639px){
  .imgshot--flat{
    max-width:none !important;
    width:calc(100% + (var(--space-1) * 2)) !important;
    margin-inline:calc(var(--space-1) * -1) !important;
  }
}

/* 1.2 — Tráfego (desktop): envolver "Dados Concretos" em um quadrado
   branco, com respiro extra abaixo pra não colar na próxima seção. */
.flowsys__data{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:var(--space-2);
  box-shadow:var(--sh-md);
  margin-bottom:var(--space-2);
}
@media (max-width:639px){
  .flowsys__data{padding:var(--space-1)}
}

/* 2.1 — Desenvolvimento (mobile): a seção "Percepção de Valor" empilha
   imagem e texto em 1 coluna. A seção já tem padding-block próprio (a
   partir de .section/.section--tight-top); o padding:25px extra em CADA
   uma das duas divs somava (25+25=50px) entre imagem e texto — e uma
   tentativa anterior piorou isso (50+50=100px). Zeramos o padding das
   divs e usamos um "gap" único e enxuto no grid pra controlar esse
   espaço com precisão. */
@media (max-width:639px){
  section[aria-labelledby="percepcao-valor"] .grid{
    gap:20px;
  }
  section[aria-labelledby="percepcao-valor"] .grid > div{
    padding:0 !important;
  }
}

/* Trafego (desktop) — menos espaço entre o botão e o parágrafo em "Dados
   Concretos" (estava herdando 50px de .flowsys__data .btn). */
.flowsys__data .btn{margin-top:20px}

/* 2.2 / 2.3 — Hero das páginas Meta Max e Google Max no mobile: menos
   espaço entre o breadcrumb e a barra branca do logo, logo menor, menos
   espaço entre o botão e o subtítulo, e tentativa de manter a badge de
   promessa em uma linha só. */
@media (max-width:639px){
  .pagehero--meta .breadcrumb,
  .pagehero--google .breadcrumb{
    margin-bottom:10px;
  }
  .pagehero--meta .promise-badge,
  .pagehero--google .promise-badge{
    margin-top:6px;
    max-width:100%;
    padding:6px 10px 6px 8px;
    gap:5px;
    font-size:.64rem;
  }
  .pagehero--meta .promise-badge img,
  .pagehero--google .promise-badge img{
    height:13px;
  }
  .pagehero--meta .pagehero__actions,
  .pagehero--google .pagehero__actions{
    margin-top:14px;
  }
}

/* 2.5 — Botões "Objetivos de campanha" / "Tipos de campanha": no mobile
   ficam em pill de tamanhos diferentes (um quase full-width, outro curto).
   Deixamos os dois com a mesma largura, lado a lado, tipo segmented
   control, em todas as páginas que usam esse componente (.campsel__tabs). */
@media (max-width:639px){
  .campsel__tabs{
    flex-wrap:nowrap;
    gap:8px;
  }
  .campsel__tab{
    flex:1 1 0;
    padding:10px 6px;
    text-align:center;
    font-size:.78rem;
    white-space:normal;
    line-height:1.25;
  }
}

/* --------------------------------------------------------------------------
   23. Blocos de anúncio (Google AdSense) — só aparecem no Blog
   -------------------------------------------------------------------------- */
.blog-ad{
  margin-block:var(--space-2);
  text-align:center;
}
.blog-ad__label{
  display:block;
  font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.blog-ad ins.adsbygoogle{display:block;width:100%}
/* dentro da grade de posts, o bloco ocupa a largura toda em vez de uma coluna */
.grid > .blog-ad{grid-column:1 / -1}

/* --------------------------------------------------------------------------
   24. "Por Que Importa" (Sites/Landing Pages/E-commerce) — conteúdo
   envolvido num quadrado branco com sombra leve, pra destacar do resto
   da seção mesmo estando sobre um fundo branco.
   -------------------------------------------------------------------------- */
.whybox{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--sh-sm);
  padding:var(--space-2) 32px;
}
@media (max-width:639px){
  .whybox{padding:var(--space-1)}
}

/* título que deve caber numa linha só no desktop, sem forçar isso no
   mobile (onde o texto quebra normalmente se precisar). */
@media (min-width:640px){
  .nowrap-desktop{white-space:nowrap}
}

/* --------------------------------------------------------------------------
   25. "Por Que Importa" — variante com ilustração (medidor de conversão +
   funil dobrando). Usada na Landing Page.
   -------------------------------------------------------------------------- */
.whybox--split{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:var(--space-2);
  align-items:center;
  text-align:left;
}
.whybox__text .eyebrow{display:block;margin-bottom:8px}
.whybox__text h2{margin-bottom:14px}
.whybox__text .prose p{font-size:.98rem}
.whybox__visual{display:flex;flex-direction:column;align-items:center;gap:22px}

/* ---- medidor semicircular ---- */
.convgauge{width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center}
.convgauge__label{
  font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px;
}
.convgauge__dial{position:relative;width:100%;aspect-ratio:220/152}
.convgauge__arc{width:100%;height:100%;display:block;overflow:visible}
.convgauge__track{fill:none;stroke:var(--line);stroke-width:14;stroke-linecap:round}
.convgauge__fill{
  fill:none;stroke:var(--brand);stroke-width:14;stroke-linecap:round;
  stroke-dasharray:283;stroke-dashoffset:141.5;
  animation:convgauge-fill 5s cubic-bezier(.5,.05,.15,1) infinite;
}
.convgauge__needle-wrap{
  position:absolute;left:50%;bottom:21%;width:2px;height:0;
  transform-origin:50% 100%;
  animation:convgauge-needle 5s cubic-bezier(.5,.05,.15,1) infinite;
}
.convgauge__needle{
  position:absolute;bottom:0;left:50%;width:3px;height:min(20vw,78px);
  transform:translateX(-50%);border-radius:999px;
  background:var(--brand-ink);
}
.convgauge__pivot{
  position:absolute;left:50%;bottom:21%;width:14px;height:14px;margin-left:-7px;margin-bottom:-7px;
  border-radius:50%;background:var(--brand-ink);border:3px solid #fff;box-shadow:0 0 0 1px var(--line);
}
.convgauge__tick{
  position:absolute;bottom:4%;font-size:.82rem;font-weight:700;color:var(--muted);
}
.convgauge__tick--start{left:2%}
.convgauge__tick--end{right:2%;color:var(--brand-ink)}

@keyframes convgauge-needle{
  0%,8%{transform:rotate(-58deg)}
  55%,80%{transform:rotate(64deg)}
  92%,100%{transform:rotate(-58deg)}
}
@keyframes convgauge-fill{
  0%,8%{stroke-dashoffset:226}
  55%,80%{stroke-dashoffset:38}
  92%,100%{stroke-dashoffset:226}
}

/* ---- funil antes/depois ---- */
.convfunnel{display:flex;align-items:center;gap:14px;width:100%;max-width:360px}
.convfunnel__col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.convfunnel__clicks{
  width:100%;text-align:center;padding:10px 6px;border-radius:var(--r-sm);
  background:#fff;border:1px solid var(--line);box-shadow:var(--sh-sm);
  font-size:.82rem;font-weight:600;color:var(--text);
}
.convfunnel__arrow{color:var(--line);font-size:1rem;line-height:1}
.convfunnel__arrow--active{color:var(--brand)}
.convfunnel__leads{
  width:100%;text-align:center;padding:10px 6px;border-radius:var(--r-sm);
  font-size:.86rem;font-weight:700;
}
.convfunnel__leads--before{background:var(--bg-soft);color:var(--muted);border:1px solid var(--line)}
.convfunnel__leads--after{background:var(--brand-ink);color:#fff}
.convfunnel__sep{color:var(--muted);font-size:1.1rem;flex:none}

@media (max-width:860px){
  .whybox--split{grid-template-columns:1fr;text-align:center}
  .whybox__text{text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .convgauge__needle-wrap,.convgauge__fill{animation:none}
  .convgauge__needle-wrap{transform:rotate(64deg)}
  .convgauge__fill{stroke-dashoffset:38}
}

/* --------------------------------------------------------------------------
   25b. Ilustrações do "Por Que Importa"
   a) .serpcard  — resultado de busca do Google se completando com sinais
      de confiança (Site Institucional)
   b) .clock24   — mostrador de 24h com vendas fora do expediente (E-commerce)
   -------------------------------------------------------------------------- */

/* ---------------------------------------------- a) resultado de busca */
.serpcard{
  width:100%;max-width:380px;border-radius:var(--r-md);background:#fff;
  border:1px solid var(--line);box-shadow:var(--sh-md);overflow:hidden;
}
.serpcard__bar{
  display:flex;align-items:center;gap:10px;padding:10px 12px;
  background:var(--bg-soft);border-bottom:1px solid var(--line);
}
.serpcard__dots{display:flex;gap:4px;flex:none}
.serpcard__dots i{width:6px;height:6px;border-radius:50%;background:var(--line)}
.serpcard__omni{
  flex:1;min-width:0;display:flex;align-items:center;gap:6px;
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 10px;
  font-size:.72rem;color:var(--muted);
}
.serpcard__omni svg{width:11px;height:11px;flex:none;color:var(--muted)}
.serpcard__query{white-space:nowrap;overflow:hidden}
.serpcard__caret{
  width:1px;height:.85em;background:var(--brand-ink);flex:none;
  animation:serp-caret 1.1s steps(1,end) infinite;
}
@keyframes serp-caret{0%,50%{opacity:1}51%,100%{opacity:0}}

.serpcard__body{padding:16px 16px 18px}
.serpcard__site{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.serpcard__favicon{
  width:20px;height:20px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,var(--brand),var(--accent));
}
.serpcard__host{font-size:.74rem;color:var(--muted)}
.serpcard__title{
  display:block;font-size:.98rem;line-height:1.35;font-weight:600;
  color:#2b46c4;margin-bottom:7px;
}
.serpcard__desc{font-size:.8rem;line-height:1.6;color:var(--muted);margin:0 0 12px}
.serpcard__chips{display:flex;flex-wrap:wrap;gap:7px}
.serpcard__chip{
  font-size:.7rem;font-weight:600;color:var(--brand-ink);
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:999px;padding:5px 10px;white-space:nowrap;
  opacity:0;transform:translateY(5px) scale(.96);
}
/* os sinais de confiança entram um a um: é a leitura da seção */
.serpcard__body{animation:serp-body 8s ease-out infinite}
.serpcard__chip--1{animation:serp-chip 8s ease-out infinite;animation-delay:2.4s}
.serpcard__chip--2{animation:serp-chip 8s ease-out infinite;animation-delay:2.9s}
.serpcard__chip--3{animation:serp-chip 8s ease-out infinite;animation-delay:3.4s}
@keyframes serp-body{
  0%,14%{opacity:0}
  22%,94%{opacity:1}
  99%,100%{opacity:0}
}
@keyframes serp-chip{
  0%{opacity:0;transform:translateY(5px) scale(.96)}
  6%{opacity:1;transform:none}
  70%{opacity:1;transform:none}
  74%,100%{opacity:0;transform:translateY(5px) scale(.96)}
}

/* ---------------------------------------------- b) mostrador de 24h */
.clock24{width:100%;max-width:300px;display:flex;flex-direction:column;align-items:center;gap:20px}
.clock24__dial{position:relative;width:100%;aspect-ratio:1}
.clock24__ring{width:100%;height:100%;display:block;overflow:visible}
/* anel externo: contorno completo em verde — a loja fica "aberta" (vendendo
   sozinha) as 24h do dia. */
.clock24__track{fill:none;stroke:var(--brand);stroke-width:9}
/* anel interno, em paralelo: arco dourado do 9 ao 6 (9h às 18h) — o recorte
   do atendimento humano num mostrador de 12h, igual um relógio de verdade.
   12 no topo, sentido horário. */
.clock24__biz{
  fill:none;stroke:var(--gold);stroke-width:7;stroke-linecap:round;
  transform:rotate(180deg);transform-origin:100px 100px;
  stroke-dasharray:311 104;stroke-dashoffset:0;
}
.clock24__hour{
  position:absolute;transform:translate(-50%,-50%);
  font-size:.62rem;font-weight:700;letter-spacing:.01em;color:var(--muted);
}
.clock24__hour--biz{color:var(--gold-ink,#9a6b12)}
.clock24__hand-wrap{
  position:absolute;left:50%;top:24%;width:2px;height:26%;
  transform-origin:50% 100%;
  animation:clock24-hand 12s linear infinite;
}
.clock24__hand{
  position:absolute;inset:0;left:50%;width:3px;
  transform:translateX(-50%);border-radius:999px;background:var(--brand-ink);
}
.clock24__pivot{
  position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;
  border-radius:50%;background:var(--brand-ink);border:3px solid #fff;
}
.clock24__sale{
  position:absolute;transform:translate(-50%,-50%) scale(.9);
  display:flex;align-items:center;gap:5px;white-space:nowrap;
  font-size:.68rem;font-weight:700;color:#fff;
  background:var(--brand-ink);border-radius:999px;padding:5px 9px;
  box-shadow:0 4px 12px rgba(10,63,43,.22);opacity:0;
}
.clock24__sale::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}
.clock24__sale--c{left:85%;top:30%;animation:clock24-sale 12s ease-out infinite;animation-delay:2s}
.clock24__sale--e{left:70%;top:85%;animation:clock24-sale 12s ease-out infinite;animation-delay:5s}
.clock24__sale--d{left:30%;top:85%;animation:clock24-sale 12s ease-out infinite;animation-delay:7s}
.clock24__sale--a{left:10%;top:50%;animation:clock24-sale 12s ease-out infinite;animation-delay:9s}
.clock24__sale--b{left:30%;top:15%;animation:clock24-sale 12s ease-out infinite;animation-delay:11s}
@keyframes clock24-hand{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes clock24-sale{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}
  3%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  22%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  26%,100%{opacity:0;transform:translate(-50%,-50%) scale(.9)}
}
.clock24__legend{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.74rem;color:var(--muted);text-align:center}
.clock24__legend span{display:flex;align-items:center;justify-content:center;gap:7px}
.clock24__key{width:9px;height:9px;border-radius:50%;flex:none}
.clock24__key--biz{background:var(--gold)}
.clock24__key--store{background:var(--brand)}

@media (prefers-reduced-motion:reduce){
  .serpcard__body,.serpcard__chip,.serpcard__caret,
  .clock24__hand-wrap,.clock24__sale{animation:none;opacity:1;transform:none}
  .clock24__hand-wrap{transform:rotate(212deg)}
  .clock24__sale{transform:translate(-50%,-50%)}
}

/* --------------------------------------------------------------------------
   26. Ajustes da página Landing Pages
   -------------------------------------------------------------------------- */

/* Hero: respiro simétrico — o espaço do caminho de navegação até o H1 passa a
   ser o mesmo do subtítulo até o botão (50px). Só no desktop. */
@media (min-width:900px){
  .pagehero--spaced .breadcrumb{margin-bottom:var(--space-2)}
}

/* "Na Prática": título mais perto do monitor logo abaixo. */
.section-head--tight{margin-bottom:var(--space-1)}

/* "Por Que Importa": título no mesmo tamanho dos demais H2 de seção. */
.whybox--split .whybox__text h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}

/* "Escopo do Serviço": ícone dos cards do radial (desktop). */
.segicon{
  width:38px;height:38px;margin:0 auto 10px;
  border-radius:var(--r-sm);background:rgba(18,116,76,.08);
  color:var(--brand);display:grid;place-items:center;
}
.segicon svg{width:20px;height:20px}

/* --------------------------------------------------------------------------
   27. Página de case individual — ficha do cliente e cards de número
   -------------------------------------------------------------------------- */

/* duas colunas: texto do cliente + ficha do projeto */
.casesplit{display:grid;gap:var(--space-2);align-items:start}
@media (min-width:900px){
  .casesplit{grid-template-columns:1.15fr .85fr}
}

.casecard{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-sm);padding:var(--space-1);
}
.casecard h3{font-size:1.05rem;padding-bottom:14px;border-bottom:1px solid var(--line)}

.casefacts{margin:0;display:grid}
.casefacts > div{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;
  padding:14px 0;border-bottom:1px solid var(--line);
}
.casefacts > div:last-child{border-bottom:0;padding-bottom:0}
.casefacts dt{color:var(--muted);font-size:.88rem;flex:none}
.casefacts dd{margin:0;font-weight:600;font-size:.93rem;text-align:right;flex:1;min-width:0}

/* cartão de número (resultados do case) */
.casestat{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-sm);padding:var(--space-1);text-align:center;
  display:flex;flex-direction:column;justify-content:flex-start;
}
.casestat__num{
  display:block;font-family:var(--font-title);font-weight:700;letter-spacing:-.02em;
  font-size:clamp(1.7rem,3.4vw,2.2rem);line-height:1.05;color:var(--brand-ink);
}
.casestat__label{display:block;margin-top:12px;color:var(--muted);font-size:.92rem;line-height:1.45}

/* hero do case: título mais longo que o padrão, respeita a quebra de linha */
.pagehero--case h1{max-width:34ch}
/* respiro entre o H2 e o texto quando não há eyebrow/lead entre os dois */
.prose--after-title{margin-top:var(--space-1)}

/* links dentro do texto corrido do case: precisam ser visíveis como link */
.prose a,
.howsteps__body p a,
.section-head .lead a{
  color:var(--brand-ink);font-weight:500;
  text-decoration:underline;text-decoration-color:rgba(18,116,76,.35);
  text-underline-offset:3px;transition:text-decoration-color .2s ease;
}
.prose a:hover,
.howsteps__body p a:hover,
.section-head .lead a:hover{text-decoration-color:var(--brand)}

/* título de hero mais longo: deixa a quebra manual (<br>) mandar na linha */
.pagehero h1.h1--wide{max-width:30ch}

/* NAP no rodapé — endereço e telefones para busca local */
.footer__nap{font-style:normal;line-height:1.6}
.footer__nap a{white-space:nowrap}

/* Botão "Ver no Google Maps" - link clicável abaixo do endereço */
.footer__gmb{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  padding:6px 12px;
  border:1px solid currentColor;
  border-radius:999px;
  font-size:.85rem;
  font-weight:500;
  text-decoration:none;
  color:inherit;
  transition:background .2s ease,color .2s ease,transform .2s ease
}
.footer__gmb svg{
  width:14px !important;
  height:14px !important;
  flex-shrink:0;
  max-width:14px !important;
  max-height:14px !important;
  display:inline-block !important;
  stroke:currentColor !important
}
.footer__gmb:hover{
  background:var(--brand);
  color:#fff !important;
  transform:translateY(-1px)
}
.footer__gmb:hover svg{
  stroke:#fff !important
}


/* =========================================================================
   30. Visuais próprios das páginas de serviço (whybox--split)
   ========================================================================= */
.whybox__visual .visual-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-sm);padding:22px 22px 26px;width:100%;max-width:380px;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.whybox__visual .visual-card__label{
  font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
}
.whybox__visual .visual-card__legend{display:flex;gap:14px;font-size:.78rem;color:var(--muted);margin-top:6px;flex-wrap:wrap;justify-content:center}
.whybox__visual .visual-card__legend i{
  display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle;
}

/* 1. SEO */
.seorank{display:flex;flex-direction:column;gap:8px;width:100%;max-width:340px}
.seorank__row{display:grid;grid-template-columns:24px 1fr 70px;align-items:center;gap:10px;font-size:.85rem}
.seorank__pos{
  width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--brand);color:#fff;font-weight:700;font-size:.72rem;
}
.seorank__pos--gray{background:var(--muted)}
.seorank__bar{height:14px;border-radius:7px;background:var(--bg-soft);overflow:hidden;position:relative}
.seorank__bar i{display:block;height:100%;border-radius:7px;background:var(--brand)}
.seorank__bar--low i{background:var(--muted);opacity:.5;width:30%}
.seorank__bar--mid i{width:62%}
.seorank__bar--high i{width:92%}
.seorank__val{font-weight:700;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}

/* 2. Analytics */
.metricbars{display:flex;align-items:flex-end;justify-content:space-around;gap:14px;width:100%;height:160px;padding:0 6px}
.metricbars__col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.metricbars__bar{width:100%;max-width:46px;background:var(--line);border-radius:8px 8px 0 0;position:relative}
.metricbars__bar--a{height:34%;background:var(--muted)}
.metricbars__bar--b{height:62%;background:var(--brand)}
.metricbars__bar--c{height:96%;background:linear-gradient(180deg,var(--brand) 0%,var(--brand-ink) 100%)}
.metricbars__lbl{font-size:.72rem;color:var(--muted);text-align:center;font-weight:600}

/* 3. E-mail marketing */
.seqflow{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px}
.seqflow__step{
  display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;
  padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);
}
.seqflow__step--filled{background:var(--brand);color:#fff;border-color:var(--brand)}
.seqflow__num{
  width:30px;height:30px;border-radius:50%;background:var(--bg-soft);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;color:var(--brand);
}
.seqflow__step--filled .seqflow__num{background:#fff;color:var(--brand)}
.seqflow__txt{font-size:.85rem;font-weight:600}
.seqflow__arrow{color:var(--brand);font-size:1.1rem;text-align:center;margin:-4px 0;font-weight:700}

/* 4. Blog */
.funnelinfo{display:flex;flex-direction:column;gap:6px;width:100%;max-width:340px;align-items:stretch}
.funnelinfo__lvl{
  height:34px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;font-size:.82rem;border-radius:6px;letter-spacing:.02em;
}
.funnelinfo__lvl--1{width:35%;background:var(--muted);opacity:.85;margin-inline:auto}
.funnelinfo__lvl--2{width:55%;background:var(--brand);opacity:.7;margin-inline:auto}
.funnelinfo__lvl--3{width:80%;background:var(--brand)}
.funnelinfo__lvl--4{width:100%;background:linear-gradient(90deg,var(--brand),var(--brand-ink))}

/* 5. Google Meu Negócio */
.mapstars{position:relative;width:100%;max-width:340px;aspect-ratio:1.05/1;background:var(--bg-soft);border-radius:14px;border:1px solid var(--line);overflow:hidden}
.mapstars__grid{position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:34px 34px;opacity:.4}
.mapstars__road{position:absolute;left:0;right:0;top:48%;height:6px;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mapstars__road--v{top:0;bottom:0;left:62%;width:6px;background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.mapstars__pin{
  position:absolute;width:34px;height:34px;border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);background:var(--muted);border:2px solid var(--bg);
  box-shadow:var(--sh-sm);display:flex;align-items:center;justify-content:center;
}
.mapstars__pin--top{left:18%;top:24%;background:var(--muted)}
.mapstars__pin--me{left:46%;top:52%;background:var(--brand);width:42px;height:42px;border-color:var(--brand);z-index:2}
.mapstars__pin svg{transform:rotate(45deg);width:14px;height:14px;color:#fff}
.mapstars__stars{
  position:absolute;right:8px;bottom:8px;
  background:var(--bg);padding:6px 10px;border-radius:10px;
  border:1px solid var(--line);font-size:.7rem;font-weight:700;color:var(--ink);
  display:flex;align-items:center;gap:4px;
}
.mapstars__stars i{color:var(--brand)}

/* 6. Criação de marca */
.brandswatch{display:flex;flex-direction:column;gap:14px;width:100%;max-width:340px}
.brandswatch__row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.brandswatch__chip{width:42px;height:42px;border-radius:10px;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.brandswatch__name{font-weight:700;font-size:.9rem;color:var(--ink)}
.brandswatch__hex{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}

/* 7. Gestão de redes sociais */
.contentcal{display:flex;flex-direction:column;gap:8px;width:100%;max-width:340px}
.contentcal__head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:.68rem;color:var(--muted);text-align:center;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.contentcal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.contentcal__cell{aspect-ratio:1;background:var(--bg);border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.68rem;color:var(--muted);font-weight:600}
.contentcal__cell--post{background:var(--brand);color:#fff;border-color:var(--brand)}
.contentcal__cell--plan{background:var(--bg-soft);color:var(--brand);border-color:var(--brand)}

/* 8. Edição de vídeo */
.videotl{width:100%;max-width:340px;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:14px 14px 18px}
.videotl__head{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);font-weight:600;margin-bottom:8px}
.videotl__track{position:relative;height:30px;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.videotl__seg{position:absolute;top:0;bottom:0;background:var(--brand);opacity:.85}
.videotl__seg--cut{background:var(--muted);opacity:.55}
.videotl__seg--text{background:var(--brand-ink)}
.videotl__caption{
  margin-top:8px;padding:8px 12px;background:var(--bg);border:1px solid var(--line);
  border-radius:8px;font-size:.8rem;color:var(--ink);font-weight:600;
  display:flex;align-items:center;gap:8px;
}
.videotl__caption::before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--brand)}

/* 9. Design */
.cardhierarchy{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px}
.cardhierarchy__card{
  border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--bg);
  display:flex;flex-direction:column;gap:6px;
}
.cardhierarchy__card--good{background:var(--bg-soft);border-color:var(--brand)}
.cardhierarchy__ttl{font-weight:700;font-size:.85rem;color:var(--ink)}
.cardhierarchy__bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.cardhierarchy__bar i{display:block;height:100%;background:var(--brand);border-radius:3px}
.cardhierarchy__bar--weak i{width:30%;background:var(--muted)}
.cardhierarchy__bar--mid i{width:62%}
.cardhierarchy__bar--good i{width:94%;background:linear-gradient(90deg,var(--brand),var(--brand-ink))}
.cardhierarchy__lbl{font-size:.7rem;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
.cardhierarchy__lbl::before{content:"";display:block;width:8px;height:8px;border-radius:50%;background:var(--line)}
.cardhierarchy__lbl--good{color:var(--brand)}
.cardhierarchy__lbl--good::before{background:var(--brand)}

/* 10. Audiovisual */
.mediaday{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px}
.mediaday__hero{
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  background:var(--brand);color:#fff;border-radius:12px;
}
.mediaday__hero i{font-size:1.4rem}
.mediaday__hero-txt{font-weight:700;font-size:.95rem}
.mediaday__hero-sub{font-size:.74rem;opacity:.9;font-weight:500}
.mediaday__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.mediaday__ico{
  width:30px;height:30px;border-radius:8px;background:var(--bg-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;
}
.mediaday__name{font-size:.85rem;color:var(--ink);font-weight:600}
.mediaday__qty{font-size:.74rem;color:var(--muted);font-weight:700;background:var(--bg-soft);padding:3px 8px;border-radius:6px}

@media (max-width:639px){
  .whybox__visual{padding-inline:6px}
  .whybox__visual .visual-card{padding:18px 14px}
}
