/* ===========================================================
   HealBridge — Core Design System
   Compartilhado entre todas as páginas. Tokens, reset, cursor,
   preloader, scroll progress, noise, navbar, buttons, shared
   layout primitives, footer, back-to-top, spotlight, card
   effects, divider animation, text scramble, parallax utilities.
   Extraído de index.html em 2026-04 — manter como única fonte
   de verdade do design system; específicos de cada página
   continuam inline em seus respectivos arquivos.
   =========================================================== */

/* ===========================================================
   0. DESIGN TOKENS
   =========================================================== */
:root {
  --orange: #F97316;
  --orange-hi: #FB923C;
  --orange-lo: #EA580C;
  --orange-deep: #C2410C;
  --orange-dark: #9A3412;
  --orange-glow: rgba(249,115,22,.12);
  --orange-mist: rgba(249,115,22,.04);

  --accent-gradient: linear-gradient(135deg, #F97316, #EA580C);
  --accent-gradient-h: linear-gradient(90deg, #F97316, #EA580C);
  --accent-gradient-r: linear-gradient(135deg, #EA580C, #F97316);
  --accent-gradient-glow: linear-gradient(135deg, rgba(249,115,22,.1), rgba(234,88,12,.05));
  --accent-gradient-animated: var(--accent-gradient);

  --s0: #0a0c10;
  --s1: #0e1117;
  --s2: #13161d;
  --s3: #181c24;
  --s4: #1e232c;
  --s5: #252a35;
  --s6: #2e3440;

  --t0: #edf0f5;
  --t1: #b4bac7;
  --t2: #7c8494;
  --t3: #4d5567;
  --t4: #333b4d;

  --sans: 'Inter', system-ui, -apple-system, sans-serif;
  --display: 'Space Grotesk', 'Inter', sans-serif;
  --mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;

  --expo: cubic-bezier(.25,.46,.45,.94);
  --spring: cubic-bezier(.23,1,.32,1);
  --smooth: cubic-bezier(.4,0,.2,1);
  --elastic: var(--spring);
  --circ: cubic-bezier(.33,1,.68,1);

  --radius: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-2xl: 24px;

  /* Spacing premium — bem mais respirável */
  --sec-py: clamp(8rem, 14vh, 14rem);
  --gap-grid: clamp(1.5rem, 3.5vw, 2.75rem);
  --card-pad: clamp(1.6rem, 2.5vw, 2.4rem);

  /* Layout widths */
  --content-w: 1280px;
  --reading-w: 580px;

  /* Hierarquia premium (branco-translúcido sutil, Linear-style) */
  --cool-1: rgba(160,180,210,.06);
  --cool-2: rgba(160,180,210,.12);
  --surface-1: rgba(255,255,255,.02);
  --surface-2: rgba(255,255,255,.04);

  /* Shadows multi-layer (Linear/Stripe-style) */
  --shadow-sm: 0 1px 2px rgba(0,0,0,.3), 0 1px 0 rgba(255,255,255,.03) inset;
  --shadow-md: 0 8px 24px -8px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.04) inset;
  --shadow-lg: 0 24px 60px -20px rgba(0,0,0,.6), 0 1px 0 rgba(255,255,255,.05) inset;
  --shadow-xl: 0 40px 100px -30px rgba(0,0,0,.7), 0 1px 0 rgba(255,255,255,.06) inset;
}

/* ===========================================================
   1. RESET & BASE
   =========================================================== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{
  font-family:var(--sans);font-weight:400;
  font-feature-settings:'cv02','cv03','cv04','cv11';
  font-optical-sizing:auto;
  background:var(--s0);color:var(--t1);
  overflow-x:hidden;
  letter-spacing:-.012em;line-height:1.7;
  font-size:16px;
}
::selection{background:var(--orange);color:#fff}
::-webkit-scrollbar{width:3px}
::-webkit-scrollbar-track{background:var(--s0)}
::-webkit-scrollbar-thumb{background:var(--orange);border-radius:3px}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{font-family:inherit}

/* ── Focus visible (acessibilidade) ── */
:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:3px;
  border-radius:6px;
  transition:outline-offset .15s var(--smooth);
}
:focus:not(:focus-visible){outline:none}

/* ── Keyframes ── */
@keyframes textGlow{0%,100%{opacity:1}50%{opacity:.9}}
@keyframes letterSpaceIn{
  from{letter-spacing:.15em;opacity:0}
  to{letter-spacing:inherit;opacity:1}
}
@keyframes fadeSlideUp{
  from{opacity:0;transform:translateY(16px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes borderGlow{
  0%,100%{border-color:rgba(249,115,22,.05)}
  50%{border-color:rgba(249,115,22,.08)}
}

/* Cursor custom removido — voltou pro padrão do sistema */
.cur-dot,.cur-ring{display:none!important}

/* Preloader removido — site carrega direto, sem tela de loading */
.preloader{display:none!important}

/* ===========================================================
   4. SCROLL PROGRESS
   =========================================================== */
.scroll-prog{
  position:fixed;top:0;left:0;height:2px;width:0;
  background:var(--orange);
  z-index:10000;pointer-events:none;will-change:width;
}

/* ===========================================================
   5. NOISE TEXTURE
   =========================================================== */
.noise{
  position:fixed;inset:0;z-index:9000;pointer-events:none;
  opacity:.018;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:128px;
}

/* ===========================================================
   6. NAVBAR
   =========================================================== */
.nav{
  position:fixed;top:0;width:100%;z-index:9999;
  padding:1.2rem 0;
  transition:all .6s var(--circ);
  border-bottom:1px solid transparent;
}
.nav.pinned{
  padding:.6rem 0;
  background:rgba(10,12,16,.9);
  backdrop-filter:blur(30px) saturate(1.5);
  -webkit-backdrop-filter:blur(30px) saturate(1.5);
  border-bottom-color:rgba(255,255,255,.04);
  box-shadow:0 2px 20px rgba(0,0,0,.3);
}
.nav-wrap{
  max-width: var(--content-w);margin:0 auto;padding:0 2.5rem;
  display:flex;align-items:center;justify-content:space-between;
}

.brand{display:flex;align-items:center;gap:.65rem}
.brand img{
  width:48px;height:48px;object-fit:contain;flex-shrink:0;
  background:transparent;
  filter:drop-shadow(0 2px 8px rgba(249,115,22,.18));
  transition:filter .4s var(--expo),transform .4s var(--expo);
}

/* Quando a logo já contém o texto da marca, ela vira o brand inteiro.
   A imagem original tem espaço interno em cima/baixo — usamos altura maior
   + margin negativo + object-position pra "compensar" e parecer centralizada. */
.brand.brand-img-only img{
  width:auto;height:72px;
  margin-top:-22px;
  margin-bottom:-14px;
  object-fit:contain;
  object-position:center;
  border-radius:8px;
  transition:height .4s var(--expo),margin .4s var(--expo);
}
.nav.pinned .brand.brand-img-only img{
  height:60px;
  margin-top:-18px;
  margin-bottom:-12px;
}
.brand img:hover{
  transform:scale(1.08);
  filter:drop-shadow(0 4px 16px rgba(249,115,22,.35));
}
.brand-name{
  font-family:var(--display);
  font-size:1.15rem;font-weight:700;
  letter-spacing:-.02em;color:var(--t0);
}
.brand-name .g{color:var(--orange)}

.nav-links{display:flex;align-items:center;gap:.1rem}
.nav-links a{
  font-size:.65rem;font-weight:500;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--t3);
  padding:.5rem .9rem;position:relative;
  transition:color .3s var(--smooth);
}
.nav-links a::after{
  content:'';position:absolute;bottom:2px;left:50%;
  width:0;height:1.5px;border-radius:1px;
  background:var(--orange);
  transition:width .4s var(--expo),left .4s var(--expo);
}
.nav-links a:hover{color:var(--t0)}
.nav-links a:hover::after{width:60%;left:20%}
.nav-links a.active{color:var(--t0)}
.nav-links a.active::after{width:60%;left:20%}

.nav-cta{
  font-family:var(--mono);
  font-size:.55rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;
  padding:.55rem 1.4rem;border-radius:100px;
  background:var(--orange);color:#000;
  border:none;cursor:pointer;
  transition:all .5s var(--elastic);
  position:relative;overflow:hidden;
}
.nav-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(249,115,22,.15);
}

.nav-tog{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:4px;
}
.nav-tog span{display:block;width:20px;height:1.5px;background:var(--t0);transition:all .4s var(--smooth);transform-origin:center}
.nav-tog.on span:nth-child(1){transform:rotate(45deg) translate(4px,5px)}
.nav-tog.on span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-tog.on span:nth-child(3){transform:rotate(-45deg) translate(4px,-5px)}

@media(max-width:768px){
  .nav-tog{display:flex}
  .nav-cta{display:none}
  .nav-links{
    position:fixed;top:0;right:-100%;width:280px;height:100dvh;
    background:rgba(0,0,0,.97);backdrop-filter:blur(40px);
    flex-direction:column;justify-content:center;gap:.3rem;
    transition:right .5s var(--expo);
    border-left:1px solid rgba(249,115,22,.06);
  }
  .nav-links.on{right:0}
  .nav-links a{font-size:.8rem;padding:.9rem 2rem;letter-spacing:2px}
}

/* ===========================================================
   8. BUTTONS
   =========================================================== */
.btn{
  display:inline-flex;align-items:center;gap:.65rem;
  padding:.95rem 2.5rem;
  font-family:var(--mono);font-size:.6rem;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;
  border:none;border-radius:100px;
  cursor:pointer;position:relative;overflow:hidden;
  transition:all .5s var(--elastic);
}
.btn .shine{
  position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
  transition:left .7s var(--expo);
}
.btn:hover .shine{left:140%}
.btn-fill{
  background:var(--orange);color:#000;font-weight:700;
  position:relative;
}
.btn-fill:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 30px rgba(249,115,22,.2);
}
.btn-fill i,.btn-fill span{position:relative;z-index:1}
.btn-ghost{
  background:rgba(249,115,22,.03);color:var(--t1);
  border:1px solid rgba(249,115,22,.1);
  backdrop-filter:blur(12px);
}
.btn-ghost:hover{
  border-color:var(--orange);color:var(--orange);
  transform:translateY(-4px);
  box-shadow:0 8px 30px rgba(249,115,22,.08);
  background:rgba(249,115,22,.06);
}
.mag{display:inline-block}

/* ===========================================================
   9. SHARED SECTION
   =========================================================== */
.sec{padding:var(--sec-py) 0;position:relative}
.wrap{max-width:var(--content-w);margin:0 auto;padding:0 2.5rem}

.tag{
  font-family:var(--mono);
  font-size:.62rem;font-weight:500;letter-spacing:3px;text-transform:uppercase;
  color:var(--orange);
  display:inline-flex;align-items:center;gap:.85rem;
  margin-bottom:1.2rem;
}
.tag .bar{width:32px;height:1.5px;background:var(--orange);border-radius:1px}

/* Bloco 10.13 da Fase 6: utility .c (centered) pra .tag, .desc
   e .sec-head wrapper — substitui inline styles. */
.tag.c{justify-content:center}
.desc.c{text-align:center;margin-left:auto;margin-right:auto}
.sec-head{text-align:center;margin-bottom:3rem}
.sec-head .desc{margin-top:1rem}

/* Display — hero principal, tipografia gigante Apple-style */
.hdg-display{
  font-family:var(--display);
  font-size:clamp(3.5rem, 9vw, 8rem);
  font-weight:500;line-height:.95;letter-spacing:-.045em;
  color:var(--t0);margin-bottom:1.6rem;
}
.hdg-display em{
  font-style:normal;
  background:linear-gradient(135deg,var(--orange),var(--orange-hi));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

/* Heading — sections (refatorado pra premium sóbrio) */
.hdg{
  font-family:var(--display);
  font-size:clamp(2.6rem,6vw,4.5rem);
  font-weight:600;line-height:1.0;letter-spacing:-.04em;
  color:var(--t0);margin-bottom:1.4rem;
}
.hdg em{
  font-style:normal;
  color:var(--orange);
  background:linear-gradient(135deg,var(--orange),var(--orange-hi));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Subheading — sub-sections */
.hdg-sm{
  font-family:var(--display);
  font-size:clamp(1.4rem,2.5vw,1.9rem);
  font-weight:600;line-height:1.15;letter-spacing:-.02em;
  color:var(--t0);
}

.desc{font-weight:400;font-size:1.05rem;color:var(--t1);line-height:1.7;max-width:var(--reading-w);letter-spacing:-.005em}

.line{width:44px;height:2px;background:var(--orange);border-radius:1px;margin:1.4rem 0}
.line.c{margin:1.4rem auto}

/* Divider */
.div{
  height:1px;max-width: var(--content-w);margin:0 auto;
  background:linear-gradient(90deg,transparent,rgba(249,115,22,.08) 35%,rgba(249,115,22,.08) 65%,transparent);
}

/* Reveal — clip-path + translate */
.rv{
  opacity:0;transform:translateY(20px);
  transition:opacity .9s var(--circ),transform .9s var(--circ),filter .9s var(--circ);
}
.rv.on{opacity:1;transform:translateY(0)}
.d1{transition-delay:.1s}.d2{transition-delay:.18s}.d3{transition-delay:.26s}.d4{transition-delay:.34s}.d5{transition-delay:.42s}

/* Reveal variants */
.rv-blur{filter:blur(8px)}
.rv-blur.on{filter:blur(0)}

/* Stagger: children revelam em cascata quando o container entra. */
.rv-stagger > *{
  opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--circ),transform .7s var(--circ);
}
.rv-stagger.on > *{opacity:1;transform:translateY(0)}
.rv-stagger.on > *:nth-child(1){transition-delay:.05s}
.rv-stagger.on > *:nth-child(2){transition-delay:.13s}
.rv-stagger.on > *:nth-child(3){transition-delay:.21s}
.rv-stagger.on > *:nth-child(4){transition-delay:.29s}
.rv-stagger.on > *:nth-child(5){transition-delay:.37s}
.rv-stagger.on > *:nth-child(6){transition-delay:.45s}
.rv-stagger.on > *:nth-child(7){transition-delay:.53s}
.rv-stagger.on > *:nth-child(8){transition-delay:.61s}

/* Glass card base — premium */
.glass{
  background:var(--surface-1);
  border:1px solid var(--cool-1);
  backdrop-filter:blur(40px) saturate(1.2);
  -webkit-backdrop-filter:blur(40px) saturate(1.2);
  box-shadow:var(--shadow-md);
}

/* ===========================================================
   17. UNIFIED FOOTER (Contact + Footer)
   =========================================================== */
.footer-unified{
  position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 60% 40% at 50% 0%,rgba(249,115,22,.03),transparent 70%),
    radial-gradient(ellipse 50% 50% at 20% 80%,rgba(249,115,22,.02),transparent),
    radial-gradient(ellipse 40% 40% at 80% 60%,rgba(0,204,106,.015),transparent),
    #000;
  border-top:1px solid rgba(249,115,22,.06);
}

/* Zona 0: Footer hero / transition */
.footer-hero{
  position:relative;z-index:1;
  padding:5rem 0 3rem;text-align:center;
}
.footer-hero .container{max-width:720px;margin:0 auto;padding:0 2.5rem}
.footer-hero-line{
  width:60px;height:1.5px;margin:0 auto 2rem;
  background:linear-gradient(90deg,transparent,var(--orange),transparent);
  border-radius:1px;
}
.footer-hero-lead{
  font-size:1.05rem;color:var(--t2);line-height:1.85;
  letter-spacing:-.01em;margin-bottom:1.5rem;
}
.footer-hero-title{
  font-family:var(--display);font-size:clamp(1.8rem,4vw,2.8rem);
  font-weight:700;color:var(--t0);letter-spacing:-.035em;line-height:1.15;
  margin-bottom:2rem;
}
.footer-hero-title em{
  font-style:normal;
  background:linear-gradient(135deg,var(--orange),var(--orange-hi));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Section header inside footer */
.footer-section-header{
  text-align:center;margin-bottom:3rem;
}

/* Background orbs */
.footer-bg-effects{position:absolute;inset:0;pointer-events:none;z-index:0}
.footer-orb{
  position:absolute;border-radius:50%;filter:blur(120px);opacity:.08;
}
.footer-orb-1{
  width:500px;height:500px;
  background:var(--orange);
  top:-150px;left:-100px;
  animation:orbFloat1 12s ease-in-out infinite;
}
.footer-orb-2{
  width:400px;height:400px;
  background:rgba(0,204,106,.6);
  bottom:-100px;right:-80px;
  animation:orbFloat2 15s ease-in-out infinite;
}
.footer-orb-3{
  width:300px;height:300px;
  background:rgba(249,115,22,.4);
  top:40%;left:50%;
  animation:orbFloat3 10s ease-in-out infinite;
}
@keyframes orbFloat1{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
@keyframes orbFloat2{0%,100%{transform:translate(0,0)}50%{transform:translate(-30px,-40px)}}
@keyframes orbFloat3{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,25px)}}

/* Zona 1: Contact */
.footer-contact{
  position:relative;z-index:1;
  padding:0 0 4rem;
}
.footer-contact .container{
  max-width: var(--content-w);margin:0 auto;padding:0 2.5rem;
}
.footer-contact .row{
  display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:start;
}
@media(max-width:991px){
  .footer-contact .row{grid-template-columns:1fr;gap:2rem}
}

/* Contact info cards (left column) */
.contact-info-cards{display:flex;flex-direction:column;gap:1rem}

.info-item{
  display:flex;align-items:center;gap:1.2rem;
  padding:1.4rem 1.6rem;
  background:rgba(249,115,22,.015);
  border:1px solid rgba(249,115,22,.04);
  border-radius:var(--radius);
  text-decoration:none;color:inherit;
  transition:all .5s var(--circ);
  position:relative;overflow:hidden;
}
.info-item::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--orange);opacity:0;
  transition:opacity .4s var(--expo);
}
.info-item:hover{
  border-color:rgba(249,115,22,.12);
  background:rgba(249,115,22,.03);
  transform:translateY(-3px);
  box-shadow:0 10px 35px rgba(0,0,0,.4);
}
.info-item:hover::before{opacity:1}

