/* =========================================================
   Oliveira Arremates — Premium Design System
   100% Responsivo | Brandsheet Compliant
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600;700&family=Figtree:wght@400;500;600;700&family=Cormorant+Garamond:wght@400;500;600;700&display=swap');

:root{
  /* Brandsheet Colors */
  --dark:            #041D23;
  --dark-2:          #0a3a45;
  --dark-3:          #1a2e36;
  --cream:           #F4ECE4;
  --cream-2:         #e8dfd3;
  --text-dark:       #0f1f26;
  --text-muted:      #5a7583;
  --orange:          #C47A53;
  --orange-dark:     #a85f3f;
  --orange-light:    #d99876;
  --white:           #ffffff;
  --border-soft:     rgba(196,122,83,.35);
  --overlay-dark:    rgba(4,29,35,.75);
  --overlay-orange:  rgba(196,122,83,.15);

  --font-head: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Figtree', Arial, sans-serif;

  --container-w: 1200px;
  --radius: 6px;
  --space-xs: clamp(0.5rem, 2vw, 1rem);
  --space-sm: clamp(0.75rem, 3vw, 1.5rem);
  --space-md: clamp(1rem, 4vw, 2rem);
  --space-lg: clamp(2rem, 5vw, 3.5rem);
  --space-xl: clamp(2.5rem, 7vw, 5rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
  scroll-padding-top:clamp(60px, 12vw, 88px);
}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text-dark);
  background:var(--cream);
  line-height:1.6;
  font-size:clamp(14px, 2.2vw, 16px);
  -webkit-font-smoothing:antialiased;
  /* sem `contain` aqui: quebra o position:fixed do menu, dos modais e do WhatsApp */
}
h1{
  font-size:clamp(1.8rem, 6vw, 3.5rem);
  font-family:var(--font-head);
  margin:0 auto 0.5em;
  line-height:1.1;
  font-weight:700;
  text-align:center;
}
h2{
  font-size:clamp(1.5rem, 4.5vw, 2.6rem);
  font-family:var(--font-head);
  margin:0 auto 0.5em;
  line-height:1.2;
  font-weight:700;
  text-align:center;
}
h3{
  font-size:clamp(1rem, 3vw, 1.4rem);
  font-family:var(--font-head);
  margin:0 auto 0.5em;
  line-height:1.3;
  font-weight:700;
  text-align:center;
}
h4{
  font-size:clamp(0.9rem, 2.5vw, 1.1rem);
  font-family:var(--font-head);
  margin:0 auto 0.5em;
  font-weight:700;
  text-align:center;
}
p{ margin:0 0 1em; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
img{ max-width:100%; display:block; height:auto; contain:content; }
img[loading="lazy"]{ opacity:0.8; transition:opacity 0.3s ease; }
img[loading="lazy"].loaded{ opacity:1; }
button{ font-family:inherit; cursor:pointer; }
.container{
  max-width:1400px;
  margin:0 auto;
  padding:0 clamp(12px, 2.5vw, 40px);
}

@media (max-width: 640px) {
  .container {
    padding: 0 clamp(20px, 5vw, 30px);
  }
}

.accent{ color:var(--orange); }
.eyebrow{
  display:block;
  color:var(--orange);
  font-weight:600;
  font-size:clamp(0.65rem, 1.5vw, 0.85rem);
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:.9em;
  text-align:center;
}
.arrow{ display:inline-block; transition:transform .2s ease; }
.link-arrow{ font-weight:600; color:var(--orange); white-space:nowrap; }
.link-arrow:hover .arrow, a:hover .arrow{ transform:translateX(4px); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.55em;
  padding:clamp(0.7em, 2vw, 1em) clamp(1.2em, 3vw, 1.8em);
  font-size:clamp(0.75rem, 2vw, 0.95rem);
  font-weight:600;
  letter-spacing:.03em;
  border-radius:var(--radius);
  border:1.5px solid transparent;
  white-space:nowrap;
  transition:all .2s ease;
  text-transform:uppercase;
  min-height:44px;
  cursor:pointer;
}
.btn-primary{ background:var(--orange); color:var(--white); }
.btn-primary:hover{ background:var(--orange-dark); }
.btn-dark{ background:var(--dark); color:var(--white); }
.btn-dark:hover{ background:#000; }
.btn-outline-light{ border-color:rgba(255,255,255,.65); color:var(--white); background:transparent; }
.btn-outline-light:hover{ background:rgba(255,255,255,.12); }
.btn-outline-dark{ border-color:var(--orange); color:var(--orange); background:transparent; }
.btn-outline-dark:hover{ background:var(--orange); color:var(--white); }
.btn-icon-circle{
  width:clamp(44px, 10vw, 56px);
  height:clamp(44px, 10vw, 56px);
  border-radius:50%;
  background:var(--orange);
  color:var(--white);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.btn-icon-circle:hover{ background:var(--orange-dark); }

/* ---------- Image placeholders ---------- */
.img-placeholder{
  position:relative; width:100%; height:100%; overflow:hidden;
  background:
    linear-gradient(135deg, rgba(4,29,35,.15), rgba(196,122,83,.35)),
    repeating-linear-gradient(45deg, rgba(4,29,35,.06) 0 12px, rgba(244,236,228,.06) 12px 24px),
    linear-gradient(160deg, #041D23, #0a3a45 55%, #C47A53);
  display:flex; align-items:flex-end;
}
.img-placeholder::before{
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.10), transparent 60%);
}
.img-placeholder::after{
  content: attr(data-replace);
  position:relative; z-index:1;
  margin:clamp(8px, 2vw, 12px);
  padding:clamp(3px, 1vw, 5px) clamp(6px, 2vw, 10px);
  font-size:clamp(0.6rem, 1.5vw, 0.75rem);
  letter-spacing:.03em;
  font-family:var(--font-body);
  color:var(--white);
  background:rgba(0,0,0,.4);
  border-radius:3px;
  text-transform:none;
}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:var(--dark);
  border-bottom:2px solid var(--orange);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(12px, 2vw, 20px);
  padding:clamp(12px, 2vw, 20px) clamp(16px, 3vw, 32px);
  flex-wrap:nowrap;
  overflow:hidden;
  min-height:clamp(60px, 10vw, 90px);
}
.brand{
  display:flex;
  align-items:center;
  gap:clamp(8px, 1.5vw, 12px);
  color:var(--white);
  flex-shrink:0;
  white-space:nowrap;
}
.brand-icon{
  color:var(--orange);
  display:inline-flex;
  width:clamp(40px, 8vw, 60px);
  height:clamp(40px, 8vw, 60px);
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.brand-text{
  font-family:var(--font-head);
  font-size:clamp(0.8rem, 2vw, 1rem);
  letter-spacing:.04em;
  line-height:1;
  font-weight:600;
  white-space:nowrap;
}
.brand-text small{
  display:block;
  font-size:clamp(0.5rem, 1.2vw, 0.65rem);
  letter-spacing:.12em;
  color:var(--orange);
  font-family:var(--font-body);
  font-weight:500;
  line-height:0.9;
}

.main-nav{
  display:flex;
  align-items:center;
  flex:1;
  overflow:hidden;
  min-width:0;
  justify-content:center;
}
.main-nav ul{
  display:flex;
  gap:clamp(8px, 2vw, 16px);
  flex-wrap:nowrap;
  white-space:nowrap;
  align-items:center;
  margin:0;
  padding:0;
  list-style:none;
}
.main-nav a{
  color:var(--cream);
  font-size:clamp(0.65rem, 1.2vw, 0.85rem);
  font-weight:600;
  letter-spacing:.02em;
  text-transform:uppercase;
  position:relative;
  padding:clamp(4px, 1vw, 8px) 0;
  transition:color .2s ease;
  flex-shrink:0;
  display:inline-block;
}
.main-nav a::after{
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:1px;
  background:var(--orange);
  transition:width .2s ease;
}
.main-nav a:hover::after{ width:100%; }
.header-cta{
  flex-shrink:0;
  font-size:clamp(0.75rem, 1.2vw, 0.9rem);
  padding:clamp(8px, 1.5vw, 12px) clamp(14px, 2.5vw, 24px);
  white-space:nowrap;
}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:clamp(32px, 8vw, 40px);
  height:clamp(32px, 8vw, 40px);
  background:none;
  border:none;
  padding:0;
  flex-shrink:0;
}
.nav-toggle span{
  display:block;
  height:2px;
  width:100%;
  background:var(--white);
  transition:all .25s ease;
}
.nav-toggle span:nth-child(1){ transform-origin:center; }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; transform:scaleX(0); }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* CTA e backdrop existem apenas no drawer mobile.
   Precisa de `.main-nav` no seletor para vencer `.main-nav a`. */
.main-nav .nav-drawer-cta{ display:none; }
.nav-backdrop{ display:none; }

/* =========================================================
   Drag shield — camada transparente sobre iframes
   Iframes (YouTube/Instagram) capturam os eventos de ponteiro
   e impedem o swipe. Este escudo recebe o gesto no lugar deles.
   ========================================================= */
.drag-shield{
  position:absolute;
  inset:0;
  z-index:2;
  background:transparent;
  cursor:grab;
  touch-action:pan-y;
}
.drag-shield.is-passthrough{
  pointer-events:none;
}
.dragging .drag-shield{ cursor:grabbing; }

/* trava o scroll do fundo enquanto o menu mobile está aberto */
html.nav-open,
body.nav-open{
  overflow:hidden;
}

