:root{
  --header-h: 88px;       /* altura do cabeçalho fixo */
  --hero-h-mb: 420px;     /* mobile */
  --hero-h-dk: 800px;     /* desktop 1920x800 */
  --hero-pull-mb: 100px;  /* quanto o conteúdo "sobe" no mobile */
  --hero-pull-dk: 180px;  /* quanto o conteúdo "sobe" no desktop */
}

/* ===== Base/prevenções ===== */
html, body { overflow-x: hidden; }

/* Wrapper p/ sticky footer */
#__page{ min-height:100dvh; display:flex; flex-direction:column; }
#__page > main{ flex:1 0 auto; }

/* ===== HERO ===== */
.hero-wrap{
  position: relative;
  margin-top: var(--header-h);
  margin-bottom: calc(-1 * var(--hero-pull-mb));
}
@media (min-width:1024px){
  .hero-wrap{ margin-bottom: calc(-1 * var(--hero-pull-dk)); }
}
.hero{
  height: var(--hero-h-mb);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  display: block;
}
@media (min-width:1024px){
  .hero{ height: var(--hero-h-dk); }
}
.hero-wrap + *{
  position: relative;
  z-index: 1;
  margin-top: 0 !important;
  padding-top: 0 !important;
  background-clip: padding-box;
}
.hero-wrap + * > :first-child{ margin-top:0 !important; padding-top:0 !important; }
.hero-wrap + * > .container,
.hero-wrap + * > .container-max{ margin-top:0 !important; padding-top:0 !important; }
.hero-wrap + section{ padding-top:0 !important; }
#home-hero{ padding-bottom:2rem; }
@media (min-width:768px){ #home-hero{ padding-bottom:3rem; } }
#home-cta-wrap{ margin-top:-2.25rem !important; }
@media (min-width:768px){  #home-cta-wrap{ margin-top:-3.75rem !important; } }
@media (min-width:1024px){ #home-cta-wrap{ margin-top:-5.5rem !important; } }
@media (min-width:1280px){ #home-cta-wrap{ margin-top:-6.5rem !important; } }

/* ===== Layers / Footer Safeguard (limpo, sem duplicatas) ===== */
section.relative{ position:relative; isolation:isolate; overflow:hidden; }
section.relative > .absolute,
section.relative [data-decor],
.absolute[data-decor]{ z-index:0; pointer-events:none; }
section.relative .container-max,
.home-cta-card{ position:relative; z-index:1; }

/* Ajuste de fim de página: sem “buraco” antes do footer */
main{ position:relative; min-height:calc(100dvh - 220px); }
main > section:last-of-type{ margin-bottom:0; padding-bottom:0; }

/* Footer sempre por cima, sem exagero */
#site-footer, footer{ position:relative; z-index:10; background:#fff; }

/* Backdrop mobile menu */
.offcanvas[aria-hidden="true"]{ display:none !important; }

/* ===== Utilitários / Cards / Botões ===== */
.card{
  background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  padding:16px; box-shadow:0 10px 24px rgba(16,24,40,.08);
}
.btn-cta{
  background:#047857; color:#fff; font-weight:600; border-radius:10px;
  padding:.65rem 1rem; text-decoration:none; transition:.2s;
  display:inline-flex; align-items:center; gap:.5rem;
}
.btn-cta:hover{ background:#065f46; }
.divider{ height:1px; background:#eef2f7; margin:14px 0; }
.dot{ flex:0 0 8px; height:8px; border-radius:999px; background:#10b981; margin-top:.35rem }

/* TOC / Prosa */
.toc a{ color:#065f46; text-decoration:none; }
.toc a:hover{ text-decoration:underline; }
.prose-lite h2{ font-size:1.5rem; line-height:1.25; margin:2.2rem 0 .8rem; font-weight:700; color:#0f172a; }
.prose-lite h3{ font-size:1.15rem; margin:1.6rem 0 .5rem; font-weight:700; color:#0f172a; }
.prose-lite p{ color:#334155; margin:.8rem 0; line-height:1.75; }
.prose-lite ul{ margin:.5rem 0 1rem 1.1rem; padding-left:1rem; color:#334155; }
.prose-lite ul li{ list-style:disc; margin:.25rem 0; }
.prose-lite details{ background:#fff; border:1px solid #e5e7eb; border-radius:10px; padding:.75rem .9rem; }
.prose-lite summary{ cursor:pointer; font-weight:600; color:#0f172a; }
.prose-lite summary::-webkit-details-marker{ display:none; }

/* Inputs / Textareas */
.input{
  width:100%; background:#fff; border:1px solid #e5e7eb; border-radius:10px;
  padding:.6rem .8rem; outline:0;
}
.input:focus{ border-color:#10b981; box-shadow:0 0 0 3px rgba(16,185,129,.15); }
.textarea{
  width:100%; background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  padding:.75rem 1rem; outline:0; resize:vertical;
}
.textarea:focus{ border-color:#10b981; box-shadow:0 0 0 3px rgba(16,185,129,.15); }

/* Chips */
.chip{
  display:inline-block; padding:.25rem .6rem; border-radius:999px;
  background:#ecfdf5; color:#065f46; font-weight:600; font-size:.75rem;
}
.chip-active{ background:#10b981; color:#0b1b13; }

/* Grids */
.svc-grid{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:20px; }
@media (min-width:640px){ .svc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .svc-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.svc-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px;
  padding:14px; display:flex; flex-direction:column; transition:.2s;
  box-shadow:0 8px 20px rgba(16,24,40,.06);
}
.svc-card:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(16,24,40,.10); }
.svc-thumb{
  width:100%; aspect-ratio:16/9; background:#0b3b2f;
  background-image:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.1)), var(--bg);
  background-size:cover; background-position:center; border-radius:10px;
}

.blog-grid{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:20px; }
@media (min-width:640px){ .blog-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .blog-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.blog-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px;
  padding:14px; display:flex; flex-direction:column; transition:.2s;
  box-shadow:0 8px 20px rgba(16,24,40,.06);
}
.blog-card:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(16,24,40,.10); }
.blog-thumb{
  width:100%; aspect-ratio:16/9; display:block;
  background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.05)), var(--bg);
  background-size:cover; background-position:center; border-radius:10px;
}

.folio-grid{ display:grid; grid-template-columns:repeat(1,minmax(0,1fr)); gap:20px; }
@media (min-width:640px){ .folio-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .folio-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.folio-card{
  background:#fff; border:1px solid #e5e7eb; border-radius:14px;
  padding:14px; display:flex; flex-direction:column; transition:.2s;
  box-shadow:0 8px 20px rgba(16,24,40,.06);
}
.folio-card:hover{ transform:translateY(-2px); box-shadow:0 12px 28px rgba(16,24,40,.10); }
.folio-thumb{
  width:100%; aspect-ratio:16/9; display:block;
  background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.05)), var(--bg);
  background-size:cover; background-position:center; border-radius:10px;
}

/* Home CTA */
.home-cta-card{
  border:1px solid rgba(2,6,23,.08);
  box-shadow:0 16px 40px rgba(2,6,23,.14);
  overflow:hidden;
}
.home-cta-left{
  background:linear-gradient(135deg,#0f766e 0%, #065f46 100%);
  color:#fff;
}
.home-cta-left .text-xs{ letter-spacing:.12em; opacity:.9; }
.home-cta-right .form-row{ display:flex; gap:12px; flex-wrap:wrap; }
.home-cta-right input{ height:48px; border:1px solid #e5e7eb; }
.home-cta-right .btn{ height:48px; border-radius:12px; }
.home-cta-right .btn-primary{ background:#111827; color:#fff; }
@media (min-width:768px){ .home-cta-card{ border-radius:16px; } }

/* Testimonials: título e decor */
#home-testimonials .hero-title{
  font-weight:600; line-height:1.05;
  font-size:clamp(1.6rem, 4vw, 2.6rem);
  max-width:16ch;
}
#home-testimonials .hero-title .title-line{ display:block; }
#home-testimonials [data-decor]{ z-index:0; pointer-events:none; }
@media (max-width: 1023px){
  #home-testimonials .decor-arc{ display:none; }
}
@media (min-width: 1024px){
  #home-testimonials .decor-arc{
    width:720px; height:720px; left:-520px; top:260px; opacity:.35; border-width:1px;
  }
  #home-testimonials .decor-sun{ left:-320px; bottom:-180px; }
}
/* ==== FIX: hero da página Serviços abaixo do header fixo ==== */
.service-hero{
  position: relative;
  margin-top: var(--header-h);   /* empurra para baixo do header fixo */
  padding: 56px 0;
  color: #fff;
  background: #064e3b;           /* o mesmo verde do layout */
  z-index: 2;                    /* acima de qualquer decor do topo */
}

/* Título do hero de Serviços (ajuste de tamanho aqui) */
.service-title{
  font-weight: 800;
  line-height: 1.15;
  /* mude aqui se quiser menor/maior */
  font-size: clamp(1.8rem, 3.2vw, 2.4rem);
}
/* ===== Serviços — colar no FINAL do CSS ===== */
.service-hero{
  margin-top: 0 !important;   /* encosta o verde no menu */
  padding: 56px 0;            /* mantém o respiro interno do hero */
}

/* (opcional) Se algum dia o header voltar a ser FIXED,
   basta adicionar a classe .header-fixed no <body> que o offset reaparece */
.header-fixed .service-hero{
  margin-top: var(--header-h) !important;
}
