/* ============================================================
   HIVEPlace — sistema visual
   Paleta e tipografia conforme "Hive Identidade Visual V.3"

   TEMAS
   O tema é controlado pelo atributo data-hive-theme na tag <html>:
     · ausente  → segue a preferência do sistema operacional
     · "dark"   → força o tema escuro (padrão da marca)
     · "light"  → força o tema claro
   Toda cor de componente vem dos tokens semânticos abaixo; nenhuma
   cor literal é usada fora do bloco de tokens.
   ============================================================ */

:root{
  /* --- Paleta oficial da marca (invariável entre temas) --- */
  --gold:       #EFB41B;   /* dourado oficial                  */
  --gold-deep:  #D98E06;   /* dourado escuro — acento em fundo claro */
  --ember:      #5D2E07;   /* brasa                            */
  --brown:      #332528;   /* marrom oficial                   */
  --brown-deep: #1A1214;   /* marrom profundo                  */
  --graphite:   #404146;   /* grafite oficial                  */
  --ink:        #0D0D0E;   /* preto oficial                    */
  --paper:      #EEF1F0;   /* branco oficial                   */

  /* --- Tokens semânticos: TEMA ESCURO (padrão da marca) --- */
  --bg:          #0D0D0E;
  --bg-raise:    #121012;
  --bg-warm:     rgba(51,37,40,.62);
  --bg-warm-2:   rgba(51,37,40,.55);
  --bg-footer:   #1A1214;
  --bg-chip:     rgba(18,16,18,.55);
  --header-bg:   rgba(13,13,14,.82);

  --text:        #EEF1F0;
  --text-strong: #FFFFFF;
  --text-soft:   #B9B1AE;
  --text-mute:   #8A817F;

  --accent:      #EFB41B;   /* acento em texto e linhas        */
  --accent-fill: #EFB41B;   /* preenchimento de botão          */
  --accent-hover:#F6C63A;
  --on-accent:   #0D0D0E;   /* texto sobre o preenchimento     */

  --line:        rgba(238,241,240,.10);
  --line-strong: rgba(238,241,240,.18);
  --rule:        #404146;

  --danger:      #E08064;
  --sheen:       rgba(255,255,255,.55);
  --blend:       overlay;
  --grain-op:    .045;

  --art-sky:     #2A2124;   /* topo do céu na arte de Brasília */
  --art-ground:  #0D0D0E;

  --hex-op:       .55;          /* presença da malha no fundo   */
  --hex-rgb:      238,241,240;  /* malha hexagonal do hero      */
  --hex-gold-rgb: 239,180,27;

  /* --- Tipografia ---
     Primária oficial: Neue Haas Grotesk (Adobe Fonts, sem licença web aqui).
     Se a licença Adobe for ativada no domínio, a fonte oficial entra sozinha.
     Fallback: Helvetica Neue — a matriz histórica da Neue Haas Grotesk. */
  --font-display: 'Neue Haas Grotesk Display Pro','NHaasGroteskDSPro','Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-body:    'Manrope','Helvetica Neue',Helvetica,Arial,sans-serif;

  /* --- Ritmo --- */
  --gutter: clamp(20px, 5vw, 72px);
  --wrap: 1280px;
  --section-pad: clamp(72px, 10vw, 148px);

  color-scheme: dark;
}

/* --- TEMA CLARO: aplicado por escolha explícita… --- */
:root[data-hive-theme="light"]{
  --bg:          #EEF1F0;
  --bg-raise:    #FFFFFF;
  --bg-warm:     rgba(51,37,40,.07);
  --bg-warm-2:   rgba(51,37,40,.05);
  --bg-footer:   #E3E6E5;
  --bg-chip:     rgba(255,255,255,.72);
  --header-bg:   rgba(238,241,240,.86);

  --text:        #1A1214;
  --text-strong: #0D0D0E;
  --text-soft:   #4A4245;
  --text-mute:   #6E6568;

  --accent:      #A8690A;   /* dourado escurecido: legível sobre papel */
  --accent-fill: #EFB41B;
  --accent-hover:#D98E06;
  --on-accent:   #0D0D0E;

  --line:        rgba(13,13,14,.12);
  --line-strong: rgba(13,13,14,.20);
  --rule:        #9A9598;

  --danger:      #A33418;
  --sheen:       rgba(255,255,255,.85);
  --blend:       multiply;
  --grain-op:    .030;

  --art-sky:     #DCDFDE;
  --art-ground:  #F4F6F5;

  --hex-op:       .30;
  --hex-rgb:      13,13,14;
  --hex-gold-rgb: 217,142,6;

  color-scheme: light;
}