@media (prefers-reduced-motion: reduce){
  .main-nav,
  .main-nav li,
  .main-nav .nav-drawer-cta,
  .nav-backdrop,
  .video-short,
  .instagram-post-slide{
    transition-duration:.01ms !important;
    transition-delay:0s !important;
  }
}

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative;
  width:100%;
  margin-left:0;
  min-height:clamp(520px, 90vh, 800px);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  color:var(--white);
  overflow:hidden;
}
.hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  object-fit:cover;
}
.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(135deg, rgba(4,29,35,.85) 0%, rgba(4,29,35,.7) 50%, rgba(4,29,35,.6) 100%);
}
.hero-watermark{
  display:none;
  position:absolute;
  right:clamp(-40px, -5vw, -30px);
  top:50%;
  transform:translateY(-50%);
  color:rgba(255,255,255,.12);
  z-index:1;
  pointer-events:none;
  width:clamp(150px, 25vw, 250px);
  height:auto;
}
.hero-content{
  position:relative;
  z-index:2;
  max-width:640px;
  padding:var(--space-lg) var(--space-md);
  width:100%;
}
.hero-content h1{
  color:var(--white);
  max-width:520px;
}
.hero-sub{
  font-size:clamp(0.95rem, 2.5vw, 1.15rem);
  color:#e7ddd0;
  max-width:480px;
  line-height:1.7;
  margin:0 auto;
  text-align:center;
}
.hero-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:clamp(8px, 2vw, 14px);
  flex-wrap:wrap;
  margin-top:var(--space-lg);
}

/* =========================================================
   Stats bar
   ========================================================= */
.stats-bar{
  background:var(--cream);
  padding:clamp(50px, 8vw, 100px) 0;
  border-top:3px solid var(--orange);
  border-bottom:1px solid var(--border-soft);
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:clamp(28px, 5vw, 48px);
  align-items:start;
}
@media (max-width: 1024px) {
  .stats-grid{
    grid-template-columns:repeat(3, 1fr);
    gap:clamp(16px, 3vw, 28px);
  }
}
@media (max-width: 640px) {
  .stats-grid{
    grid-template-columns:repeat(2, 1fr);
    gap:clamp(14px, 2.5vw, 20px);
  }
}
.stat-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(10px, 2.2vw, 14px);
  text-align:center;
}

@media (min-width: 1025px) {
  .stat-item {
    flex-direction:row;
    align-items:flex-start;
    text-align:left;
  }
}
.stat-icon{
  color:var(--orange);
  flex-shrink:0;
  width:clamp(28px, 6.5vw, 38px);
  height:clamp(28px, 6.5vw, 38px);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.stat-item strong{
  display:block;
  font-family:var(--font-head);
  font-size:clamp(0.95rem, 2.8vw, 1.25rem);
  font-weight:700;
  color:var(--text-dark);
  line-height:1.1;
}
.stat-item span{
  display:block;
  font-size:clamp(0.7rem, 1.8vw, 0.85rem);
  color:var(--text-muted);
  line-height:1.4;
  margin-top:clamp(2px, 0.3vw, 4px);
}

/* =========================================================
   Quem Somos
   ========================================================= */
.quem-somos{
  padding:clamp(50px, 8vw, 100px) 0;
  background:var(--cream);
}
.quem-somos-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-lg);
  align-items:center;
}
@media (min-width: 860px) {
  .quem-somos-grid{
    grid-template-columns:1.1fr 1fr;
    gap:clamp(40px, 6vw, 80px);
    align-items:center;
  }
}
.quem-somos-text{
  z-index:1;
  /* o h2 ja e centralizado pela regra global; sem isto os paragrafos ficavam
     a esquerda e o bloco parecia desalinhado */
  text-align:center;
}
.quem-somos-text h2{
  color:var(--text-dark);
  margin-bottom:0.8em;
}
.quem-somos-text p{
  color:var(--text-muted);
  max-width:540px;
  margin:0 auto 1.2em;
  line-height:1.9;
  font-size:clamp(0.95rem, 2vw, 1.05rem);
}
.quem-somos-media{
  aspect-ratio:16/10;
  border-radius:clamp(6px, 1.5vw, 10px);
  overflow:hidden;
  width:100%;
  box-shadow:0 12px 40px rgba(0,0,0,.08);
  border:8px solid var(--cream-2);
  background: var(--cream);
}

/* =========================================================
   Serviços
   ========================================================= */
.servicos{
  background:var(--dark);
  color:var(--cream);
  padding:clamp(50px, 8vw, 100px) 0;
}
.servicos-head{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  flex-wrap:wrap;
  gap:clamp(16px, 3vw, 24px);
  margin-bottom:clamp(40px, 6vw, 60px);
  width:100%;
}
.servicos-head > div{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
}
.servicos-head h2{
  color:var(--white);
  font-size:clamp(1.8rem, 5vw, 2.8rem);
  text-align:center;
  width:100%;
}
.servicos-sub{
  color:var(--orange);
  font-size:clamp(1rem, 2.2vw, 1.2rem);
  margin:0 auto;
  max-width:300px;
  line-height:1.6;
  text-align:center;
  font-weight:600;
}
.servicos-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(clamp(280px, 85vw, 360px), 1fr));
  gap:clamp(28px, 5vw, 48px);
}
.servico-card{
  border:1px solid rgba(196,122,83,.25);
  border-radius:var(--radius);
  padding:clamp(28px, 5vw, 40px);
  background:rgba(255,255,255,.02);
  transition:all .3s ease;
}
.servico-card:hover{
  background:rgba(196,122,83,.1);
  border-color:var(--orange);
  transform:translateY(-4px);
}
.servico-icon{
  color:var(--orange);
  display:inline-flex;
  margin-bottom:clamp(16px, 3vw, 24px);
  width:clamp(40px, 7vw, 50px);
  height:clamp(40px, 7vw, 50px);
}
.servico-card h3{
  color:var(--cream);
  font-size:clamp(1rem, 2.2vw, 1.3rem);
  margin-bottom:0.6em;
  font-weight:600;
}
.servico-card p{
  color:rgba(244,236,228,.8);
  font-size:clamp(0.85rem, 1.9vw, 0.95rem);
  margin:0;
  line-height:1.7;
}
.servicos-cta{
  text-align:center;
  margin-top:clamp(30px, 5vw, 46px);
}

/* =========================================================
   Como Funciona
   ========================================================= */
.como-funciona{
  padding:clamp(50px, 8vw, 100px) 0;
  text-align:center;
  background:var(--cream);
}
.como-funciona h2{
  font-size:clamp(1.8rem, 5vw, 2.8rem);
  margin-bottom:0.8em;
}
.timeline{
  margin-top:clamp(40px, 6vw, 60px);
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:0;
  column-gap:clamp(8px, 1.2vw, 16px);
  position:relative;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  grid-auto-rows:auto auto;
  row-gap:clamp(60px, 8vw, 100px);
}
.timeline::before{
  content:'';
  position:absolute;
  top:clamp(24px, 4vw, 30px);
  left:5%;
  right:5%;
  height:1px;
  background:var(--orange);
  z-index:0;
}
.timeline-step:nth-child(odd){
  grid-row:1;
}
.timeline-step:nth-child(even){
  grid-row:2;
}
.timeline-step:nth-child(1){
  grid-column:1;
}
.timeline-step:nth-child(2){
  grid-column:2;
}
.timeline-step:nth-child(3){
  grid-column:3;
}
.timeline-step:nth-child(4){
  grid-column:4;
}
.timeline-step:nth-child(5){
  grid-column:5;
}
.timeline-step:nth-child(6){
  grid-column:6;
}
.timeline-step:nth-child(7){
  grid-column:7;
}
.timeline-lines{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none;
}
.timeline::before{
  display:none;
}
.timeline-step{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:0;
}
.timeline-icon{
  width:clamp(40px, 8vw, 50px);
  height:clamp(40px, 8vw, 50px);
  border-radius:50%;
  background:var(--cream);
  border:1.5px solid var(--orange);
  color:var(--orange);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:clamp(10px, 2vw, 14px);
  font-size:clamp(0.8rem, 1.5vw, 1rem);
}
.timeline-step strong{
  color:var(--orange);
  font-size:clamp(0.65rem, 1.5vw, 0.85rem);
  letter-spacing:.1em;
}
.timeline-step h3{
  font-size:clamp(0.85rem, 2vw, 1.1rem);
  margin:0.3em 0 0.35em;
}
.timeline-step p{
  font-size:clamp(0.7rem, 1.5vw, 0.9rem);
  color:var(--text-muted);
  margin:0;
  line-height:1.5;
  max-width:140px;
}

/* =========================================================
   Banner Patrimônio
   ========================================================= */
.banner-patrimonio{
  position:relative;
  min-height:clamp(350px, 50vh, 500px);
  display:flex;
  align-items:center;
  color:var(--white);
  overflow:hidden;
}
.banner-bg{ position:absolute; inset:0; z-index:0; }
.banner-content{
  position:relative;
  z-index:2;
  max-width:580px;
  padding:clamp(40px, 5vw, 60px);
  margin:0 auto;
}
.banner-content h2{ color:var(--white); }
.banner-content p{
  color:#e7ddd0;
  line-height:1.7;
}

/* =========================================================
   Depoimentos
   ========================================================= */
.depoimentos{
  padding:clamp(60px, 10vw, 120px) 0;
  background:linear-gradient(180deg, var(--dark) 0%, var(--dark-3) 100%);
}
.depoimentos-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:clamp(20px, 4vw, 30px);
  margin-bottom:clamp(50px, 8vw, 80px);
}
.depoimentos-head h2{
  color:var(--white);
  font-size:clamp(2rem, 5.5vw, 3rem);
  margin:0;
  font-weight:700;
}
.depoimentos-head .btn {
  flex-shrink: 0;
}
.depoimentos-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(24px, 4vw, 36px);
  align-items:stretch;
}
@media (min-width: 860px) {
  .depoimentos-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}
