/* ==========================================================================
   FMM — site institucional
   Camada do site sobre o design system (tokens, base e componentes).
   Sem ícones: controles usam texto; elementos gráficos partem da
   inclinação de 45° do símbolo FMM.
   ========================================================================== */

:root {
  --site-line: rgba(255, 255, 255, 0.08);
  --site-line-strong: rgba(255, 255, 255, 0.14);
  --site-blue-soft: rgba(127, 142, 243, 0.16);
  --site-radius-card: var(--fmm-radius-xl);
}

body { overflow-x: clip; }
main:focus { outline: none; }

/* ---------- Entrada da página ----------
   Só o topo de cada página anima ao carregar (curto). O resto do conteúdo
   aparece imediatamente: nada fica invisível esperando a rolagem. */
.js [data-intro] { animation: site-in 560ms var(--fmm-ease-out) both; animation-delay: calc(var(--d, 0) * 70ms); }
@keyframes site-in { from { opacity: 0; transform: translateY(12px); } }
@media (prefers-reduced-motion: reduce) { .js [data-intro] { animation: none; } }

/* ---------- Cabeçalho ---------- */
.fmm-header { position: fixed; inset: 0 0 auto 0; }
.site-lang { min-width: 48px; letter-spacing: 0.04em; }
.fmm-mobile-menu__list a::after { content: none; }