/* --- …e por preferência do sistema, salvo escolha contrária --- */
@media (prefers-color-scheme: light){
  :root:not([data-hive-theme="dark"]){
    --bg:          #EEF1F0;
    --bg-raise:    #FFFFFF;
    --bg-warm:     rgba(51,37,40,.07);
    --bg-warm-2:   rgba(51,37,40,.05);
    --bg-footer:   #E3E6E5;
    --bg-chip:     rgba(255,255,255,.72);
    --header-bg:   rgba(238,241,240,.86);

    --text:        #1A1214;
    --text-strong: #0D0D0E;
    --text-soft:   #4A4245;
    --text-mute:   #6E6568;

    --accent:      #A8690A;
    --accent-fill: #EFB41B;
    --accent-hover:#D98E06;
    --on-accent:   #0D0D0E;

    --line:        rgba(13,13,14,.12);
    --line-strong: rgba(13,13,14,.20);
    --rule:        #9A9598;

    --danger:      #A33418;
    --sheen:       rgba(255,255,255,.85);
    --blend:       multiply;
    --grain-op:    .030;

    --art-sky:     #DCDFDE;
    --art-ground:  #F4F6F5;

    --hex-op:       .30;
    --hex-rgb:      13,13,14;
    --hex-gold-rgb: 217,142,6;

    color-scheme: light;
  }
}

*,*::before,*::after{ box-sizing:border-box }

html{
  scroll-behavior:smooth;
  scroll-padding-top:104px;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background-color .35s ease, color .35s ease;
}

img,svg,canvas{ display:block; max-width:100% }
a{ color:inherit; text-decoration:none }
button,input,select,textarea{ font:inherit; color:inherit }
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{ margin:0 }
ul,ol{ padding:0; list-style:none }

:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
  border-radius:2px;
}

.skip{
  position:fixed; top:-200px; left:16px; z-index:200;
  background:var(--accent-fill); color:var(--on-accent);
  padding:12px 18px; font-weight:700; border-radius:2px;
}
.skip:focus{ top:16px }

.sr-only{
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* --- Grão de filme -------------------------------------------------
   Dá profundidade ao fundo chapado sem custar uma única imagem.     */
.grain{
  position:fixed; inset:-50%;
  z-index:100; pointer-events:none;
  opacity:var(--grain-op);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");
  animation:grainShift 7s steps(6) infinite;
  mix-blend-mode:var(--blend);
}
@keyframes grainShift{
  0%   { transform:translate(0,0) }
  20%  { transform:translate(-3%,2%) }
  40%  { transform:translate(2%,-3%) }
  60%  { transform:translate(-2%,-2%) }
  80%  { transform:translate(3%,1%) }
  100% { transform:translate(0,0) }
}

/* --- Entrada orquestrada -------------------------------------------
   Animações de carga: terminam visíveis, nunca dependem de scroll.  */
@keyframes riseIn{
  from{ transform:translateY(102%) }
  to  { transform:translateY(0) }
}
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(16px) }
  to  { opacity:1; transform:none }
}
.anim{ animation:fadeUp .8s cubic-bezier(.22,.72,.2,1) both; animation-delay:var(--d,0ms) }

/* --- Revelação em scroll (só com JS; sem JS tudo já está visível) --- */
.js-reveal .reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.22,.72,.2,1), transform .7s cubic-bezier(.22,.72,.2,1);
}
.js-reveal .reveal.is-in{ opacity:1; transform:none }

/* --- Contêiner ------------------------------------------------------ */
.wrap{
  width:min(var(--wrap), 100% - (var(--gutter) * 2));
  margin-inline:auto;
  position:relative;
}

/* ============================================================
   Tipografia de display
   ============================================================ */
