/* =============================================================================
 * Clínica SaaS — Landing page (design "Vitalis")
 * CSS próprio, sem framework/CDN (compatível com o CSP do projeto).
 * Fontes e imagens auto-hospedadas em ./fonts e ./img.
 * ========================================================================== */

/* ---- Fontes (subset latino) ---- */
@font-face { font-family:'Inter';      font-style:normal; font-weight:100 900; font-display:swap; src:url('fonts/inter.woff2') format('woff2'); }
@font-face { font-family:'Jakarta';    font-style:normal; font-weight:200 800; font-display:swap; src:url('fonts/jakarta.woff2') format('woff2'); }
@font-face { font-family:'Space Mono'; font-style:normal; font-weight:400;     font-display:swap; src:url('fonts/spacemono-400.woff2') format('woff2'); }
@font-face { font-family:'Space Mono'; font-style:normal; font-weight:700;     font-display:swap; src:url('fonts/spacemono-700.woff2') format('woff2'); }

/* ---- Tokens ---- */
:root{
  --teal-700:#0f766e; --teal-600:#0d9488; --teal-500:#14b8a6; --teal-100:#ccfbf1; --teal-50:#f0fdfa;
  --emerald-500:#10b981; --emerald-50:#ecfdf5;
  --slate-900:#0f172a; --slate-800:#1e293b; --slate-700:#334155; --slate-600:#475569;
  --slate-500:#64748b; --slate-400:#94a3b8; --slate-300:#cbd5e1; --slate-200:#e2e8f0;
  --slate-100:#f1f5f9; --slate-50:#f8fafc; --sky-50:#f0f9ff; --sky-500:#0ea5e9; --white:#fff;
  --grid-color:rgba(0,0,0,.04); --beam:#0ea5e9;
  --maxw:1600px; --gut:clamp(20px,6%,120px);
  --sh-sm:0 1px 2px rgba(15,23,42,.05);
  --sh-md:0 10px 30px rgba(15,23,42,.08);
  --sh-lg:0 24px 60px rgba(15,23,42,.14);
  --r:8px;
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --head:'Jakarta','Inter',system-ui,sans-serif;
  --mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* ---- Reset base ---- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0; font-family:var(--sans); color:var(--slate-900); background:var(--white);
  line-height:1.5; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:0; background:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family:var(--head); font-weight:600; letter-spacing:-.02em; line-height:1.06; }
p{ margin:0; }
::selection{ background:var(--teal-100); color:var(--teal-700); }
:focus-visible{ outline:2px solid var(--teal-500); outline-offset:2px; }

.lp-container{ max-width:var(--maxw); margin:0 auto; padding-left:var(--gut); padding-right:var(--gut); }
.lp-ic{ width:1.25rem; height:1.25rem; flex:none; stroke:currentColor; }
.lp-eyebrow{ font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.18em; color:var(--slate-400); }

