/* =========
   ELEV THEME
   ========= */

/* Paleta */
:root{
  --deep: #0E2E2A;            /* fundo principal */
  --deep-2: #0b2521;          /* variação para rodapé */
  --gold: #D4AF37;            /* dourado médio */
  --gold-light: #C5A268;      /* dourado claro */
  --beige: #F4F1EB;           /* off-white / alternativo */
  --gray: #A9A9A9;            /* cinza neutro */

  --gradient: linear-gradient(90deg, #D4AF37, #C5A268);
}

/* Tipografia base */
html{scroll-behavior:smooth;}
body{
  font-family: 'Montserrat', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background-color: var(--deep);
  color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3,.display-5,.display-6{
  font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
}
.section-title{
  font-weight: 700;
  margin-bottom: .75rem;
}

/* Utilitários de cor/fundo */
.bg-deep{ background-color: var(--deep)!important; }
.bg-deep-2{ background-color: var(--deep-2)!important; }
.bg-alt{ background-color: var(--beige)!important; color: #1a1a1a; }
.text-gold{ color: var(--gold)!important; }
.text-light{ color: #f9f9f9!important; }

/* Navbar / espaçamento por ser fixa */
.mt-navbar{ height: 10px; }
.navbar{
  backdrop-filter: saturate(125%) blur(6px);
  background-color: rgba(14,46,42,.92)!important;
}
.nav-link{ opacity:.9; }
.nav-link:hover, .nav-link:focus{ color: var(--gold)!important; }

/* Botões */
.btn-gradient{
  background-image: var(--gradient);
  color: #1a1a1a;
  border: none;
  border-radius: 999px;
  padding: .6rem 1rem;
}
.btn-gradient:hover, .btn-gradient:focus{
  filter: brightness(1.05);
  color: #101010;
}

/* Hero placeholder (trocar por imagem futura) */
.hero-placeholder{
  width:100%; height: 220px;
  background: repeating-linear-gradient(45deg, rgba(212,175,55,.22), rgba(212,175,55,.22) 10px, rgba(197,162,104,.18) 10px, rgba(197,162,104,.18) 20px);
  border: 1px solid rgba(197,162,104,.35);
}

/* Títulos com detalhe em gradiente */
.title-gradient{
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Seções */
.section{ position: relative; }
.section + .section{ border-top: 1px solid rgba(169,169,169,.2); }

/* Acessibilidade: foco visível */
:focus{ outline: 2px dashed var(--gold); outline-offset: 2px; }

/* ===== Seção História ===== */
.historia .section-title{
  color: #1a1a1a;
  position: relative;
}
.valores .valor-item{
  background: #fff;
  border-radius: 16px;
  padding: 1rem;
  height: 100%;
  box-shadow: 0 8px 24px rgba(14,46,42,.08);
  border: 1px solid rgba(169,169,169,.25);
  transition: transform .25s ease, box-shadow .25s ease;
}
.valores .valor-item:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(14,46,42,.12);
}
.valores .valor-item i{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: 12px;
  background-image: var(--gradient);
  color: #1a1a1a;
  font-size: 1.25rem;
  margin-bottom: .5rem;
}
.valores .valor-item h3{
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.05rem;
  margin: .25rem 0 .25rem;
  color: #1a1a1a;
}
.valores .valor-item p{
  font-size: .95rem;
  color: #3b3b3b;
  margin: 0;
}

/* Card do CEO */
.ceo-card{
  background: #fff;
  border: 1px solid rgba(169,169,169,.25);
  border-radius: 20px;
  padding: 1rem;
  box-shadow: 0 10px 30px rgba(14,46,42,.10);
}
.ceo-media{
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #f6f6f6;
  margin-bottom: .75rem;
}
.img-portrait{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ceo-quote{
  position: relative;
  background: #fff8e9;
  border: 1px solid rgba(212,175,55,.25);
  border-radius: 16px;
  padding: .85rem 1rem .85rem 2.25rem;
  margin: .25rem 0 .5rem;
}
.ceo-quote .quote-mark{
  position: absolute;
  left: .75rem; top: .4rem;
  font-size: 1.5rem;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
}
.ceo-meta{
  font-size: .9rem;
  color: #333;
}

/* Reveal on scroll */
.reveal{
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.in{
  opacity: 1;
  transform: translateY(0);
}
/* ===== Seção Nicho ===== */
.nicho .nicho-card{
  background: var(--deep-2);
  border: 1px solid rgba(197,162,104,.25);
  border-radius: 20px;
  padding: 1.25rem 1.25rem 1rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
  position: relative;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.nicho .nicho-card::before{
  /* barra superior com gradiente */
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background-image: var(--gradient);
}
.nicho .nicho-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(0,0,0,.2);
  border-color: rgba(212,175,55,.45);
}
.nicho .nicho-title{
  font-family: 'Playfair Display', Georgia, serif;
  margin: .5rem 0 .5rem;
  color: #fff;
}
.nicho .nicho-text{
  color: #e9ecef;
  font-size: .96rem;
  line-height: 1.55;
}

/* Ícone circular com gradiente */
.nicho .nicho-icon{
  width: 56px; height: 56px;
  border-radius: 50%;
  background-image: var(--gradient);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #1a1a1a;
  font-size: 1.4rem;
}

/* Chips (mini-infográfico de alcance) */
.chips{ display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.chip{
  background: var(--beige);
  color: #1a1a1a;
  border-radius: 999px;
  padding: .25rem .6rem;
  font-size: .85rem;
  border: 1px solid rgba(169,169,169,.35);
  white-space: nowrap;
}
/* ===== Seção Serviços ===== */
.servicos .section-title{ color: #1a1a1a; }

.service-card{
  display: flex; flex-direction: column;
  background: #fff;
  border: 1px solid rgba(169,169,169,.28);
  border-radius: 18px;
  padding: 1rem;
  box-shadow: 0 8px 24px rgba(14,46,42,.08);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  min-height: 260px;
}
.service-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(14,46,42,.14);
  border-color: rgba(197,162,104,.45);
}
.service-icon{
  width: 48px; height: 48px;
  border-radius: 12px;
  background-image: var(--gradient);
  display: inline-flex; align-items: center; justify-content: center;
  color: #1a1a1a; font-size: 1.25rem;
  margin-bottom: .5rem;
}
.service-title{
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.05rem; color: #1a1a1a; margin: .25rem 0 .35rem;
}
.service-text{
  font-size: .95rem; color: #3b3b3b;
}
/* WhatsApp flutuante */
.whats-float{
  position: fixed;
  right: 18px; bottom: 18px;
  width: 56px; height: 56px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background-image: var(--gradient);
  color: #1a1a1a; font-size: 1.6rem; z-index: 1080;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  transition: transform .2s ease, box-shadow .2s ease;
}
.whats-float:hover{ transform: translateY(-2px); box-shadow: 0 14px 36px rgba(0,0,0,.3); }
/* Formulário – cartão */
.form-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(197,162,104,.28);
  border-radius: 18px;
  padding: 1rem 1.25rem 1.25rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.form-card .form-label{ font-weight: 500; }
.form-card .form-control, .form-card textarea{
  background: #fff;
  color: #111;
  border-color: rgba(169,169,169,.35);
}
/* ===== HERO MODERNA ===== */
.hero-modern{
  background: radial-gradient(80% 80% at 70% 20%, rgba(212,175,55,.12), rgba(14,46,42,0) 60%),
              radial-gradient(60% 60% at 20% 10%, rgba(197,162,104,.10), rgba(14,46,42,0) 50%),
              var(--deep);
  color:#fff;
  position: relative;
  isolation:isolate;
}
.min-vh-60{ min-height: 60vh; }
.hero-title{ letter-spacing: .2px; }
.hero-sub{ color: #e9ecef; }

/* Botão contornado “luxo” */
.hero-btn-outline{
  background: rgba(255,255,255,.06);
  box-shadow: inset 0 0 0 1px rgba(197,162,104,.35);
  border-radius: 999px;
}
.hero-btn-outline:hover,.hero-btn-outline:focus{
  background: rgba(255,255,255,.12);
  box-shadow: inset 0 0 0 1px rgba(212,175,55,.65);
}

/* Badge superior */
.hero-badge{
  background-image: var(--gradient);
  border-radius: 999px;
  padding: .45rem .8rem;
}

/* Chips */
.hero-chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.hero-chips .chip{
  background: rgba(244,241,235,.9);
  border: 1px solid rgba(169,169,169,.35);
  color:#1a1a1a;
  border-radius:999px;
  padding:.25rem .6rem;
  font-size:.85rem;
}

/* Ornamentação: blobs dourados suaves */
.hero-ornament{
  position:absolute; filter: blur(36px); opacity:.35; pointer-events:none;
  background: radial-gradient(circle at 30% 30%, #D4AF37, rgba(212,175,55,.1) 60%);
}
.hero-blob-1{ width:340px; height:340px; top:-80px; left:-60px; mix-blend-mode:screen; }
.hero-blob-2{ width:280px; height:280px; bottom:-60px; right:-40px; mix-blend-mode:screen; }

/* Anel dourado girando (conic gradient) */
.hero-ring{
  --size: 720px;
  position:absolute; width: var(--size); height: var(--size);
  top: -160px; right: -140px; opacity:.22; pointer-events:none;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #D4AF37, #C5A268, #D4AF37 70%, rgba(212,175,55,.65));
  -webkit-mask: radial-gradient(circle at center, transparent 52%, black 53%);
          mask: radial-gradient(circle at center, transparent 52%, black 53%);
  animation: ringSpin 28s linear infinite;
}
@keyframes ringSpin { to { transform: rotate(360deg); } }
@media (max-width: 991.98px){
  .hero-ring{ --size: 460px; top:-120px; right:-120px; }
}

/* Logo com brilho e parallax leve */
.hero-logo-wrap{
  position: relative; display:inline-block; padding: 18px 18px 28px;
  border-radius: 24px;
  background: rgba(255,255,255,.06);
  box-shadow: inset 0 0 0 1px rgba(197,162,104,.28), 0 20px 60px rgba(0,0,0,.25);
  backdrop-filter: blur(6px);
  transform-style: preserve-3d;
}
.hero-logo{ max-width: 540px; width: 100%; height: auto; display:block; }
.hero-glow{
  position:absolute; inset:auto 0 -16px 0; height:42px; border-radius: 40px;
  background: radial-gradient(60% 120% at 50% 0%, rgba(212,175,55,.55), rgba(212,175,55,0) 70%);
  filter: blur(6px); opacity:.85;
}

/* Canvas de partículas */
.hero-canvas{
  position:absolute; inset:0; width:100%; height:100%;
  pointer-events:none; opacity:.55;
  mix-blend-mode:screen;
}

/* Indicador de rolagem */
.scroll-indicator{
  position:absolute; left:50%; bottom:18px; transform:translateX(-50%);
  width:44px; height:44px; border-radius:50%;
  background: rgba(255,255,255,.08);
  box-shadow: inset 0 0 0 1px rgba(197,162,104,.3);
  display:flex; align-items:center; justify-content:center;
  color:#fff; border:0;
  animation: floatY 2.4s ease-in-out infinite;
}
.scroll-indicator:hover{ background: rgba(255,255,255,.15); }
@keyframes floatY { 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,-8px);} }

/* Pequenos retoques responsivos */
@media (max-width:575.98px){
  .hero-logo{ max-width: 360px; }
}
/* ===== Fix da NAVBAR (altura consistente) ===== */
.navbar{
  padding-top: .55rem !important;
  padding-bottom: .55rem !important;
}
@media (max-width: 991.98px){
  .navbar .btn.btn-gradient{ padding: .45rem .9rem; } /* evita crescer no mobile */
}
/* Espaçador padrão (JS vai sobrescrever com altura exata) */
.mt-navbar{ height: 10px; }

/* (Opcional) evita que elementos da HERO “empurrem” visualmente a navbar */
.hero-modern{ z-index: 0; }
.navbar{ z-index: 1030; }