/* ===== CORES DA MARCA: ajuste aqui ===== */
:root {
  --color-primary: #0b4a8f;
  --color-primary-dark: #083a73;
  --color-accent: #29b6f6; /* usada só em foco/detalhes */
  --color-dark: #06213f;
  --color-light: #f3f6f9;
  --color-text: #1c2b3a;
  --color-muted: #566678;
  --color-line: #dbe3eb;
  --color-white: #fff;
  --radius: 6px;
  --header-h: 76px;
}

/* ===== Reset e base ===== */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  scroll-behavior: smooth;
}
body {
  font: 400 16.5px/1.65 "IBM Plex Sans", system-ui, sans-serif;
  color: var(--color-text);
  background: var(--color-white);
  overflow-x: hidden;
}
body.lock {
  overflow: hidden;
}
h1,
h2,
h3 {
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--color-dark);
}
h1 {
  font-size: clamp(2.1rem, 4.4vw, 3.4rem);
}
h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: 0.9rem;
}
h3 {
  font-size: 1.15rem;
  margin-bottom: 0.5rem;
}
p {
  max-width: 68ch;
}
a {
  color: inherit;
}
img {
  max-width: 100%;
  display: block;
}
:focus-visible {
  outline: 3px solid var(--color-accent);
  outline-offset: 3px;
}
section[id] {
  scroll-margin-top: var(--header-h);
}

/* ===== Layout e botões ===== */
.container {
  width: min(1180px, 92%);
  margin: auto;
}
section {
  padding: clamp(56px, 7vw, 96px) 0;
}
.section-light {
  background: var(--color-light);
}
.section-dark {
  background: var(--color-dark);
  color: var(--color-white);
}
.section-dark h2,
.section-dark h3 {
  color: var(--color-white);
}
.section-dark > .container > p,
.section-dark > .container > h2 + p {
  color: rgba(255, 255, 255, 0.82);
}
section > .container:not(.article) > h2 + p {
  color: var(--color-muted);
}
.btn {
  display: inline-block;
  padding: 0.85em 1.7em;
  border-radius: 4px;
  background: var(--color-primary);
  color: var(--color-white);
  border: 1px solid var(--color-primary);
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.btn:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}
.btn-outline {
  background: transparent;
  color: var(--color-primary);
}
.btn-outline:hover {
  background: var(--color-primary);
  color: var(--color-white);
}
.hero .btn,
.section-dark .btn {
  background: var(--color-white);
  border-color: var(--color-white);
  color: var(--color-dark);
}
.hero .btn:hover,
.section-dark .btn:hover {
  background: #e3ecf5;
  border-color: #e3ecf5;
}
.hero .btn-outline,
.section-dark .btn-outline {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.7);
  color: var(--color-white);
}
.hero .btn-outline:hover,
.section-dark .btn-outline:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: var(--color-white);
}

/* ===== Header e navegação ===== */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  height: var(--header-h);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
/* O fundo fica num pseudo-elemento: backdrop-filter direto no header quebraria o menu mobile (position: fixed) */
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(6, 33, 63, 0.35);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  backdrop-filter: blur(10px) saturate(140%);
  transition: background 0.3s ease;
}
.site-header.scrolled::before,
.site-header.menu-open::before {
  background: rgba(255, 255, 255, 0.96);
}
.site-header.scrolled,
.site-header.menu-open {
  border-bottom-color: var(--color-line);
}
.site-header.scrolled {
  box-shadow: 0 2px 16px rgba(6, 33, 63, 0.1);
}
.site-header .container {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}
.logo img {
  height: 56px;
  width: auto;
}
nav {
  display: flex;
  align-items: center;
  gap: 2px;
  white-space: nowrap;
}
nav a {
  text-decoration: none;
  padding: 0.5em 0.8em;
  font-size: 0.93rem;
  font-weight: 500;
  color: var(--color-text);
  border-bottom: 2px solid transparent;
  transition: color 0.2s;
}
nav a:hover {
  color: var(--color-primary);
}
nav a.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-primary);
}
nav a.nav-cta {
  margin-left: 8px;
  padding: 0.5em 1em;
  font-size: 0.85rem;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: 4px;
  border-bottom: 0;
  font-weight: 600;
}
nav a.nav-cta:hover {
  background: var(--color-primary-dark);
  color: var(--color-white);
}
.nav-contact {
  display: none;
}
.menu-toggle {
  display: none;
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 4px;
  border: 1px solid var(--color-line);
  background: var(--color-white);
  cursor: pointer;
}
.menu-toggle i {
  position: absolute;
  left: 12px;
  width: 18px;
  height: 2px;
  background: var(--color-dark);
}
.menu-toggle i:nth-child(1) {
  top: 14px;
}
.menu-toggle i:nth-child(2) {
  top: 21px;
}
.menu-toggle i:nth-child(3) {
  top: 28px;
}
.menu-toggle.open i:nth-child(1) {
  top: 21px;
  transform: rotate(45deg);
}
.menu-toggle.open i:nth-child(2) {
  opacity: 0;
}
.menu-toggle.open i:nth-child(3) {
  top: 21px;
  transform: rotate(-45deg);
}

/* Header transparente (topo da página): textos em branco (o logo mantém as cores originais) */
.site-header:not(.scrolled):not(.menu-open) nav a:not(.nav-cta) {
  color: var(--color-white);
  text-shadow: 0 1px 8px rgba(6, 33, 63, 0.45);
}
.site-header:not(.scrolled):not(.menu-open) nav a:not(.nav-cta)::after {
  background: var(--color-white);
}
.site-header:not(.scrolled):not(.menu-open) nav a.nav-cta {
  background: var(--color-white);
  color: var(--color-dark);
}
.site-header:not(.scrolled):not(.menu-open) nav a.nav-cta:hover {
  background: #e3ecf5;
}
.site-header:not(.scrolled):not(.menu-open) .menu-toggle {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.55);
}
.site-header:not(.scrolled):not(.menu-open) .menu-toggle i {
  background: var(--color-white);
}