/* ---- Fundo: grid lines + blobs ambientes ---- */
.lp-ambient{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.lp-ambient::before,.lp-ambient::after{
  content:""; position:absolute; border-radius:50%; filter:blur(120px); opacity:.55;
}
.lp-ambient::before{ top:-12%; right:-10%; width:820px; height:820px; background:var(--sky-50); }
.lp-ambient::after{ bottom:-14%; left:-12%; width:680px; height:680px; background:var(--teal-50); }
.lp-gridlines{ position:fixed; inset:0; z-index:0; pointer-events:none; }
.lp-gridlines i{ position:absolute; top:0; bottom:0; width:1px; background:var(--grid-color); }
.lp-gridlines i:nth-child(1){ left:6%; } .lp-gridlines i:nth-child(2){ left:28%; }
.lp-gridlines i:nth-child(3){ left:62%; } .lp-gridlines i:nth-child(4){ left:94%; }
.lp-beam{ position:absolute; left:-1px; width:1px; height:180px; z-index:1;
  background:linear-gradient(180deg,transparent,var(--beam),transparent); opacity:0; animation:lp-beam-v 7s linear infinite; }
.lp-gridlines i:nth-child(2) .lp-beam{ animation-delay:1s; }
.lp-gridlines i:nth-child(3) .lp-beam{ animation-delay:3.5s; animation-duration:8s; }
@keyframes lp-beam-v{ 0%{top:-200px;opacity:0} 8%{opacity:1} 92%{opacity:1} 100%{top:100%;opacity:0} }

.lp-page{ position:relative; z-index:2; }

/* ---- Botões ---- */
.lp-btn{ display:inline-flex; align-items:center; gap:.6rem; font-size:.72rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em; background:var(--slate-900); color:#fff;
  padding:.8rem 1.35rem; border-radius:var(--r); box-shadow:var(--sh-sm); transition:.25s; }
.lp-btn:hover{ background:var(--slate-800); box-shadow:var(--sh-md); transform:translateY(-1px); }
.lp-btn .lp-ic{ width:1rem; height:1rem; }

.lp-pill{ display:inline-flex; align-items:center; gap:.85rem; padding:.4rem .4rem .4rem 1.35rem;
  background:#fff; border:1px solid var(--slate-200); border-radius:999px; box-shadow:var(--sh-sm);
  font-size:.92rem; font-weight:500; color:var(--slate-700); transition:.25s; }
.lp-pill:hover{ background:var(--slate-50); }
.lp-pill span.lp-pill-ic{ width:2.25rem; height:2.25rem; display:grid; place-items:center; border-radius:999px;
  background:var(--slate-100); color:var(--slate-900); transition:.25s; }
.lp-pill:hover span.lp-pill-ic{ background:var(--teal-50); color:var(--teal-600); }

.lp-link{ display:inline-flex; align-items:center; gap:.4rem; font-size:.75rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; color:var(--teal-600); transition:.2s; }
.lp-link:hover{ color:var(--teal-700); }
.lp-link .lp-ic{ width:.9rem; height:.9rem; transition:transform .2s; }
.lp-link:hover .lp-ic{ transform:translateX(3px); }

.lp-badge{ display:inline-flex; align-items:center; gap:.55rem; padding:.35rem .85rem; border-radius:999px;
  background:var(--teal-50); border:1px solid var(--teal-100); color:var(--teal-700);
  font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
.lp-dot{ position:relative; width:.5rem; height:.5rem; flex:none; }
.lp-dot i{ position:absolute; inset:0; border-radius:999px; background:var(--emerald-500); }
.lp-dot b{ position:absolute; inset:0; border-radius:999px; background:var(--emerald-500); opacity:.6; animation:lp-ping 1.6s cubic-bezier(0,0,.2,1) infinite; }
.lp-badge .lp-dot i,.lp-badge .lp-dot b{ background:var(--teal-500); }
@keyframes lp-ping{ 75%,100%{ transform:scale(2.4); opacity:0; } }

/* ---- Navbar ---- */
.lp-nav{ position:sticky; top:0; z-index:40; height:72px; display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--gut); background:rgba(255,255,255,.72); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--slate-100); }
.lp-brand{ display:flex; align-items:center; gap:.65rem; font-family:var(--head); font-weight:700; font-size:1.1rem; letter-spacing:-.02em; }
.lp-brand-ic{ width:2rem; height:2rem; display:grid; place-items:center; border-radius:7px; background:var(--teal-50); color:var(--teal-600); }
.lp-logo{ width:2.3rem; height:2.3rem; flex:none; display:block; }
.lp-brand-ic .lp-ic{ width:1.15rem; height:1.15rem; }
.lp-nav-links{ display:flex; gap:2rem; align-items:center; font-size:.9rem; font-weight:500; color:var(--slate-500); }
.lp-nav-links a:hover{ color:var(--slate-900); }
.lp-nav-actions{ display:flex; align-items:center; gap:1.1rem; }
.lp-signin{ font-size:.9rem; font-weight:500; color:var(--slate-600); transition:.2s; }
.lp-signin:hover{ color:var(--slate-900); }
.lp-burger{ display:none; color:var(--slate-600); }
.lp-burger .lp-ic{ width:1.6rem; height:1.6rem; }

/* Mobile menu */
.lp-mobile{ position:fixed; inset:0; z-index:60; background:rgba(255,255,255,.97); backdrop-filter:blur(16px);
  display:flex; flex-direction:column; padding:5rem 2rem 2rem; transform:translateY(-16px); opacity:0; pointer-events:none;
  transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .35s; }
.lp-mobile.open{ transform:none; opacity:1; pointer-events:auto; }
.lp-mobile-close{ position:absolute; top:1.6rem; right:1.4rem; color:var(--slate-500); }
.lp-mobile-close .lp-ic{ width:2rem; height:2rem; }
.lp-mobile nav{ display:flex; flex-direction:column; gap:.5rem; }
.lp-mobile nav a{ font-family:var(--head); font-size:1.5rem; font-weight:500; letter-spacing:-.02em;
  padding:1rem 0; border-bottom:1px solid var(--slate-100); }
.lp-mobile nav a:hover{ color:var(--teal-600); }
.lp-mobile .lp-btn{ justify-content:center; width:100%; margin-top:auto; padding-top:1.1rem; padding-bottom:1.1rem; }

/* ---- Hero ---- */
.lp-hero{ position:relative; padding:64px 0 80px; }
.lp-hero-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:56px; align-items:center; }
/* grid items com mídia (img/svg): impede min-width:auto de estourar a coluna */
.lp-hero-grid > *, .lp-data > *, .lp-detail > *{ min-width:0; }
.lp-hero-title{ font-size:clamp(2.6rem,5.6vw,4.6rem); font-weight:600; line-height:.98; letter-spacing:-.03em; overflow-wrap:break-word; }
.lp-hero-title span{ display:block; }
.lp-hero-title .g{ color:var(--slate-400); }
.lp-hero-title .t{ color:var(--teal-600); }
.lp-hero p.lp-lead{ margin-top:1.6rem; max-width:34rem; font-size:1.12rem; font-weight:300; line-height:1.7; color:var(--slate-500); }
.lp-hero-cta{ margin-top:2.2rem; display:flex; flex-wrap:wrap; gap:1.1rem; align-items:center; }
.lp-hero-status{ margin-top:2.2rem; display:flex; gap:2rem; flex-wrap:wrap; }
.lp-hero-status .lbl{ font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--slate-900); }
.lp-hero-status .val{ display:flex; align-items:center; gap:.5rem; margin-top:.35rem; font-family:var(--mono); font-size:.8rem; color:var(--slate-500); }