/* ---------- Títulos de seção ---------- */
.site-head { display: grid; gap: var(--fmm-space-4); max-width: 980px; margin-bottom: clamp(var(--fmm-space-10), 5vw, var(--fmm-space-16)); }
.site-head__title { font: var(--fmm-font-weight-bold) clamp(2rem, 1.3rem + 2.6vw, 3.5rem) / 1.06 var(--fmm-font-family-brand); letter-spacing: -0.03em; text-wrap: balance; }
.site-head--split { max-width: none; }
@media (min-width: 1024px) {
  .site-head--split { grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: var(--fmm-space-12); }
  .site-head--split > div:first-child { max-width: 760px; display: grid; gap: var(--fmm-space-4); }
}
.fmm-section { padding-block: clamp(4rem, 2.5rem + 4.5vw, 7rem); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hx { position: relative; isolation: isolate; padding-top: calc(var(--fmm-header-height) + clamp(3rem, 2rem + 5vw, 7rem)); padding-bottom: clamp(4rem, 3rem + 4vw, 7rem); overflow: clip; }
.hx::before {
  content: ""; position: absolute; z-index: -1; inset: -10% -20% auto; height: 110%; pointer-events: none;
  background:
    radial-gradient(38% 40% at 50% 18%, rgba(71, 73, 207, 0.34), transparent 70%),
    radial-gradient(60% 40% at 50% 62%, rgba(155, 170, 253, 0.08), transparent 70%);
}
.hx::after {
  content: ""; position: absolute; z-index: -1; inset: auto 0 0; height: 30%; pointer-events: none;
  background: linear-gradient(to bottom, transparent, var(--fmm-color-bg));
}
.hx-field { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; pointer-events: none;
  -webkit-mask-image: radial-gradient(70% 60% at 50% 35%, #000 30%, transparent 80%); mask-image: radial-gradient(70% 60% at 50% 35%, #000 30%, transparent 80%); }
.hx__inner { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
.hx__title { font: var(--fmm-font-weight-bold) clamp(2.4rem, 1.2rem + 4vw, 4.6rem) / 1.02 var(--fmm-font-family-brand); letter-spacing: -0.04em; max-width: 19ch; text-wrap: balance; }
.hx__lead { margin-top: var(--fmm-space-6); font: var(--fmm-text-lead); color: var(--fmm-color-text-secondary); max-width: 58ch; text-wrap: pretty; }
.hx__lead strong { display: block; margin-bottom: var(--fmm-space-2); color: var(--fmm-color-text); font-weight: var(--fmm-font-weight-semibold); }
.hx__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--fmm-space-3); margin-top: var(--fmm-space-10); }
@media (max-width: 479.98px) {
  .hx__inner { justify-items: start; text-align: left; }
  .hx__actions { justify-content: stretch; width: 100%; }
  .hx__actions .fmm-btn { flex: 1 1 100%; }
}
.hx__visual { width: 100%; margin-top: clamp(3.5rem, 2rem + 5vw, 6rem); perspective: 1600px; }

/* Console animado */
.hx-console {
  --tilt: 1;
  width: min(1080px, 100%); margin-inline: auto; border-radius: var(--fmm-radius-xl); overflow: hidden; text-align: left;
  transform: rotateX(calc(var(--tilt) * 14deg)) scale(calc(1 - var(--tilt) * 0.04)); transform-origin: 50% 0;
  background: linear-gradient(180deg, var(--fmm-neutral-800), var(--fmm-neutral-850)); border: 1px solid var(--site-line-strong);
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.75), 0 8px 20px -8px rgba(0, 0, 0, 0.5);
}
.hx-console__bar { display: flex; align-items: center; gap: var(--fmm-space-4); height: 44px; padding-inline: var(--fmm-space-4); border-bottom: 1px solid var(--site-line); }
.hx-dots { display: flex; gap: 6px; }
.hx-dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--fmm-neutral-600); }
.hx-console__title { font: var(--fmm-font-weight-medium) 13px / 1 var(--fmm-font-family-mono); color: var(--fmm-color-text-tertiary); }
.hx-live { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; font: var(--fmm-font-weight-semibold) 12px / 1 var(--fmm-font-family-brand); color: var(--fmm-color-text-secondary); text-transform: lowercase; }
.hx-live i { width: 8px; height: 8px; border-radius: 50%; background: var(--fmm-color-success); }
.hx-console__tabs { display: flex; gap: 2px; padding: var(--fmm-space-2) var(--fmm-space-3) 0; border-bottom: 1px solid var(--site-line); overflow-x: auto; overflow-y: hidden; }
.hx-tab { position: relative; flex-shrink: 0; min-height: var(--fmm-space-12); padding: 10px 14px 12px; border: 0; background: none; cursor: pointer; font: var(--fmm-font-weight-semibold) 13px / 1 var(--fmm-font-family-brand); color: var(--fmm-color-text-tertiary); white-space: nowrap; transition: color var(--fmm-duration-base); }
.hx-tab:hover { color: var(--fmm-color-text); }
.hx-tab:focus-visible { outline-offset: calc(-1 * var(--fmm-focus-width)); }
.hx-tab::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--fmm-color-text-accent); transform: scaleX(0); transform-origin: left; transition: transform 500ms var(--fmm-ease-out); }
.hx-tab.is-active { color: var(--fmm-color-text); }
.hx-tab.is-active::after { transform: scaleX(1); }
@media (max-width: 767.98px) {
  .hx-console__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hx-tab { white-space: normal; }
}
.hx-console__body { display: grid; grid-template-columns: 1fr; min-height: 320px; }
@media (min-width: 768px) { .hx-console__body { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.hx-flow { display: none; padding: var(--fmm-space-6); }
.hx-flow.is-active { display: block; animation: site-fade 500ms var(--fmm-ease-out); }
@keyframes site-fade { from { opacity: 0; transform: translateY(6px); } }
.hx-flow__name { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); margin-bottom: var(--fmm-space-5); }
.hx-flow__name b { color: var(--fmm-color-text); font-weight: 600; }
.hx-stages { display: grid; gap: var(--fmm-space-3); }
.hx-stage {
  position: relative; display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto 6px; column-gap: var(--fmm-space-3); row-gap: 10px; align-items: center;
  padding: 14px 16px; border-radius: var(--fmm-radius-md); background: rgba(255, 255, 255, 0.03); border: 1px solid var(--site-line);
  transition: background-color 400ms, border-color 400ms;
}
.hx-stage__n { grid-row: span 2; font: var(--fmm-font-weight-semibold) 13px / 1 var(--fmm-font-family-mono); color: var(--fmm-color-text-tertiary); }
.hx-stage__t { font: var(--fmm-font-weight-semibold) 15px / 1.2 var(--fmm-font-family-brand); color: var(--fmm-color-text-secondary); transition: color 300ms; }
.hx-stage__bar { position: relative; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.hx-stage__bar i { position: absolute; inset: 0; background: linear-gradient(90deg, var(--fmm-blue-500), var(--fmm-blue-300)); transform: scaleX(0); transform-origin: left; }
.hx-stage.is-run { border-color: rgba(155, 170, 253, 0.35); background: rgba(71, 73, 207, 0.10); }
.hx-stage.is-run .hx-stage__t, .hx-stage.is-done .hx-stage__t { color: var(--fmm-color-text); }
.hx-stage.is-run .hx-stage__bar i { animation: hx-fill var(--run, 1100ms) linear forwards; }
.hx-stage.is-done .hx-stage__bar i { transform: scaleX(1); background: var(--fmm-blue-400); }
.hx-stage.is-done .hx-stage__n { color: var(--fmm-color-text-accent); }
@keyframes hx-fill { to { transform: scaleX(1); } }
.hx-log { display: none; padding: var(--fmm-space-6); border-left: 1px solid var(--site-line); font: 13px / 1.7 var(--fmm-font-family-mono); color: var(--fmm-color-text-tertiary); overflow: hidden; position: relative; }
@media (min-width: 768px) { .hx-log { display: block; } }
.hx-log::after { content: ""; position: absolute; inset: 0 0 auto; height: 40px; background: linear-gradient(var(--fmm-neutral-800), transparent); opacity: 0.6; }
.hx-log p { display: flex; gap: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; animation: site-fade 400ms var(--fmm-ease-out); }
.hx-log time { color: var(--fmm-neutral-500); flex: none; }
.hx-log p.is-ok span { color: var(--fmm-color-text-secondary); }
.hx-log p.is-ok span::before { content: "ok  "; color: var(--fmm-color-success); }
@media (prefers-reduced-motion: reduce) { .hx-console { transform: none; } }

/* ---------- Faixa de clientes ---------- */
.cl { border-block: 1px solid var(--site-line); }
.cl__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fmm-space-6) var(--fmm-space-12); padding-block: var(--fmm-space-8); }
.cl__label { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-tertiary); max-width: 16ch; }
.cl__list { flex: 1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--fmm-space-6) clamp(1.5rem, 1rem + 3vw, 4rem); list-style: none; margin: 0; padding: 0; }
.cl__list li { display: flex; align-items: center; height: 48px; }
.cl__list a { display: flex; align-items: center; height: 100%; }
.cl__list img { height: var(--logo-h, 28px); width: auto; opacity: 0.78; transition: opacity var(--fmm-duration-base); }
.cl__list li:hover img, .cl__list a:focus-visible img { opacity: 1; }
@media (max-width: 767.98px) { .cl__inner { flex-direction: column; align-items: flex-start; } .cl__label { max-width: none; } .cl__list { justify-content: flex-start; gap: var(--fmm-space-4) var(--fmm-space-8); } .cl__list li { height: 40px; } .cl__list img { height: calc(var(--logo-h, 28px) * 0.85); } }

