@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/google-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Google Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/google-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Design tokens */
:root {
  /* Brand */
  --color-brand-red: #e4002b;
  --color-brand-blue: #1f87ed;
  --color-brand-blue-dark-ct: #0c6ecf;  /* único azul-escuro AA */
  --color-brand-blue-light: #f2f9ff;
  --color-brand-green: #25d366;  /* verde WhatsApp */
  --color-success: #2e9e2e;      /* estados de sucesso */
  --color-success-soft: #e3f5e3; /* fundo verde claro */
  --color-instruction: var(--color-brand-blue-dark-ct);  /* alias → azul-escuro único */

  /* Surface */
  --color-bg: #ffffff;                 /* página — branco puro */
  --color-surface: #ffffff;            /* superfície branca */
  --color-surface-soft: #fbfbfb;       /* painel de seção */
  --color-surface-transparent: rgba(251, 251, 251, 0.4);
  --color-track: #f0f0f0;              /* trilho do toggle de planos */

  /* Text */
  --color-text: #1d1d1f;
  --color-text-soft: var(--color-text);  /* alias semântico p/ títulos */
  --color-text-subtle: rgba(29, 29, 31, 0.75);
  --color-text-muted: #4d4d4d;
  --color-on-brand: #fff;              /* texto/ícone branco sobre fundo de marca/escuro */

  /* Contraste (ct) — valores p/ WCAG AA */
  --ct-disabled:           #767676;    /* texto/ícone "não incluído" */
  --ct-placeholder:        #6b6b6b;    /* placeholder do input */
  --ct-ghost-red-bg:       #fef5f7;    /* fundo opaco sutil do .ghost-btn--red */
  --ct-ghost-red-bg-hover: #fdedf0;    /* idem, hover */

  /* Lines */
  --color-divider: rgb(221 221 221 / 0.4);
  --color-border: rgba(0, 0, 0, 0.2);
  --color-border-soft: rgba(0, 0, 0, 0.05);
  --color-border-subtle: rgba(0, 0, 0, 0.12);
  --color-hover-tint: rgba(135, 135, 135, 0.1);  /* preenchimento de hover (menubar) */
  --color-pill-border: color-mix(in srgb, var(--color-instruction) 10%, transparent);

  /* Spacing */
  --space-2: 2px;
  --space-4: 4px;
  --space-6: 6px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-40: 40px;
  --space-48: 48px;
  --space-56: 56px;
  --space-64: 64px;

  /* Radius */
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-16: 16px;     /* degrau entre lg(12) e xl(24) */
  --radius-xl: 24px;
  --radius-pill: 400px;

  /* Shadow */
  --shadow-pill: 0 2px 12px -2px color-mix(in srgb, var(--color-instruction) 10%, transparent);
  --shadow-lift: 0 2px 8px -2px rgba(0, 0, 0, 0.12);        /* hover-lift de card */
  --shadow-float: 0 16px 48px -16px rgba(0, 0, 0, 0.2);     /* elevação alta */
  --shadow-cta-rest: 0 2px 2px -1.5px rgba(0, 0, 0, 0.614); /* repouso do CTA vermelho */

  /* Motion — durações + curvas reutilizáveis */
  --dur-press:  0.06s;   /* feedback de :active (snap) */
  --dur-quick:  0.15s;   /* hover de cor em links/texto */
  --dur-hover:  0.18s;   /* repouso→hover de botões */
  --dur-base:   0.2s;    /* micro-transição de cor/estado */
  --dur-media:  0.5s;    /* botão flutuante / carrossel */
  --dur-slow:   0.9s;    /* zoom de imagem no hover */
  --ease-out:       cubic-bezier(0.22, 1, 0.36, 1);  /* entrada/snap canônico */
  --ease-overshoot: cubic-bezier(0.16, 1, 0.3, 1);   /* reveal on-scroll / success */

  /* Typography — one family + one type scale */
  --font: "Google Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;

  --fs-display: 32px;
  --fs-hero:    40px;  /* hero headline — 32px on mobile */
  --fs-title:   24px;  /* card titles — 20px on mobile */
  --fs-lg:      20px;
  --fs-body:    16px;
  --fs-sm:      14px;
  --fs-xs:      12px;
  --fs-pill:    10px;  /* exclusivo da .btn-floating-pill — não reutilizar */

  --lh-tight:   1.03;
  --lh-snug:    1.1;
  --lh-base:    1.3;
  --lh-relaxed: 1.5;

  --tracking-title: -0.03em;  /* aperto proporcional */
  --tracking-label: -0.02em;
  --tracking-wide:  0.03em;

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  --content-max: 1120px;
  --content-narrow: 736px;   /* largura de leitura */
  --content-wide: 1008px;    /* grids/cards intermediários */
  --content-gutter: 24px;
}

/* Breakpoints — catálogo: 320/520/600/850/900 max; 901/980 min; 1080/700/395 feature-bar */

/* Reset + base */
*,
*::before,
*::after { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  /* reserve scrollbar gutter so scroll-lock doesn't shift the menubar */
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
  /* anchor offset so the fixed menubar doesn't cover section tops */
  scroll-padding-top: 144px;
}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font);
  font-optical-sizing: auto;  /* Google Sans tem eixo opsz */
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  font-feature-settings: "case" 1, "lnum" 1, "tnum" 1;
  /* tabular lining figures everywhere — prevents digit jitter */
  font-variant-numeric: tabular-nums lining-nums;
  /* better line breaking, avoids orphans; inherited by all copy */
  text-wrap: pretty;
}

/* Headings + short captions get `balance`; body stays `pretty` */
.panel-intro__title,
.trust-card__title,
.feature-card__title,
.fpanel__title,
.split-panel__title,
.payments-card__title,
.segments-card__title,
.features-wrapup__title,
.footer-contact__title,
.feature-card__subtitle,
.segments-card__subtitle,
.payments-card__subtitle,
.features-wrapup__subtitle {
  text-wrap: balance;
}

img, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

a { color: inherit; text-decoration: none; }

button { font: inherit; cursor: pointer; border: 0; background: transparent; }

p { margin: 0; }

/* Page shell — centered vertical stack */
.page {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-32);
  width: 100%;
  /* top padding clears the floating .menubar pill */
  padding: 104px var(--content-gutter) 80px;
  position: relative;
}

.page > section {
  width: 100%;
  max-width: var(--content-max);
}

/* Scroll reveal — gated on `.js`; content stays visible without JS */
.js .page > section:not(.hero),
.js .site-footer {
  opacity: 0.35;
  transform: translateY(32px);
  transition: opacity 0.4s ease, transform 0.45s var(--ease-overshoot);
}

.js .page > section.is-visible,
.js .site-footer.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .js .page > section:not(.hero),
  .js .site-footer {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.center-abs {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* Pill / Eyebrow */
.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  padding: var(--space-2) var(--space-12);
  border-radius: var(--radius-xl);
  background: var(--color-brand-blue-light);
  border: 1px solid var(--color-pill-border);
  box-shadow: var(--shadow-pill);
  color: var(--color-brand-blue-dark-ct);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-wide);
  line-height: var(--lh-snug);
  white-space: nowrap;
  align-self: flex-start;
}

/* Floating "Sem compromisso" pill above the hero CTA */
.btn-wrap {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.btn-floating-pill {
  position: absolute;
  top: -4px;
  right: 10px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2) var(--space-6);
  border-radius: var(--radius-xl);
  background: var(--color-brand-blue-dark-ct);
  color: var(--color-on-brand);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-pill);
  letter-spacing: var(--tracking-wide);
  line-height: var(--lh-snug);
  white-space: nowrap;
}

/* "Novidade" badge — solid blue pill, inline next to labels */
.badge-new {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-inline-start: var(--space-6);
  padding: var(--space-2) var(--space-8);
  border-radius: var(--radius-xl);
  background: var(--color-brand-blue-dark-ct);
  color: var(--color-on-brand);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-wide);
  line-height: var(--lh-snug);
  white-space: nowrap;
  text-decoration: none;
  vertical-align: middle;
}

/* Disabled variant — "não incluído" gray */
.badge-new--off {
  background: var(--ct-disabled);
}

/* Hero — flex column: [row: copy + image] then feature bar */
.hero {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
  align-items: stretch;
  margin-top: var(--space-32);
}

.hero__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-24);
  width: 100%;
}

.hero__copy {
  flex: 0 0 384px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  /* stretch so children fill the column width */
  align-items: stretch;
}

.hero__image {
  flex: 0 1 640px;
  aspect-ratio: 654 / 306;
  overflow: hidden;
  position: relative;
}

.hero__image img {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 95.4%;
  height: auto;
  max-width: none;
  object-fit: cover;
  transition: transform var(--dur-slow) ease;
}

/* Hover zoom — scale on top of the centering translate */
.hero__image:hover img { transform: translate(-50%, -50%) scale(1.01); }

.hero__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  margin: 0;
}

.hero__subtitle strong { font-weight: var(--fw-bold); }

.hero__cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-16);
  width: 100%;
  position: relative;
}

/* Feature bar */
.feature-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-24);
  min-height: 40px;
  width: 100%;
  padding: var(--space-8);
  border-radius: var(--radius-pill);
  background: var(--color-surface-soft);
}

.feature-bar__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  letter-spacing: var(--tracking-wide);
  color: var(--color-text);
  line-height: var(--lh-snug);
  white-space: nowrap;
}

.feature-bar__item img,
.feature-bar__item svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Sobe 1px para assentar oticamente na faixa de texto */
.feature-bar__icon { transform: translateY(-1px); }

/* Ícone cpu reduz a 16px p/ assentar com os demais */
.feature-bar__item .feature-bar__icon--cpu { width: 16px; height: 16px; }

/* "Plataforma segura": aperta o rótulo via margem negativa */
.feature-bar__item--snug { gap: 0; }
.feature-bar__item--snug .feature-bar__icon { margin-inline-end: calc(-1 * var(--space-2)); }

/* Trust card — absolute layout, image protrudes right */
.trust-card {
  position: relative;
  width: 100%;
  height: 313px;
  border-radius: var(--radius-xl);
  background: var(--color-surface-soft);
  overflow: hidden;
}

.trust-card__copy {
  position: absolute;
  left: var(--space-32);
  top: 50%;
  transform: translateY(-50%);
  width: 384px;
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

/* Testimonials marquee column — wide, room for zigzag swing */
.trust-card__media {
  position: absolute;
  top: 0;
  right: var(--space-32);
  bottom: 0;
  width: 512px;
  overflow: hidden;
}

.trust-card__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
  width: 100%;
  will-change: transform;
}

/* Standardized testimonial style — one rule for every screenshot */
.trust-card__shot {
  display: block;
  /* Fluid: up to 298px, scales down with zigzag clearance */
  width: min(298px, calc(100% - 40px));
  height: auto;
  border-radius: var(--radius-16);
  border: 1px solid var(--color-divider);
  box-shadow: 0 6px 20px -6px rgba(0, 0, 0, 0.12);
  background: var(--color-surface);
}

/* Zigzag: alternate horizontal offset, continuous across the cloned track */
.trust-card__track > .trust-card__shot:nth-child(odd)  { transform: translateX(-90px); }
.trust-card__track > .trust-card__shot:nth-child(even) { transform: translateX(90px); }

.trust-card__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  margin: 0;
}

.trust-card__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  text-wrap: pretty;
}

.trust-card__chip-label {
  display: block;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  letter-spacing: var(--tracking-label);
  color: var(--color-text-subtle);
  line-height: var(--lh-snug);
  margin-bottom: var(--space-8);
}

.trust-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
}

/* Chip (reusable) */
.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);  /* 14; steps to 12 on mobile */
  letter-spacing: var(--tracking-label);
  color: var(--color-text);
  line-height: var(--lh-snug);
  transition: box-shadow var(--dur-base) ease, transform var(--dur-base) ease;
}

/*
.chip:hover {
  box-shadow: var(--shadow-lift);
  transform: translateY(-1px);
}
*/

.chip__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.chip__icon img { width: 16px; height: 16px; }

/* Chip promocional — tema da Copa (amarelo #FFCC01 sobre verde #00A132) */
.chip--copa {
  /* Estrela de 5 pontas (SVG inline) reaproveitada nas 6 cópias */
  --copa-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpolygon points='50,0 61,35 98,35 68,57 79,91 50,70 21,91 32,57 2,35 39,35' fill='%23FFCC01'/%3E%3C/svg%3E");
  display: none;   /* chip da Copa oculto — remover p/ reexibir */
  position: relative;
  overflow: hidden;               /* recorta as estrelas no pill */
  isolation: isolate;             /* stacking local das estrelas */
  background: #00A132;
  color: var(--color-on-brand);
  padding: var(--space-4) var(--space-12);   /* respiro lateral, igual ao .pill */
}

/* 6 estrelas em duas camadas (::before/::after), 3 por camada */
.chip--copa::before,
.chip--copa::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-repeat: no-repeat;
  background-image: var(--copa-star), var(--copa-star), var(--copa-star);
}
.chip--copa::before {
  background-position: 16px 4px, 74px 16px, 126px 5px;
  background-size: 7px, 5px, 6px;
  /* cintila + deriva lenta, períodos distintos */
  animation: copa-twinkle 3s ease-in-out infinite,
             copa-drift-a 6s ease-in-out infinite;
}
.chip--copa::after {
  background-position: 46px 17px, 100px 4px, 152px 15px;
  background-size: 6px, 6px, 5px;
  animation: copa-twinkle 4.5s ease-in-out -1.5s infinite,
             copa-drift-b 7.5s ease-in-out -2s infinite;
}

