/*
Theme Name: Hipermidia Studio - Caverna de Cristal
Theme URI: https://hipermidiastudio.com
Author: Hipermidia Studio
Author URI: https://hipermidiastudio.com
Description: Site de pagina unica em Three.js com a metafora de uma caverna de cristal. Producao audiovisual, edicao com IA, criacao de sites e automacao para WhatsApp. Curitiba, PR.
Version: 1.1.0
Requires at least: 5.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hipermidia-caverna
*/

/* =====================================================================
   Aqui o tema e dono da pagina inteira, entao o reset de html/body e
   nosso e e necessario. (No modo "colar num bloco de HTML" ele nao
   existia, para nao brigar com o tema do cliente.)
   ===================================================================== */
html, body { margin:0; padding:0; background:#05070a; }

/* A barra do admin empurra a pagina 32px para baixo. Sem isto, o topo
   fixo do site fica escondido atras dela para quem esta logado. */
body.admin-bar .hs-nav { top:32px; }
@media screen and (max-width:782px) {
  body.admin-bar .hs-nav { top:46px; }
}

/* =====================================================================
   HIPERMÍDIA STUDIO — Caverna de Cristal
   Todo o CSS está escopado sob .hs-root para não brigar com o tema do
   WordPress. NÃO aplique transform, filter, backdrop-filter, perspective
   nem contain em .hs-root ou em qualquer ancestral dele: isso faria os
   elementos position:fixed se ancorarem nele em vez de na viewport.
   ===================================================================== */

.hs-root{
  /* --- paleta ------------------------------------------------------ */
  --hs-ink:#05070a;
  --hs-ink-2:#0a1119;
  --hs-bone:#e7edeb;
  --hs-bone-soft:#b7c3ca;
  --hs-bone-dim:#8996a1;
  --hs-azul:#2563eb;
  --hs-azul-lit:#5b9bff;
  --hs-bordo:#9f2b2b;
  --hs-vermelho:#c0453f;
  --hs-line:rgba(231,237,235,.13);
  --hs-line-soft:rgba(231,237,235,.07);
  --hs-grad:linear-gradient(100deg,#4b8dfa 0%,#6f6ce0 42%,#c0453f 100%);
  --hs-grad-text:linear-gradient(100deg,#8ec0ff 0%,#b6adff 42%,#ff9c88 100%);
  /* O degradê do botão é mais fundo que o dos ícones: em área grande, um
     miolo claro achata a peça e a transição fica suja. */
  --hs-grad-btn:linear-gradient(100deg,#2b62d8 0%,#4b4fc6 30%,#7a4288 60%,#a8362f 100%);
  /* --- métrica ----------------------------------------------------- */
  --hs-pad:clamp(20px,4.4vw,72px);
  --hs-nav-h:92px;
  --hs-max:1180px;
  --hs-ease:cubic-bezier(.22,.61,.36,1);
  --hs-ease-out:cubic-bezier(.16,1,.3,1);

  position:relative;
  z-index:0;
  font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;
  font-size:16px;
  line-height:1.62;
  color:var(--hs-bone-soft);
  background:var(--hs-ink);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:clip;
}
.hs-root *,.hs-root *::before,.hs-root *::after{ box-sizing:border-box; }
.hs-root img{ max-width:100%; display:block; }

/* ============================================================ camadas */
.hs-gl{
  position:fixed; inset:0; width:100%; height:100%;
  display:block; z-index:0; background:var(--hs-ink);
}
/* Fallback sem WebGL: a caverna vira um gradiente composto. */
.hs-gl-fallback{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(58% 42% at 50% 8%, rgba(91,155,255,.20), transparent 70%),
    radial-gradient(48% 38% at 22% 62%, rgba(37,99,235,.16), transparent 72%),
    radial-gradient(52% 44% at 82% 88%, rgba(159,43,43,.20), transparent 74%),
    linear-gradient(180deg,#070c14 0%,#05070a 46%,#0b0710 100%);
}
.hs-haze{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(180deg, rgba(5,7,10,.70) 0%, rgba(5,7,10,0) 24%),
    linear-gradient(0deg,  rgba(5,7,10,.78) 0%, rgba(5,7,10,0) 28%),
    radial-gradient(122% 84% at 50% 50%, rgba(5,7,10,0) 40%, rgba(5,7,10,.60) 100%);
}
.hs-grain{
  position:fixed; inset:-140px; z-index:2; pointer-events:none;
  opacity:.05; mix-blend-mode:screen;
  background-repeat:repeat;
  will-change:transform;
}

/* O conteúdo vive acima da caverna e é SEMPRE transparente. */
.hs-main{ position:relative; z-index:10; }
.hs-sec{
  position:relative;
  min-height:100vh;
  padding:11vh var(--hs-pad);
  display:flex; flex-direction:column; justify-content:center;
  background:none;            /* transições transparentes: nada opaco */
}
.hs-wrap{ width:100%; max-width:var(--hs-max); margin:0 auto; }
/* A primeira seção é a única que encosta na barra fixa. */
.hs-sec:first-of-type{ padding-top:calc(var(--hs-nav-h) + 9vh); }

/* ============================================================= texto */
.hs-eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.30em; text-transform:uppercase;
  color:var(--hs-azul-lit); margin:0 0 22px;
  text-shadow:0 1px 18px rgba(3,6,10,.9);
}
.hs-display{
  font-size:clamp(38px,6.4vw,86px); line-height:1.03; font-weight:700;
  letter-spacing:-.028em; color:var(--hs-bone); margin:0 0 26px;
  text-shadow:0 2px 40px rgba(3,6,10,.92), 0 1px 3px rgba(3,6,10,.8);
}
.hs-h2{
  font-size:clamp(30px,4.4vw,58px); line-height:1.07; font-weight:700;
  letter-spacing:-.024em; color:var(--hs-bone); margin:0 0 22px;
  text-shadow:0 2px 34px rgba(3,6,10,.92);
}
.hs-h3{
  font-size:clamp(17px,1.5vw,21px); font-weight:700; letter-spacing:-.008em;
  color:var(--hs-bone); margin:0 0 10px;
}
.hs-display .hs-grad-text,.hs-h2 .hs-grad-text{ display:block; }
.hs-grad-text{
  background:var(--hs-grad-text); -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
  /* Com o preenchimento transparente, um text-shadow apareceria ATRAVÉS das
     letras e apagaria o gradiente. O halo tem de vir de drop-shadow, que
     age sobre os pixels já pintados. */
  text-shadow:none;
  filter:drop-shadow(0 2px 16px rgba(3,6,10,.9)) drop-shadow(0 1px 2px rgba(3,6,10,.7));
}
.hs-lead{
  font-size:clamp(15px,1.24vw,19px); line-height:1.72; color:var(--hs-bone-soft);
  max-width:62ch; margin:0 0 34px;
  text-shadow:0 1px 22px rgba(3,6,10,.9);
}
.hs-body{
  font-size:14.5px; line-height:1.7; color:var(--hs-bone-dim); margin:0;
  text-shadow:0 1px 18px rgba(3,6,10,.85);
}
.hs-sec-intro{ max-width:64ch; margin-bottom:clamp(48px,6vw,86px); }

/* revelação por palavra (títulos de display) */
.hs-word{ display:inline-block; white-space:pre; }
.hs-split .hs-word{
  opacity:0; transform:translate3d(0,.5em,0); filter:blur(7px);
  transition:opacity .78s var(--hs-ease-out), transform .78s var(--hs-ease-out), filter .78s var(--hs-ease-out);
  transition-delay:calc(var(--hs-i,0) * 72ms);
}
.hs-in.hs-split .hs-word,.hs-in .hs-split .hs-word{ opacity:1; transform:none; filter:blur(0); }

/* revelação por bloco */
.hs-reveal{
  opacity:0; transform:translate3d(0,26px,0); filter:blur(9px);
  transition:opacity .9s var(--hs-ease-out), transform .9s var(--hs-ease-out), filter .9s var(--hs-ease-out);
  transition-delay:calc(var(--hs-i,0) * 90ms);
}
.hs-in.hs-reveal,.hs-in .hs-reveal{ opacity:1; transform:none; filter:blur(0); }

/* ============================================================== nav */
.hs-nav{
  position:fixed; top:0; left:0; width:var(--hs-vw,100%); height:var(--hs-nav-h);
  z-index:50; display:flex; align-items:center; gap:24px;
  padding:0 var(--hs-pad);
  transition:transform .55s var(--hs-ease);
}
.hs-nav::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:rgba(5,7,10,.60);
  backdrop-filter:blur(14px) saturate(1.1); -webkit-backdrop-filter:blur(14px) saturate(1.1);
  opacity:0; transition:opacity .5s linear;
}
.hs-nav::after{
  content:""; position:absolute; left:var(--hs-pad); right:var(--hs-pad); bottom:0; height:1px;
  background:var(--hs-line-soft); opacity:0; transition:opacity .5s;
}
.hs-nav.is-stuck::before,.hs-nav.is-stuck::after{ opacity:1; }
.hs-nav.is-hidden{ transform:translate3d(0,-101%,0); }

.hs-brand{ display:block; flex:0 0 auto; line-height:0; }
.hs-brand svg{ height:60px; width:auto; display:block; }

.hs-nav-links{ display:flex; gap:clamp(16px,2.4vw,40px); margin-left:auto; align-items:center; }
.hs-nav-link{
  position:relative; display:block; height:16px; line-height:16px; overflow:hidden;
  font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--hs-bone-dim); text-decoration:none;
  transition:color .3s;
}
.hs-nav-link span{ display:block; height:16px; line-height:16px; transition:transform .55s var(--hs-ease-out); }
.hs-nav-link .hs-alt{ position:absolute; inset:0; transform:translate3d(0,100%,0); color:var(--hs-bone); }
.hs-nav-link:hover span{ transform:translate3d(0,-100%,0); }
.hs-nav-link:hover,.hs-nav-link.is-on{ color:var(--hs-bone); }
.hs-nav-link.is-on::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--hs-azul-lit);
}
.hs-nav-cta{
  margin-left:clamp(14px,2vw,30px);
  font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--hs-bone); text-decoration:none;
  padding:9px 17px; border-radius:999px; border:1px solid var(--hs-line);
  background:rgba(231,237,235,.05);
  transition:background .3s, border-color .3s, transform .3s var(--hs-ease-out);
  white-space:nowrap;
}
.hs-nav-cta:hover{ background:rgba(91,155,255,.16); border-color:rgba(91,155,255,.42); transform:translateY(-1px); }