/* ---------- O que fazemos ---------- */
.sv__inner { display: grid; gap: var(--fmm-space-10); }
.sv-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--site-line); }
.sv-row { display: grid; gap: var(--fmm-space-3); padding-block: var(--fmm-space-8); border-bottom: 1px solid var(--site-line); }
@media (min-width: 1024px) {
  .sv__inner { grid-template-columns: minmax(0, 0.7fr) minmax(0, 2fr); align-items: start; }
  .sv-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); column-gap: var(--fmm-space-10); }
  .sv-row__cases { grid-column: 2; }
}
.sv-row__title { font: var(--fmm-font-weight-bold) 1.375rem / 1.25 var(--fmm-font-family-brand); letter-spacing: -0.015em; text-wrap: balance; }
.sv-row__text { font: var(--fmm-text-body); color: var(--fmm-color-text-secondary); max-width: 52ch; }
.sv-row__cases { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-tertiary); }
.sv-row__cases a { color: var(--fmm-color-text-secondary); text-underline-offset: 0.2em; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
.sv-row__cases a:hover { color: var(--fmm-color-text); text-decoration-color: currentColor; }

/* ---------- Desde 2005 ---------- */
.ab__inner { display: grid; gap: var(--fmm-space-6); }
@media (min-width: 1024px) { .ab__inner { grid-template-columns: minmax(0, 0.7fr) minmax(0, 2fr); } }
.ab__text { display: grid; gap: var(--fmm-space-4); font: var(--fmm-text-lead); color: var(--fmm-color-text-secondary); max-width: 62ch; }
.ab__text p:last-child { margin-top: var(--fmm-space-2); }

/* Luz que segue o ponteiro (cards e links grandes) */
[data-spot] { --mx: 50%; --my: 0%; }
[data-spot]::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity 400ms;
  background: radial-gradient(420px circle at var(--mx) var(--my), rgba(127, 142, 243, 0.12), transparent 60%);
}
[data-spot]:hover::before { opacity: 1; }

/* ---------- Antes e depois ---------- */
.ba-grid { display: grid; gap: var(--fmm-space-6); }
@media (min-width: 1024px) { .ba-grid { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: stretch; } }
.ba-label { font: var(--fmm-font-weight-semibold) 13px / 1 var(--fmm-font-family-brand); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fmm-color-text-tertiary); margin-bottom: var(--fmm-space-5); }
.ba-label--on { color: var(--fmm-color-text-accent); }
.ba-before { align-self: start; padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); border: 1px dashed var(--site-line-strong); border-radius: var(--site-radius-card); }
.ba-before__list { display: grid; gap: var(--fmm-space-3); counter-reset: b; }
.ba-before__item { counter-increment: b; position: relative; display: flex; gap: var(--fmm-space-3); padding: 14px 16px; border-radius: var(--fmm-radius-md); background: rgba(255, 255, 255, 0.03); color: var(--fmm-color-text-secondary); font: var(--fmm-text-body-sm); }
.ba-before__item::before { content: counter(b, decimal-leading-zero); font: 600 13px / 1.6 var(--fmm-font-family-mono); color: var(--fmm-color-text-tertiary); }
.ba-before__item span { text-decoration: line-through; text-decoration-color: transparent; text-decoration-thickness: 1px; transition: text-decoration-color 400ms var(--fmm-ease-out); transition-delay: calc(var(--i) * 160ms); }
.is-play .ba-before__item span { text-decoration-color: var(--fmm-color-text-tertiary); }
.ba-after { padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); border-radius: var(--site-radius-card); display: grid; align-content: start; background: var(--fmm-color-surface-1); border: 1px solid var(--site-line); }
.ba-after__list { display: grid; gap: var(--fmm-space-3); }
.ba-after__item {
  display: grid; grid-template-columns: 120px 1fr; gap: var(--fmm-space-4); align-items: baseline; padding: 16px 18px; border-radius: var(--fmm-radius-md);
  border: 1px solid var(--site-line); background: rgba(255, 255, 255, 0.02);
  transition: border-color 500ms var(--fmm-ease-out), background-color 500ms var(--fmm-ease-out);
  transition-delay: calc(900ms + var(--i) * 200ms);
}
.is-play .ba-after__item { border-color: rgba(155, 170, 253, 0.32); background: rgba(71, 73, 207, 0.08); }
.ba-after__k { font: var(--fmm-font-weight-bold) 15px / 1.3 var(--fmm-font-family-brand); color: var(--fmm-color-text-accent); }
.ba-after__t { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); }
@media (max-width: 479.98px) { .ba-after__item { grid-template-columns: 1fr; gap: 4px; } }
.ba-after__foot { margin-top: var(--fmm-space-8); padding-top: var(--fmm-space-6); border-top: 1px solid var(--site-line); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--fmm-space-5); }
.ba-after__stat { color: var(--fmm-color-text-secondary); font: var(--fmm-text-body-sm); max-width: 40ch; }
.ba-after__v { display: block; font: var(--fmm-font-weight-bold) clamp(2.5rem, 1.8rem + 2.5vw, 4rem) / 1 var(--fmm-font-family-brand); letter-spacing: -0.04em; color: var(--fmm-color-text); margin-bottom: var(--fmm-space-2); }
@media (prefers-reduced-motion: reduce) { .ba-after__item, .ba-before__item span { transition: none; } }