@keyframes copa-twinkle {
  0%, 100% { opacity: 0.35; }
  50%      { opacity: 1; }
}
/* Deriva sutil: camadas flutuam em sentidos opostos */
@keyframes copa-drift-a {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50%      { transform: translate(1.5px, -2px) rotate(1.5deg); }
}
@keyframes copa-drift-b {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50%      { transform: translate(-1.5px, 1.5px) rotate(-1.5deg); }
}

@media (prefers-reduced-motion: reduce) {
  .chip--copa::before,
  .chip--copa::after { animation: none; opacity: 0.9; }
}

.chip--copa .chip__icon { font-size: 13px; line-height: 1; }

/* Integrations carousel */
.integrations {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  min-height: 128px;
  padding: var(--space-32) 0;
  border-radius: var(--radius-xl);
  width: 100%;
  overflow: hidden;
}

.integrations__label {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
  color: var(--color-text-muted);
  text-align: center;
}

.integrations__viewport {
  width: 100%;
  overflow: hidden;
}

/* On mobile the user scrolls the logos by hand */
@media (max-width: 850px) {
  .integrations__viewport {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .integrations__viewport::-webkit-scrollbar { display: none; }
}

.integrations__track {
  display: flex;
  align-items: center;
  width: max-content;       /* don't shrink — lets the track translate */
  will-change: transform;
}

/* Each logo cell — uniform height; divider is the left border */
.integrations__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 28px;
  padding: 0 var(--space-24);
  border-left: 1px solid var(--color-divider);
}

.integrations__logo img {
  display: block;
  max-width: none;
  /* width from each <img>; height auto preserves aspect ratio */
}

/* Stats — row of 6 individual cards */
.stats {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: var(--space-32);
  width: 100%;
}

.stats__item {
  flex: 1 1 0;
  min-width: 0;
  height: 128px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  padding: 0 var(--space-8);
  background: var(--color-surface-soft);
  border-radius: var(--radius-16);
  font-family: var(--font);
  color: var(--color-text);
  text-align: center;
}

.stats__value {
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}

.stats__label {
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-label);
}

/* Bot section — absolute layout, phones protrude below */
.bot-section {
  position: relative;
  width: 100%;
  /* Height scales with width (1120×757 ratio) */
  aspect-ratio: 1120 / 757;
  border-bottom: 1px solid var(--color-divider);
  overflow: hidden;
}

/* Centered intro shared by bot-section and showcase */
.panel-intro {
  position: absolute;
  top: 43.2px;
  left: 50%;
  transform: translateX(-50%);
  width: var(--content-narrow);
  max-width: calc(100% - 48px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  z-index: 1;
}

/* Center the pill here (base align-self is flex-start) */
.panel-intro .pill { align-self: center; }

.panel-intro__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  text-align: center;
  margin: 0;
}

.panel-intro__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  text-align: center;
}

.panel-intro__subtitle .strike { text-decoration: line-through; }

.panel-intro__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-8);
}

.bot-section__image {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: calc(736 / 1120 * 100%);
  aspect-ratio: 1422 / 1085; /* matches bot-phones.webp */
}

.bot-section__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform var(--dur-slow) ease;
}

.bot-section__image:hover img { transform: scale(1.01); }

/* Feature duo — two cards; text near top, image overflows bottom */
.feature-duo {
  display: flex;
  gap: var(--space-32);
  width: 100%;
  align-items: stretch;
}

.feature-card {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  height: 447px;
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.feature-card__copy {
  position: absolute;
  top: calc(50% - 160.5px);
  transform: translateY(-50%);
  left: 0;
  right: 0;
  padding: 0 var(--space-16);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-8);
  text-align: center;
  z-index: 1;
}

.feature-card__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  margin: 0;
}

.feature-card__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);  /* 16; steps to 14 on mobile */
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  margin: 0;
}

.feature-card__media {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

.feature-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform var(--dur-slow) ease;
}

.feature-card:hover .feature-card__media img { transform: scale(1.01); }

.feature-card__media--personalization {
  bottom: 0; /* flush on the card base */
  width: min(500px, 100% - 32px);
  aspect-ratio: 2179 / 1260; /* matches feature-personalization.png */
}

.feature-card__media--notification {
  top: 119.41px;
  width: 301.082px;
  aspect-ratio: 1225 / 1432; /* matches feature-notification.png */
}

/* Showcase — panel with copy + app video */
.showcase {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-24);
  width: 100%;
  padding: var(--space-40);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

/* copy flows in-column here (absolute in the bot-section) */
.showcase .panel-intro {
  position: static;
  transform: none;
  width: 100%;
  max-width: var(--content-narrow);
}

/* Media box — forma, sombra, hover e poster do vídeo */
.showcase__media {
  position: relative;
  max-width: 80%;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-float);
  transition: transform var(--dur-slow) ease;
}
.showcase__media:hover { transform: scale(1.01); }

.showcase__video {
  display: block;
  width: 300px;
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-xl);
}

/* desktop: reserva a altura final do vídeo antes de carregar */
@media (min-width: 901px) {
  .showcase__video { min-height: 651px; }
}

/* Poster placeholder — some em fade quando o vídeo toca (.is-video-ready) */
.showcase__video-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  border-radius: var(--radius-xl);
  opacity: 1;
  transition: opacity 0.6s ease;
  pointer-events: none;
}
.showcase__media.is-video-ready .showcase__video-poster { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  .showcase__video-poster { transition: none; }
}

.showcase__demo-link {
  display: block;
  width: 300px;
  max-width: 80%;
  padding: var(--space-8) 0;
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-pill);
  text-align: center;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--color-text-muted);
  text-decoration: none;
  transition: border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.showcase__demo-link:hover {
  border-color: var(--color-brand-red);
  color: var(--color-brand-red);
}

/* Shared bits for the feature sections below */

.center-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  max-width: var(--content-narrow);
  margin: 0 auto;
  text-align: center;
}
.center-intro .pill { align-self: center; }

/* Soft secondary button — .cta-primary pill shape, tinted surface */
.ghost-btn {
  width: 100%;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  letter-spacing: var(--tracking-wide);
  border: none;
  border-radius: var(--radius-pill);
  cursor: pointer;
  text-decoration: none;
  background: var(--color-surface-soft);
  transition: background-color var(--dur-hover) ease-out, box-shadow var(--dur-hover) ease-out,
              transform var(--dur-hover) ease-out;
  will-change: transform;
}

.ghost-btn:hover { transform: scale(1.005); }
.ghost-btn:active {
  transform: scale(0.995);
  transition: background-color var(--dur-press) ease-out, transform var(--dur-press) ease-out;
}
.ghost-btn:focus-visible { outline: none; }

.ghost-btn--red {
  color: var(--color-brand-red);
  background: var(--ct-ghost-red-bg);   /* fundo opaco sutil (AA) */
  /* fade do fundo mais suave que o hover padrão */
  transition: background-color 0.45s ease, transform var(--dur-hover) ease-out;
}
.ghost-btn--red:hover {
  background: var(--ct-ghost-red-bg-hover);
}
.ghost-btn--red:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-brand-red) 22%, transparent); }

/* Seta que desliza no hover, na cor do label */
.ghost-btn--red:not(.footer-contact__submit)::after {
  --ghost-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 17'%3E%3Cpath d='M12.1797 8C12.1797 7.83854 12.1484 7.6901 12.0859 7.55469C12.0234 7.41927 11.9297 7.28906 11.8047 7.16406L5.79688 1.28125C5.59375 1.08333 5.34635 0.984375 5.05469 0.984375C4.86719 0.984375 4.69271 1.03125 4.53125 1.125C4.36979 1.21875 4.23958 1.34635 4.14062 1.50781C4.04688 1.66406 4 1.83854 4 2.03125C4 2.32292 4.10938 2.57812 4.32812 2.79688L9.67969 8L4.32812 13.2031C4.10938 13.4271 4 13.6823 4 13.9688C4 14.1667 4.04688 14.3438 4.14062 14.5C4.23958 14.6562 4.36979 14.7812 4.53125 14.875C4.69271 14.9688 4.86719 15.0156 5.05469 15.0156C5.34635 15.0156 5.59375 14.9167 5.79688 14.7188L11.8047 8.83594C11.9349 8.71094 12.0286 8.58073 12.0859 8.44531C12.1484 8.30469 12.1797 8.15625 12.1797 8Z'/%3E%3C/svg%3E");
  content: "";
  width: 0;
  height: 17px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: var(--ghost-arrow);
          mask-image: var(--ghost-arrow);
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  /* `contain` → a seta escala uniforme do centro */
  -webkit-mask-size: contain;
          mask-size: contain;
  transition: width var(--dur-hover) ease-out, margin-left var(--dur-hover) ease-out;
}
.ghost-btn--red:not(.footer-contact__submit):hover::after {
  width: 16px;
  margin-left: var(--space-4);
}

.fpanel__copy .ghost-btn,
.split-panel__copy .ghost-btn {
  width: 108px;
  height: 32px;
  font-size: var(--fs-sm);
}

.fpanel__copy .ghost-btn.ghost-btn--red::after,
.split-panel__copy .ghost-btn.ghost-btn--red::after { content: none; }

.ghost-btn--blue {
  color: var(--color-instruction);
  background: color-mix(in srgb, var(--color-instruction) 7%, transparent);
}
.ghost-btn--blue:hover {
  background: color-mix(in srgb, var(--color-instruction) 11%, transparent);
  box-shadow: 0 4px 14px -6px color-mix(in srgb, var(--color-instruction) 40%, transparent);
}
.ghost-btn--blue:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-instruction) 22%, transparent); }

@media (prefers-reduced-motion: reduce) {
  .ghost-btn { transition: background-color var(--dur-hover) ease-out, box-shadow var(--dur-hover) ease-out; }
  .ghost-btn:hover,
  .ghost-btn:active { transform: none; }
  .ghost-btn--red:not(.footer-contact__submit)::after { transition: none; }
}

/* Split panel — copy + media side by side */
.fpanel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-48);
  width: 100%;
  margin-block: 28px;
}

.fpanel__copy {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 448px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-16);
}

.fpanel__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  margin: 0;
}

.fpanel__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
}

.fpanel__chips { display: flex; flex-wrap: wrap; gap: var(--space-8); width: 100%; }

.fpanel__media {
  flex: 1 1 0;
  min-width: 0;
  max-width: 544px;
  height: 352px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.fpanel__media img {
  display: block;
  width: auto;
  max-width: 82%;
  height: auto;
  max-height: 286px;
  border-radius: var(--radius-lg);
  transition: transform var(--dur-slow) ease;
}

.fpanel__media:hover img { transform: scale(1.01); }

/* Gestão completa — centered intro + device collage */
.gestao {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-32);
  width: 100%;
  padding: var(--space-32);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.gestao__media { width: 100%; max-width: 1024px; }
.gestao__media img { display: block; width: 100%; height: auto; }

/* Migração facilitada — centered CTA panel */
.migracao {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
  width: 100%;
  padding: var(--space-32) var(--space-40);
  border-radius: var(--radius-xl);
  background: var(--color-surface-soft);
}
.migracao__subtitle { max-width: var(--content-narrow); text-wrap: balance; }
.migracao .cta-primary { display: none; width: 266px; max-width: 100%; }

.migracao .panel-intro__title { font-size: var(--fs-title); }

@media (max-width: 900px) {
  /* image on top, copy + CTA below (DOM copy-first → column-reverse) */
  .fpanel { flex-direction: column-reverse; align-items: stretch; gap: var(--space-24); margin-block: var(--space-8); }
  .fpanel__copy { max-width: 100%; align-items: center; text-align: center; }
  .fpanel__copy .pill { align-self: center; }
  .fpanel__chips { justify-content: center; }
  /* Reset desktop media sizing; `flex: none` → media = image height */
  .fpanel__media,
  .fpanel--mobilidade .fpanel__media { flex: none; max-width: none; height: auto; padding: var(--space-16); }
  .fpanel__media img { width: 86%; max-width: min(420px, 86%); max-height: none; margin: 0 auto; }
}

/* Features — panel with intro + wrap of feature cards */
.features {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-32);
  padding: var(--space-32);
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  width: 100%;
}

.features__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  max-width: var(--content-narrow);
  text-align: center;
}

.features__intro .pill { align-self: center; }

/* Step the section header down to the card-title scale (--fs-title) */
.features .panel-intro__title { font-size: var(--fs-title); }

.features__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-8);
  width: 100%;
  max-width: var(--content-wide);
  margin: 0;
  padding: 0;
  list-style: none;
}

.feature-item {
  flex: 1 1 300px;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text);
  transition: box-shadow 0.4s ease, transform 0.4s ease;
}

/*
.feature-item:hover {
  box-shadow: var(--shadow-lift);
  transform: translateY(-1px);
}
*/

.feature-item__icon { width: 18px; height: 18px; flex-shrink: 0; }

/* Plans — pricing cards, horizontal scroll on mobile */
.plans {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-40);
  width: 100%;
  /* desktop only — reset on mobile */
  margin-block: var(--space-40);
}

.plans__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  max-width: var(--content-narrow);
  text-align: center;
}

.plans__intro .pill { align-self: center; }

.plans__checks {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-16);
}

.plans__check {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text);
  white-space: nowrap;
}

.plans__check img { width: 16px; height: 16px; }

/* Billing toggle */
.plans__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  margin-top: var(--space-16);
  padding: var(--space-4);
  background: var(--color-track);
  border-radius: var(--radius-pill);
}

.plans__toggle button {
  display: inline-flex;
  align-items: center;
  gap: var(--space-6);
  padding: var(--space-8) var(--space-16);
  border-radius: var(--radius-pill);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  background: transparent;
  cursor: pointer;
  transition: background var(--dur-base) ease, color var(--dur-base) ease, box-shadow var(--dur-base) ease;
}

