/* =========================================================
   Home institucional — herdada do CMS de origem, sem rota desde 02/10/2026
   (usa as variáveis do painel via mapeamento abaixo)
   ========================================================= */
:root {
  --dark:        var(--color-bg-dark, #1b1b1b);
  --darker:      #141414;
  --dark-2:      #262626;
  --cyan:        var(--color-secondary, #99ffff);
  --cyan-strong: var(--color-secondary-hover, #63f5f5);
  --white:       #ffffff;
  --line:        rgba(255, 255, 255, 0.10);
  --font-body:   var(--font-family-primary);
  --font-tech:   var(--font-family-heading);
  --maxw:        var(--max-width-container, 1200px);
}

/* ---- Botões ---- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-weight: 700;
  font-size: 0.95rem;
  padding: 13px 26px;
  border-radius: 4px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .18s ease, background .2s ease, color .2s ease;
  line-height: 1;
}
.btn svg { width: 18px; height: 18px; flex: none; }
.btn-cyan  { background: var(--cyan); color: var(--dark); }
.btn-cyan:hover  { background: var(--cyan-strong); transform: translateY(-2px); }
.btn-dark  { background: var(--dark); color: var(--white); }
.btn-dark:hover  { background: #000; transform: translateY(-2px); }

/* ---- Blocos, hero, seções ---- */
.block { padding: clamp(56px, 8vw, 45px) 0; }
section[id] { scroll-margin-top: 110px; }
.sobre-texto { margin: 0 auto; }
#sobre .block-title { margin-bottom: 24px; }
.sobre-texto p { font-size: 1.05rem; line-height: 1.85; color: #464646; margin: 0 0 20px; }
.sobre-texto p:last-child { margin-bottom: 0; }
.block-title {
  text-align: center;
  font-family: var(--font-tech); /* Oceanic Drift, igual ao h3 */
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: clamp(1.5rem, 3vw, 2.05rem);
  color: var(--dark);
  margin-bottom: 46px;
  position: relative;
  padding-bottom: 18px;
}
.block-title::after {
  content: "";
  position: absolute; left: 50%; transform: translateX(-50%); bottom: 0;
  width: 62px; height: 3px; background: var(--cyan);
}
.block-title span { color: inherit; }
.block-dark { background: var(--darker); color: #fff; }
.block-dark .block-title { color: #fff; }

/* =========================================================
   HERO / SLIDER (imagem inteira — texto já vem na arte)
   ========================================================= */
.hero-banner { position: relative; overflow: hidden; background: #0d0d0d; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease; }
.hero-slide:first-child { position: relative; } /* define a altura do bloco */
.hero-slide.active { opacity: 1; z-index: 1; }
.hero-slide picture { display: block; width: 100%; height: 100%; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-dots { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; gap: 10px; }
.hero-dots button {
  width: 11px; height: 11px; border-radius: 50%; border: 0; cursor: pointer;
  background: rgba(255,255,255,.5); transition: background .2s, transform .2s; padding: 0;
}
.hero-dots button.active { background: var(--cyan); transform: scale(1.15); }

/* =========================================================
   FAIXA SUSTENTÁVEL (ciano com CTA)
   ========================================================= */
.faixa-cta { background: var(--cyan); color: var(--dark); padding: 40px 0; }
.faixa-cta .inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.faixa-cta .txt {
  font-family: var(--font-body); /* Raleway */
  text-transform: uppercase;
  font-weight: 700;
  font-size: clamp(1.05rem, 2vw, 1.5rem);
  line-height: 1.25;
  max-width: 45ch;
}
@media (max-width: 720px) { .faixa-cta .inner { flex-direction: column; align-items: flex-start; } }

/* =========================================================
   INTRO (texto + imagem)
   ========================================================= */
.intro-sec { position: relative; overflow: hidden; padding: clamp(50px,7vw,80px) 0; }
.intro-inner { position: relative; z-index: 2; min-height: 250px; display: flex; align-items: center; }
.intro-inner .texto { max-width: 46%; color: var(--dark); font-size: 1rem; line-height: 1.8; }
.intro-inner.intro-full .texto { max-width: 100%; }
.intro-inner .texto p { margin: 0 0 16px; }
.intro-car {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 50%;
  background: url('../img/servico.jpg') no-repeat left center;
  background-size: cover;
  pointer-events: none;
}
.intro-car-mobile { display: none; }
@media (max-width: 800px) {
  .intro-inner { min-height: 0; }
  .intro-inner .texto { max-width: 100%; }
  .intro-car { display: none; }
  .intro-car-mobile { display: block; width: 100%; margin-top: 22px; border-radius: 8px; }
}

/* =========================================================
   SERVIÇOS (grid de cards)
   ========================================================= */
/* Flex + justify-center: a última linha (2 cards) fica centralizada */
.servicos-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; }
.servico-card {
  flex: 0 0 calc((100% - 54px) / 4);
  height: 250px;
  perspective: 1200px;
  background: transparent; border: 0; padding: 0;
  cursor: pointer;
}
.card-inner {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d;
  transition: transform .6s cubic-bezier(.4,.2,.2,1);
}
.servico-card:hover .card-inner,
.servico-card:focus-visible .card-inner,
.servico-card.flipped .card-inner { transform: rotateY(180deg); }
.card-face {
  position: absolute; inset: 0;
  -webkit-backface-visibility: hidden; backface-visibility: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 24px 20px;
  border: 1px solid #1b1b1b; background: #fff;
}
.card-front .ico { margin-bottom: 16px; }
.card-front .ico img { width: 54px; height: 54px; object-fit: contain; }
/* icon-polimento.png veio branco — força preto igual aos demais */
.card-front .ico img[src$="icon-polimento.png"] { filter: brightness(0); }
.card-front h3 {
  font-family: var(--font-tech); /* Oceanic Drift */
  text-transform: uppercase;
  font-size: 20px;
  font-style: normal;
  line-height: 24px;
  letter-spacing: 2px;
  font-weight: 400;
  width: 100%;
  color: #1b1b1b;
  margin: 0;
}
.card-back { transform: rotateY(180deg); background: #1b1b1b; border-color: #1b1b1b; }
.card-back .back-title {
  font-family: var(--font-tech); text-transform: uppercase; font-size: 11px;
  letter-spacing: 1px; color: var(--cyan); margin-bottom: 10px;
}
.card-back p { color: #eaf0f0; font-size: 1rem; line-height: 1.55; margin: 0; }
@media (max-width: 980px) { .servico-card { flex: 0 0 calc((100% - 18px) / 2); } }
@media (max-width: 520px) { .servico-card { flex: 0 0 100%; height: 210px; } }

/* =========================================================
   POR QUE CONTRATAR (checklist)
   ========================================================= */
.checklist { margin: 0 auto; display: grid; gap: 22px; }
.divisoria { border: 0; border-top: 1px solid #e6e6e6; margin: 0 auto; width: 100%; }
.check-item { display: flex; gap: 16px; }
.check-item .ic {
  flex: none; width: 30px; height: 30px; border-radius: 50%;
  background: #1b1b1b; color: #fff; display: grid; place-items: center; margin-top: 2px;
}
.check-item .ic svg { width: 16px; height: 16px; }
.check-item p { margin: 0; color: #555; font-size: 1rem; line-height: 1.65; }
.check-item p strong { color: #1b1b1b; }
.center-btn { text-align: center; margin-top: 44px; }

/* =========================================================
   EMPRESAS QUE CONFIAM (dark, logos)
   ========================================================= */
.empresas-viewport { overflow: hidden; }
.empresas-track { display: flex; gap: 20px; transition: transform .45s ease; }
.empresas-track .logo-card { flex: 0 0 calc((100% - 60px) / 4); }
.logo-card {
  background: #fff; border-radius: 6px; height: 120px;
  display: grid; place-items: center; padding: 20px;
  font-family: var(--font-tech); text-transform: uppercase; font-weight: 700;
  color: #1b1b1b; letter-spacing: .05em; font-size: 1.05rem;
}
.logo-card img { max-height: 60px; width: auto; object-fit: contain; }
.empresas-nav { display: flex; justify-content: center; gap: 10px; margin-top: 28px; }
.empresas-nav button {
  width: 40px; height: 40px; display: grid; place-items: center;
  background: transparent; border: 1px solid rgba(153,255,255,.5); color: var(--cyan);
  border-radius: 4px; cursor: pointer; transition: background .2s, color .2s;
}
.empresas-nav button:hover { background: var(--cyan); color: var(--dark); }
.empresas-nav button svg { width: 18px; height: 18px; }
@media (max-width: 820px) { .empresas-track .logo-card { flex: 0 0 calc((100% - 20px) / 2); } }
@media (max-width: 520px) { .empresas-track .logo-card { flex: 0 0 100%; } }

/* =========================================================
   TEMOS ORGULHO (galeria)
   ========================================================= */
.orgulho-fotos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.orgulho-fotos .foto { aspect-ratio: 4/3; border-radius: 8px; overflow: hidden; background: linear-gradient(150deg,#2a2f34,#0d0d0d); cursor: pointer; }
.orgulho-fotos .foto img { transition: transform .35s ease; }
.orgulho-fotos .foto:hover img { transform: scale(1.05); }
.orgulho-fotos .foto img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 860px) { .orgulho-fotos { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .orgulho-fotos { grid-template-columns: 1fr; } }

/* =========================================================
   DEPOIMENTOS
   ========================================================= */
/* Nota agregada (topo) */
.depo-agg { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 38px; }
.depo-agg .linha { display: flex; align-items: center; gap: 12px; }
.depo-agg .nota { font-family: var(--font-body); font-weight: 800; font-size: 2.4rem; line-height: 1; color: var(--dark); }
.depo-agg .stars { display: flex; gap: 3px; }
.depo-agg .stars svg { width: 26px; height: 26px; color: #FBBC05; }
.depo-agg .sub { display: flex; align-items: center; gap: 7px; color: #666; font-size: 1rem; }
.depo-agg .sub .g { width: 20px; height: 20px; }

/* Slider */
.depo-viewport { overflow: hidden; }
.depo-track { display: flex; gap: 20px; transition: transform .7s cubic-bezier(.4,.15,.2,1); align-items: stretch; }
.depo-track .depo-card { flex: 0 0 calc((100% - 40px) / 3); }

/* Card estilo avaliação Google */
.depo-card {
  background: #fff; color: var(--dark);
  border: 1px solid #eee; border-radius: 12px;
  box-shadow: 0 12px 30px -20px rgba(0,0,0,.35);
  padding: 26px 24px; display: flex; flex-direction: column;
}
.depo-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.depo-av { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 1.15rem; flex: none; overflow: hidden; }
.depo-av img { width: 100%; height: 100%; object-fit: cover; }
.depo-who { min-width: 0; }
.depo-who .nm { font-weight: 700; font-size: 1rem; color: var(--dark); line-height: 1.2; }
.depo-who .src { display: flex; align-items: center; gap: 5px; font-size: .9rem; color: #8a8a8a; margin-top: 3px; }
.depo-who .src .g { width: 15px; height: 15px; }
.depo-stars { display: flex; gap: 2px; margin-bottom: 12px; }
.depo-stars svg { width: 18px; height: 18px; color: #FBBC05; }
.depo-card p { font-size: 1rem; line-height: 1.65; margin: 0; color: #454545; flex: 1; }

.depo-nav { display: flex; justify-content: center; gap: 10px; margin-top: 30px; }
.depo-nav button {
  width: 42px; height: 42px; display: grid; place-items: center;
  background: transparent; border: 1px solid #cfcfcf; color: var(--dark);
  border-radius: 50%; cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
.depo-nav button:hover { background: var(--dark); color: #fff; border-color: var(--dark); }
.depo-nav button svg { width: 18px; height: 18px; }
@media (max-width: 900px) { .depo-track .depo-card { flex: 0 0 calc((100% - 20px) / 2); } }
@media (max-width: 640px) { .depo-track .depo-card { flex: 0 0 100%; } }

/* ---- Dicas (blog cards) ---- */
.dicas-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.dica-card { background: #fff; border-radius: 8px; overflow: hidden; border: 1px solid #eee; transition: transform .2s, box-shadow .2s; }
.dica-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px -20px rgba(0,0,0,.3); }
.dica-card .thumb { aspect-ratio: 16/10; background: linear-gradient(150deg,#2a2f34,#0d0d0d); }
.dica-card .thumb img { width: 100%; height: 100%; object-fit: cover; }
.dica-card .corpo { padding: 22px 20px; }
.dica-card h3 { font-size: 1rem; font-weight: 700; color: var(--dark); line-height: 1.4; margin-bottom: 16px; }
.dica-card .ler { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--dark); }
.dica-card .ler svg { width: 13px; height: 13px; color: var(--cyan-strong); }
.dica-card:hover .ler { color: var(--cyan-strong); }
@media (max-width: 860px) { .dicas-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; } }

/* ---- Galeria (página pública) ---- */
.galeria-tabs { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 34px; }
.gtab {
  padding: 9px 20px; border: 1px solid #ddd; background: #fff; border-radius: 100px;
  font-weight: 700; font-size: .9rem; cursor: pointer; color: #1b1b1b; transition: .2s;
}
.gtab:hover { border-color: var(--dark); }
.gtab.active { background: var(--dark); color: #fff; border-color: var(--dark); }
.gtab .n { opacity: .55; font-weight: 600; margin-left: 4px; }

/* ---------- Galeria: dois formatos ----------
   O numero de colunas vem de --gal-colunas, posta no HTML a partir das
   Configuracoes. No celular ela e sobrescrita, porque 4 colunas num
   telefone viram selos ilegiveis. */
.galeria-grid { --gal-colunas: 4; }
.gitem { position: relative; display: block; overflow: hidden; border-radius: 6px;
         cursor: zoom-in; background: #ececec; }
.gitem img { display: block; width: 100%; transition: transform .35s ease; }
.gitem:hover img { transform: scale(1.07); }
.gitem.hidden { display: none; }

/* GRADE: tudo quadrado e do mesmo tamanho. Recorta as fotos. */
.galeria-grade { display: grid; grid-template-columns: repeat(var(--gal-colunas), 1fr); gap: 12px; }
.galeria-grade .gitem { aspect-ratio: 1; }
.galeria-grade .gitem img { height: 100%; object-fit: cover; }

/* MOSAICO: cada foto na proporcao original. Colunas do CSS, e nao grid,
   porque assim a altura de cada foto e livre e o encaixe sai sozinho -
   sem JS medindo imagem, que sempre erra enquanto elas ainda carregam. */
.galeria-mosaico { columns: var(--gal-colunas); column-gap: 12px; }
.galeria-mosaico .gitem {
    /* o break-inside e o que impede a foto de ser cortada ao meio na
       virada de coluna */
    break-inside: avoid;
    margin: 0 0 12px;
    width: 100%;
}
.galeria-mosaico .gitem img { height: auto; }

/* Legenda sobre a foto, so no hover e so em tela de computador - no toque
   nao existe hover, e ela ficaria permanente por cima da imagem. */
.gitem-legenda {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 20px 12px 10px;
    background: linear-gradient(to top, rgba(0,0,0,.78), transparent);
    color: #fff; font-size: .9rem; line-height: 1.35;
    opacity: 0; transition: opacity .25s ease; pointer-events: none;
}
@media (hover: hover) { .gitem:hover .gitem-legenda { opacity: 1; } }
@media (hover: none) { .gitem-legenda { display: none; } }

@media (max-width: 820px) {
    .galeria-grade { grid-template-columns: repeat(3, 1fr); }
    .galeria-mosaico { columns: 3; }
}
@media (max-width: 520px) {
    .galeria-grade { grid-template-columns: repeat(2, 1fr); }
    .galeria-mosaico { columns: 2; }
}

.galeria-more { text-align: center; margin-top: 36px; }
.galeria-vazia { text-align: center; color: #888; padding: 40px 0; }

/* ---- Lightbox (galeria orgulho) ---- */
.lightbox { position: fixed; inset: 0; z-index: 300; background: rgba(0,0,0,.93); display: none; align-items: center; justify-content: center; }
.lightbox.open { display: flex; }
.lb-palco { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.lb-img { max-width: 90vw; max-height: 78vh; object-fit: contain; border-radius: 4px; box-shadow: 0 20px 60px rgba(0,0,0,.6); }
.lb-rodape { display: flex; flex-direction: column; align-items: center; gap: 4px;
             max-width: 90vw; text-align: center; }
.lb-legenda { color: #fff; font-size: 1rem; line-height: 1.4; }
.lb-contador { color: rgba(255,255,255,.6); font-size: .9rem;
               font-variant-numeric: tabular-nums; }
/* uma foto so: as setas nao levam a lugar nenhum */
.lightbox.lb-sozinha .lb-prev, .lightbox.lb-sozinha .lb-next { display: none; }
.lb-close, .lb-prev, .lb-next {
  position: absolute; background: rgba(255,255,255,.12); border: 0; color: #fff; cursor: pointer;
  display: grid; place-items: center; border-radius: 50%; transition: background .2s, color .2s; line-height: 1;
}
.lb-close { top: 20px; right: 24px; width: 46px; height: 46px; font-size: 1.7rem; }
.lb-prev, .lb-next { top: 50%; transform: translateY(-50%); width: 54px; height: 54px; font-size: 2.1rem; }
.lb-prev { left: 20px; } .lb-next { right: 20px; }
/* era var(--cyan), heranca do tema de onde este CSS veio - o site nao tem
   ciano nenhum. Passa a usar a cor da marca, que o cliente configura. */
.lb-close:hover, .lb-prev:hover, .lb-next:hover {
    background: var(--color-primary, #E01B22); color: #fff; }
.lb-count { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); color: #fff; font-size: .9rem; letter-spacing: .05em; opacity: .8; }
@media (max-width: 560px) { .lb-prev, .lb-next { width: 44px; height: 44px; font-size: 1.7rem; } .lb-prev { left: 8px; } .lb-next { right: 8px; } }


/* ============ PÁGINAS DE SERVIÇO ============ */
.page-banner {
  background: #0a0a0a url('../img/banner-pagina-interna.jpg') no-repeat right center / cover;
  color: #fff;
  min-height: 210px;
  display: flex;
  align-items: center;
}
.page-banner-title {
  font-family: var(--font-tech);
  text-transform: uppercase;
  font-size: clamp(2rem, 5vw, 3.2rem);
  letter-spacing: 2px;
  line-height: 1;
}
.page-banner-sub { margin: 12px 0 0; font-weight: 600; text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.95rem; color: var(--cyan); }
.page-banner-desc { margin: 12px 0 0; font-size: 1.05rem; line-height: 1.5; color: rgba(255,255,255,0.85); max-width: 600px; }

/* =========================================================
   PÁGINA DE SERVIÇO
   ========================================================= */
.pg-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2em; font-size: 12px; color: #0b8797; margin-bottom: 14px; }
.pg-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--cyan); }
.pg-titulo { font-family: var(--font-tech); text-transform: uppercase; color: var(--dark); font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: 2px; line-height: 1.15; margin-bottom: 18px; }

.pg-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 60px); align-items: center; }
.pg-intro.rev .foto { order: 2; }
.pg-intro .foto img { border-radius: 14px; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.pg-intro .txt p { color: #555; font-size: 1rem; line-height: 1.85; margin: 0 0 16px; }
.pg-intro .txt p:last-child { margin-bottom: 0; }
@media (max-width: 820px) { .pg-intro { grid-template-columns: 1fr; } .pg-intro.rev .foto { order: 0; } }

.pg-difs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dif { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 26px 24px; transition: transform .2s, box-shadow .2s, border-color .2s; }
.dif:hover { transform: translateY(-4px); border-color: var(--cyan); box-shadow: 0 18px 40px -22px rgba(0,0,0,.2); }
.dif .ico { width: 48px; height: 48px; border-radius: 11px; display: grid; place-items: center; background: rgba(153,255,255,.2); color: #0b8797; margin-bottom: 16px; }
.dif .ico svg { width: 25px; height: 25px; }
.dif h3 { font-family: var(--font-body); font-weight: 700; font-size: 1.08rem; color: var(--dark); margin-bottom: 8px; }
.dif p { color: #555; font-size: 1rem; line-height: 1.6; margin: 0; }
@media (max-width: 860px) { .pg-difs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .pg-difs { grid-template-columns: 1fr; } }

/* Faixa CTA de serviço */
.pg-cta { background: var(--cyan); color: var(--dark); text-align: center; }
.pg-cta h2 { color: var(--dark); }
.pg-cta p { color: #0a4a52; max-width: 60ch; margin: 16px auto 28px; font-size: 1.08rem; }

/* Cards "Nossos serviços" (ícone + título + itens) */
.serv-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.serv-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 26px 22px; transition: transform .2s, border-color .2s, box-shadow .2s; }
.serv-card:hover { transform: translateY(-4px); border-color: var(--cyan); box-shadow: 0 18px 40px -22px rgba(0,0,0,.2); }
.serv-card .serv-top { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.serv-card img { width: 44px; height: 44px; object-fit: contain; flex: none; }
.serv-card img[src$="icon-polimento.png"] { filter: brightness(0); }
.serv-card .nome { font-family: var(--font-tech); text-transform: uppercase; font-size: .95rem; letter-spacing: 1px; color: var(--dark); line-height: 1.2; }
.serv-itens { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.serv-itens li { display: flex; align-items: flex-start; gap: 9px; font-size: .95rem; color: #555; line-height: 1.4; }
.serv-itens li::before { content: "✓"; color: #0b8797; font-weight: 800; flex: none; }
@media (max-width: 980px) { .serv-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .serv-cards { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .page-banner { min-height: 150px; } }

/* ===== Páginas de serviço (removidas do site; CSS mantido) ===== */
/* banner sem depender de imagem externa; usa cor escura + imagem opcional inline */
.page-banner { background: #0a0a0a url('../img/banner-pagina-interna.jpg') no-repeat center / cover !important; }
.page-banner.has-img::before { content:""; position:absolute; inset:0; background: inherit; }
.serv-card { text-decoration: none; }
.serv-card p.serv-desc { color:#555; font-size:.95rem; line-height:1.5; margin:0; }
.serv-card { position: relative; }

/* Linha separadora entre seções da home */
.home-hr { border: 0; border-top: 1px solid #e7e9e9; margin: -40px 0 48px; }