/* ==========================================================================
   CASES — cards idênticos
   ========================================================================== */
.cs-filters { margin: 0; }
.cs-grid { display: grid; gap: var(--fmm-grid-gutter); grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .cs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .cs-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.case-card {
  position: relative; display: grid; grid-template-rows: auto 1fr auto; border-radius: var(--site-radius-card); overflow: hidden;
  background: var(--fmm-color-surface-1); border: 1px solid var(--fmm-color-border-subtle);
  transition: border-color var(--fmm-duration-base), transform 600ms var(--fmm-ease-out), opacity 400ms, box-shadow 600ms var(--fmm-ease-out);
}
.case-card:hover { border-color: var(--fmm-color-border-strong); transform: translateY(-4px); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.8); }
.case-card:has(.fmm-card__link:focus-visible) { outline: var(--fmm-focus-width) solid var(--fmm-color-focus); outline-offset: var(--fmm-focus-offset); }
.case-card.is-hidden { display: none; }
.case-card__logo { height: 132px; display: flex; align-items: center; gap: var(--fmm-space-3); padding-inline: var(--fmm-space-8); border-bottom: 1px solid var(--site-line); }
.case-logo__word { font: var(--fmm-font-weight-bold) 2.375rem / 1 var(--fmm-font-family-brand); letter-spacing: -0.04em; color: var(--fmm-color-text); white-space: nowrap; }
.case-logo__img { height: var(--logo-h, 40px); width: auto; max-width: 70%; object-fit: contain; object-position: left center; }
.case-logo__sub { font: var(--fmm-font-weight-medium) 1.25rem / 1 var(--fmm-font-family-brand); color: var(--fmm-color-text-secondary); }
.case-card__body { display: grid; align-content: start; gap: var(--fmm-space-3); padding: var(--fmm-space-6) var(--fmm-space-8) var(--fmm-space-6); }
.case-card__type { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fmm-space-2) var(--fmm-space-3); font: var(--fmm-font-weight-semibold) 13px / 1.3 var(--fmm-font-family-brand); letter-spacing: 0.06em; text-transform: uppercase; color: var(--fmm-color-text-accent); }
.case-card__soon { text-transform: none; letter-spacing: 0.02em; }
.case-card__title { font: var(--fmm-font-weight-semibold) 1.1875rem / 1.35 var(--fmm-font-family-brand); letter-spacing: -0.01em; text-wrap: pretty; }
.case-card__text { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); }
.case-card__tags { display: flex; flex-wrap: wrap; gap: var(--fmm-space-2); list-style: none; margin: var(--fmm-space-2) 0 0; padding: 0; }
.case-card__media { padding: 0 var(--fmm-space-3) var(--fmm-space-3); }
.case-card__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: calc(var(--site-radius-card) - var(--fmm-space-3)); border: 1px solid var(--site-line); transition: transform 900ms var(--fmm-ease-out); }
.case-card:hover .case-card__img { transform: scale(1.03); }
.case-card__media { overflow: hidden; }

/* ---------- Método (linha que se desenha) ---------- */
.mt-grid, .cp-steps { position: relative; display: grid; gap: var(--fmm-space-8); grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .mt-grid, .cp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .mt-grid, .cp-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
[data-line]::before {
  content: ""; position: absolute; left: 0; right: 0; top: 18px; height: 1px; background: var(--site-line-strong);
  transform: scaleX(var(--line, 0)); transform-origin: left; transition: transform 1400ms var(--fmm-ease-out);
}
[data-line].is-in::before { --line: 1; }
@media (max-width: 1199.98px) { [data-line]::before { display: none; } }
.mt-step, .cp-step { position: relative; display: grid; gap: var(--fmm-space-3); align-content: start; padding-top: 0; }
.mt-step__n, .cp-step__n {
  display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; margin-bottom: var(--fmm-space-4);
  background: var(--fmm-color-bg); border: 1px solid var(--fmm-color-border-strong); font: 600 13px / 1 var(--fmm-font-family-mono); color: var(--fmm-color-text-accent);
}
.mt-step__title, .cp-step__title { font: var(--fmm-font-weight-bold) 1.375rem / 1.2 var(--fmm-font-family-brand); letter-spacing: -0.015em; }
.mt-step__text, .cp-step__text { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); max-width: 36ch; }
@media (max-width: 767.98px) {
  .mt-step { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
  .mt-step__n { margin-bottom: 0; }
  .mt-step__text { grid-column: 1 / -1; }
}
.mt__title { margin-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); }