.plans__toggle button:hover:not(.is-active) {
  color: var(--color-text);
}

.plans__toggle button:focus-visible {
  outline: 2px solid var(--color-brand-red);
  outline-offset: -2px;
}

.plans__toggle button.is-active {
  background: var(--color-surface);
  color: var(--color-brand-red);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.plans__discount {
  background: var(--color-success-soft);
  color: var(--color-success);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  padding: 1px var(--space-6);
  border-radius: var(--radius-pill);
  white-space: nowrap;
}

/* Cards row */
.plans__cards {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-32);
  width: 100%;
  justify-content: center;
  align-items: flex-start;
}

.plan-card {
  flex: 1 1 0;
  min-width: 0;
  max-width: 352px;
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: transform 0.45s var(--ease-out), background-color 0.45s ease;
}

/* Contain the strike-flip reflow to the card; desktop-only */
@media (min-width: 901px) {
  .plan-card { contain: layout; }
}

/* desktop-only: discreet hover lift + brighten to white */
@media (hover: hover) and (min-width: 901px) {
  .plan-card:hover {
    transform: scale(1.008);
    background-color: var(--color-surface);
  }
}

.plan-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  padding: var(--space-16);
}

@media (min-width: 901px) {
  .plan-card__body { padding: var(--space-24); }
}

.plan-card__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.plan-card__name {
  margin: 0; /* <h3> (SEO); zera a margem UA */
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-lg);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-label);
  color: var(--color-text);
}

/* Pricing group: optional struck full price above the price row */
.plan-card__pricing {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Struck full price — hidden monthly; JS-driven FLIP reveal (see app.js) */
.plan-card__strike {
  display: none;
  box-sizing: border-box;
  padding-bottom: var(--space-8);
  opacity: 0;
  /* font-size/line-height here too: natural height = one line + 8px pad */
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-snug);
  color: var(--color-text);
  text-decoration: line-through;
}

.plan-card__strike.is-shown {
  display: block;   /* rendered (annual + during the collapse) */
  /* Reserve exactly one struck line + the 8px gap */
  min-height: calc(var(--fs-xs) * var(--lh-snug) + var(--space-8));
}

.plan-card__strike-inner {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-snug);
  text-decoration: line-through;
}

/* Price row: amount on the left, highlight pill right */
.plan-card__price-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
}

.plan-card__price {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  flex: 0 0 auto;
}

.plan-card__amount {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text);
}

/* Pin the amount's slot cells to the tight line-height */
.plan-card__amount .char-slot { line-height: var(--lh-tight); }

.plan-card__per {
  display: none;
  font-family: var(--font);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-xs);
  line-height: var(--lh-tight);
  color: var(--color-text);
}

.plan-card__perday {
  flex: 0 0 144px;
  width: 144px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--space-24);
  padding: var(--space-4);
  background: var(--color-brand-blue-light);
  color: var(--color-brand-blue-dark-ct);
  text-align: center;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-snug);
  white-space: nowrap;
  border-radius: var(--radius-pill);
}

/* Annual: let the longer pill text wrap instead of clipping */
.plans.is-annual .plan-card__perday { white-space: normal; }

/* Reduced motion: reveal the struck price instantly */
@media (prefers-reduced-motion: reduce) {
  .plan-card__strike,
  .plan-card__pricing { transition: none; }
}

.plan-card__features {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  margin: 0;
  padding: 0;
  list-style: none;
}

.plan-feat {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text);
}

.plan-feat img { width: 18px; height: 18px; flex-shrink: 0; }

.plan-feat--off {
  color: var(--ct-disabled);
  text-decoration: line-through;
}

/* Badged "não incluído" row: strike the label, not badge */
.plan-feat--off.plan-feat--badged {
  text-decoration: none;
}

.plan-feat--off.plan-feat--badged .plan-feat__label {
  text-decoration: line-through;
}

.plans__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  width: 100%;
}

/* Desktop: inset the CTA by 32px like the plan cards */
@media (min-width: 901px) {
  .plans__cta { padding: 0 var(--space-32) var(--space-32); }
}

.plans__cta-note {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  text-align: center;
}

/* Plans carousel header (mobile only) — "Planos" + prev/next arrows */
.carousel-cdp-title {
  display: none;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.carousel-cdp-title p {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-lg);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-title);
  color: var(--color-text);
}

.carousel-cdp-buttons {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  user-select: none;
}

.carousel-cdp-btn {
  display: inline-flex;
  padding: 0;
  color: var(--color-text-muted);
  transition: color var(--dur-quick) ease;
}

.carousel-cdp-btn svg { display: block; width: var(--space-32); height: var(--space-32); }

/* Gray out the arrow that can't advance at each end */
.carousel-cdp-buttons.min .carousel-cdp-btn:first-child,
.carousel-cdp-buttons.max .carousel-cdp-btn:last-child {
  color: var(--color-divider);
  cursor: default;
}

/* Channels bar */
.channels-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-24);
  min-height: 40px;
  width: 100%;
  padding: var(--space-8);
  border-radius: var(--radius-pill);
  background: var(--color-surface-soft);
}

.channels-bar__label {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  letter-spacing: var(--tracking-wide);
  color: var(--color-text);
  line-height: var(--lh-snug);
}

/* Channels chips: match the 16px check icon of .plans__check */
.channels-bar .feature-bar__item img { width: 16px; height: 16px; }

/* Responsive copy swap: desktop wording default, mobile at ≤600px */
.only-mobile { display: none; }

/* Responsive */

/* feature-bar: colunas em divisões de 6 conforme a largura (6→3→2→1) */
@media (max-width: 1080px) {
  .feature-bar {
    border-radius: var(--radius-lg);          /* grid não combina com pill */
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    align-items: center;
    row-gap: var(--space-12);
    column-gap: var(--space-8);
  }
}
@media (max-width: 700px) { .feature-bar { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 395px) { .feature-bar { grid-template-columns: 1fr; } }

@media (max-width: 900px) {
  /* Tighter section rhythm on mobile (32 → 24) */
  .page { gap: var(--space-24); }

  /* channels-bar: empilha abaixo de 900 — volta ao radius-lg */
  .channels-bar { border-radius: var(--radius-lg); }
  /* Hero mobile: image on top, copy below, full width */
  .hero { margin-top: 0; }
  .hero__row { flex-direction: column-reverse; align-items: stretch; gap: var(--space-24); }
  .hero__copy,
  .hero__image { flex-basis: auto; width: 100%; }
  /* Once stacked, center the copy column */
  .hero__copy { align-items: center; text-align: center; }
  .hero__image { aspect-ratio: 2696 / 1230; }
  .hero__image img { position: static; transform: none; width: 100%; height: 100%; object-fit: contain; }
  /* Cancel the desktop hover so touch can't shift the image */
  .hero__image:hover img { transform: none; }
  /* pill hugs its content, centered, wraps on narrow phones */
  .hero__copy .pill {
    align-self: center;
    width: auto;
    max-width: 100%;
    height: auto;
    white-space: normal;
    text-align: center;
    padding: var(--space-4) var(--space-12);
    line-height: var(--lh-base);
  }

  /* Mobile: testimonials band on top, copy below */
  .trust-card {
    height: auto;
    padding: var(--space-16);
    display: flex;
    flex-direction: column-reverse; /* reverse puts media on top */
    gap: var(--space-16);
  }
  /* center the copy block on mobile */
  .trust-card__copy { position: static; transform: none; width: 100%; text-align: center; }
  /* Mobile-only: balance the subtitle so the closing CTA stays whole */
  .trust-card__subtitle { text-wrap: balance; }
  .trust-card__chips { justify-content: center; }
  .trust-card__media { position: relative; inset: auto; transform: none; width: 100%; height: 320px; }
  /* smaller zigzag swing for the narrower mobile column */
  .trust-card__track > .trust-card__shot:nth-child(odd)  { transform: translateX(-16px); }
  .trust-card__track > .trust-card__shot:nth-child(even) { transform: translateX(16px); }
  /* trust-card pill: centered and allowed to wrap on narrow phones */
  .trust-card__copy .pill {
    align-self: center;
    max-width: 100%;
    height: auto;
    white-space: normal;
    text-align: center;
    line-height: var(--lh-base);
  }

  .stats { justify-content: center; gap: var(--space-16); }
  .stats__item { flex: 1 1 28%; }

  /* bot-section: copy + phones stacked, image hugs the bottom */
  .bot-section {
    aspect-ratio: auto; /* mobile stacks and sizes to content */
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-16);
    padding: var(--space-24) var(--space-16) 0;
  }
  .panel-intro { position: static; transform: none; width: 100%; }
  /* WhatsApp/robô copy: full width, pretty wrapping on mobile */
  .bot-section .panel-intro { max-width: 100%; }
  .bot-section .panel-intro__subtitle { width: 100%; text-wrap: pretty; }
  .bot-section__image {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    width: 92%;
  }

  /* feature-duo: each card stacks copy + illustration */
  .feature-duo { flex-direction: column; gap: var(--space-24); }
  .feature-card {
    /* reset desktop flex; `flex: none` sizes to content */
    flex: none;
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-16);
    padding: var(--space-24) var(--space-24) 0;
  }
  .feature-card__copy { position: static; transform: none; padding: 0; }
  .feature-card__media { position: relative; left: auto; top: auto; bottom: auto; transform: none; }
  .feature-card__media--personalization { width: 88%; max-width: 360px; }
  .feature-card__media--notification { width: 200px; }

  /* plans: full-bleed horizontal scroll-snap carousel on mobile */
  /* Plans become a swipeable carousel; reveal the header */
  .plans { gap: var(--space-16); margin-block: 0; }
  /* Title stays inset 24px while the cards bleed full-width */
  .carousel-cdp-title { display: flex; padding-inline: calc(var(--space-24) - var(--content-gutter)); }
  .plans__cards {
    justify-content: flex-start;
    align-items: flex-start;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: var(--space-16);
    width: calc(100% + 2 * var(--content-gutter));
    padding-bottom: var(--space-8);
    padding-inline: var(--content-gutter);
    scroll-padding-inline: var(--content-gutter);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .plans__cards::-webkit-scrollbar { display: none; }
  .plan-card {
    flex: 0 0 304px;
    scroll-snap-align: center;
  }
  /* trailing breathing room on the last card, not the container */
  .plan-card:last-child { margin-right: var(--space-32); }

  /* showcase mobile: tighter padding + copy↔video */
  .showcase { padding: var(--space-24); gap: var(--space-16); }
  .showcase__video { width: 260px; }
  .showcase__demo-link { width: 260px; }

  /* gestão: centered intro + device collage, tighter gap on mobile */
  .gestao { gap: var(--space-16); padding: var(--space-24); }

  /* features grid: trim the section padding on mobile */
  .features { padding: var(--space-24); }

  /* migração CTA panel: same mobile padding as the sibling cards */
  .migracao { padding: var(--space-24); }
}

/* room for the taller opened mobile menubar pill */
@media (max-width: 850px) {
  :root { --content-gutter: 12px; }
  .page { padding-top: 136px; }

  /* Section internal paddings → 12px on mobile */
  .trust-card         { padding: var(--space-12); }
  .bot-section        { padding: var(--space-12) var(--space-12) 0; }
  .feature-card       { padding: var(--space-12) var(--space-12) 0; }
  .fpanel             { padding: var(--space-12); }
  .showcase           { padding: var(--space-12); }
  .gestao             { padding: var(--space-12); }
  .features           { padding: var(--space-12); }
  .migracao           { padding: var(--space-12); }
}

@media (max-width: 600px) {
  .stats__item { flex: 1 1 40%; }
  /* Mobile type steps: titles 32→24, cards 24→20, hero 32 */
  :root { --fs-display: 24px; --fs-hero: 32px; --fs-title: 20px; }

  /* Card captions: subtitle text steps 16→14 on mobile */
  .fpanel__subtitle,
  .feature-card__subtitle,
  .migracao__subtitle { font-size: var(--fs-sm); }
  /* stats: label steps 12→14 on mobile */
  .stats__label { font-size: var(--fs-sm); }

  /* Feature bar mobile: fonte 14px; colunas via breakpoints de conteúdo */
  .feature-bar__item { font-size: var(--fs-sm); letter-spacing: var(--tracking-wide); }

  /* Let check labels wrap instead of overflowing on narrow phones */
  .plans__check { white-space: normal; font-size: var(--fs-xs); }

  /* check-chips (.chip) step to 12 on mobile */
  .chip { font-size: var(--fs-xs); }

  /* When a Gestão check wraps, keep the icon top-aligned */
  .gestao .plans__check { align-items: flex-start; text-align: left; }

  /* Mobile copy swap: "Windows e Android" → "PC e Android" */
  .only-desktop { display: none; }
  .only-mobile { display: inline; }

  /* channels-bar: label on its own line, chips wrap below */
  .channels-bar { gap: var(--space-12); padding: var(--space-12); }
  .channels-bar__label { flex-basis: 100%; text-align: center; }
  .channels-bar .feature-bar__item { font-size: var(--fs-xs); }

  /* Promo Copa no mobile: chip em linha própria via pseudo-break */
  .panel-intro__chips .chip--copa { order: -2; }
  .panel-intro__chips:has(.chip--copa)::before {
    content: "";
    order: -1;
    flex-basis: 100%;
    height: 0;
  }
}

/* Very narrow screens (≤320px): step the display scale down */
@media (max-width: 320px) {
  :root { --fs-display: 20px; --fs-hero: 26px; }
}



/* ===== utilities.css ===== */
/* Oculto visualmente, lido por leitores de tela. */
.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;
}

/* Edge-fade masks reveal what's behind the element. */
.vertical-fade {
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 15%,
    black 85%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    black 15%,
    black 85%,
    transparent 100%
  );
}

