/* =========================================================
   Fonseg Assessoria em Seguros — estilos globais
   Paleta derivada do logo: verde #589C2B + dourado #E4C15D
   ========================================================= */

:root {
  --green-900: #1f3d10;
  --green-800: #29501a;
  --green-700: #356b1f;
  --green-600: #467f24;
  --green-500: #589c2b;
  --green-100: #e5f0dc;
  --green-50:  #f3f8ee;

  --gold-600: #b8912a;
  --gold-500: #e4c15d;
  --gold-100: #faf1d4;

  --cream: #fbf8f1;
  --ink:   #16211a;
  --ink-2: #46534a;
  --ink-3: #6b776f;
  --line:  #e4e8e0;
  --white: #ffffff;

  --radius-sm: 10px;
  --radius:    16px;
  --radius-lg: 24px;
  --shadow-sm: 0 1px 2px rgba(22, 33, 26, .06), 0 1px 3px rgba(22, 33, 26, .08);
  --shadow:    0 10px 30px -12px rgba(22, 33, 26, .18);
  --shadow-lg: 0 24px 60px -20px rgba(22, 33, 26, .28);

  --container: 1180px;
  --gutter: clamp(16px, 4vw, 32px);
  --header-h: 92px;

  --font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--green-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--green-900); }
h1, h2, h3, h4 { line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.02em; color: var(--ink); }
h1 { font-size: clamp(2.1rem, 5.2vw, 3.6rem); font-weight: 800; }
h2 { font-size: clamp(1.7rem, 3.6vw, 2.5rem); font-weight: 800; }
h3 { font-size: 1.2rem; font-weight: 700; }
p { margin: 0 0 1em; }
ul { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; border-radius: 4px; }
.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; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 1000; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { top: 12px; color: #fff; }

/* ---------- Layout ---------- */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: clamp(64px, 9vw, 112px); }
.section--tight { padding-block: clamp(48px, 6vw, 72px); }
.section--cream { background: var(--cream); }
.section--green { background: var(--green-800); color: #e9f1e3; }
.section--green h2, .section--green h3 { color: #fff; }

.section-head { max-width: 720px; margin-bottom: clamp(32px, 5vw, 56px); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head p { color: var(--ink-2); font-size: 1.1rem; }
.section--green .section-head p { color: #cfdcc6; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--green-600); margin-bottom: 14px;
}
.eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--gold-500); border-radius: 2px; }
.section--green .eyebrow { color: var(--gold-500); }

.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 960px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px;
  border-radius: 999px; border: 2px solid transparent;
  font-weight: 700; font-size: 1rem; line-height: 1.2; text-decoration: none;
  cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn svg { width: 20px; height: 20px; flex: none; }
.btn:hover { transform: translateY(-1px); }
.btn--primary { background: var(--green-500); color: #fff; box-shadow: 0 8px 20px -8px rgba(88, 156, 43, .7); }
.btn--primary:hover { background: var(--green-600); color: #fff; }
.btn--gold { background: var(--gold-500); color: var(--ink); }
.btn--gold:hover { background: #d9b24a; color: var(--ink); }
.btn--ghost { background: transparent; color: var(--ink); border-color: var(--line); }
.btn--ghost:hover { border-color: var(--green-500); color: var(--green-700); }
.btn--light { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.35); }
.btn--light:hover { background: rgba(255,255,255,.16); color: #fff; }
.btn--block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(160%) blur(12px);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color .2s, box-shadow .2s;
}
.site-header.is-scrolled { border-color: var(--line); box-shadow: var(--shadow-sm); }
.header-inner { display: flex; align-items: center; gap: 24px; height: var(--header-h); }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); flex: none; }
.brand img { width: 72px; height: 72px; }
.icon-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 999px; border: 1.5px solid var(--line); color: var(--ink-2); transition: color .2s, border-color .2s, background .2s; }
.icon-btn svg { width: 22px; height: 22px; }
.icon-btn:hover { color: var(--green-700); border-color: var(--green-700); background: var(--green-50); }
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-text strong { font-size: 1.25rem; font-weight: 800; letter-spacing: .02em; }
.brand-text span { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }

.main-nav { margin-left: auto; }
.main-nav ul { list-style: none; display: flex; align-items: center; gap: 4px; }
.main-nav li a {
  display: block; padding: 10px 14px; border-radius: 999px;
  font-weight: 600; font-size: .95rem; color: var(--ink-2); text-decoration: none;
}
.main-nav li a:hover { color: var(--green-700); background: var(--green-50); }
.main-nav li a[aria-current="page"] { color: var(--green-700); background: var(--green-50); }
.header-cta { display: flex; align-items: center; gap: 10px; }
.header-cta .btn { min-height: 44px; padding: 10px 18px; font-size: .95rem; }

.nav-toggle {
  display: none; margin-left: auto;
  width: 48px; height: 48px; border-radius: 12px; border: 1px solid var(--line);
  background: #fff; cursor: pointer; align-items: center; justify-content: center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after {
  display: block; width: 20px; height: 2px; background: var(--ink); border-radius: 2px; position: relative; transition: transform .25s, background .25s;
}
.nav-toggle span::before, .nav-toggle span::after { content: ""; position: absolute; left: 0; }
.nav-toggle span::before { top: -6px; }
.nav-toggle span::after { top: 6px; }
.nav-open .nav-toggle span { background: transparent; }
.nav-open .nav-toggle span::before { transform: translateY(6px) rotate(45deg); }
.nav-open .nav-toggle span::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1080px) {
  .nav-toggle { display: inline-flex; }
  .main-nav {
    position: fixed; inset: var(--header-h) 0 0 0; margin: 0;
    background: #fff; padding: 24px var(--gutter) 40px;
    display: flex; flex-direction: column; gap: 24px;
    opacity: 0; transform: translateY(-8px); visibility: hidden; overflow-y: auto;
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }
  .nav-open .main-nav { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
  .main-nav ul { flex-direction: column; align-items: stretch; gap: 2px; }
  .main-nav li a { font-size: 1.15rem; padding: 14px 16px; border-radius: 12px; }
  .header-cta { flex-direction: column; align-items: stretch; }
  .header-cta .btn { min-height: 52px; }
  .nav-open { overflow: hidden; }
}
@media (min-width: 1081px) {
  .main-nav { display: flex; align-items: center; gap: 20px; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(900px 500px at 85% -10%, var(--gold-100), transparent 60%),
    radial-gradient(700px 500px at -10% 110%, var(--green-50), transparent 60%),
    var(--white);
  padding-block: clamp(48px, 8vw, 104px) clamp(56px, 8vw, 112px);
}
.hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero h1 .accent { color: var(--green-500); }
.hero-lead { font-size: clamp(1.05rem, 1.6vw, 1.2rem); color: var(--ink-2); max-width: 560px; margin-bottom: 32px; }
.hero-proof { display: flex; align-items: center; gap: 14px; margin-top: 32px; color: var(--ink-2); font-size: .95rem; }
.hero-proof .avatars { display: flex; }
.hero-proof .avatars span {
  width: 38px; height: 38px; border-radius: 50%; border: 3px solid #fff; margin-left: -10px;
  display: grid; place-items: center; font-weight: 800; font-size: .8rem; color: #fff; background: var(--green-500);
}
.hero-proof .avatars span:first-child { margin-left: 0; }
.hero-proof .avatars span:nth-child(2) { background: var(--gold-600); }
.hero-proof .avatars span:nth-child(3) { background: var(--green-800); }
.hero-proof .avatars span:nth-child(4) { background: var(--ink-2); }
.hero-proof strong { color: var(--ink); }

.hero-visual { position: relative; min-height: 480px; }
.hero-card {
  position: absolute; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg);
  border: 1px solid var(--line); padding: 20px;
}
.hero-card--main { inset: 20px 30px 100px 0; padding: 26px; display: flex; flex-direction: column; gap: 16px; }
.hero-card--main .hc-top { display: flex; align-items: center; gap: 12px; }
.hero-card--main .hc-top img { width: 48px; height: 48px; }
.hero-card--main .hc-top strong { display: block; font-size: 1rem; }
.hero-card--main .hc-top small { color: var(--ink-3); }
.hc-chat { display: flex; flex-direction: column; gap: 10px; }
.hc-bubble { max-width: 85%; padding: 10px 14px; border-radius: 14px; font-size: .9rem; line-height: 1.45; }
.hc-bubble--in { background: var(--cream); border: 1px solid var(--line); border-bottom-left-radius: 4px; }
.hc-bubble--out { align-self: flex-end; background: var(--green-500); color: #fff; border-bottom-right-radius: 4px; }
.hc-status { display: flex; align-items: center; gap: 8px; margin-top: auto; font-size: .85rem; color: var(--green-700); font-weight: 600; }
.hc-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--green-500); box-shadow: 0 0 0 4px var(--green-100); }
.hero-card--float1 { right: 0; top: 0; width: 210px; display: flex; gap: 12px; align-items: center; }
.hero-card--float2 { right: -12px; bottom: 6px; width: 260px; display: flex; gap: 12px; align-items: center; }
.hero-card .ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; flex: none; }
.hero-card .ic svg { width: 22px; height: 22px; }
.hero-card .ic--gold { background: var(--gold-100); color: var(--gold-600); }
.hero-card .ic--green { background: var(--green-50); color: var(--green-600); }
.hero-card b { display: block; font-size: .95rem; line-height: 1.2; }
.hero-card small { color: var(--ink-3); font-size: .8rem; }
@media (max-width: 960px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); }
  .hero-visual { min-height: 480px; max-width: 520px; width: 100%; margin-inline: auto; }
}
@media (max-width: 480px) {
  .hero-visual { min-height: 470px; }
  .hero-card--main { inset: 34px 0 100px 0; padding: 20px; gap: 14px; }
  .hc-bubble { font-size: .85rem; max-width: 90%; }
  .hc-bubble:nth-child(3) { display: none; }
  .hero-card--float1, .hero-card--float2 { padding: 12px 14px; gap: 10px; }
  .hero-card--float1 { width: auto; right: -4px; top: -6px; }
  .hero-card--float2 { width: auto; right: -4px; bottom: 0; }
  .hero-card .ic { width: 38px; height: 38px; }
  .hero-card b { font-size: .88rem; white-space: nowrap; }
  .hero-card small { white-space: nowrap; }
}