/* ---------- Perguntas ---------- */
.fq__inner { display: grid; gap: var(--fmm-space-10); }
@media (min-width: 1024px) { .fq__inner { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); max-width: calc(var(--fmm-container-wide) + 2 * var(--fmm-container-pad)); } }
.site-acc summary { font: var(--fmm-font-weight-semibold) 1.125rem / 1.35 var(--fmm-font-family-brand); }
.site-acc-mark { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--fmm-color-border); transition: transform var(--fmm-duration-slow) var(--fmm-ease-out), background-color var(--fmm-duration-fast); }
.site-acc-mark::before, .site-acc-mark::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); }
.site-acc-mark::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform var(--fmm-duration-slow) var(--fmm-ease-out); }
.site-acc details[open] .site-acc-mark { background: var(--fmm-color-action-secondary); }
.site-acc details[open] .site-acc-mark::after { transform: translate(-50%, -50%) rotate(0deg); }
.site-acc .fmm-accordion__content { padding-right: 0; }

/* ---------- Chamada final ---------- */
.cta__box { position: relative; isolation: isolate; overflow: hidden; display: grid; gap: var(--fmm-space-8); padding: clamp(2.5rem, 1.5rem + 5vw, 6rem); border-radius: var(--site-radius-card); background: var(--fmm-color-surface-1); border: 1px solid var(--site-line); }
@media (min-width: 1024px) { .cta__box { grid-template-columns: minmax(0, 1fr) auto; align-items: end; } }
.cta__title { font: var(--fmm-font-weight-bold) clamp(2rem, 1.2rem + 3vw, 3.75rem) / 1.04 var(--fmm-font-family-brand); letter-spacing: -0.035em; max-width: 16ch; text-wrap: balance; margin-bottom: var(--fmm-space-5); }
.cta__actions { display: flex; flex-wrap: wrap; gap: var(--fmm-space-3); }
@media (max-width: 479.98px) { .cta__actions .fmm-btn { flex: 1 1 100%; } }
.cta__beams { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.cta__beams i { position: absolute; top: -60%; width: 160px; height: 220%; transform: rotate(45deg); background: linear-gradient(90deg, transparent, rgba(71, 73, 207, 0.22) 50%, transparent); animation: cta-beam 9s var(--fmm-ease-standard) infinite; will-change: translate; }
.cta__beams i:nth-child(1) { left: 50%; }
.cta__beams i:nth-child(2) { left: 68%; width: 80px; animation-delay: -3s; opacity: 0.7; }
.cta__beams i:nth-child(3) { left: 84%; width: 40px; animation-delay: -6s; opacity: 0.5; }
@keyframes cta-beam { 0%, 100% { translate: 0 0; } 50% { translate: -120px 0; } }
@media (prefers-reduced-motion: reduce) { .cta__beams i { animation: none; } }

/* ---------- Rodapé ---------- */
.site-footer { margin-top: var(--fmm-space-8); }
.site-footer__line { margin-top: var(--fmm-space-4); font: var(--fmm-text-body-sm); max-width: 30ch; }
.site-footer__base { gap: var(--fmm-space-4); font: var(--fmm-text-caption); color: var(--fmm-color-text-tertiary); }
.site-footer__base p { margin: 0; }

/* ---------- WhatsApp flutuante (texto, sem ícone) ---------- */
.site-wa {
  position: fixed; z-index: var(--fmm-z-sticky); right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px 0 16px; border-radius: var(--fmm-radius-pill);
  background: var(--fmm-glass-bg-strong); border: 1px solid var(--fmm-color-border); color: var(--fmm-color-text); text-decoration: none;
  font: var(--fmm-font-weight-semibold) 14px / 1 var(--fmm-font-family-brand); box-shadow: var(--fmm-shadow-2, 0 12px 32px rgba(0, 0, 0, 0.5));
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  transform: translateY(120%); opacity: 0; transition: transform 600ms var(--fmm-ease-out), opacity 400ms, border-color var(--fmm-duration-base), background-color var(--fmm-duration-base);
}
.site-wa.is-on, .no-js .site-wa { transform: none; opacity: 1; }
.site-wa:hover { border-color: var(--fmm-color-border-strong); background: var(--fmm-neutral-750); }
.site-wa__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fmm-color-success); }
.site-wa__short { display: none; }
@media (max-width: 479.98px) { .site-wa__long { display: none; } .site-wa__short { display: inline; } }
@media (prefers-reduced-motion: reduce) { .site-wa { transition: none; } }

/* ==========================================================================
   PÁGINA DE CASE
   ========================================================================== */