.horizontal-fade {
  mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 15%,
    black 85%,
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0%,
    black 15%,
    black 85%,
    transparent 100%
  );
}

/* Override --fade-start / --fade-end for fade depth. */
.vertical-fade--soft {
  --fade-start: 25%;
  --fade-end: 75%;
  mask-image: linear-gradient(to bottom, transparent 0%, black var(--fade-start), black var(--fade-end), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black var(--fade-start), black var(--fade-end), transparent 100%);
}


/* ===== menubar.css ===== */
/* menubar — floating pill that expands in place on mobile */

:root {
  --menu-open-dur: 400ms;
  --menu-close-dur: 520ms;                              /* slower, gentler close */
  --menu-close-delay: 90ms;                             /* slight pause after "Fechar" */
  --menu-ease: var(--ease-out);                         /* open: snappy ease-out */
  --menu-close-ease: cubic-bezier(0.65, 0, 0.35, 1);    /* close: smooth ease-in-out */
}

.menubar {
  position: fixed;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 48px);
  max-width: var(--content-max);
  z-index: 100;

  display: flex;
  flex-direction: column;
  padding: var(--space-12) var(--space-16) var(--space-12) var(--space-24);
  border-radius: var(--radius-pill);
  background: var(--color-surface-transparent);
  border: 1px solid var(--color-divider);
  -webkit-backdrop-filter: blur(16px) brightness(1.08) saturate(1.2);
  backdrop-filter: blur(16px) brightness(1.08) saturate(1.2);
  overflow: hidden;
  /* close transition (open state overrides) */
  transition: background-color var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay),
              box-shadow var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay),
              padding var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay);
}

.menubar__main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  flex-shrink: 0;
}

.menubar__nav {
  display: flex;
  align-items: center;
  gap: var(--space-8);
}

/* widen logo→first-item spacing to 32px (8px gap + 24px) */
.menubar__logo-link + .menubar__link { margin-left: var(--space-24); }

.menubar__logo-link { display: inline-flex; align-items: center; height: 32px; }
.menubar__logo { height: 28px; width: auto; cursor: pointer; }
.menubar__logo--symbol { display: none; }

.menubar__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-8) var(--space-16);
  border-radius: var(--radius-pill);
  border: 0.18px solid transparent;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--color-text-muted);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--dur-base) ease, color var(--dur-base) ease,
              border-color var(--dur-base) ease, backdrop-filter var(--dur-base) ease,
              -webkit-backdrop-filter var(--dur-base) ease;
}

.menubar__link:hover {
  color: var(--color-brand-red);
  cursor: pointer;
  border-color: var(--color-divider);
  -webkit-backdrop-filter: blur(8px) brightness(180%);
  backdrop-filter: blur(8px) brightness(180%);
}

.menubar__actions {
  display: flex;
  align-items: center;
  gap: var(--space-12);
}

.menubar__login {
  display: inline-flex;
  align-items: center;
  padding: var(--space-6) var(--space-12);
  border-radius: var(--radius-pill);
  border: 0.18px solid transparent;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--color-brand-red);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--dur-base) ease, border-color var(--dur-base) ease,
              backdrop-filter var(--dur-base) ease, -webkit-backdrop-filter var(--dur-base) ease;
}

.menubar__login:hover {
  cursor: pointer;
  border-color: var(--color-divider);
  -webkit-backdrop-filter: blur(8px) brightness(180%);
  backdrop-filter: blur(8px) brightness(180%);
}

.menubar__cta { position: relative; display: inline-flex; }
.menubar__cta .btn-floating-pill { display: none; }

/* "Fechar" — shown only while menu expanded (mobile) */
.menubar__close-menu {
  display: none;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  color: var(--color-text-muted);
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--space-8);
  border-radius: var(--radius-md);
  -webkit-tap-highlight-color: transparent; /* kill default tap flash */
  /* press feedback: soft tint fill, no shadow/border */
  transition: background-color var(--dur-base) ease, color var(--dur-base) ease;
}
.menubar__close-menu:active {
  background-color: var(--color-hover-tint);
  color: var(--color-text);
}

/* Chip row + full menu: mobile only */
.menubar__floating,
.menubar__menu { display: none; }

@keyframes menubar-menu-item-in {
  from { opacity: 0; transform: translateX(-28px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes menubar-actions-reveal {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Mobile */
@media (max-width: 850px) {
  .menubar {
    top: 12px;
    padding: 10px 10px 10px var(--space-16);
    width: calc(100% - 24px);
    border-radius: 32px;
  }

  .menubar__logo--full { display: none; }
  .menubar__logo--symbol { display: block; height: 30px; }

  /* Lock top-row height so the logo stays still */
  .menubar__main { min-height: 40px; }

  .menubar__link { display: none; }

  /* "Entrar" hidden while menu open */
  .menubar__actions { gap: var(--space-8); }
  .menubar__login { padding: var(--space-6) var(--space-8); }
  .menubar.is-menu-open .menubar__login { display: none; }

  .menubar__cta .cta-primary { width: 128px; }

  /* Drop the CTA's :active press feedback inside the menubar */
  .menubar__cta .cta-primary:active {
    transform: none;
    box-shadow: var(--shadow-cta-rest);
  }
  .menubar__cta .cta-primary:active .cta-primary__inner { filter: none; }
  /* Keep arrow collapsed on tap (sticky :hover would expand it) */
  .menubar__cta .cta-primary:hover .cta-primary__inner svg.cta-primary__arrow,
  .menubar__cta .cta-primary:active .cta-primary__inner svg.cta-primary__arrow {
    width: 0;
    margin-left: 0;
  }

  /* hidden; set inline-flex to restore "Sem compromisso" pill */
  .menubar__cta .btn-floating-pill { display: none; }

  /* chip row: collapsed by default, expands when .is-opened */
  .menubar__floating {
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: var(--space-8);
    width: 100%;
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.3s var(--menu-ease),
                margin-top 0.3s var(--menu-ease),
                opacity 0.24s ease;
  }
  .menubar.is-opened .menubar__floating {
    max-height: 32px;
    margin-top: 10px;
    opacity: 1;
    /* scroll-up reveal: slight delay + gentle ease-in-out */
    transition: max-height 0.38s var(--menu-close-ease) 0.08s,
                margin-top 0.38s var(--menu-close-ease) 0.08s,
                opacity 0.32s var(--menu-close-ease) 0.08s;
  }
  /* Reveal after close: chip row eases in with the panel */
  .menubar.is-revealing .menubar__floating {
    transition: max-height var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay),
                margin-top var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay),
                opacity var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay);
  }
  /* On close, CTA + "Entrar" fade in after a delay */
  .menubar.is-revealing .menubar__actions {
    animation: menubar-actions-reveal var(--dur-base) var(--menu-close-ease) 0.3s both;
  }
  .menubar__floating-link {
    flex: 1 1 auto;
    text-align: center;
    font-family: var(--font);
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    line-height: var(--lh-snug);
    color: var(--color-text);
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-6) 0;
    white-space: nowrap;
    -webkit-tap-highlight-color: transparent; /* kill default tap flash */
    /* constant radius; press feedback is a soft tint fill */
    border-radius: var(--radius-md);
    transition: background-color var(--dur-base) ease, color var(--dur-base) ease;
  }
  .menubar__floating-link:active {
    background-color: var(--color-hover-tint);
    color: var(--color-text);
  }

  /* full menu: the pill grows downward to reveal it */
  .menubar__menu {
    display: block;
    width: 100%;
    max-height: 0;
    opacity: 0;
    margin-top: 0;
    overflow: hidden;
    /* margin-top animated too; JS drives max-height */
    transition: max-height var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay),
                opacity var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay),
                margin-top var(--menu-close-dur) var(--menu-close-ease) var(--menu-close-delay);
  }

  .menubar.is-menu-open {
    /* keep top & left identical so the logo never moves */
    padding: 10px var(--space-16) var(--space-24) var(--space-16);
    /* same translucent glass so the panel stays frosted */
    background: var(--color-surface-transparent);
    box-shadow: var(--shadow-float);
    transition: background-color var(--menu-open-dur) var(--menu-ease),
                box-shadow var(--menu-open-dur) var(--menu-ease),
                padding var(--menu-open-dur) var(--menu-ease);
  }
  .menubar.is-menu-open .menubar__floating { max-height: 0; margin-top: 0; opacity: 0; }
  .menubar.is-menu-open .menubar__cta { display: none; }
  .menubar.is-menu-open .menubar__close-menu { display: inline-flex; }
  .menubar.is-menu-open .menubar__menu {
    max-height: calc(100dvh - 140px);
    opacity: 1;
    overflow-y: auto;
    margin-top: var(--space-16);
    transition: max-height var(--menu-open-dur) var(--menu-ease),
                opacity var(--menu-open-dur) var(--menu-ease),
                margin-top var(--menu-open-dur) var(--menu-ease);
  }

  .menubar__menu-list { width: 100%; margin: 0 0 var(--space-8); }

  /* Precisa ser bloco: o transform da animação de entrada não vale em <a> inline,
     e o Safari do iOS some com a última linha (Preços) ao fim da animação. */
  .menubar__menu-list a {
    display: block;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
  }

  .menubar__menu-list a p {
    display: flex;
    align-items: center;
    height: 56px;
    margin: 0;
    font-family: var(--font);
    font-size: var(--fs-body);
    font-weight: var(--fw-medium);
    line-height: var(--lh-relaxed);
    color: var(--color-brand-red);
    border-bottom: 0.5px solid var(--color-divider);
  }

  .menubar.is-menu-open .menubar__menu-list a {
    animation: menubar-menu-item-in 0.45s var(--menu-ease) both;
  }
  .menubar.is-menu-open .menubar__menu-list a:nth-child(1) { animation-delay: 0.06s; }
  .menubar.is-menu-open .menubar__menu-list a:nth-child(2) { animation-delay: 0.11s; }
  .menubar.is-menu-open .menubar__menu-list a:nth-child(3) { animation-delay: 0.16s; }
  .menubar.is-menu-open .menubar__menu-list a:nth-child(4) { animation-delay: 0.21s; }
  .menubar.is-menu-open .menubar__menu-list a:nth-child(5) { animation-delay: 0.26s; }

  .menubar__menu-title {
    font-family: var(--font);
    font-weight: var(--fw-medium);
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    color: var(--color-text-muted);
    margin: 0 0 var(--space-8);
    padding-top: var(--space-16);
  }

  .menubar__menu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    height: 56px;
    padding: 0;
    font-family: var(--font);
    font-size: var(--fs-body);
    font-weight: var(--fw-medium);
    line-height: var(--lh-relaxed);
    color: var(--color-brand-red);
    background: none;
    border: none;
    border-bottom: 0.5px solid var(--color-divider);
    cursor: pointer;
    text-align: left;
  }

  .menubar__menu-note {
    margin-top: var(--space-16);
    font-family: var(--font);
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    line-height: var(--lh-base);
    text-align: center;
  }

  @media (prefers-reduced-motion: reduce) {
    .menubar__menu,
    .menubar.is-menu-open .menubar__menu,
    .menubar__floating { transition: none; }
    .menubar.is-menu-open .menubar__menu-list a { animation: none; }
  }

  html.modal-open,
  html.modal-open body { overflow: hidden; }
}


/* ===== cta-primary.css ===== */
/* cta-primary — pill CTA, GPU-only hover */

.cta-primary {
  position: relative;
  display: inline-flex;
  width: 168px;
  height: 40px;
  background: var(--color-brand-red);
  flex-direction: column;
  align-items: flex-start;
  flex-shrink: 0;
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-cta-rest);
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
  border: none;
  padding: 0;

  /* Animate only compositor-friendly props */
  transition: transform var(--dur-hover) ease-out, box-shadow var(--dur-hover) ease-out;
  will-change: transform;
}

.cta-primary--block { width: 100%; }

.cta-primary:hover {
  transform: scale(1.005);
  box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.35);
}

.cta-primary:active,
.cta-primary:focus-visible {
  transform: scale(0.995);
  box-shadow: 0 2px 2px -1.5px rgba(0, 0, 0, 0.8);
  transition: transform var(--dur-press) ease-out, box-shadow var(--dur-press) ease-out;
  outline: none;
}

.cta-primary__inner {
  display: flex;
  padding: var(--space-12) var(--space-8);
  justify-content: center;
  align-items: center;
  flex: 1 0 0;
  align-self: stretch;
  border-radius: var(--radius-pill);
  border: 2px solid var(--color-border-soft);
  box-shadow: 0 0 1px 2px rgba(255, 255, 255, 0.1) inset;
  position: relative;
  overflow: hidden;
  background: var(--color-brand-red);
  user-select: none;
  -webkit-user-select: none;
  color: var(--color-on-brand);
  font-family: var(--font);
  font-size: var(--fs-body);
  letter-spacing: var(--tracking-wide);
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: var(--lh-relaxed);
  z-index: 2;
  width: 100%;

  /* GPU-only color shift on hover/active */
  transition: filter var(--dur-hover) ease-out;
}

.cta-primary:hover .cta-primary__inner {
  filter: brightness(1.06) saturate(1.04);
}

.cta-primary:active .cta-primary__inner,
.cta-primary:focus-visible .cta-primary__inner {
  filter: brightness(0.94);
  transition: filter var(--dur-press) ease-out;
}

.cta-primary__inner svg {
  height: 17px;
  width: 0;
  transition: width var(--dur-hover) ease-out, margin-left var(--dur-hover) ease-out;
}

.cta-primary:hover .cta-primary__inner svg.cta-primary__arrow {
  width: 16px;
  margin-left: var(--space-4);
}