h1,h2,h3,.statement{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.03;
  letter-spacing:-.035em;
  text-wrap:balance;
  color:var(--text-strong);
}
h1 em,h2 em,.statement em{
  font-style:normal;
  color:var(--accent);
}

.eyebrow,.section-tag,.cell-verb,.compare-label,.form label,.menu-word{
  font-family:var(--font-body);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  line-height:1.5;
}

.section-tag{
  color:var(--text-mute);
  display:flex; align-items:center; gap:14px;
  margin-bottom:28px;
}
.section-tag .num{
  color:var(--accent);
  font-variant-numeric:tabular-nums;
  position:relative;
  padding-right:14px;
}
.section-tag .num::after{
  content:""; position:absolute; right:0; top:50%;
  width:6px; height:1px; background:var(--rule);
}

.section-intro{
  color:var(--text-soft);
  font-size:clamp(1rem,1.5vw,1.15rem);
  max-width:56ch;
  margin-top:26px;
}

/* ============================================================
   Header
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--header-bg);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--line);
  transition:background-color .35s ease;
}
.header-row{
  min-height:84px;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
}

/* O lettering oficial é branco. Em tema claro ele é apresentado sobre
   uma placa escura — aplicação prevista no manual (cartão, app icon) —
   em vez de ter a cor alterada, o que o manual proíbe. */
.brand{ display:inline-flex; border-radius:6px; transition:background .35s ease, padding .35s ease }
.brand img{ width:168px; height:auto }
:root[data-hive-theme="light"] .brand:not(.has-positive){ background:var(--ink); padding:9px 14px }
@media (prefers-color-scheme: light){
  :root:not([data-hive-theme="dark"]) .brand:not(.has-positive){ background:var(--ink); padding:9px 14px }
}

.site-header nav{
  display:flex; align-items:center; gap:28px;
  font-size:.9rem; color:var(--text-soft);
}
.site-header nav a{ padding:10px 0; transition:color .2s ease }
.site-header nav a:hover,.site-header nav a.is-current{ color:var(--text-strong) }

.nav-cta{
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:11px 20px !important;
  color:var(--text-strong);
  transition:border-color .2s ease, color .2s ease;
}
.nav-cta:hover{ border-color:var(--accent); color:var(--accent) }
.nav-cta span{ margin-left:10px }

/* --- Seletor de tema ------------------------------------------------- */
.theme-toggle{
  display:inline-flex; align-items:center; gap:9px;
  background:transparent;
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:9px 15px;
  cursor:pointer;
  color:var(--text-soft);
  font-size:.78rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase;
  transition:border-color .2s ease, color .2s ease;
}
.theme-toggle:hover{ border-color:var(--accent); color:var(--accent) }
.theme-hex{
  width:13px; height:14px; flex:none;
  background:var(--accent);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  transition:clip-path .3s ease, transform .3s ease;
}
/* No tema claro a célula aparece "vazada", como no símbolo da marca. */
:root[data-hive-theme="light"] .theme-hex{ transform:rotate(30deg) }
@media (prefers-color-scheme: light){
  :root:not([data-hive-theme="dark"]) .theme-hex{ transform:rotate(30deg) }
}

.menu-toggle{
  display:none; align-items:center; gap:11px;
  background:transparent; border:1px solid var(--line-strong);
  border-radius:999px; padding:9px 16px; cursor:pointer;
}
.menu-bars{ display:grid; gap:4px; width:16px }
.menu-bars i{ height:1.5px; background:var(--text); display:block; transition:transform .25s ease }
.menu-toggle[aria-expanded="true"] .menu-bars i:first-child{ transform:translateY(2.75px) rotate(45deg) }
.menu-toggle[aria-expanded="true"] .menu-bars i:last-child{ transform:translateY(-2.75px) rotate(-45deg) }

.header-tools{ display:flex; align-items:center; gap:12px }

/* ============================================================
   Botões
   ============================================================ */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:15px 26px;
  border-radius:999px;
  font-size:.92rem; font-weight:600;
  border:1px solid transparent;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn:active{ transform:translateY(1px) }
