/* ============================================================
   Contas Prontas — sistema visual
   Preto + dourado champagne (escuro) · Branco + dourado profundo (claro)
   ============================================================ */

:root {
  --bg: #ffffff;
  --surface: #ffffff;
  --surface-2: #f7f6f3;
  --surface-3: #eeece6;
  --border: #e6e3dc;
  --border-strong: #d2cdc2;
  --text: #16140f;
  --text-2: #3b3830;
  --muted: #69655c;
  --gold: #8a681c;
  --gold-hi: #9f7a26;
  --gold-ink: #ffffff;
  --gold-soft: rgba(138, 104, 28, .09);
  --gold-line: rgba(138, 104, 28, .35);
  --success: #23794c;
  --success-soft: rgba(35, 121, 76, .1);
  --warning: #93620b;
  --warning-soft: rgba(147, 98, 11, .1);
  --danger: #b42318;
  --danger-soft: rgba(180, 35, 24, .08);
  --shadow-sm: 0 1px 2px rgba(22, 20, 15, .05);
  --shadow: 0 1px 2px rgba(22, 20, 15, .04), 0 8px 24px -12px rgba(22, 20, 15, .14);
  --shadow-lg: 0 24px 48px -24px rgba(22, 20, 15, .28);
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 16px;
  --header-h: 64px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --t-fast: 150ms;
  --t: 200ms;
  --t-slow: 250ms;
  --font: "Geist", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}

:root[data-theme="dark"] {
  --bg: #0c0c0d;
  --surface: #141416;
  --surface-2: #1a1a1d;
  --surface-3: #232327;
  --border: #29292e;
  --border-strong: #3a3a41;
  --text: #f3f1ec;
  --text-2: #cdc9c0;
  --muted: #95918a;
  --gold: #d6b46e;
  --gold-hi: #e7cc92;
  --gold-ink: #17120a;
  --gold-soft: rgba(214, 180, 110, .1);
  --gold-line: rgba(214, 180, 110, .38);
  --success: #6cc596;
  --success-soft: rgba(108, 197, 150, .12);
  --warning: #e3b05a;
  --warning-soft: rgba(227, 176, 90, .12);
  --danger: #f08b80;
  --danger-soft: rgba(240, 139, 128, .12);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
  --shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 28px -16px rgba(0, 0, 0, .7);
  --shadow-lg: 0 28px 56px -28px rgba(0, 0, 0, .85);
  color-scheme: dark;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.55;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { margin: 0; line-height: 1.2; letter-spacing: -0.015em; font-weight: 650; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
.num, .price, .kpi-value { font-variant-numeric: tabular-nums; }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 6px; }
::selection { background: var(--gold-soft); color: var(--text); }

.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: 12px; top: -48px; z-index: 100; padding: 10px 14px; background: var(--gold); color: var(--gold-ink); border-radius: var(--radius-sm); font-weight: 600; transition: top var(--t) var(--ease); }
.skip-link:focus { top: 12px; }

.container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .container { padding: 0 24px; } }

.muted { color: var(--muted); }
.text-2 { color: var(--text-2); }
.gold { color: var(--gold); }
.stack > * + * { margin-top: var(--stack, 12px); }
.hrow { display: flex; align-items: center; gap: 12px; }
.hide-mobile { display: none !important; }
@media (min-width: 900px) { .hide-mobile { display: initial !important; } .hide-desktop { display: none !important; } }

/* Ícones de plataforma (cores reconhecíveis) */
.pf-icon { display: inline-flex; align-items: center; justify-content: center; width: 1.15em; height: 1.15em; flex: none; line-height: 1; }
.pf-kwai { font-weight: 800; font-size: .95em; font-style: italic; color: #ff7a00; }
.pf-instagram i { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pf-tiktok i { color: #111; text-shadow: -1.2px -1px 0 #25f4ee, 1.2px 1px 0 #fe2c55; }
[data-theme="dark"] .pf-tiktok i { color: #fff; }
.pf-youtube i { color: #ff0000; }
.pf-facebook i { color: #1877f2; }
.pf-threads i, .pf-x i { color: var(--text); }

/* Marca: o "P" acompanha o dourado do tema e o foguete acompanha a cor do texto */
.brand-mark { position: relative; display: block; width: 34px; height: 34px; flex: none; }
.brand-mark span { position: absolute; inset: 0; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }
.bm-shape { background: var(--gold); -webkit-mask-image: url(/assets/img/marca-foguete.png); mask-image: url(/assets/img/marca-foguete.png); }
.bm-rocket { background: var(--text); -webkit-mask-image: url(/assets/img/marca-foguete-detalhe.png); mask-image: url(/assets/img/marca-foguete-detalhe.png); transition: transform var(--t-slow) var(--ease); }
.brand:hover .bm-rocket { transform: translate(1.5px, -1.5px); }
.btn-whats i { color: #25d366; font-size: 1.1em; }
.btn-whats:hover { border-color: #25d366; color: var(--text); }

/* ---------- Botões ---------- */
.btn {
  --btn-h: 40px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: var(--btn-h); padding: 0 16px;
  border-radius: 10px; border: 1px solid transparent;
  font-weight: 600; font-size: 14px; letter-spacing: -.005em; white-space: nowrap;
  cursor: pointer; user-select: none;
  transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.btn:active { transform: scale(.97); }
.btn[disabled], .btn.is-busy { opacity: .6; pointer-events: none; }
.btn-sm { --btn-h: 34px; padding: 0 12px; font-size: 13px; border-radius: 9px; }
.btn-lg { --btn-h: 48px; padding: 0 22px; font-size: 15px; border-radius: 12px; }
.btn-block { width: 100%; }
.btn-gold { background: var(--gold); color: var(--gold-ink); }
.btn-gold:hover { background: var(--gold-hi); }
.btn-outline { background: transparent; border-color: var(--border-strong); color: var(--text); }
.btn-outline:hover { border-color: var(--gold); color: var(--gold); }
.btn-ghost { background: transparent; color: var(--text-2); }
.btn-ghost:hover { background: var(--surface-2); color: var(--text); }
.btn-soft { background: var(--gold-soft); color: var(--gold); border-color: transparent; }
.btn-soft:hover { border-color: var(--gold-line); }
.btn-danger { background: transparent; border-color: var(--border-strong); color: var(--danger); }
.btn-danger:hover { background: var(--danger-soft); border-color: var(--danger); }
.btn-icon { width: var(--btn-h); padding: 0; }
.btn .fa-solid, .btn .fas, .btn .fab, .btn .far { font-size: .95em; }

/* ---------- Cabeçalho ---------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  transition: box-shadow var(--t) var(--ease), background-color var(--t) var(--ease);
}
.site-header.is-scrolled { box-shadow: var(--shadow-sm); }
.header-row { display: flex; align-items: center; gap: 12px; height: var(--header-h); }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: none; }
.brand-mark { width: 32px; height: 32px; flex: none; }
.brand-name { font-weight: 700; font-size: 16px; letter-spacing: -.02em; line-height: 1; }
.brand-name span { color: var(--gold); }
@media (max-width: 420px) { .brand-name { display: none; } }

.search { position: relative; flex: 1; max-width: 560px; margin: 0 auto; }
.search input {
  width: 100%; height: 42px; padding: 0 44px 0 40px;
  border-radius: 12px; border: 1px solid var(--border);
  background: var(--surface-2); color: var(--text);
  transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.search input::placeholder { color: var(--muted); }
.search input:focus { outline: none; border-color: var(--gold); background: var(--surface); box-shadow: 0 0 0 3px var(--gold-soft); }
.search .search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 14px; pointer-events: none; }
.search kbd { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font: 600 11px/1 var(--font); color: var(--muted); border: 1px solid var(--border); border-radius: 6px; padding: 4px 6px; background: var(--surface); }
@media (max-width: 899px) { .search kbd { display: none; } .search input { padding-right: 14px; } }

.header-actions { display: flex; align-items: center; gap: 4px; flex: none; }
.header-actions .btn-ghost { color: var(--text-2); }
.badge-dot { position: absolute; top: 4px; right: 4px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 99px; background: var(--gold); color: var(--gold-ink); font-size: 10px; font-weight: 700; display: grid; place-items: center; }
.has-badge { position: relative; }

/* Busca no celular: segunda linha do cabeçalho */
.search-mobile { padding: 0 0 12px; }
@media (min-width: 900px) { .search-mobile { display: none; } }
@media (max-width: 899px) { .header-row .search { display: none; } }

/* Menu da conta */
.menu { position: relative; }
.menu-panel {
  position: absolute; right: 0; top: calc(100% + 8px); min-width: 220px; z-index: 50;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-lg);
  padding: 6px; opacity: 0; transform: translateY(-4px) scale(.98); transform-origin: top right;
  visibility: hidden; transition: opacity var(--t) var(--ease), transform var(--t) var(--ease), visibility 0s linear var(--t);
}
.menu.is-open .menu-panel { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
.menu-panel a, .menu-panel button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 8px; font-size: 14px; color: var(--text-2); background: none; border: 0; cursor: pointer; text-align: left; }
.menu-panel a:hover, .menu-panel button:hover { background: var(--surface-2); color: var(--text); }
.menu-panel .menu-head { padding: 8px 10px 10px; border-bottom: 1px solid var(--border); margin-bottom: 6px; }
.menu-panel .menu-head strong { display: block; font-size: 14px; }
.menu-panel .menu-head span { font-size: 12px; color: var(--muted); }
.menu-panel i { width: 16px; text-align: center; color: var(--muted); }

/* ---------- Navegação por plataforma ---------- */
.platform-nav { border-bottom: 1px solid var(--border); background: var(--bg); }
.platform-nav ul { display: flex; gap: 4px; list-style: none; overflow-x: auto; scrollbar-width: none; padding: 8px 0; }
.platform-nav ul::-webkit-scrollbar { display: none; }
.platform-nav a {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px;
  border-radius: 10px; font-size: 14px; font-weight: 500; color: var(--text-2); white-space: nowrap;
  border: 1px solid transparent;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.platform-nav a:hover { background: var(--surface-2); color: var(--text); }
.platform-nav a[aria-current="page"] { background: var(--surface-2); color: var(--text); border-color: var(--border-strong); }
.platform-nav .count { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- Apresentação (hero curto) ---------- */
.intro { padding: 40px 0 32px; border-bottom: 1px solid var(--border); }
.intro-grid { display: grid; gap: 28px; align-items: start; }
@media (min-width: 960px) { .intro-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); gap: 48px; padding: 8px 0; } }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gold); }
.eyebrow::before { content: ""; width: 18px; height: 1px; background: currentColor; }
.intro h1 { margin-top: 14px; font-size: clamp(28px, 4.2vw, 44px); line-height: 1.08; letter-spacing: -.03em; font-weight: 700; max-width: 18ch; }
.intro h1 em { font-style: normal; color: var(--gold); }
.intro .lead { margin-top: 16px; font-size: 16px; color: var(--text-2); max-width: 56ch; }
.intro .lead strong { color: var(--text); font-weight: 600; }
.cta-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
@media (max-width: 520px) { .cta-row .btn { width: 100%; } }

@media (max-width: 640px) { .steps-home { display: none; } .intro { padding: 24px 0 20px; } .presence { margin-top: 20px; } }
.steps { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; }
.steps-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 14px; }
.steps-head h2 { font-size: 15px; }
.steps-head a { font-size: 13px; color: var(--gold); font-weight: 600; }
.steps ol { list-style: none; display: grid; gap: 4px; counter-reset: step; }
.steps li { counter-increment: step; display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--border); }
.steps li:first-child { border-top: 0; padding-top: 4px; }
.steps li::before { content: counter(step, decimal-leading-zero); font-size: 12px; font-weight: 700; color: var(--gold); width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: var(--gold-soft); font-variant-numeric: tabular-nums; }
.steps strong { display: block; font-size: 14px; font-weight: 600; }
.steps span { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; }

.presence { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin-top: 28px; padding-top: 20px; border-top: 1px dashed var(--border); }
.presence-label { font-size: 12px; color: var(--muted); }
.presence-logos { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.presence-logos img { height: 19px; width: auto; opacity: .9; transition: opacity var(--t-fast) var(--ease); }
.presence-logos a:hover img { opacity: 1; }
.presence-logos .logo-dark { display: none; }
[data-theme="dark"] .presence-logos .logo-light { display: none; }
[data-theme="dark"] .presence-logos .logo-dark { display: block; }
.preview-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.preview-thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; border: 1px solid var(--border); animation: chipIn var(--t) var(--ease); }

/* ---------- Catálogo ---------- */
.catalog { padding: 28px 0 56px; }
.catalog-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.catalog-head h2 { font-size: 22px; letter-spacing: -.02em; }
.catalog-head p { font-size: 14px; color: var(--muted); margin-top: 4px; }
.catalog-layout { display: grid; gap: 24px; }
@media (min-width: 1024px) { .catalog-layout { grid-template-columns: 260px minmax(0, 1fr); gap: 28px; } }

.toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.toolbar .result-count { font-size: 14px; color: var(--muted); margin-right: auto; }
.toolbar .result-count strong { color: var(--text); font-variant-numeric: tabular-nums; }
.select { position: relative; }
.select select { appearance: none; height: 36px; padding: 0 34px 0 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); font-size: 14px; cursor: pointer; transition: border-color var(--t-fast) var(--ease); }
.select select:hover, .select select:focus { border-color: var(--gold); outline: none; }
.select::after { content: ""; position: absolute; right: 13px; top: 50%; width: 7px; height: 7px; border-right: 1.5px solid var(--muted); border-bottom: 1.5px solid var(--muted); transform: translateY(-70%) rotate(45deg); pointer-events: none; }

.active-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.active-filters:empty { display: none; }
.filter-chip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 6px 0 10px; border-radius: 8px; background: var(--gold-soft); color: var(--text); font-size: 13px; border: 1px solid var(--gold-line); animation: chipIn var(--t) var(--ease); }
.filter-chip a, .filter-chip button { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; color: var(--muted); background: none; border: 0; cursor: pointer; }
.filter-chip a:hover, .filter-chip button:hover { background: var(--surface-3); color: var(--text); }
.clear-all { font-size: 13px; color: var(--gold); font-weight: 600; padding: 0 6px; background: none; border: 0; cursor: pointer; }
@keyframes chipIn { from { opacity: 0; transform: scale(.94); } }

/* Painel de filtros */
.filters { align-self: start; }
@media (min-width: 1024px) { .filters { position: sticky; top: calc(var(--header-h) + 16px); max-height: calc(100vh - var(--header-h) - 32px); overflow: auto; scrollbar-width: thin; } }
.filters-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.filters-title { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.filters-title h2 { font-size: 15px; display: flex; gap: 8px; align-items: center; }
.fgroup { padding: 14px 16px; border-bottom: 1px solid var(--border); }
.fgroup:last-of-type { border-bottom: 0; }
.fgroup legend, .fgroup .fgroup-label { font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; padding: 0; }
.fgroup fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.fgroup .hint { font-size: 12px; color: var(--muted); margin-top: 8px; }
.opt-list { display: grid; gap: 2px; }
.opt { display: flex; align-items: center; gap: 10px; min-height: 34px; padding: 4px 8px; border-radius: 8px; cursor: pointer; font-size: 14px; color: var(--text-2); transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.opt:hover { background: var(--surface-2); color: var(--text); }
.opt input { position: absolute; opacity: 0; pointer-events: none; }
.opt .box { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--border-strong); flex: none; display: grid; place-items: center; transition: border-color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease); }
.opt .box::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--gold-ink); transform: scale(0); transition: transform var(--t-fast) var(--ease); }
.opt input:checked + .box { border-color: var(--gold); background: var(--gold); }
.opt input:checked + .box::after { transform: scale(1); }
.opt input:focus-visible + .box { outline: 2px solid var(--gold); outline-offset: 2px; }
.opt input:checked ~ .opt-text { color: var(--text); font-weight: 600; }
.opt .opt-count { margin-left: auto; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.range { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.input, .range input, .field input, .field select, .field textarea {
  width: 100%; height: 38px; padding: 0 12px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--surface); color: var(--text); font-size: 14px;
  transition: border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.range input::placeholder, .field input::placeholder, .field textarea::placeholder { color: var(--muted); }
.input:focus, .range input:focus, .field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
.filters-actions { display: flex; gap: 8px; padding: 14px 16px; border-top: 1px solid var(--border); }
.filters-actions .btn { flex: 1; }
.js .filters-desktop-apply { display: none; }

/* Gaveta de filtros (celular) */
@media (max-width: 1023px) {
  .filters {
    position: fixed; inset: auto 0 0 0; z-index: 60; max-height: 88vh; display: flex; flex-direction: column;
    transform: translateY(102%); transition: transform var(--t-slow) var(--ease); visibility: hidden;
  }
  .filters.is-open { transform: none; visibility: visible; }
  .filters-card { border-radius: 18px 18px 0 0; display: flex; flex-direction: column; max-height: 88vh; border-bottom: 0; box-shadow: var(--shadow-lg); }
  .filters-body { overflow-y: auto; overscroll-behavior: contain; flex: 1; }
  .filters-actions { position: sticky; bottom: 0; background: var(--surface); padding-bottom: max(14px, env(safe-area-inset-bottom)); }
  .js .filters-desktop-apply { display: inline-flex; }
  .filters-title::before { content: ""; position: absolute; left: 50%; top: 6px; width: 36px; height: 4px; border-radius: 4px; background: var(--border-strong); transform: translateX(-50%); }
  .filters-title { position: relative; padding-top: 18px; }
}
@media (min-width: 1024px) { .filters-close, .btn-filters { display: none !important; } }
.backdrop { position: fixed; inset: 0; z-index: 55; background: rgba(8, 8, 9, .5); opacity: 0; visibility: hidden; transition: opacity var(--t) var(--ease), visibility 0s linear var(--t); }
.backdrop.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }
.btn-filters .count-pill { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: var(--gold); color: var(--gold-ink); font-size: 11px; display: inline-grid; place-items: center; }
body.no-scroll { overflow: hidden; }

/* Resultados */
.results { transition: opacity var(--t) var(--ease); }
.results.is-loading { opacity: .45; pointer-events: none; }
.results.is-entering .card { animation: cardIn var(--t-slow) var(--ease) both; }
.results.is-entering .card:nth-child(2) { animation-delay: 25ms; }
.results.is-entering .card:nth-child(3) { animation-delay: 50ms; }
.results.is-entering .card:nth-child(4) { animation-delay: 75ms; }
.results.is-entering .card:nth-child(n+5) { animation-delay: 100ms; }
@keyframes cardIn { from { opacity: 0; transform: translateY(6px); } }

.cards { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); }
@media (max-width: 560px) { .cards { grid-template-columns: 1fr; } }

