/* ==========================================================================
   ORUN ELÉTRICA — Design tokens
   Grafite (segurança/tecnologia) + Âmbar (energia) + Aço (confiança técnica)
   ========================================================================== */

:root{
  /* Cor — base grafite */
  --graphite-900:#0D1117;
  --graphite-800:#161B22;
  --graphite-700:#222A35;
  --graphite-600:#39424F;

  /* Cor — acento energia */
  --amber-500:#EFD285;
  --amber-600:#D9AE4E;
  --amber-100:#F6E9C6;

  /* Cor — acento técnico/confiança */
  --steel-500:#3F7CA6;
  --steel-700:#2C5A7C;
  --steel-100:#DCEAF2;

  /* Cor — papel/branco quente */
  --paper-0:#FFFFFF;
  --paper-50:#FAFAF8;
  --paper-100:#F1EFE9;
  --line:#E5E2D9;
  --line-dark:#2A323E;

  /* Texto */
  --ink-900:#13161B;
  --ink-700:#3B4047;
  --ink-500:#6C7178;
  --on-dark-100:#F5F4F0;
  --on-dark-500:#9DA4AE;

  /* Tipografia */
  --font-display:'Space Grotesk', 'Helvetica Neue', Arial, sans-serif;
  --font-body:'Inter', 'Helvetica Neue', Arial, sans-serif;
  --font-mono:'IBM Plex Mono', 'Courier New', monospace;

  /* Escala fluida */
  --fs-h1: clamp(2.4rem, 1.6rem + 3.4vw, 4.6rem);
  --fs-h2: clamp(1.9rem, 1.4rem + 1.8vw, 2.9rem);
  --fs-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem);
  --fs-lead: clamp(1.05rem, 1rem + 0.3vw, 1.25rem);

  /* Layout */
  --container: 1180px;
  --radius-sm: 6px;
  --radius-md: 14px;
  --radius-lg: 26px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ==========================================================================
   Reset
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--paper-50);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.12;margin:0;letter-spacing:-0.01em;}
p{margin:0;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,select,textarea{font-family:inherit;font-size:1rem;}

:focus-visible{
  outline:2.5px solid var(--amber-500);
  outline-offset:3px;
  border-radius:4px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ==========================================================================
   Utilitários
   ========================================================================== */
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
.section{padding:96px 0;}
@media (max-width:768px){ .section{padding:64px 0;} }

.section--dark{background:var(--graphite-900);color:var(--on-dark-100);}
.section--graphite{background:var(--graphite-800);color:var(--on-dark-100);}
.section--paper{background:var(--paper-50);}
.section--alt{background:var(--paper-100);}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--amber-600);
  font-weight:500;
}
.section--dark .eyebrow,
.section--graphite .eyebrow{color:var(--amber-500);}
.eyebrow::before{
  content:"";
  width:7px;height:7px;border-radius:50%;
  background:var(--amber-500);
  box-shadow:0 0 0 3px rgba(239,210,133,.18);
}

.section-head{
  max-width:640px;
  margin:0 0 56px;
}
.section-head h2{font-size:var(--fs-h2); margin-top:14px;}
.section-head p{margin-top:16px; color:var(--ink-500); font-size:var(--fs-lead);}
.section--dark .section-head p,
.section--graphite .section-head p{color:var(--on-dark-500);}

.text-center{text-align:center;margin-left:auto;margin-right:auto;}

/* Botões */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px 30px;
  border-radius:999px;
  font-family:var(--font-body);
  font-weight:600;
  font-size:.98rem;
  white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}

.btn--primary{
  background:var(--amber-500);
  color:var(--graphite-900);
  box-shadow:0 8px 24px -8px rgba(239,210,133,.55);
}
.btn--primary:hover{background:var(--amber-600); box-shadow:0 12px 28px -8px rgba(239,210,133,.65);}