.info-icon-wrap{
  width:46px;height:46px;border-radius:12px;
  background:rgba(249,115,22,.04);
  border:1px solid rgba(249,115,22,.06);
  display:flex;align-items:center;justify-content:center;
  font-size:1.05rem;color:var(--orange);flex-shrink:0;
  transition:all .5s var(--elastic);
}
.info-item:hover .info-icon-wrap{
  background:var(--orange);color:#000;
  transform:scale(1.05);
  box-shadow:0 4px 16px rgba(249,115,22,.15);
  border-color:var(--orange);
}

.info-content h3{
  font-family:var(--mono);font-size:.5rem;font-weight:500;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--t4);margin:0 0 .2rem;
  display:inline-flex;align-items:center;gap:.6rem;
}
.info-content p{
  font-size:.85rem;font-weight:500;color:var(--t1);margin:0 0 .25rem;
}

/* Live indicator (online status) */
.info-live{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--mono);font-size:.45rem;font-weight:600;
  letter-spacing:1.5px;color:var(--orange);
  background:rgba(249,115,22,.08);
  padding:.18rem .45rem;border-radius:100px;
  border:1px solid rgba(249,115,22,.18);
}
.info-live-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--orange);
  animation:pulseDot 2s ease-in-out infinite;
  box-shadow:0 0 6px rgba(249,115,22,.6);
}