/* ---------- Cartão do anúncio ---------- */
.card {
  position: relative; display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  transition: transform var(--t) var(--ease), border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.card:hover { transform: translateY(-2px); border-color: var(--gold-line); box-shadow: var(--shadow); }
.card:focus-within { border-color: var(--gold-line); }
.card-cover { position: relative; height: 92px; border-radius: calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0; overflow: hidden; background: var(--surface-2); }
.card-cover img { width: 100%; height: 100%; object-fit: cover; }
.card-cover .cover-empty { position: absolute; inset: 0; display: grid; place-items: center; font-size: 28px; opacity: .22; }
.card-flag { position: absolute; left: 10px; top: 10px; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; background: var(--surface); color: var(--gold); border: 1px solid var(--gold-line); }
.card-fav { position: absolute; right: 8px; top: 8px; z-index: 2; }
.fav-btn {
  width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: var(--surface); border: 1px solid var(--border); color: var(--muted); cursor: pointer;
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.fav-btn:hover { color: var(--text); border-color: var(--border-strong); }
.fav-btn:active { transform: scale(.9); }
.fav-btn[aria-pressed="true"] { color: #d64545; border-color: rgba(214, 69, 69, .4); }
.fav-btn[aria-pressed="true"] i { animation: pop 250ms var(--ease); }
@keyframes pop { 0% { transform: scale(1); } 45% { transform: scale(1.3); } 100% { transform: scale(1); } }

.card-avatar { position: absolute; left: 14px; top: 64px; width: 52px; height: 52px; border-radius: 50%; border: 3px solid var(--surface); background: var(--surface-3); overflow: hidden; display: grid; place-items: center; font-weight: 700; font-size: 16px; color: var(--gold); z-index: 1; }
.card-avatar img { width: 100%; height: 100%; object-fit: cover; }
.card-body { padding: 30px 16px 0; display: flex; flex-direction: column; gap: 2px; flex: 1; }
.card-meta { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); min-width: 0; }
.card-meta .sep { opacity: .6; }
.card-meta .niche { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-title { font-size: 16px; font-weight: 650; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-title a::after { content: ""; position: absolute; inset: 0; z-index: 0; border-radius: inherit; }
.card-audience { margin-top: 10px; display: flex; align-items: baseline; gap: 6px; }
.card-audience strong { font-size: 22px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.card-audience span { font-size: 13px; color: var(--muted); }
.card-metric { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--border); font-size: 13px; color: var(--text-2); display: flex; flex-direction: column; gap: 1px; }
.card-metric b { font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.card-metric .period { color: var(--muted); font-size: 12px; }
.card-metric .checked { color: var(--success); font-size: 12px; display: inline-flex; gap: 4px; align-items: center; }
.card-foot { margin-top: 14px; padding: 12px 16px 14px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.price { font-size: 20px; font-weight: 700; letter-spacing: -.02em; color: var(--text); }
.price small { display: block; font-size: 11px; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.card-foot .btn { position: relative; z-index: 1; }
.card:hover .card-foot .btn-outline { border-color: var(--gold); color: var(--gold); }

/* Estado vazio */
.empty { text-align: center; padding: 56px 20px; border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); background: var(--surface); }
.empty .empty-icon { width: 48px; height: 48px; margin: 0 auto 14px; border-radius: 14px; display: grid; place-items: center; background: var(--surface-2); color: var(--muted); font-size: 18px; }
.empty h3 { font-size: 17px; }
.empty p { color: var(--muted); margin: 6px auto 18px; max-width: 42ch; font-size: 14px; }

/* Paginação */
.pagination { display: flex; justify-content: center; gap: 6px; margin-top: 28px; flex-wrap: wrap; }
.pagination a, .pagination span { min-width: 38px; height: 38px; padding: 0 10px; border-radius: 10px; display: grid; place-items: center; border: 1px solid var(--border); font-size: 14px; font-variant-numeric: tabular-nums; color: var(--text-2); transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.pagination a:hover { border-color: var(--gold); color: var(--gold); }
.pagination [aria-current="page"] { background: var(--gold); border-color: var(--gold); color: var(--gold-ink); font-weight: 600; }
.pagination .gap { border: 0; }

/* ---------- Seções institucionais ---------- */
.section { padding: 48px 0; border-top: 1px solid var(--border); }
.section-head { max-width: 640px; margin-bottom: 24px; }
.section-head h2 { font-size: clamp(22px, 2.6vw, 28px); letter-spacing: -.025em; }
.section-head p { margin-top: 8px; color: var(--muted); }
.grid-3 { display: grid; gap: 16px; }
@media (min-width: 800px) { .grid-3 { grid-template-columns: repeat(3, 1fr); } }
.grid-2 { display: grid; gap: 16px; }
@media (min-width: 800px) { .grid-2 { grid-template-columns: repeat(2, 1fr); } }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; }
.panel h3 { font-size: 16px; }
.panel p { color: var(--text-2); font-size: 14px; margin-top: 6px; }
.panel .icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--gold-soft); color: var(--gold); margin-bottom: 14px; }
.link-list { display: flex; flex-wrap: wrap; gap: 8px; }
.link-list a { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border); font-size: 14px; color: var(--text-2); transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.link-list a:hover { border-color: var(--gold); color: var(--text); }
.prose { max-width: 72ch; color: var(--text-2); }
.prose h2 { font-size: 20px; color: var(--text); margin: 32px 0 10px; }
.prose h3 { font-size: 16px; color: var(--text); margin: 24px 0 8px; }
.prose p, .prose ul, .prose ol { margin: 10px 0; }
.prose ul, .prose ol { padding-left: 20px; }
.prose li { margin: 6px 0; }
.prose a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.page-head { padding: 36px 0 24px; border-bottom: 1px solid var(--border); }
.page-head h1 { font-size: clamp(26px, 3.4vw, 36px); letter-spacing: -.03em; margin-top: 10px; }
.page-head p { color: var(--text-2); margin-top: 10px; max-width: 64ch; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--muted); list-style: none; }
.breadcrumb li + li::before { content: "/"; margin-right: 6px; opacity: .6; }
.breadcrumb a:hover { color: var(--gold); }
.faq details { border-top: 1px solid var(--border); padding: 4px 0; }
.faq details:last-child { border-bottom: 1px solid var(--border); }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--gold); font-weight: 500; font-size: 20px; line-height: 1; transition: transform var(--t) var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--text-2); padding: 0 0 14px; max-width: 70ch; }