/* ---------- Page hero (páginas internas) ---------- */
.page-hero {
  background:
    radial-gradient(700px 400px at 90% 0%, var(--gold-100), transparent 60%),
    var(--cream);
  padding-block: clamp(48px, 7vw, 88px);
  border-bottom: 1px solid var(--line);
}
.page-hero h1 { font-size: clamp(2rem, 4.4vw, 3rem); max-width: 820px; }
.page-hero p { font-size: 1.15rem; color: var(--ink-2); max-width: 680px; margin: 0; }
.breadcrumb { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; font-size: .88rem; color: var(--ink-3); margin-bottom: 18px; }
.breadcrumb li + li::before { content: "/"; margin-right: 8px; color: var(--line); }
.breadcrumb a { color: var(--ink-3); text-decoration: none; }
.breadcrumb a:hover { color: var(--green-700); }

/* ---------- Stats ---------- */
.stats { background: var(--green-800); color: #fff; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { padding: 36px 24px; text-align: center; border-left: 1px solid rgba(255,255,255,.1); }
.stat:first-child { border-left: 0; }
.stat strong { display: block; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 800; line-height: 1; color: var(--gold-500); letter-spacing: -.03em; }
.stat span { display: block; margin-top: 10px; font-size: .95rem; color: #cfdcc6; }
@media (max-width: 760px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(3) { border-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.1); }
}

/* ---------- Cards ---------- */
.card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 28px; transition: box-shadow .25s, transform .25s, border-color .25s;
  display: flex; flex-direction: column;
}
.card:hover { box-shadow: var(--shadow); border-color: transparent; transform: translateY(-2px); }
.card p { color: var(--ink-2); margin-bottom: 0; }
.card .link-arrow { margin-top: auto; padding-top: 18px; }
.icon-badge {
  width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center;
  background: var(--green-50); color: var(--green-600); margin-bottom: 20px;
}
.icon-badge svg { width: 26px; height: 26px; }
.icon-badge--gold { background: var(--gold-100); color: var(--gold-600); }

.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; color: var(--green-700); }
.link-arrow svg { width: 18px; height: 18px; transition: transform .2s; }
.link-arrow:hover svg { transform: translateX(3px); }

/* ---------- Passos ---------- */
.steps { counter-reset: step; }
.step { position: relative; padding: 28px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.step::before {
  counter-increment: step; content: counter(step, decimal-leading-zero);
  display: block; font-size: 2.4rem; font-weight: 800; line-height: 1; color: var(--gold-500); margin-bottom: 16px; letter-spacing: -.04em;
}
.step p { color: var(--ink-2); margin: 0; }

/* ---------- Logos (seguradoras) ---------- */
.logo-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.logo-tile {
  height: 110px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  display: grid; place-items: center; padding: 22px 28px;
}
.logo-tile img { max-height: 58px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .25s, opacity .25s; }
.logo-tile:hover img { filter: none; opacity: 1; }
.logo-tile--more { border-style: dashed; color: var(--ink-3); font-weight: 600; font-size: .9rem; text-align: center; background: transparent; }
.logo-strip--3 { grid-template-columns: repeat(3, 1fr); max-width: 900px; margin-inline: auto; }
.logo-tile { transition: transform .35s var(--ease-spring, ease), box-shadow .35s, border-color .35s; }
.logo-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: transparent; }
@media (max-width: 760px) { .logo-strip { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .logo-strip--3 { grid-template-columns: minmax(0, 1fr); max-width: 320px; } }

/* ---------- Categorias de seguros ---------- */
.cat-card { position: relative; padding: 28px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); text-decoration: none; color: inherit; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s; }
.cat-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); color: inherit; }
.cat-card h3 { margin-bottom: 8px; }
.cat-card p { color: var(--ink-2); font-size: .95rem; margin: 0 0 16px; }
.cat-card .count { margin-top: auto; font-size: .85rem; font-weight: 700; color: var(--green-700); }