.depoimento-card{
  background:linear-gradient(135deg, rgba(255,255,255,.06) 0%, rgba(196,122,83,.08) 100%);
  border:1.5px solid rgba(196,122,83,.3);
  border-radius:clamp(10px, 2vw, 14px);
  padding:clamp(32px, 5vw, 44px);
  position:relative;
  display:flex;
  flex-direction:column;
  transition:all .4s cubic-bezier(0.23, 1, 0.320, 1);
  backdrop-filter:blur(10px);
}
.depoimento-card:hover{
  background:linear-gradient(135deg, rgba(255,255,255,.1) 0%, rgba(196,122,83,.15) 100%);
  border-color:var(--orange);
  transform:translateY(-8px);
  box-shadow:0 20px 60px rgba(196,122,83,.2);
}
.stars{
  color:var(--orange);
  letter-spacing:2px;
  margin-bottom:clamp(1rem, 2vw, 1.5rem);
  font-size:clamp(1.1rem, 2.2vw, 1.35rem);
  display:block;
}
.stars.small{
  font-size:clamp(0.9rem, 1.8vw, 1.05rem);
  margin-top:clamp(1.2rem, 2vw, 1.8rem);
  margin-bottom:clamp(0.8rem, 1.5vw, 1.2rem);
}
.depoimento-quote{
  font-size:clamp(0.95rem, 2vw, 1.1rem);
  color:var(--cream);
  flex-grow:1;
  line-height:1.9;
  font-weight:500;
  margin:0;
  font-style:italic;
}
.depoimento-author{
  display:flex;
  align-items:center;
  gap:clamp(12px, 2.5vw, 16px);
  margin-top:clamp(1.8rem, 3vw, 2.4rem);
}
.avatar-placeholder{
  width:clamp(44px, 10vw, 56px);
  height:clamp(44px, 10vw, 56px);
  border-radius:50%;
  flex-shrink:0;
  background:linear-gradient(135deg, var(--orange) 0%, var(--orange-dark) 100%);
  box-shadow:0 4px 16px rgba(196,122,83,.3);
}
.depoimento-author strong{
  display:block;
  font-size:clamp(0.9rem, 2vw, 1.05rem);
  color:var(--cream);
  font-weight:700;
  letter-spacing:0.3px;
}
.depoimento-author span{
  font-size:clamp(0.75rem, 1.7vw, 0.9rem);
  color:var(--orange-light);
  font-weight:500;
}
.depoimento-nav{
  position:absolute;
  right:clamp(12px, 2vw, 24px);
  bottom:clamp(12px, 2vw, 24px);
  display:flex;
  gap:clamp(4px, 1vw, 8px);
}
.depoimento-nav button{
  width:clamp(28px, 6vw, 36px);
  height:clamp(28px, 6vw, 36px);
  border-radius:50%;
  border:1px solid var(--border-soft);
  background:transparent;
  color:var(--orange);
  font-size:clamp(0.85rem, 2vw, 1.1rem);
  line-height:1;
}
.depoimento-nav button:hover{
  background:var(--orange);
  color:var(--white);
}
.google-reviews{
  background:linear-gradient(135deg, rgba(196,122,83,.15) 0%, rgba(196,122,83,.05) 100%);
  color:var(--white);
  border-radius:clamp(10px, 2vw, 14px);
  padding:clamp(36px, 5vw, 48px) clamp(24px, 4vw, 36px);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(8px, 1.5vw, 14px);
  border:1.5px solid rgba(196,122,83,.25);
  backdrop-filter:blur(10px);
}
.google-reviews .eyebrow{
  font-size:clamp(0.7rem, 1.6vw, 0.85rem);
  letter-spacing:0.1em;
  margin-bottom:0.5em;
}
.google-score{
  font-family:var(--font-head);
  font-size:clamp(2.4rem, 6vw, 3.2rem);
  font-weight:700;
  color:var(--orange);
}
.google-reviews .stars{
  margin:0;
  font-size:clamp(1.2rem, 2.4vw, 1.45rem);
}
.google-reviews p{
  color:var(--orange-light);
  font-size:clamp(0.8rem, 1.9vw, 1rem);
  margin:clamp(0.8em, 1.5vw, 1.2em) 0;
  font-weight:500;
}
.google-reviews .btn {
  margin-top: clamp(8px, 1.5vw, 12px);
}

/* =========================================================
   Destaques (Cursos / Eventos / Youtube)
   ========================================================= */
.destaques{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(24px, 4vw, 40px);
  margin:clamp(50px, 8vw, 80px) 0;
  width:100%;
}
.destaque-card{
  position:relative;
  aspect-ratio:16/9;
  overflow:hidden;
  color:var(--white);
  background:var(--dark);
  transition:all .3s ease;
  width:100%;
  min-width:0;
  min-height:450px;
}
.destaque-card:hover .destaque-bg{
  transform:scale(1.05);
}
.destaque-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 15%;
  transition:transform .3s ease;
}
.destaque-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(4,29,35,.2) 0%, rgba(4,29,35,.7) 60%, rgba(4,29,35,.95) 100%);
  z-index:1;
}
.destaque-content{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:clamp(24px, 4vw, 36px);
}
.destaque-content .eyebrow{
  color:var(--orange);
  font-size:clamp(0.75rem, 1.6vw, 0.9rem);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:clamp(8px, 1.5vw, 12px);
  display:block;
}
.destaque-content h3{
  color:var(--cream);
  font-size:clamp(1rem, 2.8vw, 1.35rem);
  line-height:1.3;
  margin:0 0 clamp(8px, 1.5vw, 12px);
  font-family:var(--font-head);
  font-weight:600;
}
.destaque-content p{
  color:rgba(244,236,228,.85);
  font-size:clamp(0.8rem, 1.7vw, 0.95rem);
  line-height:1.6;
  margin:0 0 clamp(16px, 2.5vw, 20px);
}
.destaque-content .btn{
  align-self:flex-start;
  font-size:clamp(0.8rem, 1.6vw, 0.9rem);
  padding:clamp(10px, 1.8vw, 12px) clamp(16px, 3vw, 20px);
}

/* =========================================================
   Blog + Instagram
   ========================================================= */
.blog,
.instagram{
  padding:clamp(50px, 8vw, 100px) 0;
  background:var(--dark);
}
.blog .section-head,
.instagram .section-head{
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin-bottom:clamp(40px, 6vw, 60px);
  width:100%;
}
.blog .section-head h2,
.instagram .section-head h2{
  font-size:clamp(2rem, 5.5vw, 3rem);
  margin:0 0 1em;
  color:var(--cream);
}
.blog .section-head .eyebrow,
.instagram .section-head .eyebrow{
  margin-bottom:0.5em;
  font-size:clamp(0.7rem, 1.8vw, 0.95rem);
}
.blog .section-head p,
.instagram .section-head p{
  font-size:clamp(0.9rem, 2vw, 1.1rem);
  color:var(--text-muted);
  margin:0;
  max-width:600px;
  line-height:1.6;
  text-align:center;
}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:clamp(12px, 3vw, 20px);
  margin-bottom:clamp(28px, 5vw, 46px);
}
.section-head h2{
  margin:0;
  color:var(--cream);
  font-size:clamp(1.6rem, 5vw, 2.6rem);
}
.section-head .eyebrow{
  color:var(--orange);
}
.blog-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(16px, 3vw, 24px);
  grid-auto-rows:1fr;
  max-width:1200px;
  margin:0 auto;
}
@media (max-width: 1024px) {
  .blog-grid{
    grid-template-columns:repeat(2, 1fr);
    max-width:900px;
  }
}
@media (max-width: 767px) {
  .blog-grid{
    grid-template-columns:1fr;
    max-width:100%;
  }
}
.blog-card{
  border-radius:var(--radius);
  overflow:hidden;
  transition:all .3s ease;
  display:flex;
  flex-direction:column;
  box-shadow:0 2px 8px rgba(0,0,0,0.2);
}
.blog-card:hover{
  border-color:var(--orange);
  transform:translateY(-4px);
}
.blog-thumb{
  width:100%;
  height:300px;
  object-fit:cover;
  display:block;
  flex-shrink:0;
  border-radius:var(--radius) var(--radius) 0 0;
}
@media (min-width: 768px) {
  .blog-thumb{
    height:320px;
  }
}
@media (min-width: 1024px) {
  .blog-thumb{
    height:340px;
  }
}
.blog-card-content{
  padding:clamp(12px, 2.5vw, 16px);
  flex:1;
  display:flex;
  flex-direction:column;
}
.blog-card > h3,
.blog-card > p {
  padding:clamp(12px, 2.5vw, 16px);
  padding-top:0;
}
.blog-card > h3:first-of-type {
  padding-top:clamp(12px, 2.5vw, 16px);
}
.blog-card h3{
  font-size:clamp(0.9rem, 1.8vw, 1rem);
  margin:0 0 0.3em 0;
  color:var(--cream);
  font-weight:600;
  line-height:1.2;
}
.blog-card p{
  font-size:clamp(0.75rem, 1.5vw, 0.85rem);
  color:rgba(244,236,228,.75);
  line-height:1.5;
  margin:0;
  flex:1;
}
.insta-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(16px, 3vw, 32px);
  margin-bottom:clamp(30px, 5vw, 60px);
  grid-auto-rows:1fr;
}
@media (max-width: 1024px) {
  .insta-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .insta-grid{
    grid-template-columns:1fr;
    gap:clamp(12px, 2.5vw, 20px);
  }
}
.insta-thumb{
  width:100%;
  height:320px;
  border-radius:var(--radius);
  object-fit:cover;
  border:1px solid rgba(196,122,83,.2);
  transition:all .3s ease;
  display:block;
}
.insta-thumb:hover{
  border-color:var(--orange);
  transform:scale(1.02);
}
@media (min-width: 768px) {
  .insta-thumb{
    height:360px;
  }
}
@media (min-width: 1024px) {
  .insta-thumb{
    height:380px;
  }
}
.insta-logo{
  background:linear-gradient(135deg, var(--orange-dark) 0%, var(--orange) 100%);
  color:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:300px;
  border-radius:var(--radius);
  font-size:clamp(2rem, 5vw, 3rem);
  border:1px solid rgba(196,122,83,.2);
  transition:all .3s ease;
}
.insta-logo:hover{
  border-color:var(--orange);
  transform:scale(1.02);
}
@media (min-width: 768px) {
  .insta-logo{
    height:320px;
  }
}
@media (min-width: 1024px) {
  .insta-logo{
    height:340px;
  }
}
.insta-btn{
  width:100%;
  background:var(--orange);
  color:var(--white);
  font-weight:600;
  font-size:clamp(0.9rem, 2vw, 1rem);
  padding:clamp(12px, 2vw, 16px);
  border:none;
  border-radius:var(--radius);
  transition:all .3s ease;
}
.insta-btn:hover{
  background:var(--orange-dark);
  transform:translateY(-2px);
}