/* ---------- Detalhe do anúncio ---------- */
.detail { padding: 24px 0 64px; }
.detail-top { display: grid; gap: 24px; margin-top: 16px; }
@media (min-width: 1000px) { .detail-top { grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; } }
.profile-head { display: flex; gap: 16px; align-items: center; }
.profile-head .avatar-lg { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: var(--surface-3); display: grid; place-items: center; font-weight: 700; font-size: 22px; color: var(--gold); border: 1px solid var(--border); flex: none; }
.profile-head .avatar-lg img { width: 100%; height: 100%; object-fit: cover; }
.profile-head h1 { font-size: clamp(22px, 3vw, 30px); letter-spacing: -.025em; }
.profile-head .card-meta { font-size: 14px; margin-bottom: 4px; }
.spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-top: 20px; }
@media (min-width: 700px) { .spec-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.spec { background: var(--surface); padding: 14px 16px; }
.spec dt { font-size: 12px; color: var(--muted); }
.spec dd { margin: 4px 0 0; font-size: 18px; font-weight: 650; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.spec dd small { font-size: 12px; font-weight: 500; color: var(--muted); }
.gallery { margin-top: 20px; }
.gallery-main { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface-2); border: 1px solid var(--border); aspect-ratio: 16 / 10; }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; transition: opacity var(--t) var(--ease); }
.gallery-thumbs { display: flex; gap: 8px; margin-top: 8px; overflow-x: auto; }
.gallery-thumbs button { flex: none; width: 64px; height: 64px; border-radius: 10px; overflow: hidden; border: 2px solid transparent; padding: 0; background: var(--surface-2); cursor: pointer; transition: border-color var(--t-fast) var(--ease); }
.gallery-thumbs button[aria-current="true"] { border-color: var(--gold); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.dblock { margin-top: 28px; }
.dblock > h2 { font-size: 17px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.dblock .desc { color: var(--text-2); white-space: pre-line; }
.metric-list { display: grid; gap: 10px; }
.metric-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.metric-row .m-name { font-size: 13px; color: var(--muted); }
.metric-row .m-value { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
.metric-row .m-period { font-size: 13px; color: var(--text-2); }
.metric-row .m-status { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12px; color: var(--muted); }
.note { font-size: 13px; color: var(--muted); border-left: 2px solid var(--gold-line); padding: 2px 0 2px 12px; margin-top: 12px; }
.status { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.status-ok { background: var(--success-soft); color: var(--success); }
.status-wait { background: var(--warning-soft); color: var(--warning); }
.status-neutral { background: var(--surface-2); color: var(--muted); }
.status-bad { background: var(--danger-soft); color: var(--danger); }
.status-gold { background: var(--gold-soft); color: var(--gold); }
.checklist { list-style: none; display: grid; gap: 10px; }
.checklist li { display: flex; gap: 10px; color: var(--text-2); font-size: 14px; }
.checklist li i { color: var(--gold); margin-top: 4px; width: 14px; flex: none; }
.buy-box { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; }
@media (min-width: 1000px) { .buy-box { position: sticky; top: calc(var(--header-h) + 16px); } }
.buy-box .price { font-size: 30px; }
.buy-box .actions { display: grid; gap: 8px; margin-top: 16px; }
.buy-box .small { font-size: 12px; color: var(--muted); margin-top: 12px; }
.buy-box hr { border: 0; border-top: 1px solid var(--border); margin: 16px 0; }
.seller { display: flex; gap: 10px; align-items: center; font-size: 14px; }
.seller .avatar-sm { width: 32px; height: 32px; border-radius: 50%; background: var(--surface-3); display: grid; place-items: center; font-size: 12px; font-weight: 700; color: var(--gold); }
.evidence-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.evidence-grid a { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; display: block; background: var(--surface-2); aspect-ratio: 4 / 5; transition: border-color var(--t-fast) var(--ease); }
.evidence-grid a:hover { border-color: var(--gold); }
.evidence-grid img { width: 100%; height: 100%; object-fit: cover; }
.sticky-buy { display: none; }
@media (max-width: 999px) {
  .sticky-buy { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; gap: 12px; align-items: center; justify-content: space-between; padding: 10px 16px max(10px, env(safe-area-inset-bottom)); background: var(--surface); border-top: 1px solid var(--border); }
  .detail { padding-bottom: 96px; }
}

/* Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 80; background: rgba(8, 8, 9, .9); display: grid; place-items: center; padding: 24px; opacity: 0; visibility: hidden; transition: opacity var(--t) var(--ease), visibility 0s linear var(--t); }
.lightbox.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }
.lightbox img { max-width: 100%; max-height: 86vh; border-radius: 10px; transform: scale(.98); transition: transform var(--t) var(--ease); }
.lightbox.is-open img { transform: none; }
.lightbox .btn { position: absolute; top: 16px; right: 16px; }

/* ---------- Formulários ---------- */
.form-grid { display: grid; gap: 16px; }
@media (min-width: 700px) { .form-grid.cols-2 { grid-template-columns: 1fr 1fr; } .form-grid.cols-3 { grid-template-columns: repeat(3, 1fr); } }
.field label, .field .label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--text); }
.field .req { color: var(--gold); }
.field textarea { height: auto; min-height: 96px; padding: 10px 12px; resize: vertical; line-height: 1.5; }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%); background-position: calc(100% - 17px) 50%, calc(100% - 12px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 32px; }
.field input[type="file"] { height: auto; padding: 8px; font-size: 13px; }
.field input[type="file"]::file-selector-button { margin-right: 10px; border: 1px solid var(--border-strong); background: var(--surface-2); color: var(--text); border-radius: 8px; padding: 6px 10px; cursor: pointer; }
.field .hint { font-size: 12px; color: var(--muted); margin-top: 6px; }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color: var(--danger); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--gold); margin-top: 2px; flex: none; }
.fieldset { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px; margin: 0; background: var(--surface); }
.fieldset + .fieldset { margin-top: 16px; }
.fieldset > legend { padding: 0 6px; margin-left: -6px; font-weight: 650; font-size: 15px; }
.fieldset .fs-desc { color: var(--muted); font-size: 13px; margin: -2px 0 14px; }
.fieldset.is-private { border-style: dashed; }

/* Alertas */
.alert { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--surface); font-size: 14px; animation: alertIn var(--t-slow) var(--ease); }
.alert i { margin-top: 3px; }
.alert-success { border-color: rgba(35, 121, 76, .3); background: var(--success-soft); }
.alert-success i { color: var(--success); }
.alert-error { border-color: rgba(180, 35, 24, .3); background: var(--danger-soft); }
.alert-error i { color: var(--danger); }
.alert-info { border-color: var(--gold-line); background: var(--gold-soft); }
.alert-info i { color: var(--gold); }
@keyframes alertIn { from { opacity: 0; transform: translateY(-4px); } }