/* Meta info — tempo de resposta, freq, etc */
.info-meta{
  display:block;
  font-family:var(--mono);font-size:.5rem;font-weight:500;
  letter-spacing:1.5px;text-transform:uppercase;
  color:var(--t3);margin-top:.1rem;
}
@keyframes pulseDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

.info-arrow{
  margin-left:auto;color:var(--t4);font-size:.85rem;
  transition:all .4s var(--elastic);opacity:.3;
}
.info-item:hover .info-arrow{
  opacity:1;color:var(--orange);transform:translateX(4px);
}

/* WhatsApp card accent */
.info-item-whatsapp:hover .info-icon-wrap{
  background:#25D366;border-color:#25D366;
  box-shadow:0 4px 16px rgba(37,211,102,.2);
}

/* QR Code card */
.qr-card{
  flex-direction:column;text-align:center;
  padding:1.8rem 1.6rem;cursor:default;
}
.qr-card img{
  width:160px;height:160px;border-radius:12px;
  margin-bottom:.8rem;
  transition:transform .5s var(--elastic);
}
.qr-card:hover img{transform:scale(1.05)}
.qr-card p{
  font-family:var(--mono);font-size:.45rem;font-weight:500;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--t4);margin:0;
}

/* Contact form wrap (right column) */
.contact-form-wrap{
  background:rgba(249,115,22,.01);
  border:1px solid rgba(249,115,22,.04);
  border-radius:var(--radius-lg);
  padding:2.5rem 3rem 2rem;
  position:relative;overflow:hidden;
}
.contact-form-wrap::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(249,115,22,.1) 30%,rgba(249,115,22,.1) 70%,transparent);
}
@media(max-width:768px){.contact-form-wrap{padding:2rem 1.5rem}}

