/* ═══════════════════════════════════════════════════════════
   SOLAR CONTABILIDADE — projeto conceito Empusites
   Off-white · preto · vinho · brutalista-chique
   Bodoni Moda + IBM Plex Sans + IBM Plex Mono
   Regra do projeto: cantos vivos, sem sombra, régua de 1px.
   ═══════════════════════════════════════════════════════════ */

:root{
  --bone:   #F2F0EA;
  --bone-2: #E9E6DE;
  --bone-3: #DFDBD0;
  --black:  #111111;
  --black-2:#1B1B1B;
  --wine:   #6E1F2E;
  --wine-lt:#8E3346;
  --wine-bg:rgba(110,31,46,.07);

  --ink-2: rgba(17,17,17,.66);
  --ink-3: rgba(17,17,17,.44);
  --lt:    #F2F0EA;
  --lt-2:  rgba(242,240,234,.66);
  --lt-3:  rgba(242,240,234,.42);

  --rule:  #111111;
  --rule-s:rgba(17,17,17,.16);
  --rule-l:rgba(242,240,234,.2);

  --fd: 'Bodoni Moda', Didot, Georgia, serif;
  --fs: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --fm: 'IBM Plex Mono', ui-monospace, Menlo, monospace;

  --wrap: 1220px;
  --pad:  clamp(20px, 5vw, 44px);
  --sec:  clamp(70px, 9.5vw, 132px);
  --e:    cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; border-radius:0 }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100% }
body{
  background:var(--bone); color:var(--black);
  font-family:var(--fs); font-size:16px; line-height:1.62; letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden;
}
img,svg{ display:block; max-width:100% }
a{ color:inherit; text-decoration:none }
ul,ol{ list-style:none }
button,input,select{ font:inherit; color:inherit }
::selection{ background:var(--wine); color:var(--bone) }
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad) }

/* Bodoni em corpo alto precisa de peso: no 500 as hastes finas somem e o título esvazia */
h1,h2,h3{ font-family:var(--fd); font-weight:700; line-height:1.03; letter-spacing:-.025em }
em{ font-style:italic; color:var(--wine) }

.mono{ display:block; font-family:var(--fm); font-size:11px; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:20px }
.mono--lt{ color:var(--lt-3) }

.grain{ position:fixed; inset:0; z-index:800; pointer-events:none; opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E") }

/* ─────────── seções ─────────── */
.sec{ padding-block:var(--sec) }
.sec--rule{ border-top:1px solid var(--rule) }
.sec--bone{ background:var(--bone-2); border-top:1px solid var(--rule) }
.sec--dark{ background:var(--black); color:var(--lt) }
.sh{ max-width:660px; margin-bottom:clamp(40px,5vw,66px) }
.sh h2{ font-size:clamp(30px,4.6vw,54px) }
.sh__lead{ font-size:16px; color:var(--ink-2); margin-top:20px; max-width:48ch }
.sec--dark .sh h2{ color:var(--lt) }

/* ─────────── header ─────────── */
.hd{ position:fixed; top:0; left:0; right:0; z-index:900; padding-block:15px;
  border-bottom:1px solid transparent; transition:background .3s ease, border-color .3s ease, padding .3s var(--e) }
.hd.stuck{ background:var(--bone); border-bottom-color:var(--rule); padding-block:10px }
.hd__row{ display:flex; align-items:center; justify-content:space-between; gap:22px }
.brand{ display:inline-flex; align-items:center; gap:11px }
.brand__txt{ display:flex; flex-direction:column; line-height:1;
  font-family:var(--fd); font-size:20px; font-weight:700; letter-spacing:-.01em }
.brand__txt small{ font-family:var(--fm); font-size:8.5px; font-weight:400; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink-3); margin-top:4px }
.ft .brand__txt{ color:var(--lt) }
.ft .brand__txt small{ color:var(--lt-3) }

.nav{ display:flex; align-items:center; gap:0 }
.nav a{ padding:8px 16px; font-size:14px; color:var(--ink-2); border-left:1px solid var(--rule-s);
  transition:background .25s ease, color .25s ease }
.nav a:last-child{ border-right:1px solid var(--rule-s) }
.nav a:hover{ background:var(--black); color:var(--bone) }

.hd__cta{ display:flex; align-items:center; gap:12px }
.burger{ display:none; width:40px; height:40px; border:1px solid var(--rule);
  background:none; cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px }