/* ===== Hero ===== */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: min(76vh, 660px);
  padding: calc(90px + var(--header-h)) 0 90px;
  color: var(--color-white);
  /* Para trocar a foto do topo, troque o arquivo abaixo */
  background:
    linear-gradient(90deg, rgba(6, 33, 63, 0.95) 0%, rgba(6, 33, 63, 0.84) 45%, rgba(6, 33, 63, 0.5) 100%),
    url("../img/home_banner.png") center / cover no-repeat,
    var(--color-dark);
}
.hero-content {
  max-width: 680px;
}
.hero h1 {
  color: var(--color-white);
}
.hero p {
  margin: 1.25rem 0 2rem;
  font-size: 1.15rem;
  color: rgba(255, 255, 255, 0.88);
}
.hero .hero-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

/* ===== Cabeçalho das páginas internas ===== */
.page-hero {
  background: var(--color-dark);
  color: var(--color-white);
  padding: calc(72px + var(--header-h)) 0 56px;
}
.page-hero h1,
.page-hero h2 {
  color: var(--color-white);
}
.page-hero p {
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.85);
  font-size: 1.1rem;
}

/* ===== Vídeo institucional ===== */
.institutional {
  display: grid;
  grid-template-columns: 1fr 1.7fr;
  gap: 56px;
  align-items: center;
}
.institutional-video {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--color-dark);
  color: var(--color-white);
  display: grid;
  place-items: center;
  text-align: center;
}
.institutional-video iframe,
.institutional-video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
}

/* ===== Cards e seções ===== */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
  gap: 24px;
  margin-top: 40px;
}
#posts-list,
#videos-list {
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
}
.card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--color-white);
  color: var(--color-text);
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.card .card-image {
  overflow: hidden;
}
.card img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.card .card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
  padding: 24px;
}
.card .card-body h3 {
  margin: 0;
}
.card .card-body p {
  font-size: 0.95rem;
  color: var(--color-muted);
}
.card .card-body a {
  margin-top: auto;
  align-self: flex-start;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.card .card-body a:hover {
  border-bottom-color: currentColor;
}
.card-cover {
  display: grid;
  place-items: center;
  aspect-ratio: 3 / 2;
  padding: 20px;
  background: var(--color-dark);
  color: var(--color-white);
  font-size: 1.05rem;
  font-weight: 500;
  text-align: center;
}
.meta {
  color: var(--color-muted);
  font-size: 0.85rem;
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.split img {
  width: 100%;
  border-radius: var(--radius);
}
.check-list {
  list-style: none;
  display: grid;
  gap: 10px;
  margin-top: 20px;
}
.check-list li {
  position: relative;
  padding-left: 28px;
}
.check-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0.35em;
  width: 6px;
  height: 11px;
  border: solid var(--color-primary);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.section-dark .check-list li::before {
  border-color: var(--color-white);
}
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
.stats div {
  padding: 8px 32px;
  border-left: 1px solid rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.82);
}
.stats div:first-child {
  padding-left: 0;
  border-left: 0;
}
.stats strong {
  display: block;
  font-size: clamp(2.2rem, 4.5vw, 3.1rem);
  font-weight: 600;
  line-height: 1.1;
  color: var(--color-white);
}
.cases-track {
  display: flex;
  gap: 24px;
  margin-top: 32px;
  padding: 4px 0 24px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}
.cases-track .card {
  flex: 0 0 min(320px, 82vw);
  scroll-snap-align: start;
}
.mvv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: 24px;
}
.mvv-grid > div {
  padding: 28px 30px;
  background: var(--color-light);
  border-top: 3px solid var(--color-primary);
  border-radius: var(--radius);
}
section h2 + .mvv-grid {
  margin-top: 32px;
}
.testimonial span {
  display: block;
  margin-top: 14px;
  font-weight: 600;
  color: var(--color-primary);
}

/* ===== Formulário, blog e mapa ===== */
form {
  display: grid;
  gap: 14px;
}
input,
select,
textarea {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid #bccad8;
  border-radius: 4px;
  font: inherit;
  background: var(--color-white);
  transition: border-color 0.2s;
}
input:focus,
textarea:focus {
  border-color: var(--color-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(11, 74, 143, 0.15);
}
.article {
  max-width: 760px;
  margin: auto;
}
.article p,
.article li {
  font-size: 1.05rem;
  line-height: 1.75;
}
.article p {
  max-width: none;
  margin-bottom: 1.2rem;
}
.article > img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius);
  margin-bottom: 2rem;
}
.article h2 {
  margin-top: 2.4rem;
  margin-bottom: 0.8rem;
  font-size: 1.5rem;
}
.article ul,
.article ol {
  margin-bottom: 1.4rem;
  padding-left: 1.4rem;
}
.article li {
  margin: 0 0 0.7rem;
  padding-left: 0.3rem;
}
.article li::marker {
  color: var(--color-primary);
  font-weight: 600;
}
.article-cta {
  margin-top: 2.5rem;
  padding: 28px 30px;
  background: var(--color-light);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius);
}
.article-cta p {
  margin-bottom: 1.2rem;
  font-weight: 500;
  color: var(--color-dark);
}
.article-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.article > .article-actions {
  margin-top: 2rem;
}
.page-hero h1 {
  max-width: 880px;
}
.page-hero .meta {
  margin-top: 1rem;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.78);
}
iframe {
  width: 100%;
  height: 340px;
  border: 0;
  border-radius: var(--radius);
}
#contato .split > div:last-child p {
  margin-bottom: 0.6rem;
}