/* Shine sweep, transform-driven */
.cta-primary__inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 15%;
  height: 100%;
  transform: translateX(-100%) skewX(-30deg);
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.03) 1%,
    rgba(255, 255, 255, 0.6) 30%,
    rgba(255, 255, 255, 0.85) 40%,
    rgba(255, 255, 255, 0.85) 60%,
    rgba(255, 255, 255, 0.85) 61%,
    rgba(255, 255, 255, 0) 100%
  );
  opacity: 0;
  animation: cta-primary-shine 3s infinite 1.5s;
  pointer-events: none;
  will-change: transform, opacity;
}

@keyframes cta-primary-shine {
  0%   { transform: translateX(-100%) skewX(-30deg); opacity: 0; }
  5%   { opacity: 0; }
  30%  { opacity: 0.2; }
  60%  { opacity: 0; }
  100% { transform: translateX(800%) skewX(-30deg); opacity: 0; }
}

.cta-primary.is-loading {
  pointer-events: none;
  opacity: 0.75;
}

.cta-primary.is-loading .cta-primary__arrow { display: none; }

.cta-primary.is-loading .cta-primary__spinner {
  width: 16px;
  margin-left: var(--space-8);
  display: inline-block;
}

.cta-primary__spinner { display: none; }

@media (prefers-reduced-motion: reduce) {
  .cta-primary,
  .cta-primary__inner,
  .cta-primary__inner svg { transition: none; }
  .cta-primary__inner::before { animation: none; opacity: 0; }
}


/* ===== hero-header.css ===== */
/* hero-header — headline locked to a fixed line count via hard <br> */

.hero-header {
  margin: 0;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-hero);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text);
  font-feature-settings: "case" 1, "lnum" 1, "tnum" 1;
  /* Lines come only from the hard <br>s — never soft-wrap. This keeps the
     headline height fixed regardless of how long the rotating word gets. */
  white-space: nowrap;
}

.hero-header__static {
  color: var(--color-text);
}

.hero-header__word { color: var(--color-brand-red); }

/* Responsive line breaks — desktop default, mobile at ≤900px */
.hero-header__br--mobile { display: none; }

@media (max-width: 900px) {
  .hero-header__br--desktop { display: none; }
  .hero-header__br--mobile  { display: inline; }
}

/* Caret always rendered, keeps dynamic span non-empty */
.hero-header__caret {
  color: var(--color-brand-red);
  animation: hero-header-caret 1s steps(1, end) infinite;
}

@keyframes hero-header-caret {
  0%, 100% { opacity: 0; }
  50%      { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-header__caret { animation: none; opacity: 1; }
}


/* ===== faq.css ===== */
/* faq — accordion + media card */

.faq {
  display: flex;
  gap: var(--space-56);
  width: 100%;
  padding: var(--space-32);
  border-radius: var(--radius-xl);
  background: var(--color-surface-soft);
  align-items: stretch;
}

.faq__main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.faq__list { width: 100%; }

.faq__item {
  width: 100%;
  border-bottom: 1px solid var(--color-divider);
}

.faq__item:last-child { border-bottom: none; }

.faq__item-title {
  min-width: 100%;
  min-height: 56px;
  display: flex;
  align-items: center;
  cursor: pointer;
  padding: 0;
  background: none;
  border: none;
  text-align: left;
}

.faq__item-title p {
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
  text-align: left;
  color: var(--color-text);
  width: 100%;
  padding: var(--space-16) 0;
  margin: 0;
}

.faq__item-title svg {
  min-width: 24px;
  margin-left: var(--space-16);
  transition: transform var(--dur-base) ease;
}

.faq__item-content {
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  line-height: var(--lh-relaxed);
  text-align: left;
  color: var(--color-text);
  width: 100%;
  height: 0;
  overflow: hidden;
  transition: height var(--dur-base) ease, padding var(--dur-base) ease, margin var(--dur-base) ease;
}

.faq__item.is-open .faq__item-title svg { transform: rotate(-180deg); }
.faq__item.is-open .faq__item-content {
  height: auto;
  margin-top: calc(-1 * var(--space-8));
  padding: 0 0 var(--space-16);
}

.faq__cta {
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
  color: var(--color-text);
  padding: var(--space-16) 0;
  margin: 0;
}

.faq__cta-link {
  color: inherit;
  text-decoration: none;
  transition: color var(--dur-base) ease;
}

.faq__cta-link:hover { color: var(--color-brand-red); }

/* Closing CTA — full-width trial button + note */
.faq__action {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-12);
  margin-top: var(--space-8);
}

.faq__action-note {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  text-align: center;
}

@media (max-width: 850px) {
  .faq {
    gap: var(--space-24);
    padding: var(--space-12);
  }
}

/* Mobile: FAQ copy steps to --fs-sm */
@media (max-width: 600px) {
  .faq__item-title p,
  .faq__item-content,
  .faq__cta { font-size: var(--fs-sm); }
}


/* ===== footer-contact.css ===== */
/* Footer spans full viewport; inner wrapper re-centers content. */

.site-footer {
  width: 100%;
  background: var(--color-surface-soft);
  border-top: 1px solid var(--color-divider);
  color: var(--color-text);
  /* footer keeps 24px side gutter even on mobile */
  --content-gutter: 24px;
}

.site-footer__inner {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: var(--space-40) var(--content-gutter);
}

.site-footer a { cursor: pointer; }

.site-footer__top {
  display: flex;
  flex-direction: column;
  gap: var(--space-40);
}

.site-footer__info {
  display: flex;
  flex-direction: column;
  gap: var(--space-32);
}

.site-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;     /* mobile: center the brand */
  text-align: center;
  gap: var(--space-16);
}

.site-footer__logo {
  height: 128px;
  width: auto;
}

.site-footer__tagline {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--color-text-muted);
  max-width: 300px;
  margin: 0;
}

.site-footer__social {
  display: flex;
  gap: var(--space-8);
}

.site-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-text-muted);
  transition: color var(--dur-base) ease;
}

.site-footer__social a:hover {
  color: var(--color-brand-red);
}

.site-footer__social svg { width: 20px; height: 20px; }

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-24) var(--space-40);
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  min-width: 120px;
}

.site-footer__heading {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text);
  margin: 0;
}

.site-footer__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.site-footer__links a {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text-muted);
  transition: color var(--dur-quick) ease;
}

.site-footer__links a:hover { color: var(--color-brand-red); }

.site-footer__contact {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  margin: 0;
  font-style: normal;
}

.site-footer__contact a,
.site-footer__contact p {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--color-text-muted);
  margin: 0;
}

.site-footer__contact a {
  align-self: flex-start;
  transition: color var(--dur-quick) ease;
}

.site-footer__contact a:hover { color: var(--color-brand-red); }

.site-footer__support-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
  flex-basis: 100%;   /* full-width line below nav columns */
}

.site-footer__support {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.site-footer__support p {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text-muted);
  margin: 0;
}

.site-footer__support strong {
  font-weight: var(--fw-medium);
  color: var(--color-text-muted);
}

.site-footer__support a {
  align-self: flex-start;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text);
  transition: color var(--dur-quick) ease;
}

.site-footer__support a:hover { color: var(--color-brand-red); text-decoration: underline; }

/* "WhatsApp" clicável dentro do texto: atalho discreto pro suporte, sem cara de link */
.site-footer__support a.site-footer__support-inline,
.site-footer__support a.site-footer__support-inline:hover {
  color: inherit;
  text-decoration: none;
  transition: none;
}

.footer-contact {
  position: relative;  /* âncora do painel de sucesso sobreposto */
  order: -1;           /* mobile: form comes first */
  width: 100%;
  max-width: 480px;
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  padding: var(--space-16);
}

.footer-contact__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-lg);
  line-height: var(--lh-base);
  letter-spacing: var(--tracking-label);
  color: var(--color-text);
  margin: 0 0 var(--space-6);
}

.footer-contact__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--color-text-subtle);
  margin: 0 0 var(--space-16);
}

.footer-contact__field { margin-bottom: var(--space-12); }

.footer-contact__field label {
  display: block;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text);
  margin: 0 0 var(--space-6);
}

.footer-contact__field input[type="text"] {
  width: 100%;
  height: 40px;
  padding: 0 var(--space-12);
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  font-family: var(--font);
  font-size: var(--fs-body);          /* 16px keeps iOS from zooming on focus */
  line-height: var(--lh-base);
  color: var(--color-text);
  outline: none;
  transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.footer-contact__field input[type="text"]::placeholder { color: var(--ct-placeholder); }

.footer-contact__field input[type="text"]:focus {
  box-shadow: inset 0 0 0 2px rgba(31, 134, 237, 0.364);
}

/* Visual from .ghost-btn--red; here only behaviour. */
.footer-contact__submit {
  position: relative;
  margin-top: var(--space-4);
}

.footer-contact__submit::after { content: "Solicitar contato"; }

.footer-contact__submit[disabled] { cursor: default; opacity: 0.9; }

.footer-contact__submit.is-incomplete { cursor: not-allowed; }

/* Tooltip só enquanto bloqueado, no hover/foco */
.footer-contact__submit.is-incomplete::before {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translateX(-50%) translateY(4px);
  padding: var(--space-6) 10px;
  border-radius: var(--radius-md);
  background: var(--color-text);
  color: var(--color-on-brand);
  font-weight: var(--fw-regular);
  font-size: var(--fs-xs);
  line-height: var(--lh-snug);
  white-space: nowrap;
  box-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.3);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-quick) ease, transform var(--dur-quick) ease;
  z-index: 3;
}

.footer-contact__submit.is-incomplete:hover::before,
.footer-contact__submit.is-incomplete:focus-visible::before {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Blocked: neutralise lift/shadow so it reads inert */
.footer-contact__submit.is-incomplete:hover,
.footer-contact__submit.is-incomplete:active {
  transform: none;
  box-shadow: none;
}

/* Enviado: o sucesso sobrepõe o formulário até "Editar".
   O form some com visibility (não display) pra reservar a altura e o card não pular. */
.footer-contact.is-sent .footer-contact__title,
.footer-contact.is-sent .footer-contact__subtitle,
.footer-contact.is-sent form { visibility: hidden; }

.footer-contact__success {
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--space-12) 0 var(--space-8);
}

.footer-contact.is-sent .footer-contact__success {
  display: flex;
  justify-content: center;     /* centraliza na altura reservada pelo form */
  position: absolute;          /* sobrepõe o form invisível, sem alterar a altura do card */
  inset: var(--space-16);
  animation: footer-contact-success-in 0.35s var(--ease-overshoot);
}

@keyframes footer-contact-success-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

.footer-contact__success-check {
  width: 48px;
  height: 48px;
  margin-bottom: var(--space-12);
  color: var(--color-success);  /* o SVG usa fill=currentColor */
}

.footer-contact__success-title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-base);
  letter-spacing: var(--tracking-label);
  color: var(--color-text);
  margin: 0 0 var(--space-4);
  outline: none;   /* foco programático, sem anel visual */
}

.footer-contact__success-subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--color-text-subtle);
  margin: 0;
}

/* Dados enviados — só os valores, em escala menor */
.footer-contact__success-data {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin: var(--space-16) 0 var(--space-24);
}

.footer-contact__success-data p {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text-muted);
  margin: 0;
}

/* nome em destaque; telefone segue em muted */
.footer-contact__success-data p:first-child {
  font-weight: var(--fw-medium);
  color: var(--color-text);
}

.footer-contact__edit {
  padding: var(--space-8) var(--space-32);
  background: none;
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-pill);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text);
  cursor: pointer;
  transition: border-color var(--dur-base) ease, color var(--dur-base) ease;
}

.footer-contact__edit:hover {
  border-color: var(--color-brand-red);
  color: var(--color-brand-red);
}

@media (prefers-reduced-motion: reduce) {
  .footer-contact.is-sent .footer-contact__success { animation: none; }
}

.site-footer__bottom {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-12);
  margin-top: var(--space-32);
  padding-top: var(--space-24);
  border-top: 1px solid var(--color-divider);
}

.site-footer__copy {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--color-text-muted);
  margin: 0;
}

.site-footer__link {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--dur-quick) ease;
}

.site-footer__link:hover { color: var(--color-brand-red); text-decoration: underline; }

@media (min-width: 600px) {
  .site-footer__inner { padding: var(--space-56) var(--content-gutter); }

  /* Do tablet em diante a marca e o formulário dividem a primeira linha e o nav
     ocupa a segunda inteira. As colunas são proporcionais porque uma largura
     fixa para o formulário espremeria a marca nas telas menores da faixa. */
  .site-footer__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 1fr);
    grid-template-areas:
      "brand contact"
      "nav   nav";
    gap: var(--space-40);
    align-items: start;
  }

  /* o wrapper some do fluxo para marca e nav virarem itens do próprio grid */
  .site-footer__info { display: contents; }

  .site-footer__brand { grid-area: brand; align-items: flex-start; text-align: left; }
  .footer-contact { grid-area: contact; }
  .site-footer__nav { grid-area: nav; }

  /* na linha inteira cabe o suporte como terceira coluna, não como linha cheia */
  .site-footer__support-block { flex-basis: auto; }

  .site-footer__bottom {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (min-width: 980px) {
  .site-footer__inner { padding: var(--space-64) var(--space-32); }

  .site-footer__top {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 360px);
    gap: var(--space-64);
  }

  .site-footer__nav { gap: var(--space-40) var(--space-64); }
}


/* ===== payments-card.css ===== */
/* payments-card — stepped vertical conveyor of payment rows */