.contact-form-header{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:1rem;
  margin-bottom:2rem;padding-bottom:1.2rem;
  border-bottom:1px solid rgba(249,115,22,.04);
}
.contact-form-header h3{
  font-family:var(--display);font-size:1.25rem;font-weight:700;
  color:var(--t0);letter-spacing:-.02em;margin:0;
}
.contact-form-header h3 i{
  color:var(--orange);margin-right:.5rem;font-size:.95rem;
}
.contact-form-meta{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--mono);font-size:.5rem;font-weight:600;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--orange);
  background:rgba(249,115,22,.06);
  padding:.4rem .75rem;border-radius:100px;
  border:1px solid rgba(249,115,22,.15);
}

/* Floating label field */
.fl-field{
  position:relative;margin-bottom:1.2rem;
}
.fl-field .fl-input{
  width:100%;
  background:#050505;
  border:1px solid rgba(249,115,22,.04);
  border-radius:12px;
  color:var(--t0);
  font-family:var(--sans);font-size:.88rem;font-weight:500;
  padding:1.5rem 1.3rem .6rem;
  outline:none;
  transition:all .5s var(--circ);
  letter-spacing:.01em;
}
.fl-field .fl-input::placeholder{color:transparent}
.fl-field textarea.fl-input{resize:vertical;min-height:130px;padding-top:1.6rem}