/* ===== Rodapé e botão do WhatsApp ===== */
footer {
  background: var(--color-dark);
  color: #c9d6e3;
  padding: 64px 0 28px;
}
footer .footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 0.8fr 1.6fr 0.8fr;
  gap: 40px;
}
footer strong {
  display: block;
  margin-bottom: 10px;
  color: var(--color-white);
  font-weight: 600;
}
footer a {
  display: block;
  overflow-wrap: break-word;
  padding: 3px 0;
  font-size: 0.95rem;
  text-decoration: none;
}
footer a:hover {
  color: var(--color-white);
  text-decoration: underline;
}
footer .logo {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 10px 14px;
  background: var(--color-white);
  border-radius: 4px;
}
footer .logo img {
  height: 44px;
}
footer .copyright {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  max-width: none;
  font-size: 0.85rem;
  color: #93a6b9;
}
.whatsapp-float {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 60;
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #11803f;
  color: var(--color-white);
  text-decoration: none;
  box-shadow: 0 6px 18px rgba(6, 33, 63, 0.28);
  transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}
.whatsapp-float svg {
  width: 30px;
  height: 30px;
}
.whatsapp-float span {
  position: absolute;
  right: 72px;
  padding: 8px 14px;
  border-radius: 4px;
  background: var(--color-dark);
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transform: translateX(8px);
  transition: opacity 0.2s, transform 0.2s, visibility 0s 0.2s;
}

/* ===== Nossa equipe (carrossel) ===== */
.team-carousel {
  margin-top: 40px;
}
.team-viewport {
  overflow: hidden;
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  background: var(--color-white);
}
.team-track {
  display: flex;
  touch-action: pan-y;
  transition: transform 0.45s ease;
}
.team-slide {
  min-width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.team-photo {
  position: relative;
  min-height: 380px;
  overflow: hidden;
}
.team-photo img,
.team-photo .card-cover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
}
.team-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  padding: clamp(28px, 5vw, 56px);
}
.team-text h3 {
  margin: 0;
  font-size: clamp(1.4rem, 2.6vw, 1.8rem);
}
.team-text p {
  color: var(--color-muted);
}
.team-role {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-primary);
}
.carousel-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
}
.carousel-btn {
  width: 42px;
  height: 42px;
  border-radius: 4px;
  border: 1px solid var(--color-primary);
  background: transparent;
  color: var(--color-primary);
  font: 600 1.1rem "IBM Plex Sans", sans-serif;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.carousel-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}
.carousel-dots {
  display: flex;
  gap: 10px;
}
.carousel-dots button {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #b6c4d2;
  cursor: pointer;
}
.carousel-dots button.active {
  background: var(--color-primary);
}

/* ===== Nossas redes (vídeos) ===== */
.video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--color-dark);
}
.video-frame.vertical {
  aspect-ratio: 9 / 16;
}
.video-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 12px;
  border: 0;
  padding: 0;
  background: none;
  color: var(--color-white);
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}
.video-thumb img,
.video-thumb video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  pointer-events: none;
}
.video-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(6, 33, 63, 0.35);
}
.video-play {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--color-white);
}
.video-play::before {
  content: "";
  margin-left: 4px;
  border-style: solid;
  border-width: 9px 0 9px 15px;
  border-color: transparent transparent transparent var(--color-dark);
}
.video-thumb small {
  position: relative;
  z-index: 1;
  font-size: 0.95rem;
}
.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 40px;
}

/* ===== Janela do vídeo ===== */
.video-modal {
  width: min(960px, 94vw);
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  border: 0;
  background: transparent;
  overflow: visible;
}
.video-modal::backdrop {
  background: rgba(6, 33, 63, 0.88);
}
.video-modal.vertical {
  width: min(420px, 94vw, calc(85vh * 9 / 16));
}
.video-modal-body {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius);
  background: #000;
  color: var(--color-white);
  text-align: center;
}
.video-modal.vertical .video-modal-body {
  aspect-ratio: 9 / 16;
}
.video-modal iframe,
.video-modal video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
}
.video-empty {
  padding: 24px;
  font-size: 1.05rem;
  opacity: 0.85;
}
.video-modal-close {
  position: absolute;
  top: -52px;
  right: 0;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 4px;
  background: var(--color-white);
  color: var(--color-dark);
  font: 600 1rem "IBM Plex Sans", sans-serif;
  cursor: pointer;
}

/* ===== Responsivo ===== */
@media (max-width: 1080px) {
  .menu-toggle {
    display: block;
  }
  nav {
    position: fixed;
    inset: var(--header-h) 0 0 0;
    z-index: 70;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 12px 5vw 40px;
    overflow-y: auto;
    background: var(--color-white);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s, visibility 0s 0.2s;
  }
  nav.open {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.2s;
  }
  nav a {
    padding: 1em 0;
    font-size: 1.05rem;
    border-bottom: 1px solid var(--color-line);
  }
  nav a.active {
    border-bottom-color: var(--color-line);
  }
  nav a.nav-cta {
    margin: 24px 0 0;
    padding: 0.95em 1.2em;
    text-align: center;
  }
  .nav-contact {
    display: block;
    margin-top: 24px;
    font-size: 0.9rem;
    color: var(--color-muted);
  }
}
@media (max-width: 860px) {
  .split,
  .institutional,
  .team-slide {
    grid-template-columns: 1fr;
  }
  .split,
  .institutional {
    gap: 32px;
  }
  .team-photo {
    min-height: 260px;
  }
}
@media (max-width: 600px) {
  .stats {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .stats div,
  .stats div:first-child {
    padding: 14px 0;
    border-left: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
  }
  .stats div:first-child {
    border-top: 0;
  }
}

/* ===== Hovers (só em dispositivos com mouse) ===== */
.card {
  position: relative;
}
.card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  z-index: 2;
  height: 3px;
  background: var(--color-primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.35s ease;
}
.card,
.mvv-grid > div,
.btn,
.carousel-btn,
nav a.nav-cta {
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease,
    color 0.25s ease;
}
.card img,
.card-cover {
  transition: transform 0.5s ease;
}
nav a:not(.nav-cta) {
  position: relative;
}
nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 0.8em;
  right: 0.8em;
  bottom: 0;
  height: 2px;
  background: var(--color-primary);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
}
nav a.active {
  border-bottom-color: transparent;
}
nav a.active::after {
  transform: scaleX(1);
}
.card .card-body a {
  position: relative;
  border-bottom: 0;
}
.card .card-body a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0.35);
  transform-origin: left;
  transition: transform 0.3s ease;
}