/* Hero sem imagem — coluna única, centralizada e harmônica.
   Cada elemento tem sua própria largura (headline larga, subhead média,
   bullets/CTA médio-largo), sempre centrado. Tudo em max-width → colapsa
   sozinho no mobile (a largura vira a do viewport). */
.lp-hero-grid.lp-hero-solo{ grid-template-columns:minmax(0,1fr); text-align:center; padding-block:16px; }
.lp-hero-grid.lp-hero-solo > div{ max-width:none; }
.lp-hero-grid.lp-hero-solo .lp-hero-title{ max-width:76rem; margin-inline:auto; }
.lp-hero-grid.lp-hero-solo .lp-lead{ max-width:50rem; margin-inline:auto; }
.lp-hero-grid.lp-hero-solo .lp-hero-bullets{ max-width:60rem; margin-inline:auto; text-align:left; }
.lp-hero-grid.lp-hero-solo .lp-hero-cta{ max-width:60rem; margin-inline:auto; justify-content:center; }

/* Hero visual */
.lp-hero-visual{ position:relative; }
.lp-hero-frame{ position:relative; border:1px solid var(--slate-100); border-radius:var(--r); overflow:hidden; box-shadow:var(--sh-lg); }
.lp-hero-frame img{ width:100%; height:420px; object-fit:cover; transition:transform 1.1s ease; }
.lp-hero-frame:hover img{ transform:scale(1.04); }
.lp-hero-frame .lp-frame-tag{ position:absolute; bottom:1.1rem; left:1.1rem; display:grid; place-items:center;
  width:2.75rem; height:2.75rem; background:rgba(255,255,255,.92); backdrop-filter:blur(4px);
  border:1px solid var(--slate-200); border-radius:7px; color:var(--slate-700); box-shadow:var(--sh-sm); }
.lp-floatcard{ position:absolute; right:-18px; bottom:-30px; width:290px; background:#fff; border:1px solid var(--slate-100);
  border-radius:var(--r); box-shadow:var(--sh-lg); padding:1.35rem; }
.lp-floatcard .top{ display:flex; align-items:flex-start; justify-content:space-between; }
.lp-floatcard .eb{ display:flex; align-items:center; gap:.4rem; color:var(--teal-600); font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; margin-bottom:.5rem; }
.lp-floatcard .eb .lp-ic{ width:.9rem; height:.9rem; }
.lp-floatcard h4{ font-size:1.15rem; }
.lp-floatcard .av{ width:3rem; height:3rem; border-radius:999px; display:grid; place-items:center; background:var(--slate-50); color:var(--slate-400); }
.lp-floatcard .who{ margin-top:1rem; font-size:.85rem; font-weight:500; color:var(--slate-500); border-left:2px solid var(--teal-100); padding-left:.75rem; line-height:1.5; }
.lp-floatcard .who b{ color:var(--slate-700); font-weight:600; display:block; }
.lp-floatcard .foot{ margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--slate-100); display:flex; justify-content:space-between; align-items:center; }

/* ---- Faixa de confiança ---- */
.lp-trust{ border-top:1px solid var(--slate-100); border-bottom:1px solid var(--slate-100); background:var(--slate-50); }
.lp-trust .lp-container{ display:flex; align-items:center; gap:2.5rem; flex-wrap:wrap; justify-content:center; padding-top:1.6rem; padding-bottom:1.6rem; }
.lp-trust .t-lbl{ font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; color:var(--slate-400); }
.lp-trust .t-item{ display:flex; align-items:center; gap:.55rem; color:var(--slate-400); font-weight:600; }
.lp-trust .t-item .lp-ic{ width:1.15rem; height:1.15rem; }