.payments-card {
  --pay-dur: 12s;          /* ciclo completo: 6 ticks de 2s */
  --pay-step: 72px;        /* gap between adjacent slots */
  --pay-row-w: 330px;      /* center width; sides scale down */
  /* damped spring for each slide */
  --ease-spring: linear(0, 0.034, 0.123, 0.255, 0.413, 0.578, 0.733, 0.862, 0.957, 1.018, 1.052, 1.063, 1.058, 1.043, 1.025, 1.008, 0.997, 0.994, 0.997, 1);

  position: relative;
  width: 521px;
  max-width: 100%;         /* shrinks to fit on mobile */
  height: 342px;
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.payments-card__stage {
  position: absolute;
  top: 19px;
  left: 50%;
  transform: translateX(-50%);
  width: 437px;
  height: 224px;
  overflow: hidden;
}

/* Base state = reduced-motion fallback: 3-row stack */
.payments-card__row {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--pay-row-w);
  display: flex;
  align-items: center;
  gap: var(--space-8);
  padding: var(--space-12) var(--space-16);
  background: var(--color-surface);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-16);
  overflow: hidden;
  transform: translate(-50%, -50%) scale(0.84);
  opacity: 0;                            /* hidden unless middle three */
  will-change: transform;
}
.payments-card__row:nth-child(1) { transform: translate(-50%, calc(-50% - var(--pay-step))) scale(0.912); opacity: 1; }
.payments-card__row:nth-child(2) { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.payments-card__row:nth-child(3) { transform: translate(-50%, calc(-50% + var(--pay-step))) scale(0.912); opacity: 1; }

.payments-card__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
}

.payments-card__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  min-width: 0;                          /* allow ellipsis, don't widen row */
}

.payments-card__row-title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.payments-card__row-sub {
  font-family: var(--font);
  font-weight: var(--fw-regular);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
  color: var(--color-text);
  opacity: 0.7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.payments-card__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--space-24);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-8);
  padding: 0 var(--space-16);
  text-align: center;
}

.payments-card__title {
  margin: 0; /* <h3> (SEO); zera margem padrão do UA */
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
}

.payments-card__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
}

/* Motion — skipped entirely under prefers-reduced-motion */
@media (prefers-reduced-motion: no-preference) {
  .payments-card__row {
    opacity: 1;                          /* mask + clip govern edges */
    animation: pay-step var(--pay-dur) infinite;
  }
  /* defasagem de exatamente um tick (1/6 do ciclo): as seis linhas andam em
     bloco. A divisão mantém os sextos exatos, sem o arredondamento de 0,1667. */
  .payments-card__row:nth-child(1) { animation-delay: calc(var(--pay-dur) *  0); }
  .payments-card__row:nth-child(2) { animation-delay: calc(var(--pay-dur) * -1 / 6); }
  .payments-card__row:nth-child(3) { animation-delay: calc(var(--pay-dur) * -1 / 3); }
  .payments-card__row:nth-child(4) { animation-delay: calc(var(--pay-dur) * -1 / 2); }
  .payments-card__row:nth-child(5) { animation-delay: calc(var(--pay-dur) * -2 / 3); }
  .payments-card__row:nth-child(6) { animation-delay: calc(var(--pay-dur) * -5 / 6); }

  /* app.js pauses off-screen */
  .payments-card.is-paused .payments-card__row { animation-play-state: paused; }
}

/* Esteira em degraus: seis slots, de +3 a −2, e o passo final termina em −3.
   Como +3 e −3 estão os dois fora do stage, o salto do loop (−3 para +3) não
   aparece, e assim toda linha ganha uma mola em todo tick: as seis andam sempre
   em bloco, separadas por exatamente um passo, e nenhuma alcança a outra. */
@keyframes pay-step {
  /* dwell em +3 (fora de cena) → mola para +2 */
  0%        { transform: translate(-50%, calc(-50% + var(--pay-step) *  3)) scale(0.84);  animation-timing-function: linear; }
  12.5%     { transform: translate(-50%, calc(-50% + var(--pay-step) *  3)) scale(0.84);  animation-timing-function: var(--ease-spring); }
  /* dwell em +2 (entrada) → mola para +1 */
  16.6667%  { transform: translate(-50%, calc(-50% + var(--pay-step) *  2)) scale(0.84);  animation-timing-function: linear; }
  29.1667%  { transform: translate(-50%, calc(-50% + var(--pay-step) *  2)) scale(0.84);  animation-timing-function: var(--ease-spring); }
  /* dwell em +1 → mola para o centro */
  33.3333%  { transform: translate(-50%, calc(-50% + var(--pay-step) *  1)) scale(0.912); animation-timing-function: linear; }
  45.8333%  { transform: translate(-50%, calc(-50% + var(--pay-step) *  1)) scale(0.912); animation-timing-function: var(--ease-spring); }
  /* dwell no centro → mola para −1 */
  50%       { transform: translate(-50%, -50%) scale(1);                    animation-timing-function: linear; }
  62.5%     { transform: translate(-50%, -50%) scale(1);                    animation-timing-function: var(--ease-spring); }
  /* dwell em −1 → mola para −2 */
  66.6667%  { transform: translate(-50%, calc(-50% + var(--pay-step) * -1)) scale(0.912); animation-timing-function: linear; }
  79.1667%  { transform: translate(-50%, calc(-50% + var(--pay-step) * -1)) scale(0.912); animation-timing-function: var(--ease-spring); }
  /* dwell em −2 (saída) → mola para −3; o loop reinicia em +3 */
  83.3333%  { transform: translate(-50%, calc(-50% + var(--pay-step) * -2)) scale(0.84);  animation-timing-function: linear; }
  95.8333%  { transform: translate(-50%, calc(-50% + var(--pay-step) * -2)) scale(0.84);  animation-timing-function: var(--ease-spring); }
  100%      { transform: translate(-50%, calc(-50% + var(--pay-step) * -3)) scale(0.84); }
}

/* Mobile — card fills viewport, rows widen, type trims */
@media (max-width: 520px) {
  .payments-card {
    width: 100%;
    --pay-step: 64px;        /* slightly tighter step for the shorter rows */
    --pay-row-w: 96%;        /* rows now span most of the (narrower) stage */
  }
  .payments-card__stage { width: 94%; }              /* use more of the narrow card */
  .payments-card__row { padding: var(--space-12); gap: var(--space-6); }
  .payments-card__icon { width: 28px; height: 28px; }
  .payments-card__row-title { font-size: var(--fs-sm); }
  .payments-card__row-sub   { font-size: var(--fs-xs); }
}

/* Caption pairing — subtitle steps down to match title */
@media (max-width: 600px) {
  .payments-card__subtitle { font-size: var(--fs-sm); }
}


/* ===== segments-card.css ===== */
/* segments-card — bento card with horizontal chip marquee */

.segments-card {
  position: relative;
  width: 521px;
  max-width: 100%;
  height: 342px;           /* matches payments-card height */
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

/* Marquee viewport — clips the track; edges masked */
.segments-card__viewport {
  position: absolute;
  top: 19px;
  left: 0;
  right: 0;
  height: 224px;           /* stage; chips centered vertically */
  overflow: hidden;
}

/* Scrolling track; width:max-content lets it translate */
.segments-card__track {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  width: max-content;
  height: 100%;
  will-change: transform;
}

.segments-card__item {
  flex-shrink: 0;
  width: 112px;
  height: 112px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  background: rgba(255, 255, 255, 0.5);
  border-radius: var(--radius-xl);
  text-align: center;
}

.segments-card__icon {
  width: 24px;
  height: 24px;
}

.segments-card__label {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  letter-spacing: var(--tracking-label);
  color: #59595b;                        /* matches the icon stroke */
  padding: 0 var(--space-6);
}

.segments-card__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--space-24);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-8);
  padding: 0 var(--space-16);
  text-align: center;
}

.segments-card__title {
  margin: 0; /* <h3> (SEO); zera margem UA */
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
}

.segments-card__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
}

/* Stacked (mobile) — compact off the bento grid */
@media (max-width: 850px) {
  .segments-card { height: 240px; }
  .segments-card__viewport { height: 128px; }
}

/* Caption pairing — subtitle steps down to match */
@media (max-width: 600px) {
  .segments-card__subtitle { font-size: var(--fs-sm); }
}


/* ===== bento.css ===== */
/* bento — 3-row grid */
.bento {
  display: flex;
  flex-direction: column;
  gap: var(--space-32);
  width: 100%;
}

.bento__showcase {
  width: 100%;
}

.bento__row2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-32);
  align-items: stretch;
}
.bento__row2 .segments-card,
.bento__row2 .payments-card {
  width: 100%;             /* fill column; equal height */
}

.features-wrapup {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-24);
  width: 100%;
  padding: var(--space-32);
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.features-wrapup__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-8);
  max-width: 567px;
  text-align: center;
}
.features-wrapup__title {
  margin: 0; /* <h3> p/ SEO; zera margem UA */
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-title);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
}
.features-wrapup__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
}

/* Marquee row — viewport clips track; createMarquee() drives translateX */
.features-wrapup__row {
  width: 100%;
  overflow: hidden;
}
.features-wrapup__track {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  width: max-content;
  will-change: transform;
}

.feature-pill {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  padding: var(--space-8) var(--space-12);
  background: var(--color-surface);
  border-radius: var(--radius-pill);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-label);
  color: var(--color-text-subtle);
  white-space: nowrap;
}

@media (max-width: 850px) {
  .bento { gap: var(--space-24); }
  .bento__row2 {
    grid-template-columns: 1fr;
    gap: var(--space-24);
    justify-items: center;
  }
  /* stacked cards keep design width */
  .bento__row2 .segments-card,
  .bento__row2 .payments-card { max-width: 544px; }
  .features-wrapup { padding: var(--space-24); }
  .features-wrapup__track { gap: var(--space-8); }
  .feature-pill { font-size: var(--fs-sm); padding: var(--space-6) 10px; }
  .feature-pill__icon { width: 14px; height: 14px; }
}

/* Subtitle steps down to match title */
@media (max-width: 600px) {
  .features-wrapup__subtitle { font-size: var(--fs-sm); }
}


/* ===== videos.css ===== */
/* videos — infinite center-mode YouTube carousel */
.videos {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-24);
  width: 100%;
  --vc-w: 285px;        /* active card width 285×508 ≈ 9:16 */
  --vc-pitch: 278px;    /* center-to-center distance */
  --vc-side: 0.84;      /* neighbor scale ≈ 237/285 */
  /* dot-counter grays — escala neutra local */
  --vd-track:      #f5f5f5;   /* trilho dos dots */
  --vd-dot:        #ddd;      /* dot inativo */
  --vd-dot-hover:  #c4c4c4;   /* dot em hover */
  --vd-dot-active: #999;      /* dot ativo */
}

.videos__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  text-align: center;
}

.videos__intro .pill { align-self: center; }

.videos__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  margin: 0;
}

.videos__carousel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-16);
  width: 100%;
}

.videos__viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
  touch-action: pan-y;            /* we own horizontal swipes */
}

/* No-JS fallback: centered wrapping row */
.videos__track {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-16);
}

.video-card {
  position: relative;
  width: var(--vc-w);
  aspect-ratio: 9 / 16;
  border-radius: var(--radius-16);
  overflow: hidden;
  background: #000;
  cursor: pointer;
}

/* JS carousel: center-mode, infinite seamless loop */
.js .videos__track {
  display: block;
  position: relative;
  height: calc(var(--vc-w) * 16 / 9);   /* fixed active height, no jitter */
  user-select: none;
  -webkit-user-select: none;
}

.js .video-card {
  position: absolute;
  left: 50%;
  top: 50%;
  /* --x = distance × pitch; --drag = live finger offset */
  transform: translate(calc(-50% + var(--x, 0px) + var(--drag, 0px)), -50%) scale(var(--vc-s, var(--vc-side)));
  opacity: 0;
  transition: transform var(--dur-media) cubic-bezier(0.4, 0, 0.2, 1), opacity var(--dur-media) ease;
  will-change: transform;
}

/* snap first layout, no entrance animation */
.js .videos__track:not(.is-ready) .video-card,
.js .videos__track:not(.is-ready) .video-card__poster { transition: none; }
/* during drag the row follows the finger 1:1 */
.js .videos__track.is-dragging .video-card { transition: none; }
/* distant dot scrolls card-by-card, quicker steps */
.js .videos__track.is-stepping .video-card { transition-duration: 0.3s; }

.js .video-card[data-pos="active"] {
  --vc-s: 1;
  opacity: 1;
  z-index: 2;
  box-shadow: var(--shadow-float);
}
.js .video-card[data-pos="near"] { --vc-s: var(--vc-side); opacity: 1; z-index: 1; }
.js .video-card[data-pos="far"] { --vc-s: var(--vc-side); opacity: 0; pointer-events: none; }

.video-card__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform var(--dur-media) ease, filter var(--dur-media) ease;
}
/* dim side posters so the center stands out */
.js .video-card[data-pos="near"] .video-card__poster { filter: brightness(0.7); }
/* hover: gentle zoom on the thumbnail only */
.video-card:hover .video-card__poster { transform: scale(1.06); }

/* YouTube iframe (injected on play) fills the card */
.video-card iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 1; }

/* play affordance — frosted-glass button */
.video-card__play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.3);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  color: var(--color-on-brand);
  opacity: 0;
  z-index: 2;
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.video-card__play svg { width: 40px; height: 40px; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1)); }

