/* mr integrações com IA · site institucional
   Identidade: mr/identidade/design-guide.md (preto, dourado, bronze, marfim; Didone + mono) */

:root {
  /* cor (hex da identidade, não alterar) */
  --preto: #16120F;
  --preto-2: #211B15;
  --preto-3: #2B231B;
  --ouro: #DFA968;
  --bronze: #B9822F;
  --marfim: #F1E9DA;
  --texto: #E9E0D0;
  --texto-2: #C4B8A4;   /* 9.6:1 sobre --preto */
  --texto-3: #A39581;   /* 6.3:1 sobre --preto */
  --fio-cor: #DFA968;
  --linha: rgba(223, 169, 104, 0.16);
  --linha-forte: rgba(223, 169, 104, 0.42);

  /* tipo */
  --f-display: "Bodoni Moda", "Bodoni MT", Didot, Georgia, serif;
  --f-texto: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", Consolas, monospace;
  --t-mono: 0.75rem;
  --t-pequeno: 0.9375rem;
  --t-corpo: 1.0625rem;
  --t-lead: clamp(1.125rem, 1.02rem + 0.4vw, 1.3125rem);
  --t-h3: clamp(1.5rem, 1.25rem + 0.9vw, 2rem);
  --t-h2: clamp(2.125rem, 1.5rem + 2.6vw, 3.5rem);
  --t-h1: clamp(2.4rem, 1.4rem + 3.4vw, 4.25rem);

  /* espaço e grade */
  --margem: clamp(16px, 4vw, 48px);
  --recuo: clamp(30px, 6vw, 104px);   /* espaço entre o trilho e o conteúdo */
  --trilho: clamp(7px, 1.6vw, 34px);  /* posição do fio dentro do .wrap */
  --largura: 1240px;
  --s-secao: clamp(96px, 12vw, 176px);

  /* movimento */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* camadas */
  --z-fio: 0;
  --z-conteudo: 1;
  --z-topo: 30;
  --z-barra: 40;
  --z-menu: 50;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0;
  background: var(--preto);
  color: var(--texto);
  font-family: var(--f-texto);
  font-size: var(--t-corpo);
  line-height: 1.7;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
a, button { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
h1, h2, h3 { margin: 0; font-weight: 500; text-wrap: balance; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; list-style: none; }
::selection { background: var(--ouro); color: var(--preto); }
:focus-visible { outline: 2px solid var(--ouro); outline-offset: 4px; border-radius: 2px; }

.pular {
  position: absolute; left: 16px; top: -60px; z-index: var(--z-menu);
  background: var(--ouro); color: var(--preto); padding: 10px 16px; font-weight: 600; text-decoration: none;
}
.pular:focus { top: 12px; }

.wrap {
  width: min(var(--largura), 100% - 2 * var(--margem));
  margin-inline: auto;
  padding-left: var(--recuo);
  position: relative;
}

.titulo-secao {
  font-family: var(--f-display);
  font-size: var(--t-h2);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: var(--marfim);
  font-optical-sizing: auto;
}

/* ---------- topo ---------- */
.topo {
  position: fixed; inset: 0 0 auto 0; z-index: var(--z-topo);
  padding-block: 18px;
  border-bottom: 1px solid transparent;
  transition: transform 0.5s var(--ease), background-color 0.4s var(--ease), border-color 0.4s var(--ease);
}
.topo.is-solido { background: rgba(22, 18, 15, 0.92); border-bottom-color: var(--linha); }
@supports (backdrop-filter: blur(8px)) {
  .topo.is-solido { background: rgba(22, 18, 15, 0.8); backdrop-filter: blur(10px); }
}
.topo.is-oculto { transform: translateY(-110%); }
/* com o menu aberto, nada de transform ou blur no topo: os dois prenderiam o menu fixo dentro dele */
.topo.is-menu, .topo.is-menu.is-solido { transform: none; backdrop-filter: none; background: transparent; border-color: transparent; }
.topo__linha { display: flex; align-items: center; gap: 32px; padding-left: 0; }
.marca { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; margin-right: auto; min-height: 44px; }
.marca__mr { width: 54px; height: auto; fill: var(--ouro); }
.marca__mr .marca__reflexo { fill: url(#mr-reflexo-topo); }
.marca__nome-txt {
  --b-base: var(--texto-2); --b-luz: #FFF4E0; --b-faixa: 2.2em;
  color: var(--texto-2);
  background-image: linear-gradient(100deg, transparent calc(50% - var(--b-faixa)), var(--b-luz), transparent calc(50% + var(--b-faixa))), linear-gradient(var(--b-base), var(--b-base));
  background-size: 250% 100%, auto; background-repeat: no-repeat;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: brilho 3.6s linear infinite; animation-delay: 0.9s;
}
.marca__nome {
  font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--texto-2); padding-left: 14px; border-left: 1px solid var(--linha-forte); line-height: 1.2;
}
.menu { display: none; gap: 28px; }
.menu a {
  font-size: var(--t-pequeno); text-decoration: none; color: var(--texto-2);
  position: relative; padding-block: 10px;
  transition: color 0.3s var(--ease);
}
.menu a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 1px; background: var(--ouro);
  transform: scaleX(0); transform-origin: right; transition: transform 0.45s var(--ease);
}
.menu a:hover { color: var(--marfim); }
.menu a:hover::after { transform: scaleX(1); transform-origin: left; }
.topo__abrir { display: none; }

/* ---------- botões (cada um com um efeito) ---------- */
.btn {
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 52px; padding: 0 26px;
  font-family: var(--f-texto); font-size: 1rem; font-weight: 600; letter-spacing: 0.01em;
  text-decoration: none; border-radius: 3px; border: 1px solid transparent; cursor: pointer;
  transition: color 0.45s var(--ease), border-color 0.45s var(--ease), transform 0.3s var(--ease);
}
.btn span { position: relative; z-index: 1; }
.btn:active { transform: scale(0.98); }

/* 1. preenchimento subindo */
.btn--ouro { background: var(--ouro); color: var(--preto); }
.btn--ouro::before {
  content: ""; position: absolute; inset: 0; z-index: 0; background: var(--marfim);
  clip-path: inset(100% 0 0 0); transition: clip-path 0.55s var(--ease);
}
.btn--ouro:hover::before, .btn--ouro:focus-visible::before { clip-path: inset(0 0 0 0); }

/* 2. círculo a partir do mouse */
.btn--linha { border-color: var(--linha-forte); color: var(--marfim); --mx: 50%; --my: 50%; }
.btn--linha::before {
  content: ""; position: absolute; inset: 0; z-index: 0; background: var(--ouro);
  clip-path: circle(0% at var(--mx) var(--my)); transition: clip-path 0.6s var(--ease);
}
.btn--linha:hover, .btn--linha:focus-visible { color: var(--preto); border-color: var(--ouro); }
.btn--linha:hover::before, .btn--linha:focus-visible::before { clip-path: circle(150% at var(--mx) var(--my)); }

/* 3. varredura de borda */
.btn--varredura { min-height: 44px; padding: 0 20px; color: var(--ouro); border-color: var(--linha-forte); font-size: var(--t-pequeno); }
.btn--varredura::before {
  content: ""; position: absolute; inset: -1px; z-index: 0; border: 1px solid var(--ouro); border-radius: inherit;
  clip-path: inset(0 100% 0 0); transition: clip-path 0.6s var(--ease);
}
.btn--varredura::after {
  content: ""; position: absolute; left: 20px; right: 20px; bottom: 11px; height: 1px; background: var(--ouro);
  transform: scaleX(0); transform-origin: left; transition: transform 0.5s 0.1s var(--ease);
}
.btn--varredura:hover::before, .btn--varredura:focus-visible::before { clip-path: inset(0 0 0 0); }
.btn--varredura:hover::after, .btn--varredura:focus-visible::after { transform: scaleX(1); }

/* 4. texto rolando */
.btn--rolar { background: var(--ouro); color: var(--preto); min-height: 58px; padding: 0 32px; font-size: 1.0625rem; }
.btn__rolo { display: grid; overflow: hidden; height: 1.6em; line-height: 1.6em; }
.btn__rolo > span { grid-area: 1 / 1; transition: transform 0.55s var(--ease); }
.btn__rolo > span + span { transform: translateY(110%); }
.btn--rolar:hover .btn__rolo > span:first-child, .btn--rolar:focus-visible .btn__rolo > span:first-child { transform: translateY(-110%); }
.btn--rolar:hover .btn__rolo > span + span, .btn--rolar:focus-visible .btn__rolo > span + span { transform: translateY(0); }

/* 5. borda brilhante (hero): um arco de luz dourada gira pela borda; no hover o arco abre e o botão acende */
@property --sb-ang { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
@property --sb-desvio { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
@property --sb-arco { syntax: "<percentage>"; initial-value: 5%; inherits: false; }
@property --sb-luz { syntax: "<color>"; initial-value: #FFF4E0; inherits: false; }
.btn--brilho {
  --sb-base: #1E1813; --sb-dentro: #2B231B; --sb-dur: 3s;
  color: var(--marfim); border: 1px solid transparent;
  background:
    linear-gradient(var(--sb-base), var(--sb-base)) padding-box,
    conic-gradient(from calc(var(--sb-ang) - var(--sb-desvio)),
      transparent, var(--ouro) var(--sb-arco), var(--sb-luz) calc(var(--sb-arco) * 2),
      var(--ouro) calc(var(--sb-arco) * 3), transparent calc(var(--sb-arco) * 4)) border-box;
  box-shadow: inset 0 0 0 1px var(--sb-dentro);
  transition: transform 0.3s var(--ease), --sb-desvio 0.8s cubic-bezier(0.25, 1, 0.5, 1), --sb-arco 0.8s cubic-bezier(0.25, 1, 0.5, 1), --sb-luz 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
.btn--brilho > span { position: static; }
.btn--brilho::before, .btn--brilho::after, .btn--brilho > span::before {
  content: ""; pointer-events: none; position: absolute; left: 50%; top: 50%; translate: -50% -50%; z-index: -1;
}
/* pontilhado fino que acompanha o arco */
.btn--brilho::before {
  width: calc(100% - 6px); height: calc(100% - 6px); border-radius: inherit;
  background: radial-gradient(circle at 2px 2px, var(--marfim) 0.5px, transparent 0) padding-box;
  background-size: 4px 4px; background-repeat: space;
  -webkit-mask-image: conic-gradient(from calc(var(--sb-ang) + 45deg), #000, transparent 10% 90%, #000);
  mask-image: conic-gradient(from calc(var(--sb-ang) + 45deg), #000, transparent 10% 90%, #000);
  opacity: 0.32;
}
/* reflexo girando por baixo */
.btn--brilho::after {
  width: 100%; aspect-ratio: 1;
  background: linear-gradient(-50deg, transparent, var(--ouro), transparent);
  -webkit-mask-image: radial-gradient(circle at bottom, transparent 40%, #000);
  mask-image: radial-gradient(circle at bottom, transparent 40%, #000);
  opacity: 0.35;
}
/* brilho interno que respira no hover */
.btn--brilho > span::before {
  width: calc(100% + 1rem); height: calc(100% + 1rem);
  box-shadow: inset 0 -1ex 2rem 4px rgba(223, 169, 104, 0.55);
  opacity: 0; transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  animation: sb-respira 4.5s linear infinite;
}
.btn--brilho, .btn--brilho::before { animation: sb-giro var(--sb-dur) linear infinite, sb-giro calc(var(--sb-dur) / 0.4) linear infinite reverse paused; animation-composition: add; }
.btn--brilho::after { animation: sb-roda var(--sb-dur) linear infinite, sb-roda calc(var(--sb-dur) / 0.4) linear infinite reverse paused; animation-composition: add; }
.btn--brilho:is(:hover, :focus-visible) { --sb-arco: 20%; --sb-desvio: 95deg; --sb-luz: var(--marfim); }
.btn--brilho:is(:hover, :focus-visible), .btn--brilho:is(:hover, :focus-visible)::before, .btn--brilho:is(:hover, :focus-visible)::after { animation-play-state: running; }
.btn--brilho:is(:hover, :focus-visible) > span::before { opacity: 1; }
@keyframes sb-giro { to { --sb-ang: 360deg; } }
@keyframes sb-roda { to { rotate: 360deg; } }
@keyframes sb-respira { 0%, 100% { scale: 1; } 50% { scale: 1.2; } }

.link {
  color: var(--ouro); text-decoration: none; font-weight: 500;
  background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
  padding-bottom: 2px; transition: background-size 0.5s var(--ease);
  display: inline-block; min-height: 24px;
}
.link:hover { background-size: 0 1px; background-position: 100% 100%; }

/* ---------- fio ---------- */
.pagina { position: relative; }
.fio {
  position: absolute; left: 0; top: 0; z-index: var(--z-fio);
  pointer-events: none; overflow: visible;
}
.fio__guia { fill: none; stroke: var(--fio-cor); stroke-width: 1; stroke-opacity: 0.13; stroke-dasharray: 2 7; }
.fio__linha { fill: none; stroke: var(--fio-cor); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.fio__ponta { fill: var(--marfim); opacity: 0; transition: opacity 0.4s var(--ease); }
.fio.is-ativo .fio__ponta { opacity: 1; }
.fio__no { fill: var(--preto); stroke: var(--ouro); stroke-width: 1.25; transition: fill 0.5s var(--ease); }
.fio__no.is-atado { fill: var(--ouro); }
/* marcos: quando o fio passa ao lado de um título de seção, solta um ramo até ele */
.fio__marco-ramo { stroke: var(--ouro); stroke-width: 1; transform-box: fill-box; transform-origin: 0 50%; transform: scaleX(0); transition: transform 0.9s var(--ease); }
.fio__marco-no { fill: var(--preto); stroke: var(--ouro); stroke-width: 1.25; transition: fill 0.5s var(--ease); }
.fio__marco.is-atado .fio__marco-ramo { transform: scaleX(1); }
.fio__marco.is-atado .fio__marco-no { fill: var(--ouro); }
.sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
main, .rodape { position: relative; z-index: var(--z-conteudo); }

/* ---------- hero ---------- */
.hero { min-height: 100svh; display: flex; align-items: center; padding-block: 140px 120px; }
.hero__grade { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.hero__titulo {
  font-family: var(--f-display); font-size: var(--t-h1); font-weight: 500; line-height: 1.04;
  letter-spacing: -0.022em; color: var(--marfim); max-width: 17ch; font-optical-sizing: auto;
}
.hero__sub { margin-top: 32px; font-size: var(--t-lead); line-height: 1.65; color: var(--texto-2); max-width: 56ch; }
.hero__acoes { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.hero__nota { margin-top: 26px; font-size: var(--t-pequeno); color: var(--texto-3); }
.hero__mr { justify-self: end; width: min(100%, 470px); }

/* emblema: o mr original, com um reflexo dourado leve que atravessa a logo de tempos em tempos */
.emblema { position: relative; }
.mr-grande { display: block; width: 100%; height: auto; overflow: visible; }
.mr-grande__cheio { fill: var(--ouro); }
.mr-grande__contorno { fill: none; stroke: var(--ouro); stroke-width: 2.2; opacity: 0; }
.mr-grande__reflexo { fill: url(#mr-reflexo); pointer-events: none; }

/* descritor entre fios, com losango nas pontas (o da esquerda é de onde nasce o fio) */
.hero__descritor { margin-top: 26px; display: flex; align-items: center; gap: 18px; }
.hero__descritor-fio { flex: 1; height: 1px; background: var(--linha-forte); position: relative; }
.hero__descritor-fio:first-child { transform-origin: 100% 50%; }
.hero__descritor-fio:last-child { transform-origin: 0 50%; }
.hero__descritor-fio::before {
  content: ""; position: absolute; top: 50%; width: 6px; height: 6px; background: var(--preto);
  border: 1px solid var(--ouro); transform: translateY(-50%) rotate(45deg);
}
.hero__descritor-fio:first-child::before { left: -3px; }
.hero__descritor-fio:last-child::before { right: -3px; }
.hero__descritor-txt {
  font-family: var(--f-mono); font-size: 12px; letter-spacing: 0.36em; margin-right: -0.36em;
  text-transform: uppercase; color: var(--marfim); white-space: nowrap;
}

.hero.is-fora .brilho, .hero.is-fora .btn--brilho, .hero.is-fora .btn--brilho::before, .hero.is-fora .btn--brilho::after, .hero.is-fora .btn--brilho > span::before { animation-play-state: paused !important; }

/* palavra com brilho no título: base dourada e uma faixa clara que atravessa */
.brilho {
  font-style: italic; padding-right: 0.08em;
  --b-base: var(--ouro); --b-luz: #FFF4E0; --b-faixa: 0.85em;
  color: var(--ouro);
  background-image:
    linear-gradient(100deg, transparent calc(50% - var(--b-faixa)), var(--b-luz), transparent calc(50% + var(--b-faixa))),
    linear-gradient(var(--b-base), var(--b-base));
  background-size: 250% 100%, auto; background-repeat: no-repeat;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: brilho 3s linear infinite;
}
@keyframes brilho {
  0% { background-position: 105% center, 0 0; }
  58%, 100% { background-position: -5% center, 0 0; }
}

.mascara { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.mascara > span { display: inline-block; will-change: transform; }

/* ---------- serviços ---------- */
.servicos { padding-block: var(--s-secao); }
.servicos__abre { max-width: 820px; }
.servicos__intro { margin-top: 28px; font-size: var(--t-lead); color: var(--texto-2); max-width: 60ch; }
.frentes { margin-top: clamp(72px, 9vw, 128px); display: grid; gap: clamp(72px, 9vw, 120px); }
.frente { display: grid; grid-template-columns: clamp(92px, 12vw, 150px) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.frente__texto { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); column-gap: clamp(24px, 4vw, 64px); align-items: start; padding-top: 4px; }
.frente__nome { font-family: var(--f-display); font-size: var(--t-h3); line-height: 1.15; color: var(--marfim); grid-column: 1; }
.frente__lema { grid-column: 1; margin-top: 10px; color: var(--ouro); font-size: 1.0625rem; }
.frente__texto > p:last-child { grid-column: 2; grid-row: 1 / span 2; color: var(--texto-2); max-width: 52ch; }
.glifo { aspect-ratio: 1; }
.glifo svg { width: 100%; height: 100%; overflow: visible; }
.glifo__guia { fill: none; stroke: var(--ouro); stroke-opacity: 0.28; stroke-width: 1; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; }
.glifo__det { fill: var(--ouro); opacity: 0.55; }
.glifo__det-linha { fill: none; stroke: var(--ouro); stroke-opacity: 0.4; stroke-width: 1; vector-effect: non-scaling-stroke; }

/* ---------- trabalhos ---------- */
/* seções sem fundo próprio: o fio corre por trás do conteúdo e não pode ser coberto */
.trabalhos { padding-block: var(--s-secao) calc(var(--s-secao) * 0.75); }
.caso { margin-top: clamp(48px, 6vw, 88px); display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.caso__imagens { position: sticky; top: 110px; padding-bottom: 12%; padding-right: 9%; }
.tela { margin: 0; border: 1px solid var(--linha-forte); border-radius: 6px; overflow: hidden; background: var(--preto); }
.tela__barra {
  display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-bottom: 1px solid var(--linha);
  font-family: var(--f-mono); font-size: 11px; color: var(--texto-3); letter-spacing: 0.02em;
}
.tela__barra span { width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--linha-forte); }
.tela--celular {
  position: absolute; right: 0; bottom: 0; width: 27%; border-radius: 18px; border-color: var(--ouro);
  aspect-ratio: 390 / 760;
}
.tela--celular img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.caso__selo { font-family: var(--f-mono); font-size: var(--t-mono); letter-spacing: 0.08em; color: var(--ouro); }
.caso__nome { margin-top: 14px; font-family: var(--f-display); font-size: var(--t-h2); line-height: 1.05; color: var(--marfim); letter-spacing: -0.015em; }
.caso__local { margin-top: 8px; color: var(--texto-3); }
.caso__texto > p:not(.caso__selo):not(.caso__local):not(.caso__rotulo) { margin-top: 24px; color: var(--texto-2); }
.caso__resultado { margin-top: 28px; display: flex; align-items: baseline; gap: 4px 18px; flex-wrap: wrap; padding: 22px 0; border-block: 1px solid var(--linha); }
.caso__numero { font-family: var(--f-display); font-size: clamp(3.5rem, 2.6rem + 3vw, 5.5rem); line-height: 0.95; color: var(--ouro); letter-spacing: -0.03em; font-variant-numeric: lining-nums tabular-nums; }
.caso__numero-leg { flex: 1 1 180px; font-size: var(--t-pequeno); color: var(--texto-2); line-height: 1.5; max-width: 26ch; }
.caso__comparar { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.caso__comparar > div { padding: 18px 20px; border: 1px solid var(--linha); border-radius: 10px; }
.caso__comparar ul { margin-top: 10px; display: grid; gap: 8px; font-size: var(--t-pequeno); color: var(--texto-3); }
.caso__comparar li { padding-left: 16px; position: relative; line-height: 1.45; }
.caso__comparar li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 7px; height: 1px; background: currentColor; }
.caso__hoje { border-color: var(--linha-forte) !important; background: rgba(223, 169, 104, 0.05); }
.caso__hoje ul { color: var(--marfim); }
.caso__hoje li::before { background: var(--ouro); }
.caso__rotulo { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--texto-3); }
.caso__hoje .caso__rotulo { color: var(--ouro); }
.caso__texto > p.caso__rotulo--entregas { margin-top: 32px; color: var(--texto-3); }
.caso__entregas { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; font-size: var(--t-pequeno); }
.caso__entregas li { padding-top: 10px; border-top: 1px solid var(--linha); color: var(--texto); }
.caso__licao { padding: 22px 24px; background: var(--preto); border: 1px solid var(--linha); border-radius: 4px; }
.caso__licao strong { color: var(--marfim); font-weight: 600; }
.caso__texto .link { margin-top: 28px; }

.modelos { margin-top: clamp(96px, 11vw, 160px); }
.modelos__abre { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 24px clamp(24px, 4vw, 64px); align-items: end; }
.modelos__titulo { font-family: var(--f-display); font-size: var(--t-h3); color: var(--marfim); line-height: 1.15; }
.modelos__abre p { color: var(--texto-2); max-width: 58ch; }
/* pastas de vidro: fundo com a cor da marca, as telas dentro e uma frente de vidro fosco.
   Repouso: fechada, as telas mal aparecem. Hover: a frente inclina e as telas sobem.
   Aberta (clique/toque): a frente cai e as telas saem em leque, cada uma um link para o modelo. */
.pastas { margin-top: 48px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 56px clamp(20px, 2.6vw, 36px); }
.pasta { position: relative; } /* segura os textos .sr dentro do carrossel no celular */
.pasta__palco { position: relative; aspect-ratio: 1 / 0.96; perspective: 1100px; perspective-origin: 50% 10%; }
.pasta__fundo {
  position: absolute; inset: 14% 0 0 0;
  background:
    radial-gradient(110% 80% at 18% 12%, color-mix(in srgb, var(--p3) 70%, transparent) 0%, transparent 46%),
    radial-gradient(90% 90% at 88% 92%, var(--p1) 0%, transparent 62%),
    linear-gradient(150deg, var(--p2) 10%, var(--p1) 120%);
  clip-path: polygon(0 0, 34% 0, 40% 8%, 100% 8%, 100% 100%, 0 100%);
  transition: filter 0.6s var(--ease);
}
.pasta__fundo::after { /* veio de luz, como tinta dobrando na água */
  content: ""; position: absolute; inset: 0; opacity: 0.35; mix-blend-mode: soft-light;
  background: repeating-radial-gradient(circle at 30% 120%, transparent 0 14px, rgba(255, 255, 255, 0.5) 15px, transparent 17px);
}
.pasta__arquivo {
  position: absolute; display: block; overflow: hidden; background: var(--preto);
  border: 1px solid rgba(241, 233, 218, 0.28); box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45);
  transition: transform 0.75s var(--ease), border-color 0.4s var(--ease);
}
.pasta__arquivo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.pasta__arquivo--desk { left: 10%; top: 31%; width: 66%; aspect-ratio: 16 / 10; border-radius: 6px; }
.pasta__arquivo--mob { right: 11%; top: 35%; width: 27%; aspect-ratio: 390 / 820; border-radius: 12px; }
.pasta__frente {
  position: absolute; left: 0; right: 0; bottom: 0; height: 60%;
  display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 4px;
  padding: 18px 20px; text-align: left; cursor: pointer; font: inherit; color: var(--marfim);
  border-radius: 12px; border: 1px solid rgba(241, 233, 218, 0.24);
  background: linear-gradient(180deg, rgba(241, 233, 218, 0.16), rgba(22, 18, 15, 0.38));
  -webkit-backdrop-filter: blur(14px) saturate(1.25); backdrop-filter: blur(14px) saturate(1.25);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 -1px 0 rgba(0, 0, 0, 0.2);
  transform-origin: 50% 100%; transform: rotateX(0deg);
  transition: transform 0.75s var(--ease), border-color 0.4s var(--ease);
}
.pasta__frente:focus-visible { outline-offset: 3px; }
.pasta__nome { font-family: var(--f-display); font-size: 1.3125rem; line-height: 1.15; }
.pasta__info { font-size: 13px; color: var(--texto-2); line-height: 1.4; }
.pasta__acao {
  position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; border-radius: 50%;
  border: 1px solid rgba(241, 233, 218, 0.4); transition: transform 0.6s var(--ease), background-color 0.4s var(--ease);
}
.pasta__acao::before, .pasta__acao::after { content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1px; background: var(--marfim); translate: -50% -50%; }
.pasta__acao::after { rotate: 90deg; }

@media (hover: hover) {
  .pasta__palco:hover .pasta__frente { transform: rotateX(-16deg); border-color: rgba(241, 233, 218, 0.4); }
  .pasta__palco:hover .pasta__arquivo--desk { transform: translateY(-16%); }
  .pasta__palco:hover .pasta__arquivo--mob { transform: translateY(-11%); }
}
.pasta.is-aberta .pasta__frente { transform: rotateX(-48deg); }
.pasta.is-aberta .pasta__acao { transform: rotate(45deg); background: rgba(223, 169, 104, 0.25); }
.pasta.is-aberta .pasta__arquivo--desk { transform: translate(-8%, -60%) rotate(-6deg); }
.pasta.is-aberta .pasta__arquivo--mob { transform: translate(14%, -46%) rotate(7deg); }
.pasta.is-aberta .pasta__arquivo:hover { border-color: var(--ouro); }
.pasta.is-aberta .pasta__fundo { filter: brightness(0.85); }
.pasta__feito { margin-top: 18px; font-size: var(--t-pequeno); color: var(--texto-2); line-height: 1.55; }
.pasta__link { margin-top: 10px; font-size: var(--t-pequeno); }

/* ---------- processo ---------- */
.processo { padding-block: var(--s-secao); }
.processo__grade { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(40px, 7vw, 120px); align-items: start; }
.processo__abre { position: sticky; top: 120px; }
.processo__entrega { margin-top: 28px; font-size: var(--t-lead); color: var(--texto-2); max-width: 34ch; }
.processo__entrega strong { display: block; font-family: var(--f-display); font-size: var(--t-h3); font-weight: 500; color: var(--ouro); margin-bottom: 6px; }
.passos { display: grid; gap: 0; }
.passo { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding-block: 30px; border-top: 1px solid var(--linha); }
.passo:last-child { border-bottom: 1px solid var(--linha); }
.passo__num { align-self: start; font-family: var(--f-display); font-size: 2.25rem; line-height: 1; color: var(--ouro); font-variant-numeric: lining-nums; }
.passo h3 { font-family: var(--f-display); font-size: 1.5rem; color: var(--marfim); line-height: 1.2; }
.passo p { margin-top: 8px; color: var(--texto-2); max-width: 54ch; }
.passo__no { display: none; }

/* ---------- quem faz ---------- */
.quem { padding-block: calc(var(--s-secao) * 0.7) var(--s-secao); }
.quem__grade { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(40px, 7vw, 120px); }
.quem__texto p { font-size: var(--t-lead); color: var(--texto); max-width: 58ch; }
.quem__texto p + p { margin-top: 20px; color: var(--texto-2); }
.assinatura { margin-top: 48px; width: min(100%, 520px); }
.assinatura__nome { font-family: var(--f-display); font-style: italic; font-size: clamp(1.875rem, 1.3rem + 2vw, 2.75rem) !important; color: var(--ouro) !important; line-height: 1.15; }
.assinatura__nome .brilho { --b-faixa: 1.1em; animation-duration: 5s; }
.assinatura__traco { display: block; width: 100%; height: 40px; margin-top: 6px; overflow: visible; }

/* ---------- pacotes (cartões em perspectiva) ---------- */
.fecho { padding-block: var(--s-secao); border-top: 1px solid var(--linha); }
.fecho__abre { display: grid; grid-template-columns: minmax(0, 1.2fr) auto; gap: 32px clamp(32px, 6vw, 96px); align-items: end; }
.fecho__abre p { margin-top: 24px; color: var(--texto-2); font-size: var(--t-lead); max-width: 52ch; }
.chave-mensal { display: flex; align-items: center; gap: 16px; padding: 14px 20px 14px 14px; border: 1px solid var(--linha); border-radius: 999px; }
.chave {
  position: relative; flex: none; width: 52px; height: 30px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--linha-forte); background: var(--preto-2); transition: background-color 0.4s var(--ease), border-color 0.4s var(--ease);
}
.chave__bola {
  position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--texto-2);
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.4s var(--ease);
}
.chave[aria-checked="true"] { background: rgba(223, 169, 104, 0.22); border-color: var(--ouro); }
.chave[aria-checked="true"] .chave__bola { transform: translateX(22px); background: var(--ouro); }
.chave__rotulo { font-weight: 600; color: var(--marfim); font-size: var(--t-pequeno); line-height: 1.35; cursor: pointer; }
.chave__rotulo span { display: block; font-weight: 400; color: var(--texto-3); font-size: 13px; }

.planos {
  margin-top: clamp(64px, 7vw, 104px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px;
  perspective: 1400px; align-items: stretch;
}
.plano { position: relative; transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.7s var(--ease); }
.plano:first-child { transform-origin: 100% 50%; transform: translateX(28px) translateZ(-50px) rotateY(10deg) scale(0.95); }
.plano:last-child { transform-origin: 0 50%; transform: translateX(-28px) translateZ(-50px) rotateY(-10deg) scale(0.95); }
.plano--destaque { position: relative; z-index: 2; transform: translateY(-20px); }
/* hover num cartão: os três se alinham e o escolhido sobe */
.planos.is-solto .plano { transform: none; }
.planos.is-solto .plano.is-foco { transform: translateY(-14px); z-index: 3; }
/* antes de entrar na tela */
.planos.is-entrando .plano { opacity: 0; transform: translateY(70px) rotateX(8deg); }
.plano__cartao {
  position: relative; display: flex; flex-direction: column; height: 100%; padding: 30px 28px 28px;
  border: 1px solid var(--linha-forte); border-radius: 16px; background: linear-gradient(180deg, var(--preto-2), var(--preto));
  transition: border-color 0.4s var(--ease), box-shadow 0.6s var(--ease);
}
.plano--destaque .plano__cartao { border: 1.5px solid var(--ouro); box-shadow: 0 30px 80px -30px rgba(223, 169, 104, 0.35); }
.plano:hover .plano__cartao { border-color: var(--ouro); }
.plano__selo {
  position: absolute; top: -13px; left: 24px; padding: 4px 12px; border-radius: 999px;
  background: var(--ouro); color: var(--preto); font-size: 12px; font-weight: 600; letter-spacing: 0.01em;
}
.plano__topo { display: flex; gap: 16px; align-items: center; }
.plano__letra {
  flex: none; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--linha-forte); font-family: var(--f-display); font-size: 1.75rem; color: var(--ouro);
}
.plano--destaque .plano__letra { background: var(--ouro); color: var(--preto); border-color: var(--ouro); }
.plano__tipo { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--texto-3); }
.plano__nome { font-family: var(--f-display); font-size: 1.5rem; line-height: 1.15; color: var(--marfim); }
.plano__para { margin-top: 18px; font-size: var(--t-pequeno); color: var(--texto-2); line-height: 1.55; min-height: 3.1em; }
.plano__conta { margin-top: 22px; display: flex; align-items: baseline; font-size: var(--t-pequeno); color: var(--texto-3); }
.rolo-num { display: inline-flex; font-family: var(--f-display); font-size: 2.75rem; line-height: 1; color: var(--marfim); margin-right: 8px; }
.rolo-num__dig { display: inline-block; height: 1em; overflow: hidden; }
.rolo-num__fita { display: flex; flex-direction: column; transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.rolo-num__fita span { display: block; height: 1em; line-height: 1; text-align: center; }
.plano__lista { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--linha); display: grid; gap: 10px; font-size: var(--t-pequeno); }
.plano__lista li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; color: var(--texto); line-height: 1.5; }
.plano__chk { width: 18px; height: 18px; margin-top: 2px; fill: none; stroke: var(--ouro); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
/* itens mensais: ocupam sempre o mesmo espaço, para a altura da página não mudar ao ligar a chave
   (mudar a altura obrigaria o fio a recalcular o percurso inteiro e travava a página) */
.plano__lista .plano__mensal { opacity: 0.32; transition: opacity 0.5s var(--ease), transform 0.6s var(--ease); }
.plano__mensal span { color: var(--texto-3); transition: color 0.5s var(--ease); }
.plano__mensal .plano__chk { stroke: var(--texto-3); transition: stroke 0.5s var(--ease); }
.planos.is-mensal .plano__mensal { opacity: 1; transform: translateX(3px); }
.planos.is-mensal .plano__mensal span { color: var(--ouro); }
.planos.is-mensal .plano__mensal .plano__chk { stroke: var(--ouro); }
.planos.is-mensal .plano__mensal:last-child { transition-delay: 0.08s; }
.plano__pe { margin-top: auto; padding-top: 26px; }
.plano__valor { font-size: 13px; color: var(--texto-3); }
[data-valor-mensal] { color: var(--ouro); opacity: 0; transition: opacity 0.4s var(--ease); }
.planos.is-mensal [data-valor-mensal] { opacity: 1; }
.plano__btn {
  position: relative; isolation: isolate; overflow: hidden; margin-top: 14px; display: flex; align-items: center; justify-content: center;
  min-height: 52px; border-radius: 10px; border: 1px solid var(--linha-forte); color: var(--marfim); text-decoration: none; font-weight: 600;
  transition: color 0.4s var(--ease), border-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.plano__btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--ouro); transform: scaleY(0); transform-origin: bottom; transition: transform 0.5s var(--ease); }
.plano__btn:hover, .plano__btn:focus-visible { color: var(--preto); border-color: var(--ouro); box-shadow: 0 0 0 3px rgba(223, 169, 104, 0.18); }
.plano__btn:hover::before, .plano__btn:focus-visible::before { transform: scaleY(1); }
.plano--destaque .plano__btn { background: var(--ouro); color: var(--preto); border-color: var(--ouro); }
.plano--destaque .plano__btn::before { background: var(--marfim); }
.fecho__pe { margin-top: clamp(56px, 7vw, 88px); display: flex; align-items: center; justify-content: space-between; gap: 24px 48px; flex-wrap: wrap; }
.fecho__pe p { color: var(--texto-2); max-width: 60ch; }
.fecho__pe strong { color: var(--marfim); font-weight: 600; }
.pontos { display: none; }
.confete { position: fixed; inset: 0; z-index: 60; pointer-events: none; width: 100%; height: 100%; }

/* ---------- menu suspenso (computador) ---------- */
.gaveta { position: relative; }
.gaveta__abas { display: flex; gap: 4px; }
.gaveta__aba {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 0;
  background: transparent; color: var(--texto-2); font: inherit; font-size: var(--t-pequeno); cursor: pointer; text-decoration: none;
  transition: background-color 0.25s var(--ease), color 0.25s var(--ease);
}
.gaveta__aba svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform 0.25s var(--ease); }
.gaveta__aba:hover, .gaveta__aba[aria-expanded="true"] { color: var(--marfim); background: rgba(241, 233, 218, 0.07); }
.gaveta__aba[aria-expanded="true"] svg { transform: rotate(180deg); color: var(--ouro); }
.gaveta__aba[aria-current="page"] { color: var(--ouro); }
.gaveta__painel {
  position: absolute; left: 0; top: calc(100% + 18px); width: 440px; padding: 18px; border-radius: 14px;
  background: rgba(33, 27, 21, 0.97); border: 1px solid var(--linha-forte); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.7);
  opacity: 0; transform: translateY(8px); transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
}
@supports (backdrop-filter: blur(8px)) { .gaveta__painel { background: rgba(33, 27, 21, 0.86); backdrop-filter: blur(16px); } }
.gaveta__painel.is-aberto { opacity: 1; transform: none; }
.gaveta__ponte { position: absolute; left: 0; right: 0; top: -20px; height: 20px; }
.gaveta__bico {
  position: absolute; top: 0; left: 40px; width: 14px; height: 14px; translate: -50% -50%; rotate: 45deg;
  background: #2B231B; border-left: 1px solid var(--linha-forte); border-top: 1px solid var(--linha-forte);
  transition: left 0.25s ease-in-out;
}
.gaveta__conteudo { display: none; }
.gaveta__conteudo.is-atual { display: block; animation: gaveta-entra 0.25s ease-in-out both; }
.gaveta__conteudo.vem-dir { animation-name: gaveta-dir; }
.gaveta__conteudo.vem-esq { animation-name: gaveta-esq; }
@keyframes gaveta-entra { from { opacity: 0; } }
@keyframes gaveta-dir { from { opacity: 0; transform: translateX(80px); } }
@keyframes gaveta-esq { from { opacity: 0; transform: translateX(-80px); } }
.gaveta__painel a { text-decoration: none; color: var(--texto-2); }
.gaveta__servicos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.gaveta__servicos a { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; padding: 12px; border-radius: 10px; font-size: 13px; line-height: 1.45; transition: background-color 0.25s var(--ease); }
.gaveta__servicos a:hover, .gaveta__servicos a:focus-visible { background: rgba(241, 233, 218, 0.06); }
.gaveta__servicos svg { width: 22px; height: 22px; fill: none; stroke: var(--ouro); stroke-width: 1.3; stroke-linejoin: round; }
.gaveta__servicos strong { display: block; color: var(--marfim); font-weight: 600; font-size: var(--t-pequeno); }
.gaveta__trabalhos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gaveta__trabalhos a { display: block; padding: 6px; border-radius: 10px; font-size: 13px; transition: background-color 0.25s var(--ease); }
.gaveta__trabalhos a:hover, .gaveta__trabalhos a:focus-visible { background: rgba(241, 233, 218, 0.06); }
.gaveta__trabalhos a.gaveta__trabalhos-todos { grid-column: 1 / -1; padding: 12px 6px 6px; border-top: 1px solid var(--linha); border-radius: 0 0 10px 10px; }
.gaveta__trabalhos img { width: 100%; height: 92px; object-fit: cover; object-position: top; border-radius: 7px; margin-bottom: 10px; border: 1px solid var(--linha); }
.gaveta__trabalhos strong { display: block; color: var(--marfim); font-weight: 600; font-size: var(--t-pequeno); line-height: 1.3; }
.gaveta__pacotes { display: grid; grid-template-columns: repeat(3, 1fr); }
.gaveta__pacotes a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 10px 6px; text-align: center; font-size: 13px; line-height: 1.3; transition: color 0.25s var(--ease); }
.gaveta__pacotes a + a { border-left: 1px solid var(--linha); }
.gaveta__pacotes a:hover, .gaveta__pacotes a:focus-visible { color: var(--marfim); }
.gaveta__letra { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--linha-forte); font-family: var(--f-display); font-size: 1.375rem; color: var(--ouro); transition: background-color 0.3s var(--ease), color 0.3s var(--ease); }
.gaveta__pacotes a:hover .gaveta__letra { background: var(--ouro); color: var(--preto); }
.gaveta__extra { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linha); display: flex; align-items: center; gap: 18px; font-size: 13px; }
.gaveta__extra a:hover { color: var(--marfim); }
.gaveta__todos { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--ouro) !important; font-weight: 600; }
.gaveta__todos svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform 0.3s var(--ease); }
.gaveta__todos:hover svg { transform: translateX(3px); }

/* ---------- efeitos dos títulos ---------- */
/* foco: palavras saem do desfoque; "juntas" ganha um traço que se desenha */
.titulo-destaque { font-style: italic; color: var(--ouro); position: relative; display: inline-block; }
.titulo-destaque__traco { position: absolute; left: -2%; bottom: -0.12em; width: 104%; height: 0.32em; overflow: visible; fill: none; stroke: var(--ouro); stroke-width: 2; stroke-linecap: round; }
/* varre: uma barra dourada atravessa e revela o título */
.varre { position: relative; display: inline-block; }
.varre__barra { position: absolute; inset: -0.04em -0.06em; background: var(--ouro); transform: scaleX(0); transform-origin: 0 50%; }
/* gira: letras viram no eixo X */
.gira__letra { display: inline-block; transform-origin: 50% 100%; backface-visibility: hidden; }
/* enche: contorno que se enche conforme a rolagem */
.enche { position: relative; display: inline-block; }
.enche__base { color: transparent; -webkit-text-stroke: 1px var(--bronze); }
.enche__cheio { position: absolute; inset: 0; color: var(--marfim); clip-path: inset(0 100% 0 0); }
/* onda: faixas de cor da marca atravessam o texto, como ondulação vindo de baixo */
@property --onda { syntax: "<number>"; inherits: false; initial-value: -25; }
.onda {
  display: inline-block; --onda: -25; padding-bottom: 20%; margin-bottom: -20%;
  background-image: radial-gradient(circle at 50% 100%,
    var(--marfim) calc((var(--onda) + 0) * 1%), #DFA968 calc((var(--onda) + 10) * 1%), #FFF4E0 calc((var(--onda) + 16) * 1%),
    #B9822F calc((var(--onda) + 22) * 1%), #E8C48F calc((var(--onda) + 28) * 1%), #8C5E22 calc((var(--onda) + 34) * 1%),
    #F1E9DA calc((var(--onda) + 40) * 1%), #C98F4A calc((var(--onda) + 46) * 1%), #DFA968 calc((var(--onda) + 52) * 1%),
    var(--marfim) calc((var(--onda) + 58) * 1%));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.onda.is-ativa { animation: onda 5.2s linear infinite; }
.onda.is-pausa { animation-play-state: paused; }
@keyframes onda { from { --onda: -25; } to { --onda: 200; } }
/* digita: as letras entram uma a uma com um cursor dourado */
.digita__letra { opacity: 0; }
.digita__letra.is-on { opacity: 1; }
.digita__cursor { display: inline-block; width: 0.06em; height: 0.9em; margin-left: 0.05em; background: var(--ouro); vertical-align: -0.08em; animation: cursor 0.9s steps(1) infinite; }
@keyframes cursor { 50% { opacity: 0; } }

/* ---------- rodapé ---------- */
.rodape { border-top: 1px solid var(--linha); padding-top: clamp(64px, 8vw, 96px); overflow: hidden; background: var(--preto); position: relative; }
.rodape::before { /* halo dourado discreto atrás da conversa */
  content: ""; position: absolute; top: -120px; left: 30%; width: 420px; height: 320px; pointer-events: none;
  background: radial-gradient(closest-side, rgba(223, 169, 104, 0.09), transparent);
}
.rodape__grade {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 0.6fr) minmax(0, 0.9fr);
  gap: clamp(36px, 4vw, 64px); align-items: start; padding-left: 0;
}
.rodape__logo { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }
.rodape__mr { width: 64px; fill: var(--ouro); flex: none; }
.rodape__mr .marca__reflexo { fill: url(#mr-reflexo-rodape); }
.rodape__desc {
  font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--texto-2);
  padding-left: 14px; border-left: 1px solid var(--linha-forte); line-height: 1.3;
}
.rodape__marca p { margin-top: 22px; font-size: var(--t-pequeno); color: var(--texto-3); max-width: 34ch; }
.rodape__titulo { font-family: var(--f-display); font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); line-height: 1.12; color: var(--marfim); max-width: 16ch; }
.rodape__conversa > p { margin-top: 12px; font-size: var(--t-pequeno); color: var(--texto-2); }
.conversa { position: relative; margin-top: 22px; max-width: 420px; }
.conversa__campo {
  width: 100%; height: 52px; padding: 0 60px 0 18px; border-radius: 999px;
  border: 1px solid var(--linha-forte); background: rgba(241, 233, 218, 0.04); color: var(--marfim);
  font: inherit; font-size: var(--t-pequeno); transition: border-color 0.35s var(--ease), background-color 0.35s var(--ease);
}
.conversa__campo::placeholder { color: var(--texto-3); }
.conversa__campo:focus { outline: none; border-color: var(--ouro); background: rgba(241, 233, 218, 0.07); }
.conversa__enviar {
  position: absolute; right: 5px; top: 5px; width: 42px; height: 42px; border-radius: 50%; border: 0; cursor: pointer;
  display: grid; place-items: center; background: var(--ouro); color: var(--preto); transition: transform 0.35s var(--ease), background-color 0.35s var(--ease);
}
.conversa__enviar svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
.conversa__enviar:hover, .conversa__enviar:focus-visible { transform: scale(1.06); background: var(--marfim); }
.rodape__rotulo { font-family: var(--f-mono); font-size: 11px; font-weight: 400; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ouro); margin-bottom: 16px; }
.rodape__nav { display: grid; justify-items: start; font-size: var(--t-pequeno); }
.rodape__nav a, .rodape__contato address a {
  color: var(--texto-2); text-decoration: none; padding-block: 4px;
  background: linear-gradient(var(--ouro), var(--ouro)) 0 calc(100% - 2px) / 0 1px no-repeat;
  transition: color 0.3s var(--ease), background-size 0.45s var(--ease);
}
.rodape__nav a:hover, .rodape__contato address a:hover { color: var(--marfim); background-size: 100% 1px; }
.rodape__contato address { display: grid; justify-items: start; font-style: normal; font-size: var(--t-pequeno); }
.rodape__contato address span { margin-top: 6px; color: var(--texto-3); }
.canais { display: flex; gap: 10px; margin-top: 22px; }
.canal {
  position: relative; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  border: 1px solid var(--linha-forte); color: var(--ouro); transition: background-color 0.35s var(--ease), color 0.35s var(--ease), transform 0.35s var(--ease);
}
.canal svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linejoin: round; stroke-linecap: round; }
.canal:hover, .canal:focus-visible { background: var(--ouro); color: var(--preto); transform: translateY(-2px); }
.canal::after { /* dica */
  content: attr(data-dica); position: absolute; bottom: calc(100% + 10px); left: 50%; translate: -50% 4px;
  padding: 6px 10px; border-radius: 4px; white-space: nowrap; pointer-events: none;
  background: var(--marfim); color: var(--preto); font-size: 12px; font-weight: 500; line-height: 1.2;
  opacity: 0; transition: opacity 0.25s var(--ease), translate 0.25s var(--ease);
}
.canal:hover::after, .canal:focus-visible::after { opacity: 1; translate: -50% 0; }

/* mr gigante: a forma original da logo, em tom apagado, que se enche de dourado conforme o rodapé entra */
/* mr em meio-tom, cortado pela borda de baixo (js/meio-tom.js) */
.rodape__gigante { position: relative; width: min(100% - 2 * var(--margem), 1240px); margin: clamp(40px, 5vw, 64px) auto 0; cursor: crosshair; touch-action: pan-y; }
.rodape__gigante canvas { display: block; width: 100%; height: 100%; }
.rodape__base {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  margin-top: clamp(32px, 4vw, 48px); padding: 24px 0 32px; border-top: 1px solid var(--linha); font-size: 13px; color: var(--texto-3);
}
.rodape__base nav { display: flex; gap: 24px; }
.rodape__base a { color: var(--texto-2); text-decoration: none; }
.rodape__base a:hover { color: var(--ouro); }

/* ---------- responsivo ---------- */
@media (max-width: 1024px) {
  .menu, .topo__cta, .gaveta { display: none; }
  .topo__abrir {
    display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 4px 0 14px;
    background: none; border: 0; color: var(--marfim); font: 500 var(--t-pequeno) var(--f-texto); cursor: pointer;
    position: relative; z-index: calc(var(--z-menu) + 1);
  }
  .topo__abrir-ico { width: 22px; height: 9px; position: relative; }
  .topo__abrir-ico::before, .topo__abrir-ico::after {
    content: ""; position: absolute; left: 0; right: 0; height: 1px; background: var(--ouro); transition: transform 0.45s var(--ease);
  }
  .topo__abrir-ico::before { top: 0; }
  .topo__abrir-ico::after { bottom: 0; }
  .topo__abrir[aria-expanded="true"] .topo__abrir-ico::before { transform: translateY(4px) rotate(45deg); }
  .topo__abrir[aria-expanded="true"] .topo__abrir-ico::after { transform: translateY(-4px) rotate(-45deg); }
  .menu {
    display: flex; position: fixed; inset: 0; z-index: var(--z-menu); background: var(--preto);
    flex-direction: column; justify-content: center; gap: 4px; padding: 96px calc(var(--margem) + var(--recuo));
    clip-path: inset(0 0 100% 0); visibility: hidden;
    transition: clip-path 0.7s var(--ease), visibility 0s 0.7s;
  }
  .menu a { font-family: var(--f-display); font-size: clamp(2rem, 8vw, 3rem); color: var(--marfim); padding-block: 6px; }
  .menu a::after { bottom: 8px; }
  .menu.is-aberto { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path 0.7s var(--ease), visibility 0s; }

  .hero__grade { grid-template-columns: 1fr; }
  .hero__mr { order: -1; justify-self: start; width: min(62%, 340px); }
  .hero { padding-block: 120px 96px; }
  .caso { grid-template-columns: 1fr; }
  .caso__imagens { position: relative; top: auto; }
  .processo__grade, .quem__grade { grid-template-columns: 1fr; }
  .fecho__abre { grid-template-columns: 1fr; }
  .planos { grid-template-columns: 1fr; max-width: 520px; perspective: none; }
  .plano, .plano:first-child, .plano:last-child, .plano--destaque, .planos.is-solto .plano.is-foco { transform: none; }
  .processo__abre { position: static; }
  .modelos__abre { grid-template-columns: 1fr; }
  .rodape__grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .pastas, .planos {
    display: grid; grid-auto-flow: column; grid-template-columns: none; gap: 14px;
    overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-right: calc(-1 * var(--margem)); padding-right: var(--margem); -webkit-overflow-scrolling: touch;
  }
  .pastas::-webkit-scrollbar, .planos::-webkit-scrollbar { display: none; }
  .pastas { grid-auto-columns: 80%; padding-top: 6px; }
  .planos { grid-auto-columns: 86%; max-width: none; padding-top: 18px; padding-bottom: 6px; }
  .pasta, .plano { scroll-snap-align: start; }
  .plano, .plano:first-child, .plano:last-child, .plano--destaque { transform: scale(0.95); opacity: 0.6; transition: transform 0.5s var(--ease), opacity 0.5s var(--ease); }
  .plano.is-centro { transform: none; opacity: 1; }
  .pasta { transition: opacity 0.5s var(--ease); opacity: 0.55; }
  .pasta.is-centro { opacity: 1; }
  .pasta__frente { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  .pasta.is-espia .pasta__frente { transform: rotateX(-16deg); }
  .pasta.is-espia .pasta__arquivo--desk { transform: translateY(-16%); }
  .pasta.is-espia .pasta__arquivo--mob { transform: translateY(-11%); }
  .caso__comparar { grid-template-columns: 1fr; }
  .pontos { display: flex; justify-content: center; gap: 8px; margin-top: 20px; }
  .pontos button { width: 24px; height: 24px; padding: 0; border: 0; background: none; display: grid; place-items: center; cursor: pointer; }
  .pontos button::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--linha-forte); transition: width 0.4s var(--ease), background-color 0.4s var(--ease), border-radius 0.4s var(--ease); }
  .pontos button[aria-current="true"]::before { width: 20px; border-radius: 3px; background: var(--ouro); }
  .marca__mr { width: 44px; }
  .marca__nome { font-size: 10px; letter-spacing: 0.2em; padding-left: 10px; }
  .hero__mr { width: min(72%, 300px); }
  .hero__descritor-txt { font-size: 11px; letter-spacing: 0.28em; margin-right: -0.28em; }
  .hero__acoes .btn { flex: 1 1 100%; }
  .frente { grid-template-columns: 1fr; gap: 24px; }
  .glifo { width: 92px; }
  .frente__texto { grid-template-columns: 1fr; }
  .frente__texto > p:last-child { grid-column: 1; grid-row: auto; margin-top: 14px; }
  .caso__entregas { grid-template-columns: 1fr; }
  .tela__barra { font-size: 10px; }
  .pastas { gap: 48px; }
  .passo { grid-template-columns: 40px minmax(0, 1fr); }
  .passo__num { font-size: 1.75rem; }
  .rodape__grade { grid-template-columns: 1fr; }
  .rodape__base { justify-content: flex-start; }
  .fecho__pe .btn { width: 100%; }
  .chave-mensal { border-radius: 16px; }
  /* celular: o botão principal do hero sobe para dentro da primeira tela */
  .hero { min-height: auto; padding-block: 100px 72px; }
  .hero__mr { width: min(58%, 260px); }
  .hero__sub { margin-top: 22px; font-size: 1.0625rem; }
  .hero__acoes { margin-top: 28px; }
  /* áreas de toque de pelo menos 44 px */
  .link { padding-block: 11px; background-position: 0 calc(100% - 10px); }
  .link:hover { background-position: 100% calc(100% - 10px); }
  .rodape__nav a, .rodape__contato address a { padding-block: 10px; }
  .rodape__base a { display: inline-block; padding-block: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
  .brilho { animation: none; background-image: none; -webkit-text-fill-color: var(--ouro); }
  .onda { animation: none !important; background-image: none; -webkit-text-fill-color: var(--marfim); }
  .digita__letra { opacity: 1; }
  .digita__cursor { display: none; }
  .mr-grande__reflexo, .marca__reflexo { display: none; }
  .marca__nome-txt { animation: none; background-image: none; -webkit-text-fill-color: var(--texto-2); }
  .btn--brilho, .btn--brilho::before, .btn--brilho::after, .btn--brilho > span::before { animation: none !important; }
}

/* enquanto a abertura da hero se prepara (no máximo 2,5 s, ver <head>) */
.hero-espera .hero__titulo, .hero-espera [data-hero-item], .hero-espera .hero__descritor, .hero-espera .mr-grande__cheio, .hero-espera .mr-grande__reflexo { opacity: 0; }

/* ---------- fundo de traços finos (js/tracos.js) ---------- */
/* fixo atrás do conteúdo; o canvas redesenha a parte da página que está na tela */
.tracos { position: fixed; inset: 0; height: 100lvh; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 1.6s var(--ease); }
.tracos.is-on { opacity: 1; }
.tracos canvas { position: absolute; left: 0; top: 0; display: block; }
@media (forced-colors: active) { .tracos { display: none; } }

/* ---------- WhatsApp flutuante ---------- */
/* círculo escuro com anel dourado que gira devagar, ícone em linha fina e um balão marfim com o convite */
.zap {
  position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 45;
  display: flex; align-items: center; gap: 12px; text-decoration: none; -webkit-tap-highlight-color: transparent;
  opacity: 0; transform: translateY(26px) scale(0.86); pointer-events: none;
  transition: opacity 0.6s var(--ease), transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.zap.is-on { opacity: 1; transform: none; pointer-events: auto; }
.pg-pacotes .zap { bottom: calc(92px + env(safe-area-inset-bottom)); }
body.menu-aberto .zap { opacity: 0; pointer-events: none; }

.zap__botao { position: relative; flex: none; width: 62px; height: 62px; border-radius: 50%; display: grid; place-items: center; isolation: isolate; }
.zap__botao::before { /* corpo do botão; no hover o ouro sobe de baixo, como o botão principal */
  content: ""; position: absolute; inset: 0; border-radius: 50%; z-index: -1;
  background: radial-gradient(circle at 34% 28%, #3A2F25, #16120F 72%);
  box-shadow: inset 0 0 0 1px rgba(223, 169, 104, 0.5), 0 16px 36px -12px rgba(0, 0, 0, 0.85);
}
.zap__botao::after { /* onda que sai do botão de tempos em tempos */
  content: ""; position: absolute; inset: 0; border-radius: 50%; z-index: -2; border: 1px solid var(--ouro);
  animation: zap-onda 3.6s var(--ease) infinite 1.2s; opacity: 0;
}
.zap__cheio { position: absolute; inset: 0; border-radius: 50%; z-index: -1; background: var(--ouro); clip-path: circle(0% at 50% 100%); transition: clip-path 0.55s var(--ease); }
.zap__anel { position: absolute; inset: -6px; width: calc(100% + 12px); height: calc(100% + 12px); overflow: visible; animation: zap-giro 14s linear infinite; pointer-events: none; }
.zap__anel circle { fill: none; stroke: var(--ouro); stroke-width: 0.9; }
.zap__anel .zap__pontos { stroke-dasharray: 1 5.2; stroke-linecap: round; opacity: 0.55; }
.zap__anel .zap__arco { stroke-width: 1.3; stroke-dasharray: 46 400; stroke-linecap: round; }
.zap__anel .zap__conta { fill: var(--marfim); stroke: none; }
.zap__ico { width: 27px; height: 27px; fill: none; stroke: var(--ouro); stroke-width: 1.35; stroke-linejoin: round; stroke-linecap: round; transition: stroke 0.4s var(--ease), transform 0.5s var(--ease); }

.zap__balao {
  order: -1; position: relative; display: grid; gap: 1px; padding: 10px 16px 11px; border-radius: 14px 14px 4px 14px;
  background: var(--marfim); color: var(--preto); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, 0.8);
  clip-path: inset(0 0 0 100% round 14px 14px 4px 14px); opacity: 0;
  transition: clip-path 0.6s var(--ease), opacity 0.3s var(--ease);
}
.zap__balao small { font-family: var(--f-mono); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: #8C5E22; }
.zap__balao strong { font-family: var(--f-display); font-style: italic; font-weight: 500; font-size: 1.0625rem; line-height: 1.2; white-space: nowrap; }
.zap.is-convite .zap__balao, .zap:focus-visible .zap__balao { clip-path: inset(0 0 0 0 round 14px 14px 4px 14px); opacity: 1; }
@media (hover: hover) {
  .zap:hover .zap__balao { clip-path: inset(0 0 0 0 round 14px 14px 4px 14px); opacity: 1; }
  .zap:hover .zap__cheio { clip-path: circle(75% at 50% 100%); }
  .zap:hover .zap__ico { stroke: var(--preto); transform: rotate(-8deg) scale(1.05); }
}
.zap:active .zap__botao { transform: scale(0.95); }
.zap:focus-visible { outline: none; }
.zap:focus-visible .zap__botao { outline: 2px solid var(--ouro); outline-offset: 6px; }
@keyframes zap-giro { to { rotate: 360deg; } }
@keyframes zap-onda { 0% { transform: scale(1); opacity: 0.55; } 70%, 100% { transform: scale(1.55); opacity: 0; } }
@media (max-width: 720px) {
  .zap__botao { width: 56px; height: 56px; }
  .zap__balao strong { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .zap__anel, .zap__botao::after { animation: none !important; }
}