.burger i{ width:16px; height:1.5px; background:var(--black); transition:transform .4s var(--e) }
.burger[aria-expanded="true"] i:nth-child(1){ transform:translateY(3.2px) rotate(45deg) }
.burger[aria-expanded="true"] i:nth-child(2){ transform:translateY(-3.2px) rotate(-45deg) }

/* ─────────── botões ─────────── */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:14px 26px; font-family:var(--fm); font-size:12.5px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; border:1px solid var(--black);
  cursor:pointer; white-space:nowrap; transition:background .25s ease, color .25s ease, border-color .25s ease }
.btn--sm{ padding:10px 18px; font-size:11px }
.btn--lg{ padding:17px 32px; font-size:13px }
.btn--block{ width:100% }
.btn--dark{ background:var(--black); color:var(--bone) }
.btn--dark:hover{ background:transparent; color:var(--black) }
.btn--line{ background:transparent; color:var(--black) }
.btn--line:hover{ background:var(--black); color:var(--bone) }
.btn--wine{ background:var(--wine); border-color:var(--wine); color:var(--bone) }
.btn--wine:hover{ background:transparent; color:var(--wine) }

/* ─────────── hero ─────────── */
.hero{ padding-top:clamp(104px,13vh,148px) }
.hero__in{ display:grid; grid-template-columns:1.16fr .84fr; gap:clamp(28px,4vw,64px);
  align-items:end; padding-bottom:clamp(30px,4vw,52px) }
.lines{ font-size:clamp(40px,7.2vw,94px); line-height:.96; letter-spacing:-.035em }
.lines > span{ display:block; overflow:hidden; padding-bottom:.06em }
.lines .ln{ display:block; transform:translateY(106%); transition:transform 1.05s var(--e) }
.lines.in .ln{ transform:none }
.lines > span:nth-child(1) .ln{ transition-delay:.05s }
.lines > span:nth-child(2) .ln{ transition-delay:.14s }
.lines > span:nth-child(3) .ln{ transition-delay:.23s }
.lines > span:nth-child(4) .ln{ transition-delay:.32s }

.hero__sub{ font-size:clamp(15.5px,1.5vw,17.5px); color:var(--ink-2); margin-bottom:28px; max-width:42ch }
.hero__act{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px }
/* ─────────── organograma da estrutura ─────────── */
.org{ background:var(--black); border:1px solid var(--black); padding:clamp(20px,3vw,34px) }
.org__cap{ display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  flex-wrap:wrap; padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid var(--rule-l) }
.org__cap .mono{ margin-bottom:0; color:var(--lt-3) }
.org__leg{ display:inline-flex; align-items:center; gap:9px; font-family:var(--fm);
  font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--lt-3) }
.org__leg i{ width:12px; height:12px; background:var(--wine); display:block; flex:none }
.org__svg{ width:100%; height:auto; display:block; max-height:340px }

.org__svg text{ font-family:var(--fm); font-size:11px; letter-spacing:.05em;
  fill:rgba(242,240,234,.74); text-anchor:middle }
.org-line path{ fill:none; stroke:rgba(242,240,234,.3); stroke-width:1 }
.org-box rect{ fill:none; stroke:rgba(242,240,234,.5); stroke-width:1 }
.org-box--asset rect{ fill:rgba(242,240,234,.04); stroke:rgba(242,240,234,.26) }
.org-hold{ fill:var(--wine); stroke:var(--wine); stroke-width:1 }
text.org-t--hold{ font-family:var(--fd); font-size:21px; font-weight:700;
  letter-spacing:.15em; fill:var(--bone) }
text.org-t--holds{ font-size:9px; letter-spacing:.07em; fill:rgba(242,240,234,.72) }
.org-t--asset text{ font-size:10px; fill:rgba(242,240,234,.86) }
.org-t--asset text.org-t--n{ font-size:8.5px; fill:rgba(242,240,234,.4) }
.org-t--foot text{ font-family:var(--fs); font-size:11px; letter-spacing:0; fill:rgba(242,240,234,.42) }

/* faixa de dados — encaixa na borda inferior do organograma */
.hero__facts{ display:grid; grid-template-columns:repeat(3,1fr);
  border:1px solid var(--rule); border-top:0; margin-bottom:clamp(38px,5vw,60px) }
.hero__facts div{ padding:17px 20px; border-left:1px solid var(--rule-s) }
.hero__facts div:first-child{ border-left:0 }
.hero__facts dt{ font-family:var(--fm); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-3); margin-bottom:7px }
.hero__facts dd{ font-family:var(--fd); font-size:20px; font-weight:700 }