.btn-primary{
  background:var(--accent-fill); color:var(--on-accent);
  position:relative; overflow:hidden;
}
.btn-primary::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg,transparent 40%,var(--sheen) 50%,transparent 60%);
  background-size:250% 100%;
  background-position:170% 0;
  transition:background-position .7s ease;
}
.btn-primary:hover::before{ background-position:-70% 0 }
.btn-primary:hover{ background:var(--accent-hover) }
.btn-primary > *{ position:relative }
.btn-ghost{ border-color:var(--line-strong); color:var(--text-soft) }
.btn-ghost:hover{ border-color:var(--text-strong); color:var(--text-strong) }

/* ============================================================
   Hero
   ============================================================ */
.hero{
  position:relative;
  padding-block:clamp(56px,8vw,104px) clamp(40px,5vw,64px);
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hex-field{
  position:absolute; inset:0;
  width:100%; height:100%;
  opacity:var(--hex-op);
  pointer-events:none;
}
.hero-inner,.surfaces{ position:relative; z-index:1 }

.eyebrow{
  display:flex; align-items:center; gap:14px;
  color:var(--text-mute);
  margin-bottom:clamp(28px,4vw,44px);
}
.eyebrow .mark{ width:24px; height:2px; background:var(--accent); flex:none }

.hero h1{
  font-size:clamp(2.5rem,7.6vw,6.4rem);
  letter-spacing:-.05em;
  font-weight:600;
  margin-bottom:clamp(34px,4.5vw,54px);
}
.hero h1 .line{ display:block; overflow:hidden; padding-bottom:.04em }
.hero h1 .line-in{
  display:block;
  animation:riseIn .95s cubic-bezier(.22,.78,.16,1) both;
  animation-delay:var(--d,0ms);
}
.hero h1 em{ position:relative; font-style:normal; color:var(--accent) }
/* Brilho que percorre a palavra-categoria uma vez, no carregamento. */
.hero h1 em::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg,transparent 38%,var(--sheen) 50%,transparent 62%);
  background-size:260% 100%;
  mix-blend-mode:overlay;
  animation:sheen 1.6s ease-out 1.1s 1 both;
  pointer-events:none;
}
@keyframes sheen{
  from{ background-position:180% 0; opacity:1 }
  to  { background-position:-80% 0; opacity:0 }
}

.hero-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(28px,5vw,64px);
  align-items:end;
  border-top:1px solid var(--line);
  padding-top:clamp(28px,3.5vw,40px);
}
.lead{
  font-size:clamp(1.05rem,1.7vw,1.32rem);
  color:var(--text-soft);
  max-width:56ch;
  font-weight:300;
}
.lead strong{ color:var(--text-strong); font-weight:600 }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap }

/* --- Superfícies de integração --------------------------------------
   O escopo real da agência, em uma linha: cada chip é uma célula da
   colmeia e o pulso dourado percorre a fila como um handshake.      */
.surfaces{
  margin-top:clamp(52px,6.5vw,86px);
  padding-top:clamp(26px,3vw,34px);
  border-top:1px solid var(--line);
}
.surfaces-label{
  font-size:.72rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--text-mute);
  margin-bottom:20px;
}
/* Dois grupos: as superfícies técnicas e os ecossistemas abertos.
   A distinção é estrutural (rótulo + linha própria), não cromática —
   o dourado continua reservado ao destaque, como manda o manual.   */
.surfaces-group{
  display:grid;
  grid-template-columns:minmax(148px,auto) 1fr;
  align-items:start;
  gap:8px 26px;
  padding-block:14px;
}
.surfaces-group + .surfaces-group{ border-top:1px solid var(--line) }
.group-tag{
  font-size:.68rem; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--text-mute);
  padding-top:11px;
}
.surfaces-row{ display:flex; flex-wrap:wrap; gap:10px 12px }
.surfaces-row li{
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 17px 10px 13px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-size:.88rem;
  color:var(--text-soft);
  background:var(--bg-chip);
  transition:border-color .3s ease, color .3s ease, background .3s ease;
}
.hexchip{
  width:11px; height:12px; flex:none;
  background:var(--rule);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
  transition:background .3s ease, transform .3s ease;
}
.surfaces-row li.is-lit{
  border-color:var(--accent);
  color:var(--text-strong);
  background:var(--bg-warm-2);
}
.surfaces-row li.is-lit .hexchip{ background:var(--accent); transform:scale(1.15) }
.surfaces-note{ margin-top:18px; font-size:.82rem; color:var(--text-mute) }
.surfaces-note em{ font-style:italic }

