/* ==========================================================================
   WT AUDIOVISUAL — Locação com operação
   Site estático. Sem build, sem dependência externa, sem CDN.
   Paleta: preto cinema + âmbar tungstênio.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  --bg:            #08090a;
  --bg-2:          #0d0f11;
  --surface:       #121518;
  --surface-2:     #171b1f;
  --line:          rgba(255,255,255,.09);
  --line-strong:   rgba(255,255,255,.16);

  --text:          #f1f3f5;
  --text-2:        #b9c0c7;
  --muted:         #868e96;

  --accent:        #d8a24a;
  --accent-hi:     #e8b866;
  --accent-soft:   rgba(216,162,74,.12);
  --accent-line:   rgba(216,162,74,.35);

  --wa:            #25d366;

  --r-sm: 6px;
  --r:    12px;
  --r-lg: 18px;

  --wrap: 1160px;
  --gut:  clamp(20px, 5vw, 48px);

  --sans: "Helvetica Neue", Helvetica, "Inter", "SF Pro Text", -apple-system,
          BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow: 0 24px 60px -20px rgba(0,0,0,.85);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:88px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ margin:0; line-height:1.08; letter-spacing:-.025em; font-weight:700; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button,input,select,textarea{ font:inherit; color:inherit; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--accent); color:#08090a; padding:12px 20px; border-radius:0 0 var(--r-sm) 0;
  font-weight:700;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:3px; }

/* ---------- Tipografia utilitária ---------- */
.eyebrow{
  font-size:12px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--accent); font-weight:700; margin-bottom:18px;
}
.hl{ color:var(--accent); }
.lede{ color:var(--text-2); font-size:clamp(17px,1.9vw,20px); line-height:1.6; }

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .35s var(--ease), border-color .35s var(--ease), backdrop-filter .35s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.is-stuck{
  background:rgba(8,9,10,.82);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom-color:var(--line);
}
.header-inner{ display:flex; align-items:center; gap:24px; height:72px; }

.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; }
.brand-mark{
  display:grid; place-items:center; width:40px; height:40px; flex:none;
  border:1px solid var(--accent-line); border-radius:var(--r-sm);
  background:var(--accent-soft);
  color:var(--accent); font-weight:800; font-size:15px; letter-spacing:.04em;
}
.brand-text{ display:flex; flex-direction:column; line-height:1.25; white-space:nowrap; }
.brand-text strong{ font-size:15px; letter-spacing:.01em; }
.brand-text small{ font-size:11.5px; color:var(--muted); letter-spacing:.06em; }