.hero__band{ border-block:1px solid var(--rule); padding-block:13px; overflow:hidden }
.hero__band-t{ display:flex; align-items:center; gap:22px; width:max-content;
  animation:scrollx 44s linear infinite }
.hero__band span{ font-family:var(--fd); font-style:italic; font-size:17px; white-space:nowrap }
.hero__band i{ color:var(--wine); font-style:normal }
@keyframes scrollx{ to{ transform:translateX(-50%) } }

/* ─────────── números ─────────── */
.figures__in{ display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--rule) }
.fig{ padding:clamp(30px,4vw,52px) clamp(18px,2.4vw,32px); border-left:1px solid var(--rule-s) }
.fig:first-child{ border-left:0; padding-left:0 }
.fig b{ display:block; font-family:var(--fd); font-size:clamp(34px,4.8vw,58px); font-weight:500;
  line-height:1; letter-spacing:-.03em; margin-bottom:14px }
.fig span{ font-size:13.5px; color:var(--ink-2); max-width:26ch; display:block; line-height:1.5 }

/* ─────────── comparador ─────────── */
.comp{ display:grid; grid-template-columns:.72fr 1.28fr; border:1px solid var(--rule) }
.comp__input{ padding:clamp(26px,3vw,38px); border-right:1px solid var(--rule) }
.comp__field{ display:flex; align-items:baseline; gap:8px; border-bottom:2px solid var(--black);
  padding-bottom:10px; margin-bottom:18px }
.comp__field span{ font-family:var(--fm); font-size:15px; color:var(--ink-3) }
.comp__field input{ flex:1; min-width:0; border:0; background:transparent; outline:none;
  font-family:var(--fd); font-size:clamp(26px,3.2vw,38px); font-weight:500;
  letter-spacing:-.03em; color:var(--black) }
.comp__quick{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px }
.comp__quick button{ padding:7px 13px; border:1px solid var(--rule-s); background:transparent;
  font-family:var(--fm); font-size:11px; letter-spacing:.06em; cursor:pointer;
  transition:background .25s ease, color .25s ease, border-color .25s ease }
.comp__quick button:hover,.comp__quick button.is-on{ background:var(--black); color:var(--bone); border-color:var(--black) }
.comp__note{ font-size:12.5px; color:var(--ink-3); line-height:1.55 }

.comp__out{ padding:clamp(26px,3vw,38px) }
.ctab{ width:100%; border-collapse:collapse; margin-bottom:26px }
.ctab th,.ctab td{ padding:11px 14px; text-align:right; font-size:14px; border-top:1px solid var(--rule-s) }
.ctab th:first-child,.ctab td:first-child{ text-align:left; color:var(--ink-2); padding-left:0 }
.ctab thead th{ font-family:var(--fm); font-size:10px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-3); border-top:0; padding-bottom:14px }
.ctab td{ font-family:var(--fm); font-size:14px; font-variant-numeric:tabular-nums }
.ctab .is-us{ background:var(--wine-bg); color:var(--wine); font-weight:500 }
.ctab thead .is-us{ color:var(--wine) }
.ctab__total td{ border-top:2px solid var(--black); font-size:17px; padding-block:15px }
.ctab__total td:first-child{ font-family:var(--fs); font-weight:600; color:var(--black) }
.ctab__time td{ font-family:var(--fs); font-size:13px; color:var(--ink-2) }
.ctab__time .is-us{ color:var(--wine) }

.comp__delta{ border-top:1px solid var(--rule-s); padding-top:22px }
.comp__delta .mono{ margin-bottom:8px }
.comp__delta b{ display:block; font-family:var(--fd); font-size:clamp(28px,3.6vw,42px);
  font-weight:500; color:var(--wine); letter-spacing:-.03em; margin-bottom:20px }
.comp__bars{ display:flex; flex-direction:column; gap:10px }
.comp__bars div{ display:flex; align-items:center; gap:12px }
.comp__bars span{ font-family:var(--fm); font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ink-3); width:74px; flex:none }
.comp__bars i{ display:block; height:14px; background:var(--black); transition:width .5s var(--e) }
.comp__bars i.is-us{ background:var(--wine) }

.disc{ margin-top:24px; font-size:12px; color:var(--ink-3); line-height:1.6; max-width:82ch }
.disc b{ color:var(--black) }