/* ============================================================
   Manifesto
   ============================================================ */
.manifesto{
  padding-block:var(--section-pad);
  background:radial-gradient(120% 90% at 12% 0%, var(--bg-warm), transparent 62%), var(--bg);
  border-bottom:1px solid var(--line);
}
.statement{ font-size:clamp(2.1rem,5.4vw,4.4rem); margin-bottom:clamp(40px,5vw,64px) }
.manifesto-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px,3vw,44px) clamp(32px,5vw,80px);
  max-width:1060px;
}
.manifesto-grid p{
  color:var(--text-soft);
  font-size:clamp(1rem,1.4vw,1.08rem);
  font-weight:300;
  max-width:58ch;
}
.manifesto-grid strong{ color:var(--text-strong); font-weight:600 }
.manifesto-grid em{ color:var(--accent); font-style:italic }

.pullquote{
  margin-top:clamp(48px,6vw,80px);
  padding-left:clamp(20px,3vw,34px);
  border-left:2px solid var(--accent);
  font-family:var(--font-display);
  font-size:clamp(1.35rem,2.9vw,2.3rem);
  line-height:1.16;
  letter-spacing:-.03em;
  max-width:26ch;
  font-weight:500;
  color:var(--text-strong);
}

/* --- Faixa de verbos oficiais ---------------------------------------- */
.verbs{
  overflow:hidden;
  border-block:1px solid var(--line);
  background:var(--bg-raise);
  padding-block:18px;
  position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.verbs-track{ display:flex; width:max-content; animation:marquee 46s linear infinite }
.verbs:hover .verbs-track{ animation-play-state:paused }
.verbs-set{ display:flex; align-items:center; flex:none }
.verbs-set b{
  font-family:var(--font-display);
  font-size:clamp(1.1rem,2.1vw,1.7rem);
  font-weight:500;
  letter-spacing:-.03em;
  color:var(--text-mute);
  padding-inline:clamp(14px,1.6vw,24px);
  white-space:nowrap;
}
.verbs-set b:nth-child(6n+1){ color:var(--accent) }
.verbs-set i{
  width:9px; height:10px; flex:none;
  background:var(--rule);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
}
@keyframes marquee{
  from{ transform:translateX(0) }
  to  { transform:translateX(-50%) }
}

/* ============================================================
   Modelo — comparativo
   ============================================================ */
.modelo{ padding-block:var(--section-pad); border-bottom:1px solid var(--line) }
.modelo h2{ font-size:clamp(1.95rem,4.4vw,3.5rem) }

.compare{
  margin-top:clamp(44px,5vw,72px);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:clamp(20px,2.5vw,36px);
  align-items:stretch;
}
.compare-versus{
  align-self:center;
  font-family:var(--font-display);
  font-size:.86rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--text-mute);
}
.compare-card{
  display:flex; flex-direction:column; gap:22px;
  padding:clamp(24px,3vw,38px);
  border:1px solid var(--line);
  background:var(--bg-raise);
}
.compare-card.is-hive{
  background:linear-gradient(165deg, var(--bg-warm), var(--bg-raise) 58%);
  border-color:var(--accent);
}
.compare-label{ color:var(--text-mute); display:block; margin-bottom:8px }
.compare-card.is-hive .compare-label{ color:var(--accent) }
.compare-card h3{ font-size:clamp(1.2rem,2vw,1.6rem); font-weight:500 }

.compare-figure{ margin:0 }
.compare-figure svg{ width:100%; height:auto }
.compare-figure .blob{ fill:none; stroke:var(--ember); stroke-width:1.4; opacity:.8 }
.compare-figure .wires path{ fill:none; stroke:var(--rule); stroke-width:1 }
.compare-figure .nodes rect{ fill:var(--text-mute) }
.compare-figure .cells polygon{ fill:none; stroke:var(--accent); stroke-width:1.1; opacity:.55 }
.compare-figure .cells .core{ opacity:1 }
.compare-figure .chips rect{ fill:var(--text-soft) }
.compare-figure .chips .chip-core{ fill:var(--accent-fill) }