.nav{ display:flex; align-items:center; gap:6px; }
.nav a{
  text-decoration:none; font-size:14.5px; color:var(--text-2); white-space:nowrap;
  padding:9px 14px; border-radius:var(--r-sm);
  transition:color .2s var(--ease), background .2s var(--ease);
}
.nav a:hover{ color:var(--text); background:rgba(255,255,255,.05); }
.nav a.is-active{ color:var(--accent); }
.nav .nav-cta{
  color:#08090a; background:var(--accent); font-weight:700; margin-left:8px;
}
.nav .nav-cta:hover{ background:var(--accent-hi); color:#08090a; }
/* o scrollspy não pode pintar o texto do CTA de âmbar sobre âmbar */
.nav .nav-cta.is-active{ color:#08090a; background:var(--accent-hi); }

.nav-toggle{
  display:none; width:44px; height:44px; background:none; border:1px solid var(--line);
  border-radius:var(--r-sm); cursor:pointer; padding:0;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.nav-toggle span{ display:block; width:18px; height:1.5px; background:var(--text); transition:.3s var(--ease); }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* ---------- Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 28px; border-radius:var(--r-sm); border:1px solid transparent;
  font-size:15px; font-weight:700; letter-spacing:.01em;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:transform .18s var(--ease), background .22s var(--ease),
             border-color .22s var(--ease), color .22s var(--ease), box-shadow .22s var(--ease);
}
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:var(--accent); color:#08090a; box-shadow:0 10px 30px -12px rgba(216,162,74,.6); }
.btn-primary:hover{ background:var(--accent-hi); box-shadow:0 14px 36px -12px rgba(216,162,74,.75); }
.btn-ghost{ border-color:var(--line-strong); color:var(--text); background:transparent; }
.btn-ghost:hover{ border-color:var(--accent-line); color:var(--accent); background:var(--accent-soft); }
.btn-block{ width:100%; }
.btn-wa svg{ flex:none; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px; margin-top:auto; padding-top:22px;
  color:var(--accent); text-decoration:none; font-size:14.5px; font-weight:700;
}
.link-arrow::after{ content:"→"; transition:transform .2s var(--ease); }
.link-arrow:hover::after{ transform:translateX(4px); }

/* ---------- Hero ---------- */
.hero{
  position:relative; isolation:isolate;
  min-height:100svh; display:flex; align-items:center;
  padding:120px 0 96px;
  overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(120% 90% at 78% 12%,  rgba(216,162,74,.20), transparent 55%),
    radial-gradient(90%  70% at 12% 88%,  rgba(60,110,180,.14), transparent 60%),
    linear-gradient(180deg, #0b0d0f 0%, #08090a 55%, #060708 100%);
}
/* Se existir assets/img/hero.jpg, o JS adiciona .has-photo: a foto entra como base
   e o ::after é o breu por cima, mais forte à esquerda, onde fica o texto. */
/* A foto vive num painel à direita e some por esfumado — o texto fica no breu
   da esquerda, sem disputar com o rosto do operador. */
.hero-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
  filter:contrast(1.06) saturate(.95);
}
/* com vídeo rodando, o painel de foto sai de cena */
.hero-bg.has-video::before{ content:none !important; }
.hero-bg.has-photo::before{
  content:""; position:absolute; inset:0 0 0 36%; z-index:1;
  background-image:var(--hero-photo);
  background-size:cover; background-position:58% center;
  filter:contrast(1.05) saturate(.92);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 30%, #000 100%);
          mask-image:linear-gradient(90deg, transparent 0%, #000 30%, #000 100%);
}
.hero-bg::after{
  content:""; position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(96deg, rgba(6,7,8,.93) 0%, rgba(6,7,8,.78) 34%,
                           rgba(6,7,8,.34) 62%, rgba(6,7,8,.14) 100%),
    linear-gradient(180deg, rgba(6,7,8,.52) 0%, transparent 26%, rgba(6,7,8,.80) 100%);
}
.hero-grain{
  position:absolute; inset:0; z-index:-1; opacity:.05; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero::before,.hero::after{
  content:""; position:absolute; left:0; right:0; height:clamp(28px,6vh,64px);
  z-index:2; pointer-events:none; background:var(--bg);
}
.hero::before{ top:0; }
.hero::after{ bottom:0; }

.hero-inner{ position:relative; z-index:3; }
.hero h1{
  font-size:clamp(38px,6.4vw,74px);
  max-width:19ch;
  margin-bottom:26px;
}
.hero .lede{ max-width:60ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }
.hero-note{ margin-top:18px; font-size:13.5px; color:var(--muted); letter-spacing:.03em; }

.hero-facts{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px;
  margin-top:56px; background:var(--line); border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden;
}
.hero-facts li{
  background:rgba(10,12,14,.72); backdrop-filter:blur(6px);
  padding:20px 22px; display:flex; flex-direction:column; gap:4px;
}
.hero-facts strong{ font-size:19px; letter-spacing:-.015em; }
.hero-facts span{ font-size:12.5px; color:var(--muted); letter-spacing:.04em; }

.scroll-cue{
  position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
  z-index:4; width:26px; height:42px; border:1px solid var(--line-strong);
  border-radius:14px; display:grid; place-items:start center; padding-top:8px;
}
.scroll-cue span{
  width:3px; height:8px; border-radius:2px; background:var(--accent);
  animation:cue 1.9s var(--ease) infinite;
}
@keyframes cue{ 0%,100%{ transform:translateY(0); opacity:1 } 50%{ transform:translateY(12px); opacity:.2 } }

/* ---------- Seções ---------- */
.section{ padding:clamp(88px,11vw,148px) 0; position:relative; }
.section-alt{ background:var(--bg-2); border-block:1px solid var(--line); }
.section-head{ max-width:66ch; margin-bottom:clamp(44px,6vw,72px); }
.section-head h2{ font-size:clamp(29px,4.1vw,46px); margin-bottom:20px; max-width:22ch; }
.section-lede{ color:var(--text-2); font-size:clamp(16px,1.6vw,18.5px); }

/* ---------- Cards (modalidades) ---------- */
.cards-2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.card{
  display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,3.2vw,38px);
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.card:hover{ border-color:var(--line-strong); transform:translateY(-3px); box-shadow:var(--shadow); }
.card-featured{
  background:linear-gradient(160deg, rgba(216,162,74,.09), rgba(18,21,24,1) 42%);
  border-color:var(--accent-line);
}
.card-tag{
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin-bottom:12px;
}
.card-featured .card-tag{ color:var(--accent); }
.card h3{ font-size:clamp(23px,2.6vw,29px); margin-bottom:14px; }
.card > p{ color:var(--text-2); font-size:16px; }

.ticks{ display:flex; flex-direction:column; gap:11px; margin-top:24px; }
.ticks li{
  position:relative; padding-left:26px; font-size:15px; color:var(--text-2);
}
.ticks li::before{
  content:""; position:absolute; left:2px; top:.55em;
  width:9px; height:5px; border-left:1.5px solid var(--accent); border-bottom:1.5px solid var(--accent);
  transform:rotate(-45deg);
}

/* ---------- Público ---------- */
.publico{ margin-top:clamp(48px,6vw,80px); }
.publico-title{
  font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted);
  font-weight:700; padding-bottom:18px; border-bottom:1px solid var(--line); margin-bottom:0;
}
.publico-list{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }
.publico-list li{
  padding:28px 26px 28px 0; border-bottom:1px solid var(--line);
}
.publico-num{
  display:block; font-size:12px; letter-spacing:.14em; color:var(--accent); margin-bottom:12px; font-weight:700;
}
.publico-list strong{ display:block; font-size:17px; margin-bottom:7px; letter-spacing:-.01em; }
.publico-list p{ font-size:14.5px; color:var(--muted); line-height:1.55; }

/* ---------- Equipamentos ---------- */
.gear{ display:grid; gap:22px; }
.gear-hero{
  display:grid; grid-template-columns:.72fr 1fr; gap:0;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden;
}
.gear-hero-media{
  position:relative; min-height:440px; /* foto do kit é vertical */
  background:
    radial-gradient(80% 80% at 50% 40%, rgba(216,162,74,.10), transparent 70%),
    linear-gradient(150deg,#15181c,#0c0e10);
  background-size:cover; background-position:center;
  display:grid; place-items:center;
  border-right:1px solid var(--line);
}
.gear-hero-media.has-photo .media-placeholder{ display:none; }
.media-placeholder{
  display:flex; flex-direction:column; align-items:center; gap:6px;
  font-size:13px; color:var(--muted); letter-spacing:.06em; text-align:center;
  border:1px dashed var(--line-strong); border-radius:var(--r); padding:20px 26px;
}
.media-placeholder small{ font-size:11px; opacity:.65; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:0; }
.gear-hero-body{ padding:clamp(28px,3.4vw,44px); display:flex; flex-direction:column; justify-content:center; }
.gear-hero-body h3{ font-size:clamp(26px,3vw,34px); margin-bottom:14px; }
.gear-hero-body p{ color:var(--text-2); font-size:16px; }

.gear-list{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.gear-list li{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r);
  padding:26px 24px;
  transition:border-color .3s var(--ease), transform .3s var(--ease);
}
.gear-list li:hover{ border-color:var(--accent-line); transform:translateY(-3px); }
.gear-list strong{
  display:block; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent); margin-bottom:12px;
}
.gear-list span{ font-size:15px; color:var(--text-2); line-height:1.55; }

/* ---------- Portfólio ---------- */
.portfolio-grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px; grid-auto-flow:dense;
}
/* destaque ocupa duas colunas */
.pf-destaque{ grid-column:span 2; aspect-ratio:1/1 !important; }
.pf-item{
  position:relative; display:block; text-decoration:none;
  /* retrato: as fotos de set vêm todas na vertical do iPhone */
  aspect-ratio:3/4; border-radius:var(--r); overflow:hidden;
  border:1px solid var(--line); background:linear-gradient(150deg,#15181c,#0b0d0f);
  transition:border-color .3s var(--ease), transform .35s var(--ease);
}
.pf-item:hover{ border-color:var(--accent-line); transform:translateY(-4px);
  box-shadow:0 26px 60px -24px rgba(0,0,0,.9); }
.pf-item{ cursor:pointer; }
.pf-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block; background:#0b0d0f;
  transition:transform .7s var(--ease), filter .4s var(--ease);
  filter:saturate(.92) brightness(.88);
}
.pf-item:hover .pf-video,
.pf-item.is-playing .pf-video{ transform:scale(1.04); filter:saturate(1) brightness(1); }

.pf-badge{
  position:absolute; top:12px; right:12px; z-index:3;
  width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  background:rgba(8,9,10,.62); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.18); color:#fff;
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.pf-item.is-playing .pf-badge{ opacity:0; transform:scale(.8); }
.pf-item .pf-empty{
  position:absolute; inset:0; text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  color:var(--muted); font-size:12.5px; letter-spacing:.06em;
  padding:20px 20px 84px; /* espaço para a faixa de título não sobrepor */
}
.pf-item .pf-empty code{
  font-size:11px; opacity:.6;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:0;
}
.pf-meta{
  position:absolute; inset:auto 0 0 0; z-index:2;
  padding:38px 22px 20px;
  background:linear-gradient(180deg, transparent, rgba(6,7,8,.92));
}
.pf-meta strong{ display:block; font-size:16px; letter-spacing:-.01em; }
.pf-meta span{ font-size:12.5px; color:var(--muted); letter-spacing:.05em; }
.pf-play{
  position:absolute; top:16px; right:16px; z-index:2;
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background:rgba(8,9,10,.7); border:1px solid var(--line-strong); color:var(--accent);
  font-size:11px;
}
.portfolio-more{
  margin-top:34px; font-size:14.5px; color:var(--muted); text-align:center;
}
.portfolio-more a{ color:var(--accent); text-decoration:none; font-weight:700; margin-left:6px; }
.portfolio-more a:hover{ text-decoration:underline; }

/* ---------- Pacotes ---------- */
.plans{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; align-items:stretch; }
.plan{
  position:relative; display:flex; flex-direction:column;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:32px 26px;
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.plan:hover{ border-color:var(--line-strong); transform:translateY(-4px); box-shadow:var(--shadow); }
.plan-featured{
  background:linear-gradient(165deg, rgba(216,162,74,.11), var(--surface) 45%);
  border-color:var(--accent-line);
}
.plan-quiet{ background:transparent; }
.plan-flag{
  position:absolute; top:-11px; left:26px;
  background:var(--accent); color:#08090a; font-size:11px; font-weight:800;
  letter-spacing:.1em; text-transform:uppercase; padding:4px 12px; border-radius:100px;
}
.plan h3{ font-size:21px; margin-bottom:14px; }
.plan-price{
  font-size:clamp(24px,2.6vw,30px); font-weight:700; letter-spacing:-.03em;
  color:var(--accent); line-height:1.15; padding-bottom:22px; margin-bottom:4px;
  border-bottom:1px solid var(--line);
  /* altura fixa para as linhas divisórias dos 4 cards baterem */
  min-height:96px; display:flex; flex-direction:column; justify-content:flex-end;
}
.plan-price.is-text{ font-size:22px; letter-spacing:-.01em; }
.plan-price span{ display:block; font-size:12px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); margin-bottom:4px; }
.plan-price .pv{ display:block; white-space:nowrap; } /* não quebrar em "R$ 2.000 / dia" */
.plan-price em{ font-style:normal; font-size:15px; color:var(--text-2); font-weight:600; }
.plan .ticks{ margin-bottom:28px; }
.plan .btn{ margin-top:auto; }
.plans-note{
  margin-top:34px; font-size:14.5px; color:var(--muted); max-width:80ch; line-height:1.6;
}

/* ---------- Orçamento ---------- */
.orcamento-inner{ display:grid; grid-template-columns:1fr .95fr; gap:clamp(36px,5vw,72px); align-items:start; }
.orcamento-copy h2{ font-size:clamp(29px,4.1vw,44px); margin-bottom:20px; }

.contact-list{ display:flex; flex-direction:column; margin-top:38px; border-top:1px solid var(--line); }
.contact-list li{
  display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
  padding:16px 0; border-bottom:1px solid var(--line); font-size:16px;
}
.contact-label{
  flex:none; width:100px; font-size:11.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); font-weight:700;
}
.contact-list a{ color:var(--accent); text-decoration:none; font-weight:600; }
.contact-list a:hover{ text-decoration:underline; }
.contact-list span:not(.contact-label){ color:var(--text-2); }

.orcamento-form{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,3.2vw,38px);
  display:flex; flex-direction:column; gap:18px;
}
.field{ display:flex; flex-direction:column; gap:8px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field label{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.field input,.field select,.field textarea{
  background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r-sm);
  padding:13px 15px; font-size:15.5px; color:var(--text); width:100%;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.field textarea{ resize:vertical; min-height:104px; line-height:1.55; }
.field input::placeholder,.field textarea::placeholder{ color:#5c646b; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--accent); background:#0a0c0e;
}
.field select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23868e96' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center; padding-right:38px;
}
.field input[type="date"]{ min-height:49px; }
.field.has-error input,.field.has-error select{ border-color:#e05555; }
.field .err{ font-size:12.5px; color:#e57373; letter-spacing:0; text-transform:none; font-weight:600; }
.form-hint{ font-size:12.5px; color:var(--muted); text-align:center; line-height:1.5; }
.orcamento-form .btn-primary{ background:var(--wa); color:#06210f; box-shadow:0 10px 30px -12px rgba(37,211,102,.5); }
.orcamento-form .btn-primary:hover{ background:#2ee874; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--bg-2); border-top:1px solid var(--line); padding:56px 0 44px; }
.footer-inner{ display:grid; grid-template-columns:1.1fr 1fr 1.1fr; gap:34px; align-items:start; }
.footer-brand{ display:flex; align-items:center; gap:14px; }
.footer-brand strong{ font-size:16px; display:block; }
.footer-brand p{ font-size:13.5px; color:var(--muted); margin-top:3px; }
.footer-nav{ display:flex; flex-wrap:wrap; gap:8px 22px; }
.footer-nav a{ font-size:14px; color:var(--text-2); text-decoration:none; }
.footer-nav a:hover{ color:var(--accent); }
.footer-legal{ font-size:13px; color:var(--muted); line-height:1.7; text-align:right; }
.footer-legal span{ opacity:.7; }

/* ---------- WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:56px; height:56px; border-radius:50%; display:grid; place-items:center;
  background:var(--wa); color:#06210f;
  box-shadow:0 12px 34px -8px rgba(37,211,102,.6);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.wa-float:hover{ transform:translateY(-3px) scale(1.05); box-shadow:0 18px 40px -8px rgba(37,211,102,.75); }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width: 1000px){
  .cards-2{ grid-template-columns:1fr; }
  .publico-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .gear-hero{ grid-template-columns:1fr; }
  .gear-hero-media{ min-height:240px; border-right:none; border-bottom:1px solid var(--line); }
  .gear-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .plans{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .orcamento-inner{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr; }
  .footer-legal{ text-align:left; }
  .hero-facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Menu vira hambúrguer antes de a barra apertar */
@media (max-width: 980px){
  .nav-toggle{ display:flex; }
  .nav{
    position:fixed; inset:72px 0 auto 0;
    flex-direction:column; align-items:stretch; gap:2px;
    background:#0a0b0c; /* opaco: o conteúdo atrás não pode vazar */
    box-shadow:0 24px 40px -18px rgba(0,0,0,.9);
    border-bottom:1px solid var(--line);
    padding:14px var(--gut) 24px;
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease);
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:14px 4px; font-size:17px; border-bottom:1px solid var(--line); border-radius:0; }
  .nav a:hover{ background:transparent; }
  .nav .nav-cta{ margin:14px 0 0; border-radius:var(--r-sm); justify-content:center; text-align:center; border-bottom:none; }
}

@media (max-width: 720px){
  body{ font-size:16px; }
  html{ scroll-padding-top:76px; }

  /* no celular não cabe painel: a foto vira fundo inteiro, com breu por cima */
  .hero-bg.has-photo::before{
    inset:0; background-position:52% center;
    -webkit-mask-image:none; mask-image:none;
  }
  .hero-bg.has-photo::after{
    background:
      linear-gradient(180deg, rgba(6,7,8,.72) 0%, rgba(6,7,8,.86) 45%, rgba(6,7,8,.95) 100%);
  }

  .hero{ min-height:auto; padding:132px 0 84px; }
  .hero h1{ max-width:none; }
  .hero-actions .btn{ flex:1 1 100%; }
  .scroll-cue{ display:none; }

  .publico-list{ grid-template-columns:1fr; }
  .gear-list{ grid-template-columns:1fr; }
  .plans{ grid-template-columns:1fr; }
  .portfolio-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .pf-meta{ padding:30px 14px 14px; }
  .pf-meta strong{ font-size:14px; }
  .pf-meta span{ font-size:11px; }
  .field-row{ grid-template-columns:1fr; }
  .contact-label{ width:auto; }
  .wa-float{ width:52px; height:52px; right:16px; bottom:16px; }
}

/* ---------- Impressão ---------- */
@media print{
  .site-header,.wa-float,.scroll-cue,.nav-toggle{ display:none !important; }
  body{ background:#fff; color:#000; }
  .reveal{ opacity:1; transform:none; }
}

/* modelo do corpo — menção única e discreta na seção Equipamentos */
.gear-model{
  margin-top:20px; padding-top:16px; border-top:1px solid var(--line);
  font-size:13px; color:var(--muted); letter-spacing:.02em;
}
.gear-model strong{ color:var(--text-2); font-weight:700; }

/* ---------- Portfólio em vídeo: responsivo ---------- */
@media (max-width: 1000px){
  .portfolio-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pf-destaque{ grid-column:span 2; aspect-ratio:16/10 !important; }
}
@media (max-width: 720px){
  .portfolio-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .pf-destaque{ grid-column:span 2; aspect-ratio:4/5 !important; }
  .hero-video{ object-position:60% center; }
}

/* ---------- Foto de fundo da seção O serviço ---------- */
.section-foto{ position:relative; isolation:isolate; overflow:hidden; }
.section-foto > .wrap{ position:relative; z-index:2; }
.servico-bg{ position:absolute; inset:0; z-index:0; }
.section-foto::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(96deg, rgba(8,9,10,.97) 0%, rgba(8,9,10,.92) 38%,
                           rgba(8,9,10,.62) 66%, rgba(8,9,10,.48) 100%),
    linear-gradient(180deg, rgba(8,9,10,.92) 0%, rgba(8,9,10,.30) 28%, rgba(8,9,10,.95) 100%);
}

/* ---------- Faixa de vídeo entre seções ---------- */
.faixa{
  position:relative; isolation:isolate; overflow:hidden;
  min-height:clamp(320px, 46vw, 560px);
  display:flex; align-items:center;
  border-block:1px solid var(--line);
}
.faixa-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0; filter:contrast(1.05) saturate(.9);
}
.faixa-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(94deg, rgba(6,7,8,.90) 0%, rgba(6,7,8,.62) 46%, rgba(6,7,8,.30) 100%),
    linear-gradient(180deg, rgba(6,7,8,.55) 0%, transparent 30%, rgba(6,7,8,.70) 100%);
}
.faixa-inner{ position:relative; z-index:2; }
.faixa-frase{
  font-size:clamp(24px,3.4vw,42px); font-weight:700; letter-spacing:-.025em;
  line-height:1.16; max-width:20ch; color:var(--text);
}
@media (max-width:720px){
  .faixa{ min-height:380px; }
  .faixa-video{ object-position:58% center; }
  .servico-bg{ background-position:64% center; }
}

/* vídeo de fundo da seção O serviço (vertical: enquadra pelo terço superior) */
.servico-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 26%;
}
@media (max-width:720px){
  .servico-video{ object-position:center 22%; }
}

/* ---------- Card de operação: vídeo vertical no vazio ao lado do título ---------- */
.servico-topo{
  display:grid; grid-template-columns:1fr clamp(260px, 26vw, 330px);
  gap:clamp(30px,5vw,64px); align-items:start;
  margin-bottom:clamp(44px,6vw,72px);
}
.servico-topo .section-head{ margin-bottom:0; }

.op-card{
  position:relative; margin:0; aspect-ratio:9/16; overflow:hidden;
  border-radius:var(--r-lg); border:1px solid var(--accent-line);
  box-shadow:0 30px 70px -28px rgba(0,0,0,.95), 0 0 0 4px rgba(216,162,74,.07);
  background:#0b0d0f;
}
.op-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.op-legenda{
  position:absolute; inset:auto 0 0 0; z-index:2;
  padding:52px 18px 16px;
  background:linear-gradient(180deg, transparent, rgba(6,7,8,.90) 62%);
}
.op-legenda strong{ display:block; font-size:15px; letter-spacing:-.01em; }
.op-legenda span{ font-size:12px; color:var(--muted); letter-spacing:.04em; }

@media (max-width:1000px){
  .servico-topo{ grid-template-columns:1fr; }
  .op-card{ max-width:300px; }
}
@media (max-width:720px){
  .op-card{ max-width:none; aspect-ratio:4/5; }
}

/* ---------- Quem opera (retrato no Orçamento) ---------- */
.orc-quem{
  display:grid; grid-template-columns:172px 1fr; gap:24px; align-items:center;
  margin-top:36px; padding:20px; border:1px solid var(--line); border-radius:var(--r-lg);
  background:linear-gradient(150deg, rgba(216,162,74,.06), var(--surface) 55%);
}
.quem-foto{ margin:0; border-radius:var(--r); overflow:hidden; aspect-ratio:4/5; }
.quem-foto img{ width:100%; height:100%; object-fit:cover; object-position:center center; display:block; }
.quem-nome{ font-size:16px; font-weight:700; letter-spacing:-.01em; margin-bottom:8px; }
.quem-desc{ font-size:14.5px; color:var(--text-2); line-height:1.55; }

@media (max-width:520px){
  .orc-quem{ grid-template-columns:110px 1fr; gap:16px; padding:16px; }
  .quem-desc{ font-size:13.5px; }
}

/* ---------- Novidade no kit ---------- */
.novidade{
  margin-top:clamp(34px,4.5vw,54px);
  display:grid; grid-template-columns:1fr auto; gap:clamp(24px,4vw,48px);
  align-items:center;
  padding:clamp(26px,3.2vw,40px);
  border:1px solid var(--accent-line); border-radius:var(--r-lg);
  background:linear-gradient(120deg, rgba(216,162,74,.11), var(--surface) 52%);
  box-shadow:0 26px 60px -30px rgba(0,0,0,.9);
}
.novidade-tag{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent); font-weight:700; margin-bottom:12px;
}
.novidade h3{ font-size:clamp(21px,2.4vw,28px); margin-bottom:14px; max-width:24ch; }
.novidade-texto > p{ color:var(--text-2); font-size:15.5px; max-width:70ch; }
.novidade-nota{
  margin-top:14px !important; font-size:13.5px !important; color:var(--muted) !important;
}
.novidade-cta{ flex:none; white-space:nowrap; }

@media (max-width:820px){
  .novidade{ grid-template-columns:1fr; }
  .novidade-cta{ width:100%; }
}

/* vídeo de fundo do bloco da FX5 */
.novidade{ position:relative; isolation:isolate; overflow:hidden; }
.novidade-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:0;
  opacity:.92;                       /* fundo bem visível; véu à esquerda segura a leitura */
  filter:saturate(.8) contrast(1.03);
}
.novidade-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(100deg, rgba(10,9,7,.86) 0%, rgba(10,9,7,.50) 48%, rgba(10,9,7,.06) 100%),
    linear-gradient(180deg, rgba(216,162,74,.10), transparent 45%);
}
.novidade-texto, .novidade-cta{ position:relative; z-index:2; }
