/* Lucros Reais — site v2 (base clara do site atual + efeitos leves). Roxo #371a51, verde #01fcc0, Montserrat. */
:root {
  --roxo: #371a51;
  --roxo-esc: #241338;
  --roxo-texto: #2b1a3f;
  --roxo-claro: #6b5a85;
  --verde: #01fcc0;
  --verde-esc: #00b386;
  --cinza: #f5f3f7;
  --linha: #e7e2ee;
  --raio: 14px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 130px; }
body { font-family: "Montserrat", system-ui, sans-serif; color: var(--roxo-texto); background: #fff; line-height: 1.65; font-size: 1rem; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
svg { stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.container { width: min(1140px, 92vw); margin: 0 auto; }
.estreito { width: min(820px, 92vw); }
.centro { text-align: center; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--verde); padding: 8px 14px; border-radius: 999px; z-index: 100; }
.skip:focus { left: 8px; }

h1, h2, h3 { color: var(--roxo); line-height: 1.25; font-weight: 600; }
h2 { font-size: clamp(1.45rem, 2.4vw, 1.9rem); }
h3 { font-size: 1.1rem; }
.olho { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--verde-esc); margin-bottom: 10px; }
.cabeca { max-width: 760px; margin: 0 auto 44px; text-align: center; }
.cabeca p:not(.olho) { margin-top: 14px; color: var(--roxo-claro); }
.destaque-roxo { color: var(--verde-esc); }