/* ─────────── serviços ─────────── */
.srv{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--rule-l);
  border-left:1px solid var(--rule-l) }
.srv__i{ padding:clamp(26px,3vw,38px); border-right:1px solid var(--rule-l);
  border-bottom:1px solid var(--rule-l); transition:background .3s ease }
.srv__i:hover{ background:var(--black-2) }
.srv__n{ display:inline-block; font-family:var(--fd); font-size:15px; font-style:italic;
  color:var(--wine-lt); border:1px solid var(--rule-l); width:34px; height:34px;
  line-height:32px; text-align:center; margin-bottom:20px }
.srv__i h3{ font-size:23px; margin-bottom:12px; color:var(--lt) }
.srv__i p{ font-size:14px; color:var(--lt-2) }

/* ─────────── processo ─────────── */
.proc{ border-top:1px solid var(--rule-s) }
.proc__i{ display:grid; grid-template-columns:88px 1fr; gap:clamp(16px,3vw,44px);
  padding-block:clamp(26px,3vw,38px); border-bottom:1px solid var(--rule-s);
  transition:background .3s ease }
.proc__i:hover{ background:var(--bone-2) }
.proc__n{ font-family:var(--fd); font-size:clamp(28px,3.4vw,42px); font-style:italic;
  color:var(--wine); line-height:1 }
.proc__i h3{ font-size:clamp(21px,2.4vw,28px); margin-bottom:10px }
.proc__i p{ font-size:15px; color:var(--ink-2); max-width:62ch; margin-bottom:12px }
.proc__t{ margin:0; color:var(--ink-3) }

/* ─────────── depoimentos ─────────── */
.says{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--rule) }
.say{ padding:clamp(28px,3.4vw,44px) clamp(24px,3vw,40px) clamp(28px,3.4vw,44px) 0;
  border-right:1px solid var(--rule-s) }
.say:last-child{ border-right:0; padding-left:clamp(24px,3vw,40px); padding-right:0 }
.say blockquote{ font-family:var(--fd); font-size:clamp(19px,2.2vw,25px); line-height:1.42;
  letter-spacing:-.015em; margin-bottom:24px }
.say blockquote::before{ content:'“'; color:var(--wine) }
.say blockquote::after{ content:'”'; color:var(--wine) }
.say figcaption b{ display:block; font-size:14.5px; font-weight:600 }
.say figcaption span{ font-family:var(--fm); font-size:11px; letter-spacing:.06em; color:var(--ink-3) }

/* ─────────── escritório ─────────── */
.office{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,72px); align-items:start }
.office__l h2{ font-size:clamp(29px,4.2vw,48px); margin-bottom:24px }
.office__l p{ font-size:15.5px; color:var(--ink-2); margin-bottom:16px; max-width:46ch }
.office__facts{ display:grid; grid-template-columns:1fr 1fr; margin-top:30px; border-top:1px solid var(--rule) }
.office__facts div{ padding:16px 16px 16px 0; border-bottom:1px solid var(--rule-s) }
.office__facts dt{ font-family:var(--fm); font-size:9.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-3); margin-bottom:6px }
.office__facts dd{ font-family:var(--fd); font-size:19px; font-weight:500 }
.office__r{ border-top:1px solid var(--rule) }
.ppl{ display:grid; grid-template-columns:56px 1fr; gap:16px; align-items:center;
  padding:20px 0; border-bottom:1px solid var(--rule-s) }
.ppl span{ width:56px; height:56px; border:1px solid var(--rule); display:grid; place-content:center;
  font-family:var(--fd); font-size:17px; font-style:italic; color:var(--wine) }
.ppl b{ display:block; font-size:15.5px; font-weight:600; grid-column:2 }
.ppl small{ display:block; font-family:var(--fm); font-size:10.5px; letter-spacing:.05em;
  color:var(--ink-3); grid-column:2; margin-top:3px }

/* ─────────── contato ─────────── */
.contact{ background:var(--black); color:var(--lt); padding-block:var(--sec) }
.contact__in{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(34px,5vw,72px); align-items:start }
.contact h2{ font-size:clamp(29px,4.2vw,48px); color:var(--lt); margin-bottom:26px }
.contact__q{ font-family:var(--fd); font-style:italic; font-size:clamp(19px,2.2vw,26px);
  line-height:1.42; color:var(--lt); border-left:2px solid var(--wine-lt);
  padding-left:22px; margin-bottom:26px }