/* =========================================================
   CTA Contratos
   ========================================================= */
.cta-contratos{
  background: linear-gradient(180deg, var(--dark) 0%, var(--dark-3) 100%);
  padding:clamp(40px, 6vw, 60px) 0;
  border-top:1px solid rgba(196,122,83,.15);
}
.cta-contratos-content{
  display:flex;
  flex-direction:column;
  gap:clamp(20px, 3vw, 30px);
  align-items:center;
  text-align:center;
}
.cta-contratos-text{
  max-width:550px;
}
.cta-contratos-text h2{
  color:var(--white);
  font-family:var(--font-head);
  font-size:clamp(1.4rem, 3.5vw, 2.2rem);
  line-height:1.3;
  font-weight:600;
  margin:0.3em 0 0.6em;
}
.cta-contratos-text p{
  color:rgba(255,255,255,.9);
  font-family:var(--font-body);
  font-size:clamp(0.9rem, 1.8vw, 1rem);
  margin:0;
  line-height:1.6;
}
.cta-contratos-text .eyebrow{
  display:block;
  margin-bottom:0.4em;
  font-size:clamp(0.65rem, 1.5vw, 0.8rem);
  color: var(--orange);
}
.cta-contratos-buttons{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:clamp(12px, 2.5vw, 16px);
  width:100%;
  max-width:520px;
}
.cta-contratos-buttons .btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:clamp(11px, 1.8vw, 14px) clamp(16px, 2.5vw, 20px);
  font-size:clamp(0.75rem, 1.4vw, 0.85rem);
  font-weight:700;
  transition:all .3s ease;
  border-radius:var(--radius);
  letter-spacing:0.3px;
  white-space:normal;
  line-height:1.3;
  min-height:44px;
}
.cta-contratos-buttons .btn .icon{
  font-size:1.2em;
  flex-shrink:0;
}
.cta-contratos-buttons .btn .text{
  display:block;
}
.cta-contratos-buttons .btn-primary{
  background:var(--orange);
  color:var(--dark);
  border:none;
}
.cta-contratos-buttons .btn-primary:hover{
  background:var(--orange-light);
  transform:translateY(-2px);
}
.cta-contratos-buttons .btn-outline-light{
  background:transparent;
  color:var(--white);
  border:1.5px solid var(--white);
}
.cta-contratos-buttons .btn-outline-light:hover{
  background:var(--white);
  color:var(--dark);
  transform:translateY(-2px);
}

@media (max-width: 768px){
  .cta-contratos-buttons{
    grid-template-columns:1fr;
  }
  .cta-contratos-text h2{
    font-size:clamp(1.2rem, 3vw, 1.8rem);
  }
}

/* =========================================================
   Instagram Section
   ========================================================= */
.instagram-section {
  background: linear-gradient(180deg, var(--dark) 0%, var(--dark-3) 100%);
  padding: clamp(40px, 6vw, 80px) 0;
  border-top: 1px solid rgba(196,122,83,.15);
}

/* Instagram Carousel for Mobile */
.instagram-carousel {
  display:none;
  position:relative;
  width:100%;
  max-width:400px;
  margin:0 auto clamp(30px, 5vw, 50px);
}

.instagram-carousel.active {
  display:block;
}

/* mesmo recorte do grid */
.instagram-track {
  position:relative;
  width:100%;
  height:0;
  padding-top:52px;
  padding-bottom:124%;
  overflow:hidden;
  border-radius:var(--radius);
  background:#000;
  cursor:grab;
  box-shadow:0 10px 30px rgba(0,0,0,0.3);
  transform:translateZ(0);
  touch-action:pan-y;
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}

.instagram-track.dragging {
  cursor:grabbing;
}

.instagram-post-slide {
  position:absolute;
  inset:0;
  overflow:hidden;
  opacity:0;
  transition:opacity 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  display:block;
  text-decoration:none;
  will-change:opacity;
  backface-visibility:hidden;
  contain:layout style paint;
}

.instagram-post-slide.active {
  opacity:1;
}

.instagram-post-slide iframe {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:900px;
  border:none;
  display:block;
}

.instagram-post-slide .instagram-post-image {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.instagram-post-slide .instagram-post-overlay {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:linear-gradient(to top, rgba(0,0,0,0.9), rgba(0,0,0,0.3), transparent);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:clamp(16px, 3vw, 24px);
  opacity:0;
  transition:opacity 0.3s ease;
}

.instagram-post-slide:hover .instagram-post-overlay,
.instagram-post-slide.active .instagram-post-overlay {
  opacity:1;
}

.instagram-indicators {
  margin-top:16px;
}

.instagram-head {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-bottom: clamp(40px, 6vw, 60px);
}

.instagram-head h2 {
  color: var(--white);
  font-family: var(--font-head);
  font-size: clamp(1.4rem, 3.5vw, 2.2rem);
  line-height: 1.3;
  font-weight: 600;
  margin: 0.3em 0 0.6em;
}

.instagram-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 4vw, 32px);
}

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

.instagram-post {
  display: block;
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  transition: all 0.3s ease;
  border: 1px solid rgba(196,122,83,.2);
}

.instagram-post:not(.instagram-reel) {
  aspect-ratio: 1;
}

/* corta o embed depois do vídeo: 52px de cabeçalho + 124% da largura (mídia 4:5) */
.instagram-reel {
  height: 0;
  padding-top: 52px;
  padding-bottom: 124%;
  position: relative;
  overflow: hidden;
  background: var(--white);
}

.instagram-reel iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 900px;
  border: none;
  display: block;
}

.instagram-post-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.instagram-post:hover .instagram-post-image {
  transform: scale(1.05);
}

.instagram-post-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  top: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.9), rgba(0,0,0,0.3), transparent);
  padding: clamp(16px, 3vw, 24px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: 100%;
  transition: all 0.3s ease;
  opacity: 0;
}

.instagram-post:hover .instagram-post-overlay {
  opacity: 1;
}

.instagram-follow-btn {
  color: var(--white);
  font-weight: 700;
  font-size: clamp(0.85rem, 1.8vw, 0.95rem);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  display: inline-block;
  padding: 10px 24px;
  border: 1px solid var(--orange);
  border-radius: 4px;
  background: transparent;
  transition: all 0.3s ease;
  cursor: pointer;
}

.instagram-post:hover .instagram-follow-btn {
  background: var(--orange);
  color: var(--dark);
}

@media (max-width: 640px) {
  .instagram-grid {
    display:none;
  }

  .instagram-carousel {
    max-width:100%;
    display:block !important;
  }

  .instagram-carousel.active {
    display:block;
  }

  .instagram-section .container {
    padding: 0 clamp(12px, 3vw, 20px);
  }
}

@media (min-width: 641px) {
  .instagram-carousel {
    display:none !important;
  }
}

/* =========================================================
   CTA Final / Contato
   ========================================================= */
.cta-final{
  background:var(--cream);
  color:var(--text-dark);
  padding:var(--space-xl) 0;
}
.cta-final-inner{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(32px, 6vw, 60px);
  align-items:center;
}
@media (min-width: 860px) {
  .cta-final-inner{
    grid-template-columns:1.2fr 1fr;
    align-items:center;
  }
}
.cta-final-text{
  display:flex;
  gap:clamp(16px, 3vw, 24px);
  align-items:center;
  flex-direction:column;
}
.cta-final-image{
  width:clamp(80px, 20vw, 200px);
  height:auto;
  margin-bottom:clamp(8px, 2vw, 16px);
}
.cta-final-text .brand-icon{
  color:var(--orange);
  flex-shrink:0;
  width:clamp(48px, 8vw, 64px);
  height:clamp(48px, 8vw, 64px);
}
.cta-final-text h2{
  color:var(--text-dark);
  margin:0;
  font-size:clamp(1.8rem, 5vw, 2.8rem);
  line-height:1.25;
  text-align:center;
}
.cta-final-text p{
  color:var(--text-muted);
  margin:0;
  line-height:1.8;
  font-size:clamp(0.95rem, 2vw, 1.05rem);
  text-align:center;
}

.contato-form{
  background:linear-gradient(135deg, var(--dark) 0%, var(--dark-3) 100%);
  border-radius:clamp(12px, 3vw, 16px);
  padding:clamp(32px, 6vw, 48px);
  color:var(--cream);
  box-shadow:0 20px 60px rgba(0,0,0,.3);
  border:1px solid rgba(196,122,83,.2);
}
.contato-form input,
.contato-form textarea {
  display: block;
  width: 100%;
  margin-bottom: clamp(16px, 3vw, 24px);
}

.phone-input-wrapper {
  display: flex;
  gap: clamp(8px, 1.5vw, 12px);
  align-items: center;
  margin-bottom: clamp(16px, 3vw, 24px);
  width: 100%;
}

.country-select {
  flex: 0 0 clamp(65px, 20vw, 85px);
  width: clamp(65px, 20vw, 85px) !important;
  min-width: clamp(65px, 20vw, 85px) !important;
  max-width: clamp(65px, 20vw, 85px) !important;
  padding: 12px 8px !important;
  font-size: clamp(0.75rem, 1.5vw, 0.8rem) !important;
}