@media (hover: hover) {
  .card:hover {
    transform: translateY(-5px);
    border-color: #b4c3d3;
    box-shadow: 0 16px 32px -14px rgba(6, 33, 63, 0.28);
  }
  .card:hover::before {
    transform: scaleX(1);
  }
  .card:hover img,
  .card:hover .card-cover {
    transform: scale(1.05);
  }
  .card .card-body a:hover::after {
    transform: scaleX(1);
  }
  .mvv-grid > div:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px -16px rgba(6, 33, 63, 0.3);
  }
  .btn:hover,
  nav a.nav-cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -8px rgba(6, 33, 63, 0.45);
  }
  .btn:active,
  nav a.nav-cta:active {
    transform: translateY(0);
    box-shadow: none;
  }
  nav a:not(.nav-cta):hover::after {
    transform: scaleX(1);
  }
  .carousel-btn:hover {
    transform: translateY(-2px);
  }
  .carousel-dots button:hover {
    background: var(--color-primary);
  }
  .team-photo img {
    transition: transform 0.6s ease;
  }
  .team-slide:hover .team-photo img {
    transform: scale(1.04);
  }
  .video-thumb:hover .video-play {
    transform: scale(1.12);
  }
  footer a:hover {
    text-decoration: none;
    padding-left: 6px;
  }
  .whatsapp-float:hover {
    background: #0d6a34;
    transform: scale(1.08);
    box-shadow: 0 10px 24px rgba(6, 33, 63, 0.35);
  }
  .whatsapp-float:hover span {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition-delay: 0s;
  }
  .video-modal-close:hover {
    background: #e3ecf5;
  }
}
.video-play {
  transition: transform 0.25s ease;
}
footer a {
  transition: padding 0.2s ease, color 0.2s ease;
}

/* ===== Ajustes de responsividade ===== */
@media (max-width: 1280px) {
  nav a {
    padding: 0.5em 0.6em;
    font-size: 0.9rem;
  }
  nav a:not(.nav-cta)::after {
    left: 0.6em;
    right: 0.6em;
  }
}
@media (max-width: 1080px) {
  nav a:not(.nav-cta)::after {
    display: none;
  }
}
@media (max-width: 960px) {
  footer .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 860px) {
  .hero {
    min-height: 0;
    padding: calc(64px + var(--header-h)) 0 64px;
  }
  .hero p {
    font-size: 1.05rem;
  }
  .page-hero {
    padding: calc(48px + var(--header-h)) 0 40px;
  }
  .team-text {
    padding: 28px 22px;
  }
}
@media (max-width: 600px) {
  footer .footer-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  :root {
    --header-h: 68px;
  }
  body {
    font-size: 16px;
  }
  .logo img {
    height: 48px;
  }
  .hero .hero-actions {
    flex-direction: column;
  }
  .hero .hero-actions .btn,
  .article-actions .btn,
  .social-links .btn,
  #contact-form .btn {
    width: 100%;
    text-align: center;
  }
  .card .card-body {
    padding: 20px;
  }
  iframe {
    height: 300px;
  }
  .carousel-controls {
    gap: 12px;
  }
  .whatsapp-float {
    width: 56px;
    height: 56px;
  }
  .whatsapp-float span {
    display: none;
  }
}
@media (max-width: 380px) {
  .container {
    width: 90%;
  }
  h1 {
    font-size: 1.9rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .card:hover,
  .mvv-grid > div:hover,
  .btn:hover,
  .whatsapp-float:hover {
    transform: none !important;
  }
}

/* ===== Seções centralizadas ===== */
.center-head {
  text-align: center;
}
.center-head > h2,
.center-head > p {
  margin-inline: auto;
}
.center-head .card,
.center-head .team-slide,
.center-head .cases-track {
  text-align: left;
}
.center-head .social-links {
  justify-content: center;
}
.stats {
  text-align: center;
}
@media (min-width: 601px) {
  .stats div:first-child {
    padding-left: 32px;
  }
}

/* ===== Serviços: cards maiores e alinhados ===== */
#services-list {
  grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
  gap: 28px;
}
#services-list .card img {
  aspect-ratio: 4 / 3;
}
#services-list .card .card-body {
  gap: 10px;
  padding: 24px 26px 26px;
}
/* título com no máximo 2 linhas e altura fixa, para todos os cards alinharem */
#services-list .card .card-body h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  min-height: 2.4em;
  font-size: 1.2rem;
}
/* descrição com no máximo 3 linhas */
#services-list .card .card-body p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  margin-bottom: 8px;
}
@media (max-width: 600px) {
  #services-list .card .card-body h3 {
    min-height: 0;
  }
}