.product-group { margin-bottom: 56px; }
.product-group:last-child { margin-bottom: 0; }
.product-group-head { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.product-group-head .icon-badge { margin: 0; }
.product-group-head h2 { font-size: clamp(1.4rem, 2.6vw, 1.8rem); margin: 0; }
.product-group-head p { margin: 2px 0 0; color: var(--ink-2); }
.product {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.product h3 { font-size: 1rem; margin: 0; font-weight: 700; }
.product small { display: block; color: var(--ink-3); font-size: .85rem; margin-top: 2px; }
.product a { flex: none; font-size: .88rem; font-weight: 700; text-decoration: none; white-space: nowrap; padding: 8px 14px; border-radius: 999px; background: var(--green-50); color: var(--green-700); }
.product a:hover { background: var(--green-100); }
.product--featured { border-color: var(--gold-500); background: linear-gradient(0deg, #fff, var(--gold-100)); }

/* ---------- Depoimentos ---------- */
.testimonials { position: relative; }
.t-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 48px) / 3); gap: 24px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  padding-bottom: 8px; scrollbar-width: none;
}
.t-track::-webkit-scrollbar { display: none; }
@media (max-width: 960px) { .t-track { grid-auto-columns: calc((100% - 24px) / 2); } }
@media (max-width: 640px) { .t-track { grid-auto-columns: 88%; } }
@media (min-width: 1100px) {
  .t-five .t-track { grid-auto-columns: calc((100% - 64px) / 5); gap: 16px; }
  .t-five .t-card { padding: 20px; gap: 14px; }
  .t-five .t-card blockquote { font-size: .9rem; line-height: 1.55; }
  .t-five .t-card figcaption { gap: 10px; }
  .t-five .t-card .t-avatar { width: 38px; height: 38px; }
  .t-five .t-card figcaption b { font-size: .92rem; }
  .t-five .t-card figcaption span { font-size: .8rem; }
}.t-card {
  scroll-snap-align: start; margin: 0;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--radius); padding: 28px; display: flex; flex-direction: column; gap: 20px;
}
.t-card .stars { display: flex; gap: 2px; color: var(--gold-500); }
.t-card .stars svg { width: 18px; height: 18px; }
.t-card blockquote { margin: 0; font-size: 1.02rem; line-height: 1.6; color: #f1f6ed; }
.t-card figcaption { margin-top: auto; display: flex; align-items: center; gap: 12px; }
.t-card .t-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--gold-500); color: var(--green-900); font-weight: 800; display: grid; place-items: center; flex: none; }
.t-card figcaption b { display: block; color: #fff; }
.t-card figcaption span { font-size: .88rem; color: #b9cbb0; }
.t-tag { display: inline-block; font-size: .78rem; font-weight: 700; color: var(--gold-500); background: rgba(228,193,93,.12); padding: 4px 10px; border-radius: 999px; align-self: flex-start; }
.t-controls { display: flex; gap: 10px; justify-content: flex-end; margin-top: 24px; }
.t-btn {
  width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3);
  background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center;
}
.t-btn:hover { background: rgba(255,255,255,.1); }
.t-btn svg { width: 20px; height: 20px; }
.t-light .t-card { background: #fff; border-color: var(--line); }
.t-light .t-card blockquote { color: var(--ink); }
.t-light .t-card figcaption b { color: var(--ink); }
.t-light .t-card figcaption span { color: var(--ink-3); }
.t-light .t-btn { border-color: var(--line); color: var(--ink); }
.t-light .t-btn:hover { background: var(--green-50); }
.t-light .t-tag { color: var(--gold-600); background: var(--gold-100); }

/* ---------- Equipe ---------- */
.team-card { text-align: center; }
.team-photo {
  aspect-ratio: 1 / 1; border-radius: var(--radius); margin-bottom: 16px;
  background: repeating-linear-gradient(45deg, var(--green-50), var(--green-50) 12px, #fff 12px, #fff 24px);
  border: 2px dashed var(--green-100); display: grid; place-items: center; color: var(--green-600);
}
.team-photo svg { width: 56px; height: 56px; opacity: .6; }
.team-photo:has(img) { border: 0; background: none; overflow: hidden; box-shadow: var(--shadow); }
.team-photo img { width: 100%; height: 100%; object-fit: cover; }
.team-card h3 { margin: 0 0 2px; font-size: 1.05rem; }
.team-card p { margin: 0; color: var(--ink-3); font-size: .92rem; }

/* Marcador de conteúdo pendente (remover quando o cliente enviar o material) */
.placeholder-note {
  display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 600;
  color: #8a6a12; background: var(--gold-100); border: 1px dashed var(--gold-500);
  padding: 6px 12px; border-radius: 999px; margin-bottom: 24px;
}

/* ---------- Split / feature ---------- */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.split--top { align-items: start; }
@media (max-width: 900px) { .split { grid-template-columns: minmax(0, 1fr); } }
.check-list { list-style: none; display: grid; gap: 14px; margin: 24px 0 0; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; color: var(--ink-2); }
.check-list li::before {
  content: ""; flex: none; width: 22px; height: 22px; margin-top: 2px; border-radius: 50%;
  background: var(--green-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.check-list b { color: var(--ink); }
.section--green .check-list li { color: #cfdcc6; }
.section--green .check-list b { color: #fff; }
.section--green .check-list li::before { background-color: var(--gold-500); }

.feature-panel {
  background: var(--cream); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 40px);
  border: 1px solid var(--line);
}
.mock-art { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.mock-art div {
  aspect-ratio: 4 / 5; border-radius: 12px; padding: 12px; display: flex; flex-direction: column; justify-content: flex-end;
  color: #fff; font-weight: 800; font-size: .8rem; line-height: 1.2;
}
.mock-art div:nth-child(1) { background: linear-gradient(160deg, var(--green-500), var(--green-800)); }
.mock-art div:nth-child(2) { background: linear-gradient(160deg, var(--gold-500), var(--gold-600)); color: var(--ink); }
.mock-art div:nth-child(3) { background: linear-gradient(160deg, var(--ink-2), var(--ink)); }
.mock-art div small { font-weight: 600; opacity: .8; font-size: .7rem; margin-top: 4px; }

.art-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.art-grid img { width: 100%; height: auto; border-radius: 12px; box-shadow: var(--shadow-sm); }
.training-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 40px); }
.training-card h3 { color: #fff; font-size: 1.5rem; margin: 18px 0 10px; }
.training-card p { color: #cfdcc6; margin-bottom: 24px; }
.schedule { list-style: none; display: grid; gap: 12px; }
.schedule li { display: flex; gap: 16px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px 16px; }
.schedule .when { flex: none; width: 56px; text-align: center; border-radius: 10px; background: var(--green-500); color: #fff; padding: 6px 0; line-height: 1.1; }
.schedule .when b { display: block; font-size: 1.1rem; }
.schedule .when small { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.schedule strong { display: block; font-size: .98rem; }
.schedule span { font-size: .85rem; color: var(--ink-3); }

/* ---------- Timeline ---------- */
.timeline { list-style: none; position: relative; display: grid; gap: 28px; padding-left: 32px; }
.timeline::before { content: ""; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: var(--green-100); }
.timeline li { position: relative; }
.timeline li::before { content: ""; position: absolute; left: -32px; top: 5px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 4px solid var(--green-500); }
.timeline b { display: block; color: var(--green-700); font-size: .9rem; letter-spacing: .06em; text-transform: uppercase; }
.timeline h3 { margin: 4px 0 6px; }
.timeline p { color: var(--ink-2); margin: 0; }

/* ---------- CTA band ---------- */
.cta-band {
  position: relative; overflow: hidden; border-radius: var(--radius-lg);
  background: radial-gradient(600px 300px at 100% 0%, rgba(228,193,93,.35), transparent 60%), var(--green-800);
  color: #e3ecdc; padding: clamp(36px, 6vw, 64px);
  display: grid; grid-template-columns: 1.4fr auto; gap: 32px; align-items: center;
}
.cta-band h2 { color: #fff; margin-bottom: 10px; }
.cta-band p { margin: 0; font-size: 1.1rem; color: #cfdcc6; }
.cta-band .btn-row { justify-content: flex-end; }
@media (max-width: 860px) { .cta-band { grid-template-columns: 1fr; } .cta-band .btn-row { justify-content: flex-start; } }

/* ---------- Formulários ---------- */
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 40px); box-shadow: var(--shadow); }
.form-card h2 { font-size: 1.6rem; }
.form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 600px) { .form-grid { grid-template-columns: minmax(0, 1fr); } }
.field label, .field legend { display: block; font-weight: 700; font-size: .92rem; margin-bottom: 6px; color: var(--ink); }
.field label .opt { font-weight: 500; color: var(--ink-3); }
.field input, .field select, .field textarea {
  width: 100%; min-height: 50px; padding: 12px 14px; border-radius: 12px;
  border: 1.5px solid var(--line); background: #fff; transition: border-color .2s, box-shadow .2s;
}
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--green-500); box-shadow: 0 0 0 4px var(--green-50); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: #c2410c; }
.field .error { display: none; color: #c2410c; font-size: .85rem; margin-top: 6px; }
.field.has-error .error { display: block; }
fieldset.field { border: 0; padding: 0; margin: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip span { display: inline-block; padding: 8px 14px; border-radius: 999px; border: 1.5px solid var(--line); font-size: .9rem; font-weight: 600; color: var(--ink-2); transition: all .2s; }
.chip input:checked + span { background: var(--green-500); border-color: var(--green-500); color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--gold-500); outline-offset: 2px; }
.consent { display: flex; gap: 12px; align-items: flex-start; font-size: .88rem; color: var(--ink-2); }
.consent input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--green-500); flex: none; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { display: none; margin-top: 18px; padding: 14px 16px; border-radius: 12px; font-weight: 600; }
.form-status.is-success { display: block; background: var(--green-50); color: var(--green-800); border: 1px solid var(--green-100); }
.form-status.is-error { display: block; background: #fff4ed; color: #9a3412; border: 1px solid #fed7aa; }
.form-note { font-size: .85rem; color: var(--ink-3); margin-top: 14px; }

/* ---------- Contato ---------- */
.contact-list { list-style: none; display: grid; gap: 16px; }
.contact-item { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: inherit; transition: box-shadow .2s; }
a.contact-item:hover { box-shadow: var(--shadow); color: inherit; }
.contact-item .icon-badge { margin: 0; width: 46px; height: 46px; }
.contact-item small { display: block; color: var(--ink-3); font-size: .85rem; }
.contact-item strong { font-size: 1.05rem; overflow-wrap: anywhere; }
.contact-item > span:last-child { min-width: 0; }
.map-wrap { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); min-height: 380px; background: var(--cream); }
.map-wrap iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }

/* ---------- Prose (política, páginas de produto) ---------- */
.prose { max-width: 760px; }
.prose h2 { font-size: 1.5rem; margin-top: 2em; }
.prose h3 { margin-top: 1.6em; }
.prose p, .prose li { color: var(--ink-2); }
.prose ul { padding-left: 1.2em; margin-bottom: 1em; }
.prose li { margin-bottom: .4em; }
.layout-aside { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(32px, 5vw, 64px); align-items: start; }
.aside-sticky { position: sticky; top: calc(var(--header-h) + 24px); }
.layout-aside--form { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
@media (max-width: 960px) { .layout-aside, .layout-aside--form { grid-template-columns: minmax(0, 1fr); } .aside-sticky { position: static; } }

.faq details { border-bottom: 1px solid var(--line); padding: 4px 0; }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 18px 0; font-weight: 700; font-size: 1.05rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.5rem; line-height: 1; color: var(--green-600); transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--ink-2); padding-bottom: 16px; margin: 0; }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: #b6c0b9; padding-top: clamp(56px, 7vw, 80px); font-size: .95rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 48px; }
@media (max-width: 960px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }
.site-footer .brand { display: flex; padding: 0; color: #fff; margin-bottom: 16px; }
.site-footer .brand img { background: #fff; border-radius: 50%; padding: 3px; }
.site-footer .brand-text span { color: #8d9a91; }
.site-footer h3 { color: #fff; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 16px; }
.site-footer ul { list-style: none; display: grid; gap: 4px; }
.site-footer a { color: #d5ddd7; text-decoration: none; display: inline-block; padding: 6px 0; }
.site-footer a:hover { color: var(--gold-500); }
.site-footer address { font-style: normal; line-height: 1.7; }
.social { display: flex; gap: 10px; margin-top: 18px; }
.social a { width: 44px; height: 44px; padding: 0; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.07); }
.social a:hover { background: rgba(255,255,255,.14); }
.social svg { width: 20px; height: 20px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); padding-block: 22px 96px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: .88rem; color: #8d9a91; }
.footer-bottom a { padding: 0; color: #b6c0b9; }
.footer-legal { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.footer-legal button {
  padding: 0; border: 0; background: none; cursor: pointer; color: #b6c0b9; font-size: inherit;
}
.footer-legal button:hover { color: var(--gold-500); }

/* ---------- Páginas legais ---------- */
.legal-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.legal-tabs a {
  padding: 9px 16px; border-radius: 999px; border: 1.5px solid var(--line);
  font-size: .9rem; font-weight: 700; color: var(--ink-2); text-decoration: none; transition: all .2s;
}
.legal-tabs a:hover { border-color: var(--green-500); color: var(--green-700); }
.legal-tabs a[aria-current="page"] { background: var(--green-500); border-color: var(--green-500); color: #fff; }
.link-btn {
  padding: 0; border: 0; background: none; cursor: pointer; font-weight: 700;
  color: var(--green-700); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px;
}
.link-btn:hover { color: var(--green-900); }
.table-wrap { overflow-x: auto; margin: 0 0 1em; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.cookie-table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 560px; }
.cookie-table th, .cookie-table td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.cookie-table th { background: var(--cream); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.cookie-table tr:last-child td { border-bottom: 0; }
.cookie-table td { color: var(--ink-2); }
.cookie-table code { font-size: .85rem; background: var(--green-50); color: var(--green-800); padding: 2px 6px; border-radius: 6px; }

/* ---------- Aviso de cookies ---------- */
.cookie-bar {
  position: fixed; left: 50%; bottom: 20px; z-index: 120;
  width: min(940px, calc(100% - 32px));
  display: flex; align-items: center; gap: 20px;
  padding: 18px 20px; border-radius: var(--radius);
  background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-lg);
  transform: translate(-50%, 0);
}
.cookie-bar[hidden] { display: none; }
.cookie-bar__text { display: flex; gap: 14px; align-items: flex-start; }
.cookie-bar__text p { margin: 0; font-size: .9rem; color: var(--ink-2); line-height: 1.55; }
.cookie-bar__text b { color: var(--ink); }
.cookie-bar__icon { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--gold-100); color: var(--gold-600); }
.cookie-bar__icon svg { width: 22px; height: 22px; }
.cookie-bar__actions { display: flex; gap: 10px; flex: none; }
.cookie-bar__actions .btn { min-height: 44px; padding: 10px 18px; font-size: .92rem; white-space: nowrap; }
@media (max-width: 760px) {
  .cookie-bar { flex-direction: column; align-items: stretch; bottom: 12px; padding: 16px; gap: 14px; }
  .cookie-bar__icon { display: none; }
  .cookie-bar__actions .btn { flex: 1; }
}
.has-cookie-bar .wa-float { visibility: hidden; }

/* ---------- Barra de progresso ---------- */
.scroll-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 110;
  background: linear-gradient(90deg, var(--green-500), var(--gold-500));
  transform: scaleX(0); transform-origin: 0 50%; pointer-events: none;
}

/* ---------- WhatsApp flutuante ---------- */
.wa-float {
  position: fixed; right: 20px; bottom: 20px; z-index: 90;
  width: 60px; height: 60px; border-radius: 50%; background: #25d366; color: #fff;
  display: grid; place-items: center; box-shadow: 0 10px 25px -6px rgba(37, 211, 102, .6);
  transition: transform .2s, opacity .3s;
}
.wa-float:hover { transform: scale(1.06); color: #fff; }
.wa-float svg { width: 32px; height: 32px; }

/* ---------- Utilitários ---------- */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mt-l { margin-top: 48px; }
.muted { color: var(--ink-3); }
.lead { font-size: 1.15rem; color: var(--ink-2); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ---------- Telas muito pequenas (≤ 360px) ---------- */
@media (max-width: 360px) {
  .header-inner { gap: 12px; }
  .brand img { width: 56px; height: 56px; }
  .brand-text strong { font-size: 1.1rem; }
  .brand-text span { font-size: .6rem; letter-spacing: .08em; }
  .stat { padding: 28px 10px; }
  .mock-art div { font-size: .68rem; padding: 8px; overflow-wrap: anywhere; }
  .form-card { padding: 20px; }
}


/* =========================================================
   Seção "ganha cor" (home): acompanha a rolagem
   - Sem JS ou com "reduzir movimento": mostra o estado final, estático.
   - Com JS (.is-live): a seção fica presa na tela; o JS informa
     --p (progresso 0→1) e --fill (cor 0→1) e liga .on nos cards e textos.
   ========================================================= */
.scrolly {
  --fill: 1;
  position: relative; color: #fff;
  background: color-mix(in srgb, var(--green-800) calc(var(--fill) * 100%), #0f1712);
}
.scrolly-sticky { position: relative; overflow: hidden; padding-block: clamp(56px, 8vw, 96px); }
.scrolly-copy { text-align: center; position: relative; z-index: 3; }
.scrolly .eyebrow { color: var(--gold-500); }
.scrolly-steps { display: grid; max-width: 860px; margin-inline: auto; }
.scrolly-step {
  grid-area: 1 / 1; margin: 0;
  font-size: clamp(1.6rem, 3.6vw, 2.6rem); font-weight: 800; line-height: 1.15; letter-spacing: -.02em;
}
.scrolly-step em { font-style: normal; color: var(--gold-500); }
.scrolly-step:not([data-final]) { display: none; }

.scrolly-stage { position: relative; height: 640px; margin-top: 24px; }

/* Figura */
.sc-figure {
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  height: 100%; aspect-ratio: 320 / 420; z-index: 1;
}
.fig { position: absolute; inset: 0; width: 100%; height: 100%; }
.fig--color {
  --fig-stroke: #1f3d10; --fig-sw: 2.4;
  --f-suit: #589c2b; --f-suit-dark: #29501a; --f-shirt: #fff; --f-tie: #e4c15d;
  --f-skin: #e8b48c; --f-hair: #3a2618; --f-headset: #16211a; --f-band: #16211a; --f-mic: #e4c15d; --f-badge: #fff;
}
.fig--line {
  --fig-stroke: rgba(255, 255, 255, .85); --fig-sw: 1.6;
  --f-suit: none; --f-suit-dark: none; --f-shirt: none; --f-tie: none;
  --f-skin: none; --f-hair: none; --f-headset: none; --f-band: rgba(255, 255, 255, .85); --f-mic: none; --f-badge: none;
}
.sc-glow {
  position: absolute; inset: 10% -20% -10%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(228, 193, 93, .35), transparent);
  opacity: var(--fill);
}
.sc-scan { display: none; }

/* Cards */
.sc-card {
  position: absolute; z-index: 2; width: 240px;
  background: #fff; color: var(--ink); border-radius: 16px; padding: 14px;
  box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .55);
}
.sc-card-head { display: flex; align-items: center; gap: 10px; font-size: .92rem; line-height: 1.2; }
.sc-ic { width: 34px; height: 34px; flex: none; border-radius: 10px; display: grid; place-items: center; background: var(--green-50); color: var(--green-600); }
.sc-ic--gold { background: var(--gold-100); color: var(--gold-600); }
.sc-ic svg { width: 18px; height: 18px; }
.sc-card-body { margin-top: 12px; font-size: .82rem; color: var(--ink-2); }
.sc-bubble { margin: 0 0 8px; padding: 9px 12px; border-radius: 12px 12px 12px 4px; background: var(--cream); border: 1px solid var(--line); line-height: 1.4; }
.sc-meta { display: flex; align-items: center; gap: 6px; color: var(--green-700); font-weight: 600; }
.sc-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green-500); display: inline-block; flex: none; }
.sc-dot--red { background: #e5484d; }
.sc-checks { list-style: none; display: grid; gap: 6px; margin-bottom: 10px; }
.sc-checks li { display: flex; align-items: center; gap: 8px; }
.sc-checks li::before { content: ""; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--line); flex: none; }
.sc-checks li.done::before { border-color: var(--green-500); background: var(--green-500) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 9px no-repeat; }
.sc-bar { display: block; height: 6px; border-radius: 6px; background: var(--green-50); overflow: hidden; }
.sc-bar span { display: block; height: 100%; width: 72%; border-radius: inherit; background: linear-gradient(90deg, var(--green-500), var(--gold-500)); }
.sc-arts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.sc-arts span { aspect-ratio: 4 / 5; border-radius: 8px; padding: 6px; display: flex; align-items: flex-end; font-size: .62rem; font-weight: 800; line-height: 1.1; color: #fff; }
.sc-arts span:nth-child(1) { background: linear-gradient(160deg, var(--green-500), var(--green-800)); }
.sc-arts span:nth-child(2) { background: linear-gradient(160deg, var(--gold-500), var(--gold-600)); color: var(--ink); }
.sc-arts span:nth-child(3) { background: linear-gradient(160deg, var(--ink-2), var(--ink)); }
.sc-live { display: flex; gap: 10px; align-items: center; }
.sc-live b { display: block; color: var(--ink); font-size: .85rem; line-height: 1.25; }
.sc-live small { display: flex; align-items: center; gap: 6px; }
.sc-when { flex: none; width: 46px; padding: 5px 0; border-radius: 10px; text-align: center; background: var(--green-500); color: #fff; line-height: 1.05; }
.sc-when b { color: #fff; font-size: .8rem; }
.sc-when small { display: block; font-size: .6rem; letter-spacing: .08em; }
.sc-logos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.sc-logos span { height: 40px; border: 1px solid var(--line); border-radius: 8px; display: grid; place-items: center; padding: 5px; }
.sc-logos img { max-height: 26px; width: auto; object-fit: contain; }

.sc-card--cta {
  width: 290px; padding: 20px;
  background: linear-gradient(160deg, #fff7dd, #fff 60%); border: 2px solid var(--gold-500);
  box-shadow: 0 30px 60px -18px rgba(0, 0, 0, .6), 0 0 0 6px rgba(228, 193, 93, .18);
}
.sc-cta-tag { display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-600); background: var(--gold-100); padding: 4px 10px; border-radius: 999px; }
.sc-cta-title { display: block; font-size: 1.35rem; line-height: 1.15; margin: 10px 0 6px; letter-spacing: -.02em; }
.sc-card--cta p { font-size: .88rem; color: var(--ink-2); margin: 0 0 14px; line-height: 1.45; }
.sc-card--cta .btn { white-space: nowrap; padding-inline: 16px; }

/* Posições (desktop) */
.sc-card--suporte     { left: 0;    top: 2%; }
.sc-card--seguradoras { left: 6%;   top: 40%; }
.sc-card--sinistros   { left: 1%;   bottom: 4%; }
.sc-card--marketing   { right: 4%;  top: 0; }
.sc-card--treino      { right: 0;   top: 34%; }
.sc-card--cta         { left: 50%;  bottom: 3%; margin-left: -145px; z-index: 3; }

.sc-hint, .sc-rail { display: none; }

@media (max-width: 1080px) {
  .sc-card { width: 210px; }
  .sc-card--cta { width: 260px; margin-left: -130px; }
}

/* Celular: cards compactos (só o título) em volta da figura */
@media (max-width: 760px) {
  .scrolly-stage { height: 560px; }
  .sc-figure { height: 74%; bottom: 14%; }
  .sc-card { width: 47%; padding: 10px; border-radius: 12px; }
  .sc-card-head { font-size: .78rem; gap: 8px; }
  .sc-ic { width: 28px; height: 28px; border-radius: 8px; }
  .sc-ic svg { width: 15px; height: 15px; }
  .sc-card-body { display: none; }
  .sc-card--suporte     { left: 0;  top: 0; }
  .sc-card--marketing   { right: 0; top: 7%; left: auto; }
  .sc-card--seguradoras { left: 0;  top: 24%; }
  .sc-card--treino      { right: 0; top: 33%; }
  .sc-card--sinistros   { left: 0;  top: 48%; bottom: auto; }
  .sc-card--cta { left: 0; right: 0; bottom: 0; width: auto; margin-left: 0; padding: 16px; }
  .sc-card--cta p { display: none; }
  .sc-cta-title { font-size: 1.15rem; margin: 6px 0 10px; }
}

/* ----- Modo animado (ligado pelo JS) ----- */
.scrolly.is-live { --fill: 0; --p: 0; height: 420vh; }
.scrolly.is-live .scrolly-sticky {
  position: sticky; top: var(--header-h);
  height: calc(100vh - var(--header-h)); height: calc(100svh - var(--header-h));
  padding-block: clamp(20px, 4vh, 48px) 0;
  display: flex; flex-direction: column;
}
.scrolly.is-live .scrolly-stage { flex: 1; height: auto; min-height: 0; margin-top: clamp(8px, 3vh, 32px); }
.scrolly.is-live .scrolly-step:not([data-final]) { display: block; }
.scrolly.is-live .scrolly-step {
  opacity: 0; transform: translate3d(0, 24px, 0); filter: blur(6px);
  transition: opacity .5s ease, transform .6s cubic-bezier(.16, 1, .3, 1), filter .5s ease;
}
.scrolly.is-live .scrolly-step.on { opacity: 1; transform: none; filter: none; }
.scrolly.is-live .scrolly-step.was { transform: translate3d(0, -24px, 0); }

/* A cor "sobe" pela figura, com uma linha dourada de varredura */
.scrolly.is-live .fig--color { clip-path: inset(calc((1 - var(--fill)) * 100%) 0 0 0); }
.scrolly.is-live .sc-scan {
  display: block; position: absolute; left: -8%; right: -8%; height: 3px; z-index: 2;
  top: calc((1 - var(--fill)) * 100%);
  background: linear-gradient(90deg, transparent, var(--gold-500), #fff, var(--gold-500), transparent);
  box-shadow: 0 0 18px 4px rgba(228, 193, 93, .6);
  opacity: calc(min(var(--fill), 1 - var(--fill)) * 8);
}

/* Cards entram vindos de fora, desfocados, com leve mola */
.scrolly.is-live .sc-card {
  opacity: 0; filter: blur(8px);
  transform: translate3d(var(--dx, 0), var(--dy, 40px), 0) scale(.86) rotate(var(--rot, 0deg));
  transition: opacity .5s ease, filter .5s ease, transform .8s cubic-bezier(.34, 1.4, .64, 1);
}
.scrolly.is-live .sc-card.on { opacity: 1; filter: none; transform: none; }
.scrolly.is-live .sc-card--suporte     { --dx: -60px; --dy: -20px; --rot: -6deg; }
.scrolly.is-live .sc-card--seguradoras { --dx: -80px; --dy: 0;     --rot: 4deg; }
.scrolly.is-live .sc-card--sinistros   { --dx: -60px; --dy: 40px;  --rot: 6deg; }
.scrolly.is-live .sc-card--marketing   { --dx: 60px;  --dy: -20px; --rot: 6deg; }
.scrolly.is-live .sc-card--treino      { --dx: 80px;  --dy: 0;     --rot: -4deg; }
.scrolly.is-live .sc-card--cta         { --dx: 0;     --dy: 80px;  --rot: 0deg; }
.scrolly.is-live .sc-card--cta.on { animation: sc-cta-glow 2.4s .8s ease-in-out infinite; }

/* A figura cresce um pouco ao ganhar cor */
.scrolly.is-live .sc-figure { transform: translateX(-50%) scale(calc(.94 + var(--fill) * .06)); transform-origin: 50% 100%; }

/* Dica "role" e trilho de progresso */
.scrolly.is-live .sc-hint {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 3;
  font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7);
  opacity: calc(1 - var(--p) * 12); pointer-events: none;
}
.sc-mouse { width: 22px; height: 34px; border: 2px solid currentColor; border-radius: 12px; position: relative; }
.sc-mouse::after { content: ""; position: absolute; left: 50%; top: 6px; width: 4px; height: 7px; margin-left: -2px; border-radius: 2px; background: currentColor; animation: sc-wheel 1.6s ease-in-out infinite; }
.scrolly.is-live .sc-rail {
  display: block; position: absolute; right: 20px; top: 50%; width: 3px; height: 120px; margin-top: -60px; z-index: 3;
  background: rgba(255, 255, 255, .15); border-radius: 3px; overflow: hidden;
}
.sc-rail span { display: block; width: 100%; height: 100%; background: var(--gold-500); transform-origin: top; transform: scaleY(var(--p)); }

@media (max-width: 1260px) { .scrolly.is-live .sc-rail { display: none; } }
@media (max-width: 760px) {
  .scrolly.is-live { height: 380vh; }
  .scrolly.is-live .sc-hint { display: none; }
}
@media (max-height: 640px) and (min-width: 761px) {
  .sc-card-body { display: none; }
  .sc-card--cta p { display: none; }
}

@keyframes sc-cta-glow {
  0%, 100% { box-shadow: 0 30px 60px -18px rgba(0, 0, 0, .6), 0 0 0 6px rgba(228, 193, 93, .18); }
  50%      { box-shadow: 0 30px 60px -18px rgba(0, 0, 0, .6), 0 0 0 14px rgba(228, 193, 93, .05); }
}
@keyframes sc-wheel { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(10px); } }

/* =========================================================
   Animações
   - Entrada do topo (hero): CSS puro, roda desde o primeiro quadro.
   - Ao rolar: o JS marca os blocos com [data-reveal] e adiciona
     .is-visible quando entram na tela. Sem JS, nada fica escondido.
   - Tudo desligado para quem ativa "reduzir movimento" no sistema.
   ========================================================= */
@media (prefers-reduced-motion: no-preference) {
  :root {
    --ease-out: cubic-bezier(.16, 1, .3, 1);
    --ease-spring: cubic-bezier(.34, 1.4, .64, 1);
  }

  /* ----- Troca de página suave (navegadores compatíveis) ----- */
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: fx-fade .25s ease reverse both; }
  ::view-transition-new(root) { animation: fx-fade .35s ease both; }

  /* ----- Ao rolar ----- */
  [data-reveal] { opacity: 0; transform: translate3d(0, 40px, 0); filter: blur(6px); }
  [data-reveal="left"]  { transform: translate3d(-48px, 0, 0); }
  [data-reveal="right"] { transform: translate3d(48px, 0, 0); }
  [data-reveal="zoom"]  { transform: scale(.92) translate3d(0, 24px, 0); }
  [data-reveal].is-visible {
    opacity: 1; transform: none; filter: none;
    transition: opacity .9s var(--ease-out), transform 1s var(--ease-out), filter .9s var(--ease-out);
    transition-delay: calc(var(--i, 0) * 80ms);
  }

  /* Títulos: palavras sobem uma a uma, como se saíssem de uma máscara */
  [data-split] .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
  [data-split] .w > span { display: inline-block; }
  [data-reveal] [data-split] .w > span { transform: translate3d(0, 105%, 0); }
  [data-reveal].is-visible [data-split] .w > span {
    transform: none;
    transition: transform .9s var(--ease-out);
    transition-delay: calc(120ms + var(--wi, 0) * 45ms);
  }
  [data-reveal]:has([data-split]) { filter: none; }

  /* ----- Hero da home ----- */
  .hero-grid > div:first-child > * { animation: fx-up 1s var(--ease-out) both; }
  .hero-grid > div:first-child > :nth-child(2) { animation-delay: .1s; }
  .hero-grid > div:first-child > :nth-child(3) { animation-delay: .22s; }
  .hero-grid > div:first-child > :nth-child(4) { animation-delay: .34s; }
  .hero-grid > div:first-child > :nth-child(5) { animation-delay: .46s; }

  /* Sublinhado dourado desenhado sob o destaque do título */
  .hero h1 .accent {
    background: linear-gradient(var(--gold-500), var(--gold-500)) 0 92% / 0 .14em no-repeat;
    animation: fx-underline 1s 1s var(--ease-out) forwards;
  }

  /* Manchas de cor que flutuam devagar no fundo */
  .hero::before, .hero::after {
    content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 0;
    filter: blur(60px); opacity: .55;
  }
  .hero::before { width: 380px; height: 380px; right: 8%; top: -120px; background: var(--gold-100); animation: fx-drift 18s ease-in-out infinite; }
  .hero::after { width: 320px; height: 320px; left: -80px; bottom: -140px; background: var(--green-100); animation: fx-drift 22s ease-in-out infinite reverse; }
  .hero > .container { position: relative; z-index: 1; }

  /* Cards do topo: entrada com mola + paralaxe com o mouse (--px/--py vêm do JS) */
  .hero-card { translate: calc(var(--px, 0) * var(--depth, 0px)) calc(var(--py, 0) * var(--depth, 0px)); transition: translate .6s var(--ease-out); }
  .hero-card--main { --depth: 10px; animation: fx-pop 1.1s .25s var(--ease-out) both; }
  .hero-card--float1 { --depth: -22px; animation: fx-pop .9s .6s var(--ease-spring) both, fx-float 6s 1.6s ease-in-out infinite; }
  .hero-card--float2 { --depth: -30px; animation: fx-pop .9s .8s var(--ease-spring) both, fx-float 7s 1.8s ease-in-out infinite reverse; }

  /* Chat: mensagens "estalam" na tela em sequência */
  .hc-bubble { animation: fx-bubble .55s var(--ease-spring) both; transform-origin: 0 100%; }
  .hc-bubble--out { transform-origin: 100% 100%; }
  .hc-bubble:nth-child(1) { animation-delay: .8s; }
  .hc-bubble:nth-child(2) { animation-delay: 1.7s; }
  .hc-bubble:nth-child(3) { animation-delay: 2.6s; }
  .hc-status { animation: fx-fade .6s 3s both; }
  .hc-status::before { animation: fx-pulse 2s 3.2s ease-out infinite; }

  /* ----- Topo das páginas internas ----- */
  .page-hero { position: relative; overflow: hidden; }
  .page-hero::after {
    content: ""; position: absolute; width: 420px; height: 420px; right: -120px; top: -160px; border-radius: 50%;
    background: radial-gradient(circle, rgba(228, 193, 93, .35), transparent 65%); pointer-events: none;
    animation: fx-drift 20s ease-in-out infinite;
  }
  .page-hero .container { position: relative; z-index: 1; }
  .page-hero .container > * { animation: fx-up .9s var(--ease-out) both; }
  .page-hero .container > :nth-child(2) { animation-delay: .08s; }
  .page-hero .container > :nth-child(3) { animation-delay: .16s; }
  .page-hero .container > :nth-child(4) { animation-delay: .24s; }

  /* ----- Microinterações ----- */
  /* Brilho que segue o mouse (--mx/--my vêm do JS) */
  .card, .cat-card, .step, .product, .contact-item, .logo-tile { position: relative; isolation: isolate; }
  .card::after, .cat-card::after, .step::after, .product::after, .contact-item::after, .logo-tile::after {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: -1;
    background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(88, 156, 43, .10), transparent 70%);
    opacity: 0; transition: opacity .3s;
  }
  .card:hover::after, .cat-card:hover::after, .step:hover::after, .product:hover::after, .contact-item:hover::after, .logo-tile:hover::after { opacity: 1; }
  .card, .cat-card { transition: box-shadow .35s, transform .45s var(--ease-spring), border-color .35s; }
  .card:hover, .cat-card:hover { transform: translateY(-6px); }
  .icon-badge { transition: transform .5s var(--ease-spring), background .3s, color .3s; }
  .card:hover .icon-badge, .cat-card:hover .icon-badge, .product-group-head:hover .icon-badge { transform: translateY(-2px) rotate(-8deg) scale(1.08); }
  .step::before { transition: transform .5s var(--ease-spring), color .3s; transform-origin: left bottom; }
  .step:hover::before { transform: scale(1.12); color: var(--green-500); }
  .product { transition: transform .35s var(--ease-out), box-shadow .35s, border-color .35s; }
  .product:hover { transform: translateX(4px); box-shadow: var(--shadow-sm); border-color: var(--green-100); }

  /* Botões: brilho que atravessa e seta que avança */
  .btn--primary, .btn--gold { position: relative; overflow: hidden; isolation: isolate; }
  .btn--primary::after, .btn--gold::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 45%; z-index: -1;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
    transform: skewX(-20deg); transition: left .7s var(--ease-out);
  }
  .btn--primary:hover::after, .btn--gold:hover::after { left: 120%; }
  .btn:hover { transform: translateY(-2px); }
  .btn:active { transform: translateY(0) scale(.98); }
  .btn svg { transition: transform .35s var(--ease-spring); }
  .btn:hover svg:has(path[d="M5 12h14"]) { transform: translateX(4px); }

  /* Linha do tempo desenhada ao rolar */
  .timeline.will-draw::before { transform: scaleY(0); transform-origin: top; transition: transform 1.6s var(--ease-out); }
  .timeline.is-drawn::before { transform: scaleY(1); }
  .timeline li::before { transition: transform .4s var(--ease-spring), background .3s; }
  .timeline li:hover::before { transform: scale(1.25); background: var(--gold-500); }

  /* Menu mobile: itens entram em cascata */
  @media (max-width: 1080px) {
    .nav-open .main-nav li, .nav-open .header-cta { animation: fx-up .5s var(--ease-out) both; }
    .nav-open .main-nav li:nth-child(2) { animation-delay: .04s; }
    .nav-open .main-nav li:nth-child(3) { animation-delay: .08s; }
    .nav-open .main-nav li:nth-child(4) { animation-delay: .12s; }
    .nav-open .main-nav li:nth-child(5) { animation-delay: .16s; }
    .nav-open .header-cta { animation-delay: .22s; }
  }

  /* Perguntas frequentes: abre e fecha deslizando (navegadores compatíveis) */
  .faq { interpolate-size: allow-keywords; }
  .faq details::details-content { height: 0; overflow: clip; transition: height .4s var(--ease-out), content-visibility .4s allow-discrete; }
  .faq details[open]::details-content { height: auto; }
  .faq summary::after { transition: transform .35s var(--ease-spring); }

  /* Aviso de cookies sobe de baixo */
  .cookie-bar { opacity: 0; transform: translate(-50%, 24px); transition: opacity .4s var(--ease-out), transform .5s var(--ease-out); }
  .cookie-bar.is-open { opacity: 1; transform: translate(-50%, 0); }

  /* ----- Detalhes ----- */
  .wa-float { animation: fx-pop .6s 1.2s var(--ease-spring) both; }
  .wa-float::before {
    content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
    animation: fx-ring 3.5s 3s ease-out infinite;
  }
  .eyebrow::before { transform-origin: left; }
  .is-visible .eyebrow::before, .is-visible.eyebrow::before { animation: fx-line .8s .2s var(--ease-out) both; }
  .stat strong { transition: transform .4s var(--ease-spring); }
  .stat:hover strong { transform: scale(1.08); }
}

@keyframes fx-up     { from { opacity: 0; transform: translate3d(0, 28px, 0); } to { opacity: 1; transform: none; } }
@keyframes fx-fade   { from { opacity: 0; } to { opacity: 1; } }
@keyframes fx-pop    { from { opacity: 0; transform: scale(.9) translate3d(0, 20px, 0); } to { opacity: 1; transform: none; } }
@keyframes fx-bubble { from { opacity: 0; transform: scale(.6) translate3d(0, 10px, 0); } to { opacity: 1; transform: none; } }
@keyframes fx-float  { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -10px, 0); } }
@keyframes fx-drift  { 0%, 100% { transform: translate3d(0, 0, 0) scale(1); } 50% { transform: translate3d(-40px, 30px, 0) scale(1.1); } }
@keyframes fx-pulse  { 0% { box-shadow: 0 0 0 0 rgba(88, 156, 43, .55); } 100% { box-shadow: 0 0 0 10px rgba(88, 156, 43, 0); } }
@keyframes fx-ring   { 0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); } 40%, 100% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } }
@keyframes fx-line   { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes fx-underline { to { background-size: 100% .14em; } }

.footer-credit { flex-basis: 100%; margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 18px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.06); }
.footer-credit a { color: var(--gold-500); text-decoration: underline; text-underline-offset: 3px; }


/* =========================================================
   Hero — painel com chat e diferenciais em órbita
   ========================================================= */
.hero-grid:has(.hv) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr); }

.hv { position: relative; container-type: inline-size; aspect-ratio: 1 / 1.06; margin-block: 24px; isolation: isolate; }

.hv-panel {
  position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: 32px;
  background:
    radial-gradient(70% 55% at 50% 42%, rgba(88, 156, 43, .22), transparent 70%),
    radial-gradient(60% 40% at 85% 0%, rgba(228, 193, 93, .16), transparent 70%),
    linear-gradient(160deg, #21401a 0%, #142b0c 55%, #0d1f07 100%);
  box-shadow:
    0 50px 90px -40px rgba(13, 31, 7, .65),
    0 18px 36px -20px rgba(13, 31, 7, .45),
    inset 0 1px 0 rgba(255, 255, 255, .08),
    inset 0 0 0 1px rgba(228, 193, 93, .16);
}
/* Grão sutil: tira o aspecto "digital" chapado do gradiente */
.hv-panel::after {
  content: ""; position: absolute; inset: 0; opacity: .5; mix-blend-mode: overlay; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hv-rings { position: absolute; left: 50%; top: 50%; width: 118%; max-width: none; translate: -50% -50%; stroke: rgba(228, 193, 93, .2); stroke-width: 1; }
.hv-rings circle:nth-child(2) { stroke: rgba(228, 193, 93, .34); }
/* "Satélites": pontos dourados que percorrem os anéis (raios = anéis do SVG) */
.hv-sat { position: absolute; left: 50%; top: 50%; width: 0; height: 0; }
.hv-sat i { position: absolute; width: 7px; height: 7px; margin: -3.5px; border-radius: 50%; background: var(--gold-500); box-shadow: 0 0 0 4px rgba(228, 193, 93, .15), 0 0 18px rgba(228, 193, 93, .8); }
.hv-sat--a i { transform: translateX(44.25cqw); }
.hv-sat--b i { transform: translateX(-57cqw); width: 5px; height: 5px; margin: -2.5px; }

/* Cartão central: acompanhamento da cotação */
.hv-main {
  position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: 1;
  width: min(310px, 55%); border-radius: 20px; overflow: hidden; background: #fffdf8;
  box-shadow: 0 40px 70px -30px rgba(0, 0, 0, .7), 0 0 0 1px rgba(228, 193, 93, .35);
}
.hv-head { position: relative; padding: 16px 18px 14px; border-bottom: 1px solid #eee7d6; }
.hv-kicker { display: block; padding-right: 110px; font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-600); }
.hv-head strong { display: block; margin-top: 3px; font-size: 1rem; letter-spacing: -.01em; color: var(--ink); }
.hv-head strong span { font-weight: 500; color: var(--ink-3); }
.hv-pill {
  position: absolute; right: 14px; top: 14px; padding: 3px 9px; border-radius: 999px;
  font-size: .64rem; font-weight: 700; letter-spacing: .02em; color: var(--green-700); background: var(--green-50); border: 1px solid var(--green-100);
  transition: color .3s, background .3s, border-color .3s;
}
.hv-pill.is-wait { color: #8a6a1c; background: var(--gold-100); border-color: rgba(184, 145, 42, .25); }

.hv-steps { list-style: none; margin: 0; padding: 14px 18px 4px; }
.hv-step { position: relative; display: grid; grid-template-columns: 18px 1fr auto; gap: 12px; padding-bottom: 11px; }
.hv-step:not(:last-child)::before { content: ""; position: absolute; left: 8.5px; top: 20px; bottom: 2px; width: 1px; background: #e6dfcd; }
.hv-step:not(:last-child)::after { content: ""; position: absolute; left: 8.5px; top: 20px; width: 1px; height: 0; background: var(--gold-500); transition: height .6s ease; }
.hv-step.is-done:not(:last-child)::after { height: calc(100% - 22px); }
.hv-dot { position: relative; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; border: 1.5px solid #d8d0bb; background: #fffdf8; transition: background .3s, border-color .3s; }
.hv-step.is-active .hv-dot { border-color: var(--gold-500); box-shadow: 0 0 0 4px rgba(228, 193, 93, .18); }
.hv-step.is-done .hv-dot { border-color: var(--green-600); background: var(--green-600) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 11px no-repeat; }
.hv-txt { min-width: 0; line-height: 1.3; }
.hv-txt b { display: block; font-size: .8rem; font-weight: 700; color: var(--ink); transition: color .3s; }
.hv-txt small { display: block; margin-top: 2px; font-size: .7rem; color: var(--ink-3); }
.hv-step:not(.is-done):not(.is-active) .hv-txt b { color: #a9a493; }
.hv-step:not(.is-done):not(.is-active) .hv-txt small { opacity: .55; }
.hv-step time { font-size: .66rem; font-variant-numeric: tabular-nums; color: #9a9483; padding-top: 2px; transition: opacity .3s; }
.hv-step:not(.is-done) time { opacity: 0; }
.hv-bar { position: relative; height: 4px; margin-top: 8px !important; border-radius: 4px; background: #eee7d6; overflow: hidden; }
.hv-bar i { position: absolute; inset: 0 auto 0 0; width: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold-500), var(--gold-600)); }
.hv-step.is-active .hv-bar i { animation: hv-fill 2.2s cubic-bezier(.4, 0, .2, 1) both; }
.hv-step:not(.is-done):not(.is-active) .hv-bar i { width: 0; }

.hv-foot { display: flex; align-items: center; gap: 10px; padding: 10px 18px; border-top: 1px solid #eee7d6; background: #f8f4ea; }
.hv-avatar { width: 34px; height: 34px; flex: none; border-radius: 50%; padding: 2px; background: linear-gradient(140deg, #f0d88c, #b8912a); }
.hv-avatar img { width: 100%; height: 100%; border-radius: 50%; background: #fff; object-fit: contain; }
.hv-who { flex: 1; min-width: 0; line-height: 1.2; }
.hv-who strong { display: block; font-size: .78rem; color: var(--ink); white-space: nowrap; }
.hv-who small { font-size: .66rem; color: var(--ink-3); white-space: nowrap; }
.hv-human { display: inline-flex; align-items: center; gap: 6px; max-width: 100px; font-size: .62rem; font-weight: 600; line-height: 1.25; color: var(--green-700); }
.hv-human::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--green-500); box-shadow: 0 0 0 3px var(--green-100); }
@keyframes hv-fill { from { width: 0; } to { width: 100%; } }

/* Cartões de diferenciais */
.hv-cards { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.hv-c { position: absolute; left: var(--x); top: var(--y); width: max-content; transform: translate(-50%, -50%); will-change: transform, opacity; }
.hv-c .in {
  display: flex; align-items: center; gap: 11px; pointer-events: auto;
  padding: 11px 15px 11px 11px; border-radius: 16px; max-width: 230px; line-height: 1.25;
  color: var(--ink);
  background: linear-gradient(160deg, #fffdf8, #f6f0e2);
  border: 1px solid rgba(184, 145, 42, .28);
  box-shadow: 0 22px 44px -18px rgba(0, 0, 0, .65), inset 0 1px 0 #fff;
}
.hv-c b { display: block; font-size: .8rem; font-weight: 600; letter-spacing: .005em; }
.hv-c small { display: block; margin-top: 2px; font-size: .7rem; color: var(--ink-3); }
.hv-ic { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: var(--gold-600); border: 1px solid rgba(184, 145, 42, .4); background: rgba(228, 193, 93, .12); }
.hv-ic svg { width: 17px; height: 17px; }
.hv-c--stat .in { flex-direction: column; align-items: flex-start; gap: 4px; padding: 13px 16px 12px; }
.hv-c .hv-num {
  font-size: 1.9rem; font-weight: 800; line-height: 1; letter-spacing: -.03em;
  background: linear-gradient(180deg, #c9a043, #8a6a1c); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hv-num sup { font-size: .55em; vertical-align: top; position: relative; top: .1em; }
.hv-c--stat small { margin: 0; line-height: 1.3; }
.hv-c--side .in { max-width: 124px; gap: 8px; padding: 9px 11px 9px 9px; }
.hv-c--side .hv-ic { width: 28px; height: 28px; }
.hv-c--side .hv-ic svg { width: 15px; height: 15px; }
.hv-c--side b { font-size: .74rem; }
.hv-c--side small { display: none; }

@keyframes hv-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }
@keyframes hv-spin { to { rotate: 360deg; } }
@keyframes hv-marquee { to { transform: translateX(-50%); } }

@media (prefers-reduced-motion: no-preference) {
  .hv-c .in { animation: hv-bob var(--d, 6.5s) ease-in-out infinite; }
  .hv-c:nth-child(even) .in { animation-direction: reverse; animation-delay: -2.5s; }
  .hv-rings circle:nth-child(2) { transform-origin: 300px 300px; animation: hv-spin 90s linear infinite; }
  .hv-sat { animation: hv-spin 26s linear infinite; }
  .hv-sat--b { animation-duration: 40s; animation-direction: reverse; }
}

@media (max-width: 1120px) {
  .hero-grid:has(.hv) { grid-template-columns: minmax(0, 1fr); }
  .hv { width: 100%; max-width: 560px; margin-inline: auto; }
}

/* Celular: chat no centro e diferenciais passando em faixa contínua */
@media (max-width: 600px) {
  .hv { aspect-ratio: auto; padding: 28px 0 22px; overflow: hidden; border-radius: 28px; }
  .hv-panel { border-radius: 28px; }
  .hv-main { position: relative; left: auto; top: auto; translate: none; width: auto; margin: 0 16px; }
  .hv-cards { position: static; display: flex; width: max-content; margin-top: 20px; pointer-events: auto; }
  .hv-c { margin-right: 10px; }
  .hv-c { position: static; transform: none !important; opacity: 1 !important; }
  .hv-c .in { animation: none !important; height: 100%; }
  .hv-rings { width: 170%; top: 42%; }
  .hv-sat { display: none; }
}
@media (max-width: 600px) and (prefers-reduced-motion: no-preference) {
  .hv-cards.is-loop { animation: hv-marquee 40s linear infinite; }
}
@media (max-width: 600px) and (prefers-reduced-motion: reduce) {
  .hv-cards { width: auto; overflow-x: auto; padding-right: 16px; }
}
@media (min-width: 601px) {
  .hv-clone { display: none; }
}
/* Painel estreito: cartões mais compactos para não cobrir o chat */
@container (max-width: 520px) {
  .hv-main { width: 60%; }
  .hv-c .in, .hv-c--side .in { gap: 8px; padding: 8px 11px 8px 8px; border-radius: 13px; max-width: 150px; }
  .hv-c b { font-size: .72rem; }
  .hv-c small { display: none; }
  .hv-c--stat small { display: block; font-size: .62rem; }
  .hv-ic { width: 26px; height: 26px; }
  .hv-ic svg { width: 14px; height: 14px; }
  .hv-c .hv-num { font-size: 1.4rem; }
}
@media (min-width: 601px) and (prefers-reduced-motion: no-preference) {
  .js .hv-c { opacity: 0; }
}

/* ---------- Selo "Associada Aconseg-SP" ---------- */
.hero-proof { flex-wrap: wrap; row-gap: 12px; }
.hero-proof-sep { width: 1px; height: 34px; background: var(--line); }
.assoc-badge {
  display: inline-flex; align-items: center; gap: 10px; text-decoration: none;
  padding: 7px 14px 7px 8px; border-radius: 999px; font-size: .85rem; line-height: 1.2;
  color: var(--ink-2); background: #fff; border: 1px solid rgba(184, 145, 42, .35);
  box-shadow: 0 6px 16px -10px rgba(22, 33, 26, .25);
  transition: border-color .2s, box-shadow .2s;
}
.assoc-badge svg { width: 28px; height: 28px; padding: 5px; flex: none; border-radius: 50%; color: var(--gold-600); background: var(--gold-100); }
.assoc-badge b { color: var(--ink); font-weight: 700; }
.assoc-badge:hover { color: var(--ink-2); border-color: var(--gold-600); box-shadow: 0 10px 22px -12px rgba(22, 33, 26, .35); }
.site-footer .assoc-badge--dark { display: inline-flex; white-space: nowrap; padding: 6px 14px 6px 7px; color: #b6c0b9; }
.site-footer .assoc-badge--dark:hover { color: #b6c0b9; }
.site-footer .assoc-badge--dark svg { width: 26px; height: 26px; }
.assoc-badge--dark { margin-top: 4px; margin-bottom: 18px; color: #b6c0b9; background: rgba(255, 255, 255, .04); border-color: rgba(228, 193, 93, .3); box-shadow: none; }
.assoc-badge--dark svg { color: var(--gold-500); background: rgba(228, 193, 93, .12); }
.assoc-badge--dark b { color: #fff; }
.assoc-badge--dark:hover { color: #b6c0b9; border-color: var(--gold-500); box-shadow: none; }
@media (max-width: 480px) { .hero-proof-sep { display: none; } }
@media (max-width: 600px) { .hv .hv-main { width: auto; } }

/* =========================================================
   Movimento contínuo no site + fotos da equipe com moldura
   ========================================================= */

/* Fotos da equipe: moldura dourada + logo Fonseg no canto */
.team-photo:has(img) {
  position: relative; overflow: visible; padding: 5px; border-radius: 22px;
  background: linear-gradient(135deg, #f3dc8e 0%, #b8912a 30%, #f6e7b0 50%, #a8821f 72%, #e9cf7c 100%) 0 0 / 220% 220%;
  box-shadow: 0 24px 44px -24px rgba(22, 33, 26, .45), 0 2px 6px rgba(22, 33, 26, .08);
}
.team-photo:has(img) img { border-radius: 17px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .5); }
.team-photo:has(img)::before {
  content: ""; position: absolute; inset: 5px; border-radius: 17px; pointer-events: none;
  background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .28) 50%, transparent 65%) -150% 0 / 250% 100% no-repeat;
}
.team-photo:has(img)::after {
  content: ""; position: absolute; right: -8px; bottom: -8px; width: 54px; height: 54px; border-radius: 50%;
  background: #fff url("../img/logo.png") center / 82% no-repeat;
  border: 2px solid #d9b85a; box-shadow: 0 10px 22px -8px rgba(22, 33, 26, .45);
}
.team-card .team-photo { margin-bottom: 22px; }

@media (prefers-reduced-motion: no-preference) {
  /* Fotos flutuando, moldura com reflexo e brilho atravessando a foto */
  .team-photo:has(img) { animation: fx-photo 7s ease-in-out infinite, fx-gold 9s ease-in-out infinite; }
  .team-card:nth-child(2) .team-photo { animation-delay: -1.8s, -2s; }
  .team-card:nth-child(3) .team-photo { animation-delay: -3.6s, -4s; }
  .team-card:nth-child(4) .team-photo { animation-delay: -5.4s, -6s; }
  .team-photo:has(img)::before { animation: fx-sheen 7s ease-in-out infinite; }
  .team-card:nth-child(2) .team-photo::before { animation-delay: 1.75s; }
  .team-card:nth-child(3) .team-photo::before { animation-delay: 3.5s; }
  .team-card:nth-child(4) .team-photo::before { animation-delay: 5.25s; }
  .team-photo:has(img)::after { animation: fx-seal 7s ease-in-out infinite; }

  /* Ícones dos cards flutuando devagar, cada um no seu tempo */
  .card .icon-badge, .cat-card .icon-badge, .contact-item .icon-badge { animation: fx-bob 5.5s ease-in-out infinite; }
  .grid > :nth-child(2) .icon-badge { animation-delay: -1.4s; }
  .grid > :nth-child(3) .icon-badge { animation-delay: -2.8s; }
  .grid > :nth-child(4) .icon-badge { animation-delay: -4.2s; }

  /* Logos das seguradoras respirando */
  .logo-tile img { animation: fx-bob 6s ease-in-out infinite; }
  .logo-strip > :nth-child(2) img { animation-delay: -2s; }
  .logo-strip > :nth-child(3) img { animation-delay: -4s; }

  /* "Como funciona": os números acendem em sequência, como um processo andando */
  .steps .step::before { animation: fx-step 4.5s ease-in-out infinite; }
  .steps .step:nth-child(2)::before { animation-delay: 1.5s; }
  .steps .step:nth-child(3)::before { animation-delay: 3s; }

  /* Faixa de números: luz dourada atravessando */
  .stats { position: relative; overflow: hidden; }
  .stats::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(100deg, transparent 30%, rgba(228, 193, 93, .14) 50%, transparent 70%) -100% 0 / 60% 100% no-repeat;
    animation: fx-sweep 9s ease-in-out infinite;
  }
  .stats .container { position: relative; }

  /* Faixa de chamada: brilho dourado que passeia */
  .cta-band::before {
    content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%; left: -120px; bottom: -260px; pointer-events: none;
    background: radial-gradient(circle, rgba(228, 193, 93, .28), transparent 65%);
    animation: fx-drift 14s ease-in-out infinite;
  }
  .cta-band > * { position: relative; }

  /* Cards inclinam em 3D acompanhando o mouse (--rx/--ry vêm do JS) */
  .card:not([data-reveal]), .cat-card:not([data-reveal]), .step:not([data-reveal]), .logo-tile:not([data-reveal]), .t-card:not([data-reveal]) {
    transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--lift, 0px));
    transition: transform .6s var(--ease-out), box-shadow .35s, border-color .35s;
  }
  .card:not([data-reveal]):hover, .cat-card:not([data-reveal]):hover { --lift: -6px; transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-6px); transition-duration: .2s, .35s, .35s; }
  .logo-tile:not([data-reveal]):hover { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(-4px); transition-duration: .2s, .35s, .35s; }
  .step:not([data-reveal]):hover, .t-card:not([data-reveal]):hover { transition-duration: .2s, .35s, .35s; }
  .team-photo:has(img) { transform: perspective(800px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .6s var(--ease-out); }
}

@keyframes fx-bob   { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@keyframes fx-photo { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@keyframes fx-gold  { 0%, 100% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } }
@keyframes fx-sheen { 0%, 55% { background-position: -150% 0; } 85%, 100% { background-position: 250% 0; } }
@keyframes fx-seal  { 0%, 100% { rotate: 0deg; } 50% { rotate: -8deg; } }
@keyframes fx-step  { 0%, 100% { color: var(--gold-500); text-shadow: none; } 15% { color: var(--green-500); text-shadow: 0 6px 18px rgba(88, 156, 43, .35); } 33% { color: var(--gold-500); text-shadow: none; } }
@keyframes fx-sweep { 0%, 20% { background-position: -100% 0; } 70%, 100% { background-position: 250% 0; } }

/* ---------- Seguradoras: logos sempre coloridos + luz contornando o card ---------- */
@property --ring { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.logo-tile img { filter: none; opacity: 1; }
.logo-tile { position: relative; isolation: isolate; box-shadow: 0 14px 30px -22px rgba(22, 33, 26, .35); }
.logo-tile::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1.5px; pointer-events: none; z-index: 1;
  background: conic-gradient(from var(--ring), transparent 0deg 250deg, rgba(228, 193, 93, .9) 300deg, var(--green-500) 335deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
@media (prefers-reduced-motion: no-preference) {
  .logo-tile::before { animation: fx-ring-spin 6s linear infinite; }
  .logo-strip > :nth-child(2)::before { animation-delay: -2s; }
  .logo-strip > :nth-child(3)::before { animation-delay: -4s; }
  .logo-tile img { animation: fx-logo 6s ease-in-out infinite; }
  .logo-strip > :nth-child(2) img { animation-delay: -2s; }
  .logo-strip > :nth-child(3) img { animation-delay: -4s; }
}
@keyframes fx-ring-spin { to { --ring: 360deg; } }
@keyframes fx-logo { 0%, 100% { translate: 0 0; scale: 1; } 50% { translate: 0 -6px; scale: 1.04; } }