.phone-input-wrapper input {
  flex: 1;
  min-width: 0;
  margin-bottom: 0 !important;
}
.contato-form input, .contato-form textarea, .contato-form select{
  width:100%;
  padding:clamp(12px, 2vw, 16px) clamp(14px, 2vw, 18px);
  border:1.5px solid rgba(196,122,83,.3);
  border-radius:clamp(6px, 1.5vw, 10px);
  font-family:inherit;
  font-size:clamp(0.85rem, 1.9vw, 1rem);
  background:rgba(26, 46, 54, 0.8);
  color:var(--cream);
  min-height:44px;
  transition:all 0.3s ease;
}
.contato-form textarea{
  margin-bottom:clamp(12px, 2vw, 20px);
  resize:vertical;
  min-height:120px;
  font-family:inherit;
  line-height:1.6;
}
.contato-form input::placeholder, .contato-form textarea::placeholder, .contato-form select::placeholder{
  color:rgba(244,236,228,.75);
  font-weight: 500;
}
.contato-form input:focus, .contato-form textarea:focus, .contato-form select:focus{
  outline:none;
  border-color:var(--orange);
  background:rgba(26, 46, 54, 1);
  box-shadow:0 0 0 3px rgba(196,122,83,.1);
}
.country-select {
  background: rgba(26, 46, 54, 0.8) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23C47A53' d='M6 9L1 4h10z'/%3E%3C/svg%3E") no-repeat;
  background-position: right 6px center;
  padding: 12px 24px 12px 8px !important;
  appearance: none;
  font-size: 0.8rem !important;
  min-width: 65px !important;
  flex-shrink: 0;
  text-align: center;
}
.phone-input-wrapper {
  width: 100% !important;
}
.phone-input-wrapper input {
  width: 100% !important;
  flex: 1;
}
.form-actions{
  display:flex;
  align-items:center;
  gap:clamp(12px, 2.5vw, 18px);
  flex-direction:column-reverse;
  margin-top:clamp(20px, 3vw, 28px);
}
@media (min-width: 480px) {
  .form-actions{
    flex-direction:row;
    align-items:center;
  }
}
.form-actions .btn {
  white-space: nowrap;
  min-width: fit-content;
}
.form-status{
  margin:clamp(12px, 2vw, 16px) 0 0;
  font-size:clamp(0.8rem, 1.7vw, 0.95rem);
  min-height:1.4em;
  letter-spacing:0.3px;
}
.form-status.ok{
  color:#5ee4c3;
  font-weight:500;
}
.form-status.error{
  color:#ff9999;
  font-weight:500;
}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{
  background:var(--dark);
  color:rgba(244,236,228,.8);
  padding:var(--space-xl) 0 var(--space-md);
  border-top:1px solid rgba(196,122,83,.15);
}
.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:clamp(40px, 6vw, 60px);
  margin-bottom:clamp(40px, 5vw, 60px);
}
@media (min-width: 768px) {
  .footer-grid{
    grid-template-columns:repeat(4, 1fr);
  }
}
.footer-brand{
  display:flex;
  flex-direction:column;
  gap:clamp(12px, 2vw, 16px);
}
.footer-brand .brand{
  color:var(--white);
}
.footer-brand-text{
  font-size:clamp(0.8rem, 1.8vw, 0.95rem);
  color:rgba(244,236,228,.7);
  line-height:1.6;
}
.footer-col h4{
  color:var(--white);
  font-size:clamp(0.8rem, 1.9vw, 0.95rem);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:clamp(14px, 2vw, 20px);
  padding-bottom:clamp(10px, 2vw, 14px);
  border-bottom:2px solid var(--orange);
}
.footer-col ul{
  display:flex;
  flex-direction:column;
  gap:clamp(10px, 1.5vw, 14px);
  margin-bottom:0;
}
.footer-col a{
  font-size:clamp(0.8rem, 1.7vw, 0.9rem);
  line-height:1.6;
  color:rgba(244,236,228,.85);
  transition:color .2s ease;
}
.footer-col a:hover{
  color:var(--orange);
  text-decoration:underline;
}
.footer-social{
  display:flex;
  gap:clamp(10px, 2vw, 14px);
  margin-top:clamp(12px, 2vw, 16px);
}
.footer-social a{
  width:clamp(36px, 7vw, 44px);
  height:clamp(36px, 7vw, 44px);
  border-radius:50%;
  border:1.5px solid var(--orange);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--orange);
  background:rgba(196,122,83,.1);
  transition:all .3s ease;
  font-size:clamp(0.9rem, 2vw, 1.1rem);
}
.footer-social a:hover{
  background:var(--orange);
  color:var(--white);
  border-color:var(--orange);
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:clamp(12px, 2vw, 20px) 0;
  font-size:clamp(0.65rem, 1.5vw, 0.85rem);
  color:#8a7d6c;
  text-align:center;
}

/* =========================================================
   WhatsApp float button
   ========================================================= */
.whatsapp-float{
  position:fixed;
  right:clamp(12px, 3vw, 22px);
  bottom:clamp(12px, 3vw, 22px);
  z-index:90;
}
.whatsapp-float a{
  width:clamp(48px, 10vw, 56px);
  height:clamp(48px, 10vw, 56px);
  border-radius:50%;
  background:#25D366;
  color:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.3);
  font-size:clamp(1.2rem, 3vw, 1.5rem);
}

/* =========================================================
   Depoimentos em Vídeo
   ========================================================= */
.depoimentos-video{
  padding:clamp(50px, 8vw, 100px) 0;
  background:var(--cream);
}
.depoimentos-video-head{
  margin-bottom:clamp(30px, 5vw, 60px);
  text-align:center;
}
.depoimentos-video-head h2{
  margin:0 0 0.5em;
}
.depoimentos-video-sub{
  font-size:clamp(0.95rem, 2.2vw, 1.15rem);
  color:var(--text-muted);
  max-width:600px;
  margin:0 auto;
  line-height:1.7;
}
.videos-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:clamp(16px, 3vw, 32px);
  margin-bottom:clamp(30px, 5vw, 60px);
}
@media (max-width: 1024px) {
  .videos-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .videos-grid{
    grid-template-columns:1fr;
  }
}
.video-card{
  background:var(--white);
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 4px 12px rgba(4,29,35,.1);
  transition:all .3s ease;
}
.video-card:hover{
  box-shadow:0 8px 24px rgba(196,122,83,.15);
  transform:translateY(-4px);
}
.video-container{
  position:relative;
  width:100%;
  padding-bottom:56.25%;
  height:0;
  overflow:hidden;
  background:#000;
}
.video-container iframe{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  border:none;
}
.video-info{
  padding:clamp(16px, 3vw, 30px) clamp(12px, 3vw, 24px);
}
.video-info h3{
  font-size:clamp(0.95rem, 2.2vw, 1.3rem);
  margin-bottom:0.2em;
  color:var(--dark);
  line-height:1.3;
}
.video-subtitle{
  font-size:clamp(0.7rem, 1.6vw, 0.95rem);
  color:var(--orange);
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:1em;
}
.video-desc{
  color:var(--text-muted);
  font-size:clamp(0.85rem, 1.8vw, 1rem);
  line-height:1.7;
  margin-bottom:1.5em;
  font-style:italic;
}
.depoimentos-video-cta{
  text-align:center;
  padding:clamp(20px, 4vw, 40px) clamp(12px, 3vw, 30px);
  background:var(--dark);
  border-radius:8px;
  color:var(--white);
}
.depoimentos-video-cta p{
  font-size:clamp(1rem, 2.2vw, 1.25rem);
  margin-bottom:1.5em;
  color:var(--cream);
  line-height:1.6;
}
.depoimentos-video-cta .btn{
  font-size:clamp(0.8rem, 1.8vw, 0.95rem);
}

/* =========================================================
   Videos Carousel (Shorts)
   ========================================================= */
.videos-carousel{
  display:none;
  position:relative;
  width:100%;
  max-width:500px;
  margin:0 auto clamp(30px, 5vw, 60px);
  height:auto;
}

.videos-carousel.active{
  display:block;
}

.videos-track{
  position:relative;
  width:100%;
  height:600px;
  overflow:hidden;
  border-radius:12px;
  background:#000;
  cursor:grab;
  box-shadow:0 10px 30px rgba(0,0,0,0.3);
  transform:translateZ(0);
  touch-action:pan-y;
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}

.videos-track.dragging{
  cursor:grabbing;
}

.video-short{
  position:absolute;
  width:100%;
  height:100%;
  top:0;
  left:0;
  opacity:0;
  transition:opacity 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  display:flex;
  flex-direction:column;
  will-change:opacity;
  backface-visibility:hidden;
  perspective:1000px;
  contain:layout style paint;
}

.video-short.active{
  opacity:1;
}

.video-short.active{
  opacity:1;
}

.video-short-player{
  position:relative;
  width:100%;
  flex:1;
  background:#000;
  overflow:hidden;
}

.video-short-player iframe{
  width:100%;
  height:100%;
  border:none;
}

.video-short-info{
  background:linear-gradient(to top, rgba(0,0,0,0.9), rgba(0,0,0,0.6), transparent);
  padding:clamp(16px, 3vw, 24px);
  color:var(--white);
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  z-index:10;
}

.video-short-info .video-subtitle{
  color:var(--orange);
}

.video-short-info h3{
  color:var(--white);
  font-size:clamp(0.95rem, 2.2vw, 1.3rem);
  margin:0.5em 0 0.3em;
  line-height:1.3;
}

.video-short-info p{
  color:var(--cream);
  font-size:clamp(0.8rem, 1.8vw, 0.95rem);
  line-height:1.6;
  margin:0.5em 0 1em;
}

.carousel-indicators{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:16px;
}

.indicator{
  width:8px;
  height:8px;
  border-radius:50%;
  background:rgba(4,29,35,0.3);
  border:none;
  cursor:pointer;
  transition:all 0.3s ease;
  padding:0;
}

.indicator.active{
  background:var(--orange);
  width:24px;
  border-radius:4px;
}

@media (max-width: 640px){
  .videos-grid{
    display:none;
  }

  .videos-carousel{
    max-width:100%;
    display:block !important;
  }

  .videos-track{
    height:500px;
  }

  /* no celular mostra só o vídeo */
  .video-short-info{
    display:none;
  }
}

@media (min-width: 641px){
  .videos-carousel{
    display:none !important;
  }

  .videos-grid{
    display:grid;
  }
}

/* =========================================================
   Responsive Breakpoints
   ========================================================= */
@media (max-width: 1280px){
  .videos-grid{
    grid-template-columns:repeat(auto-fit, minmax(clamp(220px, 80vw, 350px), 1fr));
  }
}

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