/* bottom fade carrying the video title */
.video-card__fade {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 45%;
  display: flex;
  align-items: flex-end;
  padding: 0 var(--space-16) var(--space-24);
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
  opacity: 0;
  z-index: 1;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.video-card__title {
  margin: 0;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-snug);
  color: var(--color-on-brand);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* play + title shown on active card until live */
.js .video-card[data-pos="active"]:not(.is-live) .video-card__play { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.js .video-card[data-pos="active"]:not(.is-live) .video-card__fade,
.js .video-card[data-pos="near"]:not(.is-live) .video-card__fade { opacity: 1; }

/* transparent click/focus layer controlling play + nav */
.video-card__hit {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.video-card__hit:focus-visible { outline: 2px solid var(--color-brand-blue-dark-ct); outline-offset: 3px; }
/* keep hidden "far" cards out of tab order */
.js .video-card[data-pos="far"] .video-card__hit { visibility: hidden; }
/* live card yields click layer to YouTube controls */
.video-card.is-live .video-card__hit { pointer-events: none; }

/* dot counter — built by app.js, hidden when empty */
.videos__dots {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4);
  background: var(--vd-track);
  border-radius: var(--radius-pill);
}
.videos__dots:empty { display: none; }

.videos__dot {
  position: relative;
  width: 8px;
  height: 8px;
  padding: 0;
  border-radius: 50%;
  background: var(--vd-dot);
  transition: background 0.25s ease;
}
.videos__dot::before { content: ""; position: absolute; inset: -6px; }  /* larger tap target */
.videos__dot:hover { background: var(--vd-dot-hover); }
.videos__dot.is-active { background: var(--vd-dot-active); }
.videos__dot:focus-visible { outline: 2px solid var(--color-brand-blue-dark-ct); outline-offset: 4px; }

@media (prefers-reduced-motion: reduce) {
  .js .video-card,
  .video-card__play,
  .video-card__poster { transition: none; }
}

/* Desktop only: extra breathing room above section */
@media (min-width: 901px) {
  .videos { margin-top: var(--space-40); }
}

/* Mobile: bleed carousel to screen edges */
@media (max-width: 900px) {
  .videos__viewport { width: calc(100% + 2 * var(--content-gutter)); }
}

/* phones: active card 400px tall (225 × 16/9) */
@media (max-width: 600px) {
  .videos { --vc-w: 225px; --vc-pitch: 223px; }
}


/* ===== whatsapp-button.css ===== */
/* whatsapp-button — botão flutuante de suporte */

.whatsapp-button {
  position: fixed;
  right: 32px;
  bottom: 32px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-brand-green);
  border-radius: var(--radius-pill);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.075);
  cursor: pointer;
  /* abaixo da menubar, acima do conteúdo */
  z-index: 90;
  transition: var(--dur-media);
}

.whatsapp-button:hover {
  transform: scale(1.02);
  filter: brightness(105%);
  box-shadow: 0 4px 10px -4px rgba(0, 0, 0, 0.5);
  transition: transform var(--dur-media) ease-in-out, box-shadow var(--dur-base) ease-in;
}

@media (max-width: 600px) {
  .whatsapp-button {
    right: 16px;
    bottom: 16px;
  }
}


/* ===== cookie-alert.css ===== */
/* cookie-alert — banner de LGPD/cookies; oculto até app.js adicionar .is-visible */

.cookie-alert {
  position: fixed;
  left: var(--space-32);
  bottom: var(--space-32);
  /* largura limitada p/ não encostar no FAB */
  width: 90%;
  max-width: 360px;
  display: flex;
  align-items: center;
  gap: var(--space-12);
  padding: var(--space-12) var(--space-12) var(--space-12) var(--space-16);
  background: var(--color-bg);
  border: 0.5px solid var(--color-divider);
  /* raio concêntrico com o pill do botão */
  border-radius: calc((var(--fs-body) * var(--lh-relaxed) + 2 * var(--space-4)) / 2 + var(--space-12));
  box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.18);
  /* abaixo da menubar, acima do conteúdo e do FAB */
  z-index: 95;

  /* estado de repouso (oculto) */
  opacity: 0;
  transform: translateY(16px);
  visibility: hidden;
  transition: opacity 0.3s ease, transform 0.4s var(--ease-out),
    visibility 0s linear 0.4s;
}

.cookie-alert.is-visible {
  opacity: 1;
  transform: none;
  visibility: visible;
  transition: opacity 0.3s ease, transform 0.4s var(--ease-out),
    visibility 0s linear 0s;
}

.cookie-alert__text {
  margin: 0;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
  color: var(--color-text);
}

.cookie-alert__link {
  color: var(--color-brand-red);
  text-decoration: underline;
  cursor: pointer;
}

.cookie-alert__accept {
  flex-shrink: 0;
  border: none;
  border-radius: var(--radius-pill);
  padding: var(--space-4) var(--space-12);
  background: color-mix(in srgb, var(--color-brand-red) 6%, #fff);
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-relaxed);
  color: var(--color-brand-red);
  cursor: pointer;
  transition: background-color var(--dur-base) ease;
}

.cookie-alert__accept:hover {
  /* intensifica levemente o fundo */
  background: color-mix(in srgb, var(--color-brand-red) 12%, #fff);
}

@media (max-width: 600px) {
  .cookie-alert {
    left: var(--space-16);
    bottom: var(--space-16);
    /* reserva o FAB do WhatsApp à direita */
    width: auto;
    right: calc(var(--space-16) + 48px + var(--space-16));
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cookie-alert {
    transform: none;
    transition: opacity var(--dur-base) ease, visibility 0s linear var(--dur-base);
  }
  .cookie-alert.is-visible {
    transition: opacity var(--dur-base) ease, visibility 0s linear 0s;
  }
}


/* ===== split-panel.css ===== */
/* Copy + media side by side; zig-zag desktop, stacked mobile. */
.split-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-48);
  width: 100%;
  margin-block: 28px;
}

.split-panel--media-left { flex-direction: row-reverse; }

.split-panel__copy {
  flex: 1 1 0;
  min-width: 0;
  max-width: 448px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-16);
}

/* Eyebrow row — pill plus optional Novidade badge. */
.split-panel__eyebrow {
  display: inline-flex;
  align-items: center;
}

/* Novidade badge matches pill size. */
.split-panel__eyebrow .badge-new {
  height: 24px;
  padding: var(--space-2) var(--space-12);
}

.split-panel__title {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-display);
  line-height: var(--lh-tight);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  margin: 0;
}

.split-panel__subtitle {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  margin: 0;
}

.split-panel__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  width: 100%;
}

.split-panel__media {
  flex: 1 1 0;
  min-width: 0;
  max-width: 544px;
  height: 352px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface-soft);
  border-radius: var(--radius-xl);
  overflow: hidden;
}

.split-panel__media img {
  display: block;
  width: auto;
  max-width: 84%;
  height: auto;
  max-height: 300px;
  border-radius: var(--radius-lg);
  transition: transform var(--dur-slow) ease;
}

.split-panel__media:hover img { transform: scale(1.01); }

.split-panel--media-flush .split-panel__media { align-items: flex-end; }
.split-panel--media-flush .split-panel__media img {
  width: 92%;
  max-width: 92%;
  max-height: none;
  margin-bottom: -32px;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  filter: drop-shadow(0 -2px 12px rgba(0, 0, 0, 0.05));
  /* Hover zoom grows up into the card. */
  transform-origin: bottom;
}

@media (max-width: 900px) {
  .split-panel,
  .split-panel--media-left,
  .split-panel--media-flush {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: var(--space-24);
    margin-block: var(--space-8);
  }
  .split-panel__copy { max-width: 100%; align-items: center; text-align: center; }
  .split-panel__copy .pill { align-self: center; }
  .split-panel__copy .split-panel__eyebrow { align-self: center; }
  .split-panel__chips { justify-content: center; }

  .split-panel__media { flex: none; max-width: 460px; width: 100%; height: auto; padding: var(--space-16); margin: 0 auto; }
  .split-panel__media img { width: 86%; max-width: 86%; max-height: none; margin: 0 auto; }
  .split-panel--media-flush .split-panel__media { align-items: flex-end; padding-bottom: 0; }
  .split-panel--media-flush .split-panel__media img { width: 100%; max-width: 100%; margin-bottom: 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
}

/* Subtitle steps down to match title. */
@media (max-width: 600px) {
  .split-panel__subtitle { font-size: var(--fs-sm); }
}

@media (prefers-reduced-motion: reduce) {
  .split-panel__media img { transition: none; }
}


/* ===== signup.css ===== */
/* Formulário de cadastro embutido — campos do formulario-cadastro, posta em /form.
   Estrutura segue o Figma; todo o estilo vem dos tokens da landing. */
.signup {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-32);
  margin-block: 80px;
}

.signup__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-12);
  max-width: var(--content-narrow);
  text-align: center;
}

.signup__intro .pill { align-self: center; }

.signup__chips {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: var(--space-8);
}

/* desktop: chips numa única linha, sem quebra */
.signup__chips .chip { white-space: nowrap; flex-shrink: 0; }

/* Cartão do formulário */
.signup__card {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  width: 100%;
  max-width: 540px;
  padding: var(--space-24);
  background: var(--color-surface);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-xl);
}

.signup__card-title {
  display: none;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-lg);
  line-height: var(--lh-base);
  letter-spacing: var(--tracking-label);
  color: var(--color-text-muted);
  margin: 0;
}

/* Aviso azul — mesmo estilo do .form-subtitle do formulario-cadastro */
.signup__notice {
  width: 100%;
  margin: 0;
  padding: var(--space-8);
  border-radius: var(--radius-pill);
  background: var(--color-brand-blue-light);
  color: var(--color-instruction);
  text-align: center;
  text-wrap: balance;
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-relaxed);
}

.signup__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-16);
}

.signup__field {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.signup__field > label,
.signup__field-label,
.signup__label-row label {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text);
  margin: 0 0 var(--space-6);
}

.signup__label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-8);
}

.signup__label-row label { margin-bottom: var(--space-6); }

.signup__hint {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
  color: var(--ct-placeholder);
}

/* Campos — mesmo visual do form de contato do rodapé */
.signup__field input {
  width: 100%;
  height: 40px;
  padding: 0 var(--space-12);
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  font-family: var(--font);
  font-size: var(--fs-body);   /* 16px evita o zoom do iOS no foco */
  line-height: var(--lh-base);
  color: var(--color-text);
  outline: none;
  transition: box-shadow 0.25s ease;
}

.signup__field input::placeholder { color: var(--ct-placeholder); }

.signup__field input:focus {
  box-shadow: inset 0 0 0 2px rgba(31, 134, 237, 0.364);
}

.signup__field input[aria-invalid="true"] {
  border-color: var(--color-brand-red);
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--color-brand-red) 28%, transparent);
}

/* Label do dropdown alinhado aos demais campos */
.signup__field .dropdown-cdp { margin-top: 0; }

/* Segmented control / tabs */
.segmented {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; height: 44px; padding: var(--space-4);
  background: var(--color-surface-muted, var(--color-track));
  border-radius: var(--radius-pill); box-sizing: border-box; overflow: hidden;
}
.segmented__btn {
  flex: 1 0 0; display: flex; align-items: center; justify-content: center;
  height: 100%; padding: 0 var(--space-4);
  border: 1px solid transparent; background: transparent;
  font-family: var(--font); font-size: var(--fs-sm); font-weight: var(--fw-medium);
  line-height: 16px; text-align: center; color: var(--color-text-muted);
  border-radius: var(--radius-pill); cursor: pointer;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.segmented__btn:hover:not([aria-pressed="true"]):not([aria-selected="true"]) { color: var(--color-text); }
.segmented__btn[aria-pressed="true"], .segmented__btn[aria-selected="true"] {
  background: var(--color-surface);
  color: var(--primaryColor, var(--color-brand-red));
  box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.2);
}
.segmented__btn:focus-visible { outline: 2px solid rgba(31, 134, 237, 0.5); outline-offset: -2px; }
/* No mobile, labels em escala tipográfica menor p/ caber melhor */
@media (max-width: 600px) { .segmented__btn { font-size: var(--fs-xs); } }

/* Senha — botão de mostrar/ocultar sobre o campo */
.signup__password { position: relative; }
.signup__password input { padding-right: 40px; }

.signup__password-toggle {
  position: absolute;
  top: 0;
  right: var(--space-4);
  height: 40px;
  width: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  border-radius: var(--radius-md);
}

.signup__password-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-instruction) 35%, transparent);
}

/* Mostrar/ocultar senha — troca de SVG por classe de estado (mesmo comportamento do formulario-cadastro) */
.signup__password-toggle .svg-eye-slash { display: none; }
.signup__password-toggle.is-revealed .svg-eye-open { display: none; }
.signup__password-toggle.is-revealed .svg-eye-slash { display: block; }

.signup__error {
  font-family: var(--font);
  font-weight: var(--fw-medium);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-brand-red);
  margin: 0;
}

.signup__error[hidden] { display: none; }

/* Botão usa o visual .cta-primary; aqui só o conteúdo de loading */
.signup__submit { margin-top: var(--space-4); }
.signup__submit.is-loading .signup__submit-label { opacity: 0.85; }

/* Spinner por CSS (não SMIL) p/ respeitar prefers-reduced-motion */
@keyframes signup-spin { to { transform: rotate(360deg); } }
.cta-primary.is-loading .cta-primary__spinner {
  transform-origin: center;
  animation: signup-spin 0.7s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .cta-primary.is-loading .cta-primary__spinner { animation: none; }
}

.signup__terms {
  text-align: center;
  font-family: var(--font);
  font-weight: var(--fw-regular);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
  color: var(--color-text-subtle);
  margin: 0;
}

.signup__terms a {
  color: var(--color-text-subtle);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--dur-quick) ease;
}

.signup__terms a:hover { color: var(--color-text); }

/* Dropdown de segmento — cópia do componente do formulario-cadastro (tokens da landing).
   Manter em sincronia com css/extra/dropdown-cdp.css (mesmas classes, tokens diferentes). */