/* ================================================== menu do celular */
.hs-burger{
  display:none; margin-left:clamp(12px,2vw,22px);
  width:30px; height:18px; position:relative; flex:0 0 auto;
  background:none; border:0; padding:0; cursor:pointer;
}
.hs-burger i{
  position:absolute; right:0; height:1.6px; background:var(--hs-bone); display:block;
  transition:width .45s var(--hs-ease-out), transform .45s var(--hs-ease-out), opacity .3s;
}
.hs-burger i:nth-child(1){ top:3px;  width:30px; }
.hs-burger i:nth-child(2){ top:12px; width:20px; }
.hs-burger[aria-expanded="true"] i:nth-child(1){ transform:translateY(4.5px) rotate(45deg); width:26px; }
.hs-burger[aria-expanded="true"] i:nth-child(2){ transform:translateY(-4.5px) rotate(-45deg); width:26px; }

.hs-sheet{
  position:fixed; inset:0; z-index:55; display:flex; flex-direction:column;
  justify-content:center; gap:6px; padding:0 var(--hs-pad);
  background:rgba(5,7,10,.90);
  backdrop-filter:blur(18px) saturate(1.1); -webkit-backdrop-filter:blur(18px) saturate(1.1);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .42s var(--hs-ease), visibility .42s;
}
.hs-sheet.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
.hs-sheet a{
  font-size:clamp(26px,7.4vw,40px); font-weight:700; letter-spacing:-.02em;
  color:var(--hs-bone); text-decoration:none; padding:10px 0;
  border-bottom:1px solid var(--hs-line-soft);
  transform:translateY(14px); opacity:0;
  transition:transform .55s var(--hs-ease-out), opacity .55s var(--hs-ease-out), color .3s;
  transition-delay:calc(var(--hs-i,0) * 55ms);
}
.hs-sheet.is-open a{ transform:none; opacity:1; }
.hs-sheet a:hover{ color:var(--hs-azul-lit); }
.hs-sheet-wa{
  margin-top:26px; color:#7ee6a3 !important; border-bottom:0 !important;
  font-size:clamp(15px,4vw,19px) !important;
}