/* Toasts */
.toast-region { position: fixed; z-index: 90; bottom: 16px; left: 50%; transform: translateX(-50%); display: grid; gap: 8px; width: min(420px, calc(100% - 32px)); pointer-events: none; }
@media (min-width: 900px) { .toast-region { left: auto; right: 24px; bottom: 24px; transform: none; } }
.cp-toast { pointer-events: auto; display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--text); color: var(--bg); box-shadow: var(--shadow-lg); font-size: 14px; animation: toastIn var(--t-slow) var(--ease); }
.cp-toast.is-leaving { animation: toastOut var(--t) var(--ease) forwards; }
.cp-toast .t-icon { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; flex: none; background: var(--gold); color: var(--gold-ink); }
.cp-toast.error .t-icon { background: var(--danger); color: #fff; }
.cp-toast a { margin-left: auto; font-weight: 600; color: var(--gold); white-space: nowrap; }
[data-theme="dark"] .cp-toast { background: #f3f1ec; color: #141416; }
[data-theme="dark"] .cp-toast a { color: #8a681c; }
@keyframes toastIn { from { opacity: 0; transform: translateY(8px) scale(.98); } }
@keyframes toastOut { to { opacity: 0; transform: translateY(6px); } }

/* ---------- Painéis (cliente, vendedor, admin) ---------- */
.app { display: grid; gap: 24px; padding: 24px 0 64px; }
@media (min-width: 1024px) { .app { grid-template-columns: 232px minmax(0, 1fr); gap: 32px; } }
.side-nav { align-self: start; }
@media (min-width: 1024px) { .side-nav { position: sticky; top: calc(var(--header-h) + 16px); } }
.side-nav nav { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
@media (min-width: 1024px) { .side-nav nav { flex-direction: column; } }
.side-nav a { display: flex; align-items: center; gap: 10px; height: 38px; padding: 0 12px; border-radius: 10px; font-size: 14px; color: var(--text-2); white-space: nowrap; transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.side-nav a:hover { background: var(--surface-2); color: var(--text); }
.side-nav a[aria-current="page"], .side-nav a.is-active { background: var(--gold-soft); color: var(--text); font-weight: 600; }
.side-nav a i { width: 16px; text-align: center; color: var(--muted); }
.side-nav a[aria-current="page"] i, .side-nav a.is-active i { color: var(--gold); }
.side-nav .nav-count { margin-left: auto; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.side-nav .nav-count.is-alert { color: var(--gold-ink); background: var(--gold); border-radius: 99px; padding: 1px 7px; font-weight: 700; }
.side-nav .nav-sep { height: 1px; background: var(--border); margin: 8px 0; }
@media (max-width: 1023px) { .side-nav .nav-sep { display: none; } }
.app-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 12px; margin-bottom: 20px; }
.app-head h1 { font-size: 24px; letter-spacing: -.025em; }
.app-head p { color: var(--muted); font-size: 14px; margin-top: 4px; }
.kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 900px) { .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.kpi { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; }
.kpi-label { font-size: 12px; color: var(--muted); }
.kpi-value { font-size: 24px; font-weight: 700; letter-spacing: -.02em; margin-top: 4px; }
.kpi-note { font-size: 12px; color: var(--muted); margin-top: 2px; }
.todo { display: grid; gap: 8px; }
.todo a, .todo .todo-item { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); transition: border-color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease); }
.todo a:hover { border-color: var(--gold-line); }
.todo .t-ico { width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: var(--gold-soft); color: var(--gold); flex: none; }
.todo .t-ico.warn { background: var(--warning-soft); color: var(--warning); }
.todo strong { display: block; font-size: 14px; }
.todo span { font-size: 13px; color: var(--muted); }
.todo .chev { margin-left: auto; color: var(--muted); }
.card-section { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; }
.card-section + .card-section { margin-top: 16px; }
.card-section > header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.card-section > header h2 { font-size: 16px; }
.card-section > header p { font-size: 13px; color: var(--muted); }
.listing { display: grid; gap: 10px; }
.listing-item { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px 14px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); transition: border-color var(--t-fast) var(--ease); }
.listing-item:hover { border-color: var(--border-strong); }
@media (min-width: 800px) { .listing-item { grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; } }
.listing-thumb { width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: var(--surface-2); display: grid; place-items: center; color: var(--gold); font-weight: 700; }
.listing-thumb img { width: 100%; height: 100%; object-fit: cover; }
.listing-main h3 { font-size: 15px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.listing-main p { font-size: 13px; color: var(--muted); margin-top: 2px; }
.listing-actions { display: flex; flex-wrap: wrap; gap: 6px; grid-column: 1 / -1; }
@media (min-width: 800px) { .listing-actions { grid-column: auto; justify-content: flex-end; } }
.listing-actions form { display: inline; }
.data-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table th { text-align: left; font-size: 12px; font-weight: 600; color: var(--muted); padding: 10px 12px; background: var(--surface-2); border-bottom: 1px solid var(--border); white-space: nowrap; }
.data-table td { padding: 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
.data-table tr:last-child td { border-bottom: 0; }
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 16px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tabs a { padding: 10px 12px; font-size: 14px; color: var(--muted); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease); }
.tabs a:hover { color: var(--text); }
.tabs a[aria-current="page"] { color: var(--text); border-color: var(--gold); font-weight: 600; }
.tab-panel { display: none; }
.tab-panel.is-active { display: block; animation: panelIn var(--t-slow) var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(4px); } }
.metric-editor { display: grid; gap: 12px; }
.metric-editor-row { border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; display: grid; gap: 12px; background: var(--surface-2); }
@media (min-width: 900px) { .metric-editor-row { grid-template-columns: 1.1fr 1fr 1fr 1fr; align-items: end; } .metric-editor-row .full { grid-column: 1 / -1; } }

/* Autenticação */
.auth { min-height: calc(100vh - var(--header-h)); display: grid; place-items: center; padding: 32px 16px 64px; }
.auth-card { width: 100%; max-width: 420px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px; box-shadow: var(--shadow); }
.auth-card h1 { font-size: 22px; letter-spacing: -.02em; }
.auth-card .sub { color: var(--muted); font-size: 14px; margin-top: 6px; }
.auth-card form { margin-top: 20px; display: grid; gap: 14px; }
.auth-card .alt { text-align: center; font-size: 14px; color: var(--muted); margin-top: 18px; }
.auth-card .alt a { color: var(--gold); font-weight: 600; }
.seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--surface-2); border: 1px solid var(--border); }
.seg label { position: relative; }
.seg input { position: absolute; opacity: 0; }
.seg span { display: flex; justify-content: center; align-items: center; gap: 8px; height: 36px; border-radius: 9px; font-size: 14px; font-weight: 500; color: var(--muted); cursor: pointer; transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.seg input:checked + span { background: var(--surface); color: var(--text); box-shadow: var(--shadow-sm); font-weight: 600; }
.seg input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 1px; }

/* ---------- Rodapé ---------- */
.site-footer { border-top: 1px solid var(--border); background: var(--surface-2); padding: 40px 0 28px; margin-top: 0; }
.footer-grid { display: grid; gap: 28px; }
@media (min-width: 800px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer-grid h3 { font-size: 13px; font-weight: 600; margin-bottom: 12px; }
.footer-grid ul { list-style: none; display: grid; gap: 8px; }
.footer-grid a { font-size: 14px; color: var(--muted); transition: color var(--t-fast) var(--ease); }
.footer-grid a:hover { color: var(--gold); }
.footer-about p { font-size: 14px; color: var(--muted); margin-top: 12px; max-width: 36ch; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--border); font-size: 13px; color: var(--muted); }
.socials { display: flex; gap: 6px; margin-top: 16px; }
.socials a { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; border: 1px solid var(--border); color: var(--muted); }
.socials a:hover { color: var(--gold); border-color: var(--gold-line); }

/* ---------- Movimento ---------- */
.reveal { animation: reveal var(--t-slow) var(--ease) both; }
.reveal-2 { animation-delay: 60ms; }
.reveal-3 { animation-delay: 120ms; }
@keyframes reveal { from { opacity: 0; transform: translateY(8px); } }

/* Troca de tema com transição curta */
.theme-switching, .theme-switching * { transition: background-color var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease) !important; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 200ms; animation-timing-function: var(--ease); }

.theme-toggle .i-sun { display: none; }
[data-theme="dark"] .theme-toggle .i-sun { display: inline; }
[data-theme="dark"] .theme-toggle .i-moon { display: none; }

/* Movimento reduzido (preferência do sistema): sem deslocamentos, só fades curtos e cores */
@keyframes fadeOnly { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .card:hover, .marquee-track a:hover, .btn:active, .fav-btn:active { transform: none; }
  .reveal, .results.is-entering .card, .alert, .tab-panel.is-active, .filter-chip, .cp-toast, .preview-thumb { animation-name: fadeOnly !important; }
  .fav-btn[aria-pressed="true"] i { animation: none; }
  .bm-rocket, .brand:hover .bm-rocket { transform: none; }
  .lightbox img, .menu-panel { transform: none !important; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 1023px) {
  .filters { transform: none; opacity: 0; transition: opacity var(--t) var(--ease), visibility 0s linear var(--t); }
  .filters.is-open { opacity: 1; transition-delay: 0s; }
}

/* ============================================================
   Fundo do topo: grade fina com brilho que acompanha o cursor
   ============================================================ */
.intro { position: relative; isolation: isolate; overflow: hidden; }
.intro::before {
  content: ""; position: absolute; inset: 0; z-index: -2; pointer-events: none;
  background-image:
    linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 70% 30%, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse 80% 70% at 70% 30%, #000 30%, transparent 75%);
  animation: gridDrift 40s linear infinite;
}
.intro::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  width: 560px; height: 560px; left: var(--spot-x, 72%); top: var(--spot-y, 20%);
  transform: translate(-50%, -50%); border-radius: 50%;
  background: radial-gradient(circle, var(--spot) 0%, transparent 65%);
  transition: left 600ms var(--ease), top 600ms var(--ease);
}
:root { --grid-line: rgba(22, 20, 15, .06); --spot: rgba(138, 104, 28, .10); }
:root[data-theme="dark"] { --grid-line: rgba(214, 180, 110, .07); --spot: rgba(214, 180, 110, .10); }
@keyframes gridDrift { to { background-position: 44px 44px, 44px 44px; } }
.page-head { position: relative; isolation: isolate; overflow: hidden; }
.page-head::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(var(--grid-line) 1.2px, transparent 1.2px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(to left, #000, transparent 70%);
  mask-image: linear-gradient(to left, #000, transparent 70%);
}

/* ============================================================
   Revelação ao rolar (só com JS e sem "reduzir movimento")
   ============================================================ */
.js [data-reveal] { opacity: 0; transform: translateY(14px); transition: opacity 500ms var(--ease), transform 500ms var(--ease); transition-delay: var(--reveal-delay, 0ms); }
.js [data-reveal].is-visible { opacity: 1; transform: none; }

/* Destaque do título: sublinhado dourado que se desenha ao carregar */
.intro h1 em { position: relative; white-space: normal; }
.intro h1 em::after {
  content: ""; position: absolute; left: 0; bottom: -.06em; height: 3px; width: 100%;
  background: var(--gold); border-radius: 3px; transform-origin: left; transform: scaleX(0);
  animation: underline 700ms 350ms var(--ease) forwards; opacity: .55;
}
@keyframes underline { to { transform: scaleX(1); } }

/* ============================================================
   Vendas concluídas: faixa contínua (pausa ao passar o mouse/focar)
   ============================================================ */
.marquee { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); }
.marquee-track { display: flex; gap: 14px; width: max-content; animation: marquee var(--marquee-dur, 40s) linear infinite; }
.marquee:hover .marquee-track, .marquee:focus-within .marquee-track { animation-play-state: paused; }
.marquee-track a { flex: none; width: 168px; height: 300px; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border); background: var(--surface-2); transition: border-color var(--t) var(--ease), transform var(--t) var(--ease); }
.marquee-track a:hover { border-color: var(--gold-line); transform: translateY(-3px); }
.marquee-track img { width: 100%; height: 100%; object-fit: cover; }
@keyframes marquee { to { transform: translateX(calc(-50% - 7px)); } }
@media (max-width: 640px) { .marquee-track a { width: 132px; height: 236px; } }

@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { transform: none; transition: opacity 400ms var(--ease); }
  .intro::before { animation: none; }
  .intro h1 em::after { transform: scaleX(1); }
  .marquee-track { animation-duration: calc(var(--marquee-dur, 40s) * 1.6); }
}
/* Listas: marcador discreto em vez de ícones */
.checklist li i { display: none; }
.checklist li::before { content: ""; width: 6px; height: 6px; border-radius: 2px; background: var(--gold); margin-top: 8px; flex: none; }

/* ============================================================
   TOPO v2 — fundo vivo (aurora dourada, feixes, granulado) + vitrine
   ============================================================ */