.btn--ghost{
  background:transparent;
  color:var(--on-dark-100);
  border:1.5px solid var(--line-dark);
}
.btn--ghost:hover{border-color:var(--amber-500); color:var(--amber-500);}

.btn--ghost-light{
  background:transparent;
  color:var(--ink-900);
  border:1.5px solid var(--line);
}
.btn--ghost-light:hover{border-color:var(--graphite-900);}

.btn--whatsapp{
  background:#1F2630;
  color:var(--on-dark-100);
  border:1.5px solid var(--line-dark);
}
.btn--whatsapp:hover{border-color:#3BC15A; color:#3BC15A;}
.btn--block{width:100%;}
.btn svg{width:18px;height:18px;flex:none;}

/* Cartões genéricos */
.card{
  background:var(--paper-0);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:28px;
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:18px 0;
  background:rgba(13,17,23,.0);
  transition:background .35s var(--ease), padding .35s var(--ease), border-color .35s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(13,17,23,.86);
  backdrop-filter:blur(14px);
  padding:12px 0;
  border-bottom-color:var(--line-dark);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.logo{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-display); font-weight:700; font-size:1.15rem;
  color:var(--on-dark-100);
}
.logo .mark{height:34px; width:auto; flex:none; display:block;}
.logo small{
  display:block; font-family:var(--font-mono); font-size:.6rem; letter-spacing:.16em;
  color:var(--on-dark-500); font-weight:400; text-transform:uppercase;
}

.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{
  font-size:.93rem; font-weight:500; color:var(--on-dark-500);
  position:relative; padding:4px 0; transition:color .2s;
}
.nav-links a:hover, .nav-links a.is-active{color:var(--on-dark-100);}
.nav-links a.is-active::after{
  content:""; position:absolute; left:0; bottom:-4px; width:100%; height:2px; background:var(--amber-500);
}

.header-actions{display:flex; align-items:center; gap:14px;}
.nav-toggle{
  display:none; width:42px; height:42px; border-radius:10px;
  align-items:center; justify-content:center; border:1.5px solid var(--line-dark);
  background:transparent;
}
.nav-toggle svg{width:20px;height:20px;color:var(--on-dark-100);}

@media (max-width:920px){
  .nav-links{
    position:fixed; inset:72px 16px auto 16px; background:var(--graphite-800);
    border:1px solid var(--line-dark); border-radius:var(--radius-md);
    flex-direction:column; align-items:stretch; gap:0; padding:8px;
    transform:translateY(-12px) scale(.98); opacity:0; pointer-events:none;
    transition:all .25s var(--ease); box-shadow:0 24px 48px -12px rgba(0,0,0,.5);
  }
  .nav-links.is-open{transform:translateY(0) scale(1); opacity:1; pointer-events:auto;}
  .nav-links a{padding:14px 16px; border-radius:8px;}
  .nav-links a:hover{background:rgba(255,255,255,.04);}
  .nav-links a.is-active::after{display:none;}
  .nav-links a.is-active{color:var(--amber-500);}
  .header-actions .btn--primary{display:none;}
  .nav-toggle{display:flex;}
}
@media (max-width:480px){
  .logo small{display:none;}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{
  position:relative;
  background:var(--graphite-900);
  color:var(--on-dark-100);
  overflow:hidden;
  padding:168px 0 96px;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(560px 420px at 82% 18%, rgba(239,210,133,.10), transparent 70%),
    radial-gradient(700px 500px at 10% 90%, rgba(63,124,166,.14), transparent 70%);
  pointer-events:none;
}
.hero .container{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center;
}
.hero h1{font-size:var(--fs-h1); max-width:13ch;}
.hero h1 em{color:var(--amber-500); font-style:normal;}
.hero-lead{
  margin-top:22px; font-size:var(--fs-lead); color:var(--on-dark-500); max-width:46ch;
}
.hero-cta{display:flex; gap:16px; margin-top:36px; flex-wrap:wrap;}
.hero-trust{
  display:flex; gap:28px; margin-top:48px; flex-wrap:wrap;
}
.hero-trust div{font-family:var(--font-mono);}
.hero-trust strong{display:block; font-size:1.5rem; color:var(--paper-0); font-family:var(--font-display); font-weight:700;}
.hero-trust span{font-size:.74rem; color:var(--on-dark-500); letter-spacing:.04em;}

.hero-art{position:relative; aspect-ratio:1/1; max-width:480px; margin:0 auto;}
.hero-art svg{width:100%; height:100%; position:relative; z-index:1;}

.hero-art::before{
  content:"";
  position:absolute; left:55%; top:50%;
  width:62%; aspect-ratio:1/1;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(239,210,133,.32) 0%, rgba(239,210,133,.12) 45%, transparent 72%);
  z-index:1; pointer-events:none;
  animation:pulse-core 2.6s ease-in-out infinite;
}

.hero-logo{
  position:absolute; left:55%; top:50%;
  transform:translate(-50%,-50%);
  width:60%; max-width:300px;
  z-index:2; pointer-events:none;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,.5));
}