.compare-list{ display:grid; gap:14px; margin-top:auto }
.compare-list li{
  position:relative; padding-left:20px;
  font-size:.95rem; color:var(--text-soft); font-weight:300;
}
.compare-list li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:7px; height:7px; background:var(--rule);
}
.compare-card.is-hive .compare-list li::before{
  background:var(--accent);
  clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);
}
.compare-verdict{
  padding-top:18px;
  border-top:1px solid var(--line);
  font-family:var(--font-display);
  font-size:1.02rem; font-weight:600;
  color:var(--text-mute);
}
.compare-verdict.is-strong{ color:var(--accent) }

/* ============================================================
   Faixa C-level — o argumento de negócio, não de tecnologia
   ============================================================ */
.clevel{
  padding-block:clamp(56px,7vw,100px);
  background:linear-gradient(150deg, var(--bg-warm), var(--bg) 60%);
  border-bottom:1px solid var(--line);
}
.clevel .section-tag .num{ padding-right:10px }
.clevel h2{ font-size:clamp(1.7rem,3.6vw,2.9rem); max-width:22ch }
.clevel-grid{
  margin-top:clamp(28px,3.5vw,44px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(22px,3vw,56px);
  max-width:1000px;
}
.clevel-grid p{ color:var(--text-soft); font-weight:300; max-width:52ch }
.clevel-grid strong{ color:var(--text-strong); font-weight:600 }
.clevel-focus{
  margin-top:clamp(30px,3.5vw,44px);
  display:flex; flex-wrap:wrap; gap:12px 10px;
}
.clevel-focus li{
  display:inline-flex; align-items:baseline; gap:9px;
  padding:11px 18px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-size:.85rem;
  color:var(--text-mute);
}
.clevel-focus span{
  font-family:var(--font-display);
  font-size:.95rem; font-weight:600;
  letter-spacing:-.02em;
  color:var(--accent);
}

/* ============================================================
   Frentes
   ============================================================ */
.frentes{ padding-block:var(--section-pad); border-bottom:1px solid var(--line) }
.frentes h2{ font-size:clamp(1.95rem,4.6vw,3.7rem) }

.cells-list{
  margin-top:clamp(44px,5vw,72px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.cell{
  background:var(--bg);
  padding:clamp(28px,3.4vw,46px);
  display:grid; gap:16px; align-content:start;
  position:relative;
  transition:background .35s ease;
}
.cell::after{
  content:""; position:absolute; left:0; top:0; width:2px; height:0;
  background:var(--accent);
  transition:height .35s ease;
}
.cell:hover{ background:var(--bg-raise) }
.cell:hover::after{ height:100% }
.cell-verb{ color:var(--accent) }
.cell h3{ font-size:clamp(1.25rem,2.1vw,1.75rem); font-weight:500 }
.cell p{ color:var(--text-soft); font-weight:300; max-width:52ch }

/* ============================================================
   Postura
   ============================================================ */
.postura{
  padding-block:var(--section-pad);
  background:radial-gradient(100% 80% at 88% 100%, var(--bg-warm-2), transparent 60%), var(--bg);
  border-bottom:1px solid var(--line);
}
.postura h2{ font-size:clamp(1.95rem,4.4vw,3.5rem) }
/* Duas posturas: a grade tem duas colunas para que nenhuma sobre sozinha
   em uma linha, e o bloco não se estica além do texto confortável.   */
.postura-grid{
  margin-top:clamp(44px,5vw,68px);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(28px,4vw,64px);
  max-width:1040px;
}
.postura-grid article{
  display:grid; gap:16px; align-content:start;
  padding-top:26px;
  border-top:1px solid var(--line-strong);
}
.postura-grid h3{ font-size:clamp(1.2rem,1.9vw,1.5rem); font-weight:500 }
.postura-grid p{ color:var(--text-soft); font-weight:300; font-size:1rem; max-width:48ch }

/* ============================================================
   Origem — Brasília
   ============================================================ */
.origem{ padding-block:var(--section-pad); border-bottom:1px solid var(--line) }
.origem-inner{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(36px,5vw,80px);
  align-items:center;
}
.origem h2{ font-size:clamp(1.95rem,4.2vw,3.4rem); margin-bottom:32px }
.origem-text p{ color:var(--text-soft); font-weight:300; max-width:54ch; margin-bottom:20px }
.origem-text strong{ color:var(--text-strong); font-weight:600 }

.origem-art{ display:grid; gap:16px }
.origem-art svg{ width:100%; height:auto; border:1px solid var(--line) }
.origem-art stop:first-child{ stop-color:var(--art-sky) }
.origem-art stop:last-child{ stop-color:var(--art-ground) }
.origem-art .horizon path{ stroke:var(--rule); stroke-width:1 }
.origem-art .arches path{ fill:none; stroke:var(--text-mute); stroke-width:1.1; opacity:.72 }
.origem-art .columns path{ stroke:var(--rule); stroke-width:1 }
.origem-art .axis path{ stroke:var(--accent); stroke-width:1; opacity:.6 }
.origem-art .cells polygon{ fill:none; stroke:var(--accent); stroke-width:1.2 }
.origem-art .sun{ fill:var(--accent) }
.origem-art figcaption{ font-size:.78rem; color:var(--text-mute); line-height:1.5 }

/* ============================================================
   Contato
   ============================================================ */
.contato{ padding-block:var(--section-pad) }
.contato-inner{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,5vw,88px);
  align-items:start;
}
.contato h2{ font-size:clamp(2rem,4.4vw,3.5rem); margin-bottom:28px }
.contato-text > p{ color:var(--text-soft); font-weight:300; max-width:44ch }
.contato-direct{
  margin-top:28px; padding-top:24px;
  border-top:1px solid var(--line);
  font-size:.9rem; color:var(--text-mute);
}
.contato-direct a{
  display:block; margin-top:8px;
  font-family:var(--font-display);
  font-size:clamp(1rem,1.8vw,1.3rem);
  color:var(--accent);
  letter-spacing:-.02em;
}
.contato-direct a:hover{ color:var(--text-strong) }

.form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  padding:clamp(26px,3vw,40px);
  border:1px solid var(--line);
  background:linear-gradient(170deg, var(--bg-warm-2), var(--bg-raise) 62%);
}
.field{ display:grid; gap:9px }
.field-wide,.form-foot{ grid-column:1 / -1 }
.form label{ color:var(--text-mute) }
.form input,.form select,.form textarea{
  background:var(--bg);
  border:1px solid var(--line-strong);
  border-radius:2px;
  padding:13px 14px;
  font-size:.95rem;
  width:100%;
  transition:border-color .2s ease;
}
.form textarea{ resize:vertical; min-height:104px }
.form input:hover,.form select:hover,.form textarea:hover{ border-color:var(--rule) }
.form input:focus,.form select:focus,.form textarea:focus{ border-color:var(--accent); outline:none }
.form .invalid{ border-color:var(--danger) }

.form-foot{
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; flex-wrap:wrap;
  padding-top:6px;
}
.form-note{ font-size:.85rem; color:var(--text-mute); margin:0 }
.form-note.is-error{ color:var(--danger) }
.form-note.is-ok{ color:var(--accent) }

/* ============================================================
   Rodapé
   ============================================================ */
.site-footer{
  border-top:1px solid var(--line);
  padding-block:clamp(40px,5vw,64px);
  background:var(--bg-footer);
}
.footer-inner{
  display:grid;
  grid-template-columns:1.2fr 1fr 1.2fr auto;
  gap:clamp(28px,4vw,56px);
  align-items:start;
}
.footer-brand > .brand{ margin-bottom:16px }
.footer-brand img{ width:152px; height:auto }
.footer-slogan{
  font-family:var(--font-display);
  font-size:1rem; color:var(--text-soft);
  letter-spacing:-.02em; max-width:24ch;
}
.footer-nav{ display:grid; gap:10px; font-size:.9rem; color:var(--text-soft) }
.footer-nav a:hover{ color:var(--accent) }
.footer-meta{ font-size:.85rem; color:var(--text-mute); display:grid; gap:8px }
.footer-meta a{ color:var(--text-soft) }
.footer-meta a:hover{ color:var(--accent) }
.footer-copy{ margin-top:6px }
.to-top{
  border:1px solid var(--line-strong);
  border-radius:999px;
  padding:11px 18px;
  font-size:.82rem;
  white-space:nowrap;
  justify-self:end;
}
.to-top:hover{ border-color:var(--accent); color:var(--accent) }

/* --- Identificação jurídica ------------------------------------------
   Duas razões sociais, cada uma com seu CNPJ. Fica abaixo de uma régua,
   em corpo menor: é informação de registro, não de comunicação.      */
.footer-legal{
  margin-top:clamp(32px,4vw,48px);
  padding-top:24px;
  border-top:1px solid var(--line);
}
.legal-list{
  display:flex; flex-wrap:wrap;
  gap:10px clamp(28px,4vw,64px);
}
.legal-list li{
  display:flex; flex-direction:column; gap:3px;
  font-size:.78rem;
  line-height:1.5;
  color:var(--text-mute);
}
.legal-name{ color:var(--text-soft); font-weight:500 }
.legal-doc .num{ font-variant-numeric:tabular-nums; letter-spacing:.01em }

/* ============================================================
   Responsivo
   ============================================================ */
/* Tablet largo: a etiqueta do seletor sai antes que o menu aperte. */
@media (max-width:1240px){
  .site-header nav{ gap:22px }
  .theme-label{ display:none }
  .theme-toggle{ padding:10px 12px }
}

@media (max-width:1080px){
  .hero-body{ grid-template-columns:1fr; align-items:start }
  .origem-inner,.contato-inner{ grid-template-columns:1fr }
  .footer-inner{ grid-template-columns:1fr 1fr }
  .to-top{ justify-self:start }
  .clevel h2{ max-width:none }
}

@media (max-width:900px){
  .site-header nav{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:4px;
    padding:18px 0 26px;
    background:var(--bg-raise);
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 30px -24px rgba(0,0,0,.8);
  }
  .clevel-grid{ grid-template-columns:1fr }
  .site-header nav.is-open{ display:flex }
  .site-header nav a{ padding:13px 0; font-size:1rem }
  .nav-cta{ text-align:center; margin-top:10px; border-color:var(--accent); color:var(--accent) }
  .menu-toggle{ display:inline-flex }

  .hex-field{ opacity:calc(var(--hex-op) * .62) }
  .surfaces-group{ grid-template-columns:1fr; gap:10px }
  .group-tag{ padding-top:0 }
  .surfaces-row li{ font-size:.82rem; padding:9px 14px 9px 11px }
  .manifesto-grid{ grid-template-columns:1fr }
  .compare{ grid-template-columns:1fr }
  .compare-versus{ justify-self:center }
  .cells-list{ grid-template-columns:1fr }
  .postura-grid{ grid-template-columns:1fr }
  .form{ grid-template-columns:1fr }
}

@media (max-width:600px){
  html{ scroll-padding-top:84px }
  .header-row{ min-height:70px }
  .brand img{ width:134px }
  .menu-word{ display:none }
  .header-tools{ gap:8px }
  .hero h1{ font-size:clamp(2.35rem,10.5vw,3.6rem) }
  .pullquote{ max-width:none }
  .btn{ width:100%; justify-content:space-between }
  .footer-inner{ grid-template-columns:1fr }
  .clevel-focus li{ width:100%; justify-content:flex-start }
}

/* Telas estreitas (iPhone SE, Android compactos) */
@media (max-width:380px){
  :root{ --gutter:16px }
  .brand img{ width:118px }
  .theme-toggle,.menu-toggle{ padding:8px 10px }
  .hero h1{ font-size:2.05rem; letter-spacing:-.04em }
  .statement{ font-size:1.85rem }
  .surfaces-row{ gap:8px }
  .surfaces-row li{ font-size:.78rem; padding:8px 12px 8px 10px }
  .compare-card,.cell{ padding:22px }
  .form{ padding:20px }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .grain{ animation:none }
  .hero h1 em::after{ display:none }
  .verbs-track{ animation:none; width:auto; overflow-x:auto }
  .js-reveal .reveal{ opacity:1; transform:none }
}

@media print{
  .site-header,.hex-field,.to-top,.form,.grain,.verbs{ display:none }
  body{ background:#fff; color:#000 }
}