.hero { padding: 56px 0 64px; border-bottom: 0; }
@media (min-width: 960px) { .hero { padding: 72px 0 88px; min-height: 620px; } }
.hero-bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.aurora { position: absolute; border-radius: 50%; will-change: transform; animation: auroraMove var(--ad, 22s) ease-in-out infinite alternate; }
.a1 { --ad: 24s; width: 720px; height: 720px; right: -160px; top: -260px; background: radial-gradient(circle, var(--aurora-1) 0%, transparent 62%); }
.a2 { --ad: 30s; width: 560px; height: 560px; right: 22%; top: 30%; background: radial-gradient(circle, var(--aurora-2) 0%, transparent 60%); animation-direction: alternate-reverse; }
.a3 { --ad: 36s; width: 820px; height: 820px; left: -320px; bottom: -520px; background: radial-gradient(circle, var(--aurora-3) 0%, transparent 60%); }
:root { --aurora-1: rgba(176, 132, 40, .20); --aurora-2: rgba(212, 170, 90, .14); --aurora-3: rgba(140, 104, 28, .12); --beam: rgba(138, 104, 28, .55); }
:root[data-theme="dark"] { --aurora-1: rgba(214, 180, 110, .20); --aurora-2: rgba(232, 196, 120, .11); --aurora-3: rgba(170, 128, 50, .14); --beam: rgba(231, 204, 146, .75); }
@keyframes auroraMove {
  0% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(-60px, 40px, 0) scale(1.08); }
  100% { transform: translate3d(40px, -30px, 0) scale(.96); }
}
.beam { position: absolute; top: -140px; left: var(--x); width: 1px; height: 140px; background: linear-gradient(to bottom, transparent, var(--beam)); opacity: 0; animation: beamFall var(--dur) linear var(--delay) infinite; }
.beam::after { content: ""; position: absolute; bottom: -2px; left: -2px; width: 5px; height: 5px; border-radius: 50%; background: var(--beam); box-shadow: 0 0 10px var(--beam); }
@keyframes beamFall { 0% { transform: translateY(0); opacity: 0; } 8% { opacity: 1; } 70% { opacity: .9; } 100% { transform: translateY(820px); opacity: 0; } }
.hero-noise { position: absolute; inset: 0; opacity: .06; mix-blend-mode: overlay; 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='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hero .intro-grid { align-items: center; }
@media (min-width: 960px) { .hero .intro-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); } }
.hero h1 { font-size: clamp(32px, 4.8vw, 54px); max-width: 16ch; }

/* Números reais do catálogo */
.hero-numbers { display: flex; flex-wrap: wrap; gap: 10px 28px; margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--border); }
.hero-numbers div { display: flex; flex-direction: column-reverse; }
.hero-numbers dt { font-size: 13px; color: var(--muted); }
.hero-numbers dd { margin: 0; font-size: 26px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--text); }

/* Vitrine: celular com uma conta real + cartões flutuantes */
.hero-visual { position: relative; display: flex; justify-content: center; perspective: 1400px; padding: 10px 0 30px; }
@media (max-width: 959px) { .hero-visual { margin-top: 8px; } }
.phone {
  position: relative; display: block; width: 272px; height: 548px; border-radius: 42px; padding: 10px;
  background: linear-gradient(160deg, var(--surface-3), var(--surface)); border: 1px solid var(--border-strong);
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .03) inset;
  transform: rotateY(calc(-14deg + var(--ry, 0deg))) rotateX(calc(5deg + var(--rx, 0deg)));
  transform-style: preserve-3d; transition: transform 500ms var(--ease);
  animation: phoneFloat 7s ease-in-out infinite;
}
@keyframes phoneFloat { 50% { translate: 0 -12px; } }
.phone-notch { position: absolute; top: 18px; left: 50%; width: 84px; height: 22px; margin-left: -42px; border-radius: 20px; background: #000; z-index: 2; }
.phone-screen { position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 33px; overflow: hidden; background: var(--bg); padding: 44px 14px 14px; gap: 8px; }
.ph-top { display: flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 600; color: var(--text-2); }
.ph-profile { display: flex; align-items: center; gap: 14px; margin-top: 4px; }
.ph-avatar { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; flex: none; display: grid; place-items: center; font-weight: 700; color: var(--gold); background: var(--surface-3); padding: 2px; box-shadow: 0 0 0 2px var(--gold); }
.ph-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.ph-stats { display: flex; gap: 16px; }
.ph-stats span { display: flex; flex-direction: column; }
.ph-stats b { font-size: 15px; font-variant-numeric: tabular-nums; }
.ph-stats small { font-size: 10px; color: var(--muted); }
.ph-name { font-size: 13px; font-weight: 700; margin-top: 2px; }
.ph-bio { font-size: 11px; color: var(--muted); margin-top: -6px; }
.ph-btn { display: block; text-align: center; font-size: 12px; font-weight: 600; padding: 7px; border-radius: 8px; background: var(--gold); color: var(--gold-ink); }
.ph-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; margin-top: 4px; border-radius: 6px; overflow: hidden; }
.ph-tile { aspect-ratio: 1; background: linear-gradient(135deg, var(--surface-3), var(--surface-2)); overflow: hidden; animation: tileIn 600ms var(--ease) both; animation-delay: calc(300ms + var(--i) * 70ms); }
.ph-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease); }
.phone:hover .ph-tile img { transform: scale(1.06); }
@keyframes tileIn { from { opacity: 0; transform: scale(.85); } }