.circuit-trace{
  fill:none; stroke:var(--line-dark); stroke-width:1.5; stroke-linecap:round;
}
.circuit-node{fill:var(--graphite-800); stroke:var(--steel-500); stroke-width:1.5;}
.circuit-node--end{fill:var(--amber-500); stroke:none;}
.circuit-pulse{
  fill:none; stroke:var(--amber-500); stroke-width:2.4; stroke-linecap:round;
  stroke-dasharray:10 540; filter:drop-shadow(0 0 6px rgba(239,210,133,.7));
  animation:travel 4.2s linear infinite;
}
.circuit-pulse.delay1{animation-delay:.9s;}
.circuit-pulse.delay2{animation-delay:1.8s;}
@keyframes travel{
  0%{stroke-dashoffset:550;}
  100%{stroke-dashoffset:-10;}
}
.glow-core{
  animation:pulse-core 2.6s ease-in-out infinite;
}
@keyframes pulse-core{
  0%,100%{r:7; opacity:1;}
  50%{r:9.5; opacity:.75;}
}

@media (max-width:920px){
  .hero{padding:140px 0 64px;}
  .hero .container{grid-template-columns:1fr; text-align:left;}
  .hero h1{max-width:100%;}
  .hero-art{max-width:320px; margin-top:16px;}
}

/* Faixa de selo/confiança (sub-hero) */
.trust-strip{
  background:var(--graphite-800);
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
  padding:22px 0;
}
.trust-strip .container{
  display:flex; justify-content:center; gap:40px; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:.8rem; color:var(--on-dark-500); letter-spacing:.02em;
}
.trust-strip strong{color:var(--on-dark-100); font-weight:500;}

/* ==========================================================================
   Sobre (resumo home)
   ========================================================================== */