/* =========================================================== trilho */
.hs-rail{
  position:fixed; right:calc(var(--hs-pad) * .52); top:50%; transform:translateY(-50%);
  z-index:40; display:flex; flex-direction:column; gap:16px; align-items:flex-end;
}
.hs-rail-item{
  display:flex; align-items:center; gap:10px;
  background:none; border:0; padding:4px 0; cursor:pointer;
  font-family:inherit; color:var(--hs-bone-dim);
}
.hs-rail-label{
  font-size:9.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  opacity:0; transform:translateX(6px);
  transition:opacity .4s var(--hs-ease), transform .4s var(--hs-ease);
  white-space:nowrap;
}
.hs-rail-dot{
  width:7px; height:7px; border-radius:50%; flex:0 0 auto;
  border:1px solid rgba(231,237,235,.34); background:transparent;
  transition:background .4s, border-color .4s, transform .4s var(--hs-ease-out);
}
.hs-rail-item:hover .hs-rail-label,.hs-rail-item.is-on .hs-rail-label{ opacity:1; transform:none; }
.hs-rail-item:hover .hs-rail-dot{ border-color:var(--hs-bone); }
.hs-rail-item.is-on .hs-rail-dot{ background:var(--hs-azul-lit); border-color:var(--hs-azul-lit); transform:scale(1.4); }
.hs-rail-item.is-on{ color:var(--hs-bone); }