.float-card {
  position: absolute; z-index: 3; display: flex; align-items: center; gap: 10px; width: 250px; padding: 10px 12px;
  background: var(--surface); border: 1px solid var(--border-strong); border-radius: 14px; box-shadow: var(--shadow-lg);
  transition: border-color var(--t) var(--ease), transform var(--t) var(--ease);
}
.float-card:hover { border-color: var(--gold); }
.fc-1 { left: -6%; bottom: 14%; animation: cardFloat 6s ease-in-out .8s infinite; }
.fc-2 { right: -4%; top: 12%; animation: cardFloat 7s ease-in-out 2s infinite; }
@media (max-width: 1100px) { .fc-1 { left: 0; } .fc-2 { right: 0; } }
@media (max-width: 520px) { .float-card { display: none; } .phone { width: 248px; height: 500px; } }
@keyframes cardFloat { 50% { translate: 0 -10px; } }
.fc-avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex: none; display: grid; place-items: center; background: var(--surface-3); color: var(--gold); font-size: 13px; font-weight: 700; }
.fc-avatar img { width: 100%; height: 100%; object-fit: cover; }
.fc-body { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.fc-meta { display: flex; gap: 5px; align-items: center; font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-num { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-num b { color: var(--text); }
.fc-price { font-size: 13px; font-weight: 700; color: var(--gold); white-space: nowrap; }

/* Botão principal com brilho passando */
.btn-shine { position: relative; overflow: hidden; }
.btn-shine::after { content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-18deg); animation: shine 4.5s ease-in-out 1.5s infinite; }
@keyframes shine { 0% { left: -60%; } 30%, 100% { left: 130%; } }

/* ============================================================
   Faixa "Como funciona a contratação"
   ============================================================ */
.steps-band { position: relative; padding: 40px 0 44px; background: var(--surface-2); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.steps-band-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 22px; }
.steps-band-head h2 { font-size: 20px; letter-spacing: -.02em; }
.steps-band-head a { font-size: 14px; font-weight: 600; }
.steps-row { list-style: none; display: grid; gap: 18px; position: relative; }
@media (min-width: 800px) {
  .steps-row { grid-template-columns: repeat(3, 1fr); gap: 32px; }
  .steps-row::before { content: ""; position: absolute; top: 22px; left: 46px; right: 12%; height: 1px; background: var(--gold-line); transform-origin: left; transform: scaleX(0); transition: transform 1.2s var(--ease) .2s; }
  .steps-row.is-drawn::before { transform: scaleX(1); }
}
.steps-row li { position: relative; display: flex; flex-direction: column; gap: 6px; }
.steps-row strong { font-size: 16px; }
.steps-row li > span:last-child { font-size: 14px; color: var(--muted); max-width: 32ch; }
.step-n { position: relative; z-index: 1; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-weight: 700; font-size: 14px; color: var(--gold); background: var(--bg); border: 1px solid var(--gold-line); margin-bottom: 6px; font-variant-numeric: tabular-nums; transition: background-color var(--t) var(--ease), color var(--t) var(--ease); }
.steps-row li:hover .step-n { background: var(--gold); color: var(--gold-ink); }

/* ============================================================
   "Também presente em": roleta 3D vista de lado, girando devagar
   ============================================================ */
.presence-band { padding: 26px 0; border-bottom: 1px solid var(--border); overflow: hidden; }
.presence-inner { display: flex; align-items: center; gap: 16px 32px; flex-wrap: wrap; justify-content: center; }
.presence-band .presence-label { font-size: 13px; color: var(--muted); white-space: nowrap; }
.ring-wrap { position: relative; width: min(560px, 100%); height: 72px; perspective: 900px; -webkit-mask-image: linear-gradient(to right, transparent, #000 22%, #000 78%, transparent); mask-image: linear-gradient(to right, transparent, #000 22%, #000 78%, transparent); }
.ring { position: absolute; left: 50%; top: 50%; width: 150px; height: 56px; margin: -28px 0 0 -75px; transform-style: preserve-3d; animation: ringSpin 36s linear infinite; }
.ring-wrap:hover .ring { animation-play-state: paused; }
.ring-face { position: absolute; inset: 0; display: grid; place-items: center; border-radius: 12px; background: var(--surface); border: 1px solid var(--border); backface-visibility: hidden; -webkit-backface-visibility: hidden; transform: rotateY(calc(var(--i) * 60deg)) translateZ(var(--ring-r, 200px)); }
.ring-face img { height: 22px; width: auto; }
@media (max-width: 520px) { .ring-wrap { --ring-r: 150px; } .ring { width: 120px; margin-left: -60px; } .ring-face img { height: 18px; } }
@keyframes ringSpin { to { transform: rotateY(-360deg); } }

/* ============================================================
   Faixa final de chamada
   ============================================================ */
.cta-band { position: relative; isolation: isolate; overflow: hidden; padding: 64px 0; border-top: 1px solid var(--border); text-align: center; }
.cta-band h2 { font-size: clamp(24px, 3.4vw, 36px); letter-spacing: -.03em; max-width: 22ch; margin: 0 auto; }
.cta-band p { color: var(--text-2); margin: 12px auto 0; max-width: 56ch; }
.cta-band .cta-row { justify-content: center; }

/* Cartões: inclinação leve seguindo o mouse (desktop) */
@media (pointer: fine) {
  .cards .card { transform: perspective(900px) rotateX(var(--tx, 0deg)) rotateY(var(--ty, 0deg)) translateY(var(--lift, 0)); }
  .cards .card:hover { --lift: -3px; }
}

/* Movimento reduzido: mantém só o ambiente lento (aurora, roleta); tira flutuação e inclinação */
@media (prefers-reduced-motion: reduce) {
  .phone, .float-card { animation: none; }
  .beam { display: none; }
  .ph-tile { animation-name: fadeOnly; }
  .cards .card { transform: none !important; }
  .btn-shine::after { display: none; }
  .ring { animation-duration: 60s; }
}
.ring-face .logo-dark { display: none; }
[data-theme="dark"] .ring-face .logo-light { display: none; }
[data-theme="dark"] .ring-face .logo-dark { display: block; }

/* ============================================================
   CARTÃO v3 — sem foto de fundo; a foto do perfil (bolinha) é o destaque
   ============================================================ */
.card-head { position: relative; display: flex; align-items: center; gap: 12px; padding: 16px 16px 0; }
.card .card-avatar { position: relative; inset: auto; top: auto; left: auto; width: 58px; height: 58px; flex: none; border: 0; padding: 2.5px; border-radius: 50%; overflow: visible; background: var(--border-strong); display: block; z-index: 1; }
.card.is-featured .card-avatar, .card:hover .card-avatar { background: linear-gradient(135deg, var(--gold-hi), var(--gold), #7a5a14); }
.card .card-avatar > span:first-child { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; overflow: hidden; background: var(--surface-3); border: 2.5px solid var(--surface); color: var(--gold); font-weight: 700; font-size: 16px; }
.card .card-avatar img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms var(--ease); }
.card:hover .card-avatar img { transform: scale(1.08); }
.card-pf { position: absolute; right: -3px; bottom: -3px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--border); font-size: 11px; }
.card-id { min-width: 0; flex: 1; }
.card-id .card-title { margin: 0; font-size: 16px; }
.card-id .card-meta { margin-top: 2px; }
.card-head .fav-btn { position: relative; z-index: 2; align-self: flex-start; }
.card .card-body { padding: 14px 16px 0; }
.card .card-flag { position: static; display: inline-flex; width: max-content; margin-bottom: 8px; height: 20px; font-size: 11px; }
.card .card-audience { margin-top: 0; }
.card-title a::after { z-index: 1; }
.card-foot .btn { z-index: 2; }

/* ============================================================
   CELULAR v2 — aparência de aparelho real
   ============================================================ */
.phone {
  width: 292px; height: 600px; padding: 11px; border-radius: 54px; border: 0;
  background: linear-gradient(145deg, #4a4a4f 0%, #1c1c1f 18%, #0e0e10 50%, #2a2a2e 82%, #55555b 100%);
  box-shadow: 0 0 0 1.5px #5c5c62 inset, 0 0 0 5px #0a0a0b inset, 0 50px 90px -30px rgba(0,0,0,.6), 0 18px 40px -20px rgba(0,0,0,.5);
  color: #f5f5f5;
}
.phone-btn { position: absolute; width: 4px; border-radius: 2px; background: linear-gradient(90deg, #2a2a2d, #5a5a60); }
.pb-silent { left: -3px; top: 112px; height: 26px; }
.pb-vol1 { left: -3px; top: 160px; height: 52px; }
.pb-vol2 { left: -3px; top: 222px; height: 52px; }
.pb-power { right: -3px; left: auto; top: 178px; height: 78px; background: linear-gradient(270deg, #2a2a2d, #5a5a60); }
.phone .phone-screen { position: relative; height: 100%; border-radius: 44px; overflow: hidden; background: #000; padding: 0; gap: 0; display: flex; flex-direction: column; color: #f5f5f5; }
.phone-island { position: absolute; top: 11px; left: 50%; width: 96px; height: 28px; margin-left: -48px; border-radius: 20px; background: #000; z-index: 5; box-shadow: 0 0 0 1px #111; }
.ph-status { display: flex; justify-content: space-between; align-items: center; padding: 15px 26px 0 30px; height: 46px; font-size: 13px; font-weight: 600; flex: none; }
.ph-status-icons { display: flex; gap: 5px; font-size: 11px; }
.ph-header { display: flex; justify-content: space-between; align-items: center; padding: 4px 14px 8px; flex: none; }
.ph-handle { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; max-width: 75%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-header-icons { display: flex; gap: 16px; font-size: 17px; }
.ph-scroll { position: relative; flex: 1; overflow: hidden; }
.ph-scroll-inner { padding: 4px 14px 0; animation: feedScroll 22s ease-in-out 2.5s infinite; }
@keyframes feedScroll { 0%, 18% { transform: translateY(0); } 50%, 68% { transform: translateY(-210px); } 100% { transform: translateY(0); } }
.phone:hover .ph-scroll-inner { animation-play-state: paused; }
.phone .ph-profile { display: flex; align-items: center; gap: 16px; margin: 0; }
.phone .ph-avatar { width: 80px; height: 80px; padding: 3px; border-radius: 50%; flex: none; display: block; box-shadow: none; background: conic-gradient(from 210deg, #feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75); }
.phone .ph-avatar > span { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; overflow: hidden; border: 3px solid #000; background: #222; color: var(--gold); font-weight: 700; }
.phone .ph-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.phone .ph-stats { flex: 1; display: flex; justify-content: space-around; gap: 6px; }
.phone .ph-stats span { align-items: center; }
.phone .ph-stats b { font-size: 15px; color: #fff; }
.phone .ph-stats small { font-size: 11px; color: #c7c7c7; }
.phone .ph-name { font-size: 13px; font-weight: 600; margin-top: 10px; color: #fff; }
.phone .ph-bio { font-size: 12px; color: #c7c7c7; margin-top: 1px; }
.ph-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; }
.phone .ph-btn { display: block; text-align: center; font-size: 12.5px; font-weight: 600; padding: 7px 4px; border-radius: 8px; background: #262626; color: #fff; transition: filter var(--t-fast) var(--ease); }
.phone .ph-btn:hover { filter: brightness(1.2); }
.phone .ph-btn-main { background: var(--gold); color: #17120a; }
.ph-highlights { display: flex; gap: 14px; margin-top: 14px; }
.ph-highlights span { width: 54px; height: 54px; border-radius: 50%; overflow: hidden; border: 1.5px solid #3a3a3a; padding: 2px; flex: none; }
.ph-highlights img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.ph-tabs { display: grid; grid-template-columns: repeat(3, 1fr); margin: 14px -14px 0; border-top: 1px solid #262626; text-align: center; font-size: 15px; color: #8e8e8e; }
.ph-tabs i { padding: 9px 0; }
.ph-tabs .is-on { color: #fff; box-shadow: 0 -1px 0 #fff inset; }
.phone .ph-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin: 0 -14px; border-radius: 0; }
.phone .ph-tile { aspect-ratio: 4 / 5; background: #1a1a1a; }
.ph-nav { display: flex; justify-content: space-around; align-items: center; height: 54px; padding: 0 10px 8px; border-top: 1px solid #1f1f1f; background: #000; font-size: 18px; flex: none; position: relative; z-index: 2; }
.ph-nav-me { width: 24px; height: 24px; border-radius: 50%; overflow: hidden; background: #333; border: 1.5px solid #fff; }
.ph-nav-me img { width: 100%; height: 100%; object-fit: cover; }
.phone-home { position: absolute; bottom: 7px; left: 50%; width: 112px; height: 4px; margin-left: -56px; border-radius: 3px; background: #f5f5f5; opacity: .85; z-index: 3; }
.phone-glare { position: absolute; inset: 0; z-index: 4; pointer-events: none; border-radius: inherit; background: linear-gradient(115deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.03) 22%, transparent 40%); }
@media (max-width: 520px) { .phone { width: 270px; height: 556px; } }

/* ============================================================
   "Também presente em" — no estilo do site original, com movimento leve
   ============================================================ */
.presence-band { padding: 40px 0 44px; text-align: center; }
.presence-title { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.presence-row { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 20px 56px; margin-top: 20px; }
.presence-item { display: grid; place-items: center; height: 64px; padding: 0 10px; animation: presenceFloat 6s ease-in-out infinite; animation-delay: calc(var(--i) * -2s); transition: transform var(--t) var(--ease); }
.presence-item img { height: 40px; width: auto; transition: transform 300ms var(--ease), filter 300ms var(--ease); }
.presence-item:hover img { transform: scale(1.08); }
.presence-item .logo-dark { display: none; }
[data-theme="dark"] .presence-item .logo-light { display: none; }
[data-theme="dark"] .presence-item .logo-dark { display: block; }
@keyframes presenceFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }
@media (max-width: 520px) { .presence-row { gap: 16px 28px; } .presence-item img { height: 30px; } }
@media (prefers-reduced-motion: reduce) { .ph-scroll-inner { animation-duration: 40s; } }
.phone .ph-stats b { white-space: nowrap; font-size: 14px; }
.phone .ph-stats small { white-space: nowrap; }
.fc-2 { top: 40%; right: -6%; }
@media (max-width: 1100px) { .fc-2 { right: 0; } }

.card-id .card-meta { flex-wrap: nowrap; white-space: nowrap; overflow: hidden; }
.card-id .card-meta > span:first-child { flex: none; }
.card-id .card-meta .niche { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* ============================================================
   Assinatura: linhas douradas de crescimento
   ============================================================ */
.growth-lines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.gl-line { fill: none; stroke-width: 1.4; opacity: calc(.75 - var(--i) * .1); stroke-dasharray: 2200; stroke-dashoffset: 2200; animation: glDraw 2.6s var(--ease) forwards; animation-delay: calc(.2s + var(--i) * .18s); }
.gl-pulse { fill: none; stroke: var(--gold-hi); stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 26 974; stroke-dashoffset: 1000; opacity: 0; filter: drop-shadow(0 0 6px var(--gold)); animation: glPulse calc(7s + var(--i) * 1.3s) linear infinite; animation-delay: calc(2.4s + var(--i) * 1.1s); }
@keyframes glDraw { to { stroke-dashoffset: 0; } }
@keyframes glPulse { 0% { stroke-dashoffset: 1000; opacity: 0; } 6% { opacity: 1; } 85% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 0; } }
:root .growth-lines { opacity: .55; }
:root[data-theme="dark"] .growth-lines { opacity: .9; }
.hero .growth-lines { -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,.25), #000 55%); mask-image: linear-gradient(to right, rgba(0,0,0,.25), #000 55%); }
.page-head.has-growth { isolation: isolate; }
.page-head.has-growth .growth-lines { z-index: -1; opacity: .45; -webkit-mask-image: linear-gradient(to left, #000, transparent 75%); mask-image: linear-gradient(to left, #000, transparent 75%); }
.hero-lite { position: relative; isolation: isolate; overflow: hidden; }
.cta-band .growth-lines { opacity: .5; }
@media (prefers-reduced-motion: reduce) {
  .gl-line { animation: none; stroke-dashoffset: 0; }
  .gl-pulse { animation-duration: calc(14s + var(--i) * 2s); }
}

/* Faixa de nichos com contas disponíveis */
.niche-strip { padding: 18px 0; border-bottom: 1px solid var(--border); overflow: hidden; }
.niche-strip .marquee-track { gap: 10px; }
.niche-strip a { flex: none; display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); font-size: 14px; color: var(--text-2); white-space: nowrap; transition: border-color var(--t) var(--ease), color var(--t) var(--ease); }
.niche-strip a:hover { border-color: var(--gold); color: var(--text); }
.niche-strip a b { font-size: 12px; color: var(--gold); font-weight: 600; }
/* Celular: detalhes do perfil do Instagram */
.hero-visual { flex-direction: column; align-items: center; }
.phone-caption { margin-top: 14px; font-size: 12px; color: var(--muted); text-align: center; }
.ph-handle { gap: 10px; font-size: 16px; }
.ph-back { font-size: 15px; }
.phone .ph-stats { justify-content: space-evenly; }
.phone .ph-stats span { text-align: center; }
.ph-category { font-size: 12px; color: #a8a8a8; margin-top: 1px; }
.phone .ph-bio { color: #f5f5f5; font-size: 12px; line-height: 1.35; margin-top: 2px; }
.ph-link { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: #e0f1ff; margin-top: 3px; }
.ph-link i { font-size: 10px; transform: rotate(-45deg); }
.phone .ph-actions { grid-template-columns: 1fr 1fr 32px; }
.phone .ph-btn-main { background: #0095f6; color: #fff; }
.phone .ph-btn-icon { display: grid; place-items: center; padding: 0; font-size: 12px; }
.phone .ph-tile { position: relative; }
.ph-reel { position: absolute; top: 6px; right: 6px; font-size: 11px; color: #fff; filter: drop-shadow(0 1px 2px rgba(0,0,0,.6)); }
.phone .ph-avatar { box-shadow: 0 0 0 0 rgba(214, 41, 118, .5); animation: storyPulse 3.2s ease-out infinite; }
@keyframes storyPulse { 0% { box-shadow: 0 0 0 0 rgba(214, 41, 118, .45); } 70%, 100% { box-shadow: 0 0 0 10px rgba(214, 41, 118, 0); } }
.phone { transform-style: flat; }
.phone .ph-scroll { transform: translateZ(0); }

.phone .ph-tile { animation: none; }

/* ============================================================
   TOPO v3 — cena de montanhas (noite no tema escuro, simples no claro)
   ============================================================ */
.hero::before, .hero::after { display: none; }            /* sem grade e sem brilho do cursor */
.scene { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.scene-svg { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; }
.scene [data-depth] { transform: translate3d(calc(var(--px, 0) * var(--k, 0) * 1px), calc(var(--py, 0) * var(--k, 0) * 1px), 0); transition: transform 900ms cubic-bezier(.2, .7, .2, 1); }
.scene [data-depth="0.15"] { --k: 4; } .scene [data-depth="0.25"] { --k: 7; } .scene [data-depth="0.3"] { --k: 9; }
.scene [data-depth="0.45"] { --k: 12; } .scene [data-depth="0.5"] { --k: 14; } .scene [data-depth="0.7"] { --k: 18; } .scene [data-depth="1"] { --k: 24; }

/* Tema escuro: noite */
[data-theme="dark"] .hero { background: #0b0b0d; }
[data-theme="dark"] .scene .m1 { fill: #2c2c31; }
[data-theme="dark"] .scene .m2 { fill: #222227; }
[data-theme="dark"] .scene .m3 { fill: #19191c; }
[data-theme="dark"] .scene .m4 { fill: #111113; }
[data-theme="dark"] .scene .mist { fill: #e6dcc6; opacity: .10; }
.mist-a { animation: mistDrift 28s ease-in-out infinite alternate; }
.mist-b { animation: mistDrift 36s ease-in-out infinite alternate-reverse; }
@keyframes mistDrift { to { transform: translateX(120px); } }
.twinkle { animation: twinkle 4.5s ease-in-out infinite; animation-delay: var(--d); }
@keyframes twinkle { 50% { opacity: .15; } }
.lua { animation: luaFloat 9s ease-in-out infinite; transform-box: fill-box; }
@keyframes luaFloat { 50% { transform: translateY(-4px); } }
/* a última camada se funde com o fundo da página logo abaixo */
[data-theme="dark"] .hero { border-bottom: 1px solid var(--border); }

/* Tema claro: bem mais simples — só montanhas suaves, sem céu noturno */
:root:not([data-theme="dark"]) .scene .sc-night { display: none; }
:root:not([data-theme="dark"]) .hero { background: #fbfaf7; }
:root:not([data-theme="dark"]) .scene .m1 { fill: #f2eee6; }
:root:not([data-theme="dark"]) .scene .m2 { fill: #ece6da; }
:root:not([data-theme="dark"]) .scene .m3 { fill: #e6dfd0; }
:root:not([data-theme="dark"]) .scene .m4 { fill: #f7f4ee; }

/* Legibilidade do texto sobre a cena */
.hero .hero-copy { position: relative; }
[data-theme="dark"] .hero h1 { text-shadow: 0 2px 24px rgba(0, 0, 0, .5); }
@media (max-width: 959px) { .scene-svg { height: 100%; } }
@media (max-width: 640px) { .scene .lua { display: none; } }
@media (prefers-reduced-motion: reduce) { .scene [data-depth] { transform: none; } .mist-a, .mist-b { animation-duration: 60s; } }
/* Estrelas: o céu gira bem devagar (movimento constante => linear) */
.stars-drift { transform-box: view-box; transform-origin: 50% 160%; animation: skyTurn 140s linear infinite; }
@keyframes skyTurn { from { transform: rotate(-3deg); } to { transform: rotate(3deg); } }
.stars-drift { animation-direction: alternate; }
.twinkle { animation-duration: 6s; animation-timing-function: ease-in-out; }
@media (prefers-reduced-motion: reduce) { .stars-drift { animation-duration: 480s; } }
/* parallax: transform definido direto em cada camada pelo JS */
.scene [data-depth] { transform: none; transition: transform 900ms cubic-bezier(0.23, 1, 0.32, 1); will-change: transform; }
/* ============================================================
   "Como funciona a contratação" — editorial, com as linhas de crescimento ao fundo
   ============================================================ */
.process { position: relative; isolation: isolate; overflow: hidden; padding: 64px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.process-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.process-bg .growth-lines { opacity: .45; -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 45%); mask-image: linear-gradient(to right, transparent 0%, #000 45%); }
[data-theme="dark"] .process-bg .growth-lines { opacity: .6; }
.process-grid { display: grid; gap: 32px; }
@media (min-width: 960px) { .process-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; align-items: start; } }
.process-intro h2 { font-size: clamp(26px, 3.2vw, 38px); letter-spacing: -.03em; line-height: 1.1; margin-top: 12px; max-width: 14ch; }
.process-intro p { color: var(--text-2); margin-top: 14px; max-width: 42ch; }
.process-link { display: inline-flex; gap: 6px; margin-top: 18px; font-weight: 600; color: var(--gold); }
.process-link span { transition: transform 200ms cubic-bezier(0.23, 1, 0.32, 1); }
@media (hover: hover) and (pointer: fine) { .process-link:hover span { transform: translateX(3px); } }
.process-list { list-style: none; border-top: 1px solid var(--border-strong); }
.process-list li { position: relative; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 4px 20px; padding: 22px 0; border-bottom: 1px solid var(--border-strong); }
@media (min-width: 700px) { .process-list li { grid-template-columns: 92px minmax(0, 1fr) auto; align-items: baseline; } }
.process-list li::after { content: ""; position: absolute; left: 0; bottom: -1px; height: 1px; width: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform 500ms cubic-bezier(0.23, 1, 0.32, 1); }
@media (hover: hover) and (pointer: fine) { .process-list li:hover::after { transform: scaleX(1); } }
.process-step { font-size: 13px; font-weight: 600; color: var(--gold); letter-spacing: .02em; padding-top: 3px; }
.process-list h3 { font-size: 19px; letter-spacing: -.015em; }
.process-list p { color: var(--muted); font-size: 15px; margin-top: 4px; max-width: 46ch; }
.process-who { grid-column: 2; font-size: 13px; color: var(--text-2); white-space: nowrap; }
@media (min-width: 700px) { .process-who { grid-column: auto; } }
/* Estrelas: movimento visível e calmo em qualquer configuração do sistema */
.stars-drift { animation: skyTurn 70s ease-in-out infinite alternate !important; }
@keyframes skyTurn { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
.twinkle { animation: twinkle 5s ease-in-out infinite !important; animation-delay: var(--d) !important; }
/* Tema claro do topo: montanhas em tons de areia mais fortes + linhas douradas correndo */
.hero-lines { position: absolute; inset: 0; display: none; }
:root:not([data-theme="dark"]) .hero-lines { display: block; }
:root:not([data-theme="dark"]) .hero-lines .growth-lines { opacity: .9; -webkit-mask-image: linear-gradient(to right, transparent 5%, #000 50%); mask-image: linear-gradient(to right, transparent 5%, #000 50%); }
:root:not([data-theme="dark"]) .hero { background: #f8f4ec; }
:root:not([data-theme="dark"]) .scene .m1 { fill: #e9dfcb; }
:root:not([data-theme="dark"]) .scene .m2 { fill: #ddcdb0; }
:root:not([data-theme="dark"]) .scene .m3 { fill: #cdb994; }
:root:not([data-theme="dark"]) .scene .m4 { fill: #efe7d8; }
/* ============================================================
   Títulos com Bricolage Grotesque (personalidade sem mudar o resto)
   ============================================================ */
:root { --font-display: "Bricolage Grotesque", "Geist", system-ui, sans-serif; }
.intro h1, .hero h1, .page-head h1, .process-intro h2, .cta-band h2, .section-head h2, .catalog-head h2, .profile-head h1, .app-head h1, .auth-card h1 {
  font-family: var(--font-display); font-optical-sizing: auto; font-variation-settings: "wdth" 100;
}
.hero h1 { font-weight: 700; letter-spacing: -.035em; line-height: 1.02; font-size: clamp(34px, 5.2vw, 60px); }
.hero h1 em { display: block; font-weight: 600; letter-spacing: -.03em; }
.intro h1 em::after { display: none; }                 /* sem o sublinhado animado */
.process-intro h2, .cta-band h2 { font-weight: 700; letter-spacing: -.035em; }
.hero .btn-outline { background: var(--surface); }

/* ============================================================
   CELULAR: topo compacto, fundo proporcional e efeitos leves
   ============================================================ */
/* Brilho das linhas sem filtro (filtro animado pesa no celular) */
.gl-pulse { filter: none; stroke-width: 2.8; }

@media (max-width: 760px) {
  .hero { padding: 28px 0 0; min-height: 0; }
  .hero h1 { font-size: clamp(30px, 8.6vw, 38px); }
  .hero .lead { font-size: 15px; margin-top: 12px; }
  .hero .cta-row { margin-top: 18px; }
  .hero-numbers { margin-top: 20px; padding-top: 14px; gap: 6px 22px; }
  .hero-numbers dd { font-size: 22px; }
  /* fundo só na parte de cima, montanhas proporcionais */
  .scene { bottom: auto; height: 560px; }
  .scene-svg { height: 100%; }
  [data-theme="dark"] .hero { background: linear-gradient(#0b0b0d, #0b0b0d) top / 100% 560px no-repeat, var(--bg); }
  /* celular de demonstração: menor e mostrando só a parte de cima */
  .hero-visual { margin-top: 18px; padding: 0; height: 330px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 70%, transparent); mask-image: linear-gradient(#000 70%, transparent); }
  .phone { width: 250px; height: 520px; animation: none; transform: none; }
  .float-card, .phone-caption { display: none; }
  /* menos trabalho para o celular */
  .scene .mist { display: none; }
  .stars-drift circle:nth-child(n+50) { display: none; }
  .scene [data-depth] { will-change: auto; transition: none; }
  .process { padding: 44px 0; }
  .process-intro h2 { font-size: 28px; }
  .process-list li { grid-template-columns: 1fr; gap: 2px; padding: 18px 0; }
  .process-who { grid-column: auto; margin-top: 6px; }
  .presence-band { padding: 28px 0 32px; }
  .cta-band { padding: 48px 0; }
  .cta-band .cta-row .btn { width: 100%; }
}
@media (max-width: 520px) { .presence-row { gap: 12px 20px; flex-wrap: nowrap; } .presence-item { padding: 0 2px; height: 48px; } .presence-item img { height: 23px; } }

/* Cartões mais compactos no celular */
@media (max-width: 560px) {
  .cards { gap: 10px; }
  .card-head { padding: 12px 12px 0; gap: 10px; }
  .card .card-avatar { width: 46px; height: 46px; padding: 2px; }
  .card-pf { width: 19px; height: 19px; font-size: 10px; }
  .card-id .card-title { font-size: 15px; }
  .card .card-body { padding: 8px 12px 0; }
  .card .card-flag { margin-bottom: 4px; }
  .card-audience strong { font-size: 19px; }
  .card-metric { margin-top: 6px; padding-top: 6px; }
  .card-foot { margin-top: 10px; padding: 10px 12px; }
  .card-foot .price { font-size: 18px; }
  .card-foot .btn-sm { --btn-h: 32px; }
}
/* ============================================================
   MENOS "CARA DE IA" (revisão com a skill frontend-design)
   ============================================================ */
/* Títulos: Archivo levemente condensada, uma só cor */
:root { --font-display: "Archivo", "Geist", system-ui, sans-serif; }
.intro h1, .hero h1, .page-head h1, .process-intro h2, .cta-band h2, .section-head h2, .catalog-head h2, .profile-head h1, .app-head h1, .auth-card h1 {
  font-family: var(--font-display); font-stretch: 85%; font-variation-settings: "wdth" 85;
}
.hero h1 { font-weight: 800; letter-spacing: -.02em; line-height: .98; font-size: clamp(36px, 5.6vw, 66px); max-width: 13ch; }
.hero h1, .intro h1 { color: var(--text); }
.hero-note { margin-top: 22px; font-size: 14px; color: var(--muted); }
.process-intro h2, .cta-band h2, .section-head h2 { font-weight: 800; letter-spacing: -.02em; }

/* Rótulos em frase normal, sem CAIXA ALTA espaçada */
.fgroup legend, .fgroup .fgroup-label, .presence-title, .presence-band .presence-label { text-transform: none; letter-spacing: 0; font-size: 13px; font-weight: 600; color: var(--text-2); }

/* Blocos de texto sem o "kit" de cartões iguais */
.grid-3 > .panel, .grid-2 > .panel { background: none; border: 0; border-radius: 0; border-top: 1px solid var(--border-strong); padding: 18px 4px 0 0; }
.grid-3 > a.panel:hover, .grid-2 > a.panel:hover { border-top-color: var(--gold); }

/* Cartões: só a borda responde ao mouse (sem levantar/inclinar) */
.card:hover, .cards .card:hover { transform: none !important; box-shadow: none; }
.cards .card { transform: none !important; }
/* ============================================================
   Céu: camada HTML própria que gira devagar (funciona no celular)
   ============================================================ */
.sky { position: absolute; inset: 0; overflow: hidden; }
.sky-svg { position: absolute; left: -15%; top: -15%; width: 130%; height: 130%; transform-origin: 50% 150%; animation: skyRotate 55s ease-in-out infinite alternate; will-change: transform; }
@keyframes skyRotate { from { transform: rotate(-5deg); } to { transform: rotate(5deg); } }
:root:not([data-theme="dark"]) .sky { display: none; }
@media (max-width: 760px) {
  .sky-svg { left: -60%; width: 220%; animation-duration: 40s; }
  .sky-svg circle:nth-child(n+70) { display: none; }
}

/* ============================================================
   Linhas douradas também no modo escuro, com mais brilho
   ============================================================ */
[data-theme="dark"] .hero-lines { display: block; }
[data-theme="dark"] .hero-lines .growth-lines { opacity: .85; -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 45%); mask-image: linear-gradient(to right, transparent 0%, #000 45%); }
[data-theme="dark"] .hero-lines .gl-line { stroke-width: 1.6; }
[data-theme="dark"] .hero-lines .gl-pulse { stroke: #f3d9a0; stroke-width: 3; }
@media (min-width: 761px) and (hover: hover) {
  [data-theme="dark"] .hero-lines .gl-pulse { filter: drop-shadow(0 0 5px rgba(231, 204, 146, .9)); }
}

/* ============================================================
   Celular de demonstração no celular: inteiro, menor, de lado,
   com as contas em destaque ao lado
   ============================================================ */
@media (max-width: 760px) {
  .hero-visual {
    height: auto !important; overflow: visible !important; -webkit-mask-image: none !important; mask-image: none !important;
    display: grid !important; grid-template-columns: 170px minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; gap: 12px 14px;
    margin-top: 26px; padding: 0 0 32px !important;
  }
  .phone {
    grid-row: 1 / span 2; width: 272px !important; height: 560px !important;
    transform: scale(.625) rotate(-3deg) !important; transform-origin: top left;
    margin: 0 -102px -210px 0; animation: none !important;
  }
  .float-card { display: flex !important; position: static !important; width: auto; animation: none !important; padding: 10px; gap: 8px; flex-wrap: wrap; align-self: end; }
  .fc-2 { align-self: start; }
  .fc-avatar { width: 34px; height: 34px; }
  .fc-body { min-width: 0; flex: 1 1 calc(100% - 42px); }
  .fc-price { width: 100%; padding-left: 42px; font-size: 14px; }
  .phone-caption { display: none; }
}
@media (max-width: 360px) {
  .hero-visual { grid-template-columns: 150px minmax(0, 1fr); }
  .phone { transform: scale(.55) rotate(-3deg) !important; margin: 0 -122px -252px 0; }
}
/* ============================================================
   CARTÃO v4 — mini "print" do perfil no topo do cartão
   ============================================================ */
.card { overflow: hidden; }
.card-head { display: none; }
.card-shot { position: relative; height: 158px; margin: 8px 8px 0; border-radius: 12px; overflow: hidden; background: #000; color: #f5f5f5; border: 1px solid #1f1f22; }
.card-shot.has-print img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform 500ms cubic-bezier(0.23, 1, 0.32, 1); }
@media (hover: hover) and (pointer: fine) { .card:hover .card-shot.has-print img { transform: scale(1.03); } }
.card-shot::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 26px; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); pointer-events: none; }
.mini-profile { padding: 9px 12px 0; font-size: 11px; line-height: 1.25; }
.mp-top { display: flex; justify-content: space-between; align-items: center; }
.mp-handle { display: flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; max-width: 75%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-icons { display: flex; gap: 10px; font-size: 12px; color: #ddd; }
.mp-row { display: flex; align-items: center; gap: 14px; margin-top: 9px; }
.mp-avatar { width: 50px; height: 50px; padding: 2px; border-radius: 50%; flex: none; background: conic-gradient(from 210deg, #feda75, #fa7e1e, #d62976, #962fbf, #4f5bd5, #feda75); }
.mp-avatar > span { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; overflow: hidden; border: 2px solid #000; background: #262626; color: var(--gold); font-weight: 700; font-size: 13px; }
.mp-avatar img { width: 100%; height: 100%; object-fit: cover; }
.mp-stat { display: flex; flex-direction: column; align-items: center; }
.mp-stat b { font-size: 13px; color: #fff; white-space: nowrap; }
.mp-stat small { font-size: 9.5px; color: #bdbdbd; white-space: nowrap; }
.mp-name { margin-top: 7px; font-weight: 600; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mp-bio { color: #a8a8a8; }
.mp-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 7px; }
.mp-btn { text-align: center; font-size: 10.5px; font-weight: 600; padding: 4px 0; border-radius: 6px; background: #262626; }
.mp-main { background: #0095f6; color: #fff; }
.card-shot .card-flag { position: absolute; left: 8px; top: auto; bottom: 8px; z-index: 2; margin: 0; background: rgba(12, 12, 13, .85); }
.card-fav-btn { position: absolute; top: 16px; right: 16px; z-index: 3; background: rgba(12, 12, 13, .7); border-color: rgba(255, 255, 255, .15); color: #f5f5f5; }
.card-fav-btn[aria-pressed="true"] { color: #ff5a5a; }
.card .card-body { padding: 12px 16px 0; }
.card .card-body .card-id { margin-bottom: 8px; }
.card .card-body .card-meta { display: flex; }
@media (max-width: 560px) {
  .card-shot { height: 138px; margin: 6px 6px 0; }
  .mini-profile { padding-top: 8px; }
  .mp-avatar { width: 44px; height: 44px; }
  .card .card-body { padding: 10px 12px 0; }
  .card-fav-btn { top: 12px; right: 12px; }
}
.card-shot .mp-icons { visibility: hidden; }

.mp-row { gap: 8px; }
.mp-row .mp-stat { flex: 1; min-width: 0; }
.mp-avatar { margin-right: 4px; }

/* ===== Anunciar: leitura do print e recorte da foto ===== */
.print-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:24px;align-items:start}
.print-grid:has(.crop-tool[hidden]){grid-template-columns:1fr}
.ocr-status{margin-top:12px;font-size:14px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--gold-soft);color:var(--text)}
.ocr-status.is-busy::before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px;border:2px solid var(--gold-line);border-top-color:var(--gold);border-radius:50%;animation:ocrSpin .8s linear infinite}
.ocr-status.is-ok{background:var(--success-soft)}
.ocr-status.is-warn{background:var(--warning-soft)}
@keyframes ocrSpin{to{transform:rotate(360deg)}}
.ocr-found{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;font-size:14px}
.ocr-found li{display:flex;gap:8px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border)}
.ocr-found b{min-width:120px;font-weight:600}
input.ocr-filled{border-color:var(--gold-line);box-shadow:0 0 0 3px var(--gold-soft)}
.crop-label{font-size:14px;font-weight:600;margin:0 0 8px}
.crop-stage{position:relative;width:100%;line-height:0;border-radius:var(--radius-sm);overflow:hidden;background:var(--border);touch-action:none}
.crop-stage canvas{display:block;max-width:100%;margin:0 auto;cursor:crosshair}
.crop-ring{position:absolute;left:0;top:0;border-radius:50%;cursor:grab;box-shadow:0 0 0 2px var(--gold),0 0 0 9999px rgba(0,0,0,.45);outline:none;touch-action:none}
.crop-ring:focus-visible{box-shadow:0 0 0 3px var(--gold-hi),0 0 0 9999px rgba(0,0,0,.45)}
.crop-ring.is-drag{cursor:grabbing}
.crop-ctrl{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:13px;color:var(--muted)}
.crop-ctrl input[type=range]{flex:1;accent-color:var(--gold)}
.crop-out canvas{width:52px;height:52px;border-radius:50%;display:block;border:2px solid var(--gold-line)}
@media (max-width:760px){.print-grid{grid-template-columns:1fr}.crop-tool{max-width:340px}}
@media (prefers-reduced-motion:reduce){.ocr-status.is-busy::before{animation-duration:2s}}
.print-box{min-width:0}.print-grid>*{min-width:0}.crop-stage canvas{max-height:420px;width:auto;height:auto}

/* Celular do topo: perfil da própria Contas Prontas */
.phone .ph-avatar > span.ph-avatar-brand{background:#0c0c0d}.ph-avatar-brand .brand-mark{width:56%;height:56%}.ph-verified{color:#3897f0;font-size:.8em;margin-left:2px}
.app-main{min-width:0}
@media (max-width:1023px){.app{grid-template-columns:minmax(0,1fr)}.side-nav{min-width:0;overflow-x:auto}}
.crop-stage{width:fit-content;max-width:100%;margin-inline:auto}.crop-stage canvas{margin:0}
.footer-seo{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid var(--border-strong);border-radius:999px;color:var(--muted);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.04em}
.footer-seo:hover,.footer-seo:focus-visible{color:var(--gold);border-color:var(--gold-line)}
.keyword-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.keyword-list a{display:inline-block;padding:6px 12px;border:1px solid var(--border);border-radius:999px;color:var(--text);text-decoration:none;font-size:14px}
.keyword-list a:hover,.keyword-list a:focus-visible{border-color:var(--gold-line);color:var(--gold)}