.contact__l > p{ font-size:15.5px; color:var(--lt-2); max-width:44ch }
.contact__info{ display:grid; gap:0; margin-top:34px; border-top:1px solid var(--rule-l) }
.contact__info div{ padding:15px 0; border-bottom:1px solid var(--rule-l);
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap }
.contact__info dt{ margin:0; color:var(--lt-3) }
.contact__info dd{ font-family:var(--fd); font-size:17px }
.contact__note{ margin-top:20px; font-size:11.5px; color:var(--lt-3) }

.cform{ background:var(--bone); color:var(--black); padding:clamp(26px,3vw,38px);
  border:1px solid var(--bone) }
.fld{ margin-bottom:16px }
.fld label{ margin-bottom:8px }
.fld input,.fld select{ width:100%; padding:13px 14px; border:1px solid var(--rule-s);
  background:var(--bone-2); font-size:14.5px; transition:border-color .25s ease }
.fld input::placeholder{ color:var(--ink-3) }
.fld input:focus,.fld select:focus{ outline:none; border-color:var(--wine) }
.cform__ok{ margin-top:13px; font-family:var(--fm); font-size:11.5px; color:var(--wine); text-align:center }

/* ─────────── rodapé ─────────── */
.ft{ background:var(--black); color:var(--lt); border-top:1px solid var(--rule-l);
  padding-block:44px 22px; overflow:hidden }
.ft__in{ display:flex; align-items:flex-start; justify-content:space-between; gap:34px;
  flex-wrap:wrap; padding-bottom:32px; border-bottom:1px solid var(--rule-l) }
.ft__d{ font-size:13.5px; color:var(--lt-2); max-width:34ch; margin-top:16px }
.ft__nav{ display:flex; flex-direction:column; gap:7px }
.ft__nav a{ font-family:var(--fm); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--lt-2); transition:color .25s ease }
.ft__nav a:hover{ color:var(--wine-lt) }
.ft__word{ font-family:var(--fd); font-style:italic; font-size:clamp(88px,22vw,280px);
  line-height:.78; text-align:center; color:transparent;
  -webkit-text-stroke:1px rgba(242,240,234,.18); letter-spacing:-.03em;
  margin-top:clamp(32px,5vw,56px); user-select:none }
.ft__bot{ display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between;
  padding-top:20px; margin-top:clamp(22px,4vw,40px); border-top:1px solid var(--rule-l);
  font-size:11.5px; color:var(--lt-3) }
.ft__bot a{ color:var(--wine-lt); border-bottom:1px solid rgba(142,51,70,.5) }

/* ─────────── assinatura Empusites ─────────── */
.sig{ position:fixed; right:22px; bottom:22px; z-index:850; display:flex; align-items:center;
  gap:11px; padding:9px 15px 9px 9px; background:var(--bone); border:1px solid var(--black);
  opacity:0; transform:translateY(14px); pointer-events:none;
  transition:opacity .6s var(--e), transform .6s var(--e), padding .5s var(--e) }
.sig.show{ opacity:1; transform:none; pointer-events:auto }
.sig:hover{ padding-right:21px }
.sig__mark{ width:31px; height:31px; background:var(--black); color:var(--bone);
  display:grid; place-content:center; font-family:var(--fd); font-size:16px; font-weight:700; flex:none }
.sig__id{ display:flex; flex-direction:column; line-height:1.06 }
.sig__id small{ font-family:var(--fm); font-size:8px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-3) }
.sig__id b{ font-family:var(--fd); font-size:14px; font-weight:700 }
.sig__cta{ display:inline-flex; align-items:center; gap:6px; max-width:0; overflow:hidden;
  white-space:nowrap; font-family:var(--fm); font-size:11px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--wine);
  transition:max-width .55s var(--e), margin-left .55s var(--e) }
.sig:hover .sig__cta{ max-width:230px; margin-left:6px }

/* ─────────── reveal ─────────── */
.rv{ opacity:0; transform:translateY(18px); transition:opacity .8s var(--e), transform .8s var(--e) }
.rv.in{ opacity:1; transform:none }
.rv[data-d="1"]{ transition-delay:.08s } .rv[data-d="2"]{ transition-delay:.16s }
.rv[data-d="3"]{ transition-delay:.24s } .rv[data-d="4"]{ transition-delay:.32s }
.rv[data-d="5"]{ transition-delay:.4s }