@media (max-width: 1024px){
  .header-inner{
    height:clamp(60px, 10vw, 72px);
  }
}

@media (max-width: 860px){
  /* ---------- Menu mobile (drawer) ---------- */
  .site-header{ z-index:1100; }
  .header-inner{ overflow:visible; }

  .nav-toggle{ display:flex; position:relative; z-index:2; }
  .header-cta{ display:none; }
  .hero-watermark{ display:none; }

  .nav-backdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(8,20,22,.6);
    -webkit-backdrop-filter:blur(3px);
    backdrop-filter:blur(3px);
    opacity:0;
    pointer-events:none;
    transition:opacity .28s ease;
    z-index:1050;
  }
  .nav-backdrop.open{ opacity:1; pointer-events:auto; }

  .main-nav{
    position:fixed;
    top:var(--header-h, 68px);
    left:0;
    right:0;
    bottom:0;
    display:flex;
    flex:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    width:100%;
    min-width:0;
    padding:clamp(8px, 2vw, 14px) 0 calc(28px + env(safe-area-inset-bottom, 0px));
    background:var(--dark);
    border-top:1px solid rgba(196,122,83,.25);
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    z-index:1060;
    transform:translateX(100%);
    visibility:hidden;
    transition:transform .3s cubic-bezier(.4,0,.2,1), visibility 0s linear .3s;
  }
  .main-nav.open{
    transform:translateX(0);
    visibility:visible;
    transition:transform .3s cubic-bezier(.4,0,.2,1), visibility 0s;
  }

  .main-nav ul{
    display:flex;
    flex-direction:column;
    gap:0;
    width:100%;
    margin:0;
    padding:0;
    list-style:none;
    white-space:normal;
    flex-wrap:nowrap;
  }
  .main-nav li{ width:100%; }

  .main-nav a{
    display:flex;
    align-items:center;
    width:100%;
    min-height:56px;
    padding:14px clamp(20px, 5vw, 28px);
    font-size:clamp(.95rem, 3.6vw, 1.05rem);
    font-weight:600;
    letter-spacing:.06em;
    color:var(--cream);
    border-bottom:1px solid rgba(255,255,255,.07);
    transition:color .2s ease, background .2s ease, padding-left .2s ease;
  }
  .main-nav a::after{ display:none; }
  .main-nav li:last-child a{ border-bottom:none; }
  .main-nav a:hover,
  .main-nav a:active,
  .main-nav a:focus-visible{
    color:var(--orange);
    background:rgba(196,122,83,.1);
    padding-left:calc(clamp(20px, 5vw, 28px) + 6px);
  }

  .main-nav .nav-drawer-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:clamp(18px, 5vw, 26px) clamp(20px, 5vw, 28px) 0;
    padding:15px 20px;
    border-radius:999px;
    background:var(--orange);
    color:var(--dark);
    font-family:var(--font-body);
    font-weight:700;
    font-size:clamp(.82rem, 3.4vw, .95rem);
    letter-spacing:.04em;
    text-transform:uppercase;
    text-align:center;
    box-shadow:0 8px 20px rgba(196,122,83,.28);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .main-nav .nav-drawer-cta:active{
    transform:scale(.97);
    box-shadow:0 4px 12px rgba(196,122,83,.28);
  }

  /* entrada escalonada dos itens */
  .main-nav li,
  .main-nav .nav-drawer-cta{
    opacity:0;
    transform:translateY(10px);
  }
  .main-nav.open li,
  .main-nav.open .nav-drawer-cta{
    opacity:1;
    transform:translateY(0);
    transition:opacity .28s ease, transform .28s ease;
  }
  .main-nav.open li:nth-child(1){ transition-delay:.06s; }
  .main-nav.open li:nth-child(2){ transition-delay:.10s; }
  .main-nav.open li:nth-child(3){ transition-delay:.14s; }
  .main-nav.open li:nth-child(4){ transition-delay:.18s; }
  .main-nav.open li:nth-child(5){ transition-delay:.22s; }
  .main-nav.open .nav-drawer-cta{ transition-delay:.26s; }

  .quem-somos-grid{
    grid-template-columns:1fr;
  }
  .quem-somos-media{
    order:-1;
    aspect-ratio:16/10;
  }
  .servicos-grid{
    grid-template-columns:repeat(auto-fit, minmax(clamp(200px, 80vw, 320px), 1fr));
  }
  .stats-grid{
    grid-template-columns:repeat(2, 1fr);
  }
  .timeline{
    grid-template-columns:repeat(7, 1fr);
    max-width:100%;
  }
  .depoimentos-grid{
    grid-template-columns:1fr;
  }
  .cta-final-inner{
    grid-template-columns:1fr;
  }
  .footer-inner{
    grid-template-columns:repeat(2, 1fr);
  }
  .blog-grid{
    grid-template-columns:1fr;
  }
  .form-row{
    flex-direction:column;
  }
  .depoimentos-head,
  .servicos-head,
  .section-head{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (max-width: 640px){
  .hero{
    min-height:clamp(400px, 60vh, 600px);
  }
  .hero-actions{
    flex-direction:column;
  }
  .hero-actions .btn{
    width:100%;
    min-height:48px;
  }
  .stats-grid{
    grid-template-columns:1fr;
  }
  .timeline{
    grid-template-columns:1fr;
    grid-auto-rows:auto;
    gap:clamp(24px, 4vw, 36px);
    row-gap:clamp(24px, 4vw, 36px);
  }
  .timeline-step:nth-child(odd),
  .timeline-step:nth-child(even){
    grid-row:auto;
  }
  .timeline-step:nth-child(1),
  .timeline-step:nth-child(2),
  .timeline-step:nth-child(3),
  .timeline-step:nth-child(4),
  .timeline-step:nth-child(5),
  .timeline-step:nth-child(6),
  .timeline-step:nth-child(7){
    grid-column:1;
  }
  .timeline::before{
    display:none !important;
  }
  .footer-inner{
    grid-template-columns:1fr;
  }
  .insta-grid{
    grid-template-columns:repeat(auto-fit, minmax(clamp(80px, 20vw, 120px), 1fr));
  }
  .cta-final-text{
    flex-direction:column;
  }
  .videos-grid{
    gap:clamp(12px, 2vw, 24px);
  }
  .depoimentos-video-head h2{
    font-size:clamp(1.3rem, 4vw, 1.8rem);
  }
  .video-info{
    padding:clamp(12px, 2vw, 20px);
  }
  .container{
    padding:0 clamp(12px, 3vw, 18px);
  }
  .hero-watermark{ display:none; }
  .destaques{
    grid-template-columns:1fr;
  }
  .destaque-content{
    justify-content:center;
    text-align:center;
  }
  .destaque-content .eyebrow{
    display:block;
  }
  .destaque-content h3{
    text-align:center;
  }
  .destaque-content p{
    text-align:center;
  }
  .destaque-content .btn{
    align-self:center;
  }
  .banner-content{
    text-align:center;
    max-width:100%;
  }
}

@media (max-width: 420px){
  .header-inner{
    flex-wrap:wrap;
    height:auto;
    min-height:clamp(56px, 10vw, 68px);
    padding:clamp(8px, 2vw, 12px);
    gap:clamp(8px, 2vw, 12px);
  }
  .brand-text{
    font-size:clamp(0.65rem, 1.5vw, 0.85rem);
  }
  .brand-icon{
    width:clamp(28px, 5vw, 36px);
    height:clamp(28px, 5vw, 36px);
  }
  .btn{
    width:100%;
    justify-content:center;
    font-size:clamp(0.85rem, 2vw, 0.95rem);
  }
  h1{ font-size:clamp(1.4rem, 5vw, 2rem); line-height:1.2; }
  h2{ font-size:clamp(1.2rem, 4vw, 1.8rem); line-height:1.2; }
  h3{ font-size:clamp(0.95rem, 2.5vw, 1.2rem); }
  .hero-sub{ font-size:clamp(0.85rem, 2vw, 1rem); line-height:1.6; }
  .hero{ min-height:clamp(350px, 50vh, 500px); }
  .stats-grid{ grid-template-columns:1fr; gap:clamp(16px, 3vw, 24px); }
  .timeline{
    grid-template-columns:1fr;
    gap:clamp(16px, 3vw, 24px);
    max-width:100%;
  }
  .timeline-step:nth-child(5),
  .timeline-step:nth-child(6),
  .timeline-step:nth-child(7){
    grid-column:auto;
  }
  .destaques{ grid-template-columns:1fr; gap:clamp(16px, 3vw, 24px); }
  .destaque-card{ min-height:clamp(250px, 40vw, 350px); }
  .container{ padding:0 clamp(12px, 3vw, 16px); }
}

@media (max-width: 360px){
  h1{ font-size:clamp(1.2rem, 4vw, 1.8rem); }
  h2{ font-size:clamp(1rem, 3.5vw, 1.6rem); }
  .btn{ padding:clamp(10px, 2vw, 14px) clamp(16px, 3vw, 24px); }
  .container{ padding:0 clamp(10px, 2.5vw, 12px); }
}

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

/* ===================== CTA SERVIÇOS CARDS ===================== */
.cta-servicos-grid{
  display:grid;
  /* minmax(0,…) e não 1fr: senão o botão, que é nowrap, alarga a própria coluna */
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:clamp(20px, 4vw, 40px);
  margin-top:clamp(40px, 6vw, 60px);
}
.cta-servico-card{
  border:2px solid var(--orange);
  border-radius:var(--radius);
  padding:clamp(32px, 5vw, 50px);
  background:rgba(255,255,255,.02);
  display:flex;
  flex-direction:column;
  gap:clamp(24px, 4vw, 32px);
  transition:all .3s ease;
}
.cta-servico-card:hover{
  border-color:var(--orange-light);
  box-shadow:0 8px 32px rgba(196,122,83,.15);
}
.cta-servico-card h3{
  font-size:clamp(1.15rem, 2.6vw, 1.45rem);
  color:var(--white);
  margin:0;
  line-height:1.3;
  letter-spacing:.02em;
  font-weight:400;
  text-align:left;
}
.cta-servico-card h3 strong{
  color:var(--orange);
  font-weight:700;
}

/* Lista com marcadores (formato aprovado pelo cliente) */
.cta-servico-lista{
  display:flex;
  flex-direction:column;
  gap:clamp(12px, 2.2vw, 16px);
  margin:0;
  padding:0;
  list-style:none;
  flex-grow:1;
}
.cta-servico-lista li{
  position:relative;
  padding-left:22px;
  color:rgba(255,255,255,.9);
  font-size:clamp(.92rem, 1.9vw, 1rem);
  line-height:1.5;
}
.cta-servico-lista li::before{
  content:'';
  position:absolute;
  left:4px;
  top:.6em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--orange);
}
.cta-servico-lista .rotulo{
  font-style:italic;
  color:rgba(255,255,255,.75);
}
.cta-servico-lista .valor{
  color:var(--white);
  font-weight:600;
}