.fl-field .fl-label{
  position:absolute;left:1.3rem;top:1.05rem;
  font-family:var(--sans);font-size:.85rem;font-weight:400;
  color:var(--t3);pointer-events:none;
  transition:all .4s var(--smooth);
  transform-origin:left;
}

/* Float up on focus or filled */
.fl-field .fl-input:focus ~ .fl-label,
.fl-field .fl-input:not(:placeholder-shown) ~ .fl-label{
  top:.45rem;
  font-family:var(--mono);
  font-size:.48rem;font-weight:500;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--orange);
}

.fl-field .fl-input:focus{
  border-color:rgba(249,115,22,.2);
  background:#080808;
  box-shadow:0 0 0 3px rgba(249,115,22,.04);
}

/* Underline accent */
.fl-field::after{
  content:'';position:absolute;bottom:0;left:50%;
  width:0;height:2px;border-radius:1px;
  background:var(--orange);
  box-shadow:0 2px 6px rgba(249,115,22,.08);
  transition:width .5s var(--expo),left .5s var(--expo);
}
.fl-field:focus-within::after{width:100%;left:0}

/* Row */
.fl-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:576px){.fl-row{grid-template-columns:1fr}}

/* Select dropdown */
.fl-field select.fl-input{
  appearance:none;-webkit-appearance:none;
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236e8a78' viewBox='0 0 16 16'%3E%3Cpath d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1.2rem center;
  padding-right:2.5rem;
}
.fl-field select.fl-input option{
  background:#0a0a0a;color:var(--t1);
}

/* Checkbox / consent */
.ct-consent{
  display:flex;align-items:flex-start;gap:.8rem;
  margin:1.5rem 0 2rem;
  padding:1rem 1.2rem;
  background:rgba(249,115,22,.015);
  border:1px solid rgba(249,115,22,.03);
  border-radius:10px;
}
.ct-check{
  position:relative;width:18px;height:18px;flex-shrink:0;margin-top:1px;
}
.ct-check input{
  position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;z-index:1;
}
.ct-check-box{
  width:18px;height:18px;border-radius:5px;
  border:1.5px solid rgba(249,115,22,.15);
  background:#050505;
  display:flex;align-items:center;justify-content:center;
  transition:all .4s var(--smooth);
}
.ct-check-box i{
  font-size:.6rem;color:#000;opacity:0;
  transform:scale(0);transition:all .3s var(--spring);
}
.ct-check input:checked ~ .ct-check-box{
  background:var(--orange);border-color:var(--orange);
  box-shadow:0 2px 8px rgba(249,115,22,.08);
}
.ct-check input:checked ~ .ct-check-box i{opacity:1;transform:scale(1)}
.ct-consent-text{
  font-size:.78rem;color:var(--t3);line-height:1.6;
}
.ct-consent-text a{color:var(--orange);border-bottom:1px solid rgba(249,115,22,.2);transition:border-color .3s}
.ct-consent-text a:hover{border-color:var(--orange)}

/* Submit button full-width */
.ct-submit{
  width:100%;padding:1.1rem 2rem;
  border:none;border-radius:12px;cursor:pointer;
  background:var(--orange);color:#000;
  font-family:var(--mono);font-size:.6rem;font-weight:600;
  letter-spacing:2.5px;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:.7rem;
  position:relative;overflow:hidden;
  transition:all .5s var(--elastic);
}
.ct-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 25px rgba(249,115,22,.18);
}
.ct-submit i,.ct-submit span{position:relative;z-index:1}
.ct-submit i{font-size:.9rem;transition:transform .4s var(--elastic)}
.ct-submit:hover i{transform:translateX(4px)}
.ct-submit:disabled{
  opacity:.4;pointer-events:none;
}

