/* =========================
   Help Construção • styles.css (v7)
   ========================= */

/* ---------- Tokens / Cores / Tipos ---------- */
:root{
  --brand:#F7811D;
  --brand-2:#FF9D4A;
  --bg:#f7f7f9;
  --txt:#0f172a;
  --muted:#475569;
  --surface:#ffffff;
  --border:#e2e8f0;
  --shadow:0 12px 30px rgba(2,6,23,.10);
  --wa:#25D366;
  --call:#2563eb;

  --header-grad-from:#1a1a1a;
  --header-grad-to:#0f0f0f;

  --ring:#F7811D;
  --elev:0 18px 50px rgba(0,0,0,.22);

  --container:1200px;
}

/* ---------- Reset básico ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--txt);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* Skip link invisível (aparece só no foco via teclado) */
.skip{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip:focus{
  left:16px;top:16px;width:auto;height:auto;padding:8px 12px;border-radius:8px;
  background:#111;color:#fff;z-index:9999;box-shadow:0 6px 18px rgba(0,0,0,.25);
}

/* ---------- Containers e seções ---------- */
.container{max-width:var(--container);margin:0 auto;padding:0 16px}
.section{padding:44px 0}
.section .section-head h2{
  margin:0 0 6px;
  font-family:Poppins,Inter,sans-serif;font-weight:800;letter-spacing:-.015em;
  font-size:clamp(22px,2.6vw,30px);
}
.section .section-head p{margin:0 0 18px;color:var(--muted)}


/* =========================
   Cabeçalho
   ========================= */
.header{
  position:sticky; top:0; z-index:100;
  background:linear-gradient(180deg,var(--header-grad-from) 0%,var(--header-grad-to) 100%);
  border-bottom:1px solid #ffffff1a;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}
.header-grid{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:84px; position:relative;
  flex-wrap:nowrap; /* nunca quebrar no desktop */
}
.brand{ display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.brand img{
  height:64px; max-height:64px; width:auto; object-fit:contain;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.35));
  transition:transform .18s ease,filter .18s ease;
}
@media (min-width:1024px){ .brand img{ height:80px; max-height:80px } }
.brand img:hover{ transform:scale(1.03); filter:drop-shadow(0 10px 24px rgba(255,106,0,.35)) }

/* Menu base */
.menu-wrap{ flex:1 1 auto; min-width:0; }
.menu{
  display:flex; gap:16px; list-style:none; margin:0; padding:0;
  align-items:center; justify-content:center; flex-wrap:nowrap;
}
.menu a{
  color:#e9edf6; padding:10px 14px; border-radius:8px;
  font-weight:700; letter-spacing:.2px; white-space:nowrap; /* evita quebra */
  transition:color .2s ease,background .2s ease;
}
.menu a:hover,.menu a.active{ color:#fff; background:#ffffff1a }

/* Ações (WhatsApp/Ligue já) */
.actions{
  display:flex; gap:10px; flex-wrap:nowrap; flex:0 0 auto; /* sem wrap no desktop */
}
.actions .btn{ white-space:nowrap; padding:10px 14px; }

/* Botão hambúrguer (mobile) */
.hamb{
  width:34px; height:26px; background:none; border:0; cursor:pointer; display:none;
  position:relative; z-index:101;
}
.hamb span{
  position:absolute; left:40; width:100%; height:3px; background:#e9edf6; border-radius:2px;
  transition:.25s ease; transform-origin:left center;
}
.hamb span:nth-child(1){ top:0 }
.hamb span:nth-child(2){ top:11px }
.hamb span:nth-child(3){ top:22px }
.hamb.open span:nth-child(1){ transform:rotate(45deg); top:2px }
.hamb.open span:nth-child(2){ opacity:0 }
.hamb.open span:nth-child(3){ transform:rotate(-45deg); top:22px }

/* Desktop: menu horizontal visível e tudo em uma linha */
@media (min-width:901px){
  .hamb{ display:none; }
  .menu-wrap{ display:block !important; position:static; background:transparent; box-shadow:none; }
  .menu{ flex-direction:row; gap:16px; }
}

/* Mobile: topo em 3 colunas (brand | hamb | ações); menu drop-down abaixo */
@media (max-width:900px){
  .header-grid{
    display:grid;
    grid-template-columns: 1fr auto auto; /* brand | hamb | ações */
    align-items:center;
    gap:10px;
  }
  .brand{ grid-column:1/2; }
  .hamb{ grid-column:2/3; display:inline-flex; justify-self:end; }
  .actions{
    grid-column:3/4;
    display:flex; flex-direction:row; align-items:center; gap:8px;
    width:auto; margin:0; /* lado a lado com o hambúrguer */
  }
  .actions .btn{
    padding:8px 10px; font-size:13px; border-radius:10px;
    line-height:1; white-space:nowrap;
  }

  /* Menu drop-down quando abre */
  .menu-wrap{
    display:none; position:absolute; left:0; right:0; top:100%;
    background:linear-gradient(180deg,var(--header-grad-from),var(--header-grad-to));
    border-bottom:1px solid #ffffff1a; box-shadow:0 14px 30px rgba(0,0,0,.35);
    z-index:99;
  }
  .menu-wrap.open{ display:block; }
  .menu{ flex-direction:column; gap:0; margin:0; padding:8px; }
  .menu li{ width:100%; }
  .menu a{ display:block; width:100%; padding:12px 14px; border-radius:10px; }
}

/* Ajuste fino (notebooks ~901–1220px): comprime levemente para não quebrar */
@media (min-width:901px) and (max-width:1220px){
  .header-grid{ gap:12px; }
  .menu{ gap:10px; }
  .menu a{ padding:6px 10px; font-size:14px; }
  .actions{ gap:8px; }
  .actions .btn{ padding:9px 12px; font-size:14px; }
  .menu a.menu-cta{ padding:6px 8px; } /* evita “Orçamento” cair */
}

/* Ajuste fino para telas entre 901–1100px: reduz levemente espaçamentos */
@media (min-width:901px) and (max-width:1100px){
  .menu{ gap:10px; }
  .menu a{ padding:8px 10px; font-size:14px; }
  .actions .btn{ padding:9px 12px; font-size:14px; }
}

/* ---------- Botões ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 16px;border-radius:12px;border:1px solid transparent;
  font-weight:700;font-size:15px;cursor:pointer;transition:.15s ease;
}
.btn.primary{background:var(--wa);color:#111;box-shadow:0 10px 22px rgba(37,211,102,.25)}
.btn.primary:hover{filter:brightness(0.95)}
.btn.ghost{border:2px solid var(--call);color:var(--call)}
.btn.ghost:hover{background:var(--call);color:#fff}

/* =========================
   HERO
   ========================= */
.hero{
  padding:72px 0 28px;
  background:linear-gradient(180deg,#0e162a 0%,#0b1220 100%);
  color:#fff;
}
.hero-title{
  margin:0 0 8px;
  font-family:Poppins,Inter,sans-serif;font-weight:800;
  font-size:clamp(34px,6vw,64px);
  line-height:1.05;letter-spacing:-.02em;
  text-shadow:0 2px 14px rgba(0,0,0,.25);
}
.hero-sub{
  color:#e6eaf2;margin:0 0 6px;
  font-weight:800;letter-spacing:.2px;
  font-size:clamp(18px,2.6vw,28px);
}
.hero-desc,.hero-lead,.hero-local{color:#d2d7e2;margin:0 0 10px}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;margin-bottom:16px}
.badge{background:#f3f4f6;color:#111;padding:6px 12px;border-radius:999px;font-size:14px;font-weight:600}

/* Banner hero — foco ajustado para não cortar cabeça */
.banner{
  display:block;position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 12px 30px rgba(2,6,23,.22);
  aspect-ratio:16/9;
}
@media (max-width:640px){ .banner{aspect-ratio:4/3} }

.banner{
  display:block;position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 12px 30px rgba(2,6,23,.22);
  aspect-ratio:16/9;
}
@media (max-width:640px){ .banner{aspect-ratio:4/3} }

.banner img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:50% 25%; /* mobile/tablet: sobe foco */
  transition:transform .35s ease,filter .25s ease;
}
.banner:hover img{transform:scale(1.02);filter:brightness(1.02)}

@media (min-width:1024px){
  .banner{aspect-ratio:auto;height:clamp(560px,68vh,860px);}
  .banner img{object-position:50% 10%;} /* foco no topo → não corta cabeça */
}
@media (min-width:1440px){
  .banner{height:clamp(620px,72vh,920px);}
  .banner img{object-position:50% 6%;}
}
}

@media (min-width:1440px){
  .banner{ height:clamp(620px, 72vh, 920px); }
  .banner img{ object-position: 50% 12%; }

}



/* =========================
   Cards de Serviços
   ========================= */
.cards{display:grid;gap:16px}
@media (min-width:1025px){.cards{grid-template-columns:repeat(4,1fr)}}
@media (min-width:768px) and (max-width:1024px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:767px){.cards{grid-template-columns:1fr}}
.card{
  background:#0e1624;color:#e6eaf2;
  border:1px solid #ffffff14;border-radius:16px;
  padding:18px;position:relative;overflow:hidden;
  transition:transform .18s ease,box-shadow .22s ease,border-color .18s ease;
}
.card h3{
  margin:0 0 6px;font-weight:800;letter-spacing:.2px;
  font-size:clamp(16px,1.8vw,20px);
}
.card p{margin:0 0 12px;color:#c7d0de}
.card:hover{transform:translateY(-4px);box-shadow:var(--elev)}
.card::after{
  content:"";position:absolute;inset:0;background:transparent;border:2px solid transparent;border-radius:16px;
  transition:background .22s ease,border-color .22s ease;
}
.card:hover::after{background:rgba(0,0,0,.16);border-color:var(--ring)}
.card-cta{
  background:var(--wa);color:#111;font-weight:800;border:none;
  padding:10px 14px;border-radius:12px;cursor:pointer;transition:transform .12s ease,filter .12s ease;
}
.card-cta:hover{filter:brightness(0.95)}
.card-cta:active{transform:translateY(1px)}

/* =========================
   Galeria — moderna e responsiva
   ========================= */
.gallery{
  display:grid;
  gap:14px;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.shot{
  position:relative;overflow:hidden;border-radius:14px;
  border:1px solid var(--border);background:var(--surface);
  aspect-ratio:4 / 3;
}
.shot img{
  width:100%;height:100%;
  object-fit:cover;object-position:center bottom;
  transition:transform .35s ease, filter .25s ease;
}
.shot:hover img{ transform:scale(1.05); filter:brightness(1.02); }
.shot::after{
  content:"";position:absolute;inset:0;background:transparent;border:2px solid transparent;border-radius:14px;
  transition:background .22s ease,border-color .22s ease;
}
.shot:hover::after{ background:rgba(0,0,0,.14); border-color:var(--ring); }
.shot figcaption{
  position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.6);color:#fff;
  padding:6px 10px;border-radius:6px;font-size:13px;letter-spacing:.2px;
}
/* Mobile: 1 coluna (fotos maiores e limpas) */
@media (max-width:640px){
  .gallery{ grid-template-columns:1fr; }
}
/* Desktop largo: um pouco mais de respiro */
@media (min-width:1100px){
  .gallery{ gap:18px; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); }
}

/* =========================
   Quem Somos
   ========================= */
.section.alt{background:#f4f7fb}
.about{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
@media (max-width:900px){.about{grid-template-columns:1fr}}
.about-list{list-style:'✓  ';padding-left:16px;color:#334155}

/* =========================
   Depoimentos
   ========================= */
.testimonials{display:grid;gap:16px}
@media (min-width:1025px){.testimonials{grid-template-columns:repeat(3,1fr)}}
@media (min-width:768px) and (max-width:1024px){.testimonials{grid-template-columns:repeat(2,1fr)}}
@media (max-width:767px){.testimonials{grid-template-columns:1fr}}
.t-card{
  background:#fff;color:#0f172a;
  border:1px solid var(--border);border-radius:14px;
  padding:16px;box-shadow:var(--shadow);
  position:relative;overflow:hidden;
  transition:transform .18s ease,box-shadow .22s ease,border-color .18s ease;
}
.t-card:hover{transform:translateY(-4px);box-shadow:var(--elev)}
.t-card::after{
  content:"";position:absolute;inset:0;background:transparent;border:2px solid transparent;border-radius:14px;
  transition:background .22s ease,border-color .22s ease;
}
.t-card:hover::after{background:rgba(0,0,0,.16);border-color:var(--ring)}
.t-card p{font-size:15px;margin:0 0 8px}
.t-card h4{margin:10px 0 0;font-weight:700}
.t-card .meta{color:#475569;font-size:13px}

/* =========================
   Formulário — Orçamento
   ========================= */
.form.form-stack{
  max-width:760px;margin-inline:auto;background:#ffffff;color:#0f172a;
  border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);
  padding:22px;
}
.form.form-stack label{display:grid;gap:8px;margin-bottom:12px;font-weight:600}
.form.form-stack input,.form.form-stack select,.form.form-stack textarea{
  background:#f8fafc;color:#0f172a;border:1px solid #cbd5e1;border-radius:12px;padding:12px;font:inherit
}
.form.form-stack input:focus,.form.form-stack select:focus,.form.form-stack textarea:focus{
  outline:none;border-color:#ff9b4d;box-shadow:0 0 0 3px #ff9b4d33
}
.form-ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.form.form-stack .btn.primary{background:var(--wa);color:#111}
.form.form-stack .btn.ghost{border:2px solid var(--call);color:var(--call)}

/* Alinhamento: “Orçamento em Minutos” com o formulário */
#orcamento .section-head{
  max-width:760px; /* igual ao form */
  margin:0 auto 22px auto;
  padding-left:0;
}
#orcamento .section-head h2{ margin-left:4px; } /* eixo do “O” com o “N” */

/* =========================
   Ripple (clique)
   ========================= */
.ripple{
  position:absolute;border-radius:50%;transform:scale(0);
  animation:ripple .6s ease-out forwards;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.5) 0%,rgba(255,255,255,.1) 60%,rgba(255,255,255,0) 70%);
}
@keyframes ripple{to{transform:scale(10);opacity:0}}

/* =========================
   Rodapé
   ========================= */
.site-footer{padding:30px 0;background:#0b111d;border-top:1px solid #ffffff14;color:#e5e7eb}
.foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.site-footer a{color:#e5e7eb}
.site-footer a:hover{color:#fff}

/* =========================
   Motion safe
   ========================= */
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}

/* ===== Animações dos botões (WhatsApp pulsar / Ligar tocando) ===== */
.btn.primary.whatsapp {
  position: relative;
  animation: pulseWA 1.8s infinite;
}
@keyframes pulseWA {
  0%   { transform: scale(1);   box-shadow: 0 0 0 0 rgba(37,211,102,.6); }
  70%  { transform: scale(1.05);box-shadow: 0 0 0 14px rgba(37,211,102,0); }
  100% { transform: scale(1);   box-shadow: 0 0 0 0 rgba(37,211,102,0); }
}
.btn.primary.whatsapp:hover {
  filter: brightness(1.05);
  box-shadow: 0 0 14px rgba(37,211,102,.65);
}

.btn.ghost.ligar {
  animation: ringPhone 1.2s infinite;
  transform-origin: center;
}
@keyframes ringPhone {
  0%   { transform: rotate(0deg); }
  10%  { transform: rotate(8deg); }
  20%  { transform: rotate(-8deg); }
  30%  { transform: rotate(6deg); }
  40%  { transform: rotate(-6deg); }
  50%  { transform: rotate(4deg); }
  60%  { transform: rotate(-4deg); }
  70%  { transform: rotate(2deg); }
  80%  { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
.btn.ghost.ligar:hover {
  background: var(--call);
  color: #fff;
  box-shadow: 0 0 14px rgba(37,99,235,.55);
}