.cta-servico-card .btn{
  margin-top:auto;
  font-size:clamp(.85rem, 1.8vw, .95rem);
  white-space:normal;
  text-align:center;
}
.cta-servico-card .btn:disabled{
  background:var(--text-muted);
  border-color:transparent;
  color:var(--white);
  cursor:not-allowed;
  opacity:.7;
}

/* ===================== MODAL ===================== */
/* Legacy modal - kept for backward compatibility */
.modal{
  position:fixed;
  z-index:1000;
  left:0;
  top:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,.7);
  display:none;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
}
.modal.active{
  display:flex;
  opacity:1;
  pointer-events:auto;
}
.modal-content{
  background:var(--cream);
  padding:clamp(30px, 5vw, 50px);
  border-radius:var(--radius);
  max-width:500px;
  width:90%;
  max-height:90vh;
  overflow-y:auto;
  position:relative;
  z-index:1001;
  animation:slideUp .3s ease;
  box-shadow:0 20px 60px rgba(0,0,0,0.3);
}

/* Native dialog element styling */
dialog {
  border: none;
  border-radius: 12px;
  padding: clamp(30px, 5vw, 40px);
  max-width: min(500px, 90vw);
  width: 90%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
  animation: slideDown 0.3s ease;
  max-height: 90vh;
  overflow-y: auto;
}

dialog::backdrop {
  background: rgba(0, 0, 0, 0.3);
  animation: fadeIn 0.3s ease;
}

@media (max-width: 640px) {
  dialog {
    max-width: min(400px, 95vw);
    padding: clamp(24px, 4vw, 32px);
  }
  .cta-servicos-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {
  dialog {
    max-width: min(340px, 95vw);
    padding: clamp(20px, 3vw, 28px);
  }
  dialog .modal-header h2 {
    font-size: clamp(1.3rem, 4vw, 1.6rem);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.modal-close{
  position:absolute;
  right:20px;
  top:15px;
  font-size:28px;
  font-weight:bold;
  color:var(--text-muted);
  cursor:pointer;
  transition:color .2s ease;
}
.modal-close:hover{
  color:var(--text-dark);
}
.modal-content h2{
  margin-top:0;
  margin-bottom:clamp(20px, 4vw, 30px);
  color:var(--text-dark);
}
.modal-content .form-group{
  margin-bottom:clamp(16px, 3vw, 20px);
}
.modal-content label{
  display:block;
  margin-bottom:8px;
  font-weight:600;
  color:var(--text-dark);
  font-size:clamp(0.9rem, 1.8vw, 1rem);
}
.modal-content input{
  width:100%;
  padding:clamp(10px, 2vw, 14px);
  border:1px solid var(--border-soft);
  border-radius:var(--radius);
  font-size:clamp(0.9rem, 1.8vw, 1rem);
  font-family:var(--font-body);
}
.modal-content input:focus{
  outline:none;
  border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(196,122,83,.1);
}
.modal-content select{
  width:100%;
  padding:clamp(10px, 2vw, 14px);
  border:1px solid var(--border-soft);
  border-radius:var(--radius);
  font-size:clamp(0.9rem, 1.8vw, 1rem);
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--text-dark);
  cursor:pointer;
}
.modal-content select:focus{
  outline:none;
  border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(196,122,83,.1);
}
.modal-content button[type="submit"]{
  width:100%;
  padding:clamp(12px, 2.5vw, 16px);
  background:var(--orange);
  color:var(--white);
  border:none;
  border-radius:var(--radius);
  font-size:clamp(0.9rem, 2vw, 1rem);
  font-weight:700;
  cursor:pointer;
  transition:all 0.3s ease;
  text-transform:uppercase;
  letter-spacing:0.5px;
}
.modal-content button[type="submit"]:hover{
  background:var(--orange-dark);
  transform:translateY(-2px);
}
.modal-content button[type="submit"]:disabled{
  background:#999;
  cursor:not-allowed;
  transform:none;
}
@keyframes fadeIn{
  from{ opacity:0; }
  to{ opacity:1; }
}
@keyframes slideUp{
  from{ transform:translateY(30px); opacity:0; }
  to{ transform:translateY(0); opacity:1; }
}

@media (prefers-color-scheme: dark) {
  body{ background:var(--dark-2); }
  .contato-form{ background:var(--dark); color:var(--white); }
  .contato-form input, .contato-form textarea{ background:var(--dark-2); color:var(--white); border-color:rgba(196,122,83,.25); }
  .modal-content{ background:var(--dark); color:var(--white); }
  .modal-content h2{ color:var(--white); }
  .modal-content label{ color:var(--white); }
  .modal-content input{ background:var(--dark-2); color:var(--white); border-color:rgba(196,122,83,.25); }
  .modal-content select{ background:var(--dark-2); color:var(--white); border-color:rgba(196,122,83,.25); }
}


/* =========================================================
   Camada de acabamento
   Profundidade, foco acessivel, micro-interacoes e reveal
   ========================================================= */
:root{
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);

  --shadow-sm: 0 1px 2px rgba(4,29,35,.06), 0 2px 8px rgba(4,29,35,.05);
  --shadow-md: 0 4px 10px rgba(4,29,35,.07), 0 12px 28px rgba(4,29,35,.08);
  --shadow-lg: 0 10px 24px rgba(4,29,35,.10), 0 28px 60px rgba(4,29,35,.12);
  --shadow-orange: 0 10px 30px rgba(196,122,83,.22);
}

/* ---------- Selecao de texto na cor da marca ---------- */
::selection{ background:var(--orange); color:var(--white); }

/* ---------- Foco visivel e consistente (teclado) ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:3px;
  border-radius:4px;
}
.site-header a:focus-visible,
.main-nav a:focus-visible{ outline-offset:2px; }

/* ---------- Barra de rolagem discreta ---------- */
@supports selector(::-webkit-scrollbar){
  ::-webkit-scrollbar{ width:10px; height:10px; }
  ::-webkit-scrollbar-track{ background:transparent; }
  ::-webkit-scrollbar-thumb{
    background:rgba(196,122,83,.45);
    border-radius:999px;
    border:2px solid transparent;
    background-clip:content-box;
  }
  ::-webkit-scrollbar-thumb:hover{ background:rgba(196,122,83,.7); background-clip:content-box; }
}
html{ scrollbar-color:rgba(196,122,83,.5) transparent; scrollbar-width:thin; }

/* ---------- Botoes: micro-interacao ---------- */
.btn{
  transition:transform .18s var(--ease-out),
             box-shadow .25s var(--ease-out),
             background-color .2s ease,
             border-color .2s ease,
             color .2s ease;
  will-change:transform;
}
.btn:hover:not(:disabled){ transform:translateY(-2px); }
.btn:active:not(:disabled){ transform:translateY(0) scale(.985); }
.btn-primary:hover:not(:disabled){ box-shadow:var(--shadow-orange); }
.btn:disabled{ transform:none !important; }

/* ---------- Cards: elevacao coerente ---------- */
.cta-servico-card{
  transition:transform .35s var(--ease-out),
             box-shadow .35s var(--ease-out),
             border-color .3s ease,
             background-color .3s ease;
}
.cta-servico-card:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 44px rgba(0,0,0,.28), 0 0 0 1px rgba(196,122,83,.25);
}

.video-card{
  transition:transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}
.video-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }

.instagram-post{
  transition:transform .35s var(--ease-out),
             box-shadow .35s var(--ease-out),
             border-color .3s ease;
}
.instagram-post:hover{
  transform:translateY(-5px);
  border-color:rgba(196,122,83,.5);
  box-shadow:0 16px 40px rgba(0,0,0,.3);
}

.timeline-step{
  transition:transform .3s var(--ease-out);
}
.timeline-step:hover{ transform:translateY(-4px); }
.timeline-icon{ transition:transform .3s var(--ease-out), border-color .3s ease, color .3s ease; }
.timeline-step:hover .timeline-icon{ transform:scale(1.08); border-color:var(--orange); }

.stat-item{ transition:transform .3s var(--ease-out); }
.stat-item:hover{ transform:translateY(-3px); }

/* ---------- Detalhe sob os titulos de secao ---------- */
.eyebrow{ position:relative; }
.servicos-head h2::after,
.section-head h2::after{
  content:'';
  display:block;
  width:56px;
  height:2px;
  margin:clamp(12px, 2vw, 18px) auto 0;
  background:linear-gradient(90deg, transparent, var(--orange), transparent);
}

/* ---------- Reveal ao rolar ---------- */
.js-reveal .stat-item,
.js-reveal .quem-somos-text,
.js-reveal .quem-somos-media,
.js-reveal .servicos-head,
.js-reveal .section-head,
.js-reveal .cta-servico-card,
.js-reveal .servico-card,
.js-reveal .timeline-step,
.js-reveal .depoimento-card,
.js-reveal .video-card,
.js-reveal .instagram-head,
.js-reveal .instagram-post,
.js-reveal .cta-final-text,
.js-reveal .cta-final-form{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);
}
.js-reveal .is-visible{
  opacity:1 !important;
  transform:none !important;
}