/* Success state */
.ct-success{
  display:none;text-align:center;padding:3rem 2rem;
}
.ct-success.show{display:block;animation:fadeSlideUp .6s var(--expo)}
.ct-success-ico{
  width:64px;height:64px;border-radius:50%;
  background:rgba(249,115,22,.08);border:2px solid var(--orange);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.5rem;
  font-size:1.5rem;color:var(--orange);
  animation:fadeSlideUp .6s var(--expo);
}
.ct-success h3{
  font-family:var(--display);font-size:1.4rem;font-weight:700;
  color:var(--t0);margin-bottom:.5rem;
}
.ct-success p{font-size:.85rem;color:var(--t2);max-width:380px;margin:0 auto}

/* Footer note */
.ct-footer-note{
  text-align:center;margin-top:2rem;padding-top:1.5rem;
  border-top:1px solid rgba(249,115,22,.03);
}
.ct-footer-note p{
  font-family:var(--mono);font-size:.48rem;font-weight:400;
  letter-spacing:1.5px;color:var(--t4);
}
.ct-footer-note p i{color:var(--orange);margin:0 .2rem}

/* Footer divider */
.footer-divider{
  position:relative;z-index:1;
  padding:0 2.5rem;max-width: var(--content-w);margin:0 auto;
}
.footer-divider-line{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(249,115,22,.12) 30%,rgba(249,115,22,.12) 70%,transparent);
}

/* Footer credentials strip — princípios/valores */
.footer-credentials{
  position:relative;z-index:1;
  padding:2.5rem 2.5rem;
  max-width: var(--content-w);margin:0 auto;
  display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:2rem 2.6rem;
}
.cred-item{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--mono);
  font-size:.62rem;font-weight:500;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--t2);
  transition:color .35s var(--smooth);
  cursor:default;
}
.cred-item i{color:var(--orange);font-size:.85rem;transition:transform .35s var(--smooth)}
.cred-item:hover{color:var(--t0)}
.cred-item:hover i{transform:scale(1.15)}
@media(max-width:768px){
  .footer-credentials{padding:2rem 1.4rem;gap:1.2rem 1.6rem}
  .cred-item{font-size:.55rem}
}

/* Zona 2: Brand + Newsletter */
.footer-grid{
  position:relative;z-index:1;
  padding:3rem 0 2.5rem;
}
.footer-grid .container{max-width: var(--content-w);margin:0 auto;padding:0 2.5rem}

.footer-compact{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:2rem;
}

.footer-compact-brand{display:flex;flex-direction:column;gap:.5rem}
.footer-logo{
  font-family:var(--display);font-size:1.3rem;font-weight:700;
  color:var(--t0);text-decoration:none;letter-spacing:-.02em;
}
.footer-logo span{color:var(--orange)}
.footer-tagline{
  font-size:.8rem;color:var(--t3);max-width:380px;line-height:1.6;
}

/* Newsletter */
.footer-compact-newsletter{max-width:380px;width:100%}
.newsletter-input-group{
  display:flex;
  background:rgba(249,115,22,.015);
  border:1px solid rgba(249,115,22,.06);
  border-radius:12px;overflow:hidden;
  transition:border-color .4s var(--smooth);
}
.newsletter-input-group:focus-within{
  border-color:rgba(249,115,22,.2);
  box-shadow:0 0 0 3px rgba(249,115,22,.04);
}
.newsletter-input-group input{
  flex:1;background:transparent;border:none;outline:none;
  padding:.9rem 1.2rem;color:var(--t0);
  font-family:var(--sans);font-size:.82rem;
}
.newsletter-input-group input::placeholder{color:var(--t4)}
.newsletter-input-group button{
  background:var(--orange);border:none;
  padding:0 1.2rem;color:#000;font-size:1rem;
  cursor:pointer;transition:all .4s var(--elastic);
}
.newsletter-input-group button:hover{
  background:#22c55e;padding:0 1.4rem;
}