/* ─────────── responsivo ─────────── */
@media (max-width:1040px){
  .hero__in,.comp,.office,.contact__in{ grid-template-columns:1fr }
  .comp__input{ border-right:0; border-bottom:1px solid var(--rule) }
  .srv{ grid-template-columns:1fr 1fr }
  .figures__in{ grid-template-columns:1fr }
  .fig{ border-left:0; border-top:1px solid var(--rule-s); padding-left:0 }
  .fig:first-child{ border-top:0 }
}
@media (max-width:860px){
  .nav{ position:fixed; inset:0 0 auto; top:60px; flex-direction:column; align-items:stretch;
    background:var(--bone); border-bottom:1px solid var(--rule); padding:0 var(--pad) 16px;
    transform:translateY(-140%); transition:transform .45s var(--e); z-index:-1 }
  .nav.open{ transform:none }
  .nav a{ padding:15px 2px; font-size:16px; border-left:0; border-bottom:1px solid var(--rule-s) }
  .nav a:last-child{ border-right:0 }
  .nav a:hover{ background:transparent; color:var(--wine) }
  .burger{ display:flex }
  .hd__cta .btn{ display:none }
  .says{ grid-template-columns:1fr }
  .say{ padding:clamp(26px,4vw,38px) 0; border-right:0; border-bottom:1px solid var(--rule-s) }
  .say:last-child{ padding-left:0; border-bottom:0 }
}
/* duas versões do organograma: a horizontal no desktop, a vertical no celular.
   Encolher a horizontal deixaria os rótulos em ~8px; rolar de lado cortaria o
   elemento principal do hero. */
.org__svg--v{ display:none }
@media (max-width:760px){
  .org__svg{ display:none }
  .org__svg--v{ display:block; max-height:none; margin-inline:auto; max-width:330px }
  .org{ padding:20px 18px 22px }
}

text.org-t--vh{ font-family:var(--fm); font-size:12px; font-weight:500; letter-spacing:.22em;
  fill:var(--bone); text-anchor:middle }
text.org-t--vs{ font-family:var(--fm); font-size:9px; letter-spacing:.04em;
  fill:rgba(242,240,234,.55); text-anchor:middle }
.org-t--vasset text{ font-family:var(--fm); font-size:11px; letter-spacing:.04em;
  fill:rgba(242,240,234,.9); text-anchor:start }
.org-t--vn text{ font-family:var(--fm); font-size:9px; letter-spacing:.03em;
  fill:rgba(242,240,234,.4); text-anchor:end }
.org-t--vfoot text{ font-family:var(--fs); font-size:10.5px; letter-spacing:0;
  fill:rgba(242,240,234,.42); text-anchor:middle }

@media (max-width:620px){
  .sig{ right:14px; bottom:14px; padding:8px 13px 8px 8px }
  .sig:hover .sig__cta{ max-width:0; margin-left:0 }
  .srv{ grid-template-columns:1fr }
  .proc__i{ grid-template-columns:1fr; gap:12px }
  .hero__act{ flex-direction:column }
  .hero__act .btn{ width:100% }
  .office__facts{ grid-template-columns:1fr }

  /* faixa de dados empilha — em 3 colunas cada célula ficaria com ~110px */
  .hero__facts{ grid-template-columns:1fr }
  .hero__facts div{ border-left:0; border-top:1px solid var(--rule-s) }
  .hero__facts div:first-child{ border-top:0 }

  /* tabela comparativa: 3 colunas de moeda não cabem em 375px */
  .ctabwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch;
    margin-inline:calc(-1 * clamp(18px,4vw,26px)); padding-inline:clamp(18px,4vw,26px) }
  .ctab{ min-width:392px }
  .ctab th,.ctab td{ padding:10px 8px; font-size:12.5px }
  .ctab__total td{ font-size:15px }

  .comp__input,.comp__out{ padding:clamp(18px,4vw,26px) }
  .comp__bars span{ width:60px; font-size:9.5px }
  .say blockquote{ font-size:18px }
  .contact__info div{ flex-direction:column; gap:4px }
}

/* telas bem estreitas (iPhone SE e similares) */
@media (max-width:380px){
  .hero__facts dd{ font-size:18px }
  .fig b{ font-size:32px }
  .proc__n{ font-size:26px }
}

:focus-visible{ outline:2px solid var(--wine); outline-offset:3px }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important;
    transition-duration:.001ms!important; scroll-behavior:auto!important }
  .rv{ opacity:1; transform:none }
  .lines .ln{ transform:none }
}