.dropdown-cdp {
  width: 100%;
  position: relative;
  cursor: pointer;
  user-select: none;
  margin-top: var(--space-4);
}

.dropdown-cdp-button {
  display: flex;
  height: 40px;
  box-sizing: border-box;
  align-items: center;
  place-content: space-between;
  padding: 0 var(--space-8) 0 var(--space-12);
  border: 1px solid transparent;   /* reserva a borda p/ não deslocar o texto ao selecionar */
  border-radius: var(--radius-lg);
  background: #fff0f3;
  transition: box-shadow var(--dur-base) ease;
  position: relative;
}

.dropdown-cdp-button:not(.clicked):not(.selected) {
  animation: dropdown-cdp-pulse 1.75s infinite;
}

@keyframes dropdown-cdp-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(228, 0, 43, 0.25); }
  70%  { box-shadow: 0 0 0 5px rgba(228, 0, 43, 0); }
  100% { box-shadow: 0 0 0 0 rgba(228, 0, 43, 0); }
}

.dropdown-cdp-button:hover { box-shadow: 0 0 4px 0 rgba(228, 0, 43, 0.25); }
.dropdown-cdp-button.selected:hover { box-shadow: none; }

.dropdown-cdp-button.clicked,
.dropdown-cdp-button.selected {
  background: var(--color-surface);
  border-color: var(--color-divider);
}

/* só o estado aberto eleva; selecionado (fechado) fica plano, com a borda cinza dos campos */
.dropdown-cdp-button.clicked { box-shadow: var(--shadow-lift); }

/* Foco: mesmo anel azul dos campos de texto (.signup__field input:focus) */
.dropdown-cdp-button:focus {
  animation: none;
  box-shadow: inset 0 0 0 2px rgba(31, 134, 237, 0.364);
}

.dropdown-cdp-button span {
  color: var(--color-brand-red);
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  line-height: var(--lh-base);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.dropdown-cdp-button.clicked span,
.dropdown-cdp-button.selected span { color: var(--color-text); }
.dropdown-cdp-button.selected span { font-weight: var(--fw-medium); }

.dropdown-cdp-button svg {
  min-width: 24px;
  height: 24px;
  align-self: center;
  margin-left: var(--space-8);
  transition: transform var(--dur-base) ease;
}

.dropdown-cdp-button.clicked svg { transform: rotate(180deg); }
.dropdown-cdp-button.clicked svg path,
.dropdown-cdp-button.selected svg path { fill: var(--color-text); }

.dropdown-cdp-button.error { animation: dropdown-cdp-error 1.5s infinite; }

@keyframes dropdown-cdp-error {
  0%   { box-shadow: 0 0 0 0 rgba(176, 0, 32, 0.4); }
  70%  { box-shadow: 0 0 0 8px rgba(176, 0, 32, 0); }
  100% { box-shadow: 0 0 0 0 rgba(176, 0, 32, 0); }
}

.dropdown-cdp-button.error::after {
  content: "Selecione o segmento";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  padding-left: var(--space-12);
  border-radius: var(--radius-lg);
  background: var(--ct-ghost-red-bg);
  color: var(--color-brand-red);
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
}

.dropdown-cdp-content {
  display: none;
  position: absolute;
  top: 44px;
  width: 100%;
  box-sizing: border-box;
  max-height: 280px;
  padding: var(--space-8);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-divider);
  background: var(--color-surface);
  box-shadow: var(--shadow-float);
  z-index: 1000;
}

.dropdown-cdp-content.show { display: block; }

.dropdown-cdp-search { position: relative; display: flex; align-items: center; }
.dropdown-cdp-search svg { position: absolute; right: var(--space-8); }

.dropdown-cdp-search input[type="text"] {
  width: 100%;
  height: 44px;
  padding: 0 var(--space-8);
  border: none;
  border-bottom: 1px solid var(--color-divider);
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  outline: none;
  transition: box-shadow var(--dur-base) ease;
}

.dropdown-cdp-search input[type="text"]:focus {
  outline: none;
  background: var(--color-surface);
  box-shadow: inset 0 0 0 2px rgba(31, 134, 237, 0.364);
}

.dropdown-cdp-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-height: 216px;
  padding-top: var(--space-8);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
}
.dropdown-cdp-list::-webkit-scrollbar { width: 0; }

.option-cdp {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  padding: var(--space-8);
  margin-bottom: var(--space-4);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text);
  font-family: var(--font);
  font-size: var(--fs-body);
  font-weight: var(--fw-regular);
  text-decoration: none;
  align-items: center;
  justify-content: space-between;
}

.option-cdp:hover,
.option-cdp:focus {
  color: var(--color-brand-red);
  outline: none;
  box-shadow: 0 0 8px -4px rgba(0, 0, 0, 0.3), 0 0 2px 0 rgba(0, 0, 0, 0.25) inset;
}

.option-cdp.selected { color: var(--color-brand-red); font-weight: var(--fw-medium); }
.option-cdp.selected .svg-cdp-yes { display: flex; }
.option-cdp.selected:hover {
  color: var(--color-text);
  border: 1px solid var(--color-text);
  background: var(--color-surface-soft);
  padding: 7px;
}
.option-cdp.selected:hover .svg-cdp-no { display: block; }
.option-cdp.selected:hover .svg-cdp-yes { display: none; }

.option-cdp-name { display: flex; align-items: center; }
.option-cdp-name > div { display: flex; justify-content: center; }

.svg-cdp-yes,
.svg-cdp-no { display: none; margin-left: -4px; }

@media (prefers-reduced-motion: reduce) {
  .dropdown-cdp-button:not(.clicked):not(.selected),
  .dropdown-cdp-button.error { animation: none; }
  .dropdown-cdp-button svg { transition: none; }
}

@media (max-width: 900px) {
  .signup { margin-block: var(--space-32); }
  .signup__chips { flex-wrap: wrap; }
}

@media (max-width: 600px) {
  .signup { gap: var(--space-24); }
  .signup .panel-intro__title { font-size: var(--fs-title); }
  .signup__card { padding: var(--space-16); }
  .signup__row { grid-template-columns: 1fr; }
}

.d-flex {
    display: flex;
}

.creating-project svg:not(.not-wl) * {
  fill: var(--color-brand-red);
}

.creating-project {
    height: 100%;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    background-color: var(--color-surface);
    z-index: 10;
}

.creating-project.gif {
    z-index: 2000;
}

.creating-project div {
    text-align: center;
    justify-content: center;
}

.creating-project img {
    width: 128px;
    margin-bottom: var(--space-24);
}

#lottie-loading {
    width: 400px;
    height: 400px;
    margin: 0 auto -48px;
    opacity: 0.18;
}

.creating-project p {
    min-height: 32px;
    font-family: var(--font);
    font-style: normal;
    font-weight: var(--fw-regular);
    font-size: var(--fs-title);
    line-height: 32px;
    text-align: center;
    color: var(--color-text);
    margin-top: var(--space-24);
    margin-right: var(--space-2);
    white-space: normal;
}

.creating-project.finish p {
    margin-right: 0;
}

.creating-project p.finished {
    color: var(--color-success);
    margin: unset;
    margin-bottom: var(--space-4);
}

.creating-project p.text {
    height: unset;
    font-family: var(--font);
    font-style: normal;
    font-weight: var(--fw-regular);
    font-size: var(--fs-body);
    line-height: 24px;
    text-align: center;
    color: var(--color-text);
    margin: unset;
}

.creating-project p.mail {
    font-weight: var(--fw-bold);
}

.creating-project span {
    height: 32px;
    font-family: var(--font);
    font-style: normal;
    font-weight: var(--fw-medium);
    font-size: var(--fs-title);
    line-height: 80px;
    color: var(--color-text);
    opacity: 0;
}

.creating-project span:nth-child(2) {
    -webkit-animation: dot 1.3s infinite;
    -webkit-animation-delay: 0.1s;
    animation: dot 1.3s infinite;
    animation-delay: 0.1s;
}

.creating-project span:nth-child(3) {
    -webkit-animation: dot 1.3s infinite;
    -webkit-animation-delay: 0.2s;
    animation: dot 1.3s infinite;
    animation-delay: 0.2s;
}

.creating-project span:nth-child(4) {
    -webkit-animation: dot 1.3s infinite;
    -webkit-animation-delay: 0.3s;
    animation: dot 1.3s infinite;
    animation-delay: 0.3s;
}

.creating-project.finish span {
    display: none;
}

.creating-project form {
    display: flex;
    justify-content: center;
    padding-top: var(--space-32);
}

.creating-project input[type="submit"] {
    background: var(--color-brand-red);
    border-radius: var(--radius-md) !important;
    font-family: var(--font);
    font-style: normal;
    font-weight: var(--fw-regular);
    font-size: var(--fs-body);
    line-height: 24px;
    color: var(--color-on-brand);
    height: 40px;
    cursor: pointer;
    border: none !important;
    box-shadow: none !important;
    padding: 0 var(--space-24);
    transition: opacity 0.2s;
}

.creating-project input[type="submit"]:hover {
    opacity: 0.85;
}

@media screen and (max-width: 640px) {
    #lottie-loading {
        width: 100%;
        height: auto;
        max-width: 100vw;
    }

    .creating-project .center-abs {
        width: 100%;
        padding: 0 var(--space-16);
        box-sizing: border-box;
    }

    .creating-project p {
        font-size: var(--fs-body);
        line-height: 24px;
        min-height: 24px;
        white-space: nowrap;
    }

    .creating-project span {
        font-size: var(--fs-body);
        line-height: 24px;
        height: auto;
    }

    .creating-project .d-flex {
        justify-content: center;
        align-items: baseline;
    }
}

@-webkit-keyframes dot {
    0% {
        opacity: 0;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes dot {
    0% {
        opacity: 0;
    }

    50% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

/* Blog strip — carrossel horizontal com os últimos artigos, antes do rodapé */
.blog-strip {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
  width: 100%;
  padding: var(--space-32);
  border-radius: var(--radius-xl);
  background: var(--color-surface-soft);
  overflow: hidden;
}

.blog-strip__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-24);
}

.blog-strip__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-8);
  max-width: 640px;
}

.blog-strip__title {
  margin: 0;
  font-size: var(--fs-title);
  line-height: var(--lh-snug);
  letter-spacing: var(--tracking-title);
  color: var(--color-text-soft);
  text-wrap: balance;
}

.blog-strip__actions {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  flex-shrink: 0;
}

/* Cor e hover vêm do .ghost-btn--red; aqui só o dimensionamento no cabeçalho */
.blog-strip__all {
  width: auto;
  padding-inline: var(--space-24);
  white-space: nowrap;
}

/* Setas ocultas, navegação por swipe. O handler delas em inicio.js segue ativo. */
.blog-strip__arrows {
  display: none;
  gap: var(--space-8);
}

.blog-strip__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--color-border-subtle);
  background: var(--color-surface);
  color: var(--color-text-soft);
  cursor: pointer;
  transition: border-color var(--dur-hover) var(--ease-out), opacity var(--dur-hover) var(--ease-out);
}

.blog-strip__arrow:hover { border-color: var(--color-border); }
.blog-strip__arrow:disabled { opacity: 0.35; cursor: default; }
.blog-strip__arrow[data-blog-prev] svg { transform: rotate(180deg); }

.blog-strip__track {
  display: flex;
  gap: var(--space-16);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  /* full bleed: o trilho anula o padding lateral da section e o devolve como
     padding próprio, então o primeiro card alinha ao título e os demais
     sangram até a borda. 2px no topo dão respiro ao hover do card. */
  padding: 2px var(--space-32) var(--space-8);
  margin: -2px calc(var(--space-32) * -1) calc(var(--space-8) * -1);
  scroll-padding-left: var(--space-32);
}

.blog-strip__track::-webkit-scrollbar { display: none; }

.blog-strip__card {
  display: flex;
  flex-direction: column;
  flex: 0 0 300px;
  scroll-snap-align: start;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-soft);
  background: var(--color-surface);
  overflow: hidden;
  text-decoration: none;
  transition: transform var(--dur-hover) var(--ease-out);
}

@media (hover: hover) and (min-width: 901px) {
  .blog-strip__card:hover { transform: scale(1.008); }
  .blog-strip__card:hover .blog-strip__card-img img { transform: scale(1.01); }
}

/* O fundo vale para todos os cards: sem capa mostra a inicial e, se a imagem
   do post estiver quebrada, o card degrada para o gradiente em vez de branco. */
.blog-strip__card-img {
  display: block;
  position: relative;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, var(--color-brand-blue-light) 0%, var(--color-surface-soft) 100%);
  overflow: hidden;
}

.blog-strip__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease-out);
}

.blog-strip__card-inicial {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: var(--fs-hero);
  font-weight: var(--fw-medium);
  color: var(--color-instruction);
  opacity: 0.25;
}

.blog-strip__card-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 4px);
  padding: var(--space-16);
}

.blog-strip__card-meta {
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}

.blog-strip__card-title {
  font-size: var(--fs-body);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.blog-strip__card-desc {
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  color: var(--color-text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 900px) {
  .blog-strip {
    padding: var(--space-24) var(--space-16);
    gap: var(--space-16);
  }

  /* o trilho sangra até a borda do painel para sugerir o swipe */
  .blog-strip__track {
    padding-inline: var(--space-16);
    margin-inline: calc(var(--space-16) * -1);
    scroll-padding-left: var(--space-16);
  }

  .blog-strip__card { flex-basis: 78vw; max-width: 300px; }
}

/* No celular o título e o botão não dividem a linha, então a head empilha.
   No tablet ainda cabem lado a lado, com o título quebrando em duas linhas. */
@media (max-width: 599px) {
  .blog-strip__head {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-12);
  }
}