.footer-compact-newsletter .loading,
.footer-compact-newsletter .error-message,
.footer-compact-newsletter .sent-message{
  font-family:var(--mono);font-size:.5rem;letter-spacing:1px;
  margin-top:.5rem;display:none;
}
.footer-compact-newsletter .sent-message{color:var(--orange)}
.footer-compact-newsletter .error-message{color:#ef4444}

/* Zona 3: Copyright */
.footer-bottom{
  position:relative;z-index:1;
  border-top:1px solid rgba(249,115,22,.04);
  padding:1.5rem 0;
}
.footer-bottom .container{max-width: var(--content-w);margin:0 auto;padding:0 2.5rem}
.footer-bottom-inner{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:.5rem;
}
.footer-bottom-inner p{
  font-family:var(--mono);font-size:.6rem;color:var(--t4);
  letter-spacing:.5px;margin:0;
}
.footer-credits a{color:var(--orange);text-decoration:none;transition:opacity .3s}
.footer-credits a:hover{opacity:.7}

.ft-social{display:flex;gap:.7rem;margin-top:1.2rem}
.ft-social a{
  width:36px;height:36px;border-radius:10px;
  background:rgba(249,115,22,.03);border:1px solid rgba(249,115,22,.06);
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;color:var(--t3);
  transition:all .5s var(--elastic);
  padding:0;
}
.ft-social a:hover{
  background:var(--orange);color:#000;border-color:var(--orange);
  transform:translateY(-4px) rotate(-3deg);
  box-shadow:0 8px 24px var(--orange-glow);
}

@media(max-width:768px){
  .footer-compact{flex-direction:column;align-items:flex-start}
  .footer-compact-newsletter{max-width:100%}
  .footer-bottom-inner{flex-direction:column;text-align:center}
}

/* ===========================================================
   18. BACK TO TOP
   =========================================================== */
.btt{
  position:fixed;bottom:2rem;right:2rem;z-index:9990;
  width:44px;height:44px;border-radius:14px;
  background:rgba(249,115,22,.04);border:1px solid rgba(249,115,22,.08);
  display:flex;align-items:center;justify-content:center;
  color:var(--t3);font-size:1rem;cursor:pointer;
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:all .5s var(--elastic);
  backdrop-filter:blur(12px);
}
.btt.show{opacity:1;transform:translateY(0);pointer-events:auto}
.btt:hover{
  background:var(--orange);color:#000;border-color:var(--orange);
  box-shadow:0 8px 24px var(--orange-glow);
  transform:translateY(-3px);
}

/* ===========================================================
   19. RESPONSIVE FINAL
   =========================================================== */
@media(max-width:768px){
  .sec{padding:5rem 0}
  .wrap{padding:0 1.4rem}
  .hero-h{font-size:clamp(2.4rem,7vw,4.5rem)}
  .hdg{font-size:clamp(1.7rem,4vw,2.6rem)}
}

/* ===========================================================
   20. GLOBAL SPOTLIGHT
   =========================================================== */
.spotlight{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(
    750px circle at var(--sp-x,50%) var(--sp-y,50%),
    rgba(249,115,22,.02),
    transparent 60%
  );
  transition:opacity .6s;opacity:0;
}
.spotlight.active{opacity:1}
@media(max-width:1024px){.spotlight{display:none}}

/* ===========================================================
   21. CARD EFFECTS
   =========================================================== */
.tilt{
  transform-style:preserve-3d;
  transition:transform .4s var(--expo),box-shadow .4s var(--expo);
}

.glow-border{position:relative}
.glow-border::before{
  content:'';position:absolute;inset:-1px;border-radius:inherit;
  background:conic-gradient(
    from var(--glow-angle,0deg) at var(--glow-x,50%) var(--glow-y,50%),
    transparent 0%,var(--orange) 10%,transparent 20%
  );
  opacity:0;transition:opacity .5s;z-index:-1;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;-webkit-mask-composite:xor;
  padding:1px;
}
.glow-border:hover::before{opacity:.5}

/* ===========================================================
   22. DIVIDER ANIMATION (overrides .div from section 9)
   =========================================================== */
.div{position:relative;overflow:hidden}
.div::after{
  content:'';position:absolute;top:0;left:-20%;
  width:20%;height:100%;
  background:linear-gradient(90deg,transparent,var(--orange),transparent);
  animation:divSweep 5s ease-in-out infinite;
}
@keyframes divSweep{
  0%{left:-20%;opacity:0}
  10%{opacity:.5}
  90%{opacity:.5}
  100%{left:100%;opacity:0}
}

/* ===========================================================
   23. TEXT SCRAMBLE
   =========================================================== */
.scramble-char{display:inline-block;transition:opacity .25s ease,transform .25s ease}
.scramble-char.shuffle{opacity:.4;transform:translateY(-1px)}

/* ===========================================================
   24. PARALLAX + COUNTERS
   =========================================================== */
.pfloat{will-change:transform;transition:transform .1s linear}
.st-num{font-variant-numeric:tabular-nums}
.st-num.counting{
  animation:textGlow 1.5s ease-in-out;
}

/* Spin animation injected at runtime by JS — declared here for safety */
@keyframes spin{to{transform:rotate(360deg)}}

/* ===========================================================
   24a. SECTION DIVIDERS PREMIUM (.div-pro)
   =========================================================== */
.div-pro{
  position:relative;height:100px;
  display:flex;align-items:center;justify-content:center;
  max-width:var(--content-w);margin:0 auto;
}
.div-pro::before{
  content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:60%;height:1px;
  background:linear-gradient(90deg,transparent,var(--cool-2) 50%,transparent);
}
.div-pro .dot{
  width:8px;height:8px;border-radius:50%;background:var(--orange);
  box-shadow:0 0 24px var(--orange),0 0 48px rgba(249,115,22,.3);
  position:relative;z-index:1;
  animation:dotPulse 3.5s ease-in-out infinite;
}
@keyframes dotPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(1.4)}
}

/* ===========================================================
   24b. PREMIUM COMPONENTS (Trust bar, Stats row, Pull-quote)
   =========================================================== */

/* Trust bar — Linear/Vercel-style horizontal tech strip */
.trust-bar{
  padding:3.5rem 0;
  border-top:1px solid var(--cool-1);
  border-bottom:1px solid var(--cool-1);
  background:rgba(0,0,0,.3);
}
.trust-inner{
  display:flex;align-items:center;justify-content:center;gap:2.5rem;
  flex-wrap:wrap;
}
.trust-label{
  font-family:var(--mono);
  font-size:.55rem;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--t4);white-space:nowrap;
}
.trust-logos{
  display:flex;align-items:center;gap:2.4rem;flex-wrap:wrap;justify-content:center;
}
.trust-logos span{
  font-family:var(--mono);
  font-size:.78rem;font-weight:500;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--t2);
  transition:color .35s var(--smooth);
  cursor:default;
}
.trust-logos span:hover{color:var(--t0)}
@media(max-width:768px){
  .trust-bar{padding:2.5rem 0}
  .trust-inner{gap:1.4rem}
  .trust-logos{gap:1.4rem}
  .trust-label{display:none}
}