/* botões */
.btn { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; font-weight: 600; transition: transform .25s, box-shadow .25s, background .25s; position: relative; overflow: hidden; }
.btn-verde { background: var(--verde); color: var(--roxo-esc); }
.btn-verde::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s; }
.btn-verde:hover { transform: translateY(-2px); box-shadow: 0 10px 26px -8px rgba(1,252,192,.8); }
.btn-verde:hover::after { transform: translateX(120%); }
.btn-roxo { background: var(--roxo); color: #fff; padding: 13px 26px; border-radius: 6px; font-weight: 700; text-transform: uppercase; font-size: .85rem; }
.btn-roxo:hover { background: var(--roxo-esc); transform: translateY(-2px); }
.btn-sm { padding: 9px 20px; font-size: .85rem; }
.btn-xl { padding: 15px 34px; font-size: 1rem; }

/* topo */
.topo { position: sticky; top: 0; z-index: 50; }
.topo-marca { background: var(--roxo); transition: padding .3s; padding: 10px 0; }
.topo-marca-inner { display: flex; align-items: center; justify-content: space-between; }
.marca img { height: 66px; width: auto; transition: height .3s; }
.topo.rolou .marca img { height: 42px; }
.topo.rolou .topo-marca { padding: 6px 0; }
.menu { background: #3f2160; border-top: 1px solid rgba(255,255,255,.06); }
.menu ul { list-style: none; display: flex; justify-content: center; gap: 26px; padding: 11px 0; }
.menu a { color: #fff; font-weight: 600; font-size: .9rem; position: relative; }
.menu a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 2px; background: var(--verde); transform: scaleX(0); transition: transform .3s; }
.menu a:hover::after { transform: scaleX(1); }
.hamburguer { display: none; background: none; border: 0; width: 42px; height: 42px; cursor: pointer; }
.hamburguer span { display: block; width: 24px; height: 2px; margin: 5px auto; background: #fff; transition: transform .3s, opacity .3s; }

/* hero */
.hero { position: relative; padding: 80px 0 90px; color: #fff; overflow: hidden;
  background: linear-gradient(100deg, rgba(55,26,81,.93) 30%, rgba(55,26,81,.7)), url("img/hero.png") center / cover; }
.hero-inner { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; }
.hero h1 { color: #fff; font-size: clamp(1.45rem, 2.5vw, 2.05rem); margin-bottom: 30px; }
.hero .destaque { color: var(--verde); }
.hero-visual { position: relative; }
.painel { border-radius: 22px; padding: 22px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(14px); box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); animation: boiar 7s ease-in-out infinite; }
.painel-topo { display: flex; justify-content: space-between; align-items: center; font-size: .78rem; color: rgba(255,255,255,.75); margin-bottom: 16px; }
.bolinhas { display: flex; gap: 6px; }
.bolinhas i { width: 9px; height: 9px; border-radius: 50%; background: rgba(255,255,255,.3); }
.bolinhas i:first-child { background: var(--verde); }
.painel-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.painel-linha div { padding: 11px 14px; border-radius: 12px; background: rgba(0,0,0,.18); }
.painel-linha small { display: block; font-size: .72rem; color: rgba(255,255,255,.7); }
.painel-linha b { font-size: 1.1rem; font-weight: 700; }
.painel-linha .realce b { color: var(--verde); }
.grafico { width: 100%; height: 150px; overflow: visible; }
.grafico .grade line { stroke: rgba(255,255,255,.1); stroke-width: 1; }
.linha-fat { stroke: rgba(255,255,255,.55); stroke-width: 2.5; stroke-dasharray: 6 7; }
.linha-lucro { stroke: var(--verde); stroke-width: 3.5; stroke-dasharray: 520; stroke-dashoffset: 520; filter: drop-shadow(0 0 6px rgba(1,252,192,.6)); }
.area-lucro { stroke: none; opacity: 0; transition: opacity 1.2s .9s; }
.ponto-lucro { fill: var(--verde); stroke: none; opacity: 0; transition: opacity .4s 2s; }
.hero-visual.visivel .linha-lucro { animation: desenhar 2.2s .3s cubic-bezier(.6,0,.2,1) forwards; }
.hero-visual.visivel .area-lucro, .hero-visual.visivel .ponto-lucro { opacity: 1; }
@keyframes desenhar { to { stroke-dashoffset: 0; } }
.painel-rodape { display: flex; align-items: center; gap: 14px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.15); }
.chip-dia { width: 50px; height: 50px; border-radius: 12px; display: grid; place-content: center; text-align: center; background: var(--verde); color: var(--roxo-esc); line-height: 1; }
.chip-dia span { font-size: .55rem; font-weight: 700; letter-spacing: .1em; }
.chip-dia b { font-size: 1.35rem; }
.painel-rodape p { font-size: .9rem; color: rgba(255,255,255,.85); }
.painel-rodape strong { color: var(--verde); }
.flutuante { position: absolute; padding: 9px 16px; border-radius: 999px; background: #fff; color: var(--roxo); font-size: .8rem; font-weight: 700; box-shadow: 0 14px 30px -12px rgba(0,0,0,.45); animation: boiar 6s ease-in-out infinite; white-space: nowrap; }
.flutuante::before { content: "✓ "; color: var(--verde-esc); }
.f1 { top: -16px; right: 10px; animation-delay: -2s; }
.f2 { bottom: -16px; left: -14px; animation-delay: -4s; }
@keyframes boiar { 50% { transform: translateY(-8px); } }

/* seções */
.secao { padding: clamp(64px, 8vw, 96px) 0; }
.secao-clara { background: var(--cinza); }
.secao-roxa { background: var(--roxo); color: #fff; }
.secao-roxa h2 { color: #fff; margin-bottom: 18px; }
.secao-roxa p { color: rgba(255,255,255,.85); margin-bottom: 14px; }
.secao-roxa strong { color: var(--verde); }
.secao-roxa .btn { margin-top: 16px; }

/* serviços */
.grade-servicos { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 300px; gap: 16px; }
.servico { position: relative; border-radius: var(--raio); overflow: hidden; color: #fff; isolation: isolate; box-shadow: 0 16px 36px -22px rgba(55,26,81,.6); }
.servico img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s cubic-bezier(.2,.8,.2,1); }
.servico::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(55,26,81,.25) 0%, rgba(55,26,81,.92) 72%); transition: background .4s; }
.servico:hover img { transform: scale(1.08); }
.servico:hover::before { background: linear-gradient(180deg, rgba(55,26,81,.45) 0%, rgba(36,19,56,.96) 65%); }
.servico-texto { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px; transform: translateY(34px); transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.servico:hover .servico-texto, .servico:focus-visible .servico-texto { transform: none; }
.servico h3 { color: #fff; font-size: 1.2rem; margin-bottom: 8px; padding-left: 12px; border-left: 3px solid var(--verde); }
.servico p { font-size: .92rem; color: rgba(255,255,255,.88); }
.link-seta { display: inline-block; margin-top: 12px; font-size: .85rem; font-weight: 700; color: var(--verde); opacity: 0; transition: opacity .4s; }
.link-seta::after { content: " →"; }
.servico:hover .link-seta, .servico:focus-visible .link-seta { opacity: 1; }
.s-dupla { grid-column: span 2; }
.s-dupla h3 { font-size: 1.45rem; }
.s-dupla p { max-width: 520px; }

/* metodologia */
.duas-colunas { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.orbita { position: relative; width: min(440px, 82vw); margin: 0 auto; aspect-ratio: 1; }
.orbita img { position: absolute; inset: 7%; width: 86%; height: 86%; object-fit: contain; animation: girar-lento 60s linear infinite; }
.orbita::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(0,179,134,.4); }
.sat { position: absolute; top: 50%; left: 50%; width: 14px; height: 14px; margin: -7px; border-radius: 50%; background: var(--verde); box-shadow: 0 0 0 4px rgba(1,252,192,.2), 0 0 16px rgba(1,252,192,.8); animation: orbitar 12s linear infinite; }
.s2 { animation-delay: -3s; background: var(--roxo); box-shadow: 0 0 0 4px rgba(55,26,81,.15); }
.s3 { animation-delay: -6s; }
.s4 { animation-delay: -9s; background: var(--roxo); box-shadow: 0 0 0 4px rgba(55,26,81,.15); }
@keyframes orbitar { from { transform: rotate(0) translateX(min(220px, 41vw)) rotate(0); } to { transform: rotate(360deg) translateX(min(220px, 41vw)) rotate(-360deg); } }
@keyframes girar-lento { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(4deg); } }
.pilares { list-style: none; display: grid; gap: 14px; }
.pilares li { padding: 18px 22px; border-radius: var(--raio); border: 1px solid var(--linha); border-left: 4px solid var(--verde); transition: transform .3s, box-shadow .3s; }
.pilares li:hover { transform: translateX(6px); box-shadow: 0 12px 28px -18px rgba(55,26,81,.5); }
.pilares p { color: var(--roxo-claro); font-size: .95rem; margin-top: 2px; }

/* passos */
.passos { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.passos-linha { position: absolute; top: 30px; left: 16%; width: 68%; height: 8px; overflow: visible; }
.passos-linha path { stroke: var(--verde-esc); stroke-width: 2; stroke-dasharray: 1000; stroke-dashoffset: 1000; transition: stroke-dashoffset 1.8s ease; }
.passos.visivel .passos-linha path { stroke-dashoffset: 0; }
.passo { text-align: center; padding: 0 10px; }
.passo-num { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; margin-bottom: 18px; font-size: 1.3rem; font-weight: 700; color: var(--roxo-esc); background: var(--verde); box-shadow: 0 0 0 8px var(--cinza); }
.passo h3 { margin-bottom: 8px; }
.passo p { color: var(--roxo-claro); font-size: .95rem; }
.nota { margin-top: 40px; font-weight: 600; color: var(--roxo); }

/* transformação */
.interruptor { position: relative; display: flex; width: max-content; margin: 0 auto 36px; padding: 5px; border-radius: 999px; background: var(--cinza); border: 1px solid var(--linha); }
.interruptor button { position: relative; z-index: 1; border: 0; background: none; font: inherit; font-weight: 600; font-size: .92rem; color: var(--roxo-claro); padding: 10px 24px; border-radius: 999px; cursor: pointer; transition: color .3s; }
.interruptor button.ativo { color: #fff; }
.interruptor.depois button.ativo { color: var(--roxo-esc); }
.interruptor-bola { position: absolute; top: 5px; bottom: 5px; left: 5px; border-radius: 999px; background: var(--roxo-claro); transition: left .45s cubic-bezier(.7,0,.2,1), width .45s, background .45s; }
.interruptor.depois .interruptor-bola { background: var(--verde); }
.cartas-transforma { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ct { position: relative; height: 110px; perspective: 900px; }
.ct span { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 16px 20px; border-radius: var(--raio); font-weight: 600; backface-visibility: hidden; transition: transform .7s cubic-bezier(.7,0,.2,1); }
.ct .a { background: var(--cinza); border: 1px solid var(--linha); color: var(--roxo-claro); }
.ct .d { background: var(--roxo); color: #fff; transform: rotateX(180deg); box-shadow: inset 0 -3px 0 var(--verde); }
.cartas-transforma[data-lado="depois"] .a { transform: rotateX(-180deg); }
.cartas-transforma[data-lado="depois"] .d { transform: none; }
.cartas-transforma[data-lado="depois"] .ct:nth-child(2) span { transition-delay: .06s; }
.cartas-transforma[data-lado="depois"] .ct:nth-child(3) span { transition-delay: .12s; }
.cartas-transforma[data-lado="depois"] .ct:nth-child(4) span { transition-delay: .18s; }
.cartas-transforma[data-lado="depois"] .ct:nth-child(5) span { transition-delay: .24s; }
.cartas-transforma[data-lado="depois"] .ct:nth-child(6) span { transition-delay: .3s; }
.frase-final { margin-top: 36px; text-align: center; font-size: 1.15rem; font-weight: 600; color: var(--roxo); }

/* clientes — carrossel colorido */
.carrossel { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); margin-bottom: 70px; }
.carrossel-trilho { display: flex; gap: 20px; width: max-content; animation: correr 45s linear infinite; padding: 10px 0; }
.carrossel:hover .carrossel-trilho { animation-play-state: paused; }
@keyframes correr { to { transform: translateX(calc(-50% - 10px)); } }
.carrossel figure { width: 170px; flex: none; text-align: center; }
.carrossel img { width: 170px; height: 220px; object-fit: cover; object-position: 50% 0; border-radius: 12px; transition: transform .4s, box-shadow .4s; clip-path: inset(0 0 0 0 round 12px); }
.carrossel figure:hover img { transform: translateY(-6px); box-shadow: 0 18px 30px -16px rgba(55,26,81,.6); }
.carrossel figcaption { margin-top: 10px; line-height: 1.3; }
.carrossel b { display: block; font-size: .95rem; color: #555; }
.carrossel small { font-size: .76rem; color: #888; }
.titulo-videos { margin-bottom: 30px; }
.grade-videos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.video { position: relative; border: 0; padding: 0; cursor: pointer; border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 9; background: #000; box-shadow: 0 14px 30px -18px rgba(55,26,81,.7); }
.video img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.video:hover img { transform: scale(1.07); }
.play { position: absolute; left: 50%; top: 50%; width: 52px; height: 52px; margin: -26px; border-radius: 50%; background: var(--verde); box-shadow: 0 0 0 0 rgba(1,252,192,.6); animation: pulsar 2.2s infinite; }
.play::after { content: ""; position: absolute; left: 21px; top: 17px; border-style: solid; border-width: 9px 0 9px 14px; border-color: transparent transparent transparent var(--roxo-esc); }
@keyframes pulsar { 70% { box-shadow: 0 0 0 12px rgba(1,252,192,0); } 100% { box-shadow: 0 0 0 0 rgba(1,252,192,0); } }

/* dúvidas */
.faq { display: grid; gap: 10px; }
.faq details { border-radius: var(--raio); border: 1px solid var(--linha); background: #fff; transition: border-color .3s, box-shadow .3s; }
.faq details[open] { border-color: var(--verde-esc); box-shadow: 0 12px 28px -20px rgba(55,26,81,.5); }
.faq summary { list-style: none; cursor: pointer; padding: 18px 56px 18px 22px; font-weight: 600; color: var(--roxo); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--verde); color: var(--roxo-esc); font-size: 1.15rem; transition: transform .3s; }
.faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq details p { padding: 0 22px 20px; color: var(--roxo-claro); }

/* newsletter + rodapé */
.newsletter { background: #f7f7f7; padding: 46px 0; }
.newsletter-inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.newsletter h3 { color: #333; font-size: 1.05rem; margin-bottom: 6px; }
.newsletter p { color: #666; font-size: .92rem; }
.rodape-contato { display: grid; grid-template-columns: auto auto auto minmax(120px, 1fr) auto auto; gap: 18px; align-items: center; padding: 30px 0; }
.rodape-logo { height: 76px; width: auto; }
.rodape-contato small { display: block; font-size: .8rem; color: #777; }
.rodape-contato a, .rodape-contato b { font-weight: 700; font-size: .9rem; color: #333; word-break: break-word; }
.rodape-contato a:hover { color: var(--roxo); }
.redes { display: flex; gap: 8px; }
.redes a { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #eee; color: #555; transition: background .3s, color .3s; }
.redes a:hover { background: var(--roxo); color: #fff; }
.redes svg { width: 16px; height: 16px; }
.rodape-base { background: var(--roxo); color: #fff; text-align: center; padding: 18px 0; }
.rodape-base nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 26px; font-weight: 600; font-size: .9rem; margin-bottom: 8px; }
.rodape-base p { font-size: .75rem; opacity: .8; }
.rodape-base a:hover { color: var(--verde); }

.whats-flutuante { position: fixed; right: 20px; bottom: 20px; z-index: 40; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: #25d366; color: #fff; box-shadow: 0 10px 28px -8px rgba(37,211,102,.7); transition: transform .3s; }
.whats-flutuante:hover { transform: scale(1.08); }
.modal-video { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; background: rgba(20,10,32,.88); }
.modal-video[hidden] { display: none; }
.moldura { width: min(900px, 92vw); aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; }
.moldura iframe { width: 100%; height: 100%; border: 0; }
.fechar { position: absolute; top: 16px; right: 20px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: var(--roxo); font-size: 1.6rem; cursor: pointer; }

/* ---------- páginas internas ---------- */
.menu a[aria-current="page"]::after { transform: scaleX(1); }
.hero-interno { padding: 90px 0; background: linear-gradient(100deg, rgba(55,26,81,.95) 35%, rgba(55,26,81,.72)), var(--foto, url("img/hero.png")) center / cover; }
.hero-interno-inner { max-width: 760px; }
.hero-interno .olho { color: var(--verde); }
.hero-interno h1 { font-size: clamp(1.6rem, 3vw, 2.3rem); margin-bottom: 18px; }
.hero-interno p:not(.olho) { color: rgba(255,255,255,.88); margin-bottom: 12px; max-width: 640px; }
.hero-interno .btn { margin-top: 14px; }
.hero-curto { padding: 60px 0; }
.hero-curto h1 { margin: 0; }
.alinhar-topo { align-items: start; }
.dor-bloco h2, .guia-bloco h2 { margin-bottom: 18px; }
.checks { list-style: none; display: grid; gap: 10px; margin: 18px 0; }
.checks li { position: relative; padding: 12px 16px 12px 46px; border-radius: 10px; background: var(--cinza); font-weight: 500; }
.checks li::before { content: "?"; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .8rem; font-weight: 700; background: #ecd9df; color: #b2344a; }
.checks-verdes { text-align: left; max-width: 680px; margin: 26px auto 0; }
.checks-verdes li { background: #fff; border: 1px solid var(--linha); }
.checks-verdes li::before { content: "✓"; background: var(--verde); color: var(--roxo-esc); }
.fecho { font-weight: 600; color: var(--roxo); }
.guia-bloco { padding: 34px; border-radius: 18px; background: var(--roxo); color: #fff; box-shadow: 0 24px 50px -30px rgba(55,26,81,.8); position: relative; overflow: hidden; }
.guia-bloco::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 180px; height: 180px; border-radius: 50%; border: 22px solid rgba(1,252,192,.18); }
.guia-bloco h2 { color: #fff; }
.guia-bloco p { color: rgba(255,255,255,.88); }
.itens { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.item { display: flex; gap: 16px; padding: 24px; border-radius: var(--raio); background: #fff; border: 1px solid var(--linha); transition: transform .3s, box-shadow .3s; }
.item:hover { transform: translateY(-4px); box-shadow: 0 16px 34px -22px rgba(55,26,81,.55); }
.item-num { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-weight: 700; background: var(--verde); color: var(--roxo-esc); }
.item h3 { margin-bottom: 6px; }
.item p { color: var(--roxo-claro); font-size: .94rem; }
.grade-compromissos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.compromisso { padding: 24px 20px; border-radius: var(--raio); border: 1px solid var(--linha); text-align: center; transition: transform .3s, border-color .3s; }
.compromisso:hover { transform: translateY(-4px); border-color: var(--verde-esc); }
.compromisso svg { width: 34px; height: 34px; color: var(--verde-esc); margin: 0 auto 12px; }
.compromisso h3 { font-size: 1rem; margin-bottom: 6px; }
.compromisso p { font-size: .88rem; color: var(--roxo-claro); }
.outros { padding-top: 0; }
.outros h2 { margin-bottom: 26px; }
.grade-mini { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.mini-servico { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 1; color: #fff; isolation: isolate; }
.mini-servico img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s; }
.mini-servico::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 20%, rgba(55,26,81,.92)); }
.mini-servico span { position: absolute; left: 12px; right: 12px; bottom: 12px; font-weight: 600; font-size: .88rem; line-height: 1.3; }
.mini-servico:hover img { transform: scale(1.08); }
.destaque-card { padding: 32px; border-radius: 18px; border: 1px solid var(--linha); box-shadow: 0 20px 40px -30px rgba(55,26,81,.6); }
.destaque-card h2 { font-size: 1.3rem; margin: 14px 0 10px; }
.destaque-card p { color: var(--roxo-claro); }
.destaque-icone { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--verde); color: var(--roxo-esc); }
.destaque-icone svg { width: 26px; height: 26px; }
.socias { display: grid; gap: 22px; }
.socia { display: grid; grid-template-columns: 220px 1fr; gap: 30px; align-items: start; padding: 26px; border-radius: 18px; background: #fff; border: 1px solid var(--linha); }
.socia img { width: 220px; height: 220px; object-fit: cover; border-radius: 16px; }
.socia h3 { font-size: 1.3rem; }
.cargo { color: var(--verde-esc); font-weight: 600; font-size: .88rem; margin-bottom: 10px; }
.socia p { color: var(--roxo-claro); }
.socia details summary { cursor: pointer; margin-top: 10px; font-weight: 600; color: var(--roxo); list-style: none; }
.socia details summary::after { content: " ↓"; }
.socia details[open] summary::after { content: " ↑"; }
.socia details p { margin-top: 10px; }
.lista-servicos { display: grid; gap: 26px; }
.linha-servico { display: grid; grid-template-columns: 380px 1fr; gap: 36px; align-items: center; }
.linha-servico:nth-child(even) { grid-template-columns: 1fr 380px; }
.linha-servico:nth-child(even) .linha-foto { order: 2; }
.linha-foto { border-radius: 16px; overflow: hidden; aspect-ratio: 3 / 2; box-shadow: 0 20px 40px -26px rgba(55,26,81,.7); }
.linha-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.linha-servico:hover .linha-foto img { transform: scale(1.06); }
.linha-servico h3 { font-size: 1.35rem; margin-bottom: 10px; padding-left: 12px; border-left: 3px solid var(--verde); }
.linha-servico p { color: var(--roxo-claro); }
.link-seta-roxo { display: inline-block; margin-top: 12px; font-weight: 700; font-size: .9rem; color: var(--roxo); }
.link-seta-roxo::after { content: " →"; transition: margin .3s; }
.link-seta-roxo:hover::after { margin-left: 4px; }
.grade-departamentos { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.departamento { border-radius: 18px; overflow: hidden; border: 1px solid var(--linha); background: #fff; transition: transform .3s, box-shadow .3s; }
.departamento:hover { transform: translateY(-5px); box-shadow: 0 22px 44px -28px rgba(55,26,81,.7); }
.departamento img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; }
.departamento div { padding: 24px; }
.departamento h2 { font-size: 1.3rem; margin-bottom: 8px; }
.departamento p { color: var(--roxo-claro); }
.redonda { max-width: 380px; margin: 0 auto; }
.frase-grande { font-size: 1.35rem; font-weight: 600; color: var(--roxo); margin-bottom: 14px; line-height: 1.4; }
.texto-legal h2 { font-size: 1.15rem; margin: 30px 0 10px; }
.texto-legal p { color: #4b3d5e; margin-bottom: 12px; }
.texto-legal ul { margin: 0 0 14px 22px; color: #4b3d5e; }
.texto-legal li { margin-bottom: 6px; }

/* ---------- capturas e agendamentos ---------- */
.hero-captura { padding: 80px 0; background: linear-gradient(120deg, var(--roxo) 40%, #4b2672); }
.hero-cap-inner { max-width: 820px; }
.hero-cap-inner.com-img { max-width: none; display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: center; }
.hero-captura .olho { color: var(--verde); }
.hero-captura h1 { font-size: clamp(1.6rem, 3vw, 2.4rem); margin-bottom: 16px; }
.hero-captura p:not(.olho) { color: rgba(255,255,255,.88); margin-bottom: 12px; }
.hero-captura .btn { margin-top: 14px; }
.hero-cap-img { max-height: 420px; width: auto; margin: 0 auto; border-radius: 14px; filter: drop-shadow(0 30px 40px rgba(0,0,0,.35)); animation: boiar 7s ease-in-out infinite; }
.data-evento { display: inline-block; padding: 8px 16px; border-radius: 999px; background: rgba(255,255,255,.12); font-weight: 600; color: #fff !important; }
.hero-obrigado { padding: 90px 0 70px; background: linear-gradient(120deg, var(--roxo) 40%, #4b2672); }
.hero-obrigado h1 { font-size: clamp(1.5rem, 3vw, 2.2rem); margin-bottom: 14px; }
.hero-obrigado p { color: rgba(255,255,255,.88); margin-bottom: 20px; }
.selo-ok { display: inline-grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; background: var(--verde); color: var(--roxo-esc); font-size: 2rem; font-weight: 700; margin-bottom: 20px; box-shadow: 0 0 0 0 rgba(1,252,192,.6); animation: pulsar 2.2s infinite; }
.video-embutido { aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; box-shadow: 0 30px 60px -30px rgba(55,26,81,.8); margin-top: 26px; }
.video-embutido iframe { width: 100%; height: 100%; border: 0; }
.grade-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.card-simples { padding: 24px; border-radius: var(--raio); background: #fff; border: 1px solid var(--linha); transition: transform .3s, box-shadow .3s; }
.card-simples:hover { transform: translateY(-4px); box-shadow: 0 16px 34px -22px rgba(55,26,81,.55); }
.card-icone { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--verde); color: var(--roxo-esc); font-weight: 700; margin-bottom: 12px; }
.card-simples h3 { font-size: 1rem; }
.card-simples p { color: var(--roxo-claro); font-size: .92rem; margin-top: 6px; }
.estreito-txt { max-width: 720px; margin: -20px auto 30px; color: var(--roxo-claro); }
.aviso { padding: 24px; border-radius: var(--raio); background: #fff6e0; border: 1px solid #f3d98a; margin-bottom: 22px; }
.aviso h2 { font-size: 1.15rem; margin-bottom: 8px; }
.aviso p { margin-bottom: 8px; }
.aviso a { color: var(--roxo); font-weight: 700; text-decoration: underline; }
.passos-lista { list-style: none; display: grid; gap: 10px; }
.passos-lista li { padding: 14px 18px; border-radius: 10px; background: var(--cinza); }
.passos-lista b { display: inline-block; min-width: 72px; color: var(--verde-esc); }
.caixa-form { padding: 10px; border-radius: 18px; border: 1px solid var(--linha); box-shadow: 0 24px 50px -32px rgba(55,26,81,.7); min-height: 300px; }
.antes-depois { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ad { padding: 30px; border-radius: 18px; }
.ad h3 { margin-bottom: 14px; }
.ad ul { list-style: none; display: grid; gap: 10px; }
.ad li::before { margin-right: 10px; font-weight: 700; }
.ad-antes { background: var(--cinza); border: 1px solid var(--linha); }
.ad-antes li::before { content: "✕"; color: #b2344a; }
.ad-depois { background: var(--roxo); color: #fff; }
.ad-depois h3 { color: #fff; }
.ad-depois li::before { content: "✓"; color: var(--verde); }
.agenda { border-radius: 18px; overflow: hidden; border: 1px solid var(--linha); box-shadow: 0 24px 50px -32px rgba(55,26,81,.7); }
.agenda iframe { width: 100%; height: 900px; border: 0; display: block; }

/* ---------- blog e newsletter ---------- */
.grade-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.post { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid var(--linha); transition: transform .3s, box-shadow .3s; }
.post:hover { transform: translateY(-6px); box-shadow: 0 22px 44px -28px rgba(55,26,81,.7); }
.post-img { aspect-ratio: 16 / 9; overflow: hidden; background: var(--cinza); }
.post-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.post:hover .post-img img { transform: scale(1.06); }
.post-txt { display: flex; flex-direction: column; gap: 8px; padding: 20px; flex: 1; }
.post-txt small { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--verde-esc); }
.post-txt b { color: var(--roxo); font-weight: 600; line-height: 1.35; flex: 1; }
.post-txt .link-seta-roxo { margin-top: 4px; }
.voltar-link { display: inline-block; color: var(--verde); font-weight: 600; font-size: .88rem; margin-bottom: 14px; }
.post-data { color: rgba(255,255,255,.75) !important; font-size: .88rem; margin-bottom: 6px !important; }
.post-capa { width: 100%; border-radius: 16px; margin-bottom: 34px; box-shadow: 0 24px 50px -32px rgba(55,26,81,.8); }
.post-corpo { font-size: 1.05rem; line-height: 1.8; color: #3b2d4e; }
.post-corpo h2 { font-size: 1.4rem; margin: 36px 0 12px; }
.post-corpo h3 { font-size: 1.15rem; margin: 26px 0 10px; }
.post-corpo p { margin-bottom: 16px; }
.post-corpo ul, .post-corpo ol { margin: 0 0 18px 24px; }
.post-corpo li { margin-bottom: 8px; }
.post-corpo a { color: var(--roxo); font-weight: 600; text-decoration: underline; text-decoration-color: var(--verde); text-underline-offset: 3px; }
.post-corpo strong, .post-corpo b { color: var(--roxo); }
.post-corpo blockquote { border-left: 4px solid var(--verde); padding: 8px 18px; margin: 20px 0; background: var(--cinza); border-radius: 0 10px 10px 0; }
.post-cta { margin-top: 44px; padding: 34px; border-radius: 18px; background: var(--roxo); color: #fff; text-align: center; }
.post-cta h2 { color: #fff; margin-bottom: 8px; }
.post-cta p { color: rgba(255,255,255,.85); margin-bottom: 8px; }
.edicoes { display: grid; gap: 18px; }
.edicao { display: grid; grid-template-columns: 260px 1fr; gap: 26px; align-items: center; padding: 18px; border-radius: 16px; background: #fff; border: 1px solid var(--linha); transition: box-shadow .3s; }
.edicao:hover { box-shadow: 0 18px 38px -26px rgba(55,26,81,.65); }
.edicao-img { border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 10; }
.edicao-img img { width: 100%; height: 100%; object-fit: cover; }
.edicao small { font-size: .78rem; font-weight: 700; color: var(--verde-esc); text-transform: uppercase; letter-spacing: .08em; }
.edicao h3 { margin: 4px 0 8px; font-size: 1.12rem; }
.edicao p { color: var(--roxo-claro); font-size: .93rem; }

/* ---------- páginas internas (DP, legalização, vagas) ---------- */
.lista-solicitacoes { display: grid; gap: 18px; }
.solicitacao { display: grid; grid-template-columns: 220px 1fr; gap: 26px; align-items: start; padding: 22px; border-radius: 16px; border: 1px solid var(--linha); background: #fff; transition: box-shadow .3s; }
.solicitacao:hover { box-shadow: 0 18px 38px -26px rgba(55,26,81,.65); }
.solicitacao img { width: 220px; height: 160px; object-fit: cover; border-radius: 12px; }
.solicitacao h3 { font-size: 1.2rem; margin-bottom: 8px; }
.solicitacao-txt { color: var(--roxo-claro); font-size: .93rem; margin-bottom: 14px; }
.solicitacao-txt p { margin-bottom: 8px; }
.solicitacao-txt ul, .solicitacao-txt ol { margin: 0 0 10px 20px; }
.solicitacao-txt a { color: var(--roxo); text-decoration: underline; }
.solicitacao .btn-roxo { color: #fff; }
.ver-lista summary { cursor: pointer; font-weight: 600; color: var(--roxo); margin-bottom: 8px; }
.ver-lista[open] summary { margin-bottom: 12px; }
.grade-vagas { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.vaga { display: flex; flex-direction: column; gap: 10px; padding: 26px; border-radius: 16px; border: 1px solid var(--linha); border-top: 4px solid var(--verde); }
.vaga p { color: var(--roxo-claro); flex: 1; }
.vaga .btn { align-self: flex-start; padding: 11px 22px; font-size: .9rem; }
.descricao-vaga { margin-bottom: 26px; padding: 26px; border-radius: 16px; background: var(--cinza); color: #3b2d4e; }
.descricao-vaga h4 { color: var(--roxo); margin: 0 0 10px; font-size: 1.1rem; }
.descricao-vaga p { margin-bottom: 10px; }
.descricao-vaga ul { margin: 0 0 12px 20px; }
.botoes-pagamento { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.botoes-pagamento .btn-roxo { padding: 15px 30px; border-radius: 999px; text-transform: none; font-size: 1rem; }

/* revelar na rolagem */
.revelar { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1); transition-delay: var(--atraso, 0s); }
.revelar.visivel { opacity: 1; transform: none; }

/* responsivo */
@media (max-width: 980px) {
  .hero-inner, .duas-colunas { grid-template-columns: 1fr; }
  .hero-visual { max-width: 460px; width: 100%; margin: 10px auto 0; }
  .grade-servicos { grid-template-columns: repeat(2, 1fr); }
  .grade-videos { grid-template-columns: repeat(3, 1fr); }
  .rodape-contato { grid-template-columns: 1fr 1fr; }
  .grade-compromissos { grid-template-columns: repeat(2, 1fr); }
  .grade-mini { grid-template-columns: repeat(3, 1fr); }
  .linha-servico, .linha-servico:nth-child(even) { grid-template-columns: 1fr; gap: 16px; }
  .linha-servico:nth-child(even) .linha-foto { order: 0; }
  .socia { grid-template-columns: 1fr; }
  .grade-departamentos { grid-template-columns: 1fr; }
  .hero-cap-inner.com-img, .antes-depois { grid-template-columns: 1fr; }
  .hero-cap-img { max-height: 300px; }
  .agenda iframe { height: 1100px; }
  .grade-posts { grid-template-columns: repeat(2, 1fr); }
  .edicao { grid-template-columns: 1fr; }
  .solicitacao { grid-template-columns: 1fr; }
  .solicitacao img { width: 100%; }
}
@media (max-width: 820px) {
  .so-desktop { display: none; }
  .hamburguer { display: block; }
  .menu { display: none; }
  .menu.aberto { display: block; }
  .menu ul { flex-direction: column; align-items: center; gap: 16px; padding: 22px 0; }
  .hamburguer[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .hamburguer[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .hamburguer[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .passos { grid-template-columns: 1fr; gap: 34px; }
  .passos-linha { display: none; }
  .cartas-transforma { grid-template-columns: 1fr 1fr; }
  .newsletter-inner { flex-direction: column; text-align: center; }
  .marca img { height: 46px; }
}
@media (max-width: 600px) {
  .grade-servicos { grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .s-dupla { grid-column: auto; }
  .servico-texto { transform: none; }
  .link-seta { opacity: 1; }
  .cartas-transforma { grid-template-columns: 1fr; }
  .ct { height: 86px; }
  .grade-videos { grid-template-columns: repeat(2, 1fr); }
  .grade-posts { grid-template-columns: 1fr; }
  .rodape-contato { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .btn-xl { width: 100%; }
  .f2 { left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .revelar { opacity: 1; transform: none; }
  .linha-lucro { stroke-dashoffset: 0; } .area-lucro, .ponto-lucro { opacity: 1; }
}

/* botão Área do cliente no topo (30/10/2026) */
.topo-botoes{display:flex;align-items:center;gap:10px;margin-left:auto}
.btn-contorno{border:1.5px solid var(--verde);color:#fff;background:transparent}
.btn-contorno:hover{background:var(--verde);color:var(--roxo-esc)}
@media(max-width:900px){.topo-botoes{margin-right:8px}.topo-botoes .btn-contorno{padding:7px 14px;font-size:.78rem}}

/* rodapé com os dois WhatsApp (03/11/2026): número e e-mail não quebram no computador */
@media (min-width: 981px) { .rodape-contato a { white-space: nowrap; word-break: normal; font-size: .85rem; } .rodape-contato b { font-size: .85rem; } }

/* depoimentos da home maiores (03/11/2026): 3 por linha no computador, 1 no celular */
#clientes .grade-videos { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
#clientes .video { flex: 0 0 calc((100% - 44px) / 3); }
@media (max-width: 980px) { #clientes .video { flex-basis: calc((100% - 22px) / 2); } }
@media (max-width: 600px) { #clientes .video { flex-basis: 100%; } }

/* cartão BPO da home: mostra a pessoa inteira, sem cortar a cabeça (03/11/2026) */
.servico img[src*="s-bpo"] { object-position: center top; }

/* celular (03/11/2026): imagem redonda não passa da tela e texto do botão fica centralizado */
.redonda { max-width: min(380px, 100%); }
.duas-colunas > *, .hero-inner > * { min-width: 0; }
@media (max-width: 600px) { .btn-xl { text-align: center; padding-left: 22px; padding-right: 22px; } }
@media (max-width: 600px) { .painel { padding-bottom: 38px; } }
@media (max-width: 980px) { .socia img { margin-left: auto; margin-right: auto; } }