/* ================================================= cristais em 1º plano */
.hs-fg{ position:fixed; inset:0; z-index:30; pointer-events:none; overflow:hidden; }
.hs-fg-stage{ position:absolute; inset:0; }
.hs-sec .hs-fg-stage{ display:none; }        /* estacionado: não desenha */
.hs-fg .hs-fg-stage{ display:block; }
.hs-shard{
  position:absolute; line-height:0;
  opacity:0; will-change:transform,opacity,filter;
  transition:opacity .95s var(--hs-ease-out), filter .95s var(--hs-ease-out);
}
.hs-fg .hs-fg-stage .hs-shard{ opacity:.55; filter:blur(0); }
.hs-fg .hs-fg-stage.is-retiring .hs-shard{ opacity:0; filter:blur(16px); }
.hs-shard canvas{ display:block; width:100%; height:auto; }

/* ============================================================ botões */
.hs-btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:inherit; font-size:13.5px; font-weight:700; letter-spacing:.05em;
  padding:15px 27px; border-radius:6px; text-decoration:none; cursor:pointer;
  border:1px solid transparent; white-space:nowrap;
  transition:transform .35s var(--hs-ease-out), box-shadow .35s var(--hs-ease-out),
             background .35s, border-color .35s, color .35s;
}
.hs-btn-primary{
  color:#fff; background:var(--hs-grad-btn);
  box-shadow:0 10px 34px rgba(47,86,190,.32), inset 0 1px 0 rgba(255,255,255,.18);
}
.hs-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 44px rgba(47,86,190,.44), inset 0 1px 0 rgba(255,255,255,.24); }
.hs-btn-ghost{ color:var(--hs-bone); border-color:var(--hs-line); background:rgba(231,237,235,.035); }
.hs-btn-ghost:hover{ transform:translateY(-2px); border-color:rgba(91,155,255,.44); background:rgba(91,155,255,.10); }
.hs-btn-row{ display:flex; flex-wrap:wrap; gap:14px; }