/* ===== Header: botão "Trabalhe conosco" ===== */
nav a.nav-cta.nav-cta-alt {
  margin-left: 12px;
  background: transparent;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
}
nav a.nav-cta.nav-cta-alt:hover {
  background: var(--color-primary);
  color: var(--color-white);
}
.site-header:not(.scrolled):not(.menu-open) nav a.nav-cta.nav-cta-alt {
  background: transparent;
  color: var(--color-white);
  border-color: rgba(255, 255, 255, 0.75);
}
.site-header:not(.scrolled):not(.menu-open) nav a.nav-cta.nav-cta-alt:hover {
  background: rgba(255, 255, 255, 0.14);
}
@media (max-width: 1080px) {
  nav a.nav-cta,
  nav a.nav-cta.nav-cta-alt {
    margin: 0;
    padding: 0.95em 1.2em;
    font-size: 1rem;
    text-align: center;
  }
  nav a.nav-cta.nav-cta-alt {
    margin-top: 24px;
    border: 1px solid var(--color-primary);
  }
  nav a.nav-cta:not(.nav-cta-alt) {
    margin-top: 12px;
  }
}

/* ===== Modal: Trabalhe conosco ===== */
.job-modal {
  width: min(680px, 94vw);
  max-width: none;
  max-height: 92vh;
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: var(--color-white);
  color: var(--color-text);
  overflow-y: auto;
  overscroll-behavior: contain;
  box-shadow: 0 24px 60px rgba(6, 33, 63, 0.45);
}
.job-modal::backdrop {
  background: rgba(6, 33, 63, 0.82);
}
.job-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 24px 28px 18px;
  background: var(--color-white);
  border-bottom: 1px solid var(--color-line);
}
.job-head h2 {
  margin-bottom: 4px;
  font-size: 1.5rem;
}
.job-head p {
  font-size: 0.95rem;
  color: var(--color-muted);
}
.job-close {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  background: var(--color-white);
  color: var(--color-dark);
  font: 600 1rem "IBM Plex Sans", sans-serif;
  cursor: pointer;
  transition: background 0.2s;
}
.job-close:hover {
  background: var(--color-light);
}
#job-form {
  gap: 18px;
  padding: 24px 28px 28px;
}
.job-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.job-grid .full {
  grid-column: 1 / -1;
}
.job-modal .field {
  display: grid;
  align-content: start;
  gap: 6px;
  min-width: 0;
  border: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-dark);
}
.job-modal .field legend,
.job-modal .label-text {
  padding: 0;
  margin-bottom: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-dark);
}
.job-modal .field input:not([type="radio"]):not([type="file"]),
.job-modal .field select,
.job-modal .field textarea {
  font-weight: 400;
  font-size: 1rem;
}
.job-modal textarea {
  resize: vertical;
  min-height: 100px;
}
.job-modal select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background: var(--color-white)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%230b4a8f' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E")
    no-repeat right 14px center;
  cursor: pointer;
}
.job-modal select:focus {
  border-color: var(--color-primary);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(11, 74, 143, 0.15);
}
.job-modal select:invalid {
  color: #7a8896;
}
.job-modal .hint {
  min-height: 1.2em;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--color-primary);
}
.segmented {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.segmented label {
  position: relative;
  cursor: pointer;
}
.segmented input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.segmented span {
  display: block;
  padding: 13px 15px;
  border: 1px solid #bccad8;
  border-radius: 4px;
  text-align: center;
  font-weight: 500;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.segmented label:hover span {
  border-color: var(--color-primary);
}
.segmented input:checked + span {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}
.segmented input:focus-visible + span {
  outline: 3px solid var(--color-accent);
  outline-offset: 2px;
}
.dropzone {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 26px 16px;
  border: 2px dashed #9fb3c8;
  border-radius: var(--radius);
  background: var(--color-light);
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.dropzone:hover,
.dropzone.drag {
  border-color: var(--color-primary);
  background: #e8f0f8;
}
.dropzone.has-file {
  border-style: solid;
  border-color: var(--color-primary);
}
.dropzone input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
.dropzone strong {
  font-weight: 600;
  color: var(--color-primary);
  overflow-wrap: anywhere;
}
.dropzone small {
  font-weight: 400;
  color: var(--color-muted);
}
.form-error {
  max-width: none;
  padding: 10px 14px;
  border-left: 3px solid #b3261e;
  border-radius: 4px;
  background: #fdecea;
  font-size: 0.92rem;
  color: #8c1d18;
}
.job-note {
  max-width: none;
  font-size: 0.85rem;
  color: var(--color-muted);
}
.job-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
#job-form .btn {
  width: 100%;
  padding: 1em;
  text-align: center;
}
#job-form .btn-whats {
  background: #11803f;
  border-color: #11803f;
  color: var(--color-white);
}
#job-form .btn-whats:hover {
  background: #0d6a34;
  border-color: #0d6a34;
}
#job-form .btn:disabled {
  opacity: 0.6;
  cursor: wait;
  transform: none;
  box-shadow: none;
}
.form-success {
  max-width: none;
  padding: 10px 14px;
  border-left: 3px solid #11803f;
  border-radius: 4px;
  background: #e6f4ec;
  font-size: 0.92rem;
  color: #0d5a2c;
}
@media (max-width: 600px) {
  .job-grid,
  .job-actions {
    grid-template-columns: 1fr;
  }
  .job-head {
    padding: 18px 18px 14px;
  }
  #job-form {
    padding: 18px 18px 22px;
  }
  .job-modal .field input,
  .job-modal .field select,
  .job-modal .field textarea {
    font-size: 16px; /* evita zoom automático no iPhone */
  }
}
#trabalhe .btn {
  padding: 0.95em 2em;
}