/* Process / Como Trabalhamos — 3 etapas (substituiu o stats premium) */
.process-sec{
  background:linear-gradient(180deg,var(--s0),#070a0d,var(--s0));
  position:relative;
}
.process-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;
}
@media(max-width:880px){.process-grid{grid-template-columns:1fr;gap:1.4rem}}

.process-step{
  padding:2.6rem 2rem 2.4rem;
  background:var(--surface-1);
  border:1px solid var(--cool-1);
  border-radius:var(--radius-xl);
  backdrop-filter:blur(40px) saturate(1.2);
  -webkit-backdrop-filter:blur(40px) saturate(1.2);
  box-shadow:var(--shadow-md);
  position:relative;overflow:hidden;
  transition:all .6s var(--circ);
}
.process-step::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--orange),transparent);
  box-shadow:0 2px 12px rgba(249,115,22,.2);
  transform:scaleX(0);transform-origin:left;
  transition:transform .9s var(--circ);
}
.process-step:hover{
  transform:translateY(-5px);
  background:var(--surface-2);
  border-color:var(--cool-2);
  box-shadow:var(--shadow-xl);
}
.process-step:hover::before{transform:scaleX(1)}
.ps-num{
  font-family:var(--mono);font-size:.62rem;font-weight:700;
  letter-spacing:3px;color:var(--orange);margin-bottom:1.4rem;
}
.ps-icon{
  width:60px;height:60px;border-radius:16px;margin-bottom:1.4rem;
  background:rgba(249,115,22,.06);
  border:1px solid rgba(249,115,22,.12);
  display:flex;align-items:center;justify-content:center;
  font-size:1.6rem;color:var(--orange);
  transition:all .5s var(--elastic);
}
.process-step:hover .ps-icon{
  background:var(--orange);color:#000;border-color:var(--orange);
  transform:scale(1.08) rotate(-3deg);
  box-shadow:0 8px 28px rgba(249,115,22,.25);
}
.ps-title{
  font-family:var(--display);
  font-size:1.4rem;font-weight:600;letter-spacing:-.02em;
  color:var(--t0);margin-bottom:.85rem;
}
.ps-desc{
  font-size:.92rem;color:var(--t2);line-height:1.7;margin:0;
}

/* Pull-quote — Linear-style large quote breakout */
.quote-sec{padding:calc(var(--sec-py) * .8) 0;text-align:center}
.pull-quote{
  max-width:920px;margin:0 auto;padding:0 2rem;
  position:relative;
}
.pull-quote::before{
  content:'\201C';position:absolute;top:-3rem;left:50%;transform:translateX(-50%);
  font-family:var(--display);font-size:9rem;line-height:1;
  background:linear-gradient(135deg,var(--orange),var(--orange-hi));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  opacity:.18;pointer-events:none;
}
.pull-quote p{
  font-family:var(--display);
  font-size:clamp(1.6rem, 3.6vw, 2.8rem);
  font-weight:500;line-height:1.25;letter-spacing:-.025em;
  color:var(--t0);margin-bottom:2rem;
  position:relative;z-index:1;
}
.pull-quote p em{
  font-style:normal;
  background:linear-gradient(135deg,var(--orange),var(--orange-hi));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.pull-quote cite{
  font-family:var(--mono);font-size:.6rem;font-weight:500;
  letter-spacing:2.5px;text-transform:uppercase;color:var(--t3);
  font-style:normal;
}

/* ===========================================================
   25. PAGE TRANSITION (curtain com logo)
   =========================================================== */
.page-curtain{
  position:fixed;inset:0;z-index:99999;pointer-events:none;
  background:var(--s0);
  transform:translateY(-100%);
  transition:transform .65s cubic-bezier(.86,0,.07,1);
  display:flex;align-items:center;justify-content:center;
}
.page-curtain::before{
  content:'';position:absolute;bottom:-80px;left:0;width:100%;height:80px;
  background:radial-gradient(ellipse 50% 100% at 50% 0%,rgba(249,115,22,.18),transparent 70%);
  opacity:.6;
}
.page-curtain.show{transform:translateY(0);pointer-events:auto}
.page-curtain.exit{transform:translateY(100%)}
.page-curtain-inner{
  display:flex;flex-direction:column;align-items:center;gap:1.4rem;
  opacity:0;transform:scale(.85);
  transition:opacity .35s var(--smooth) .15s, transform .35s var(--smooth) .15s;
}
.page-curtain.show .page-curtain-inner{opacity:1;transform:scale(1)}
.page-curtain img{
  width:72px;height:72px;border-radius:16px;object-fit:cover;
  box-shadow:0 0 60px rgba(249,115,22,.25),0 20px 60px rgba(0,0,0,.6);
}
.page-curtain-text{
  font-family:var(--mono);font-size:.55rem;font-weight:500;
  letter-spacing:3px;text-transform:uppercase;color:var(--orange);
}

/* (Preloader letter-by-letter CSS removido junto com o preloader) */

/* ===========================================================
   26. REDUCED MOTION
   Respeita preferência do sistema. Mantém transições mínimas
   pra estado seguir mudando, mas sem animação visual.
   =========================================================== */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  body.page-leaving{opacity:1;transition:none}
  .footer-orb,
  .marquee-track,
  .pfloat,
  .div::after{animation:none!important}
}