.about-grid{
  display:grid; grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center;
}
.about-media{
  position:relative; border-radius:var(--radius-lg); overflow:hidden;
  aspect-ratio:4/5; background:
    repeating-linear-gradient(135deg, var(--graphite-800) 0 2px, var(--graphite-900) 2px 26px);
  border:1px solid var(--line-dark);
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.about-media .ph-label{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em;
  color:var(--on-dark-500); padding:0 32px; line-height:1.6;
}
.about-media .ph-icon{width:46px;height:46px;color:var(--amber-500); margin:0 auto 14px;}

.about-text p{margin-top:18px; color:var(--ink-500); font-size:1.05rem;}
.about-points{display:grid; gap:14px; margin-top:30px;}
.about-points li{
  display:flex; gap:12px; align-items:flex-start; font-size:.98rem; color:var(--ink-700);
}
.about-points svg{width:20px;height:20px; flex:none; color:var(--amber-600); margin-top:2px;}

@media (max-width:860px){
  .about-grid{grid-template-columns:1fr; gap:36px;}
  .about-media{aspect-ratio:16/10;}
}

/* ==========================================================================
   Serviços — categorias em abas
   ========================================================================== */
.cat-tabs{
  display:flex; gap:10px; flex-wrap:wrap; margin-bottom:40px;
}
.cat-tab{
  padding:11px 20px; border-radius:999px; border:1.5px solid var(--line);
  font-size:.9rem; font-weight:600; color:var(--ink-500); transition:all .2s var(--ease);
  font-family:var(--font-mono); letter-spacing:.01em;
}
.cat-tab:hover{border-color:var(--graphite-900); color:var(--ink-900);}
.cat-tab.is-active{
  background:var(--graphite-900); color:var(--paper-0); border-color:var(--graphite-900);
}
.cat-tab.is-active .cat-tab-count{color:var(--amber-500);}
.cat-tab-count{opacity:.7; margin-left:4px;}

.service-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:20px;
}
.service-panel{display:none;}
.service-panel.is-active{display:block; animation:fadein .4s var(--ease);}
@keyframes fadein{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;} }

.service-card{
  border:1px solid var(--line); border-radius:var(--radius-md); padding:26px;
  background:var(--paper-0); transition:border-color .25s, transform .25s var(--ease), box-shadow .25s var(--ease);
  height:100%;
}
.service-card:hover{
  border-color:var(--amber-500); transform:translateY(-4px);
  box-shadow:0 18px 36px -18px rgba(13,17,23,.22);
}
.service-card .icon{
  width:42px;height:42px; border-radius:10px; background:var(--graphite-900);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.service-card .icon svg{width:21px;height:21px; color:var(--amber-500);}
.service-card h3{font-size:1.04rem; margin-bottom:8px;}
.service-card p{color:var(--ink-500); font-size:.92rem; line-height:1.55;}
.service-card .benefit{
  margin-top:14px; font-size:.82rem; color:var(--steel-700); font-weight:600;
  display:flex; gap:7px; align-items:flex-start;
}
.service-card .benefit svg{width:15px;height:15px; flex:none; margin-top:2px;}
.service-card .card-cta{
  margin-top:16px; display:inline-flex; align-items:center; gap:6px;
  font-size:.85rem; font-weight:700; color:var(--graphite-900);
}
.service-card .card-cta svg{width:14px;height:14px; transition:transform .2s;}
.service-card:hover .card-cta svg{transform:translateX(3px);}

@media (max-width:960px){ .service-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .service-grid{grid-template-columns:1fr;} }

/* Lista simples (home) */
.service-quickgrid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.qsc{
  border:1px solid var(--line); border-radius:var(--radius-md); padding:22px 20px;
  background:var(--paper-0); transition:transform .25s var(--ease), border-color .25s;
}
.qsc:hover{transform:translateY(-4px); border-color:var(--amber-500);}
.qsc .icon{width:38px;height:38px; border-radius:9px; background:var(--graphite-900); display:flex; align-items:center; justify-content:center; margin-bottom:14px;}
.qsc .icon svg{width:19px;height:19px; color:var(--amber-500);}
.qsc h3{font-size:.96rem; margin-bottom:5px;}
.qsc p{font-size:.84rem; color:var(--ink-500);}
@media (max-width:960px){ .service-quickgrid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .service-quickgrid{grid-template-columns:1fr;} }

.view-all-row{display:flex; justify-content:center; margin-top:40px;}

/* ==========================================================================
   Diferenciais
   ========================================================================== */
.diff-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-dark); border:1px solid var(--line-dark); border-radius:var(--radius-md); overflow:hidden;
}
.diff-item{
  background:var(--graphite-900); padding:34px 28px;
}
.diff-item .icon{width:38px;height:38px;color:var(--amber-500); margin-bottom:18px;}
.diff-item h3{font-size:1.02rem; color:var(--paper-0); margin-bottom:8px;}
.diff-item p{font-size:.88rem; color:var(--on-dark-500);}
@media (max-width:860px){ .diff-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .diff-grid{grid-template-columns:1fr;} }