/* ===== Seção: Trabalhe conosco ===== */
.job-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(900px 420px at 88% -10%, rgba(41, 182, 246, 0.2), transparent 60%),
    linear-gradient(135deg, #06213f 0%, #0b3a70 100%);
}
.job-wrap {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(32px, 6vw, 80px);
  align-items: center;
}
.job-copy .eyebrow {
  display: inline-block;
  margin-bottom: 14px;
  padding: 4px 12px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #bfe6fb;
}
.job-copy h2 {
  color: var(--color-white);
}
.job-copy p {
  margin-bottom: 28px;
  font-size: 1.08rem;
  color: rgba(255, 255, 255, 0.9);
}
.job-areas {
  display: grid;
  gap: 16px;
}
.job-area {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius);
  transition: background 0.25s, transform 0.25s, border-color 0.25s;
}
.job-area:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateX(4px);
}
.job-icon {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: var(--color-white);
  color: var(--color-primary);
}
.job-icon svg {
  width: 26px;
  height: 26px;
}
.job-area h3 {
  margin-bottom: 2px;
  font-size: 1.15rem;
}
.job-area p {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.85);
}
@media (max-width: 860px) {
  .job-wrap {
    grid-template-columns: 1fr;
  }
  .job-copy {
    text-align: center;
  }
  .job-copy p {
    margin-inline: auto;
  }
}
@media (max-width: 600px) {
  .job-copy .btn {
    width: 100%;
  }
  .job-area {
    padding: 18px;
  }
}

/* =====================================================================
   BLOG PRO: layout e componentes dos artigos
   ===================================================================== */
.read-progress{position:fixed;inset:0 0 auto;height:3px;z-index:70;background:transparent;pointer-events:none}
.read-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--color-accent),#fff);transition:width .1s linear}

