/* ============ MERGULHO (hero + seção 2) ============
   --e : expansão do painel (0 → 1)
   --r : raio do círculo que revela a seção 2 (px)            */
.dive { position: relative; height: 420vh; }
.dive__stage {
  position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden;
  background: var(--branco-gelo);
}

/* Painel animado: ocupa a tela toda, recortado para a metade direita no início */
.hero__visual {
  position: absolute; inset: 0; background: var(--g-900); overflow: hidden;
  cursor: grab; touch-action: pan-y;
}
.hero__visual:active { cursor: grabbing; }
.hero__visual canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__visual::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(90% 90% at 50% 50%, transparent 55%, #0f1010cc 100%);
}
.hero__cursor {
  position: absolute; left: 0; top: 0; z-index: 3; pointer-events: none;
  font: 500 .66rem/1 var(--font-text); letter-spacing: .12em; text-transform: uppercase;
  background: var(--branco-gelo); color: var(--azul-royal); padding: 6px 8px; border-radius: 4px;
  opacity: 0; transition: opacity .2s;
}
.hero__cursor.is-on { opacity: 1; }

.kpi {
  position: absolute; z-index: 2; right: 28px; bottom: 28px;
  width: min(270px, calc(50% - 56px));
  background: #10294Af2;
  border: 1px solid #B8D7FA33; border-radius: 14px; padding: 16px 18px 14px; color: #fff;
  pointer-events: none; will-change: opacity;
}
.kpi__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font: 500 .68rem/1 var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: var(--azul-cel); }
.kpi__value { font: 700 1.6rem/1.1 var(--font-display); letter-spacing: -.02em; margin-top: 10px; font-variant-numeric: tabular-nums; }
.kpi__delta { font: 600 .8rem/1 var(--font-text); color: var(--azul-cel); }
.kpi svg { width: 100%; height: 52px; margin-top: 10px; overflow: visible; }