/* escalonamento entre irmaos da mesma faixa */
.js-reveal .is-visible:nth-child(2){ transition-delay:.08s; }
.js-reveal .is-visible:nth-child(3){ transition-delay:.16s; }
.js-reveal .is-visible:nth-child(4){ transition-delay:.24s; }
.js-reveal .is-visible:nth-child(5){ transition-delay:.30s; }

/* ---------- Respeita quem pediu menos movimento ---------- */
@media (prefers-reduced-motion: reduce){
  .js-reveal .stat-item,
  .js-reveal .quem-somos-text,
  .js-reveal .quem-somos-media,
  .js-reveal .servicos-head,
  .js-reveal .section-head,
  .js-reveal .cta-servico-card,
  .js-reveal .servico-card,
  .js-reveal .timeline-step,
  .js-reveal .depoimento-card,
  .js-reveal .video-card,
  .js-reveal .instagram-head,
  .js-reveal .instagram-post,
  .js-reveal .cta-final-text,
  .js-reveal .cta-final-form{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .btn:hover:not(:disabled),
  .btn:active:not(:disabled),
  .cta-servico-card:hover,
  .video-card:hover,
  .instagram-post:hover,
  .timeline-step:hover,
  .timeline-step:hover .timeline-icon,
  .stat-item:hover{
    transform:none !important;
  }
}

/* =========================================================
   Consentimento de cookies
   ========================================================= */
.cookie-banner{
  position:fixed;
  left:50%;
  bottom:0;
  z-index:1200;
  width:min(1080px, calc(100% - 24px));
  transform:translate(-50%, 120%);
  opacity:0;
  transition:transform .4s var(--ease-out), opacity .3s ease;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:clamp(14px, 3vw, 28px);
  margin-bottom:clamp(12px, 2vw, 20px);
  padding:clamp(18px, 3vw, 26px) clamp(18px, 3vw, 30px);
  background:var(--dark);
  color:var(--cream);
  border:1px solid rgba(196,122,83,.35);
  border-radius:var(--radius);
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}
.cookie-banner.visivel{
  transform:translate(-50%, 0);
  opacity:1;
}
.cookie-banner-texto{
  flex:1 1 320px;
  min-width:0;
}
.cookie-banner-texto strong{
  display:block;
  color:var(--white);
  font-size:clamp(1rem, 2.2vw, 1.1rem);
  margin-bottom:.4em;
}
.cookie-banner-texto p{
  margin:0;
  font-size:clamp(.85rem, 1.8vw, .93rem);
  line-height:1.65;
  color:rgba(255,255,255,.82);
}
.cookie-banner-texto a{
  color:var(--orange);
  text-decoration:underline;
}
.cookie-banner-acoes{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

.btn-cookie{
  font-family:inherit;
  font-size:clamp(.8rem, 1.7vw, .88rem);
  font-weight:600;
  letter-spacing:.02em;
  padding:12px 22px;
  min-height:44px;
  border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s var(--ease-out), background-color .2s ease,
             border-color .2s ease, color .2s ease;
}
.btn-cookie:hover{ transform:translateY(-2px); }
.btn-cookie:active{ transform:translateY(0) scale(.985); }

.btn-cookie-primario{
  background:var(--orange);
  color:var(--white);
}
.btn-cookie-primario:hover{ background:#b3673f; }

.btn-cookie-secundario{
  background:transparent;
  color:var(--cream);
  border-color:rgba(255,255,255,.4);
}
.btn-cookie-secundario:hover{ border-color:var(--cream); }

.btn-cookie-texto{
  background:transparent;
  color:rgba(255,255,255,.75);
  text-decoration:underline;
  padding-left:8px;
  padding-right:8px;
}
.btn-cookie-texto:hover{ color:var(--white); }

/* ---------- Painel de preferências ---------- */
.cookie-painel{
  width:min(560px, calc(100% - 32px));
  max-height:86vh;
  overflow-y:auto;
  padding:clamp(22px, 4vw, 34px);
  border:1px solid rgba(196,122,83,.35);
  border-radius:var(--radius);
  background:var(--dark);
  color:var(--cream);
}
.cookie-painel::backdrop{
  background:rgba(4,29,35,.72);
}
.cookie-painel h2{
  margin:0 0 .3em;
  color:var(--white);
  font-size:clamp(1.2rem, 3vw, 1.5rem);
}
.cookie-painel-intro{
  margin:0 0 clamp(18px, 3vw, 24px);
  font-size:clamp(.85rem, 1.8vw, .93rem);
  line-height:1.65;
  color:rgba(255,255,255,.78);
}
.cookie-categoria{
  padding:clamp(14px, 2.4vw, 18px) 0;
  border-top:1px solid rgba(255,255,255,.12);
}
.cookie-categoria-topo{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:.5em;
}
.cookie-categoria-topo strong{ color:var(--white); }
.cookie-categoria label{ cursor:pointer; }
.cookie-categoria p{
  margin:0;
  font-size:clamp(.8rem, 1.7vw, .88rem);
  line-height:1.6;
  color:rgba(255,255,255,.72);
}
.cookie-sempre{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--orange);
}
.cookie-categoria input[type="checkbox"]{
  width:20px;
  height:20px;
  accent-color:var(--orange);
  cursor:pointer;
  flex-shrink:0;
}
.cookie-painel-acoes{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  margin-top:clamp(20px, 3vw, 26px);
  padding-top:clamp(16px, 2.5vw, 20px);
  border-top:1px solid rgba(255,255,255,.12);
}

@media (max-width: 640px){
  .cookie-banner{
    flex-direction:column;
    align-items:stretch;
    text-align:left;
  }
  .cookie-banner-acoes{
    justify-content:stretch;
  }
  .cookie-banner-acoes .btn-cookie{
    flex:1 1 auto;
  }
  .cookie-painel-acoes .btn-cookie{
    flex:1 1 100%;
  }
}

@media (prefers-reduced-motion: reduce){
  .cookie-banner{ transition:opacity .2s ease; transform:translate(-50%, 0); }
  .btn-cookie:hover, .btn-cookie:active{ transform:none; }
}

/* =========================================================
   Páginas de documento legal (termos, privacidade)
   ========================================================= */
.doc-legal{
  background:var(--dark);
  color:var(--cream);
  padding:clamp(30px, 6vw, 60px) 0 clamp(50px, 8vw, 80px);
}
.doc-legal-inner{
  max-width:820px;
}
.doc-trilha{
  font-size:.85rem;
  color:rgba(255,255,255,.55);
  margin-bottom:clamp(20px, 4vw, 32px);
}
.doc-trilha a{ color:var(--orange); }
.doc-trilha span{ margin:0 .5em; }

.doc-cabecalho{
  padding-bottom:clamp(24px, 4vw, 36px);
  border-bottom:1px solid rgba(255,255,255,.12);
  margin-bottom:clamp(24px, 4vw, 36px);
}
.doc-cabecalho h1{
  color:var(--white);
  font-size:clamp(1.8rem, 5vw, 2.8rem);
  margin:.2em 0 .3em;
  text-align:left;
}
.doc-atualizado{
  color:var(--orange);
  font-size:.88rem;
  margin:0 0 1em;
}
.doc-resumo{
  font-size:clamp(.95rem, 2vw, 1.05rem);
  line-height:1.75;
  color:rgba(255,255,255,.82);
  margin:0;
  max-width:62ch;
}

.doc-indice{
  padding:clamp(20px, 3.5vw, 28px);
  margin-bottom:clamp(30px, 5vw, 48px);
  background:rgba(255,255,255,.04);
  border:1px solid rgba(196,122,83,.25);
  border-radius:var(--radius);
}
.doc-indice h2{
  margin:0 0 .8em;
  font-size:.82rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--orange);
}
.doc-indice ol{
  margin:0;
  padding-left:1.3em;
  columns:2;
  column-gap:clamp(20px, 4vw, 40px);
}
.doc-indice li{
  margin-bottom:.5em;
  break-inside:avoid;
  font-size:.9rem;
}
.doc-indice a{
  color:rgba(255,255,255,.85);
  text-decoration:none;
}
.doc-indice a:hover{
  color:var(--orange);
  text-decoration:underline;
}

.doc-legal section{
  margin-bottom:clamp(30px, 5vw, 44px);
  scroll-margin-top:90px;
}
.doc-legal section h2{
  color:var(--white);
  font-size:clamp(1.15rem, 2.8vw, 1.45rem);
  margin:0 0 .7em;
  text-align:left;
}
.doc-legal p{
  line-height:1.8;
  font-size:clamp(.92rem, 1.9vw, 1rem);
  margin:0 0 1em;
  color:rgba(255,255,255,.82);
}
.doc-legal ul{
  margin:0 0 1em;
  padding-left:1.3em;
}
.doc-legal li{
  margin-bottom:.6em;
  line-height:1.7;
  font-size:clamp(.9rem, 1.85vw, .98rem);
  color:rgba(255,255,255,.82);
}
.doc-legal strong{ color:var(--white); }
.doc-legal a{
  color:var(--orange);
  text-decoration:underline;
}

.doc-aviso{
  padding:clamp(14px, 2.5vw, 18px);
  background:rgba(196,122,83,.1);
  border-left:3px solid var(--orange);
  border-radius:6px;
}

.doc-voltar{
  margin-top:clamp(30px, 5vw, 48px);
  padding-top:clamp(20px, 3vw, 28px);
  border-top:1px solid rgba(255,255,255,.12);
}

.doc-rodape{
  background:var(--dark);
  color:rgba(255,255,255,.6);
  padding:clamp(24px, 4vw, 36px) 0;
  border-top:1px solid rgba(255,255,255,.1);
  text-align:center;
  font-size:.88rem;
}
.doc-rodape a{ color:var(--orange); }
.doc-rodape p{ margin:0 0 .5em; }
.doc-rodape span{ margin:0 .6em; opacity:.4; }
.doc-rodape-marca{ opacity:.55; }

@media (max-width: 640px){
  .doc-indice ol{ columns:1; }
}