/* ============================================================= grades */
.hs-grid{ display:grid; gap:clamp(16px,1.8vw,26px); }
.hs-grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.hs-grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.hs-grid-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }

/* Cartões: vidro fino, nunca painel opaco — a caverna precisa atravessar. */
.hs-card{
  position:relative; padding:clamp(22px,2.1vw,32px);
  border:1px solid var(--hs-line); border-radius:12px;
  background:linear-gradient(150deg, rgba(231,237,235,.055) 0%, rgba(231,237,235,.015) 60%);
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
  transition:transform .5s var(--hs-ease-out), border-color .5s, background .5s;
  overflow:hidden;
}
.hs-card::after{
  content:""; position:absolute; inset:0; pointer-events:none; border-radius:12px;
  background:linear-gradient(150deg, rgba(91,155,255,.14), transparent 46%);
  opacity:0; transition:opacity .5s;
}
.hs-card:hover{ transform:translateY(-4px); border-color:rgba(91,155,255,.34); }
.hs-card:hover::after{ opacity:1; }

.hs-facet{
  width:44px; height:44px; margin-bottom:20px; border-radius:10px;
  background:var(--hs-grad); display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 22px rgba(47,86,190,.32), inset 0 1px 0 rgba(255,255,255,.22);
  flex:0 0 auto;
}
.hs-facet svg{ width:21px; height:21px; stroke:#fff; fill:none; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; }

/* faixa de capacidades de IA */
.hs-strip{ margin-top:clamp(44px,5vw,78px); padding-top:clamp(34px,4vw,54px); border-top:1px solid var(--hs-line-soft); }
.hs-strip-title{
  font-size:11px; font-weight:700; letter-spacing:.26em; text-transform:uppercase;
  color:var(--hs-bone); margin:0 0 30px;
  text-shadow:0 1px 16px rgba(3,6,10,.95), 0 0 30px rgba(3,6,10,.7);
}
.hs-strip-item{ padding-left:16px; border-left:1px solid var(--hs-line); }
.hs-strip-item .hs-h3{ font-size:15.5px; margin-bottom:8px; }

/* ============================================================= etapas */
.hs-steps{ display:flex; flex-direction:column; gap:clamp(20px,2.4vw,34px); }
.hs-step{ display:grid; grid-template-columns:auto 1fr; gap:clamp(18px,2.2vw,32px); align-items:start; }
.hs-step-num{
  font-size:clamp(40px,4.6vw,68px); font-weight:700; line-height:.9;
  letter-spacing:-.04em; color:transparent;
  -webkit-text-stroke:1px rgba(231,237,235,.42);
  min-width:1.6em;
  filter:drop-shadow(0 1px 12px rgba(3,6,10,.9));
}
.hs-step-phase{
  font-size:10.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase;
  color:var(--hs-azul-lit); margin:0 0 8px;
}
.hs-step-kicker{ font-size:14.5px; font-weight:700; color:var(--hs-bone-soft); margin:0 0 8px; }

/* =========================================================== portfólio */
.hs-proj{ padding:0; overflow:hidden; }
.hs-proj-art{ position:relative; aspect-ratio:16/10; overflow:hidden; background:#070b12; }
.hs-proj-art canvas{ width:100%; height:100%; display:block; }
.hs-proj-art::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(5,7,10,0) 44%, rgba(5,7,10,.86) 100%);
}
/* Foto do projeto vinda do WordPress (Personalizar > Portfolio). Tudo aqui
   depende de .hs-has-foto, entao o cartao sem foto continua exatamente como
   era: a faceta de cristal que o JS desenha. */
/* isolation confina o mix-blend-mode do veu a este quadro; sem isso ele
   procuraria o fundo mais atras e o resultado mudaria conforme o cartao. */