.cp-hero { padding-top: calc(var(--fmm-header-height) + var(--fmm-space-10)); padding-bottom: clamp(3rem, 2rem + 3vw, 5rem); }
.cp-crumb { margin-bottom: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.cp-hero__grid { display: grid; gap: var(--fmm-space-10); }
@media (min-width: 1024px) { .cp-hero__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: end; gap: var(--fmm-space-16); } }
.cp-hero__text { display: grid; gap: var(--fmm-space-5); justify-items: start; }
.cp-logo { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fmm-space-3) var(--fmm-space-4); min-height: 72px; margin-bottom: var(--fmm-space-6); }
.cp-logo .case-logo__word { font-size: clamp(2.75rem, 2rem + 2.5vw, 4rem); }
.cp-logo .case-logo__img { height: calc(var(--logo-h, 52px) * 1.15); max-width: 100%; }
.cp-logo .case-logo__sub { font-size: 1.5rem; }
.cp-hnote { font: var(--fmm-text-caption); color: var(--fmm-color-text-tertiary); margin-top: calc(-1 * var(--fmm-space-2)); }
.cp-title { font: var(--fmm-font-weight-bold) clamp(2.25rem, 1.3rem + 3.6vw, 4.5rem) / 1.03 var(--fmm-font-family-brand); letter-spacing: -0.04em; max-width: 18ch; text-wrap: balance; }
.cp-meta { display: grid; gap: var(--fmm-space-5); margin: 0; padding: var(--fmm-space-6); border: 1px solid var(--site-line); border-radius: var(--fmm-radius-lg); background: rgba(255, 255, 255, 0.02); }
.cp-meta div { display: grid; gap: 6px; }
.cp-meta div + div { padding-top: var(--fmm-space-5); border-top: 1px solid var(--site-line); }
.cp-meta dt { font: var(--fmm-text-caption); color: var(--fmm-color-text-tertiary); letter-spacing: 0.04em; }
.cp-meta dd { margin: 0; font: var(--fmm-font-weight-semibold) var(--fmm-font-size-body-sm) / 1.4 var(--fmm-font-family-brand); }
.cp-meta .case-card__tags { margin: 4px 0 0; }
.cp-cover { margin-top: clamp(3rem, 2rem + 4vw, 6rem); padding: var(--fmm-space-3); border-radius: var(--site-radius-card); perspective: 1400px; background: var(--fmm-color-surface-1); border: 1px solid var(--site-line); }
.cp-cover__img { width: 100%; border-radius: var(--fmm-radius-lg); transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform 300ms var(--fmm-ease-out); }
.cp-h2 { font: var(--fmm-font-weight-bold) clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem) / 1.1 var(--fmm-font-family-brand); letter-spacing: -0.03em; margin-bottom: var(--fmm-space-10); }
.cp-two { display: grid; gap: var(--fmm-space-6); }
@media (min-width: 1024px) { .cp-two { grid-template-columns: minmax(0, 0.6fr) minmax(0, 1.4fr); } .cp-two .cp-h2 { margin: 0; } }
.cp-big { font: var(--fmm-font-weight-medium) clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem) / 1.45 var(--fmm-font-family-brand); letter-spacing: -0.01em; max-width: 46ch; text-wrap: pretty; }
.cp-before { margin-top: var(--fmm-space-10); }
.cp-before ol { display: flex; flex-wrap: wrap; gap: var(--fmm-space-2); counter-reset: b; }
.cp-before li { counter-increment: b; display: inline-flex; gap: 10px; padding: 10px 14px; border-radius: var(--fmm-radius-pill); border: 1px dashed var(--site-line-strong); color: var(--fmm-color-text-secondary); font: var(--fmm-text-body-sm); }
.cp-before li::before { content: counter(b, decimal-leading-zero); font: 600 12px / 1.7 var(--fmm-font-family-mono); color: var(--fmm-color-text-tertiary); }
.cp-solution, .cp-results { border-top: 1px solid var(--site-line); }
.cp-res-grid { display: grid; gap: var(--fmm-grid-gutter); grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .cp-res-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .cp-res-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.cp-res { display: grid; gap: var(--fmm-space-3); align-content: start; padding: var(--fmm-space-6); border-radius: var(--fmm-radius-lg); border: 1px solid var(--site-line); background: var(--fmm-color-surface-1); }
.cp-res__v { font: var(--fmm-font-weight-bold) clamp(2rem, 1.5rem + 1.6vw, 2.75rem) / 1.05 var(--fmm-font-family-brand); letter-spacing: -0.04em; }
.cp-res__l { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); }
.cp-note { margin-top: var(--fmm-space-6); font: var(--fmm-text-caption); color: var(--fmm-color-text-tertiary); max-width: 80ch; }
.cp-status { font: var(--fmm-text-lead); color: var(--fmm-color-text-secondary); }
.cp-shots { display: grid; gap: clamp(2.5rem, 2rem + 2vw, 4rem) var(--fmm-grid-gutter); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .cp-shots { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cp-shot--wide { grid-column: 1 / -1; } }
.cp-shot { display: grid; gap: var(--fmm-space-4); }
.cp-shot__frame { padding: var(--fmm-space-3); border-radius: var(--site-radius-card); background: var(--fmm-color-surface-1); border: 1px solid var(--site-line); }
.cp-shot__frame { position: relative; display: grid; place-items: center; width: 100%; color: inherit; font: inherit; cursor: zoom-in; transition: border-color var(--fmm-duration-base); }
.cp-shot__frame:hover { border-color: var(--fmm-color-border-strong); }
.cp-shot__hint {
  position: absolute; right: calc(var(--fmm-space-3) + 12px); bottom: calc(var(--fmm-space-3) + 12px); padding: 8px 14px; border-radius: var(--fmm-radius-pill);
  background: rgba(5, 12, 17, 0.86); border: 1px solid var(--fmm-color-border); color: var(--fmm-color-text); font: var(--fmm-text-label);
  opacity: 0; transform: translateY(4px); transition: opacity var(--fmm-duration-base), transform var(--fmm-duration-base) var(--fmm-ease-out);
}
.cp-shot__frame:hover .cp-shot__hint, .cp-shot__frame:focus-visible .cp-shot__hint { opacity: 1; transform: none; }
@media (hover: none) { .cp-shot__hint { opacity: 1; transform: none; } }

/* Galeria em tela cheia */
.gl {
  width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  border: 0; background: rgba(2, 6, 8, 0.985); color: var(--fmm-color-text);
  display: none; grid-template-rows: auto minmax(0, 1fr) auto; gap: var(--fmm-space-4);
}
.gl[open] { display: grid; animation: fmm-fade var(--fmm-duration-slow) var(--fmm-ease-out); }
.gl::backdrop { background: rgba(2, 6, 8, 0.7); }
.gl__top { display: flex; align-items: center; justify-content: space-between; gap: var(--fmm-space-4); width: min(1600px, 100%); margin-inline: auto; }
.gl__count { font: var(--fmm-text-label); color: var(--fmm-color-text-secondary); font-variant-numeric: tabular-nums; }
.gl__stage { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: var(--fmm-space-3); min-height: 0; width: min(1600px, 100%); margin-inline: auto; touch-action: pan-y pinch-zoom; }
.gl__img { justify-self: center; align-self: center; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: var(--fmm-radius-md); background: #fff; }
.gl__cap { text-align: center; font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); }
.gl__nav { display: flex; justify-content: center; gap: var(--fmm-space-3); }
.gl__nav .fmm-btn { min-width: 132px; }
@media (prefers-reduced-motion: reduce) { .gl[open] { animation: none; } }
.cp-shot__img { width: auto; max-width: 100%; border-radius: var(--fmm-radius-lg); background: #fff; }
.cp-shot__cap { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); }
.cp-nav { display: grid; gap: var(--fmm-grid-gutter); grid-template-columns: 1fr; }
@media (min-width: 768px) { .cp-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cp-nav__card {
  position: relative; display: grid; gap: var(--fmm-space-5); align-content: start; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-radius: var(--site-radius-card);
  border: 1px solid var(--site-line); background: var(--fmm-color-surface-1); color: var(--fmm-color-text); text-decoration: none; overflow: hidden;
  transition: border-color var(--fmm-duration-base), transform 500ms var(--fmm-ease-out);
}
.cp-nav__card:hover { border-color: var(--fmm-color-border-strong); transform: translateY(-3px); }
.cp-nav__card:focus-visible { outline: var(--fmm-focus-width) solid var(--fmm-color-focus); outline-offset: var(--fmm-focus-offset); }
.cp-nav__card--next { justify-items: end; text-align: right; }
.cp-nav__k { font: var(--fmm-font-weight-semibold) 13px / 1 var(--fmm-font-family-brand); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fmm-color-text-accent); }
.cp-nav__logo { display: flex; align-items: center; gap: var(--fmm-space-3); min-height: 64px; }
.cp-nav__logo .case-logo__img { max-width: 100%; }
.cp-nav__type { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); }
@media (max-width: 767.98px) { .cp-nav__card--next { justify-items: start; text-align: left; } }
.cp-all { margin-top: var(--fmm-space-8); display: flex; justify-content: center; }