/* ==========================================================================
   Processo / Timeline (sequência real → numeração)
   ========================================================================== */
.process{
  position:relative;
  display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
}
.process::before{
  content:""; position:absolute; top:23px; left:5%; right:5%; height:2px;
  background:linear-gradient(90deg, var(--amber-500), var(--line) 92%);
}
.process-step{position:relative;}
.process-num{
  width:46px;height:46px; border-radius:50%; background:var(--paper-0);
  border:2px solid var(--amber-500); color:var(--graphite-900);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-weight:600; font-size:.95rem;
  position:relative; z-index:1; margin-bottom:20px;
}
.process-step h3{font-size:1.02rem; margin-bottom:8px;}
.process-step p{font-size:.88rem; color:var(--ink-500);}

@media (max-width:860px){
  .process{grid-template-columns:1fr; gap:0;}
  .process::before{ top:0; bottom:0; left:23px; right:auto; width:2px; height:auto; background:linear-gradient(180deg, var(--amber-500), var(--line) 92%);}
  .process-step{padding-left:64px; padding-bottom:36px;}
  .process-num{position:absolute; left:0; top:0; margin-bottom:0;}
}

/* ==========================================================================
   Depoimentos
   ========================================================================== */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.testi-card{
  background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-md); padding:28px;
}
.testi-stars{display:flex; gap:3px; color:var(--amber-500); margin-bottom:16px;}
.testi-stars svg{width:16px;height:16px;}
.testi-card p{font-size:.96rem; color:var(--ink-700); line-height:1.65;}
.testi-by{display:flex; align-items:center; gap:12px; margin-top:20px;}
.testi-avatar{
  width:38px;height:38px; border-radius:50%; background:var(--graphite-900);
  color:var(--amber-500); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:700; font-size:.85rem;
}
.testi-by strong{display:block; font-size:.88rem;}
.testi-by span{font-size:.78rem; color:var(--ink-500);}
@media (max-width:860px){ .testi-grid{grid-template-columns:1fr;} }

/* ==========================================================================
   CTA final
   ========================================================================== */
.cta-final{
  position:relative; background:var(--graphite-900); color:var(--on-dark-100);
  text-align:center; overflow:hidden;
}
.cta-final::before{
  content:""; position:absolute; inset:0; opacity:.5;
  background:radial-gradient(640px 320px at 50% 0%, rgba(239,210,133,.12), transparent 70%);
}
.cta-final .container{position:relative; z-index:1; max-width:640px;}
.cta-final h2{font-size:var(--fs-h2);}
.cta-final p{margin-top:16px; color:var(--on-dark-500); font-size:var(--fs-lead);}
.cta-final .hero-cta{justify-content:center; margin-top:32px;}

/* ==========================================================================
   Página Sobre — específicos
   ========================================================================== */
.page-hero{
  background:var(--graphite-900); color:var(--on-dark-100); padding:160px 0 80px; position:relative; overflow:hidden;
}
.page-hero::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(560px 360px at 88% 10%, rgba(239,210,133,.10), transparent 70%);
}
.page-hero .container{position:relative; z-index:1; max-width:760px;}
.page-hero h1{font-size:var(--fs-h2);}
.page-hero p{margin-top:18px; color:var(--on-dark-500); font-size:var(--fs-lead); max-width:56ch;}

.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.value-card{border:1px solid var(--line); border-radius:var(--radius-md); padding:30px; background:var(--paper-0);}
.value-card .icon{width:34px;height:34px; color:var(--steel-500); margin-bottom:16px;}
.value-card h3{font-size:1rem; margin-bottom:8px;}
.value-card p{font-size:.9rem; color:var(--ink-500);}
@media (max-width:860px){ .values-grid{grid-template-columns:1fr;} }