/* Hero do artigo */
.post-hero{position:relative;overflow:hidden;color:#fff;padding:calc(56px + var(--header-h)) 0 120px;
  background:radial-gradient(800px 380px at 90% -20%,rgba(41,182,246,.28),transparent 60%),linear-gradient(135deg,#06213f 0%,#0b3a70 100%)}
.post-hero h1{color:#fff;max-width:900px;font-size:clamp(2rem,4.2vw,3.1rem)}
.post-hero .lead-sub{margin-top:1.1rem;max-width:720px;font-size:1.15rem;color:rgba(255,255,255,.86)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;font-size:.85rem;color:rgba(255,255,255,.7)}
.crumbs a{text-decoration:none}.crumbs a:hover{color:#fff;text-decoration:underline}
.crumbs span[aria-hidden]{opacity:.5}
.post-tag{display:inline-block;margin-bottom:16px;padding:4px 12px;border:1px solid rgba(255,255,255,.35);border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#bfe6fb}
.post-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;font-size:.92rem;color:rgba(255,255,255,.82)}
.post-meta span{display:inline-flex;align-items:center;gap:8px}
.post-meta svg{width:18px;height:18px;color:var(--color-accent)}

/* Capa */
.post-cover{position:relative;z-index:2;margin-top:-84px;padding:0}
.post-cover figure{max-width:920px;margin:auto}
.post-cover img{width:100%;height:auto;border-radius:10px;box-shadow:0 24px 60px rgba(6,33,63,.28);border:4px solid #fff;background:var(--color-light)}
.post-cover figcaption,.post-figure figcaption{margin-top:10px;font-size:.85rem;color:var(--color-muted);text-align:center}

/* Layout em duas colunas */
.post-wrap{padding-top:clamp(40px,5vw,64px)}
.post-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,5vw,64px);align-items:start}
.post-body{max-width:none;min-width:0;margin:0}
.post-aside,.post-layout>*{min-width:0}
.post-body>p:first-of-type{font-size:1.2rem;line-height:1.7;color:var(--color-dark)}
.post-body h2{position:relative;margin-top:3rem;padding-top:1.4rem;scroll-margin-top:calc(var(--header-h) + 16px)}
.post-body h2::before{content:"";position:absolute;top:0;left:0;width:48px;height:4px;border-radius:2px;background:var(--color-primary)}
.post-body h3{margin-top:1.6rem;font-size:1.2rem}
.post-body strong{color:var(--color-dark)}
.post-body a:not(.btn){color:var(--color-primary);text-underline-offset:3px}

/* Sidebar */
.post-aside{position:sticky;top:calc(var(--header-h) + 24px);display:grid;gap:20px}
.aside-card{padding:22px;border:1px solid var(--color-line);border-radius:10px;background:#fff}
.aside-card h3{margin-bottom:12px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted)}
.toc{list-style:none;display:grid;gap:2px}
.toc a{display:block;padding:7px 12px;border-left:3px solid var(--color-line);font-size:.93rem;line-height:1.4;color:var(--color-text);text-decoration:none;transition:.2s}
.toc a:hover{color:var(--color-primary);border-color:var(--color-accent)}
.toc a.active{border-color:var(--color-primary);background:var(--color-light);color:var(--color-primary);font-weight:600}
.aside-cta{background:linear-gradient(135deg,#06213f,#0b4a8f);border:0;color:#fff}
.aside-cta h3{color:#bfe6fb}
.aside-cta p{max-width:none;margin-bottom:16px;font-size:.98rem;color:rgba(255,255,255,.9)}
.aside-cta .btn{display:block;width:100%;text-align:center;background:#fff;border-color:#fff;color:var(--color-dark)}
.aside-cta .btn:hover{background:#e3ecf5}
.aside-cta small{display:block;margin-top:12px;font-size:.85rem;color:rgba(255,255,255,.75)}

/* Resumo rápido */
.summary{margin:1.8rem 0 2rem;padding:24px 26px;border:1px solid #cfe0f2;border-radius:10px;background:linear-gradient(180deg,#f3f8fd,#eaf2fa)}
.summary h2{margin:0 0 .7rem;padding:0;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary)}
.summary h2::before{display:none}
.summary ul{list-style:none;padding:0;margin:0}
.summary li{position:relative;margin:0 0 .5rem;padding-left:30px;font-size:1rem}
.summary li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/12px no-repeat}

/* Números em destaque */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:1.8rem 0}
.stat-box{padding:20px 16px;border-radius:10px;background:var(--color-dark);color:#fff;text-align:center}
.stat-box strong{display:block;font-size:1.9rem;line-height:1.1;font-weight:600;color:#fff}
.stat-box span{display:block;margin-top:6px;font-size:.85rem;line-height:1.35;color:rgba(255,255,255,.78)}

/* Dicas numeradas */
.tip-list{counter-reset:tip;list-style:none;padding:0!important;margin:1.6rem 0}
.tip-list li{counter-increment:tip;position:relative;margin:0 0 14px;padding:20px 22px 20px 78px!important;border:1px solid var(--color-line);border-radius:10px;background:#fff;transition:box-shadow .25s,border-color .25s}
.tip-list li:hover{border-color:#b9cde2;box-shadow:0 10px 28px rgba(6,33,63,.08)}
.tip-list li::before{content:counter(tip);position:absolute;left:20px;top:20px;display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--color-primary);color:#fff;font-weight:600;font-size:1.15rem}
.tip-list b{display:block;margin-bottom:4px;font-size:1.08rem;color:var(--color-dark)}
.tip-list em{display:inline-block;margin-top:8px;padding:2px 10px;border-radius:999px;background:#e8f0f8;font-size:.82rem;font-style:normal;font-weight:600;color:var(--color-primary)}

/* Cards genéricos */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:16px;margin:1.6rem 0}
.info-card{padding:22px;border:1px solid var(--color-line);border-top:4px solid var(--color-primary);border-radius:10px;background:#fff}
.info-card .ico{display:grid;place-items:center;width:46px;height:46px;margin-bottom:14px;border-radius:12px;background:#e8f0f8;color:var(--color-primary)}
.info-card .ico svg{width:24px;height:24px}
.info-card h3{margin:0 0 6px;font-size:1.1rem}
.info-card p{max-width:none;margin:0 0 .6rem;font-size:.96rem;line-height:1.6}
.info-card ul{margin:0;padding-left:1.1rem}.info-card li{font-size:.94rem;margin-bottom:.35rem}
.info-card .badge{display:inline-block;margin-bottom:10px;padding:3px 10px;border-radius:999px;background:var(--color-dark);color:#fff;font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.info-card.warn{border-top-color:#e0a100}.info-card.warn .ico{background:#fff4d6;color:#a87500}

/* Callouts */
.callout{display:flex;gap:16px;margin:1.8rem 0;padding:20px 22px;border-radius:10px;border:1px solid #cfe0f2;border-left:5px solid var(--color-primary);background:#f3f8fd}
.callout>svg{flex-shrink:0;width:26px;height:26px;margin-top:2px;color:var(--color-primary)}
.callout strong{display:block;margin-bottom:4px;color:var(--color-dark)}
.callout p{max-width:none;margin:0!important;font-size:1rem!important}
.callout.warn{background:#fff9e8;border-color:#f2deA0;border-left-color:#e0a100}
.callout.warn>svg{color:#b07d00}
.callout.ok{background:#eef8f2;border-color:#c5e6d2;border-left-color:#11803f}
.callout.ok>svg{color:#11803f}

/* Tabelas */
.table-wrap{margin:1.6rem 0;overflow-x:auto;border:1px solid var(--color-line);border-radius:10px}
.post-body table{width:100%;min-width:520px;border-collapse:collapse;font-size:.96rem}
.post-body th{padding:13px 16px;background:var(--color-dark);color:#fff;text-align:left;font-weight:600;font-size:.88rem;letter-spacing:.03em}
.post-body td{padding:13px 16px;border-top:1px solid var(--color-line);vertical-align:top}
.post-body tbody tr:nth-child(even){background:var(--color-light)}
.post-body td:first-child{font-weight:600;color:var(--color-dark)}
.table-note{margin-top:-.6rem;font-size:.85rem!important;color:var(--color-muted)}

/* Passo a passo */
.steps{counter-reset:st;list-style:none;padding:0!important;margin:1.6rem 0;border-left:2px solid var(--color-line);margin-left:20px!important}
.steps li{counter-increment:st;position:relative;margin:0 0 22px;padding:0 0 0 34px!important}
.steps li::before{content:counter(st);position:absolute;left:-17px;top:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:600;font-size:.9rem;box-shadow:0 0 0 5px #fff}
.steps b{display:block;color:var(--color-dark)}

/* Checklist */
.checklist{list-style:none;padding:0!important;display:grid;gap:10px}
.checklist li{margin:0!important;padding:14px 16px 14px 48px!important;position:relative;border:1px solid var(--color-line);border-radius:8px;background:#fff}
.checklist li::before{content:"";position:absolute;left:16px;top:50%;width:20px;height:20px;margin-top:-10px;border:2px solid var(--color-primary);border-radius:5px}

/* Imagens no texto e espaços para imagem */
.post-figure{margin:2rem 0}
.post-figure img{width:100%;border-radius:10px;border:1px solid var(--color-line)}
.img-slot{display:grid;place-items:center;gap:6px;min-height:260px;padding:30px;border:2px dashed #9fb3c8;border-radius:10px;background:repeating-linear-gradient(45deg,#f3f6f9,#f3f6f9 12px,#edf2f7 12px,#edf2f7 24px);text-align:center;color:var(--color-muted)}
.img-slot svg{width:40px;height:40px;color:var(--color-primary)}
.img-slot strong{color:var(--color-dark)}
.img-slot small{font-size:.82rem}

/* FAQ */
.faq{margin:1.4rem 0}
.faq details{margin-bottom:10px;border:1px solid var(--color-line);border-radius:8px;background:#fff;overflow:hidden}
.faq summary{position:relative;padding:16px 52px 16px 20px;font-weight:600;color:var(--color-dark);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--color-primary);transition:transform .2s}
.faq details[open] summary{background:var(--color-light)}
.faq details[open] summary::after{content:"–"}
.faq details p{max-width:none;margin:0!important;padding:4px 20px 18px;font-size:1rem!important}

/* Calculadora de BTUs */
.calc{margin:2rem 0;padding:26px;border-radius:12px;background:var(--color-dark);color:#fff}
.calc h3{margin:0 0 4px;color:#fff;font-size:1.3rem}
.calc>p{max-width:none;margin-bottom:18px!important;font-size:.95rem!important;color:rgba(255,255,255,.8)}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.calc label{display:grid;gap:6px;font-size:.85rem;font-weight:600;color:#bfe6fb}
.calc input,.calc select{width:100%;padding:11px 12px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:rgba(255,255,255,.08);color:#fff;font:inherit}
.calc select option{color:#06213f}
.calc-result{margin-top:20px;padding:18px 20px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}
.calc-result strong{display:block;font-size:2rem;line-height:1.1;color:#fff}
.calc-result span{font-size:.92rem;color:rgba(255,255,255,.82)}

/* Autor, compartilhar, relacionados, CTA final */
.post-footer{margin-top:3rem;padding-top:1.8rem;border-top:1px solid var(--color-line);display:grid;gap:22px}
.author{display:flex;gap:16px;align-items:center}
.author-ava{flex-shrink:0;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff}
.author-ava svg{width:28px;height:28px}
.author p{margin:0!important;font-size:.95rem!important;line-height:1.5!important}
.author strong{display:block;color:var(--color-dark)}
.share{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.9rem;font-weight:600;color:var(--color-muted)}
.share button,.share a{padding:.55em 1.1em;border:1px solid var(--color-line);border-radius:999px;background:#fff;font:inherit;font-size:.88rem;font-weight:600;color:var(--color-dark);text-decoration:none;cursor:pointer;transition:.2s}
.share button:hover,.share a:hover{border-color:var(--color-primary);color:var(--color-primary)}
.related h2{margin-bottom:1.2rem;font-size:1.4rem}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px}
.related-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-line);border-radius:10px;background:#fff;text-decoration:none;transition:transform .25s,box-shadow .25s}
.related-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(6,33,63,.12)}
.related-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.related-card div{padding:16px 18px}
.related-card small{color:var(--color-muted)}
.related-card strong{display:block;margin-top:4px;line-height:1.35;color:var(--color-dark)}
.cta-band{padding:clamp(40px,5vw,64px) 0;background:linear-gradient(135deg,#06213f,#0b4a8f);color:#fff}
.cta-band .container{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.cta-band h2{margin:0 0 6px;color:#fff;font-size:clamp(1.4rem,2.6vw,1.9rem)}
.cta-band p{max-width:560px;color:rgba(255,255,255,.86)}
.cta-band .btn{background:#fff;border-color:#fff;color:var(--color-dark)}
.cta-band .btn:hover{background:#e3ecf5}
.cta-band .btn-outline{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.cta-band .btn-outline:hover{background:rgba(255,255,255,.12)}
.cta-band .article-actions{flex-shrink:0}

@media(max-width:960px){
  .post-layout{grid-template-columns:minmax(0,1fr)}
  .post-aside{position:static}
  .aside-card.toc-card{display:none}
}
@media(max-width:600px){
  .post-hero{padding-bottom:100px}
  .post-cover{margin-top:-64px}
  .tip-list li{padding:18px 16px 18px 16px!important}
  .tip-list li::before{position:static;margin-bottom:10px}
  .callout{flex-direction:column;gap:8px}
  .cta-band .article-actions,.cta-band .btn{width:100%;text-align:center}
}

/* Ajustes mobile do blog */
.post-hero h1,.post-body h2,.post-body h3,.post-body p,.post-body li{overflow-wrap:break-word}
@media(max-width:600px){
  .post-hero{padding-top:calc(36px + var(--header-h))}
  .post-hero .lead-sub{font-size:1.05rem}
  .post-meta{gap:8px 16px;font-size:.85rem}
  .post-cover figure{max-width:100%}
  .post-cover img{border-width:3px;border-radius:8px}
  .post-body>p:first-of-type{font-size:1.08rem}
  .summary{padding:18px}
  .cards{grid-template-columns:1fr}
  .stats-row{grid-template-columns:1fr 1fr}
  .info-card{padding:18px}
  .table-wrap{margin-inline:-2px}
  .post-body table{min-width:0;font-size:.85rem}
  .post-body th,.post-body td{padding:10px 8px;overflow-wrap:break-word}
  .post-body th{font-size:.78rem;letter-spacing:0}
  .calc{padding:20px 16px}
  .calc-grid{grid-template-columns:1fr 1fr}
  .calc-result strong{font-size:1.6rem}
  .steps{margin-left:16px!important}
  .faq summary{padding:14px 44px 14px 16px}
  .author{align-items:flex-start}
  .related-grid{grid-template-columns:1fr}
  .cta-band .container{display:grid}
  .cta-band .article-actions{display:grid;width:100%}
  .post-footer .article-actions .btn{width:100%;text-align:center}
}