/* Texto do hero: metade esquerda, sai para a esquerda */
.hero__copy {
  position: absolute; top: 0; bottom: 0; left: 0; width: 50%;
  display: flex; flex-direction: column; justify-content: center;
  padding: 48px var(--gutter) 90px;
  background: var(--branco-gelo); z-index: 2;
  will-change: transform;
}
.hero__inner { max-width: 600px; display: flex; flex-direction: column; gap: 24px; }
.hero__logo { width: clamp(110px, 10vw, 150px); height: auto; margin-bottom: 18px; }
.eyebrow { font: 500 .78rem/1 var(--font-text); letter-spacing: .16em; text-transform: uppercase; color: var(--azul); }
.hero h1, .hero__copy h1 {
  font-size: clamp(2.4rem, 4.8vw, 4.4rem);
  font-weight: 700; line-height: 1.02; letter-spacing: -.035em; color: var(--g-900);
}
.hero__copy h1 em {
  font-family: "Instrument Serif", Georgia, "Times New Roman", serif; font-style: italic; font-weight: 400;
  font-size: 1.14em; letter-spacing: -.01em; line-height: .9; color: var(--azul);
}
.hero__lead { font-size: clamp(1rem, 1.15vw, 1.08rem); color: var(--g-700); max-width: 52ch; font-weight: 300; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.btn { font: 600 .95rem/1 var(--font-display); padding: 16px 22px; border-radius: 10px; display: inline-flex; align-items: center; gap: 10px; transition: transform .2s, background .2s, color .2s; }
.btn--primary { background: var(--azul); color: #fff; }
.btn--primary:hover { background: var(--azul-royal); transform: translateY(-2px); }
.btn--ghost { background: var(--g-200); color: var(--g-900); }
.btn--ghost:hover { background: var(--g-300); transform: translateY(-2px); }
.btn .arrow { transition: transform .2s; }
.btn:hover .arrow { transform: translate(2px, -2px); }

.hero__scroll { position: absolute; left: var(--gutter); bottom: 34px; display: flex; align-items: center; gap: 10px;
  font: 500 .7rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: var(--g-600); }
.hero__scroll i { width: 16px; height: 16px; border: 1px solid var(--g-400); border-radius: 50%; position: relative; }
.hero__scroll i::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: var(--azul); animation: pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 50% { transform: scale(.4); opacity: .4; } }

/* ============ SEÇÃO 2 (revelada) ============ */
.portal {
  position: absolute; left: 0; top: 0; z-index: 3; width: 0; height: 0;
  border-radius: 50%; background: var(--branco-gelo);
  transform: scale(0); transform-origin: 50% 50%; will-change: transform; pointer-events: none;
}
.reveal {
  position: absolute; inset: 0; z-index: 4;
  display: flex; align-items: center;
  padding: 48px var(--gutter);
  pointer-events: none;
}
.reveal.is-in { pointer-events: auto; }
.reveal__left > * { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity .6s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in .reveal__left > * { opacity: 1; transform: none; }
.reveal.is-in .reveal__left > :nth-child(2) { transition-delay: .05s; }
.reveal.is-in .reveal__left > :nth-child(3) { transition-delay: .1s; }
.reveal.is-in .reveal__left > :nth-child(4) { transition-delay: .15s; }
.reveal.is-in .reveal__left > :nth-child(5) { transition-delay: .2s; }
.reveal__inner { width: 100%; max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: end; }
.reveal__left { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.reveal h2 { font-size: clamp(1.8rem, 3.2vw, 2.8rem); font-weight: 600; letter-spacing: -.03em; line-height: 1.08; max-width: 18ch; }
.reveal__lead { color: var(--g-700); font-weight: 300; max-width: 46ch; }
.bignum { font: 700 clamp(7rem, 19vw, 17rem)/.82 var(--font-display); letter-spacing: -.06em; color: var(--g-900);
  margin-top: 8px; font-variant-numeric: tabular-nums; display: flex; align-items: flex-start; gap: .04em; }
.bignum::after { content: "↗"; font-size: .32em; line-height: 1; color: var(--azul); margin-top: .12em; letter-spacing: 0; }
.bignum__label { display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  font: 500 .75rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: var(--g-700); }
.bignum__label b { font-weight: 500; background: var(--azul-cel); color: var(--azul-royal); padding: 6px 8px; border-radius: 4px; }

.svc { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--g-300); min-width: 0; opacity: 0; transition: opacity .4s ease; }
.reveal.is-in .svc { opacity: 1; }
.svc li {
  display: flex; align-items: baseline; gap: 18px; padding: clamp(10px, 1.6vh, 16px) 0; border-bottom: 1px solid var(--g-300);
  color: var(--g-900);
  opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease, padding-left .25s, color .25s;
}
.svc li span { flex: 0 0 2.2em; font: 500 .72rem/1 var(--font-text); letter-spacing: .1em; color: var(--azul); font-variant-numeric: tabular-nums; }
.svc li div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.svc li strong { font: 600 clamp(1.02rem, 1.45vw, 1.25rem)/1.2 var(--font-display); letter-spacing: -.01em; transition: color .25s; }
.svc li small { font: 300 clamp(.8rem, .9vw, .88rem)/1.45 var(--font-text); color: var(--g-600); max-width: 46ch; }
.svc li:hover { padding-left: 10px; }
.svc li:hover strong { color: var(--azul); }
.reveal.is-in .svc li { opacity: 1; transform: none; }
.reveal.is-in .svc li:nth-child(2) { transition-delay: .06s, .06s, 0s, 0s; }
.reveal.is-in .svc li:nth-child(3) { transition-delay: .12s, .12s, 0s, 0s; }
.reveal.is-in .svc li:nth-child(4) { transition-delay: .18s, .18s, 0s, 0s; }
.reveal.is-in .svc li:nth-child(5) { transition-delay: .24s, .24s, 0s, 0s; }
.reveal.is-in .svc li:nth-child(6) { transition-delay: .30s, .30s, 0s, 0s; }

/* ============ CELULAR / SEM ANIMAÇÃO: sem o mergulho ============ */
@media (max-width: 960px) {
  .dive { height: auto; }
  .dive__stage { position: relative; height: auto; overflow: visible; display: flex; flex-direction: column; }
  .hero__copy { position: relative; width: 100%; order: 1; padding: 56px var(--gutter) 64px; transform: none !important; }
  .hero__scroll { display: none; }
  .hero__visual { position: relative; order: 2; height: 82vw; max-height: 560px; }
  .portal { display: none; }
  .hero__cursor { display: none; }
  .kpi { right: 16px; bottom: 16px; width: 210px; padding: 12px 14px 10px; opacity: 1 !important; }
  .kpi__value { font-size: 1.3rem; }
  .kpi svg { height: 40px; }
  .reveal { position: relative; order: 3; padding: 72px var(--gutter); background: var(--branco-gelo); pointer-events: auto; }
  .reveal__inner { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .hero__actions .btn { flex: 1 1 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__scroll i::after { animation: none; }
  .svc li { transition: none; }
}

/* ============ SEÇÃO 3 · CENTRAL DE ATENDIMENTO ============ */
.central { position: relative; background: var(--g-900); color: var(--branco-gelo); padding-bottom: clamp(32px, 4vw, 56px); }
.central__edge { display: block; width: 100%; height: 200px; }
.eyebrow--light { color: var(--azul-cel); }

.central__intro {
  padding: clamp(24px, 3vw, 48px) var(--gutter) clamp(16px, 2vw, 32px);
  max-width: 1400px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px;
}
.central__intro h2 { font-size: clamp(2.2rem, 5vw, 4.4rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.04; max-width: 16ch; color: #fff; }
.central__intro p { color: var(--g-400); font-weight: 300; max-width: 54ch; font-size: clamp(1rem, 1.2vw, 1.1rem); }

.central__body { max-width: 1400px; margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: minmax(300px, .8fr) 1.2fr; gap: clamp(24px, 3vw, 48px); }
.central__steps { display: flex; flex-direction: column; gap: clamp(40px, 7vh, 72px); padding: 2vh 0 0; min-width: 0; }
.central__label { font: 500 .72rem/1 var(--font-text); letter-spacing: .16em; text-transform: uppercase; color: var(--g-500); }
.step { max-width: 360px; display: flex; flex-direction: column; gap: 8px; opacity: .28; transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.2,1); transform: translate3d(0, 10px, 0); }
.step:nth-of-type(2n) { margin-left: clamp(0px, 5vw, 72px); }
.step.is-active { opacity: 1; transform: none; }
.step h3 { font: 600 .82rem/1.3 var(--font-text); letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.step h3 span { color: var(--azul-cel); }
.step p { color: var(--g-400); font-weight: 300; }
.btn--light { align-self: flex-start; background: var(--azul-cel); color: var(--azul-royal); }
.btn--light:hover { background: #fff; transform: translateY(-2px); }

.central__visual { position: relative; min-width: 0; }
.central__sticky { position: sticky; top: 12vh; display: flex; flex-direction: column; gap: 14px; padding-top: 2vh; }
.central__m { width: 100%; aspect-ratio: 1069 / 640; max-height: 70vh; cursor: crosshair; }
.central__legend { display: flex; justify-content: space-between; gap: 12px; font: 500 .68rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: var(--g-500); border-top: 1px dashed var(--g-700); padding-top: 12px; }
.central__legend [data-legend] { color: var(--azul-cel); font-variant-numeric: tabular-nums; }

@media (max-width: 960px) {
  .central__edge { height: 160px; }
  .central__body { grid-template-columns: 1fr; }
  .central__visual { order: -1; }
  .central__sticky { position: relative; height: auto; }
  .central__m { max-height: none; }
  .central__steps { gap: 56px; padding: 40px 0 0; }
  .step { opacity: 1; transform: none; }
  .step:nth-of-type(2n) { margin-left: 0; }
}

/* ============ SEÇÃO 4 · MMAGA 360 (abertura de filme) ============ */
.m360 { position: relative; min-height: 100vh; min-height: 100svh; background: #0a0a0a; color: #fff; overflow: hidden; isolation: isolate; }
.m360__film { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; }
.m360__shade { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.5), transparent 128px),
    linear-gradient(to top, rgba(0,0,0,.55), transparent 160px),
    rgba(0,0,0,.25); }
.m360__shell { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; padding: clamp(36px, 5vw, 56px) var(--gutter) clamp(40px, 5vw, 48px); }
.m360__spacer { flex: 1; min-height: 80px; }

.m360__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; }
.m360__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px;
  font: 500 .72rem/1.3 var(--font-text); letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.m360__list i { font-style: normal; color: rgba(255,255,255,.45); margin-right: .4em; }
.m360__intro { max-width: 370px; text-align: justify; text-align-last: left; hyphens: auto; font: 300 clamp(1rem, 1.2vw, 1.12rem)/1.55 var(--font-text); color: rgba(255,255,255,.95); }

.m360__bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }
.m360__head { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; min-width: 0; }
.m360__badge { font: 500 .7rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.85);
  border-left: 2px solid #fff; background: rgba(0,0,0,.55); padding: 9px 12px; }
.m360 h2 { font: 400 clamp(3.4rem, 8.5vw, 7.75rem)/.98 var(--font-display); letter-spacing: -.03em; color: #fff; }
.m360 h2 span { display: block; }

.m360__card { flex: 0 0 auto; width: min(380px, 100%); display: flex; gap: 16px; align-items: stretch;
  background: rgba(16,16,16,.9); border: 1px solid rgba(255,255,255,.1); border-radius: 16px; padding: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.m360__photo { flex: 0 0 86px; height: 104px; border-radius: 8px; background: radial-gradient(120% 90% at 30% 20%, #2C3E70, #10294A 70%); display: grid; place-items: center; }
.m360__photo img { width: 54px; height: auto; }
.m360__cardtxt { display: flex; flex-direction: column; justify-content: center; gap: 6px; min-width: 0; }
.m360__cardtxt strong { font: 600 1.05rem/1.25 var(--font-display); }
.m360__cardtxt span { font: 500 .62rem/1.3 var(--font-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.45); }
.pill { margin-top: 8px; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; background: #fff; color: #000;
  font: 600 .85rem/1 var(--font-display); padding: 11px 16px; border-radius: 999px; box-shadow: inset 0 1px 0 rgba(255,255,255,.4); transition: transform .3s; }
.pill b { color: rgba(0,0,0,.7); font-weight: 600; }
.pill:hover { transform: scale(1.03); }

/* Entrada em sequência (só quando o JS está ativo) */
.js .m360 .a-in { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .9s cubic-bezier(.215,.61,.355,1), transform .9s cubic-bezier(.215,.61,.355,1); }
.js .m360 .m360__list .a-in { transform: translate3d(-14px, 0, 0); }
.js .m360 h2 .a-in { transform: translate3d(0, 36px, 0); }
.js .m360.is-in .a-in { opacity: 1; transform: none; }
.m360.is-in .m360__list li:nth-child(1) { transition-delay: .10s; }
.m360.is-in .m360__list li:nth-child(2) { transition-delay: .18s; }
.m360.is-in .m360__list li:nth-child(3) { transition-delay: .26s; }
.m360.is-in .m360__list li:nth-child(4) { transition-delay: .34s; }
.m360.is-in .m360__list li:nth-child(5) { transition-delay: .42s; }
.m360.is-in .m360__intro { transition-delay: .45s; }
.m360.is-in .m360__badge { transition-delay: .75s; }
.m360.is-in h2 .a-in:nth-child(1) { transition-delay: .9s; }
.m360.is-in h2 .a-in:nth-child(2) { transition-delay: 1.02s; }
.m360.is-in .m360__card { transition-delay: 1.25s; }

@media (max-width: 760px) {
  .m360__top { flex-direction: column; }
  .m360__intro { align-self: flex-end; }
  .m360__bottom { flex-direction: column; align-items: stretch; }
  .m360__card { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .js .m360 .a-in { transition-duration: .01s; transition-delay: 0s !important; }
}

/* ============ SEÇÃO 5 · SOLICITE UMA PROPOSTA (voxel + formulário) ============ */
.contact { position: relative; min-height: 100vh; min-height: 100svh; background: #06070a; color: #fff; overflow: hidden; }
.contact__scene { position: absolute; inset: 0; }
.contact__scene canvas { display: block; width: 100%; height: 100%; }
.contact__inner { position: relative; z-index: 2; min-height: inherit; max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr minmax(380px, 520px); gap: 40px; padding: clamp(48px, 7vw, 96px) var(--gutter); pointer-events: none; }
.contact__side { display: flex; align-items: flex-end; }
.contact__hint { display: flex; align-items: center; gap: 10px; font: 500 .68rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.35); }
.contact__hint i { width: 32px; height: 1px; background: var(--azul-cel); }

.contact__panel { pointer-events: auto; align-self: center; display: flex; flex-direction: column; gap: 16px;
  background: rgba(12,14,20,.9); border: 1px solid rgba(255,255,255,.08); border-radius: 20px; padding: clamp(24px, 3vw, 36px);
  box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.contact__label { display: flex; align-items: center; gap: 12px; font: 600 .7rem/1 var(--font-text); letter-spacing: .2em; text-transform: uppercase; color: var(--azul-cel); }
.contact__label::before { content: ""; width: 32px; height: 1px; background: var(--azul-cel); }
.contact h2 { font: 800 clamp(1.9rem, 3vw, 2.7rem)/1.06 var(--font-display); letter-spacing: -.035em; }
.contact h2 em { font-style: normal; color: var(--azul-cel); }
.contact__lead { font-weight: 300; font-size: .95rem; color: rgba(255,255,255,.5); line-height: 1.7; }

.form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 12px; margin-top: 6px; }
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; border: 0; padding: 0; margin: 0; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { font: 500 .72rem/1 var(--font-text); letter-spacing: .06em; color: rgba(255,255,255,.6); padding: 0; }
.field legend { margin-bottom: 7px; }
.field input, .field select {
  width: 100%; font: 400 .95rem/1.2 var(--font-text); color: #fff;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: 13px 14px;
  transition: border-color .2s, background .2s; -webkit-appearance: none; appearance: none;
}
.field select { background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,.6) 50%), linear-gradient(135deg, rgba(255,255,255,.6) 50%, transparent 50%);
  background-position: calc(100% - 20px) 55%, calc(100% - 15px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.field select option { color: #0f1010; }
.field input::placeholder { color: rgba(255,255,255,.28); }
.field input:focus, .field select:focus { border-color: var(--azul-cel); background: rgba(184,215,250,.06); outline: none; }
.field.is-error input, .field.is-error select, .field.is-error .chips span { border-color: #e5786d; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips label { cursor: pointer; }
.chips input { position: absolute; opacity: 0; pointer-events: none; }
.chips span { display: inline-block; font: 500 .85rem/1 var(--font-text); color: rgba(255,255,255,.7); padding: 10px 14px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14); transition: all .25s; }
.chips label:hover span { border-color: rgba(255,255,255,.4); color: #fff; }
.chips input:checked + span { background: var(--azul-cel); border-color: var(--azul-cel); color: var(--azul-royal); }
.chips input:focus-visible + span { outline: 2px solid var(--azul-cel); outline-offset: 2px; }

.form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 4px; }
.form__submit { border: 0; cursor: pointer; background: var(--azul-cel); color: var(--azul-royal); }
.form__submit:hover { background: #fff; }
.form__submit[disabled] { opacity: .6; cursor: wait; }
.form__msg { font-size: .85rem; color: rgba(255,255,255,.6); }
.form__msg.is-ok { color: var(--azul-cel); }
.form__msg.is-err { color: #e5786d; }

.contact__alt { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.08); }
.contact__alt > span { font: 500 .68rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.35); }
.contact__alt div { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.contact__alt a { font: 600 .95rem/1.2 var(--font-display); color: #fff; transition: color .2s; }
.contact__alt a:hover { color: var(--azul-cel); }

@media (max-width: 960px) {
  .contact__scene { position: relative; height: 70vw; max-height: 460px; }
  .contact__inner { grid-template-columns: 1fr; padding-top: 0; pointer-events: auto; }
  .contact__side { display: none; }
}
@media (max-width: 520px) {
  .form { grid-template-columns: 1fr; }
  .form__submit { width: 100%; justify-content: center; }
}

/* ============ RODAPÉ ============ */
.footer { background: #06070a; color: #fff; border-top: 1px solid rgba(255,255,255,.06); overflow: hidden; }
.footer__inner { max-width: 1400px; margin: 0 auto; padding: clamp(56px, 7vw, 96px) var(--gutter) 28px; display: flex; flex-direction: column; gap: clamp(36px, 5vw, 56px); }
.footer__top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; }
.footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.footer__brand img { width: 170px; height: auto; }
.footer__brand p { color: rgba(255,255,255,.5); font-weight: 300; max-width: 26ch; }
.footer__brand .pill { margin-top: 4px; }
.footer__col { display: flex; flex-direction: column; gap: 11px; min-width: 0; }
.footer__col > span { font: 500 .68rem/1 var(--font-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.35); margin-bottom: 6px; }
.footer__col a { color: rgba(255,255,255,.7); font-size: .92rem; transition: color .2s, transform .2s; width: fit-content; }
.footer__col a:hover { color: #fff; transform: translateX(3px); }
.footer__col .footer__big { font: 600 1.15rem/1.25 var(--font-display); color: #fff; overflow-wrap: anywhere; }
.footer__col .footer__big:hover { color: var(--azul-cel); }
.footer__col small { font-size: .8rem; color: rgba(255,255,255,.35); margin-top: 4px; }

.footer__company { display: flex; flex-wrap: wrap; gap: 8px 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.08);
  font: 400 .8rem/1.4 var(--font-text); color: rgba(255,255,255,.4); }

.footer__word { width: 100%; height: auto; display: block; color: #12161f; margin-bottom: -2%; }
.footer__word path { transition: fill .6s; }
.footer__word:hover path { fill: var(--azul); }
.js .footer__word path { transform: translateY(40%); opacity: 0; transition: transform 1.1s cubic-bezier(.16,1,.3,1), opacity 1.1s ease, fill .6s; }
.js .footer.is-in .footer__word path { transform: none; opacity: 1; }
.footer.is-in .footer__word path:nth-child(2) { transition-delay: .08s; }
.footer.is-in .footer__word path:nth-child(3) { transition-delay: .16s; }
.footer.is-in .footer__word path:nth-child(4) { transition-delay: .24s; }
.footer.is-in .footer__word path:nth-child(5) { transition-delay: .32s; }

.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
  font: 400 .78rem/1.4 var(--font-text); color: rgba(255,255,255,.4); }
.footer__top-link { font: 500 .7rem/1 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.6); transition: color .2s; }
.footer__top-link:hover { color: #fff; }
.footer__top-link b { display: inline-block; transition: transform .2s; }
.footer__top-link:hover b { transform: translateY(-3px); }

@media (max-width: 960px) {
  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .footer__top { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .js .footer__word path { transition: none; transform: none; opacity: 1; }
}

/* Botão principal do hero (chamativo) */
.btn-cta {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; gap: 14px;
  padding: 8px 8px 8px 26px; border-radius: 999px;
  background: var(--azul); color: #fff;
  font: 700 1.02rem/1 var(--font-display); letter-spacing: -.01em;
  box-shadow: 0 14px 34px -12px rgba(44,62,112,.75), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s, background .3s;
}
.btn-cta::before { /* brilho que atravessa o botão */
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(105deg, transparent 30%, rgba(184,215,250,.55) 48%, transparent 66%);
  transform: translateX(-120%); animation: ctaShine 3.2s ease-in-out 1.2s infinite;
}
.btn-cta::after { /* anel pulsando */
  content: ""; position: absolute; inset: -1px; border-radius: inherit; z-index: -2;
  box-shadow: 0 0 0 0 rgba(44,62,112,.45); animation: ctaPulse 2.6s ease-out infinite;
}
.btn-cta__icon {
  position: relative; overflow: hidden; width: 44px; height: 44px; border-radius: 50%;
  background: var(--azul-cel); color: var(--azul-royal); display: grid; place-items: center; flex: none;
  transition: transform .35s cubic-bezier(.2,.7,.2,1);
}
.btn-cta__icon b { grid-area: 1 / 1; font-size: 1.15rem; transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.btn-cta__icon b + b { transform: translate(-150%, 150%); }
.btn-cta:hover { transform: translateY(-3px); background: var(--azul-royal); box-shadow: 0 20px 44px -12px rgba(16,41,74,.8), inset 0 1px 0 rgba(255,255,255,.18); }
.btn-cta:hover .btn-cta__icon { transform: scale(1.06); }
.btn-cta:hover .btn-cta__icon b:first-child { transform: translate(150%, -150%); }
.btn-cta:hover .btn-cta__icon b + b { transform: none; }
.btn-cta:active { transform: translateY(-1px) scale(.98); }
@keyframes ctaShine { 0% { transform: translateX(-120%); } 45%, 100% { transform: translateX(120%); } }
@keyframes ctaPulse { 0% { box-shadow: 0 0 0 0 rgba(44,62,112,.45); } 70%, 100% { box-shadow: 0 0 0 14px rgba(44,62,112,0); } }
.hero__actions { align-items: center; }
@media (max-width: 520px) { .btn-cta { flex: 1 1 100%; justify-content: space-between; } }
@media (prefers-reduced-motion: reduce) { .btn-cta::before, .btn-cta::after { animation: none; } }
.hero__actions .btn--ghost { border-radius: 999px; padding: 21px 26px; background: transparent; border: 1px solid var(--g-300); }
.hero__actions .btn--ghost:hover { background: var(--g-200); border-color: var(--g-200); }
/* botões sempre lado a lado (empilham só no celular) */
@media (min-width: 521px) {
  .hero__actions { flex-wrap: nowrap; gap: 10px; }
  .hero__actions > * { flex: 0 1 auto; white-space: nowrap; }
}
@media (min-width: 521px) and (max-width: 1280px) {
  .btn-cta { font-size: .92rem; gap: 10px; padding: 6px 6px 6px 20px; }
  .btn-cta__icon { width: 38px; height: 38px; }
  .hero__actions .btn--ghost { padding: 17px 20px; font-size: .9rem; }
}
@media (max-width: 400px) {
  .hero__copy h1 .l { white-space: normal; }
}

/* ============ AJUSTES RESPONSIVOS ============ */
.pill { white-space: nowrap; }
@media (max-width: 1100px) {
  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
  .hero__copy h1 { font-size: clamp(2.3rem, 7.4vw, 4rem); }
  .hero__inner { max-width: 640px; }
  .central__sticky { position: relative; top: auto; padding-top: 0; }
  .central__intro h2 { max-width: 18ch; }
  .kpi { left: 14px; right: auto; bottom: 14px; width: 190px; padding: 10px 12px 8px; border-radius: 12px; }
  .kpi__top { font-size: .6rem; }
  .kpi__value { font-size: 1.1rem; margin-top: 6px; }
  .kpi svg { height: 30px; margin-top: 6px; }
  .contact__scene { height: 62vw; max-height: 440px; }
  .m360__shell { padding-top: 48px; }
}
@media (max-width: 600px) {
  .m360 h2 { font-size: clamp(2.8rem, 14vw, 4rem); }
  .m360__list { font-size: .64rem; letter-spacing: .14em; }
  .m360__intro { text-align: left; max-width: none; }
  .m360__card { gap: 12px; padding: 12px; }
  .m360__photo { flex-basis: 64px; height: 84px; }
  .m360__photo img { width: 40px; }
  .reveal h2, .central__intro h2 { font-size: clamp(1.9rem, 8.5vw, 2.6rem); }
  .bignum { font-size: clamp(6rem, 34vw, 9rem); }
  .contact__panel { padding: 22px 18px; border-radius: 16px; }
  .footer__word { margin-bottom: 0; }
}
@media (max-width: 380px) {
  .chips span { padding: 9px 12px; font-size: .8rem; }
  .btn-cta { font-size: .95rem; padding-left: 20px; }
}
@media (max-width: 600px) {
  .footer__top { grid-template-columns: 1fr; gap: 32px; }
}

/* ============ SELETOR DE IDIOMA ============ */
.lang { position: fixed; z-index: 80; top: max(14px, env(safe-area-inset-top, 0px)); right: max(14px, env(safe-area-inset-right, 0px)); }
.lang__current { display: none; }
.lang__list { list-style: none; margin: 0; padding: 5px; display: flex; gap: 2px;
  background: rgba(15,16,16,.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.1); border-radius: 999px; box-shadow: 0 10px 30px -12px rgba(0,0,0,.5); }
.lang__list button { display: flex; align-items: center; gap: 0; padding: 4px; border: 0; border-radius: 999px; background: transparent; cursor: pointer; color: #fff;
  font: 500 .72rem/1 var(--font-text); letter-spacing: .04em; transition: background .25s; }
.lang__list button:hover { background: rgba(255,255,255,.08); }
.lang__flag { width: 22px; height: 22px; border-radius: 50%; overflow: hidden; flex: none; display: block;
  box-shadow: 0 0 0 1px rgba(255,255,255,.18); opacity: .62; filter: saturate(.75); transition: opacity .25s, filter .25s, box-shadow .25s, transform .25s; }
.lang__flag svg { width: 100%; height: 100%; display: block; }
.lang__list button:hover .lang__flag { opacity: 1; filter: none; transform: scale(1.08); }
.lang__list button[aria-pressed="true"] .lang__flag { opacity: 1; filter: none; box-shadow: 0 0 0 2px var(--azul-cel); }
.lang__name { max-width: 0; overflow: hidden; white-space: nowrap; transition: max-width .3s ease, margin .3s ease; }
.lang__list button[aria-pressed="true"] .lang__name { max-width: 90px; margin: 0 8px 0 7px; }

@media (max-width: 600px) {
  .lang__current { display: flex; align-items: center; gap: 7px; padding: 5px 10px 5px 5px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px;
    background: rgba(15,16,16,.8); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #fff; font: 600 .72rem/1 var(--font-text); letter-spacing: .08em; cursor: pointer; }
  .lang__current .lang__flag { opacity: 1; filter: none; }
  .lang__chev { width: 10px; height: 6px; transition: transform .25s; }
  .lang.is-open .lang__chev { transform: rotate(180deg); }
  .lang__list { position: absolute; right: 0; top: calc(100% + 8px); flex-direction: column; border-radius: 16px; padding: 6px; min-width: 150px;
    opacity: 0; transform: translateY(-6px); pointer-events: none; transition: opacity .2s, transform .2s; }
  .lang.is-open .lang__list { opacity: 1; transform: none; pointer-events: auto; }
  .lang__list button { width: 100%; padding: 7px 8px; border-radius: 10px; }
  .lang__list .lang__name, .lang__list button[aria-pressed="true"] .lang__name { max-width: none; margin: 0 0 0 10px; font-size: .85rem; letter-spacing: 0; }
}

/* ============ BOTÃO FLUTUANTE DE WHATSAPP ============ */
.wa { position: fixed; z-index: 80; right: max(20px, env(safe-area-inset-right, 0px)); bottom: max(20px, env(safe-area-inset-bottom, 0px));
  width: 58px; height: 58px; border-radius: 50%; background: #25D366; display: grid; place-items: center;
  box-shadow: 0 12px 28px -8px rgba(0,0,0,.45), 0 0 0 0 rgba(37,211,102,.5); animation: waPulse 2.8s ease-out infinite; transition: transform .25s; }
.wa svg { width: 32px; height: 32px; }
.wa:hover { transform: scale(1.07); }
.wa__tip { position: absolute; right: calc(100% + 12px); top: 50%; transform: translate(8px, -50%); white-space: nowrap; pointer-events: none;
  background: #fff; color: #0f1010; font: 600 .82rem/1 var(--font-display); padding: 10px 14px; border-radius: 999px; box-shadow: 0 10px 24px -10px rgba(0,0,0,.4);
  opacity: 0; transition: opacity .25s, transform .25s; }
.wa:hover .wa__tip, .wa:focus-visible .wa__tip { opacity: 1; transform: translate(0, -50%); }
@keyframes waPulse { 0% { box-shadow: 0 12px 28px -8px rgba(0,0,0,.45), 0 0 0 0 rgba(37,211,102,.5); } 70%, 100% { box-shadow: 0 12px 28px -8px rgba(0,0,0,.45), 0 0 0 16px rgba(37,211,102,0); } }
@media (max-width: 600px) { .wa { width: 52px; height: 52px; } .wa svg { width: 28px; height: 28px; } .wa__tip { display: none; } }
@media (prefers-reduced-motion: reduce) { .wa { animation: none; } }

/* não deixar o card de faturamento embaixo do botão do WhatsApp */
@media (min-width: 961px) { .kpi { bottom: 100px; } }

/* títulos das etapas (texto traduzível dentro do h3) */
.step h3 i { font-style: normal; }

/* japonês e chinês: fontes com os caracteres, sem itálico */
html[data-lang="ja"] { --font-display: "Plus Jakarta Sans", "Noto Sans JP", system-ui, sans-serif; --font-text: "Sora", "Noto Sans JP", system-ui, sans-serif; }
html[data-lang="zh"] { --font-display: "Plus Jakarta Sans", "Noto Sans SC", system-ui, sans-serif; --font-text: "Sora", "Noto Sans SC", system-ui, sans-serif; }
html[data-lang="ja"] .hero__copy h1 em, html[data-lang="zh"] .hero__copy h1 em { font-family: inherit; font-style: normal; font-weight: 700; font-size: 1em; }
html[data-lang="ja"] .hero__copy h1, html[data-lang="zh"] .hero__copy h1 { letter-spacing: 0; line-height: 1.15; }
html[data-lang="ja"] .m360 h2, html[data-lang="zh"] .m360 h2 { letter-spacing: 0; line-height: 1.1; }
html[data-lang="ja"] :is(h1, h2, h3, p, li, strong, small) { word-break: auto-phrase; line-break: strict; }
html[data-lang="zh"] :is(h1, h2, h3, p, li, strong, small) { line-break: strict; }
/* campo-isca anti-robô (fica fora da tela) */
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* texto do botão dentro do card do MMAGA 360 (não herdar o estilo do subtítulo) */
.m360__cardtxt .pill span { font: inherit; letter-spacing: normal; text-transform: none; color: inherit; }
/* endereço no rodapé */
.footer__addr { font-style: normal; display: flex; flex-direction: column; gap: 2px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.08);
  font-size: .86rem; line-height: 1.55; color: rgba(255,255,255,.6); }
.footer__addr > span { font: 500 .68rem/1 var(--font-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.35); margin-bottom: 8px; }
.footer__col .footer__addr a { margin-top: 8px; font-size: .82rem; color: var(--azul-cel); }