.story-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.story-grid p{margin-top:16px; color:var(--ink-700); font-size:1.02rem; line-height:1.75;}
.story-grid p:first-child{margin-top:0;}
@media (max-width:860px){ .story-grid{grid-template-columns:1fr; gap:36px;} }

/* ==========================================================================
   Página Contato
   ========================================================================== */
.contact-grid{
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:start;
}
.contact-form{
  background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:40px;
}
.field{margin-bottom:20px;}
.field label{
  display:block; font-size:.8rem; font-weight:600; margin-bottom:8px;
  font-family:var(--font-mono); letter-spacing:.02em; color:var(--ink-700);
}
.field input, .field select, .field textarea{
  width:100%; padding:14px 16px; border-radius:var(--radius-sm);
  border:1.5px solid var(--line); background:var(--paper-50); color:var(--ink-900);
  transition:border-color .2s, background .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--amber-500); background:var(--paper-0); outline:none;
}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-note{font-size:.78rem; color:var(--ink-500); margin-top:10px;}

.contact-side{display:grid; gap:18px;}
.contact-card{
  background:var(--graphite-900); color:var(--on-dark-100); border-radius:var(--radius-md);
  padding:26px; display:flex; gap:16px; align-items:flex-start;
}
.contact-card .icon{
  width:42px;height:42px; border-radius:10px; background:var(--graphite-800); flex:none;
  display:flex; align-items:center; justify-content:center;
}
.contact-card .icon svg{width:20px;height:20px; color:var(--amber-500);}
.contact-card h3{font-size:.95rem; margin-bottom:4px;}
.contact-card p, .contact-card a{font-size:.88rem; color:var(--on-dark-500);}
.contact-card a:hover{color:var(--amber-500);}

.map-frame{
  border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--line); aspect-ratio:16/11;
}
.map-frame iframe{width:100%; height:100%; border:0; display:block;}

@media (max-width:920px){ .contact-grid{grid-template-columns:1fr;} .field-row{grid-template-columns:1fr;} .contact-form{padding:28px;} }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--graphite-900); color:var(--on-dark-500); padding:64px 0 28px; border-top:1px solid var(--line-dark);}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid var(--line-dark);
}
.footer-brand p{margin-top:16px; font-size:.9rem; max-width:30ch;}
.footer-col h4{
  font-family:var(--font-mono); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--on-dark-100); margin-bottom:18px; font-weight:500;
}
.footer-col ul{display:grid; gap:11px;}
.footer-col a{font-size:.9rem; transition:color .2s;}
.footer-col a:hover{color:var(--amber-500);}
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; padding-top:22px; font-size:.8rem; flex-wrap:wrap; gap:12px;
}
.social-row{display:flex; gap:12px;}
.social-row a{
  width:36px;height:36px; border-radius:50%; border:1px solid var(--line-dark);
  display:flex; align-items:center; justify-content:center;
}
.social-row a:hover{border-color:var(--amber-500);}
.social-row svg{width:16px;height:16px;}
@media (max-width:860px){ .footer-grid{grid-template-columns:1fr 1fr; gap:32px;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

/* ==========================================================================
   WhatsApp flutuante
   ========================================================================== */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:60px; height:60px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px -6px rgba(37,211,102,.55);
  animation:wa-pulse 2.6s ease-in-out infinite;
}
.wa-float svg{width:28px;height:28px; color:#fff;}
@keyframes wa-pulse{
  0%,100%{box-shadow:0 10px 30px -6px rgba(37,211,102,.55);}
  50%{box-shadow:0 10px 30px -2px rgba(37,211,102,.85);}
}

/* ==========================================================================
   Reveal on scroll
   ========================================================================== */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}

/* Grid utilitário 2 colunas */
.split-2{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
@media (max-width:860px){ .split-2{grid-template-columns:1fr;} }