.hs-proj-art.hs-has-foto{ isolation:isolate; }
.hs-proj-art.hs-has-foto img{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover; display:block;
  /* a foto e' rebaixada para caber na luz da caverna; o hover a devolve */
  filter:saturate(.80) contrast(1.06) brightness(.84);
  transform:scale(1.02);
  transition:transform .8s cubic-bezier(.22,.61,.36,1), filter .55s ease;
}
.hs-proj:hover .hs-proj-art.hs-has-foto img,
.hs-proj:focus-within .hs-proj-art.hs-has-foto img{
  transform:scale(1.07); filter:saturate(.98) contrast(1.02) brightness(1);
}
/* veu azul-bordo por cima da foto, para ela pertencer a cena e nao parecer
   um retangulo colado na frente da caverna */
.hs-proj-art.hs-has-foto::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(150deg,
    rgba(37,99,235,.30) 0%, rgba(5,7,10,0) 54%, rgba(159,43,43,.24) 100%);
  mix-blend-mode:screen; opacity:.7;
  transition:opacity .55s ease;
}
.hs-proj:hover .hs-proj-art.hs-has-foto::before{ opacity:.42; }
.hs-proj-art.hs-has-foto::after{ z-index:2; }
.hs-proj-txt{ padding:clamp(20px,1.9vw,28px); }

.hs-stats{ margin-top:clamp(56px,6vw,96px); }
.hs-stat-n{
  font-size:clamp(40px,5.4vw,72px); font-weight:700; line-height:1; letter-spacing:-.035em;
  background:var(--hs-grad-text); -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent; margin:0 0 8px;
  text-shadow:none; filter:drop-shadow(0 2px 14px rgba(3,6,10,.85));
}
.hs-stat-l{ font-size:13px; color:var(--hs-bone-dim); margin:0; }

/* ============================================================ contato */
.hs-contact{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,64px); align-items:start; }
.hs-info-item{ display:flex; gap:16px; align-items:flex-start; margin-bottom:24px; }
.hs-info-item .hs-facet{ width:38px; height:38px; margin:0; border-radius:9px; }
.hs-info-item .hs-facet svg{ width:17px; height:17px; }
.hs-info-k{ font-size:12.5px; font-weight:700; color:var(--hs-bone); margin:0 0 3px; letter-spacing:.02em; }
.hs-info-v{ font-size:14.5px; color:var(--hs-bone-dim); margin:0; text-decoration:none; }
a.hs-info-v:hover{ color:var(--hs-azul-lit); }
.hs-hours{ margin-top:34px; padding-top:24px; border-top:1px solid var(--hs-line-soft); }

.hs-field{ margin-bottom:18px; }
.hs-label{ display:block; font-size:12px; font-weight:700; color:var(--hs-bone); margin-bottom:8px; letter-spacing:.03em; }
.hs-input,.hs-textarea{
  width:100%; font-family:inherit; font-size:15px; color:var(--hs-bone);
  padding:13px 15px; border-radius:8px;
  border:1px solid var(--hs-line); background:rgba(5,7,10,.42);
  transition:border-color .3s, background .3s, box-shadow .3s;
}
.hs-input::placeholder,.hs-textarea::placeholder{ color:rgba(137,150,161,.72); }
.hs-input:focus,.hs-textarea:focus{
  outline:none; border-color:rgba(91,155,255,.6); background:rgba(5,7,10,.6);
  box-shadow:0 0 0 3px rgba(91,155,255,.16);
}
.hs-textarea{ min-height:132px; resize:vertical; }
.hs-form-note{ font-size:12px; color:var(--hs-bone-dim); margin:14px 0 0; }