/* ---- Seções ---- */
.lp-section{ position:relative; padding:96px 0; }
.lp-section.alt{ background:var(--slate-50); border-top:1px solid var(--slate-100); border-bottom:1px solid var(--slate-100); }
.lp-h2{ font-size:clamp(2rem,4.4vw,3.6rem); font-weight:600; letter-spacing:-.03em; line-height:1.04; }
.lp-h2 .mut{ color:var(--slate-300); }
.lp-grad{ background:linear-gradient(90deg,var(--teal-600),var(--emerald-500)); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* Dados / KPIs */
.lp-data{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; }
.lp-kpis{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem 3rem; margin-top:2.5rem; }
.lp-kpi .n{ font-family:var(--head); font-size:2.6rem; font-weight:600; letter-spacing:-.03em; color:var(--slate-900); transition:color .3s; }
.lp-kpi .bar{ height:2px; width:3rem; background:var(--slate-200); margin:.6rem 0 .8rem; transition:width .7s cubic-bezier(.16,1,.3,1), background .3s; }
.lp-kpi:hover .n{ color:var(--teal-600); }
.lp-kpi:hover .bar{ width:100%; background:var(--teal-500); }
.lp-kpi p{ font-size:.9rem; color:var(--slate-500); line-height:1.4; }

/* Chart card */
.lp-chart{ position:relative; background:#fff; border:1px solid var(--slate-200); border-radius:var(--r); padding:1.8rem; box-shadow:var(--sh-sm); transition:.4s; }
.lp-chart:hover{ box-shadow:var(--sh-lg); border-color:var(--teal-100); }
.lp-chart .ch-head{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:1.4rem; }
.lp-chart .ch-head h3{ font-size:1rem; }
.lp-chart .ch-head .lp-eyebrow{ margin-top:.3rem; display:block; }
.lp-legend{ display:flex; gap:1rem; font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.lp-legend span{ display:inline-flex; align-items:center; gap:.4rem; color:var(--slate-500); }
.lp-legend b{ width:.5rem; height:.5rem; border-radius:999px; display:inline-block; }
.lp-chart svg{ width:100%; height:auto; display:block; }
.lp-chart .ch-foot{ margin-top:1.4rem; padding-top:1.2rem; border-top:1px solid var(--slate-100); display:flex; align-items:center; justify-content:space-between; }
.lp-chart .ch-foot .fx{ display:flex; align-items:center; gap:.75rem; }
.lp-chart .ch-foot .ficon{ width:2.1rem; height:2.1rem; display:grid; place-items:center; border-radius:999px; background:var(--emerald-50); color:var(--emerald-500); }
.lp-chart .ch-foot .fx b{ display:block; font-size:.85rem; font-weight:600; color:var(--slate-900); }
.lp-chart .ch-foot .fx small{ font-size:.72rem; color:var(--slate-500); }

/* ---- Bento features ---- */
.lp-sec-head{ max-width:56rem; margin-bottom:4rem; }
.lp-sec-head .lp-h2{ margin-bottom:1.4rem; }
.lp-sec-head p{ font-size:1.1rem; font-weight:300; line-height:1.7; color:var(--slate-500); max-width:44rem; }
.lp-bento{ display:grid; grid-template-columns:repeat(6,1fr); gap:24px; }
.lp-bento .b{ position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between;
  background:rgba(255,255,255,.55); backdrop-filter:blur(4px); border:1px solid var(--slate-200); border-radius:var(--r);
  padding:2rem; box-shadow:var(--sh-sm); transition:.3s; }
.lp-bento .b:hover{ background:#fff; border-color:var(--slate-300); box-shadow:var(--sh-md); }
.lp-bento .b.col2{ grid-column:span 2; } .lp-bento .b.col3{ grid-column:span 3; }
.lp-ibox{ width:3rem; height:3rem; display:grid; place-items:center; border-radius:10px; margin-bottom:2rem; }
.lp-ibox .lp-ic{ width:1.5rem; height:1.5rem; }
.lp-ibox.teal{ background:var(--teal-50); color:var(--teal-600); }
.lp-ibox.sky{ background:var(--sky-50); color:var(--sky-500); }
.lp-ibox.indigo{ background:#eef2ff; color:#6366f1; }
.lp-ibox.amber{ background:#fffbeb; color:#d97706; }
.lp-ibox.rose{ background:#fff1f2; color:#e11d48; }
.lp-ibox.emerald{ background:var(--emerald-50); color:var(--emerald-500); }
.lp-bento .b h3{ font-size:1.15rem; margin-bottom:.5rem; }
.lp-bento .b.col3 h3{ font-size:1.3rem; }
.lp-bento .b p{ font-size:.9rem; color:var(--slate-500); line-height:1.6; max-width:30rem; }
.lp-bento .b .watermark{ position:absolute; top:1.6rem; right:1.6rem; color:var(--slate-100); transition:color .3s; }
.lp-bento .b:hover .watermark{ color:var(--teal-50); }
.lp-bento .b .watermark .lp-ic{ width:4rem; height:4rem; }
.lp-bento .b .tags{ margin-top:1.8rem; display:flex; gap:.6rem; flex-wrap:wrap; }
.lp-tag{ font-family:var(--mono); font-size:.68rem; color:var(--teal-700); background:var(--teal-50); border:1px solid var(--teal-100); padding:.2rem .55rem; border-radius:5px; }
.lp-tag.gray{ color:var(--slate-500); background:#fff; border-color:var(--slate-200); }

/* ---- Depoimentos ---- */
.lp-testi{ display:grid; grid-template-columns:7fr 5fr; gap:2rem; }
.lp-testi-left{ display:flex; flex-direction:column; gap:1.5rem; }
.lp-testi-head{ display:flex; align-items:center; min-height:220px; border:1px solid var(--slate-100); background:var(--slate-50); border-radius:var(--r); padding:3rem; }
.lp-testi-photo{ position:relative; height:440px; overflow:hidden; border:1px solid var(--slate-200); border-radius:var(--r); box-shadow:var(--sh-sm); }
.lp-testi-photo img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s ease; }
.lp-testi-photo:hover img{ transform:scale(1.05); }
.lp-testi-photo .stat{ position:absolute; bottom:2rem; right:2rem; text-align:right; background:rgba(255,255,255,.92); backdrop-filter:blur(4px); padding:1rem 1.2rem; border-radius:7px; box-shadow:var(--sh-md); }
.lp-testi-photo .stat b{ display:block; font-family:var(--head); font-size:2.2rem; font-weight:700; letter-spacing:-.03em; }
.lp-testi-photo .stat small{ font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.14em; color:var(--slate-500); }
.lp-testi-right{ display:flex; flex-direction:column; gap:1.5rem; }
.lp-review{ display:flex; flex-direction:column; justify-content:space-between; height:100%; background:#fff; border:1px solid var(--slate-200); border-radius:var(--r); padding:2.2rem; transition:.3s; }
.lp-review:hover{ border-color:var(--slate-300); box-shadow:var(--sh-md); }
.lp-stars{ display:flex; gap:.2rem; color:#facc15; margin-bottom:1.2rem; }
.lp-stars .lp-ic{ width:1.1rem; height:1.1rem; fill:currentColor; stroke:none; }
.lp-review p{ font-size:1.05rem; font-weight:300; line-height:1.65; color:var(--slate-600); margin-bottom:1.6rem; }
.lp-review .by{ display:flex; align-items:center; gap:1rem; border-top:1px solid var(--slate-100); padding-top:1.2rem; }
.lp-review .by img{ width:2.5rem; height:2.5rem; border-radius:999px; object-fit:cover; }
.lp-review .by b{ font-size:.88rem; font-weight:600; color:var(--slate-900); }
.lp-review .by small{ font-size:.75rem; color:var(--slate-400); }

/* CTA escuro */
.lp-cta{ position:relative; overflow:hidden; margin-top:2rem; background:var(--slate-900); border-radius:var(--r);
  padding:2.6rem 3rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
  box-shadow:var(--sh-lg); }
.lp-cta::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,148,136,.35),transparent); }
.lp-cta > *{ position:relative; z-index:1; }
.lp-cta h3{ font-size:1.7rem; color:#fff; font-weight:600; margin-bottom:.4rem; }
.lp-cta p{ color:var(--slate-400); font-weight:300; }
.lp-cta .lp-btn{ background:#fff; color:var(--slate-900); }
.lp-cta .lp-btn:hover{ background:var(--slate-100); }
.lp-cta .lp-btn .lp-pill-ic{ background:var(--slate-900); color:#fff; }

/* ---- FAQ ---- */
.lp-faq{ max-width:52rem; }
.lp-faq .lp-eyebrow{ display:block; margin-bottom:2rem; }
.lp-faq-item{ border-bottom:1px solid var(--slate-100); }
.lp-faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; text-align:left; padding:1.5rem 0; }
.lp-faq-q h3{ font-size:1.1rem; font-weight:500; color:var(--slate-900); transition:color .2s; }
.lp-faq-q .lp-ic{ color:var(--slate-400); transition:transform .3s, color .2s; flex:none; }
.lp-faq-item:hover .lp-faq-q h3{ color:var(--teal-600); }
.lp-faq-item.open .lp-faq-q .lp-ic{ transform:rotate(45deg); color:var(--teal-600); }
.lp-faq-a{ overflow:hidden; max-height:0; transition:max-height .35s ease; }
.lp-faq-a p{ padding:0 0 1.6rem; color:var(--slate-500); font-weight:300; line-height:1.7; }

/* ---- Footer ---- */
.lp-footer{ border-top:1px solid var(--slate-100); background:var(--slate-50); padding:80px 0 40px; }
.lp-footer-grid{ display:grid; grid-template-columns:3fr 2fr 2fr 5fr; gap:2rem; margin-bottom:5rem; }
.lp-footer h4{ font-family:var(--mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; color:var(--slate-400); margin-bottom:1.5rem; }
.lp-footer .fbrand{ display:flex; align-items:center; gap:.6rem; font-family:var(--head); font-weight:700; margin-bottom:1.4rem; }
.lp-footer .fbrand .lp-brand-ic{ background:var(--slate-200); color:var(--slate-700); }
.lp-footer p.fdesc{ font-size:.9rem; color:var(--slate-500); line-height:1.6; max-width:22rem; }
.lp-footer ul li{ margin-bottom:1rem; }
.lp-footer ul a{ font-size:.9rem; color:var(--slate-500); transition:.2s; }
.lp-footer ul a:hover{ color:var(--teal-600); }
.lp-footer .fcontact{ background:#fff; border:1px solid var(--slate-200); border-radius:var(--r); padding:1.4rem; max-width:18rem; margin-left:auto; }
.lp-footer .fcontact .lp-eyebrow{ display:block; margin-bottom:.5rem; }
.lp-footer .fcontact b{ display:block; font-family:var(--head); font-size:1.4rem; font-weight:600; color:var(--slate-900); }
.lp-footer .fcontact small{ font-size:.85rem; color:var(--slate-500); }
.lp-footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-top:1px solid var(--slate-200); padding-top:2rem; }
.lp-footer-bottom p{ font-size:.78rem; color:var(--slate-400); }
.lp-social{ display:flex; gap:1rem; }
.lp-social a{ color:var(--slate-400); transition:.2s; } .lp-social a:hover{ color:var(--slate-600); }

/* ---- Animações de reveal ---- */
.lp-reveal{ opacity:0; transform:translateY(22px); transition:opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1); }
.lp-reveal.is-visible{ opacity:1; transform:none; }
.d1{ transition-delay:.1s; } .d2{ transition-delay:.2s; } .d3{ transition-delay:.3s; } .d4{ transition-delay:.45s; }
@media (prefers-reduced-motion:reduce){ .lp-reveal{ opacity:1; transform:none; transition:none; } .lp-beam,.lp-dot b{ animation:none; } html{ scroll-behavior:auto; } }

/* ---- Responsivo ---- */
@media (max-width:1100px){
  .lp-bento .b.col3{ grid-column:span 3; }
}
@media (max-width:1024px){
  .lp-gridlines{ display:none; }
  .lp-nav-links{ display:none; }
  .lp-burger{ display:block; }
  .lp-hero-grid{ grid-template-columns:minmax(0,1fr); gap:72px; }
  .lp-hero-visual{ margin-right:0; }
  .lp-data{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .lp-bento{ grid-template-columns:repeat(2,1fr); }
  .lp-bento .b.col2,.lp-bento .b.col3{ grid-column:span 1; }
  .lp-testi{ grid-template-columns:1fr; }
  .lp-footer-grid{ grid-template-columns:1fr 1fr; gap:2.5rem; }
  .lp-footer .fcontact{ margin-left:0; }
}
@media (max-width:640px){
  .lp-section{ padding:64px 0; }
  .lp-signin{ display:none; }
  .lp-nav-actions .lp-btn{ display:none; } /* CTA longo não cabe; menu tem o botão */
  .lp-nav{ padding-left:18px; padding-right:14px; }
  .lp-hero{ padding:40px 0 56px; }
  .lp-hero-title{ font-size:clamp(2.4rem,10vw,3.2rem); }
  .lp-kpis{ grid-template-columns:1fr; gap:2rem; }
  .lp-bento{ grid-template-columns:1fr; }
  .lp-floatcard{ position:relative; right:0; bottom:0; width:100%; margin-top:1rem; }
  .lp-hero-frame img{ height:300px; }
  .lp-cta{ padding:2rem 1.6rem; }
  .lp-footer-grid{ grid-template-columns:1fr; }
  .lp-feat-grid{ grid-template-columns:1fr; }
}

/* ---- Página de recursos ---- */
.lp-feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.lp-feat-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--slate-200);
  border-radius:var(--r); padding:2rem; box-shadow:var(--sh-sm); transition:.3s; }
.lp-feat-card:hover{ border-color:var(--slate-300); box-shadow:var(--sh-md); transform:translateY(-2px); }
.lp-feat-card h3{ font-size:1.15rem; margin:1.2rem 0 1.1rem; }
.lp-feat-list{ display:flex; flex-direction:column; gap:.7rem; }
.lp-feat-list li{ display:flex; gap:.6rem; font-size:.92rem; color:var(--slate-600); line-height:1.5; }
.lp-feat-list li .lp-ic{ width:1.05rem; height:1.05rem; flex:none; color:var(--teal-500); margin-top:.15rem; }
.lp-feat-note{ display:inline-flex; align-items:center; gap:.45rem; margin-top:1rem; padding-top:.9rem;
  border-top:1px dashed var(--slate-200); font-size:.72rem; font-family:var(--mono); color:var(--slate-400); }
.lp-feat-note .lp-ic{ width:.9rem; height:.9rem; color:var(--amber,#d97706); }
@media (max-width:1024px){ .lp-feat-grid{ grid-template-columns:repeat(2,1fr); } }

/* =============================================================================
 * Landing completa — dobras de vendas
 * ========================================================================== */

/* Hero bullets */
.lp-hero-bullets{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem 1.4rem; margin:2rem 0 .5rem; }
.lp-hero-bullets li{ display:flex; gap:.55rem; font-size:.92rem; color:var(--slate-600); line-height:1.45; }
.lp-hero-bullets li .lp-ic{ width:1.05rem; height:1.05rem; flex:none; color:var(--teal-500); margin-top:.15rem; }
.lp-micro{ margin-top:1.3rem; font-size:.82rem; color:var(--slate-400); }

/* Texto de seção (parágrafos longos) */
.lp-prose{ font-size:1.05rem; font-weight:300; line-height:1.75; color:var(--slate-500); max-width:52rem; }
.lp-prose p{ margin-bottom:1rem; }
.lp-prose p:last-child{ margin-bottom:0; }

/* Frase de impacto */
.lp-impact{ margin:0 auto; max-width:56rem; text-align:center; font-family:var(--head); font-weight:600;
  font-size:clamp(1.4rem,3vw,2rem); letter-spacing:-.02em; line-height:1.3; color:var(--slate-900); }
.lp-impact::before{ content:"“"; color:var(--teal-500); }
.lp-impact::after{ content:"”"; color:var(--teal-500); }
.lp-impact.dark{ color:#fff; }

/* Grids de cards genéricos */
.lp-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; }
.lp-card{ background:#fff; border:1px solid var(--slate-200); border-radius:var(--r); padding:2rem;
  box-shadow:var(--sh-sm); transition:.3s; }
.lp-card:hover{ border-color:var(--slate-300); box-shadow:var(--sh-md); transform:translateY(-2px); }
.lp-card h3{ font-size:1.12rem; margin:1.1rem 0 .6rem; }
.lp-card p{ font-size:.92rem; color:var(--slate-500); line-height:1.6; }

/* Grid de módulos (mais compacto) */
.lp-mod-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; }
.lp-mod{ background:rgba(255,255,255,.6); backdrop-filter:blur(4px); border:1px solid var(--slate-200);
  border-radius:var(--r); padding:1.6rem; transition:.3s; }
.lp-mod:hover{ background:#fff; border-color:var(--slate-300); box-shadow:var(--sh-md); }
.lp-mod h3{ font-size:1rem; margin:.9rem 0 .4rem; }
.lp-mod p{ font-size:.85rem; color:var(--slate-500); line-height:1.55; }
.lp-mod .lp-ibox{ width:2.5rem; height:2.5rem; margin-bottom:0; border-radius:8px; }
.lp-mod .lp-ibox .lp-ic{ width:1.25rem; height:1.25rem; }

/* Passos numerados (como funciona / implantação) */
.lp-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px 28px; }
.lp-step{ position:relative; padding-left:0; }
.lp-step-num{ display:inline-grid; place-items:center; width:2.5rem; height:2.5rem; border-radius:999px;
  background:var(--teal-50); color:var(--teal-600); font-family:var(--head); font-weight:700; font-size:1rem; margin-bottom:1rem; }
.lp-step h3{ font-size:1.08rem; margin-bottom:.5rem; }
.lp-step p{ font-size:.92rem; color:var(--slate-500); line-height:1.6; }

/* Comparação antes/depois */
.lp-compare{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.lp-compare-col{ border:1px solid var(--slate-200); border-radius:var(--r); padding:2rem; background:#fff; }
.lp-compare-col.bad{ background:var(--slate-50); }
.lp-compare-col.good{ border-color:var(--teal-200,#99f6e4); box-shadow:var(--sh-md); }
.lp-compare-col h3{ font-size:1.05rem; margin-bottom:1.4rem; display:flex; align-items:center; gap:.5rem; }
.lp-compare-col.bad h3{ color:var(--slate-500); }
.lp-compare-col.good h3{ color:var(--teal-700); }
.lp-compare-list li{ display:flex; gap:.6rem; padding:.55rem 0; font-size:.92rem; color:var(--slate-600);
  line-height:1.45; border-bottom:1px solid var(--slate-100); }
.lp-compare-list li:last-child{ border-bottom:0; }
.lp-compare-list li .lp-ic{ width:1.05rem; height:1.05rem; flex:none; margin-top:.15rem; }
.lp-compare-col.bad .lp-ic{ color:var(--slate-300); }
.lp-compare-col.good .lp-ic{ color:var(--teal-500); }

/* Seções de detalhe (texto + bullets em painel, alternado) */
.lp-detail{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center; }
.lp-detail.rev .lp-detail-text{ order:2; }
.lp-detail-text .lp-h2{ margin-bottom:1.2rem; }
.lp-detail-panel{ background:#fff; border:1px solid var(--slate-200); border-radius:var(--r);
  padding:2.2rem; box-shadow:var(--sh-sm); }
.lp-detail-panel .lp-feat-list li{ font-size:.95rem; padding:.15rem 0; }

/* Não é / É para quem */
.lp-split{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.lp-split-col{ border:1px solid var(--slate-200); border-radius:var(--r); padding:2rem; }
.lp-split-col.no{ background:var(--slate-50); }
.lp-split-col.yes{ border-color:var(--teal-200,#99f6e4); background:var(--teal-50); }
.lp-split-col h3{ font-size:1rem; margin-bottom:1.2rem; }
.lp-split-col ul li{ display:flex; gap:.6rem; padding:.4rem 0; font-size:.95rem; color:var(--slate-600); }
.lp-split-col .lp-ic{ width:1.05rem; height:1.05rem; flex:none; margin-top:.15rem; }
.lp-split-col.no .lp-ic{ color:var(--slate-400); }
.lp-split-col.yes .lp-ic{ color:var(--teal-600); }

/* Planos */
.lp-price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; align-items:stretch; }
.lp-price-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--slate-200);
  border-radius:var(--r); padding:2.4rem 2rem; box-shadow:var(--sh-sm); transition:.3s; }
.lp-price-card:hover{ box-shadow:var(--sh-md); transform:translateY(-2px); }
.lp-price-card.featured{ border-color:var(--teal-500); box-shadow:var(--sh-lg); position:relative; }
.lp-price-tag{ position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--teal-600);
  color:#fff; font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em;
  padding:.3rem .8rem; border-radius:999px; }
.lp-price-name{ font-family:var(--head); font-size:1.3rem; font-weight:600; }
.lp-price-desc{ font-size:.88rem; color:var(--slate-500); margin:.5rem 0 1.4rem; line-height:1.5; min-height:2.4em; }
.lp-price-value{ display:flex; align-items:flex-end; gap:.35rem; margin-bottom:.3rem; }
.lp-price-value b{ font-family:var(--head); font-size:2.6rem; font-weight:700; letter-spacing:-.03em; line-height:1; }
.lp-price-value .pre{ font-size:1rem; color:var(--slate-400); margin-bottom:.35rem; }
.lp-price-cycle{ font-size:.78rem; color:var(--slate-400); margin-bottom:1.6rem; }
.lp-price-card .lp-feat-list{ margin-bottom:1.8rem; }
.lp-price-card .lp-feat-list li{ font-size:.9rem; }
.lp-price-card .lp-btn{ margin-top:auto; justify-content:center; }
.lp-price-card.featured .lp-btn{ background:var(--teal-600); }
.lp-price-card.featured .lp-btn:hover{ background:var(--teal-700); }

/* Final CTA (seção escura) */
.lp-final{ background:var(--slate-900); color:#fff; text-align:center; position:relative; overflow:hidden; }
.lp-final::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(600px circle at 50% 0,rgba(13,148,136,.35),transparent 60%); }
.lp-final > *{ position:relative; z-index:1; }
.lp-final .lp-badge{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.15); color:#5eead4; }
.lp-final h2{ font-size:clamp(2rem,4.4vw,3.4rem); color:#fff; margin:1.4rem auto; max-width:52rem; }
.lp-final p{ color:var(--slate-400); font-weight:300; font-size:1.1rem; max-width:44rem; margin:0 auto 2.4rem; line-height:1.7; }
.lp-final .lp-btn{ background:#fff; color:var(--slate-900); }
.lp-final .lp-btn:hover{ background:var(--slate-100); }

/* CTA WhatsApp central */
.lp-wa{ text-align:center; }
.lp-wa .lp-btn{ background:var(--emerald-500); }
.lp-wa .lp-btn:hover{ background:#059669; }

.lp-section-head-c{ text-align:center; max-width:46rem; margin:0 auto 3.5rem; }
.lp-section-head-c .lp-h2{ margin:1.2rem 0; }
.lp-section-head-c p{ color:var(--slate-500); font-weight:300; font-size:1.05rem; line-height:1.7; }

@media (max-width:1024px){
  .lp-steps{ grid-template-columns:1fr 1fr; }
  .lp-price-grid{ grid-template-columns:1fr; max-width:26rem; margin:0 auto; }
  .lp-detail{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .lp-detail.rev .lp-detail-text{ order:0; }
  .lp-compare,.lp-split{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .lp-hero-bullets{ grid-template-columns:1fr; }
  .lp-steps{ grid-template-columns:1fr; }
}

/* =====================================================================
 * PLANOS — abas por especialidade + bloco de plano sob medida
 * ===================================================================== */
.lp-price-tabs{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px;
  margin:0 auto 2.6rem; max-width:52rem;
}
.lp-price-tab{
  appearance:none; cursor:pointer; font-family:inherit;
  padding:.62rem 1.15rem; border-radius:999px;
  border:1px solid var(--slate-200); background:#fff;
  color:var(--slate-600); font-size:.92rem; font-weight:600;
  /* sem transicao no fundo: a troca de aba precisa ser instantanea */
  transition:border-color .18s ease, color .18s ease;
}
.lp-price-tab:hover{ border-color:var(--teal-500); color:var(--teal-600); }
.lp-price-tab.is-active{
  background:var(--teal-600); border-color:var(--teal-600); color:#fff;
}
.lp-price-tab:focus-visible{ outline:2px solid var(--teal-600); outline-offset:2px; }

/* painéis: só o ativo aparece */
.lp-price-panel{ display:none; }
.lp-price-panel.is-active{ display:grid; }

.lp-price-seats{
  margin:.1rem 0 1rem; font-size:.86rem; font-weight:600; color:var(--slate-500);
}

/* ----- plano sob medida ----- */
.lp-price-custom{
  margin:3rem auto 0; max-width:52rem; text-align:center;
  padding:2.2rem 1.8rem; border-radius:var(--r);
  background:linear-gradient(160deg,#f8fafc,#e6f2f1);
  border:1px solid var(--slate-100);
}
.lp-price-custom h3{
  margin:0 0 .6rem; font-size:clamp(1.15rem,2.4vw,1.5rem);
  line-height:1.28; color:var(--slate-900); text-wrap:balance;
}
.lp-price-custom p{
  margin:0 auto 1.6rem; max-width:36rem;
  color:var(--slate-500); font-size:.98rem; line-height:1.6;
}
.lp-wa-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.7rem;
  width:100%; max-width:26rem; padding:1.05rem 1.6rem;
  border-radius:12px; background:#25D366; color:#fff;
  font-size:1.05rem; font-weight:700; text-decoration:none;
  box-shadow:0 12px 28px -14px rgba(37,211,102,.85);
  transition:filter .16s ease, transform .16s ease;
}
.lp-wa-btn:hover{ filter:brightness(1.05); transform:translateY(-1px); color:#fff; }
.lp-wa-btn svg{ width:24px; height:24px; flex:none; }

@media (max-width:640px){
  .lp-price-tabs{ gap:6px; }
  .lp-price-tab{ padding:.55rem .9rem; font-size:.86rem; }
  .lp-price-custom{ padding:1.8rem 1.2rem; }
  .lp-wa-btn{ font-size:.98rem; padding:.95rem 1.2rem; }
}
