/* ===================================================================
   DESIGN SYSTEM — Stylesheet
   Editável por cliente: cores de marca (--color-*) e fontes (--font-*).
   Fixo no template: escala tipográfica, spacing, radius, shadow, feedback.
   =================================================================== */

:root {
  /* -----------------------------------------------------------------
     Brand — cores institucionais (editáveis via painel CDW)
     Cadastre no painel com o slug exato (campo Nome):
       brand · brand-hover · accent · brand-subtle
       brand-contrast · brand-contrast-subtle
       ink · ink-muted · ink-subtle · line · surface · surface-alt · surface-subtle
     ----------------------------------------------------------------- */
  --color-brand: #2563EB;
  --color-brand-hover: #1D4ED8;
  --color-accent: #132C42;
  --color-brand-subtle: rgba(37, 99, 235, 0.10);
  --color-brand-contrast: #FFE500;
  --color-brand-contrast-subtle: rgba(255, 229, 0, 0.10);

  /* -----------------------------------------------------------------
     Neutrals — texto e superfícies (editáveis)
     ----------------------------------------------------------------- */
  --color-ink: #1A1A1A;
  --color-ink-muted: #757575;
  --color-ink-subtle: rgba(26, 26, 26, 0.10);
  --color-line: #E3E3E3;
  --color-surface: #FFFFFF;
  --color-surface-alt: #F5F5F5;
  --color-surface-subtle: rgba(255, 255, 255, 0.10);

  /* Compat legado (cookies, 404) */
  --color-custom-primary: var(--color-brand, #2563EB);

  /* -----------------------------------------------------------------
     Feedback — confirmação e status (fixo no template)
     ----------------------------------------------------------------- */
  --color-success: #16A34A;
  --color-success-hover: #15803D;
  --color-success-subtle: rgba(22, 163, 74, 0.10);

  /* -----------------------------------------------------------------
     Fontes (editáveis por cliente)
     ----------------------------------------------------------------- */
  --font-display: "Manrope", sans-serif;
  --font-text: "Manrope", sans-serif;

  /* -----------------------------------------------------------------
     Tipografia — escala fluida (clamp), só dois degraus de peso
     ----------------------------------------------------------------- */
  --weight-light: 300;   /* ≥ 24px */
  --weight-regular: 400; /* < 24px */

  --text-display-size: clamp(2.75rem, 2.13rem + 2.63vw, 4.5rem);
  --text-display-weight: var(--weight-light);
  --text-display-lh: 0.95;
  --text-display-ls: -0.04em;

  --text-heading-lg-size: clamp(2.25rem, 1.72rem + 2.25vw, 3.75rem);
  --text-heading-lg-weight: var(--weight-light);
  --text-heading-lg-lh: 1.05;
  --text-heading-lg-ls: -0.03em;

  --text-heading-md-size: clamp(1.625rem, 1.4rem + 0.94vw, 2.25rem);
  --text-heading-md-weight: var(--weight-light);
  --text-heading-md-lh: 1.15;
  --text-heading-md-ls: -0.02em;

  --text-heading-sm-size: clamp(1.25rem, 1.21rem + 0.19vw, 1.375rem);
  --text-heading-sm-weight: var(--weight-regular);
  --text-heading-sm-lh: 1.3;
  --text-heading-sm-ls: -0.01em;

  --text-body-lg-size: clamp(1.125rem, 1.08rem + 0.19vw, 1.25rem);
  --text-body-lg-weight: var(--weight-regular);
  --text-body-lg-lh: 1.55;
  --text-body-lg-ls: 0;

  --text-body-size: 1.0625rem;
  --text-body-weight: var(--weight-regular);
  --text-body-lh: 1.6;
  --text-body-ls: 0;

  --text-label-size: 1rem;
  --text-label-weight: var(--weight-regular);
  --text-label-lh: 1.2;
  --text-label-ls: 0;

  --text-caption-size: 0.875rem;
  --text-caption-weight: var(--weight-regular);
  --text-caption-lh: 1.45;
  --text-caption-ls: 0;

  --text-overline-size: 0.75rem;
  --text-overline-weight: var(--weight-regular);
  --text-overline-lh: 1.3;
  --text-overline-ls: 0.1em;

  /* -----------------------------------------------------------------
     Spacing — múltiplos de 8 (fixo no template)
     ----------------------------------------------------------------- */
  --space-0: 4px;
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --space-7: 96px;
  --space-8: 128px;
  --space-section: clamp(96px, 8vw, 128px);

  /* Header — mobile 84px (Figma); desktop 102px em @media (min-width: 1200px) */
  --site-header-height: 84px;

  /* Layout — frame Figma 1440px (centralizado); gutters internos responsivos */
  --site-frame-max: 1440px;
  --site-gutter-x: var(--space-2, 16px);

  /* -----------------------------------------------------------------
     Radius — fixo no template
     ----------------------------------------------------------------- */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 999px;

  /* -----------------------------------------------------------------
     Shadow — fixo no template
     ----------------------------------------------------------------- */
  --shadow-card: 0 12px 24px 0 rgba(0, 0, 0, 0.03);
}

/* ===================================================================
   Base
   =================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  overscroll-behavior-y: none;
}

body {
  margin: 0;
  overflow-x: clip;
  overscroll-behavior-y: none;
  max-width: 100%;
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size);
  font-weight: var(--text-body-weight);
  line-height: var(--text-body-lh);
  color: var(--color-ink, #1A1A1A);
  background-color: var(--color-surface, #FFFFFF);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--color-brand, #2563EB);
  text-decoration: none;
}

a:hover {
  color: var(--color-brand-hover, #1D4ED8);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

section {
  overflow-x: clip;
  max-width: 100%;
}

main,
.site-header,
.site-footer {
  max-width: 100%;
}

.heading-lg,
.heading-md,
.display {
  overflow-wrap: anywhere;
}

/* ===================================================================
   Tipografia — classes utilitárias
   =================================================================== */

.display {
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: var(--text-display-size);
  font-weight: var(--text-display-weight);
  line-height: var(--text-display-lh);
  letter-spacing: var(--text-display-ls);
  color: var(--color-ink, #1A1A1A);
  margin: 0;
}

.heading-lg {
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: var(--text-heading-lg-size);
  font-weight: var(--text-heading-lg-weight);
  line-height: var(--text-heading-lg-lh);
  letter-spacing: var(--text-heading-lg-ls);
  color: var(--color-ink, #1A1A1A);
  margin: 0;
}

.heading-md {
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: var(--text-heading-md-size);
  font-weight: var(--text-heading-md-weight);
  line-height: var(--text-heading-md-lh);
  letter-spacing: var(--text-heading-md-ls);
  color: var(--color-ink, #1A1A1A);
  margin: 0;
}

.heading-sm {
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: var(--text-heading-sm-size);
  font-weight: var(--text-heading-sm-weight);
  line-height: var(--text-heading-sm-lh);
  letter-spacing: var(--text-heading-sm-ls);
  color: var(--color-ink, #1A1A1A);
  margin: 0;
}

.body-lg {
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-lg-size);
  font-weight: var(--text-body-lg-weight);
  line-height: var(--text-body-lg-lh);
  letter-spacing: var(--text-body-lg-ls);
  color: var(--color-ink, #1A1A1A);
}

.body {
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size);
  font-weight: var(--text-body-weight);
  line-height: var(--text-body-lh);
  letter-spacing: var(--text-body-ls);
  color: var(--color-ink, #1A1A1A);
}

.label {
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  letter-spacing: var(--text-label-ls);
  color: var(--color-ink, #1A1A1A);
}

.caption {
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-caption-size);
  font-weight: var(--text-caption-weight);
  line-height: var(--text-caption-lh);
  letter-spacing: var(--text-caption-ls);
  color: var(--color-ink-muted, #757575);
}

.overline {
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-overline-size);
  font-weight: var(--text-overline-weight);
  line-height: var(--text-overline-lh);
  letter-spacing: var(--text-overline-ls);
  text-transform: uppercase;
  color: var(--color-ink-muted, #757575);
}

/* ===================================================================
   Cores — utilitárias de texto
   =================================================================== */

.text-brand {
  color: var(--color-brand, #2563EB);
}

.text-brand-hover {
  color: var(--color-brand-hover, #1D4ED8);
}

.text-accent {
  color: var(--color-accent, #132C42);
}

.text-brand-contrast {
  color: var(--color-brand-contrast, #FFFFFF);
}

.text-ink {
  color: var(--color-ink, #1A1A1A);
}

.text-ink-muted {
  color: var(--color-ink-muted, #757575);
}

.text-success {
  color: var(--color-success, #16A34A);
}

.text-on-brand {
  color: var(--color-brand-contrast, #FFFFFF);
}

/* ===================================================================
   Cores — utilitárias de fundo
   =================================================================== */

.bg-brand {
  background-color: var(--color-brand, #2563EB);
}

.bg-brand-hover {
  background-color: var(--color-brand-hover, #1D4ED8);
}

.bg-accent {
  background-color: var(--color-accent, #132C42);
}

.bg-brand-subtle {
  background-color: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
}

.bg-brand-contrast {
  background-color: var(--color-brand-contrast, #FFFFFF);
}

.bg-brand-contrast-subtle {
  background-color: var(--color-brand-contrast-subtle, rgba(255, 255, 255, 0.10));
}

.bg-ink {
  background-color: var(--color-ink, #1A1A1A);
}

.bg-ink-subtle {
  background-color: var(--color-ink-subtle, rgba(26, 26, 26, 0.10));
}

.bg-surface {
  background-color: var(--color-surface, #FFFFFF);
}

.bg-surface-alt {
  background-color: var(--color-surface-alt, #F5F5F5);
}

.bg-surface-subtle {
  background-color: var(--color-surface-subtle, rgba(255, 255, 255, 0.10));
}

.bg-success {
  background-color: var(--color-success, #16A34A);
}

.bg-success-subtle {
  background-color: var(--color-success-subtle, rgba(22, 163, 74, 0.10));
}

/* ===================================================================
   Bordas
   =================================================================== */

.border-line {
  border-color: var(--color-line, #E3E3E3);
}

/* ===================================================================
   Radius — utilitárias
   =================================================================== */

.rounded-sm {
  border-radius: var(--radius-sm, 4px);
}

.rounded-md {
  border-radius: var(--radius-md, 8px);
}

.rounded-xl {
  border-radius: var(--radius-xl, 24px);
}

.rounded-full {
  border-radius: var(--radius-full, 999px);
}

/* ===================================================================
   Shadow
   =================================================================== */

.shadow-card {
  box-shadow: var(--shadow-card, 0 12px 24px 0 rgba(0, 0, 0, 0.03));
}

/* ===================================================================
   Spacing — utilitárias de seção
   =================================================================== */

.section-padding {
  padding-top: var(--space-section);
  padding-bottom: var(--space-section);
}

/* ===================================================================
   Layout global — frame 1440px (como artboard Figma) + gutters internos
   Viewport > 1440px: bloco centralizado com respiro lateral automático.
   Viewport ≤ 1440px: largura total com padding interno (16 → 32 → 64px).
   =================================================================== */

.container-xxl.site-container,
.site-container {
  --bs-gutter-x: 0;
  width: min(100%, var(--site-frame-max));
  max-width: var(--site-frame-max);
  padding-left: var(--site-gutter-x);
  padding-right: var(--site-gutter-x);
  margin-inline: auto;
}

@media (min-width: 768px) {
  :root {
    --site-gutter-x: var(--space-4, 32px);
  }
}

@media (min-width: 1200px) {
  :root {
    --site-gutter-x: var(--space-6, 64px);
  }
}

/* ===================================================================
   Componentes base (tokens aplicados)
   =================================================================== */

.btn-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  padding: var(--space-1, 8px) var(--space-2, 16px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  color: var(--color-brand-contrast, #FFFFFF);
  background-color: var(--color-brand, #2563EB);
  border: 0;
  border-radius: var(--radius-md, 8px);
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.btn-brand:hover {
  color: var(--color-brand-contrast, #FFFFFF);
  background-color: var(--color-brand-hover, #1D4ED8);
}

.card {
  background-color: var(--color-surface, #FFFFFF);
  border-radius: var(--radius-md, 8px);
  box-shadow: var(--shadow-card, 0 12px 24px 0 rgba(0, 0, 0, 0.03));
}

.card:hover {
  background-color: var(--color-ink-subtle, rgba(26, 26, 26, 0.10));
}

.tag {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0, 4px);
  padding: var(--space-0, 4px) var(--space-1, 8px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-overline-size);
  font-weight: var(--text-overline-weight);
  line-height: var(--text-overline-lh);
  letter-spacing: var(--text-overline-ls);
  text-transform: uppercase;
  color: var(--color-brand, #2563EB);
  background-color: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  border-radius: var(--radius-sm, 4px);
}

.chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 8px);
  padding: var(--space-0, 4px) var(--space-2, 16px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-caption-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-caption-lh);
  color: var(--color-ink, #1A1A1A);
  background-color: var(--color-surface-alt, #F5F5F5);
  border-radius: var(--radius-full, 999px);
}

.alert-success {
  padding: var(--space-2, 16px);
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
  color: var(--color-success, #16A34A);
  background-color: var(--color-success-subtle, rgba(22, 163, 74, 0.10));
  border-radius: var(--radius-md, 8px);
}

.form-control-ds {
  width: 100%;
  padding: var(--space-1, 8px) var(--space-2, 16px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size);
  font-weight: var(--text-body-weight);
  line-height: var(--text-body-lh);
  color: var(--color-ink, #1A1A1A);
  background-color: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-sm, 4px);
}

.form-control-ds::placeholder {
  color: var(--color-ink-muted, #757575);
}

.form-control-ds:focus {
  outline: none;
  border-color: var(--color-brand, #2563EB);
  box-shadow: 0 0 0 3px var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
}

.avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full, 999px);
  object-fit: cover;
  background-color: var(--color-surface-alt, #F5F5F5);
}

.divider {
  border: 0;
  border-top: 1px solid var(--color-line, #E3E3E3);
  margin: 0;
}

/* Responsivo — tipografia: os tamanhos agora são fluidos via clamp() nos
   tokens --text-*-size (ver bloco "Tipografia" no :root), então não
   precisam mais de breakpoints fixos aqui — o clamp() já interpola
   suavemente entre os extremos mobile/desktop. */

/* ===================================================================
   HEADER v3 — menu institucional
   =================================================================== */

.site-header {
  background: var(--color-surface, #FFFFFF);
  border-bottom: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1030;
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.5s ease;
  will-change: transform, opacity;
}

.site-header.is-hidden {
  opacity: 0;
  transform: translate3d(0, -100%, 0);
  pointer-events: none;
}

.site-header-spacer {
  height: var(--site-header-height, 84px);
  pointer-events: none;
}

.site-header.is-floating {
  border-bottom: 1px solid var(--color-line, #E3E3E3);
}

.site-header-sentinel {
  height: 1px;
  margin-bottom: -1px;
  pointer-events: none;
}

.site-header-mobile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 16px);
  height: var(--site-header-height, 84px);
  min-height: var(--site-header-height, 84px);
  max-height: var(--site-header-height, 84px);
  padding: 0;
  min-width: 0;
}

.site-header-logo {
  position: relative;
  min-width: 0;
  max-width: calc(100% - 100px);
  flex: 1 1 auto;
}

.site-header-logo img {
  display: block;
  max-width: min(100%, 220px);
  max-height: 32px;
  width: auto;
  height: auto;
}

.site-header-mobile-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: none;
}

.site-header-menu-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-line, #E3E3E3);
  background: var(--color-surface, #FFFFFF);
  border-radius: var(--radius-md, 8px);
  color: var(--color-ink, #1A1A1A);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  padding: 0;
  flex: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.site-header-desktop {
  align-items: center;
  justify-content: space-between;
  height: var(--site-header-height, 84px);
  min-height: var(--site-header-height, 84px);
  max-height: var(--site-header-height, 84px);
  padding: 0;
  gap: var(--space-2, 16px);
  transition: height 0.3s ease, min-height 0.3s ease, max-height 0.3s ease;
}

.site-header-desktop .site-header-logo {
  flex: none;
  max-width: none;
}

.site-header-nav {
  flex: 1 1 auto;
  min-width: 0;
}

.site-header-nav .nav {
  flex-wrap: nowrap;
  justify-content: center;
  gap: 16px;
}

.site-header-nav .nav-item {
  flex: none;
  display: flex;
  align-items: center;
}

.site-header-nav .nav-link,
.site-header-nav .site-nav-dropdown__toggle {
  min-height: 40px;
}

.site-header-whatsapp-btn {
  flex: none;
  color: var(--color-brand-contrast, #FFFFFF);
}

.site-logo-text {
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-ink, #1A1A1A);
  text-decoration: none;
  line-height: 1;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-logo-text span {
  color: var(--color-brand, #2563EB);
}

.site-logo-text--footer {
  display: inline-block;
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: 1.375rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--site-footer-fg, var(--color-brand-contrast, #FFFFFF));
}

.site-logo-text--footer span {
  color: var(--color-brand, #2563EB);
}

.site-header-nav .nav-link {
  display: inline-flex;
  align-items: center;
  color: var(--color-ink, #1A1A1A);
  padding: var(--space-1, 8px) var(--space-1, 8px);
  white-space: nowrap;
  border-radius: var(--radius-full, 999px);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.site-header-nav .nav-link:hover,
.site-header-nav .nav-link:focus-visible,
.site-header-nav .nav-link.active {
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  color: var(--color-brand, #2563EB);
}

.site-header-whatsapp-btn:hover,
.site-header-whatsapp-btn:focus {
  color: var(--color-brand-contrast, #FFFFFF);
}

.site-header-mobile .btn-v3-brand--icon-only {
  width: 40px;
  min-width: 40px;
  height: 40px;
  min-height: 40px;
  border-radius: var(--radius-md, 8px);
}

@media (min-width: 1200px) {
  :root {
    --site-header-height: 102px;
  }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
  .site-header-desktop {
    gap: var(--space-2, 16px);
  }

  .site-header-nav .nav-link,
  .site-header-nav .site-nav-dropdown__toggle {
    padding: var(--space-1, 8px) var(--space-1, 8px);
    font-size: 0.875rem;
    line-height: 1.4;
  }

  .site-header-whatsapp-btn {
    width: 45px;
    min-width: 45px;
    height: 45px;
    min-height: 45px;
    padding: 0;
  }

  .site-header-whatsapp-btn span {
    display: none !important;
  }
}

@media (min-width: 1400px) {
  .site-header-desktop {
    gap: var(--space-3, 24px);
  }

  .site-header-nav .nav-link {
    padding: var(--space-1, 8px) var(--space-2, 16px);
    font-size: var(--text-label-size);
    line-height: var(--text-label-lh);
  }
}

.site-nav-dropdown .dropdown-toggle::after {
  display: none;
}

.site-nav-dropdown__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 8px);
  border-radius: var(--radius-full, 999px);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.site-nav-dropdown__chevron {
  font-size: 0.85rem;
  line-height: 1;
  transition: transform 0.2s ease, color 0.2s ease;
}

.site-nav-dropdown.show > .site-nav-dropdown__toggle,
.site-nav-dropdown__toggle.show {
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  color: var(--color-brand, #2563EB);
}

.site-nav-dropdown.show .site-nav-dropdown__chevron,
.site-nav-dropdown__toggle.show .site-nav-dropdown__chevron {
  transform: rotate(180deg);
}

.site-nav-dropdown__menu {
  margin-top: var(--space-1, 8px);
  padding: var(--space-2, 16px);
  /* Sem isto o menu herda o branco fixo do .dropdown-menu do Bootstrap
     e deixa de acompanhar as cores do painel. */
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  min-width: 240px;
}

@media (min-width: 1200px) {
  .site-header-nav .site-nav-dropdown {
    position: relative;
  }

  .site-header-nav .site-nav-dropdown__toggle {
    position: relative;
  }

  .site-header-nav .site-nav-dropdown__toggle::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 12px;
  }

  .site-header-nav .site-nav-dropdown__menu {
    display: none;
    position: absolute;
    top: calc(100% + var(--space-1, 8px));
    left: 0;
    margin-top: 0;
    z-index: 1040;
  }

  .site-header-nav .site-nav-dropdown__menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(-1 * var(--space-1, 8px));
    height: var(--space-1, 8px);
  }

  .site-header-nav .site-nav-dropdown:hover > .site-nav-dropdown__menu,
  .site-header-nav .site-nav-dropdown:focus-within > .site-nav-dropdown__menu {
    display: block;
  }

  .site-header-nav .site-nav-dropdown:hover > .site-nav-dropdown__toggle,
  .site-header-nav .site-nav-dropdown:focus-within > .site-nav-dropdown__toggle {
    background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
    color: var(--color-brand, #2563EB);
  }

  .site-header-nav .site-nav-dropdown:hover .site-nav-dropdown__chevron,
  .site-header-nav .site-nav-dropdown:focus-within .site-nav-dropdown__chevron {
    transform: rotate(180deg);
  }
}

.site-nav-dropdown__heading {
  margin: 0 0 var(--space-1, 8px);
  padding: 0 var(--space-1, 8px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-brand, #2563EB);
}

.site-nav-dropdown__link {
  display: block;
  padding: var(--space-1, 8px) var(--space-2, 16px);
  border-radius: var(--radius-md, 8px);
  color: var(--color-ink, #1A1A1A);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size, 14px);
  font-weight: 700;
  line-height: var(--text-label-lh, 1.4);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.site-nav-dropdown__link:hover,
.site-nav-dropdown__link:focus {
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  color: var(--color-brand, #2563EB);
}

/* ===================================================================
   MENU HAMBURGER mobile — painel aberto (Figma 29416:8823)
   =================================================================== */

.site-nav-offcanvas {
  --site-nav-offcanvas-width: 360px;
  --bs-offcanvas-width: min(100vw, var(--site-nav-offcanvas-width));
  width: min(100vw, var(--site-nav-offcanvas-width));
  max-width: 100vw;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 8px 0 32px rgba(0, 0, 0, 0.18);
  background: var(--color-accent, #132C42);
  overscroll-behavior: contain;
}

html.site-nav-offcanvas-lock,
body.site-nav-offcanvas-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
  touch-action: none;
}

body.site-nav-offcanvas-lock {
  position: fixed;
  width: 100%;
  left: 0;
  right: 0;
}

.site-nav-offcanvas .offcanvas-body.site-nav-offcanvas-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  min-height: 100dvh;
  padding: var(--space-3, 24px);
  overflow-y: auto;
}

.site-nav-offcanvas-top {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
  flex: none;
}

.site-nav-offcanvas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 16px);
  min-height: 65px;
}

.site-nav-offcanvas-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  flex: 1 1 auto;
  max-width: 210px;
  min-height: 70px;
  padding: 21px 11px 20px;
  text-decoration: none;
}

.site-nav-offcanvas-logo img {
  display: block;
  width: 100%;
  max-width: 198px;
  height: auto;
  max-height: 29px;
  object-fit: contain;
}

.site-nav-offcanvas-logo img:not(.site-logo--light-bg) {
  filter: brightness(0) invert(1);
}

.site-nav-offcanvas-logo img.site-logo--light-bg {
  filter: none;
  background: var(--color-surface, #FFFFFF);
  border-radius: var(--radius-sm, 4px);
  padding: 8px 12px;
  max-height: none;
}

.site-nav-offcanvas-logo .site-logo-text {
  max-width: 100%;
}

.site-nav-offcanvas-close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: var(--radius-full, 999px);
  background: var(--color-brand-contrast-subtle, rgba(255, 255, 255, 0.10));
  color: var(--color-brand-contrast, #FFFFFF);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  line-height: 1;
  padding: 0;
  flex: none;
}

.site-nav-offcanvas-close:hover,
.site-nav-offcanvas-close:focus-visible {
  background: color-mix(in srgb, var(--color-brand-contrast, #FFFFFF) 16%, transparent);
  color: var(--color-brand-contrast, #FFFFFF);
}

.site-nav-offcanvas-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  width: 100%;
  min-height: 40px;
  padding: var(--space-1, 8px) var(--space-3, 24px);
  border-radius: var(--radius-md, 8px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size, 16px);
  font-weight: 700;
  line-height: var(--text-body-lh, 1.5);
  text-decoration: none;
  border: 0;
}

.site-nav-offcanvas-whatsapp .bi-whatsapp {
  font-size: 1.25rem;
  line-height: 1;
  color: var(--color-brand-contrast, #FFFFFF);
}

.site-nav-offcanvas-whatsapp:hover,
.site-nav-offcanvas-whatsapp:focus-visible {
  color: var(--color-brand-contrast, #FFFFFF);
  filter: brightness(1.05);
}

.site-nav-offcanvas-nav {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.site-nav-offcanvas-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.site-nav-offcanvas-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.site-nav-offcanvas-item--dropdown:not(:has(.collapse.show)) {
  gap: 0;
}

.site-nav-offcanvas-link,
.site-nav-offcanvas-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  min-height: 40px;
  padding: var(--space-1, 8px) var(--space-2, 16px);
  border: 0;
  background: transparent;
  color: var(--color-brand-contrast, #FFFFFF);
  text-decoration: none;
  text-align: left;
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size, 16px);
  font-weight: 700;
  line-height: var(--text-body-lh, 1.5);
}

.site-nav-offcanvas-link:hover,
.site-nav-offcanvas-link:focus-visible,
.site-nav-offcanvas-link.active,
.site-nav-offcanvas-toggle:hover,
.site-nav-offcanvas-toggle:focus-visible,
.site-nav-offcanvas-toggle:not(.collapsed) {
  color: var(--color-brand-contrast, #FFFFFF);
}

.site-nav-offcanvas-toggle__chevron {
  font-size: 1rem;
  line-height: 1;
  color: var(--color-brand-contrast, #FFFFFF);
  transition: transform 0.2s ease;
  flex: none;
}

.site-nav-offcanvas-toggle:not(.collapsed) .site-nav-offcanvas-toggle__chevron {
  transform: rotate(180deg);
}

.site-nav-offcanvas-panel__inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  padding: 0 0 0 var(--space-2, 16px);
}

.site-nav-offcanvas-panel__link {
  display: block;
  width: fit-content;
  max-width: 100%;
  padding: var(--space-1, 8px) var(--space-2, 16px);
  border-radius: var(--radius-md, 8px);
  color: color-mix(in srgb, var(--color-brand-contrast, #FFFFFF) 88%, transparent);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size, 16px);
  font-weight: 700;
  line-height: var(--text-body-lh, 1.5);
  text-decoration: none;
}

.site-nav-offcanvas-panel__link:hover,
.site-nav-offcanvas-panel__link:focus-visible,
.site-nav-offcanvas-panel__link.active {
  color: var(--color-brand-contrast, #FFFFFF);
  background: rgba(255, 255, 255, 0.08);
}

.site-nav-offcanvas-bottom {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  flex: none;
  margin-top: auto;
}

.site-nav-offcanvas-divider {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.15);
}

.site-nav-offcanvas-social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1, 8px);
}

.site-nav-offcanvas-social a {
  width: 45px;
  height: 45px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  text-decoration: none;
}

.site-nav-offcanvas-social a:hover,
.site-nav-offcanvas-social a:focus-visible {
  color: var(--color-brand-contrast, #FFFFFF);
  filter: brightness(1.05);
}

body:has(.site-nav-offcanvas.show) .whatsapp-float-btn,
body:has(.site-nav-offcanvas.show) .layout-model-float-btn {
  visibility: hidden;
  pointer-events: none;
}

/* ===================================================================
   BOTÕES v3
   =================================================================== */

.btn-v3-brand,
.btn-v3-contrast,
.btn-v3-outline-brand,
.btn-v3-outline-contrast {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  min-height: 50px;
  padding: var(--space-1, 8px) var(--space-3, 24px);
  border-radius: var(--radius-md, 8px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  text-decoration: none;
  border: 1px solid transparent;
  transition: filter 0.2s ease, background-color 0.2s ease;
  white-space: nowrap;
}

.btn-v3-brand {
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast);
  border-color: var(--color-brand, #2563EB);
}

.btn-v3-brand:hover,
.btn-v3-brand:focus-visible {
  filter: brightness(1.05);
  color: var(--color-brand-contrast);
}

.btn-v3-contrast {
  background: var(--color-brand-contrast, #FFFFFF);
  color: var(--color-brand, #2563EB);
}

.btn-v3-contrast:hover {
  filter: brightness(0.98);
  color: var(--color-brand, #2563EB);
}

.btn-v3-outline-brand {
  background: transparent;
  color: var(--color-brand, #2563EB);
  border-color: var(--color-brand, #2563EB);
}

.btn-v3-outline-brand:hover {
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  color: var(--color-brand, #2563EB);
}

.btn-v3-outline-contrast {
  background: transparent;
  color: var(--color-brand-contrast);
  border-color: var(--color-brand-contrast);
}

.btn-v3-outline-contrast:hover,
.btn-v3-outline-contrast:focus-visible {
  color: var(--color-brand-contrast);
  background: var(--color-brand-contrast-subtle);
}

.btn-v3-block {
  width: 100%;
}

.btn-v3-brand--icon-only {
  width: 45px;
  min-width: 45px;
  height: 45px;
  min-height: 45px;
  padding: 0;
  border-radius: var(--radius-md, 8px);
}

@media (max-width: 991px) {
  .btn-v3-block-lg {
    width: 100%;
  }
}

/* ===================================================================
   FOOTER v3
   =================================================================== */

.site-footer {
  --site-footer-fg: var(--color-brand-contrast, #FFFFFF);
  background: var(--color-accent, #132C42);
  color: var(--site-footer-fg);
  /* Figma desktop 29416:7096 — altura total 422px (padding vertical 96 + 39) */
  padding: var(--space-7, 96px) 0 calc(var(--space-3, 24px) + 15px);
  border-radius: var(--radius-xl, 24px) var(--radius-xl, 24px) 0 0;
  margin-top: var(--space-4, 32px);
}

/* Accent claro no painel: texto do rodapé usa ink para legibilidade */
.site-footer--accent-light {
  --site-footer-fg: var(--color-ink, #1A1A1A);
}

/* Páginas com main cinza: o margin-top do footer não pode mostrar o branco do body */
body:has(main[class*="page-"]:not(.page-links)) {
  background-color: var(--color-surface-alt, #F5F5F5);
}

.site-footer-inner,
.site-footer-columns {
  width: 100%;
}

@media (min-width: 992px) {
  .site-footer-columns {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3, 24px);
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    margin-left: 0;
    margin-right: 0;
  }

  .site-footer-columns > [class*="col-"] {
    width: 100%;
    max-width: none;
    flex: none;
    padding-left: 0;
    padding-right: 0;
  }
}

.site-footer-columns > [class*="col-"] {
  min-width: 0;
}

.site-footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  width: 100%;
}

.site-footer-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
  width: 100%;
}

.site-footer-aside {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
  width: 100%;
}

.site-footer-heading,
.site-footer-desc,
.site-footer-copy {
  color: var(--site-footer-fg);
}

.site-footer-cdw {
  display: inline-flex;
  line-height: 0;
  flex-shrink: 0;
}

.site-footer-cdw-logo {
  display: block;
  width: 176.944px;
  max-width: 100%;
  height: 17.15px;
  background-color: var(--site-footer-fg);
  -webkit-mask: url("../images/cdw-desenvolvimento-logo.svg") no-repeat center / contain;
  mask: url("../images/cdw-desenvolvimento-logo.svg") no-repeat center / contain;
}

.site-footer-logo {
  display: inline-block;
  line-height: 0;
  min-height: 29px;
}

.site-footer-logo-img {
  display: block;
  max-width: min(100%, 210px);
  max-height: 29px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: left center;
}

.site-footer:not(.site-footer--accent-light) .site-footer-logo-img:not(.site-logo--light-bg) {
  filter: brightness(0) invert(1);
}

.site-footer-logo-img.site-logo--light-bg {
  filter: none;
  mix-blend-mode: normal;
  background: var(--color-surface, #FFFFFF);
  border-radius: var(--radius-sm, 4px);
  padding: 8px 12px;
  max-height: none;
  height: 70px;
  width: auto;
  object-fit: contain;
}

.site-footer-whatsapp-btn,
.site-footer-whatsapp-btn:hover,
.site-footer-whatsapp-btn:focus-visible {
  min-height: 50px;
  color: var(--color-brand-contrast, #FFFFFF);
  border-radius: var(--radius-md, 8px);
}

.site-footer-links a,
.site-footer-contact a,
.site-footer-contact li {
  color: var(--site-footer-fg);
  text-decoration: none;
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
}

.site-footer-links a {
  font-weight: 700;
}

.site-footer-contact a,
.site-footer-contact li {
  font-weight: 400;
}

.site-footer-links li + li,
.site-footer-contact li + li {
  margin-top: var(--space-1, 8px);
}

.site-footer-links a:hover,
.site-footer-contact a:hover {
  opacity: 0.85;
}

.site-footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1, 8px);
}

.site-footer-social a {
  width: 45px;
  height: 45px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  text-decoration: none;
}

.site-footer-social a:hover,
.site-footer-social a:focus-visible {
  color: var(--color-brand-contrast, #FFFFFF);
  filter: brightness(1.05);
}

.site-footer-divider {
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--site-footer-fg) 15%, transparent);
  opacity: 1;
  margin: var(--space-3, 24px) 0;
}

.site-footer-bottom {
  gap: var(--space-1, 8px);
}

.site-footer-cdw:hover,
.site-footer-cdw:focus-visible {
  opacity: 0.85;
}

@media (min-width: 992px) {
  .site-footer-whatsapp-btn {
    width: auto;
  }

  .site-footer-links,
  .site-footer-contact,
  .site-footer-social {
    width: 100%;
  }
}

@media (max-width: 991px) {
  .site-footer {
    /* Figma mobile 29416:7603 — altura total 1066px (padding vertical 48 + 48) */
    padding: var(--space-5, 48px) 0;
    margin-top: var(--space-3, 24px);
  }

  .site-footer .row {
    --bs-gutter-y: var(--space-4, 32px);
  }

  .site-footer-brand {
    padding-top: var(--space-2, 16px);
  }

  .site-footer-brand,
  .site-footer-section,
  .site-footer-aside,
  .site-footer-columns > [class*="col-"] {
    align-items: center;
    text-align: center;
  }

  .site-footer-brand {
    width: 100%;
  }

  .site-footer-whatsapp-btn {
    width: 100%;
  }

  .site-footer-links,
  .site-footer-contact {
    width: 100%;
  }

  .site-footer-social {
    justify-content: center;
  }

  .site-footer-bottom {
    align-items: center;
    text-align: center;
  }

  .site-footer-copy {
    max-width: 314px;
    margin-left: auto;
    margin-right: auto;
    font-size: 0.875rem;
    line-height: 1.5;
  }
}

.whatsapp-float-btn {
  position: fixed;
  right: 1rem;
  bottom: 1.25rem;
  width: 56px;
  height: 56px;
  padding: 0;
  border: none;
  background-color: #25d366;
  color: #fff !important;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  z-index: 1060;
  cursor: pointer;
  text-decoration: none;
}

.whatsapp-float-btn .icon-whatsapp,
.btn-v3-contrast .icon-whatsapp {
  display: block;
  flex: none;
}

.layout-model-float-btn {
  position: fixed;
  left: 1rem;
  bottom: 1.25rem;
  width: 56px;
  height: 56px;
  padding: 0;
  border: none;
  background-color: var(--color-brand, #2563eb);
  color: var(--color-brand-contrast, #fff) !important;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  z-index: 1060;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.layout-model-float-btn:hover,
.layout-model-float-btn:focus-visible {
  transform: scale(1.05);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
  color: var(--color-brand-contrast, #fff) !important;
}

.layout-model-float-btn:focus-visible {
  outline: 2px solid var(--color-brand-contrast, #fff);
  outline-offset: 2px;
}

#privacyPolicyModal .modal-body img,
#privacyPolicyModal .modal-body table,
#privacyPolicyModal .modal-body iframe {
  max-width: 100%;
}

#privacyPolicyModal .modal-body {
  overflow-wrap: anywhere;
}

/* ===================================================================
   HOME v3 — Figma SERVIÇOS / HOME (29291:6418) + MOBILE (29387:9884)
   =================================================================== */

.section-padding-y-sm {
  padding-top: var(--space-5, 48px);
  padding-bottom: var(--space-5, 48px);
}

/* Animações home — reveal no scroll + microinterações (respeita reduced-motion) */
/* Sem will-change aqui de proposito: promover ~30 elementos .reveal a camadas
   propias fazia o Chrome perder a invalidacao de estilo, e varios cards ficavam
   presos em opacity: 0 mesmo ja tendo a classe .is-visible (secao de lojas,
   numeros do Sobre e cabecalhos de secao). */
.reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.reveal--left {
  transform: translate3d(-32px, 0, 0);
}

.reveal--right {
  transform: translate3d(32px, 0, 0);
}

.reveal--scale {
  transform: scale(0.97);
}

.reveal--scale.is-visible {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .home-card:hover,
  .home-cta.is-visible:hover {
    transform: none;
  }
}

.home-section-head {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3, 24px);
  flex-wrap: nowrap;
}

.home-section-head .heading-lg {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  text-align: left;
}

.home-section-head__link {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Home — layout Produtos / Serviços+Produtos mobile (Figma PRODUTOS / HOME / MOBILE 29617:13092) */
@media (max-width: 991.98px) {
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) {
    --space-section: var(--space-5, 48px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-hero {
    padding-bottom: 40px;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-hero-content .label.mt-2 {
    margin-top: var(--space-1, 8px) !important;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-hero-actions.mt-4 {
    margin-top: var(--space-3, 24px) !important;
    gap: var(--space-3, 24px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #catalogo-destaque.section-padding {
    padding-top: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #catalogo-destaque .site-container,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .site-container,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #depoimentos .site-container,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes .site-container,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .site-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3, 24px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .site-container {
    align-items: stretch;
    gap: var(--space-4, 32px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .site-container {
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 32px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre.section-padding.pt-0 {
    padding-top: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .row.g-4 {
    --bs-gutter-y: var(--space-3, 24px);
    margin-top: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .col-lg-5 .heading-lg.mb-4 {
    margin-bottom: var(--space-4, 32px) !important;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .home-sobre-image,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .home-imgph--sobre {
    border-radius: var(--radius-xl, 24px);
    aspect-ratio: auto;
    height: 234px;
    min-height: 234px;
    object-fit: cover;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .home-stats-grid {
    margin-top: 0 !important;
    --bs-gutter-x: var(--space-2, 16px);
    --bs-gutter-y: var(--space-2, 16px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .home-stat {
    border-radius: var(--radius-lg, 16px);
    min-height: 0;
    padding: var(--space-2, 16px);
    box-shadow: 0 12px 12px rgba(0, 0, 0, 0.03);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .home-stat-value {
    font-size: var(--text-heading-lg-size, 2rem);
    line-height: var(--text-heading-lg-lh, 1.1);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-section-head {
    margin-bottom: 0;
    width: 100%;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #depoimentos .home-section-head,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes .home-section-head,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .home-section-head,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #catalogo-destaque .home-section-head {
    justify-content: center;
    text-align: center;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .home-section-head {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-4, 32px);
    text-align: left;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .home-section-head .heading-lg,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .home-planos-intro {
    text-align: left;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-section-head__copy {
    display: flex;
    flex-direction: column;
    gap: var(--space-1, 8px);
    width: 100%;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #catalogo-destaque .home-slider,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #depoimentos .home-slider,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes .home-slider,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .home-slider {
    width: 100%;
    max-width: 328px;
    margin-top: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #catalogo-destaque .home-slider__slide,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #depoimentos .home-slider__slide,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes .home-slider__slide,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .home-slider__slide {
    justify-content: center;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #catalogo-destaque .category-card {
    width: 100%;
    max-width: 328px;
    aspect-ratio: 328 / 450;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #depoimentos .home-slider__slide {
    padding-top: 0;
    padding-bottom: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes .home-slider__slide {
    padding-top: 0;
    padding-bottom: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes .home-slider__viewport {
    overflow-clip-margin: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-slider-control {
    margin-top: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-section-head__link--mobile {
    margin-top: 0;
    width: 100%;
    max-width: 328px;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .home-section-head__link--mobile {
    max-width: none;
    margin-top: var(--space-3, 24px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #planos .pricing-grid {
    width: 100%;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card {
    background: var(--color-surface, #FFFFFF);
    color: var(--color-ink, #1A1A1A);
    border-color: var(--color-line, #E3E3E3);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__name,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__amount,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__benefit {
    color: var(--color-ink, #1A1A1A);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__summary {
    color: var(--color-ink, #1A1A1A);
    opacity: 0.6;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__period {
    color: var(--color-ink, #1A1A1A);
    opacity: 0.5;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__divider {
    border-top-color: var(--color-line, #E3E3E3);
    opacity: 1;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__button.btn-v3-contrast {
    background: var(--color-brand, #2563EB);
    border-color: var(--color-brand, #2563EB);
    color: var(--color-brand-contrast, #FFFFFF);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__button.btn-v3-contrast:hover,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .pricing-card__button.btn-v3-contrast:focus-visible {
    background: var(--color-brand-hover, #1D4ED8);
    border-color: var(--color-brand-hover, #1D4ED8);
    color: var(--color-brand-contrast, #FFFFFF);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-cta-section {
    padding: var(--space-1, 8px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) .home-cta {
    padding: var(--space-4, 32px) var(--space-3, 24px);
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #clientes.section-padding.bg-surface-alt.pt-0 {
    padding-top: 0;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .col-lg-5 .btn-v3-block.mt-4,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #sobre .col-lg-5 .btn-v3-outline-brand.mt-4 {
    margin-top: var(--space-4, 32px) !important;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .home-post__media {
    height: 213px;
  }

  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .home-post__media .home-post-image,
  #home:is(.home-layout--produtos, .home-layout--servicos-produtos) #blog .home-post__media .home-imgph--blog {
    height: 100%;
    min-height: 0;
  }
}

.home-section-head__copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  flex: 1 1 auto;
  min-width: 0;
}

.home-planos-intro {
  max-width: 52ch;
}

@media (min-width: 992px) {
  .home-planos-intro {
    margin-top: var(--space-1, 8px);
  }
}

.home-hero {
  padding: 0 0 var(--space-5, 48px);
}

#home #servicos.section-padding,
#home #portfolio-destaque.section-padding {
  padding-top: var(--space-4, 32px);
}

@media (min-width: 992px) {
  #home .home-hero {
    padding: 0 var(--space-2, 16px) var(--space-4, 32px);
  }

  #home #servicos.section-padding,
  #home #portfolio-destaque.section-padding {
    padding-top: var(--space-5, 48px);
  }
}

.home-hero-box {
  position: relative;
  isolation: isolate;
  width: 100%;
  height: 628px;
  min-height: 628px;
  max-height: 628px;
  border-radius: var(--radius-xl, 24px);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: var(--space-4, 32px);
  background: rgba(37, 99, 235, 0.80);
  contain: layout style;
}

.home-hero-box > picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.home-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  pointer-events: none;
}

.home-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(37, 99, 235, 0.80);
  pointer-events: none;
}

.home-hero-content {
  position: relative;
  z-index: 1;
  max-width: 636px;
}

.home-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2, 16px);
}

.home-stat-label {
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
  color: var(--color-ink-muted, #757575);
}

.home-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3, 24px);
  padding: var(--space-4, 32px);
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-xl, 24px);
  box-shadow: var(--shadow-card);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease, border-color 0.35s ease;
}

.home-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.08);
  border-color: color-mix(in srgb, var(--color-brand, #2563EB) 20%, transparent);
}

.home-card--testimonial {
  min-height: 290px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

#depoimentos .home-section-head {
  margin-bottom: 30px;
}

#clientes .home-section-head {
  margin-bottom: 30px;
}

#blog .home-section-head {
  margin-bottom: 30px;
}

#depoimentos .home-slider__slide {
  display: flex;
  align-items: stretch;
  padding: 6px 0 28px;
  box-sizing: border-box;
}

#depoimentos .home-card--testimonial {
  width: 100%;
}

#clientes .home-slider__slide {
  display: flex;
  align-items: stretch;
  padding: 6px 0 28px;
  box-sizing: border-box;
}

#clientes .home-logo-ph {
  width: 100%;
}

#clientes .home-slider__viewport {
  overflow: clip;
  overflow-clip-margin: 4px 0 28px 0;
}

#blog .home-slider__slide {
  display: flex;
  align-items: stretch;
}

#blog .home-post {
  width: 100%;
}

#depoimentos .home-section-head + .home-slider,
#clientes .home-section-head + .home-slider,
#blog .home-section-head + .home-slider,
#depoimentos .home-slider,
#clientes .home-slider,
#blog .home-slider {
  margin-top: 0;
}

.home-card--testimonial:hover,
.home-card--testimonial:focus-within {
  border-color: var(--color-brand, #2563EB);
  box-shadow: 0 4px 16px var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  transform: translateY(-2px);
}

.home-service-icon {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-md, 8px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  line-height: 1;
  flex: none;
}

.home-service-icon .bi {
  display: block;
  font-size: inherit;
  line-height: 1;
  width: 1em;
  height: 1em;
}

.home-service-icon .bi::before {
  display: block;
  width: 1em;
  height: 1em;
  line-height: 1;
  vertical-align: 0;
}

.home-card--service {
  min-height: 290px;
  height: 100%;
}

.home-card--service__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1, 8px);
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
}

.home-card--service__desc {
  width: 100%;
  flex: 1 1 auto;
  min-height: calc(var(--text-body-size) * var(--text-body-lh) * 3);
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  text-overflow: ellipsis;
  overflow-wrap: anywhere;
}

.home-card--service__link {
  margin-top: auto;
  flex: none;
}

.home-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 8px);
  color: var(--color-brand, #2563EB);
  font-weight: 700;
  text-decoration: none;
}

.home-link i {
  transition: transform 0.25s ease;
}

.home-link:hover i {
  transform: translateX(4px);
}

.home-link:hover {
  color: var(--color-brand-hover, #1D4ED8);
}

.home-imgph {
  border-radius: var(--radius-xl, 24px);
  background:
    linear-gradient(145deg, var(--color-brand-subtle, rgba(37, 99, 235, 0.10)) 0%, color-mix(in srgb, var(--color-accent, #132C42) 8%, transparent) 100%),
    var(--color-surface-alt, #F5F5F5);
  border: 1px solid var(--color-line, #E3E3E3);
  max-width: 100%;
}

.home-imgph--sobre {
  min-height: 360px;
  border-radius: var(--radius-md, 8px);
}

.home-imgph--blog {
  min-height: 213px;
  border-radius: var(--radius-md, 8px);
}

.home-stat {
  padding: var(--space-2, 16px);
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-xl, 24px);
  box-shadow: var(--shadow-card);
}

.home-cta-section {
  padding: var(--space-4, 32px) var(--space-2, 16px);
}

.home-cta-section .site-container {
  padding-left: 0;
  padding-right: 0;
}

.home-cta {
  border-radius: var(--radius-xl, 24px);
  background: var(--color-brand, #2563EB);
  padding: var(--space-5, 48px) var(--space-4, 32px);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
}

.home-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3, 24px);
  flex-wrap: nowrap;
  width: 100%;
}

.home-cta .heading-lg {
  flex: 1 1 auto;
  min-width: 0;
  /* Sem mexer no texto: "ch" escala com o tamanho da fonte, então este
     limite força a quebra em "Converse com um / especialista Anjos" tanto
     no mobile (36px) quanto no desktop (60px), sem depender de <br> nem
     de um valor fixo em px que só funcionaria num dos dois tamanhos. */
  max-width: min(16ch, 100%);
  text-align: left;
}

.home-cta-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2, 16px);
  flex: none;
}

.home-cta.is-visible:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(37, 99, 235, 0.25);
}

@media (min-width: 992px) {
  .home-hero-box {
    height: 577px;
    min-height: 577px;
    max-height: 577px;
    align-items: center;
    padding: 56px;
  }

  .home-cta {
    padding: 56px;
  }

  .home-cta-inner {
    flex-wrap: nowrap;
    gap: clamp(32px, 8vw, 200px);
  }
}

.home-avatar-ph {
  width: 45px;
  height: 45px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-surface-alt, #F5F5F5);
  border: 1px solid var(--color-line, #E3E3E3);
  flex: none;
}

.home-avatar-img {
  width: 45px;
  height: 45px;
  border-radius: var(--radius-full, 999px);
  object-fit: cover;
  flex: none;
}

.home-logo-ph {
  height: 108px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-2, 16px);
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-md, 8px);
  text-align: center;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.home-logo-ph:hover,
.home-logo-ph:focus-within {
  border-color: var(--color-brand, #2563EB);
  box-shadow: 0 4px 16px var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  transform: translateY(-2px);
}

.home-logo-img {
  display: block;
  width: 160px;
  height: 76px;
  max-width: 100%;
  max-height: 76px;
  object-fit: contain;
  margin-inline: auto;
}

.home-post-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1, 8px);
}

.home-post-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--color-ink-muted, #757575);
  flex: none;
}

.home-slider-control {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3, 24px);
  width: fit-content;
  min-height: 36px;
  padding: var(--space-1, 8px) var(--space-2, 16px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-full, 999px);
  background: var(--color-surface, #FFFFFF);
}

.home-slider-control.is-hidden {
  display: none;
}

.home-slider {
  width: 100%;
}

.home-slider__viewport {
  overflow: hidden;
  width: 100%;
}

#depoimentos .home-slider__viewport {
  overflow: clip;
  overflow-clip-margin: 4px 0 28px 0;
}

.home-slider__track {
  display: flex;
  gap: var(--home-slider-gap, 24px);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.home-slider__slide {
  flex: 0 0 auto;
  min-width: 0;
}

@media (max-width: 991px) {
  #clientes .home-slider__slide .home-logo-ph {
    width: 100%;
  }
}

.home-slider-btn {
  border: 0;
  background: transparent;
  color: var(--color-brand, #2563EB);
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
}

.home-slider-btn:hover,
.home-slider-btn:focus-visible {
  color: var(--color-brand-hover, #1D4ED8);
}

.home-slider-dots {
  display: flex;
  gap: 4px;
  align-items: center;
}

.home-slider-dot,
.home-slider-dots span {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.home-slider-dot::after,
.home-slider-dots span::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: 1px solid var(--color-line, #E3E3E3);
  background: var(--color-surface, #FFFFFF);
  display: block;
}

.home-slider-dot.active::after,
.home-slider-dots span.active::after {
  background: var(--color-brand, #2563EB);
  border-color: var(--color-brand, #2563EB);
}

@media (prefers-reduced-motion: reduce) {
  .home-slider__track {
    transition: none;
  }
}

@media (max-width: 991px) {
  #home .home-section-head {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  #home .home-section-head .heading-lg {
    text-align: center;
    width: 100%;
  }

  #home #planos .home-section-head,
  #home #planos .home-section-head .heading-lg,
  #home #planos .home-planos-intro {
    text-align: left;
  }

  #home #planos .site-container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3, 24px);
  }

  #home #planos .home-section-head {
    margin-bottom: 0;
  }

  #home #planos .home-section-head__link--mobile {
    margin-top: var(--space-3, 24px);
  }

  #home #planos.section-padding {
    padding-bottom: var(--space-5, 48px);
  }

  #home #planos + #sobre.section-padding,
  #home #planos + #portfolio-destaque.section-padding {
    padding-top: 0;
  }

  #home .home-section-head__link--mobile {
    justify-content: center;
    white-space: normal;
  }

  .home-slider-control {
    border: 0;
    background: transparent;
    padding: 0;
    min-height: auto;
    gap: 0;
  }

  .home-slider-btn {
    display: none;
  }

  .section-padding-y-sm {
    padding-top: var(--space-4, 32px);
    padding-bottom: var(--space-4, 32px);
  }

  #home #clientes.section-padding,
  #home #blog.section-padding {
    padding-bottom: var(--space-4, 32px);
  }

  #home #blog.section-padding {
    padding-top: var(--space-4, 32px);
  }

  #clientes .home-slider__slide {
    padding-bottom: 12px;
  }

  #clientes .home-slider__viewport {
    overflow-clip-margin: 4px 0 12px 0;
  }

  #depoimentos .home-slider-control,
  #clientes .home-slider-control,
  #blog .home-slider-control {
    margin-top: var(--space-2, 16px);
  }

  .home-hero-box {
    height: 628px;
    min-height: 628px;
    max-height: 628px;
    align-items: flex-end;
    padding: var(--space-4, 32px);
  }

  #home .home-hero {
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
  }

  .home-hero-content {
    max-width: none;
    width: 100%;
  }

  .home-hero-actions {
    flex-direction: column;
    width: 100%;
  }

  .home-hero-actions .btn-v3-contrast,
  .home-hero-actions .btn-v3-outline-contrast,
  .btn-v3-block {
    width: 100%;
    max-width: 100%;
    white-space: normal;
  }

  .btn-v3-brand,
  .btn-v3-contrast,
  .btn-v3-outline-brand,
  .btn-v3-outline-contrast,
  .btn-v3-success {
    max-width: 100%;
  }

  .home-cta-section {
    padding: var(--space-3, 24px) var(--space-2, 16px);
  }

  .home-cta {
    padding: var(--space-5, 48px) var(--space-4, 32px);
  }

  .home-cta-inner {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: wrap;
    gap: var(--space-3, 24px);
  }

  .home-cta .heading-lg {
    font-size: var(--text-heading-md-size, 2rem);
    line-height: var(--text-heading-md-lh, 1.2);
    text-align: center;
  }

  .home-cta-actions {
    width: 100%;
  }

  .home-cta-actions .btn-v3-contrast,
  .home-cta-actions .btn-v3-outline-contrast {
    width: 100%;
    max-width: 100%;
  }

  .home-stat {
    border-radius: var(--radius-md, 8px);
    min-height: 156px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

  .home-stat-value {
    font-size: 3rem;
    line-height: 1.1;
  }

  .home-stat-label {
    font-size: var(--text-caption-size);
    line-height: var(--text-caption-lh);
  }

.home-imgph--sobre {
  aspect-ratio: 870 / 490;
  min-height: 0;
}

.home-sobre-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 870 / 490;
  min-height: 0;
  border-radius: var(--radius-md, 8px);
  object-fit: cover;
}

picture:has(.home-sobre-image),
picture:has(.sobre-hero-img) {
  display: block;
  width: 100%;
}

.sobre-hero-text > :last-child {
  margin-bottom: 0;
}

  .home-logo-ph {
    height: 120px;
  }

}

/* ===================================================================
   SERVIÇOS — listagem (Figma 29416:9902 + grid desktop)
   =================================================================== */

.page-servicos {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-servicos-intro {
  max-width: 720px;
}

.page-servicos-hero.section-padding {
  padding-top: var(--space-4, 32px);
}

.page-servicos-hero + .section-padding {
  padding-top: var(--space-4, 32px);
}

@media (min-width: 992px) {
  .page-servicos-intro .heading-lg {
    font-size: var(--text-heading-lg-size);
  }

  .page-servicos-hero.section-padding {
    padding-top: var(--space-5, 48px);
  }

  .page-servicos-hero + .section-padding {
    padding-top: var(--space-5, 48px);
  }
}

/* ===================================================================
   SERVIÇO — página interna (Figma desktop 29416:10484 · mobile 29451:7146)
   =================================================================== */

.page-servico-detalhe {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-servico-detalhe > .section-padding:first-of-type {
  padding-top: var(--space-4, 32px);
}

@media (min-width: 992px) {
  .page-servico-detalhe > .section-padding:first-of-type {
    padding-top: var(--space-5, 48px);
  }
}

.servico-intro {
  max-width: 856px;
}

.servico-featured-img {
  min-height: 280px;
  border-radius: var(--radius-md, 8px);
}

.servico-content p:last-child {
  margin-bottom: 0;
}

.servico-contact-card {
  position: static;
  top: auto;
  gap: var(--space-3, 24px);
}

.servico-form-separator {
  display: flex;
  align-items: center;
  gap: var(--space-1, 8px);
  width: 100%;
}

.servico-form-separator::before,
.servico-form-separator::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--color-line, #E3E3E3);
}

.servico-form-control {
  min-height: 48px;
  border-radius: var(--radius-sm, 4px);
  border-color: var(--color-line, #E3E3E3);
  font-size: var(--text-caption-size);
}

.servico-form-control:focus {
  border-color: var(--color-brand, #2563EB);
  box-shadow: 0 0 0 0.2rem var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
}

.servico-contact-form {
  width: 100%;
}

.btn-v3-success {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  min-height: 50px;
  padding: var(--space-1, 8px) var(--space-3, 24px);
  border-radius: var(--radius-md, 8px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  text-decoration: none;
  border: 1px solid transparent;
  background: var(--color-success, #16A34A);
  color: var(--color-surface, #FFFFFF);
}

.btn-v3-success:hover {
  filter: brightness(1.05);
  color: var(--color-surface, #FFFFFF);
}

.servico-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3, 24px);
  max-width: 100%;
}

.page-servico-detalhe .servico-galeria.section-padding {
  padding-top: var(--space-5, 48px);
  padding-bottom: var(--space-5, 48px);
}

.page-servico-detalhe .servico-galeria .heading-lg {
  margin-bottom: var(--space-4, 32px);
}

.page-servico-detalhe .servico-beneficios.section-padding {
  padding-top: var(--space-5, 48px);
  padding-bottom: var(--space-4, 32px);
}

.page-servico-detalhe .servico-beneficios-slider .home-slider__slide,
.page-servico-detalhe .servico-galeria-slider .home-slider__slide {
  height: auto;
}

.page-servico-detalhe .servico-galeria-slider .home-slider__viewport {
  border-radius: var(--radius-sm, 4px);
  overflow: hidden;
}

@media (min-width: 992px) {
  .page-servico-detalhe .servico-galeria.section-padding {
    padding-top: var(--space-6, 64px);
    padding-bottom: var(--space-6, 64px);
  }

  .page-servico-detalhe .servico-beneficios.section-padding {
    padding-top: var(--space-6, 64px);
    padding-bottom: var(--space-5, 48px);
  }
}

.servico-gallery-item {
  min-height: 234px;
  border-radius: var(--radius-sm, 4px);
  max-width: 100%;
  object-fit: cover;
}

@media (max-width: 991px) {
  .servico-contact-card {
    padding: var(--space-3, 24px);
  }

  .servico-featured-img {
    min-height: 185px;
  }

  .servico-gallery {
    display: block;
    overflow: hidden;
  }

  .servico-gallery.is-carousel-active {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
  }

  .servico-gallery.is-carousel-active .servico-gallery-item {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    display: block !important;
  }

  .servico-gallery-item--slide {
    display: none;
  }

  .servico-gallery.is-carousel-active .servico-gallery-item--slide {
    display: block !important;
  }

  .servico-slider-dots {
    display: flex;
    gap: 6px;
    align-items: center;
    justify-content: center;
    width: fit-content;
  }

  .servico-slider-dots span {
    position: relative;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
  }

  .servico-slider-dots span::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-line, #E3E3E3);
    transform: translate(-50%, -50%);
  }

  .servico-slider-dots span.active::after {
    background: var(--color-brand, #2563EB);
  }

  .servico-beneficios {
    padding-top: var(--space-5, 48px);
  }

  .servico-gallery-item {
    min-height: 185px;
  }
}

@media (min-width: 992px) {
  .servico-slider-dots {
    display: none;
  }
}

/* ===================================================================
   SOBRE NÓS — página institucional (Figma desktop 29451:7829 · mobile 29467:8625)
   =================================================================== */

.page-sobre {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-sobre > .section-padding:first-of-type {
  padding-top: var(--space-4, 32px);
}

@media (min-width: 992px) {
  .page-sobre > .section-padding:first-of-type {
    padding-top: var(--space-5, 48px);
  }
}

.sobre-hero-img {
  min-height: 280px;
  border-radius: var(--radius-xl, 24px);
  object-fit: cover;
}

.sobre-mvv {
  margin-top: var(--space-4, 32px);
}

.sobre-team-photo {
  aspect-ratio: 1 / 1;
  min-height: 156px;
  border-radius: var(--radius-xl, 24px);
  object-fit: cover;
}

.sobre-equipe .heading-sm {
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
}

@media (min-width: 992px) {
  .sobre-hero-img {
    min-height: 454px;
  }

  .sobre-team-photo {
    min-height: 306px;
  }

  .sobre-equipe .heading-sm {
    font-size: var(--text-heading-sm-size);
    line-height: var(--text-heading-sm-lh);
  }
}

@media (max-width: 991px) {
  .page-sobre .sobre-gallery {
    display: block;
    overflow: hidden;
  }

  .page-sobre .sobre-gallery.is-carousel-active {
    display: flex;
  }

  .page-sobre .sobre-gallery .servico-gallery-item--slide {
    display: none;
  }

  .page-sobre .sobre-gallery.is-carousel-active .servico-gallery-item--slide {
    display: block !important;
  }

  .page-sobre .sobre-gallery .servico-gallery-item {
    min-height: 185px;
  }
}

/* ===================================================================
   CONTATO — Fale Conosco (Figma desktop 29467:9048 · mobile 29467:12206)
   =================================================================== */

.page-contato {
  background: var(--color-surface-alt, #F5F5F5);
}

/* Header é fixed e o spacer tem altura 0 (camada Anjos). Sem este
   offset o título e o formulário ficam atrás do menu. */
.page-contato > .section-padding:first-of-type {
  padding-top: calc(var(--site-header-height, 72px) + var(--space-4, 32px));
}

@media (min-width: 992px) {
  .page-contato > .section-padding:first-of-type {
    padding-top: calc(var(--site-header-height, 80px) + var(--space-5, 48px));
  }
}

.contato-left-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
}

.contato-intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.contato-actions {
  gap: var(--space-2, 16px);
}

.contato-actions .btn-v3-brand,
.contato-actions .btn-v3-outline-ink {
  width: 100%;
}

.page-contato .contato-actions .btn-v3-brand {
  border-radius: var(--radius-md, 8px);
}

.page-contato .contato-form .btn-v3-brand {
  border-radius: var(--radius-md, 8px);
}

.contato-info-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.contato-info-item {
  display: flex;
  align-items: center;
  gap: var(--space-2, 16px);
  min-height: 56px;
}

.contato-info-icon {
  flex: none;
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg, 16px);
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  color: var(--color-brand, #2563EB);
  font-size: 1.5rem;
  line-height: 1;
}

.contato-info-icon .bi,
.contato-social-links .bi {
  display: block;
  font-size: inherit;
  line-height: 1;
  width: 1em;
  height: 1em;
}

.contato-info-icon .bi::before,
.contato-social-links .bi::before,
.contato-actions .bi::before {
  display: block;
  width: 1em;
  height: 1em;
  line-height: 1;
  vertical-align: 0;
}

.contato-actions .icon-whatsapp {
  display: block;
  flex: none;
}

.contato-info-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
}

.contato-info-text .label {
  display: block;
}

.contato-social {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.contato-social-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1, 8px);
}

.contato-social-links a,
.contato-social-links button {
  width: 45px;
  height: 45px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  text-decoration: none;
  transition: filter 0.2s ease;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.contato-social-links a .bi,
.contato-social-links button .bi {
  color: inherit;
}

.contato-social-links a:hover,
.contato-social-links a:focus-visible,
.contato-social-links button:hover,
.contato-social-links button:focus-visible {
  filter: brightness(1.05);
  color: var(--color-brand-contrast);
}

.contato-form-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  padding: var(--space-4, 32px);
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-xl, 24px);
  box-shadow: var(--shadow-card);
}

.contato-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
}

.contato-form-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
}

.contato-form-row {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
}

.page-contato .contato-form-control {
  border-radius: var(--radius-md, 8px);
  font-size: var(--text-body-size);
}

.contato-textarea {
  min-height: 140px;
  resize: vertical;
}

.contato-map-wrap {
  border-radius: 32px;
  overflow: hidden;
  background: var(--color-line, #E3E3E3);
  min-height: 280px;
}

.contato-map-wrap iframe {
  display: block;
  width: 100%;
  min-height: 280px;
  height: 534px;
  border: 0;
}

.contato-unidades-cta {
  min-height: 250px;
  display: flex;
  align-items: center;
}

.contato-unidades-cta .heading-lg,
.contato-unidades-cta .body,
.contato-unidades-cta .btn-v3-outline-contrast {
  color: var(--color-brand-contrast);
}

.contato-unidades-cta .btn-v3-outline-contrast {
  border-color: var(--color-brand-contrast);
}

.contato-unidades-cta .btn-v3-outline-contrast:hover,
.contato-unidades-cta .btn-v3-outline-contrast:focus-visible {
  color: var(--color-brand-contrast);
  background: var(--color-brand-contrast-subtle);
}

.contato-unidades-copy {
  flex: 1 1 auto;
  max-width: 640px;
}

.btn-v3-outline-ink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  min-height: 50px;
  padding: var(--space-1, 8px) var(--space-3, 24px);
  border-radius: var(--radius-md, 8px);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  text-decoration: none;
  border: 1px solid var(--color-ink, #1A1A1A);
  background: transparent;
  color: var(--color-ink, #1A1A1A);
  transition: background-color 0.2s ease;
  white-space: nowrap;
}

.btn-v3-outline-ink:hover {
  background: var(--color-ink-subtle, rgba(26, 26, 26, 0.10));
  color: var(--color-ink, #1A1A1A);
}

@media (min-width: 576px) {
  .contato-actions .btn-v3-brand,
  .contato-actions .btn-v3-outline-ink {
    width: auto;
  }
}

@media (min-width: 768px) {
  .contato-form-row {
    flex-direction: row;
  }

  .contato-form-row .contato-form-field {
    flex: 1 1 0;
    min-width: 0;
  }
}

@media (min-width: 992px) {
  .contato-columns {
    --bs-gutter-x: 3rem;
  }

  .contato-map-wrap iframe {
    min-height: 534px;
  }
}

@media (max-width: 991px) {
  .contato-unidades-cta .home-cta-inner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  .contato-unidades-cta .home-cta-actions {
    width: 100%;
  }

  .contato-unidades-cta .btn-v3-outline-contrast {
    width: 100%;
  }

  .contato-map-wrap iframe {
    height: 280px;
  }
}

/* ===================================================================
   OBRIGADO — pós-formulário (Figma desktop 29467:12809 · mobile 29467:13376)
   =================================================================== */

.page-obrigado {
  background: var(--color-surface-alt, #F5F5F5);
}

.obrigado-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  align-items: stretch;
  min-height: 475px;
}

.obrigado-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
  justify-content: center;
}

.obrigado-actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
}

.obrigado-actions .btn-v3-brand,
.obrigado-actions .btn-v3-outline-ink {
  width: 100%;
}

.obrigado-image,
.obrigado-image .home-imgph {
  width: 100%;
  min-height: 245px;
  border-radius: var(--radius-xl, 24px);
  overflow: hidden;
}

.obrigado-image-media {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 245px;
  object-fit: cover;
  border-radius: var(--radius-xl, 24px);
}

@media (min-width: 992px) {
  .obrigado-card {
    flex-direction: row;
    align-items: center;
    gap: var(--space-3, 24px);
  }

  .obrigado-content {
    flex: 0 0 636px;
    max-width: 636px;
  }

  .obrigado-image,
  .obrigado-image .home-imgph {
    flex: 1 1 auto;
    min-height: 475px;
  }

  .obrigado-image-media {
    min-height: 475px;
  }

  .obrigado-actions {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3, 24px);
  }

  .obrigado-actions .btn-v3-brand,
  .obrigado-actions .btn-v3-outline-ink {
    width: auto;
  }
}

/* ===================================================================
   404 — Página não encontrada (Figma desktop 29484:13655 · mobile 29484:13810)
   =================================================================== */

.page-404 {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-404-card {
  min-height: 475px;
  display: flex;
  align-items: center;
}

.page-404-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
}

.page-404-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.page-404-actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
}

.page-404-actions .btn-v3-brand,
.page-404-actions .btn-v3-outline-ink {
  width: 100%;
}

.page-404-btn-home {
  color: var(--color-surface, #FFFFFF);
  padding-left: var(--space-4, 32px);
  padding-right: var(--space-4, 32px);
}

.page-404-btn-home:hover,
.page-404-btn-home:focus-visible {
  color: var(--color-surface, #FFFFFF);
}

.page-404-btn-home .bi {
  color: var(--color-brand-contrast, #FFFFFF);
}

.page-404-illustration {
  display: flex;
  justify-content: center;
  width: 100%;
}

.page-404-illustration__svg {
  display: block;
  width: 100%;
  max-width: 636px;
  height: auto;
}

.page-404-illustration__numbers {
  fill: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
}

.page-404-illustration__graphic {
  fill: var(--color-brand, #2563EB);
}

@media (min-width: 992px) {
  .page-404-actions {
    flex-direction: row;
    align-items: center;
  }

  .page-404-actions .btn-v3-brand,
  .page-404-actions .btn-v3-outline-ink {
    width: auto;
  }
}

/* ===================================================================
   BLOG — listagem (Figma desktop 29492:15601 · mobile 29499:17455)
   =================================================================== */

.page-blog {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-blog > .section-padding {
  padding-top: var(--space-4, 32px);
  padding-bottom: var(--space-section);
}

.blog-page {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
}

.blog-intro {
  max-width: 855px;
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
}

.blog-intro .heading-lg,
.blog-intro .body {
  margin: 0;
}

.blog-page__grid {
  --bs-gutter-x: var(--space-2, 16px);
  align-items: flex-start;
}

.blog-page__grid > [class*="col-"] {
  min-width: 0;
}

.blog-main {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
  width: 100%;
}

.blog-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
  width: 100%;
  min-width: 0;
}

.blog-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.blog-card__link,
.blog-card.blog-card--compact {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.blog-card__link {
  text-decoration: none;
  color: inherit;
}

.blog-card__link:focus-visible {
  outline: 2px solid var(--color-brand, #2563EB);
  outline-offset: 4px;
  border-radius: var(--radius-lg, 16px);
}

.page-blog:not(.page-blog-post) .blog-list .blog-card__image,
.page-blog:not(.page-blog-post) .blog-list .blog-card__image--placeholder,
.page-blog:not(.page-blog-post) .blog-list .home-imgph--blog-card {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: center center;
}

.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__image,
.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__image--placeholder,
.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .home-imgph--blog-card {
  transform: scale(1.05);
}

.page-blog:not(.page-blog-post) .blog-list .blog-card__body .heading-md,
.page-blog:not(.page-blog-post) .blog-list .blog-card__meta,
.page-blog:not(.page-blog-post) .blog-list .blog-card__summary .body,
.page-blog:not(.page-blog-post) .blog-list .blog-card__date,
.page-blog:not(.page-blog-post) .blog-list .blog-card__meta-date {
  transition: color 0.25s ease;
}

.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__body .heading-md,
.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__meta,
.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__summary .body,
.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__date,
.page-blog:not(.page-blog-post) .blog-list .blog-card:hover .blog-card__meta-date {
  color: var(--color-brand, #2563EB);
}

.blog-card__media {
  display: block;
  flex: none;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--radius-lg, 16px);
}

.blog-card__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 416 / 234;
  object-fit: cover;
  border-radius: var(--radius-lg, 16px);
  max-width: 100%;
}

.blog-card__image--placeholder,
.home-imgph--blog-card {
  width: 100%;
  aspect-ratio: 416 / 234;
  min-height: 0;
  border-radius: var(--radius-lg, 16px);
}

.blog-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.blog-card__summary {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
  min-width: 0;
}

.blog-card__body .heading-md,
.blog-card__body .body,
.blog-card__body .caption {
  margin: 0;
}

.blog-card__body .heading-md,
.blog-card__body .heading-md a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.blog-card__summary .body {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.blog-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-0, 4px);
}

.blog-card__dot {
  width: 3px;
  height: 3px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-ink-muted, #757575);
  flex: none;
}

.blog-card__meta-date {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0, 4px);
}

.blog-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
  padding: var(--space-3, 24px);
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
}

.blog-sidebar__search,
.blog-sidebar__categories {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.blog-sidebar__search {
  gap: 12px;
}

.blog-sidebar__categories {
  gap: var(--space-2, 16px);
}

.blog-sidebar__title {
  margin: 0;
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.3;
  color: var(--color-brand-hover, #1D4ED8);
}

.blog-sidebar__search-field {
  display: flex;
  align-items: center;
  gap: var(--space-2, 16px);
  min-height: 48px;
  padding: 0 var(--space-2, 16px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-sm, 8px);
  background: var(--color-surface, #FFFFFF);
}

.blog-sidebar__search-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  color: var(--color-ink, #1A1A1A);
}

.blog-sidebar__search-input:focus {
  outline: none;
}

.blog-sidebar__search-input::placeholder {
  color: var(--color-ink-muted, #757575);
}

.blog-sidebar__search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--color-ink-muted, #757575);
  padding: 0;
}

.blog-sidebar__category-list {
  display: flex;
  flex-direction: column;
}

.blog-sidebar__category-item + .blog-sidebar__category-item {
  border-top: 1px solid var(--color-line, #E3E3E3);
  margin-top: 12px;
  padding-top: 12px;
}

.blog-sidebar__category-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 16px);
  padding: var(--space-1, 8px) 0;
  text-decoration: none;
  color: var(--color-ink, #1A1A1A);
  font-size: var(--text-body-size);
  line-height: var(--text-body-lh);
}

.blog-sidebar__category-link:hover,
.blog-sidebar__category-link.is-active {
  color: var(--color-brand, #2563EB);
}

.blog-sidebar__category-count {
  color: var(--color-ink-muted, #757575);
  font-size: var(--text-small-size);
}

.blog-pagination-wrap {
  margin-top: 0;
}

.blog-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1, 8px);
}

.blog-pagination__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: 7px;
  background: var(--color-surface, #FFFFFF);
  color: var(--color-ink, #1A1A1A);
  font-size: var(--text-body-size);
  line-height: 1;
}

.blog-pagination__item.is-active {
  background: var(--color-brand, #2563EB);
  border-color: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast);
}

.blog-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 40px;
  min-height: 40px;
  text-decoration: none;
  color: inherit;
}

.blog-pagination__item--nav .blog-pagination__link {
  color: #313131;
}

.home-post-image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--radius-md, 8px);
}

.home-post__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.home-post__link:focus-visible {
  outline: 2px solid var(--color-brand, #2563EB);
  outline-offset: 4px;
  border-radius: var(--radius-md, 8px);
}

.home-post__media {
  display: block;
  overflow: hidden;
  border-radius: var(--radius-md, 8px);
  flex: none;
}

.home-post__media .home-post-image,
.home-post__media .home-imgph--blog {
  border-radius: 0;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: center center;
}

.home-post__link:hover .home-post__media .home-post-image,
.home-post__link:hover .home-post__media .home-imgph--blog,
.home-post__link:focus-visible .home-post__media .home-post-image,
.home-post__link:focus-visible .home-post__media .home-imgph--blog {
  transform: scale(1.05);
}

.home-post__link .heading-sm,
.home-post-meta,
.home-post__excerpt {
  transition: color 0.25s ease;
}

.home-post__link:hover .heading-sm,
.home-post__link:hover .home-post-meta,
.home-post__link:hover .home-post-meta span:not(.home-post-dot),
.home-post__link:hover .home-post__excerpt,
.home-post__link:focus-visible .heading-sm,
.home-post__link:focus-visible .home-post-meta,
.home-post__link:focus-visible .home-post-meta span:not(.home-post-dot),
.home-post__link:focus-visible .home-post__excerpt {
  color: var(--color-brand, #2563EB);
}

.home-post__excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  overflow-wrap: anywhere;
}

.blog-post__hero-image {
  width: 100%;
  border-radius: var(--radius-lg, 16px);
  aspect-ratio: 966 / 580;
  object-fit: cover;
}

.blog-post__content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-md, 8px);
}

.blog-post__content p:last-child {
  margin-bottom: 0;
}

.blog-post__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3, 24px);
  margin-top: var(--space-4, 32px);
  padding-top: var(--space-4, 32px);
  border-top: 1px solid var(--color-line, #E3E3E3);
}

.blog-post__footer-title {
  text-transform: uppercase;
  letter-spacing: var(--text-overline-ls);
}

.blog-post__tags,
.blog-post__share {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.blog-post__share {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
}

.blog-post__share-label {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: var(--text-overline-ls);
}

.blog-post__share-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1, 8px);
}

.blog-post__tags-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1, 8px);
}

.blog-post__tags-list .tag:hover,
.blog-post__tags-list .tag:focus-visible {
  filter: brightness(0.95);
}

.blog-post__share-links a {
  color: var(--color-brand-contrast);
}

.blog-post__share-links a:hover,
.blog-post__share-links a:focus-visible {
  color: var(--color-brand-contrast);
}

@media (max-width: 767.98px) {
  .blog-post__footer {
    flex-direction: column;
    gap: var(--space-4, 32px);
  }
}

.blog-card--compact {
  padding-bottom: var(--space-3, 24px);
  border-bottom: 1px solid var(--color-line, #E3E3E3);
}

.blog-card--compact:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.blog-related {
  margin-top: var(--space-6, 64px);
  padding-top: var(--space-5, 48px);
  border-top: 1px solid var(--color-line, #E3E3E3);
}

.blog-related__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3, 24px);
  align-items: stretch;
}

@media (min-width: 768px) {
  .blog-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  .blog-related__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.blog-post-sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--space-4, 32px);
}

.blog-contact-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3, 24px);
  position: static;
  top: auto;
}

.page-blog-post .servico-contact-card {
  position: static;
  top: auto;
}

@media (max-width: 991.98px) {
  .page-blog:not(.page-blog-post) .blog-list {
    gap: calc(var(--space-4, 32px) + var(--space-1, 8px));
  }

  .page-blog:not(.page-blog-post) .blog-card__link {
    gap: var(--space-1, 8px);
  }

  .page-blog:not(.page-blog-post) .blog-card__body {
    gap: var(--space-0, 4px);
  }

  .page-blog:not(.page-blog-post) .blog-card__summary {
    gap: var(--space-0, 4px);
  }
}

@media (min-width: 992px) {
  .page-blog > .section-padding {
    padding-top: var(--space-5, 48px);
  }

  .blog-page {
    gap: var(--space-6, 64px);
  }

  .blog-page__grid {
    --bs-gutter-x: var(--space-2, 16px);
  }

  .blog-card__link,
  .blog-card.blog-card--compact {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-3, 24px);
  }

  .blog-card__media {
    flex: 0 1 416px;
    width: 43%;
    max-width: 416px;
    min-width: 0;
  }

  .blog-card__image,
  .blog-card__image--placeholder,
  .home-imgph--blog-card {
    width: 100%;
    height: 234px;
    aspect-ratio: auto;
  }

  .blog-card__body {
    flex: 1 1 0;
    min-width: 0;
    min-height: 0;
  }

  .page-blog:not(.page-blog-post) .blog-card__date {
    margin-top: 0;
  }

  .blog-sidebar {
    max-width: none;
    margin-left: 0;
  }
}

/* ===================================================================
   INSTITUCIONAL — Política de Privacidade / Cookies
   Figma desktop 29492:14416 · 29492:15087
   =================================================================== */

.page-institucional {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-institucional > .section-padding {
  padding-top: var(--space-4, 32px);
  padding-bottom: var(--space-section);
}

.institucional-page {
  display: flex;
  flex-direction: column;
  gap: var(--space-5, 48px);
  max-width: 1076px;
  margin-inline: auto;
  width: 100%;
}

.institucional-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  padding: var(--space-4, 32px);
  border-radius: var(--radius-xl, 24px);
  background: var(--color-brand, #2563EB);
  text-align: center;
}

.institucional-hero .heading-lg {
  margin: 0;
  color: var(--color-brand-contrast, #FFFFFF);
}

.institucional-hero .body {
  margin: 0;
  color: var(--color-brand-contrast, #FFFFFF);
}

.institucional-content {
  display: flex;
  flex-direction: column;
  gap: var(--space-5, 48px);
  width: 100%;
}

.institucional-content .legal-intro {
  margin: 0;
  color: var(--color-ink-muted, #757575);
}

.legal-section {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.legal-section__title {
  margin: 0;
  font-family: var(--font-body, 'Manrope', sans-serif);
  font-size: var(--text-heading-sm-size, 1.25rem);
  font-weight: var(--text-heading-sm-weight, 800);
  line-height: var(--text-heading-sm-lh, 1.3);
  color: var(--color-ink, #1A1A1A);
}

.legal-section p {
  margin: 0;
  color: var(--color-ink-muted, #757575);
}

.institucional-content a {
  color: var(--color-brand, #2563EB);
  text-decoration: none;
}

.institucional-content a:hover,
.institucional-content a:focus-visible {
  text-decoration: underline;
}

.legal-checklist {
  list-style: none;
  margin: 0;
  padding: 0 0 0 var(--space-1, 8px);
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
}

.legal-checklist__item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2, 16px);
}

.legal-checklist__icon {
  flex: none;
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md, 8px);
  background: rgba(21, 193, 90, 0.1);
  color: #15C15A;
  font-size: 0.625rem;
  line-height: 1;
}

.legal-checklist__text {
  flex: 1;
  min-width: 0;
  color: var(--color-ink-muted, #757575);
}

.legal-type-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
}

.legal-type-block {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  padding-left: var(--space-3, 24px);
  border-left: 3px solid var(--color-line, #E3E3E3);
}

.legal-type-block__title {
  margin: 0;
  font-weight: 700;
  color: var(--color-ink, #1A1A1A);
}

.legal-type-block p:not(.legal-type-block__title) {
  margin: 0;
}

.legal-contact-box {
  padding: var(--space-3, 24px);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-surface-alt, #F5F5F5);
}

.legal-contact-box a {
  color: var(--color-brand, #2563EB);
  font-weight: 400;
  text-decoration: none;
}

.legal-contact-box a:hover,
.legal-contact-box a:focus-visible {
  text-decoration: underline;
}

@media (min-width: 768px) {
  .institucional-hero {
    padding: var(--space-6, 64px);
  }
}

/* ===================================================================
   CLIENTES — listagem (Figma 29511:5237 desktop · 29511:5965 mobile)
   =================================================================== */

.page-clientes {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-clientes-intro {
  max-width: 636px;
}

.page-clientes-hero.section-padding {
  padding-top: var(--space-4, 32px);
}

.page-clientes-hero + .section-padding {
  padding-top: var(--space-4, 32px);
}

.page-clientes-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 85px;
  height: 100%;
  padding: 12px 20px;
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  text-align: center;
}

.page-clientes-logo__img {
  display: block;
  max-width: 100%;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.page-clientes-logo .caption {
  font-size: 0.75rem;
  line-height: 1.5;
}

@media (min-width: 992px) {
  .page-clientes-hero.section-padding {
    padding-top: var(--space-5, 48px);
  }

  .page-clientes-hero + .section-padding {
    padding-top: var(--space-5, 48px);
  }

  .page-clientes-intro .heading-lg {
    font-size: var(--text-heading-lg-size);
  }

  .page-clientes-logo {
    min-height: 108px;
  }

  .page-clientes-logo__img {
    max-height: 76px;
  }

  .page-clientes-logo .caption {
    font-size: var(--text-caption-size, 0.875rem);
  }
}

/* ===================================================================
   UNIDADES — Onde nos encontrar (Figma 29499:18877 desktop)
   =================================================================== */

.page-unidades {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-unidades-intro {
  max-width: 636px;
}

.page-unidades-hero.section-padding {
  padding-top: var(--space-4, 32px);
}

.page-unidades-hero + .section-padding {
  padding-top: var(--space-3, 24px);
}

.unidade-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.03);
  overflow: hidden;
}

.unidade-card__media {
  height: 200px;
  overflow: hidden;
  background: var(--color-line, #E3E3E3);
}

.unidade-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.unidade-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
  padding: 0 var(--space-3, 24px) var(--space-3, 24px);
  flex: 1 1 auto;
}

/* O Figma separa a foto do texto em 24px (Branch-Card 29649:41055, gap/spacing-3).
   Sem isto o título fica colado na imagem. */
.unidade-card__media + .unidade-card__body {
  padding-top: var(--space-3, 24px);
}

.unidade-card:not(:has(.unidade-card__media)) .unidade-card__body {
  padding-top: var(--space-3, 24px);
}

.unidade-card__details {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.unidade-card__detail {
  display: flex;
  align-items: flex-start;
  gap: var(--space-1, 8px);
}

.unidade-card__detail-icon {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-brand, #2563EB);
  font-size: 1rem;
  line-height: 1;
}

.unidade-card__detail-text {
  flex: 1 1 auto;
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-body-size, 1rem);
  font-weight: 400;
  line-height: 1.5;
  color: var(--color-ink-muted, #757575);
  text-decoration: none;
}

a.unidade-card__detail-text:hover {
  color: var(--color-brand, #2563EB);
}

.unidade-card__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
  margin-top: auto;
}

.unidade-card__actions .btn-v3-brand .bi-whatsapp {
  color: var(--color-brand-contrast, #FFFFFF);
}

.unidade-card__actions .btn-v3-outline-brand {
  color: var(--color-ink, #1A1A1A);
}

@media (min-width: 992px) {
  .page-unidades-hero.section-padding {
    padding-top: var(--space-6, 64px);
  }

  .page-unidades-intro .heading-lg {
    font-size: var(--type-heading-lg, 3rem);
  }
}

/* ===================================================================
   DEPOIMENTOS — listagem (Figma 29511:6279 desktop · 29511:6347 mobile)
   =================================================================== */

.page-depoimentos {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-depoimentos-intro {
  max-width: 636px;
}

.page-depoimentos-hero.section-padding {
  padding-top: var(--space-4, 32px);
}

.page-depoimentos-hero + .section-padding {
  padding-top: var(--space-4, 32px);
}

.page-depoimentos-card {
  gap: var(--space-2, 16px);
}

.page-depoimentos-card__quote {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
}

.home-avatar-ph--initials {
  display: grid;
  place-items: center;
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-caption-size, 0.875rem);
  font-weight: 700;
  color: var(--color-brand, #2563EB);
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  border-color: transparent;
}

@media (min-width: 992px) {
  .page-depoimentos-hero.section-padding {
    padding-top: var(--space-5, 48px);
  }

  .page-depoimentos-hero + .section-padding {
    padding-top: var(--space-5, 48px);
  }

  .page-depoimentos-intro .heading-lg {
    font-size: var(--text-heading-lg-size);
  }

  .page-depoimentos-grid {
    row-gap: var(--space-3, 24px);
  }
}

/* ===================================================================
   TRABALHE CONOSCO — Faça parte do time (Figma 29511:4658 · 29511:4736)
   =================================================================== */

.page-trabalhe {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-trabalhe .trabalhe-section {
  padding-top: var(--space-4, 32px);
  padding-bottom: var(--space-section);
}

.trabalhe-columns {
  --bs-gutter-y: 2.5rem;
}

.trabalhe-intro-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
  max-width: 636px;
}

.trabalhe-heading {
  display: flex;
  flex-direction: column;
  gap: var(--space-2, 16px);
}

.trabalhe-intro-cta {
  border-radius: var(--radius-md, 8px);
}

.page-trabalhe .contato-form .btn-v3-brand {
  border-radius: var(--radius-md, 8px);
}

.trabalhe-form-card {
  height: 100%;
  max-width: 636px;
  margin-left: auto;
}

.page-trabalhe .contato-form-card.trabalhe-form-card {
  box-shadow: none;
}

.page-trabalhe .contato-form-control {
  border-radius: var(--radius-md, 8px);
  font-size: var(--text-body-size);
}

.trabalhe-upload {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  min-height: 120px;
  padding: var(--space-2, 16px);
  border: 1px dashed var(--color-brand-hover, #1D4ED8);
  border-radius: var(--radius-md, 8px);
  background: var(--color-surface-alt, #F5F5F5);
  text-align: center;
  cursor: pointer;
  margin-bottom: 0;
}

.trabalhe-upload input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.trabalhe-upload__icon {
  font-size: 1.5rem;
  line-height: 1;
  color: var(--color-brand, #2563EB);
}

.trabalhe-upload__filename {
  position: relative;
  z-index: 1;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (min-width: 992px) {
  .page-trabalhe .trabalhe-section {
    padding-top: var(--space-5, 48px);
  }

  .trabalhe-intro-col {
    gap: var(--space-4, 32px);
  }

  .trabalhe-columns {
    --bs-gutter-x: 3rem;
    --bs-gutter-y: 0;
  }
}

@media (max-width: 991px) {
  .trabalhe-form-card {
    max-width: 100%;
    margin-left: 0;
  }
}

/* ===================================================================
   PÁGINA DE LINKS — Figma desktop 29521:7163 · mobile 29521:7357
   =================================================================== */

.body-links {
  min-height: 100vh;
}

.page-links {
  position: relative;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.page-links-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
}

.page-links-bg-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-links-bg-overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-brand, #2563EB);
  opacity: 0.8;
}

.page-links-content {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: var(--space-4, 32px) var(--space-3, 24px) var(--space-2, 16px);
}

.page-links-card {
  width: 100%;
  max-width: 324px;
  margin-top: var(--space-2, 16px);
  padding: var(--space-5, 48px) var(--space-4, 32px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-md, 16px);
  background: var(--color-surface, #FFFFFF);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4, 32px);
}

.page-links-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.page-links-logo-image {
  display: block;
  max-width: min(100%, 245px);
  max-height: 36px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.page-links-logo-text {
  font-size: clamp(1.75rem, 8vw, 2.25rem);
}

.page-links-social {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
}

.page-links-social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  min-width: 45px;
  height: 45px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast);
  text-decoration: none;
  transition: filter 0.2s ease;
}

.page-links-social-btn:hover,
.page-links-social-btn:focus-visible {
  filter: brightness(1.05);
  color: var(--color-brand-contrast);
}

.page-links-social-btn i {
  font-size: 1.125rem;
  line-height: 1;
}

.page-links-actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  width: 100%;
}

.page-links-action-btn {
  width: 100%;
  border-radius: var(--radius-md, 8px);
}

.page-links .page-links-action-btn.btn-v3-brand,
.page-links .page-links-action-btn.btn-v3-brand:hover,
.page-links .page-links-action-btn.btn-v3-brand:focus-visible,
.page-links .page-links-action-btn.btn-v3-brand i {
  color: var(--color-brand-contrast);
}

.page-links .page-links-action-btn.btn-v3-success,
.page-links .page-links-action-btn.btn-v3-success:hover,
.page-links .page-links-action-btn.btn-v3-success:focus-visible {
  color: var(--color-surface, #FFFFFF);
}

.page-links .page-links-action-btn.btn-v3-success i {
  color: var(--color-brand-contrast, #FFFFFF);
}

.page-links-footer {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1, 8px);
  width: 100%;
  padding: var(--space-1, 8px) var(--space-3, 24px) var(--space-2, 16px);
  text-align: center;
}

.page-links-copy {
  max-width: 314px;
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--color-brand-contrast, #FFFFFF);
  white-space: pre-wrap;
}

.page-links-cdw {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.page-links-cdw-logo {
  display: block;
  width: 176.944px;
  max-width: 100%;
  height: 17.15px;
  background-color: var(--color-brand-contrast, #FFFFFF);
  -webkit-mask: url("../images/cdw-desenvolvimento-logo.svg") no-repeat center / contain;
  mask: url("../images/cdw-desenvolvimento-logo.svg") no-repeat center / contain;
}

.page-links-cdw:hover,
.page-links-cdw:focus-visible {
  opacity: 0.9;
}

@media (min-width: 992px) {
  .page-links-content {
    padding: var(--space-2, 16px) var(--space-6, 72px);
  }

  .page-links-card {
    max-width: 636px;
    margin-top: 0;
    padding: var(--space-7, 96px);
    border-radius: var(--radius-xl, 24px);
  }

  .page-links-logo-image {
    max-width: min(100%, 418px);
    max-height: 61px;
  }

  .page-links-footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, 24px);
    width: 100%;
    max-width: none;
    padding: var(--space-2, 16px) var(--space-6, 72px);
    text-align: left;
  }

  .page-links-copy {
    flex: 1 1 auto;
    max-width: 803px;
    font-size: var(--text-caption-size, 0.875rem);
  }

  .page-links-cdw {
    flex-shrink: 0;
  }
}

/* ===================================================================
   FAQ — Figma desktop 29499:19723
   =================================================================== */

.page-faq {
  background: var(--color-surface-alt, #F5F5F5);
}

.page-faq-intro {
  max-width: 636px;
}

.page-faq-hero.section-padding {
  padding-bottom: 0;
}

.page-faq-hero + .section-padding {
  padding-top: var(--space-4, 32px);
}

.page-faq-accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-width: 0;
  --bs-accordion-border-radius: 0;
  --bs-accordion-inner-border-radius: 0;
  --bs-accordion-btn-padding-x: 0;
  --bs-accordion-btn-padding-y: var(--space-3, 24px);
  --bs-accordion-body-padding-x: 0;
  --bs-accordion-body-padding-y: 0;
  --bs-accordion-active-color: var(--color-ink, #1A1A1A);
  --bs-accordion-active-bg: transparent;
  --bs-accordion-btn-focus-box-shadow: none;
}

.page-faq-item {
  border: 0;
  border-bottom: 1px solid var(--color-line, #E3E3E3);
  background: transparent;
}

.page-faq-item:first-child {
  border-top: 1px solid var(--color-line, #E3E3E3);
}

.page-faq-item__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 16px);
  width: 100%;
  box-shadow: none;
  background: transparent;
  color: var(--color-ink, #1A1A1A);
}

.page-faq-item__toggle::after {
  display: none;
}

.page-faq-item__toggle:not(.collapsed) {
  background: transparent;
  color: var(--color-ink, #1A1A1A);
  box-shadow: none;
}

.page-faq-item__toggle:focus {
  box-shadow: none;
}

.page-faq-item__toggle .heading-sm {
  flex: 1 1 auto;
  text-align: left;
}

.page-faq-item__icon {
  flex-shrink: 0;
  font-size: 1rem;
  line-height: 1;
  color: var(--color-ink, #1A1A1A);
  transition: transform 0.2s ease;
}

.page-faq-item__toggle:not(.collapsed) .page-faq-item__icon {
  transform: rotate(180deg);
}

.page-faq-item__body {
  padding-bottom: var(--space-3, 24px);
}

.page-faq-item__body p:last-child {
  margin-bottom: 0;
}

@media (min-width: 992px) {
  .page-faq-hero.section-padding {
    padding-top: var(--space-6, 72px);
  }

  .page-faq-hero + .section-padding {
    padding-top: var(--space-5, 48px);
  }
}
/* -------------------------------------------------------------------
   Portfólio — card de projeto, chips de categoria e breadcrumb
   Figma: Project_Card_Portfolio (29628:27099), secao-catalogo (29628:18521),
   PRODUTOS / PORTFÓLIO (29628:18595)
   ------------------------------------------------------------------- */

.portfolio-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  width: 100%;
  aspect-ratio: 416 / 554;
  padding: var(--space-4, 32px);
  border-radius: var(--radius-lg, 16px);
  overflow: hidden;
  text-decoration: none;
  isolation: isolate;
}

.portfolio-card__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.portfolio-card__image--placeholder {
  background:
    linear-gradient(145deg, var(--color-brand-subtle, rgba(37, 99, 235, 0.10)) 0%, color-mix(in srgb, var(--color-accent, #132C42) 8%, transparent) 100%),
    var(--color-surface-alt, #F5F5F5);
}

.portfolio-card__overlay {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 44.134%, rgba(0, 0, 0, 0.7) 100%);
  pointer-events: none;
}

.portfolio-card__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
  width: 100%;
}

.portfolio-card__category {
  color: #C0C0D0;
}

a.portfolio-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

a.portfolio-card:hover,
a.portfolio-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.14);
}

@media (prefers-reduced-motion: reduce) {
  a.portfolio-card:hover,
  a.portfolio-card:focus-visible {
    transform: none;
  }
}

#portfolio-destaque .home-section-head {
  margin-bottom: 30px;
}

#portfolio-destaque .home-section-head + .home-slider,
#portfolio-destaque .home-slider {
  margin-top: 0;
}

#portfolio-destaque .home-slider__slide {
  display: flex;
  align-items: stretch;
}

#portfolio-destaque .portfolio-card {
  width: 100%;
}

.chip-category {
  display: inline-flex;
  align-items: center;
  padding: 10px 20px;
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-full, 999px);
  background: var(--color-surface, #FFFFFF);
  color: var(--color-ink, #1A1A1A);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.chip-category:hover,
.chip-category:focus-visible {
  border-color: var(--color-brand, #2563EB);
  color: var(--color-brand, #2563EB);
}

.chip-category.is-active {
  background: var(--color-brand, #2563EB);
  border-color: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
}

.chip-list {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--space-2, 16px);
}

.page-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.page-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2, 16px);
  color: var(--color-ink-muted, #757575);
  font-size: var(--text-caption-size);
  line-height: var(--text-caption-lh);
}

.page-breadcrumb__item a {
  color: inherit;
  text-decoration: none;
}

.page-breadcrumb__item a:hover,
.page-breadcrumb__item a:focus-visible {
  color: var(--color-brand, #2563EB);
  text-decoration: underline;
}

.page-breadcrumb__item[aria-current="page"] {
  color: var(--color-ink, #1A1A1A);
}

.page-breadcrumb__sep {
  font-size: 8px;
  line-height: 1;
  color: var(--color-ink-muted, #757575);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
}

@media (min-width: 576px) {
  .portfolio-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 992px) {
  .portfolio-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* -------------------------------------------------------------------
   Portfólio — página interna do projeto
   Figma: PRODUTOS / PÁGINA INTERNA PORTFÓLIO (29628:18870)
   ------------------------------------------------------------------- */

.projeto-hero {
  padding: 0;
}

.projeto-hero-box {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-xl, 24px);
}

.projeto-hero-media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1275 / 577;
  object-fit: cover;
  border-radius: inherit;
}

.projeto-divider {
  margin: var(--space-2, 16px) 0 0;
  border: 0;
  border-top: 1px solid var(--color-line, #E3E3E3);
  opacity: 1;
}

.projeto-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
  margin: var(--space-2, 16px) 0 0;
}

.projeto-meta__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
  min-width: 0;
}

.projeto-meta__label {
  color: var(--color-brand, #2563EB);
  font-weight: var(--text-caption-weight);
}

.projeto-meta__value {
  color: var(--color-ink, #1A1A1A);
  overflow-wrap: anywhere;
}

@media (min-width: 576px) {
  .projeto-meta {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 992px) {
  .projeto-meta {
    grid-template-columns: repeat(4, 1fr);
  }
}

.projeto-narrativa {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
}

.projeto-narrativa__title {
  color: var(--color-accent, #132C42);
}

.projeto-narrativa__body > *:last-child {
  margin-bottom: 0;
}

.projeto-narrativa__body p {
  margin-bottom: var(--space-3, 24px);
}

@media (min-width: 992px) {
  .projeto-narrativa {
    grid-template-columns: 416fr 856fr;
    gap: var(--space-3, 24px);
  }
}

.projeto-galeria {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
}

.projeto-galeria__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
}

.projeto-galeria__item {
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  background: var(--color-surface-alt, #F5F5F5);
}

.projeto-galeria__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.projeto-galeria__item--full img {
  aspect-ratio: 1296 / 527;
}

.projeto-galeria__item--half img,
.projeto-galeria__item--wide img,
.projeto-galeria__item--narrow img {
  aspect-ratio: 628 / 425;
}

@media (min-width: 768px) {
  .projeto-galeria {
    gap: 40px;
  }

  .projeto-galeria__row {
    gap: 40px;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    grid-template-columns: none;
  }

  .projeto-galeria__row:has(.projeto-galeria__item--wide) {
    grid-auto-flow: row;
    grid-template-columns: 769fr 486fr;
  }

  .projeto-galeria__item--wide img {
    aspect-ratio: 769 / 425;
  }

  .projeto-galeria__item--narrow img {
    aspect-ratio: 486 / 425;
  }
}

/* -------------------------------------------------------------------
   Seu Site rápido — modal de troca de modelo de layout
   ------------------------------------------------------------------- */

.layout-model-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  margin-top: var(--space-2, 16px);
}

.layout-model {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 16px);
  width: 100%;
  padding: var(--space-2, 16px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-surface, #FFFFFF);
  color: var(--color-ink, #1A1A1A);
  text-decoration: none;
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

a.layout-model:hover,
a.layout-model:focus-visible {
  border-color: var(--color-brand, #2563EB);
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  transform: translateY(-1px);
}

.layout-model.is-active {
  border-color: var(--color-brand, #2563EB);
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
}

.layout-model.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.layout-model__text {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
  min-width: 0;
}

.layout-model__title {
  color: inherit;
}

.layout-model__desc {
  color: var(--color-ink-muted, #757575);
}

.layout-model__icon {
  flex: 0 0 auto;
  color: var(--color-brand, #2563EB);
}

.layout-model__badge {
  flex: 0 0 auto;
  padding: 4px 12px;
  border-radius: var(--radius-full, 999px);
  background: var(--color-surface-alt, #F5F5F5);
  color: var(--color-ink-muted, #757575);
  font-size: var(--text-caption-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-caption-lh);
  white-space: nowrap;
}

.layout-model__badge--active {
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
}

@media (prefers-reduced-motion: reduce) {
  a.layout-model:hover,
  a.layout-model:focus-visible {
    transform: none;
  }
}

/* -------------------------------------------------------------------
   Catálogo de produtos
   Figma: Product_Card (29585:22501), Category_Card (29595:23936),
   PRODUTOS / TODOS OS PRODUTOS (29578:7528), PÁGINA DO PRODUTO (29578:7783)
   ------------------------------------------------------------------- */

.product-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-2, 16px);
}

@media (min-width: 768px) {
  .product-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3, 24px);
  }
}

@media (min-width: 1200px) {
  .product-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.product-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-surface, #FFFFFF);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.03);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

a.product-card:hover,
a.product-card:focus-visible {
  border-color: var(--color-brand, #2563EB);
  box-shadow: 0 12px 24px rgba(37, 99, 235, 0.12);
  transform: translateY(-2px);
}

.product-card__media {
  width: 100%;
}

.product-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.product-card__image--placeholder {
  background:
    linear-gradient(145deg, var(--color-brand-subtle, rgba(37, 99, 235, 0.10)) 0%, color-mix(in srgb, var(--color-accent, #132C42) 8%, transparent) 100%),
    var(--color-surface-alt, #F5F5F5);
}

.product-card__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-4, 32px);
  width: 100%;
  padding: var(--space-3, 24px);
}

.product-card__info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.product-card__category {
  color: var(--color-brand, #2563EB);
}

.product-card__title {
  color: var(--color-ink, #1A1A1A);
  overflow-wrap: anywhere;
}

.product-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 8px);
  color: var(--color-brand, #2563EB);
}

.category-card {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 306 / 408;
  overflow: hidden;
  border-radius: var(--radius-lg, 16px);
  background: var(--color-surface, #FFFFFF);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.03);
  text-decoration: none;
  isolation: isolate;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

a.category-card:hover,
a.category-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.14);
}

.category-card__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.category-card__image--placeholder {
  background:
    linear-gradient(145deg, var(--color-brand-subtle, rgba(37, 99, 235, 0.10)) 0%, color-mix(in srgb, var(--color-accent, #132C42) 8%, transparent) 100%),
    var(--color-surface-alt, #F5F5F5);
}

.category-card__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(151.93deg, rgba(0, 0, 0, 0) 35.714%, rgba(0, 0, 0, 0.698) 85.714%);
  pointer-events: none;
}

.category-card__content {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  align-items: flex-start;
  padding: var(--space-3, 24px);
}

.category-card__title,
.category-card__link {
  color: #FFFFFF;
}

.category-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 8px);
}

#catalogo-destaque .home-section-head {
  margin-bottom: 30px;
}

#planos .home-section-head {
  margin-bottom: 30px;
}

#planos .home-section-head + .pricing-grid,
#planos .pricing-grid {
  margin-top: 0;
}

#catalogo-destaque .home-section-head + .home-slider,
#catalogo-destaque .home-slider {
  margin-top: 0;
}

#catalogo-destaque .home-slider__slide {
  display: flex;
  align-items: stretch;
}

#catalogo-destaque .category-card {
  width: 100%;
}

#portfolio .home-section-head {
  margin-bottom: 30px;
}

/* Home — Nosso catálogo mobile (todos os layouts com produtos) */
@media (max-width: 991.98px) {
  #home #portfolio .site-container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3, 24px);
  }

  #home #portfolio .home-section-head {
    margin-bottom: 0;
    width: 100%;
  }

  #home #portfolio .home-section-head__link--mobile {
    margin-top: 0;
    width: 100%;
  }
}

/* Home — Nosso catálogo mobile (todos os layouts com produtos) */
@media (max-width: 991.98px) {
  #home #catalogo-destaque .site-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3, 24px);
  }

  #home #catalogo-destaque .home-section-head {
    margin-bottom: 0;
    width: 100%;
  }

  #home #catalogo-destaque .home-slider {
    width: 100%;
    max-width: 328px;
    margin-top: 0;
  }

  #home #catalogo-destaque .home-slider__slide {
    justify-content: center;
  }

  #home #catalogo-destaque .category-card {
    width: 100%;
    max-width: 328px;
    aspect-ratio: 328 / 450;
  }

  #home #catalogo-destaque .home-slider-control {
    margin-top: 0;
  }

  #home #catalogo-destaque .home-section-head__link--mobile {
    margin-top: 0;
    width: 100%;
    max-width: 328px;
  }
}

/* Home — Em Destaque mobile (todos os layouts com portfólio) */
@media (max-width: 991.98px) {
  #home #portfolio-destaque .site-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-3, 24px);
  }

  #home #portfolio-destaque .home-section-head {
    margin-bottom: 0;
    width: 100%;
  }

  #home #portfolio-destaque .home-slider {
    width: 100%;
    max-width: 328px;
    margin-top: 0;
  }

  #home #portfolio-destaque .home-slider__slide {
    justify-content: center;
  }

  #home #portfolio-destaque .portfolio-card {
    width: 100%;
    max-width: 328px;
  }

  #home #portfolio-destaque .home-slider-control {
    margin-top: 0;
  }

  #home #portfolio-destaque .home-section-head__link--mobile {
    margin-top: 0;
    width: 100%;
    max-width: 328px;
  }
}

/* Página do produto */

.produto-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4, 32px);
  align-items: center;
}

@media (min-width: 992px) {
  .produto-hero {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3, 24px);
  }
}

.produto-galeria {
  display: flex;
  gap: var(--space-3, 24px);
  align-items: flex-start;
  flex-direction: column-reverse;
}

@media (min-width: 576px) {
  .produto-galeria {
    flex-direction: row;
  }
}

.produto-galeria__thumbs {
  display: flex;
  flex-direction: row;
  gap: var(--space-3, 24px);
  overflow-x: auto;
  max-width: 100%;
}

@media (min-width: 576px) {
  .produto-galeria__thumbs {
    flex-direction: column;
    overflow-x: visible;
  }
}

.produto-galeria__thumb {
  flex: 0 0 auto;
  width: 86px;
  height: 86px;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: var(--radius-md, 8px);
  background: none;
  cursor: pointer;
  transition: border-color 0.2s ease, opacity 0.2s ease;
  opacity: 0.7;
}

.produto-galeria__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produto-galeria__thumb.is-active,
.produto-galeria__thumb:hover,
.produto-galeria__thumb:focus-visible {
  border-color: var(--color-brand, #2563EB);
  opacity: 1;
}

.produto-galeria__main {
  flex: 1 1 auto;
  min-width: 0;
}

.produto-galeria__main img,
.produto-galeria__placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius-lg, 16px);
}

.produto-galeria__placeholder {
  background:
    linear-gradient(145deg, var(--color-brand-subtle, rgba(37, 99, 235, 0.10)) 0%, color-mix(in srgb, var(--color-accent, #132C42) 8%, transparent) 100%),
    var(--color-surface-alt, #F5F5F5);
}

.produto-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2, 16px);
  align-items: center;
}

.btn-v3-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1, 8px);
  height: 50px;
  padding: var(--space-1, 8px) var(--space-4, 32px);
  border: 0;
  border-radius: var(--radius-md, 8px);
  background: var(--color-success, #16A34A);
  color: #FFFFFF;
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: var(--text-label-size);
  font-weight: var(--text-label-weight);
  line-height: var(--text-label-lh);
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.btn-v3-whatsapp:hover,
.btn-v3-whatsapp:focus-visible {
  background: var(--color-success-hover, #15803D);
  color: #FFFFFF;
}

.produto-mais {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1, 8px);
  color: var(--color-ink, #1A1A1A);
  text-decoration: none;
}

.produto-mais:hover,
.produto-mais:focus-visible {
  color: var(--color-brand, #2563EB);
}

.produto-detalhes {
  display: flex;
  flex-direction: column;
  gap: var(--space-3, 24px);
  padding: var(--space-5, 48px) var(--space-4, 32px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-xl, 24px);
  background: var(--color-surface, #FFFFFF);
  box-shadow: 0 12px 12px rgba(0, 0, 0, 0.03);
}

.produto-detalhes .chip-category {
  cursor: pointer;
}

.produto-painel__texto > *:last-child {
  margin-bottom: 0;
}

.produto-painel__texto p {
  margin-bottom: var(--space-3, 24px);
}

.produto-specs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
}

.produto-specs__item {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-1, 8px) var(--space-3, 24px);
  padding: var(--space-2, 16px) 0;
  border-bottom: 1px solid var(--color-line, #E3E3E3);
}

.produto-specs__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.produto-specs__label {
  flex: 0 0 240px;
  max-width: 100%;
  color: var(--color-ink, #1A1A1A);
}

.produto-specs__value {
  flex: 1 1 240px;
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
  a.product-card:hover,
  a.product-card:focus-visible,
  a.category-card:hover,
  a.category-card:focus-visible {
    transform: none;
  }
}

/* -------------------------------------------------------------------
   Nossos Planos — Figma: CardPlanos (29723:7729), secao-3 (29734:33198)
   ------------------------------------------------------------------- */

.pricing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
}

@media (min-width: 768px) {
  .pricing-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  .pricing-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.pricing-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3, 24px);
  height: 100%;
  padding: var(--space-4, 32px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-xl, 24px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  box-shadow: 0 12px 12px rgba(0, 0, 0, 0.03);
}

.pricing-card__header {
  display: flex;
  flex-direction: column;
  gap: var(--space-1, 8px);
  width: 100%;
}

.pricing-card__name {
  color: var(--color-brand-contrast, #FFFFFF);
}

.pricing-card__summary {
  color: var(--color-brand-contrast, #FFFFFF);
  opacity: 0.6;
}

/* Reserva duas linhas para que preço, divisor e benefícios fiquem
   alinhados entre os cards, independente do tamanho do resumo. */
@media (min-width: 768px) {
  .pricing-card__summary {
    min-height: calc(2 * var(--text-caption-lh) * var(--text-caption-size));
  }
}

.pricing-card__price {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
  justify-content: center;
  width: 100%;
}

.pricing-card__amount {
  display: flex;
  gap: 4px;
  align-items: center;
  font-family: var(--font-display, "Manrope", sans-serif);
  font-size: var(--text-heading-lg-size);
  font-weight: var(--text-heading-lg-weight);
  line-height: var(--text-heading-lg-lh);
  color: var(--color-brand-contrast, #FFFFFF);
  white-space: nowrap;
}

.pricing-card__period {
  color: var(--color-brand-contrast, #FFFFFF);
  opacity: 0.5;
}

.pricing-card__divider {
  width: 100%;
  margin: 0;
  border: 0;
  border-top: 1px solid var(--color-brand-contrast, #FFFFFF);
  opacity: 0.25;
}

.pricing-card__benefits {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: var(--space-2, 16px);
  width: 100%;
}

.pricing-card__benefit {
  color: var(--color-brand-contrast, #FFFFFF);
}

.pricing-card__cta {
  width: 100%;
  padding-top: var(--space-2, 16px);
}

.pricing-card__button {
  padding-left: var(--space-3, 24px);
  padding-right: var(--space-3, 24px);
}

@media (max-width: 575.98px) {
  .pricing-card__button {
    width: 100%;
  }
}

/* Hero encosta no header — evita o padding cheio de section-padding. */
.page-catalogo__hero.section-padding {
  padding-top: var(--space-4, 32px);
}

@media (min-width: 992px) {
  .page-catalogo__hero.section-padding {
    padding-top: var(--space-5, 48px);
  }
}

/* Espaço entre o texto do hero e os filtros — 32px no desktop (Figma 29578:7528);
   o mobile sobe para 48px no bloco abaixo. */
.page-catalogo__filtros {
  margin-top: var(--space-4, 32px);
}

/* A lista encosta nos filtros; o padding grande de section-padding
   valeria só para o rodapé da seção. */
.page-catalogo__lista {
  padding-top: var(--space-3, 24px);
}

@media (min-width: 992px) {
  .page-catalogo__lista {
    padding-top: var(--space-5, 48px);
  }
}

/* -------------------------------------------------------------------
   Catálogo — mobile
   Figma: PRODUTOS / TODOS OS PRODUTOS / MOBILE (29578:8599)
   Um produto por linha e filtros numa faixa rolável horizontal.
   ------------------------------------------------------------------- */

@media (max-width: 767.98px) {
  .product-grid {
    grid-template-columns: 1fr;
    gap: var(--space-3, 24px);
  }

  /* Chips numa única linha que rola lateralmente; à esquerda alinha
     com o título (sem margem negativa), à direita sangra até a borda. */
  .chip-list {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-inline: calc(-1 * var(--site-gutter-x, 16px));
    padding-inline: var(--site-gutter-x, 16px);
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .page-catalogo .chip-list {
    margin-inline-start: 0;
    padding-inline-start: 0;
  }

  .page-portfolio .chip-list {
    margin-inline-start: 0;
    padding-inline-start: 0;
  }

  .chip-list::-webkit-scrollbar {
    display: none;
  }

  .chip-list > .chip-category {
    scroll-snap-align: start;
  }

  /* As abas do produto rolam dentro do card em vez de quebrar linha,
     mantendo-as numa faixa só como no frame mobile. */
  .produto-detalhes .chip-list {
    margin-inline: 0;
    padding-inline: 0;
  }

  .page-catalogo .blog-pagination__list {
    justify-content: flex-start;
  }

  /* O hero mobile respira 48px entre título, filtros e lista. */
  .page-catalogo__filtros {
    margin-top: var(--space-5, 48px);
  }

  .page-catalogo__lista {
    padding-top: var(--space-5, 48px);
  }
}


/* -------------------------------------------------------------------
   Página do produto — mobile
   Figma: PRODUTOS / PÁGINA DO PRODUTO / MOBILE (29622:7061)
   Galeria vira carrossel de fotos grandes, ações em coluna full-width
   e "Produtos Similares" com um card por vez.
   ------------------------------------------------------------------- */

@media (max-width: 767.98px) {
  .produto-hero {
    gap: var(--space-3, 24px);
  }

  /* Breadcrumb mais compacto e sem o nome do produto, que já é o <h1>
     logo abaixo — é assim no frame mobile (termina na categoria). */
  .page-breadcrumb,
  .page-breadcrumb__item {
    gap: var(--space-1, 8px);
  }

  .page-produto .page-breadcrumb__item--current,
  .page-produto .page-breadcrumb__sep--current {
    display: none;
  }

  .produto-galeria {
    flex-direction: column;
    gap: var(--space-3, 24px);
  }

  /* A foto principal sai de cena: no mobile as fotos rolam lado a lado. */
  .produto-galeria__main {
    display: none;
  }

  .produto-galeria__thumbs {
    flex-direction: row;
    gap: var(--space-1, 8px);
    width: 100%;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .produto-galeria__thumbs::-webkit-scrollbar {
    display: none;
  }

  .produto-galeria__thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    flex: 0 0 100%;
    border-width: 0;
    border-radius: 10px;
    opacity: 1;
    scroll-snap-align: center;
  }

  .produto-acoes {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .produto-acoes > .btn-v3-whatsapp,
  .produto-acoes > .btn-v3-outline-ink {
    width: 100%;
  }

  .produto-mais {
    justify-content: center;
    width: 100%;
  }

  .produto-detalhes {
    padding: var(--space-5, 48px) var(--space-4, 32px);
  }

  /* Título centralizado e botão full-width, como no frame mobile. */
  #produtos-similares .home-section-head {
    justify-content: center;
  }

  #produtos-similares .home-section-head .heading-md {
    flex: 0 1 auto;
    text-align: center;
  }
}

#produtos-similares .home-slider__slide {
  display: flex;
  align-items: stretch;
}

#produtos-similares .product-card {
  width: 100%;
}

/* -------------------------------------------------------------------
   Sobreposições (modais) seguindo as cores do painel
   Bootstrap fixa branco em .modal-content e preto no ícone do .btn-close,
   então eles não acompanhavam paletas escuras.
   ------------------------------------------------------------------- */

#layoutModelModal .modal-content,
#privacyPolicyModal .modal-content {
  background: var(--color-surface, #FFFFFF);
  color: var(--color-ink, #1A1A1A);
}

#layoutModelModal .modal-header,
#layoutModelModal .modal-footer,
#privacyPolicyModal .modal-header,
#privacyPolicyModal .modal-footer {
  border-color: var(--color-line, #E3E3E3);
}

#layoutModelModal .modal-title,
#privacyPolicyModal .modal-title {
  color: var(--color-ink, #1A1A1A);
}

/* O X vira máscara pintada com currentColor, em vez do SVG preto do
   Bootstrap — assim acompanha o texto em qualquer paleta. */
#layoutModelModal .btn-close,
#privacyPolicyModal .btn-close {
  background: currentColor;
  color: var(--color-ink, #1A1A1A);
  opacity: 0.6;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E") center / 1em auto no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3E%3C/svg%3E") center / 1em auto no-repeat;
}

#layoutModelModal .btn-close:hover,
#privacyPolicyModal .btn-close:hover {
  opacity: 1;
}

/* -------------------------------------------------------------------
   Documentos
   Figma: PRODUTOS / DOCUMENTOS (29759:19705) e
   PRODUTOS / DOCUMENTOS / INTERNA CATEGORIA (29759:20581)
   ------------------------------------------------------------------- */

.doc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
}

@media (min-width: 768px) {
  .doc-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  .doc-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.doc-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2, 16px);
  height: 100%;
  padding: var(--space-4, 32px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-surface, #FFFFFF);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

a.doc-card:hover,
a.doc-card:focus-visible {
  border-color: var(--color-brand, #2563EB);
  box-shadow: 0 12px 24px var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  transform: translateY(-2px);
}

.doc-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  flex: none;
  border-radius: var(--radius-lg, 16px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  font-size: 1.5rem;
  line-height: 1;
}

.doc-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
  width: 100%;
}

.doc-card__title {
  color: var(--color-ink, #1A1A1A);
}

.doc-card__count {
  color: var(--color-ink-muted, #757575);
}

.doc-card__action {
  display: inline-flex;
  align-items: center;
  gap: var(--space-0, 4px);
  color: var(--color-brand, #2563EB);
}

.doc-quickstats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-1, 8px) var(--space-3, 24px);
  padding: var(--space-2, 16px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-md, 8px);
  background: var(--color-surface, #FFFFFF);
  color: var(--color-ink-muted, #757575);
}

.doc-quickstats__strong {
  color: var(--color-ink, #1A1A1A);
}

/* Interna da categoria */

.doc-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3, 24px);
  align-items: start;
}

@media (min-width: 992px) {
  .doc-layout {
    grid-template-columns: 309fr 966fr;
  }

  .doc-sidebar {
    position: sticky;
    top: calc(var(--site-header-height, 72px) + var(--space-3, 24px));
  }
}

.doc-sidebar {
  padding: var(--space-3, 24px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-surface, #FFFFFF);
}

.doc-sidebar__menu {
  display: flex;
  flex-direction: column;
  gap: var(--space-0, 4px);
}

.doc-sidebar__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px var(--space-2, 16px);
  border-radius: var(--radius-md, 8px);
  color: var(--color-ink, #1A1A1A);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.doc-sidebar__item i {
  color: var(--color-brand, #2563EB);
  flex: none;
}

.doc-sidebar__item:hover,
.doc-sidebar__item:focus-visible {
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
}

.doc-sidebar__item.is-active {
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
}

.doc-sidebar__item.is-active i {
  color: var(--color-brand-contrast, #FFFFFF);
}

.doc-item-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 576px) {
  .doc-item-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1200px) {
  .doc-item-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.doc-item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  padding: var(--space-4, 32px);
  border: 1px solid var(--color-line, #E3E3E3);
  border-radius: var(--radius-md, 8px);
  background: var(--color-surface, #FFFFFF);
}

.doc-item__title {
  color: var(--color-ink, #1A1A1A);
}

.doc-item__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2, 16px);
  margin-top: auto;
}

.doc-item__meta-col {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.doc-item__ref {
  color: var(--color-ink, #1A1A1A);
}

.doc-item__size {
  color: var(--color-ink-muted, #757575);
}

.doc-item__badge {
  flex: none;
  padding: 4px 8px;
  border: 1px solid currentColor;
  border-radius: var(--radius-md, 8px);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-ink-muted, #757575);
}

.doc-item__badge--pdf {
  background: rgba(239, 68, 68, 0.1);
  color: #EF4444;
}

.doc-item__badge--xlsx {
  background: rgba(22, 163, 74, 0.1);
  color: #16A34A;
}

.doc-item__badge--docx {
  background: var(--color-brand-subtle, rgba(37, 99, 235, 0.10));
  color: var(--color-brand, #2563EB);
}

.doc-item__download {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border-radius: var(--radius-md, 8px);
  background: var(--color-brand, #2563EB);
  color: var(--color-brand-contrast, #FFFFFF);
  font-family: var(--font-text, "Manrope", sans-serif);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.doc-item__download:hover,
.doc-item__download:focus-visible {
  background: var(--color-brand-hover, #1D4ED8);
  color: var(--color-brand-contrast, #FFFFFF);
}

@media (prefers-reduced-motion: reduce) {
  a.doc-card:hover,
  a.doc-card:focus-visible {
    transform: none;
  }
}
/* ===================================================================
   ANJOS COLCHÕES E SOFÁS — camada de marca
   Portada do protótipo anjos-colchoes-sofas/. Sobrescreve o design
   system genérico acima: fonte Humanist 521 BT, peso leve (300) nos
   títulos, botões pill e os componentes próprios do mini site
   (project-card, store-card, catálogo, página do produto).

   Os tokens de cor (--color-*) NÃO são declarados aqui de propósito:
   vêm do painel (crm_companies_sites.color_customizations) pelo <style>
   inline do header.php, que aplica :root:root para vencer a cascata
   deste arquivo. Nunca fixe cor de marca nesta seção.
   =================================================================== */

/* -------------------------------------------------------------------
   Fonte da marca — Humanist 521 BT (theme/fonts/humanist521)
   ------------------------------------------------------------------- */
@font-face{font-family:'Humanist521BT';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/humanist521/humanist521-light.ttf') format('truetype')}
@font-face{font-family:'Humanist521BT';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/humanist521/humanist521-regular.ttf') format('truetype')}
@font-face{font-family:'Humanist521BT';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/humanist521/humanist521-bold.ttf') format('truetype')}
html:root{--font-display:"Humanist521BT",system-ui,sans-serif;--font-text:"Humanist521BT",system-ui,sans-serif;--site-header-height:72px;--space-section:clamp(96px,8vw,128px)}
body{font-weight:300}
.page-blog > .section-padding{padding-top:calc(var(--site-header-height, 72px) + var(--space-4, 32px))}
.page-quem-somos{background:var(--color-surface-alt,#F5F5F5)}
.page-quem-somos .quem-somos-hero .product-hero-box{height:min(52vh,520px)!important;min-height:320px!important;border-radius:0}
.page-quem-somos .quem-somos-historia{padding-top:32px}
.page-contato .contato-hero .product-hero-box{height:min(52vh,520px)!important;min-height:320px!important;border-radius:0}
/* Desktop: o card do formulário sobrepõe a base do banner (mesma ideia do
   filtro do catálogo). O título continua embaixo à esquerda, como nas outras
   páginas — o card ocupa só a metade direita, então não encosta nele. A
   coluna esquerda continua abaixo da imagem. No mobile as colunas empilham,
   sem sobreposição. */
@media (min-width:992px){
  .page-contato .contato-hero .product-hero-box{height:52vh!important;min-height:440px!important;max-height:600px!important}
  .page-contato .contato-form-col{position:relative;z-index:2;margin-top:-108px}
}
.page-contato .contato-hero + .section-padding{padding-top:32px}
.page-quem-somos .quem-somos-historia__text > :last-child{margin-bottom:0}
.page-quem-somos .quem-somos-pilares{padding-top:32px}
/* Missão / visão / valores: ícone, título e texto centralizados no card. */
.page-quem-somos .quem-somos-pilares .home-card{align-items:center;text-align:center}
.page-lojas{background:var(--color-surface-alt,#F5F5F5)}
.page-lojas .lojas-hero .product-hero-box{height:min(52vh,520px)!important;min-height:320px!important;border-radius:0}
.page-lojas .lojas-lista{padding-top:32px}
/* Trajetória sem card: título, texto e vídeo direto sobre o fundo da página. */
.page-quem-somos .quem-somos-trajetoria__box{padding:0}
.page-quem-somos .quem-somos-trajetoria__video-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:#000}
.page-quem-somos .quem-somos-trajetoria__video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Superfícies em dark mode — para marcas naturalmente escuras. Ativar com
   <html data-theme="dark">. --color-brand/--color-brand-contrast/--color-accent
   continuam vindo do painel; aqui só invertem os neutros. */
html:root[data-theme="dark"]{--color-ink:#F2F2F2;--color-ink-muted:#ABABAB;--color-ink-subtle:rgba(242,242,242,.10);--color-line:#333333;--color-surface:#121212;--color-surface-alt:#1C1C1C}

/* -------------------------------------------------------------------
   Base, header, navegação e componentes da home
   Espelha o critical CSS inline do header.php: as mesmas regras precisam
   valer antes e depois deste arquivo chegar, senão o above-the-fold pula.
   ------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.site-header{--header-y:0px;position:fixed;top:0;left:50%;right:auto;width:100%;transform:translate(-50%,var(--header-y));z-index:1030;background:transparent!important;border-bottom:1px solid transparent!important;isolation:isolate;transition:opacity .2s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .24s cubic-bezier(.16,1,.3,1),width .24s cubic-bezier(.16,1,.3,1),border-radius .24s cubic-bezier(.16,1,.3,1)}
/* Camada do gradiente preto (legibilidade do menu sobre o hero). Fica
   sempre presente no DOM (content aqui, incondicional) só com opacity
   controlado nos dois estados abaixo — assim dá pra fazer fade de verdade
   em vez de aparecer/sumir de golpe (content:"" só existindo num dos lados
   não anima). */
.site-header::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.34) 48%,rgba(0,0,0,.12) 82%,rgba(0,0,0,0) 100%);opacity:0}
/* Flutuante = "pílula" destacada do topo/laterais, com sombra — não mais a
   barra colada nas bordas. border-radius não precisa de overflow:hidden
   aqui: o dropdown do menu segue sendo filho posicionado absoluto e tem que
   continuar podendo "escapar" do header pra abrir por baixo. */
/* "Compacta, dentro do grid do site": 1440px (--site-frame-max) é só o
   TETO — a grade inteira — não o tamanho da pílula. Pra parecer flutuante
   de verdade (não uma barra quase do tamanho da tela com uma margem fina),
   ela usa um teto bem mais estreito que o grid, deixando bastante fundo
   visível nas laterais em telas normais de desktop. Em telas estreitas
   (abaixo de ~1050px) o min() já cede pro "100% - margem" antes de chegar
   nesse teto, então continua responsiva. */
.site-header.is-floating{background:var(--color-surface)!important;border-bottom-color:transparent!important;--header-y:12px;width:min(calc(100% - 24px),1440px);border-radius:var(--radius-full,999px);box-shadow:0 12px 32px rgba(26,26,26,.14);transition:opacity .2s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .28s cubic-bezier(.16,1,.3,1),width .28s cubic-bezier(.16,1,.3,1),border-radius .28s cubic-bezier(.16,1,.3,1)}
@media (min-width:992px){.site-header.is-floating{--header-y:16px;width:min(calc(100% - 64px),980px)}}
/* Coreografia única (sem esperas): ao entrar no flutuante a geometria
   (posição/largura/raio, .28s out-expo) e a troca de cor (fundo, sombra,
   texto, logo, .14s) começam juntas — nada fica parado esperando a etapa
   anterior, e o hover dos itens do menu responde na hora. O gradiente é o
   que some primeiro (.12s). */
.site-header.is-floating::before{opacity:0;transition:opacity .12s ease}
/* Voltando ao topo: o gradiente só reaparece depois que a barra já
   recuperou o tamanho original (.24s) — senão nasce cortado no formato
   estreito da pílula. */
.site-header:not(.is-floating)::before{opacity:1;transition:opacity .12s ease .24s}
/* Itens do menu (texto, chevron, botão hambúrguer) trocam de cor junto com
   o fundo (.14s), sem transition-delay: um delay aqui também atrasava o
   hover dos links (o mesmo transition vale pros dois). */
.site-header .nav-link,.site-header .site-nav-dropdown__chevron{transition-duration:.14s}
.site-header-menu-btn{transition:background-color .14s ease,border-color .14s ease,color .14s ease}
.site-header>.site-container,.site-header>.container-xxl{position:relative;z-index:1}
.site-header:not(.is-floating) .nav-link,.site-header:not(.is-floating) .site-nav-dropdown__chevron{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.site-header:not(.is-floating) .nav-link.active{background:rgba(255,255,255,.18);color:#fff}
.site-header:not(.is-floating) .nav-link:hover,.site-header:not(.is-floating) .nav-link:focus-visible{background:#fff;color:var(--color-ink);text-shadow:none}
.site-header:not(.is-floating) .nav-link:hover .site-nav-dropdown__chevron,.site-header:not(.is-floating) .nav-link:focus-visible .site-nav-dropdown__chevron{color:var(--color-ink)}
.site-header:not(.is-floating) .site-header-menu-btn{border-color:rgba(255,255,255,.45);background:rgba(0,0,0,.22);color:#fff}
.site-header:not(.is-floating) .site-header-menu-btn img{filter:brightness(0) invert(1)}
.site-header-spacer{height:0!important}
.site-header-mobile{display:flex;align-items:center;justify-content:space-between;gap:12px;height:72px!important;min-height:72px!important;max-height:72px!important;padding:8px 0}

.site-nav-offcanvas{--site-nav-offcanvas-gap:32px;width:min(calc(100vw - 32px),328px);max-width:calc(100vw - 32px);border:0;border-right:1px solid rgba(255,255,255,.12);box-shadow:8px 0 32px rgba(0,0,0,.18);background:var(--color-accent)}
.site-nav-offcanvas-body{display:flex;flex-direction:column;gap:24px;min-height:100dvh;padding:24px 24px 32px}
.site-nav-offcanvas-top{display:flex;flex-direction:column;gap:16px;flex:none}
.site-nav-offcanvas-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:65px}
.site-nav-offcanvas-logo{display:flex;align-items:center;justify-content:center;min-width:0;flex:1 1 auto;max-width:210px;min-height:70px;padding:21px 11px 20px}
.site-nav-offcanvas-logo img{display:block;width:100%;max-width:198px;height:auto;max-height:29px;object-fit:contain}
.site-nav-offcanvas-close{width:40px;height:40px;border:0;border-radius:999px;background:var(--color-brand-contrast-subtle);color:var(--color-brand-contrast);display:inline-flex;align-items:center;justify-content:center;flex:none}
.site-nav-offcanvas-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:40px;padding:8px 24px;border-radius:999px;background:var(--color-brand);color:#fff;font-weight:400;text-decoration:none}
.site-nav-offcanvas-nav{flex:1 1 auto;min-height:0;overflow-y:auto}
.site-nav-offcanvas-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.site-nav-offcanvas-item{display:flex;flex-direction:column;gap:16px}
.site-nav-offcanvas-item--dropdown:not(:has(.collapse.show)){gap:0}
.site-nav-offcanvas-link,.site-nav-offcanvas-toggle{display:inline-flex;align-items:center;justify-content:flex-start;gap:4px;width:fit-content;max-width:100%;min-height:40px;padding:8px 16px;border:0;background:transparent;color:var(--color-brand-contrast);text-decoration:none;text-align:left;font-family:var(--font-text);font-size:1rem;font-weight:400;line-height:1.5}
.site-nav-offcanvas-toggle__chevron{font-size:1rem;color:var(--color-brand-contrast);transition:transform .2s ease;flex:none}
.site-nav-offcanvas-toggle:not(.collapsed) .site-nav-offcanvas-toggle__chevron{transform:rotate(180deg)}
.site-nav-offcanvas-panel__inner{display:flex;flex-direction:column;gap:8px;padding:0 0 0 16px}
.site-nav-offcanvas-panel__link{display:block;width:fit-content;max-width:100%;padding:8px 16px;border-radius:14px;color:rgba(255,255,255,.88);font-family:var(--font-text);font-size:1rem;text-decoration:none}
.site-header-desktop{display:none}
.site-header-logo-img{display:block;max-width:min(100%,220px);max-height:32px;width:auto;height:auto;transition:opacity .14s ease}
/* Duas imagens empilhadas (não um filtro): a coroa dourada tem que
   continuar dourada nas duas versões, só as letras (navy) trocam pra
   branco sobre o hero — um filter:brightness(0)invert(1) pintaria a coroa
   de branco também, então cada estado usa o arquivo com a cor certa
   (logo.svg = navy, logo-white.svg = branco), cruzando em opacity. A
   --light fica position:absolute por cima da --default (que define o
   tamanho da caixa via .site-header-logo{position:relative}). Mesmo
   esquema de troca sincronizada dos itens do menu: cruza em .14s junto
   com o fundo, sem delay. */
.site-header-logo-img--light{position:absolute;inset:0;opacity:0;pointer-events:none}
.site-header-logo-img--default{opacity:1}
.site-header:not(.is-floating) .site-header-logo-img--default{opacity:0}
.site-header:not(.is-floating) .site-header-logo-img--light{opacity:1}
/* Carregamento / âncora / voltar do histórico: o JS coloca .is-booting até
   o estado de scroll ser lido, pra o header já nascer no estado certo em
   vez de "viajar" de um estado pro outro no primeiro paint. */
.site-header.is-booting,.site-header.is-booting *,.site-header.is-booting::before{transition:none!important}
/* prefers-reduced-motion: mantém só a troca de preenchimento (.14s), sem a
   viagem de posição/largura/raio. Fica depois de todas as regras do header
   pra vencer por ordem (mesma especificidade). */
@media (prefers-reduced-motion:reduce){
.site-header,.site-header.is-floating{transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}
.site-header::before,.site-header.is-floating::before,.site-header:not(.is-floating)::before{transition:opacity .14s ease}
}
.site-header-mobile-actions{display:flex;align-items:center;gap:12px}
.site-header-menu-btn{width:40px;height:40px;border:1px solid var(--color-line);background:var(--color-surface);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0}
.site-header .site-header-logo-img{max-height:56px}
.site-footer .site-footer-logo-img:not(.site-logo--light-bg){max-height:64px}
.site-nav-offcanvas .site-nav-offcanvas-logo img{max-height:56px}
.project-card{position:relative;isolation:isolate;border-radius:32px;overflow:hidden;aspect-ratio:3/4.6;display:flex;align-items:flex-end;height:100%;cursor:pointer;transition:transform .35s ease,box-shadow .35s ease}
.project-card:hover,.project-card:focus-within{transform:translateY(-6px)!important;box-shadow:0 20px 32px -12px rgba(26,26,26,.28)}
.project-card__media{position:absolute;inset:0;z-index:0;transition:transform .5s ease}
.project-card:hover .project-card__media,.project-card:focus-within .project-card__media{transform:scale(1.08)}
.project-card__overlay{position:absolute;inset:0;z-index:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.4) 45%,rgba(0,0,0,0) 75%);pointer-events:none;transition:background .35s ease}
.project-card:hover .project-card__overlay,.project-card:focus-within .project-card__overlay{background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.48) 50%,rgba(0,0,0,0) 80%)}
.project-card__body{position:relative;z-index:1;padding:24px;width:100%;display:flex;flex-direction:column;gap:2px}
.project-card__title{color:#fff;font-family:var(--font-display);font-size:1.25rem;line-height:1.2;font-weight:300;letter-spacing:-.015em;margin:0}
.project-card__category{color:rgba(255,255,255,.8);font-size:1rem;margin:0}
/* "Conheça nossa loja" — 5 categorias não cabem bem num carrossel de N-por-
   vez, então em vez do slider com setas/bullets isso é uma rolagem
   horizontal nativa (overflow-x + scroll-snap). Sangra até a borda da tela
   (mesmo truque de width:100vw do .home-promo-section) — durante o scroll
   os cards do meio podem "vazar" visualmente pra fora da coluna do grid
   (é o próprio efeito de rolagem), mas as DUAS pontas de descanso (primeiro
   e último card) têm que encaixar exatamente na borda do grid, senão fica
   com uma sobra de respiro estranha no fim. Por isso padding-left E
   padding-right usam a mesma conta de centralização do .site-container
   (max() entre o gutter puro e a metade do espaço sobrando + gutter) — não
   só o esquerdo. O scrollbar nativo fica escondido porque a navegação real
   é por clique-e-arrasta (JS) ou pelas setas, não por uma barra visível. */
/* O bleed (width:100vw) mora no WRAP, não no scroller — as setas são
   position:absolute e precisam medir a partir da borda real da viewport,
   não da coluna estreita do .site-container por cima. */
.category-scroll-wrap{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
/* O blog usa o mesmo scroller, mas numa faixa mais estreita (85vw). Escopado
   em #blog de proposito: a classe e compartilhada com "Conheca nossa loja" e
   com os depoimentos, que continuam sangrando ate a borda. */
#blog .category-scroll-wrap{width:85vw}
.category-scroll{display:flex;gap:20px;padding:4px 16px 12px;padding-left:max(16px,calc((100vw - 1440px) / 2 + 16px));padding-right:max(16px,calc((100vw - 1440px) / 2 + 16px));overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:max(16px,calc((100vw - 1440px) / 2 + 16px));-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;user-select:none}
.category-scroll.is-dragging{cursor:grabbing;scroll-snap-type:none}
.category-scroll::-webkit-scrollbar{display:none}
/* aspect-ratio próprio (mais baixo que o 3/4.6 padrão do .project-card):
   com a largura bem maior desses cards, manter a proporção original ficava
   alto demais e não cabia direito na tela. */
.project-card--lg{flex:0 0 auto;scroll-snap-align:start;width:min(78vw,300px);aspect-ratio:4/5}
/* Posts do blog na home usam o mesmo scroller horizontal das categorias, mas
   com card bem mais largo (a imagem 870x490 pede proporcao horizontal). */
#blog .home-post--lg{flex:0 0 auto;scroll-snap-align:start;width:min(86vw,560px)}
/* Depoimentos no mesmo scroller: card largo, na proporcao do preview. Largura
   fixa de proposito - no mock ela vinha do tamanho da frase, e com os textos
   reais (paragrafos) isso geraria cards gigantes. */
#depoimentos .home-card--testimonial.home-card--lg{flex:0 0 auto;scroll-snap-align:start;width:min(86vw,520px)}
@media (min-width:768px){.category-scroll{padding-left:max(32px,calc((100vw - 1440px) / 2 + 32px));padding-right:max(32px,calc((100vw - 1440px) / 2 + 32px));scroll-padding-left:max(32px,calc((100vw - 1440px) / 2 + 32px))}.project-card--lg{width:360px}#blog .home-post--lg{width:620px}#depoimentos .home-card--testimonial.home-card--lg{width:600px}}
@media (min-width:1200px){.category-scroll{padding-left:max(64px,calc((100vw - 1440px) / 2 + 64px));padding-right:max(64px,calc((100vw - 1440px) / 2 + 64px));scroll-padding-left:max(64px,calc((100vw - 1440px) / 2 + 64px))}.project-card--lg{width:420px}#blog .home-post--lg{width:880px}#depoimentos .home-card--testimonial.home-card--lg{width:757px}}
/* Título um pouco maior nos cards grandes do category-scroll (o padrão de
   1.25rem do .project-card__title é pensado pros cards pequenos usados em
   outras páginas, tipo "Continue explorando" do produto). */
.project-card--lg .project-card__title{font-size:1.5rem}
/* Setas de navegação do category-scroll — só existem pra quem tem mouse de
   verdade (hover:hover e pointer:fine); em touch o gesto de arrastar já
   resolve, e as setas só atrapalhariam. Sem elas, quem usa mouse sem
   trackpad não tinha como avançar pros próximos cards (não tem scrollbar
   visível de propósito). */
.category-scroll-btn{display:none;position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:var(--color-ink,#1A1A1A);box-shadow:0 6px 18px rgba(26,26,26,.18);align-items:center;justify-content:center;cursor:pointer;z-index:2;transition:background-color .2s ease,opacity .2s ease}
.category-scroll-btn:hover{background:#fff}
.category-scroll-btn[hidden]{display:none!important}
.category-scroll-btn--prev{left:16px}
.category-scroll-btn--next{right:16px}
@media (hover:hover) and (pointer:fine){.category-scroll-btn{display:flex}}
.store-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-line);border-radius:32px;overflow:hidden;height:100%}
.store-card__media{aspect-ratio:16/10;background-size:cover;background-position:center}
.store-card__body{display:flex;flex-direction:column;flex:1;gap:6px;padding:24px}
.store-card__actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:10px}
.store-card__whatsapp{min-height:40px;padding:8px 16px;font-size:.9375rem}
.store-card__social{display:flex;align-items:center;gap:8px}
.store-card__social a{width:36px;height:36px;border-radius:999px;background:var(--color-surface-alt,#F5F5F5);color:var(--color-ink);display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;flex:none;transition:background-color .2s ease,color .2s ease}
.store-card__social a:hover{background:var(--color-brand);color:#fff}
/* Versão "endereço único" do card de loja: uma seção inteira, foto grande
   de um lado (row-reverse deixa a mídia visualmente à direita sem mudar a
   ordem do HTML — a mídia continua vindo primeiro no DOM) e as infos do
   outro, maiores que no card pequeno de 3-por-linha. Empilha em coluna
   (mídia em cima) abaixo de 768px, igual ao card padrão. */
.store-card--featured{border-radius:40px}
@media (min-width:768px){
  .store-card--featured{flex-direction:row-reverse;min-height:480px}
  .store-card--featured .store-card__media{flex:1 1 55%;aspect-ratio:auto}
  .store-card--featured .store-card__body{flex:1 1 45%;justify-content:center;gap:14px;padding:56px}
  .store-card--featured .store-card__actions{margin-top:20px;padding-top:0}
}
@media (min-width:1200px){
  .store-card--featured{min-height:560px}
  .store-card--featured .store-card__body{padding:72px}
}
.site-header-nav .nav{display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0}
.site-header-desktop .site-header-nav .nav{gap:8px}
html[data-theme="dark"] .site-nav-dropdown__menu{background:#FFF}
html[data-theme="dark"] .site-nav-dropdown__heading{color:#757575}
html[data-theme="dark"] .site-nav-dropdown__link{color:#1A1A1A}
.site-nav-dropdown__link.is-active,.site-nav-dropdown__link[aria-current="page"]{color:var(--color-brand);font-weight:700}
.site-header-nav .nav-link{display:inline-flex;align-items:center;padding:.5rem .75rem;font-weight:400;font-size:1rem;line-height:1.5;white-space:nowrap}
.site-container,.container-xxl.site-container{width:min(100%,1440px);max-width:1440px;margin-inline:auto;padding-inline:16px}
.section-padding{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.home-hero + section.section-padding{padding-top:32px}
.home-hero{padding:0!important}
.home-hero-box{contain:none!important;position:relative;isolation:isolate;width:100%;height:100vh!important;min-height:560px!important;max-height:none!important;border-radius:0px;overflow:hidden;display:flex;align-items:flex-end;padding:32px 0!important;background:var(--color-accent)}
.home-hero-box>.site-container{width:100%}
@media (prefers-reduced-motion: reduce){.home-hero-box{transform:none!important;border-radius:0!important}}
@supports (height:100svh){.home-hero-box{height:100svh!important}}
.home-hero-box>picture{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;pointer-events:none}
.home-sobre-image{border-radius:32px}
.home-hero-media{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;pointer-events:none}
#sobre .home-sobre-image{border-radius:32px}
.home-hero-overlay{position:absolute;inset:0;z-index:0;background:transparent;pointer-events:none}
.home-hero .home-hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.32) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 62%,rgba(0,0,0,.4) 100%),linear-gradient(90deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.32) 40%,rgba(0,0,0,.05) 75%,transparent 100%)}
.home-hero .home-hero-overlay--stock{background:linear-gradient(90deg,var(--color-brand) 0%,color-mix(in srgb,var(--color-brand) 75%,transparent) 32%,color-mix(in srgb,var(--color-brand) 30%,transparent) 62%,transparent 88%)}
.home-hero-content{position:relative;z-index:1;max-width:636px}
.home-hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:1.5rem}
.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.home-card{display:flex;flex-direction:column;align-items:flex-start;gap:24px;padding:32px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:32px;min-height:290px;height:100%}
.home-service-icon{width:56px;height:56px;border-radius:999px;background:var(--color-brand);color:var(--color-brand-contrast);display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;line-height:1;flex:none}
.home-service-icon i{display:block;width:1em;height:1em;line-height:1;vertical-align:0}
.home-card--service__body{display:flex;flex-direction:column;gap:8px;width:100%;flex:1}
.home-card--service__desc{min-height:4.5em;margin:0}
.pricing-card{display:flex;flex-direction:column;padding:32px;background:var(--color-brand);border-radius:32px;height:100%}
.pricing-card__name{font-family:var(--font-display);font-size:1.5rem;line-height:1.2;font-weight:300;letter-spacing:-.02em;margin:0;color:var(--color-brand-contrast)}
.pricing-card__desc{font-size:1rem;line-height:1.5;color:var(--color-brand-contrast);margin:8px 0 0}
.pricing-card__price{display:flex;align-items:baseline;gap:4px;margin-top:24px}
.pricing-card__currency{font-family:var(--font-display);font-size:1.5rem;font-weight:300;color:var(--color-brand-contrast)}
.pricing-card__amount{font-family:var(--font-display);font-size:2.5rem;line-height:1;font-weight:300;letter-spacing:-.02em;color:var(--color-brand-contrast)}
.pricing-card__period{font-size:1rem;color:var(--color-brand-contrast)}
.pricing-card__divider{border:0;border-top:1px solid var(--color-brand-contrast-subtle);margin:24px 0}
.pricing-card__benefits{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:16px;flex:1}
.pricing-card__benefits li{font-size:1rem;line-height:1.5;color:var(--color-brand-contrast)}
.pricing-card__cta{width:100%;justify-content:center}
/* Escala tipográfica: agora inteiramente controlada pelos tokens --text-*
   no :root (tamanho fluido via clamp(), peso, line-height e letter-spacing
   por papel) — .heading-lg/.heading-md/.heading-sm/.display/.label/.body já
   herdam tudo da classe base, então não precisam mais de override aqui. */
.text-brand-contrast{color:var(--color-brand-contrast)}
.text-ink-muted{color:var(--color-ink-muted)}
/* .mb-0, .mt-*, .d-none, .d-lg-none também ficam só no crítico inline: aqui um
   .d-none{display:none!important} no fim do arquivo passaria a vencer o
   .d-lg-inline-flex do Bootstrap (empate de especificidade, decide a ordem) e
   esconderia no desktop tudo que usa "d-none d-lg-*", inclusive o header. */
.btn-v3-contrast,.btn-v3-outline-contrast,.btn-v3-brand,.btn-v3-outline-brand{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:999px!important;font-family:var(--font-text);font-size:1rem;font-weight:400;line-height:1.5;text-decoration:none;border:1px solid transparent}
.btn-v3-contrast{background:var(--color-brand-contrast);color:var(--color-ink)}
.btn-v3-outline-contrast{background:transparent;color:var(--color-brand-contrast);border-color:var(--color-brand-contrast)}
.btn-v3-brand{background:var(--color-brand);color:#fff}
.btn-v3-outline-brand{background:transparent;color:var(--color-brand);border-color:var(--color-brand)}
.btn-v3-brand--icon-only{width:40px;min-height:40px;padding:0}
/* Botões fora do sistema btn-v3 (WhatsApp header/footer, ações genéricas) — mesmo padrão de borda totalmente arredondada */
.site-header-whatsapp-btn,.site-footer-whatsapp-btn,.btn.btn-primary{border-radius:999px!important}
.icon-whatsapp{display:block;flex:none}
/* NÃO redeclarar aqui a grade do Bootstrap (.row, .row>*, .col-*, .g-*) nem as
   utilitárias .d-*. No protótipo esse fallback vinha ANTES do bootstrap.min.css
   e servia só pra evitar CLS; neste arquivo ele viria DEPOIS e, com a mesma
   especificidade (.row>* empata com .col-lg-5), venceria por ordem — zerando a
   largura de toda coluna não redeclarada (col-lg-5/-7, col-6, col-lg-3) e
   empilhando "Sobre Nós" e os números. O fallback vive no <style> crítico
   inline do header.php, que é onde precisa existir. */
@media (min-width:768px){
  .site-container,.container-xxl.site-container{padding-inline:32px}
}
@media (min-width:992px){
  .site-header-mobile{display:none!important}
  .site-header-desktop{display:flex!important;align-items:center;justify-content:space-between;height:80px!important;min-height:80px!important;max-height:80px!important}
  .home-hero{padding:0!important}
  .home-hero-box{height:100vh!important;min-height:640px!important;max-height:none!important;align-items:center;padding:56px 0!important}
  .home-hero + section.section-padding{padding-top:48px}
  html:root{--site-header-height:80px}
}
@media (min-width:1200px){
  .site-container,.container-xxl.site-container{padding-inline:64px}
}

/* Respiro entre o conteúdo do header (logo, menu, botão) e a borda dele —
   igual nos dois estados (transparente no topo / pílula flutuante), senão
   o conteúdo "pula" de lugar ao trocar de estado. Maior que o gutter padrão
   do site-container porque a pílula flutuante é bem mais arredondada
   (border-radius:999px) e o gutter padrão deixava logo/botão quase colados
   na curva. Precisa vir DEPOIS do bloco "Layout global" acima — aquele
   redeclara .site-container/.container-xxl.site-container com a mesma
   especificidade, então por ordem no arquivo venceria esta regra aqui. */
.site-header>.site-container,.site-header>.container-xxl{padding-inline:24px}
@media (min-width:768px){.site-header>.site-container,.site-header>.container-xxl{padding-inline:32px}}
@media (min-width:1200px){.site-header>.site-container,.site-header>.container-xxl{padding-inline:48px}}

/* -------------------------------------------------------------------
   Página do produto — hero, galeria e coluna editorial
   ------------------------------------------------------------------- */
.breadcrumb-nav{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.85);font-size:.8125rem;margin-bottom:16px}
.breadcrumb-nav a{color:rgba(255,255,255,.85)}
.breadcrumb-nav a:hover{color:#fff}
.breadcrumb-nav i{font-size:.625rem;color:rgba(255,255,255,.6)}
.breadcrumb-nav span{color:#fff}

.product-hero{padding:0!important}
.product-hero-box{position:relative;isolation:isolate;width:100%;height:56vh;min-height:360px;max-height:520px;overflow:hidden;display:flex;align-items:flex-end;padding:32px}
.product-hero-box>picture{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;pointer-events:none}
.product-hero-media{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;pointer-events:none}
.product-hero-overlay{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.1) 45%,rgba(0,0,0,.55) 100%);pointer-events:none}
.product-hero-content{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding-bottom:clamp(32px,5vh,56px)}
.product-hero-content .breadcrumb-nav,
.product-hero-content .heading-lg{max-width:min(100%,42rem)}
#produto .product-hero-media,
.catalog-hero .product-hero-media{object-position:center 38%}
@media (min-width:992px){
  .product-hero-box{height:78vh;min-height:560px;max-height:820px;padding:56px}
}
@media (min-width:1400px){
  .product-hero-box{height:86vh;min-height:680px;max-height:960px;padding:64px}
}

.product-layout{display:grid;grid-template-columns:1fr;gap:32px}
@media (min-width:992px){
  .product-layout{grid-template-columns:1.3fr 1fr;gap:56px;align-items:start}
}

.product-gallery{display:flex;flex-direction:column;gap:12px}
.product-gallery-main{border-radius:24px;overflow:hidden;background:var(--color-surface-alt,#F5F5F5);aspect-ratio:17/12}
.product-gallery-main img{width:100%;height:100%;object-fit:cover;display:block}
.product-gallery-thumbs{display:flex;gap:12px}
.product-gallery-thumb{width:88px;height:60px;flex-shrink:0;border-radius:10px;overflow:hidden;padding:0;border:2px solid transparent;cursor:pointer;background:none;opacity:.6;transition:opacity .2s ease,border-color .2s ease}
.product-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.product-gallery-thumb.active,.product-gallery-thumb:hover{opacity:1;border-color:var(--color-brand)}

/* Coluna editorial — vitrine, não "buy box": sem preço, sem seletor de
   compra. O tamanho aparece como tag informativa, não como opção a clicar
   pra adicionar ao carrinho. */
.product-eyebrow{display:block;font-size:.75rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--color-brand);margin-bottom:8px}
.product-info h2{font-family:var(--font-display);font-size:2.5rem;line-height:1.02;font-weight:300;letter-spacing:-.03em;color:var(--color-ink);margin:0}
.product-lede{font-size:1.125rem;line-height:1.5;color:var(--color-ink-muted);max-width:44ch}
.product-lede p{margin:0}
.product-about__text p:first-child{margin-top:0}
.product-about__text p:last-child{margin-bottom:0}
.product-feature-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.product-feature-list li{display:flex;align-items:center;gap:12px;font-size:.9375rem;color:var(--color-ink)}
.product-feature-list i{width:36px;height:36px;border-radius:999px;background:var(--color-brand-subtle,rgba(209,173,110,.12));color:var(--color-brand);display:inline-flex;align-items:center;justify-content:center;font-size:.9375rem;flex-shrink:0}
.product-option__label{font-size:.75rem;font-weight:400;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-muted);display:block;margin-bottom:10px}
.product-size-tags{display:flex;flex-wrap:wrap;gap:8px}
.product-size-tag{display:inline-flex;align-items:center;padding:7px 16px;border-radius:999px;border:1px solid var(--color-line);color:var(--color-ink-muted);font-size:.875rem}
.product-actions{display:flex;flex-direction:column;gap:14px}

/* Quebra editorial em foto cheia, tipo "lookbook" */
.product-showcase{position:relative;width:100vw;margin:0 calc(50% - 50vw);height:64vh;min-height:360px;max-height:560px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}
.product-showcase-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.product-showcase-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 35%)}
.product-showcase-caption{position:relative;z-index:1;color:#fff;font-size:.875rem;margin:0 0 28px;letter-spacing:.02em}

/* Medidas — infográfico de referência, não passo de checkout */
.product-dims-head{max-width:56ch}
.product-dims-toggle{display:inline-flex;flex-wrap:wrap;gap:6px;padding:4px;border-radius:999px;background:var(--color-surface-alt,#F5F5F5);width:fit-content;max-width:100%}
.product-size-btn{min-height:38px;padding:7px 20px;border-radius:999px;border:0;background:transparent;color:var(--color-ink-muted);font-family:var(--font-text);font-size:.9375rem;cursor:pointer;transition:background-color .2s ease,color .2s ease}
.product-size-btn:hover{color:var(--color-ink)}
.product-size-btn.active{background:var(--color-ink);color:#fff}
.product-dims-layout{display:grid;grid-template-columns:1fr;gap:28px}
@media (min-width:992px){.product-dims-layout{grid-template-columns:1.4fr 1fr;align-items:start}}
.product-dims-table{width:100%;max-width:560px;border-collapse:collapse}
.product-dims-table th,.product-dims-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--color-line);font-size:1rem}
.product-dims-table th{color:var(--color-ink-muted);font-weight:400;text-transform:uppercase;font-size:.75rem;letter-spacing:.04em}
.product-dims-table td{color:var(--color-ink)}
.product-dims-table tr.active td{color:var(--color-brand);font-weight:600}
.product-dims-note{margin:0 0 12px;font-size:.9375rem;color:var(--color-ink)}
.product-dims-disclaimer{font-size:.8125rem;color:var(--color-ink-muted);max-width:420px}


/* Depoimentos + Nossas Lojas — esquema de cor invertido (navy da marca) pra
   quebrar o branco contínuo da página; os cards internos continuam brancos. */
.bg-surface-alt{background-color:var(--color-accent)!important}
.bg-surface-alt .home-section-head .heading-lg{color:var(--color-brand-contrast)}

/* -------------------------------------------------------------------
   Página do produto — blocos longos (sobre, ficha técnica, medidas)
   ------------------------------------------------------------------- */
.product-about-grid{display:grid;grid-template-columns:1fr;gap:32px}
@media (min-width:992px){.product-about-grid{grid-template-columns:1fr 1fr;gap:64px;align-items:start}}
.product-about__content{min-width:0}
.product-about-grid:not(:has(.product-about__media)){grid-template-columns:1fr}
.product-about__text{display:flex;flex-direction:column;gap:18px;margin-top:24px}
.product-about__text p{font-size:1rem;line-height:1.65;color:var(--color-ink-muted);margin:0}
.product-about__media{margin:0}
.product-about__media img{width:100%;border-radius:24px;display:block;object-fit:cover;aspect-ratio:4/3}
.product-about__media figcaption{font-size:.8125rem;color:var(--color-ink-muted);margin-top:12px;line-height:1.4}

.product-spec-grid{display:grid;grid-template-columns:1fr;gap:28px 24px}
@media (min-width:768px){.product-spec-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1200px){.product-spec-grid{grid-template-columns:repeat(3,1fr)}}
.product-spec-item{display:flex;align-items:center;gap:16px}
.product-spec-item img{width:48px;height:48px;border-radius:12px;flex-shrink:0}
.product-spec-item span{font-size:.9375rem;line-height:1.4;color:var(--color-ink)}

.product-dims-side{display:flex;flex-direction:column}
.product-dims-extra{display:flex;gap:32px;margin-top:20px;padding-top:20px;border-top:1px solid var(--color-line)}
.product-dims-extra > div{display:flex;flex-direction:column;gap:10px}
.product-color-swatch{width:32px;height:32px;border-radius:999px;border:1px solid var(--color-line);display:inline-block}
.product-dims-extra img{display:block}

/* Ficha técnica — fundo dourado full-bleed. Seção já é filha direta de <main>,
   sem wrapper limitando a largura, então basta o background — sem o hack
   width:100vw/calc(), que descentraliza o conteúdo quando há scrollbar. */
.product-spec-section{background:var(--color-brand)}
.product-spec-section .heading-lg{color:var(--color-ink)}
.product-spec-item span{color:var(--color-ink)}

/* Faixa de banners promocionais — logo abaixo do hero da home (campanhas
   tipo "Seleção Anjos"). Usa o mesmo carrossel .home-slider dos outros
   blocos, com 1 banner por vez: a campanha manda uma imagem vertical pro
   mobile e uma horizontal pro desktop (proporções bem diferentes), então
   o <picture>/<source> troca o arquivo, e o aspect-ratio aqui troca junto
   pra não sobrar/faltar espaço reservado.
   Sangria total: mesmo truque width:100vw + margin negativo que o
   .product-showcase já usa pra furar o container de 1440px — só que aqui
   sobra uma bordinha (padding lateral) em vez de ir até a borda, pra ficar
   com a mesma respiração que o hero tem no fim do efeito de scroll. */
.home-promo-section{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);box-sizing:border-box;padding:var(--space-4,32px) 26px}
@media (min-width:992px){.home-promo-section{padding:var(--space-5,48px) 26px}}
/* 56px fixo (não var(--radius-xl)) de propósito: precisa bater exatamente
   com o MAX_RADIUS do anjos-hero.js pra ter a mesma "cara" arredondada do
   hero no fim do efeito de scroll. */
/* Com um unico banner o home-slider.js nao roda (nao ha o que paginar), entao
   o slide fica sem largura e a arte renderiza no tamanho natural do arquivo
   em vez de preencher a faixa. Estas duas regras so valem nesse caso: quando
   ha varios banners o JS escreve width/flex inline, que tem prioridade. */
.home-promo-section .home-slider__slide{flex:0 0 100%;width:100%;min-width:0}
.home-promo-section .home-promo-banner{width:100%}
.home-promo-banner{display:block;border-radius:56px;overflow:hidden;isolation:isolate}
.home-promo-banner img{width:100%;height:auto;display:block;aspect-ratio:1024/1536;object-fit:cover}
@media (min-width:992px){.home-promo-banner img{aspect-ratio:1536/442}}
/* Setas do banner de promoções ficam sobrepostas ao próprio banner, como um
   carrossel clássico — nada de barra separada embaixo. Os bullets (dots)
   somem por completo aqui; a navegação fica só nas setas laterais. A barra
   de controle (que era um "pill" com fundo/borda) vira um overlay
   transparente e ocupa toda a altura do banner só pra afastar as duas
   setas pra cada ponta (justify-content: space-between); pointer-events
   passa direto por ela e só volta a funcionar em cima do botão em si, pra
   não bloquear cliques no banner. */
#promocoes .home-slider{position:relative}
#promocoes .home-slider-control{position:absolute;inset:0;margin:0;padding:0 12px;width:auto;min-height:0;border:0;background:transparent;border-radius:0;justify-content:space-between;align-items:center;gap:0;pointer-events:none;z-index:2}
#promocoes .home-slider-dots{display:none}
#promocoes .home-slider-btn{pointer-events:auto;width:44px;height:44px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--color-ink,#1A1A1A);box-shadow:0 6px 18px rgba(26,26,26,.18);transition:background-color .2s ease,transform .2s ease}
#promocoes .home-slider-btn:hover,#promocoes .home-slider-btn:focus-visible{background:#fff;color:var(--color-ink,#1A1A1A);transform:scale(1.06)}
@media (max-width:991px){#promocoes .home-slider-control{padding:0 8px}#promocoes .home-slider-btn{width:38px;height:38px}}

/* A regra abaixo (crítica pro ritmo vertical) mirava ".home-hero + section",
   ou seja, o próximo irmão do hero — que agora é a faixa de promoções, não
   mais o #portfolio. Replico o respiro reduzido direto no #portfolio pra
   ele não voltar a usar o --space-section cheio (ficaria descolado do
   hero) só porque um banner passou a existir entre os dois. */
#portfolio.section-padding{padding-top:32px}
@media (min-width:992px){#portfolio.section-padding{padding-top:48px}}

/* CTA "Converse com um especialista Anjos" — o card dourado deve furar a
   divisa entre a seção branca (Sobre Nós) e a seção azul (Depoimentos),
   com o azul começando na METADE do card, não depois dele. Puxamos a seção
   de Depoimentos pra cima com margin-bottom negativo (calculado como metade
   da altura real do card + o padding-bottom que o .home-cta-section já tem
   depois dele) e compensamos com padding-top extra, pra o título "O que
   dizem sobre nós" não ficar espremido embaixo do card. position:relative
   no wrapper do CTA garante que ele pinte por cima do início da seção azul
   (empilhamento CSS: elemento posicionado sempre fica acima de irmão
   estático, independente da ordem no DOM). Valores calibrados nas duas
   alturas reais do card: 178px (linha única, ≥992px) e 279px (empilhado,
   ≤991px, breakpoint do tema remoto). */
.home-cta-section{position:relative;z-index:2;margin-bottom:-121px}
@media (max-width:991px){.home-cta-section{margin-bottom:-164px}}
#depoimentos.section-padding{padding-top:calc(var(--space-section) + 121px)}
@media (max-width:991px){#depoimentos.section-padding{padding-top:calc(var(--space-section) + 164px)}}


/* -------------------------------------------------------------------
   Catálogo — hero, painel de filtros e grid de produtos
   ------------------------------------------------------------------- */
.catalog-hero .product-hero-box{height:48vh;min-height:360px;max-height:480px;padding-bottom:104px}
@media (min-width:992px){.catalog-hero .product-hero-box{height:52vh;min-height:440px;max-height:600px;padding-bottom:150px}}
/* Overlay mais forte que o padrão do hero de produto: aqui o título fica
   mais alto na imagem (por causa do padding-bottom extra pro filtro
   sobrepor a base), então precisa de escurecimento parelho, não só nas
   pontas. */
.catalog-hero .product-hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.3) 55%,rgba(0,0,0,.55) 100%)}

/* Filtro sobrepõe a base do banner — mesma ideia do card dourado entre
   "Sobre Nós" e "Depoimentos" na home: margin-top negativo puxa o painel
   pra cima, por cima da imagem, com position:relative garantindo que ele
   pinte acima da seção anterior. */
.catalog-filters-wrap{position:relative;z-index:2;margin-top:-72px;margin-bottom:32px}
@media (min-width:992px){.catalog-filters-wrap{margin-top:-108px;margin-bottom:48px}}

.catalog-filters{display:flex;flex-direction:column;gap:20px;padding:28px;background:var(--color-accent);border-radius:24px;box-shadow:0 24px 48px -24px rgba(0,37,54,.45)}
.catalog-filter-label{display:block;font-size:.75rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.catalog-filter-divider{border:0;border-top:1px solid rgba(255,255,255,.16);margin:0}
.catalog-filter-pills{display:flex;flex-wrap:wrap;gap:8px}
.catalog-filter-pill{display:inline-flex;align-items:center;padding:9px 18px;border-radius:999px;border:1px solid transparent;background:var(--color-surface);color:var(--color-ink-muted);font-family:var(--font-text);font-size:.9375rem;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.catalog-filter-pill:hover{border-color:var(--color-brand)}
.catalog-filter-pill.active{background:var(--color-brand);color:var(--color-ink);border-color:var(--color-brand)}
.catalog-filter-row{display:grid;grid-template-columns:1fr;gap:16px}
.catalog-filter-row--top{align-items:start}
@media (min-width:768px){.catalog-filter-row--top{grid-template-columns:2fr minmax(140px,200px) minmax(140px,200px)}}
@media (min-width:576px){.catalog-filter-row--bottom{grid-template-columns:2fr 1fr;align-items:end}}
.catalog-filter-group{display:flex;flex-direction:column;gap:10px;min-width:0}
.catalog-search{position:relative}
.catalog-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--color-ink-muted);font-size:.875rem;pointer-events:none}
.catalog-search input{width:100%;height:44px;padding:0 16px 0 40px;border-radius:999px;border:1px solid var(--color-line);background:var(--color-surface);font-family:var(--font-text);font-size:.9375rem;color:var(--color-ink)}
.catalog-search input:focus{outline:none;border-color:var(--color-brand)}
.catalog-filter-select{width:100%;height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--color-line);background:var(--color-surface);font-family:var(--font-text);font-size:.9375rem;color:var(--color-ink)}
.catalog-filter-select:disabled{opacity:.5}

.catalog-result-count{font-size:.9375rem;color:var(--color-ink-muted)}

.catalog-grid{display:grid;grid-template-columns:1fr;gap:28px}
@media (min-width:576px){.catalog-grid{grid-template-columns:1fr 1fr}}
@media (min-width:992px){.catalog-grid{grid-template-columns:repeat(3,1fr)}}

.catalog-card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:24px;overflow:hidden;height:100%;transition:transform .3s ease,box-shadow .3s ease}
.catalog-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px -16px rgba(26,26,26,.22)}
.catalog-card__link{display:flex;flex-direction:column;height:100%;cursor:pointer}
.catalog-card__media{aspect-ratio:4/3;background-size:cover;background-position:center;transition:transform .5s ease}
.catalog-card:hover .catalog-card__media{transform:scale(1.04)}
.catalog-card__body{display:flex;flex-direction:column;gap:4px;padding:20px;flex:1}
.catalog-card__eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-brand);font-weight:400}
.catalog-card__name{font-family:var(--font-display);font-size:1.125rem;font-weight:600;margin:0;color:var(--color-ink)}
.catalog-card__cta{margin-top:auto;padding-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:var(--color-ink-muted)}
.catalog-card__cta i{font-size:.75rem}

.catalog-empty{text-align:center;padding:64px 24px}

/* ---- Ajustes finais da marca Anjos ---- */

/* Este bloco existia porque o logo.png antigo era uma placa navy sólida
   (sem transparência): a inversão do tema virava um retângulo branco feio.
   A logo.svg nova é vetor com fundo transparente de verdade, então a
   inversão branco-em-fundo-escuro do tema volta a funcionar normalmente —
   por isso este override foi removido (ver .site-nav-offcanvas-logo img e
   .site-footer-logo-img mais acima/abaixo, que já cuidam do filtro certo). */

/* O pill fixo de WhatsApp flutua sobre o conteúdo; sem esta folga ele cobria a
   linha de copyright no fim da página. */
.site-footer .site-footer-bottom {
  padding-bottom: 72px;
}