/* ==========================================================================
   SOBRE E CONTATO
   ========================================================================== */
.pg-hero { padding-top: calc(var(--fmm-header-height) + clamp(3.5rem, 2rem + 5vw, 7rem)); padding-bottom: clamp(2rem, 1.5rem + 3vw, 4rem); }
.pg-hero .fmm-container { display: grid; gap: var(--fmm-space-6); justify-items: start; }
.pg-title { font: var(--fmm-font-weight-bold) clamp(2.5rem, 1.3rem + 4.6vw, 5.25rem) / 1.02 var(--fmm-font-family-brand); letter-spacing: -0.045em; max-width: 16ch; text-wrap: balance; }
.tl { position: relative; display: grid; gap: var(--fmm-space-10); grid-template-columns: 1fr; list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .tl { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .tl { grid-template-columns: repeat(4, minmax(0, 1fr)); } .tl::before { top: 52px; } }
.tl-item { display: grid; gap: var(--fmm-space-3); align-content: start; }
.tl-item__year { font: 600 14px / 1 var(--fmm-font-family-mono); color: var(--fmm-color-text-accent); min-height: 14px; }
.tl-item__dot { position: relative; width: 14px; height: 14px; margin-block: var(--fmm-space-4); transform: rotate(45deg); border: 1.5px solid var(--fmm-color-text-accent); background: var(--fmm-color-bg); }
.tl-item:last-child .tl-item__dot { background: var(--fmm-brand-blue); border-color: var(--fmm-blue-300); }
.tl-item__name { font: var(--fmm-font-weight-bold) 1.75rem / 1.1 var(--fmm-font-family-brand); letter-spacing: -0.03em; }
.tl-item__text { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); max-width: 32ch; }
.ab-cols { border-top: 1px solid var(--site-line); }
.ab-grid { display: grid; gap: var(--fmm-space-10); grid-template-columns: 1fr; }
@media (min-width: 1024px) { .ab-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ab-col { display: grid; gap: var(--fmm-space-4); align-content: start; color: var(--fmm-color-text-secondary); }
.ab-col__title { font: var(--fmm-font-weight-bold) 1.5rem / 1.2 var(--fmm-font-family-brand); letter-spacing: -0.02em; color: var(--fmm-color-text); }
.lg-box { padding: clamp(1.75rem, 1rem + 3vw, 3.5rem); border-radius: var(--site-radius-card); border: 1px solid var(--site-line); background: var(--fmm-color-surface-1); }
.lg-box .cp-h2 { margin-bottom: var(--fmm-space-8); }
.lg-list { display: grid; gap: var(--fmm-space-5); margin: 0; }
@media (min-width: 1024px) { .lg-box .lg-list { grid-template-columns: 1.4fr 0.8fr 1.2fr; } }
.lg-list dt { font: var(--fmm-text-caption); color: var(--fmm-color-text-tertiary); letter-spacing: 0.04em; margin-bottom: 6px; }
.lg-list dd { margin: 0; font: var(--fmm-font-weight-medium) var(--fmm-font-size-body) / 1.45 var(--fmm-font-family-brand); }

.ct { padding-top: var(--fmm-space-8); }
.ct-grid { display: grid; gap: var(--fmm-space-12); }
@media (min-width: 1024px) { .ct-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; } }
.ct-form { display: grid; gap: var(--fmm-space-6); padding: clamp(1.5rem, 1rem + 2.5vw, 3rem); border-radius: var(--site-radius-card); background: var(--fmm-color-surface-1); border: 1px solid var(--site-line); }
.nf-actions { justify-content: flex-start; }
.ct-row { display: grid; gap: var(--fmm-space-6); }
@media (min-width: 768px) { .ct-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ct-privacy { font: var(--fmm-text-caption); color: var(--fmm-color-text-tertiary); }
.ct-actions .fmm-btn { min-width: 220px; }
@media (max-width: 479.98px) { .ct-actions .fmm-btn { width: 100%; } }
.ct-status:empty { display: none; }
.ct-status { padding: var(--fmm-space-4) var(--fmm-space-5); border-radius: var(--fmm-radius-md); border: 1px solid var(--fmm-color-border); font: var(--fmm-text-body-sm); }
.ct-status.is-ok { border-color: var(--fmm-color-success-border); background: var(--fmm-color-success-bg); }
.ct-status.is-error { border-color: var(--fmm-color-danger-border); background: var(--fmm-color-danger-bg); }
.ct-status:focus { outline: none; }
.ct-side { display: grid; gap: var(--fmm-space-5); justify-items: start; align-content: start; }
.ct-side__title { font: var(--fmm-font-weight-bold) 1.75rem / 1.15 var(--fmm-font-family-brand); letter-spacing: -0.025em; }
.ct-dialog {
  width: min(calc(100% - var(--fmm-space-6)), var(--fmm-measure-body));
  max-height: calc(100dvh - var(--fmm-space-6));
  padding: var(--fmm-space-6); border: 1px solid var(--fmm-color-border);
  border-radius: var(--fmm-radius-xl); background: var(--fmm-color-surface-1); color: var(--fmm-color-text);
}
.ct-dialog::backdrop { background: var(--fmm-color-overlay); }
.ct-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: var(--fmm-space-4); margin-bottom: var(--fmm-space-6); }
.ct-dialog .ct-form { border: 0; border-radius: 0; padding: 0; }
.ct-dialog textarea { min-height: var(--fmm-space-24); }
.analytics-consent {
  position: fixed; z-index: var(--fmm-z-toast); bottom: var(--fmm-space-4); left: var(--fmm-space-4);
  width: calc(100% - var(--fmm-space-8)); max-width: var(--fmm-measure-lead);
  display: flex; flex-direction: column; align-items: stretch; gap: var(--fmm-space-3); padding: var(--fmm-space-4);
  border: 1px solid var(--fmm-color-border); border-radius: var(--fmm-radius-md);
  background: var(--fmm-color-surface-1); color: var(--fmm-color-text);
}
.analytics-consent[hidden] { display: none; }
.analytics-consent p { font: var(--fmm-text-body-sm); color: var(--fmm-color-text-secondary); max-width: var(--fmm-measure-body); }
.analytics-consent__actions { display: flex; justify-content: flex-end; gap: var(--fmm-space-2); flex-wrap: wrap; }
.ct-legal { margin-top: var(--fmm-space-6); padding-top: var(--fmm-space-6); border-top: 1px solid var(--site-line); width: 100%; }

@media (forced-colors: active) {
  .case-card, .cp-res, .lg-box, .cp-nav__card { border: 1px solid CanvasText; }
  .hx-field, .cta__beams { display: none; }
}
@media print {
  .fmm-header, .site-wa, .hx-field, .hx__visual, .cta { display: none !important; }
  body { background: #fff; color: #000; }
}

/* Breadcrumb do site: separador em texto, sem ícone */
.cp-crumb li + li::before { content: "/"; width: auto; height: auto; background: none; -webkit-mask: none; mask: none; opacity: 1; color: var(--fmm-neutral-500); }

/* Luz de fundo das páginas internas: gradiente estático, sem filtro. */
.cp-hero, .pg-hero { background: radial-gradient(55% 60% at 18% 0%, rgba(71, 73, 207, 0.2), transparent 70%); }