/* ============================================================ rodapé */
.hs-foot{
  position:relative; z-index:10;
  padding:clamp(52px,6vw,88px) var(--hs-pad) clamp(30px,3vw,44px);
  border-top:1px solid var(--hs-line-soft);
}
.hs-foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:clamp(24px,3vw,48px); }
.hs-foot-title{ font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--hs-bone); margin:0 0 18px; }
.hs-foot-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.hs-foot-list a,.hs-foot-list span{ font-size:14px; color:var(--hs-bone-dim); text-decoration:none; transition:color .3s; }
.hs-foot-list a:hover{ color:var(--hs-azul-lit); }
.hs-social{ display:flex; gap:10px; }
.hs-social a{
  width:38px; height:38px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--hs-line); color:var(--hs-bone-dim);
  transition:border-color .3s, color .3s, transform .3s var(--hs-ease-out);
}
.hs-social a:hover{ border-color:rgba(91,155,255,.44); color:var(--hs-bone); transform:translateY(-2px); }
.hs-social svg{ width:17px; height:17px; fill:currentColor; }
.hs-foot-bar{
  margin-top:clamp(38px,4vw,60px); padding-top:24px; border-top:1px solid var(--hs-line-soft);
  display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; align-items:center;
}
.hs-foot-bar p,.hs-foot-bar a{ font-size:12.5px; color:var(--hs-bone-dim); margin:0; text-decoration:none; }
.hs-foot-bar a:hover{ color:var(--hs-azul-lit); }
.hs-foot-legal{ display:flex; gap:22px; }

/* ======================================================== WhatsApp FAB */
.hs-wa{
  position:fixed; right:clamp(16px,2.4vw,32px); bottom:clamp(16px,2.4vw,32px); z-index:60;
  display:flex; align-items:center; gap:11px;
  padding:13px 19px 13px 15px; border-radius:999px; text-decoration:none;
  font-size:13.5px; font-weight:700; color:#fff; letter-spacing:.02em;
  background:linear-gradient(140deg,#1fa855,#128c3e);
  box-shadow:0 12px 34px rgba(5,7,10,.62), inset 0 0 0 1px rgba(255,255,255,.10);
  transition:transform .35s var(--hs-ease-out), box-shadow .35s var(--hs-ease-out);
}
.hs-wa:hover{ transform:translateY(-3px); box-shadow:0 18px 44px rgba(5,7,10,.7), inset 0 0 0 1px rgba(255,255,255,.16); }
.hs-wa svg{ width:21px; height:21px; fill:#fff; flex:0 0 auto; }

/* ============================================================ foco */
.hs-root a:focus-visible,.hs-root button:focus-visible,
.hs-root input:focus-visible,.hs-root textarea:focus-visible{
  outline:2px solid var(--hs-azul-lit); outline-offset:3px; border-radius:4px;
}
.hs-skip{
  position:absolute; left:-9999px; top:0; z-index:70;
  padding:12px 18px; background:var(--hs-ink-2); color:var(--hs-bone);
  border:1px solid var(--hs-line); border-radius:0 0 8px 0; font-size:13px; font-weight:700;
}
.hs-skip:focus{ left:0; }
.hs-sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ======================================================== responsivo */
@media (max-width:1024px){
  .hs-grid-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hs-grid-3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hs-foot-grid{ grid-template-columns:1fr 1fr; }
  .hs-rail{ display:none; }
}
@media (max-width:860px){
  .hs-root{ --hs-nav-h:78px; }
  .hs-brand svg{ height:52px; }
  .hs-nav-links{ display:none; }
  .hs-burger{ display:block; }
  .hs-nav-cta{ margin-left:auto; }
  .hs-contact{ grid-template-columns:1fr; }
  .hs-sec{ padding:9vh var(--hs-pad); }
}
@media (max-width:620px){
  .hs-nav-cta{ display:none; }
  .hs-brand svg{ height:44px; }
  .hs-burger{ margin-left:auto; }
  .hs-grid-2,.hs-grid-3,.hs-grid-4{ grid-template-columns:1fr; }
  .hs-foot-grid{ grid-template-columns:1fr; }
  .hs-step{ grid-template-columns:1fr; gap:10px; }
  .hs-step-num{ font-size:34px; }
  .hs-wa span{ display:none; }
  .hs-wa{ padding:15px; }
  .hs-btn{ width:100%; justify-content:center; }
}

/* =================================================== movimento reduzido */
@media (prefers-reduced-motion:reduce){
  .hs-root *,.hs-root *::before,.hs-root *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .hs-reveal,.hs-split .hs-word{ opacity:1 !important; transform:none !important; filter:none !important; }
  .hs-shard{ opacity:1 !important; filter:none !important; }
  .hs-grain{ display:none; }
}
