/* ═══════════════════════════════════════════
   DR. ROBSON LARANJA — CUSTOM CSS (FSE)
   Adapta site.css do handoff para variáveis WP.
═══════════════════════════════════════════ */

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

:root {
  --bg:          var(--wp--preset--color--background);
  --bg-2:        var(--wp--preset--color--cinza-bg);
  /* v4.0.0 — --bg-dark agora aponta pro primary oficial (#112534).
     Páginas sensíveis (Estética Íntima) usam --bg-ink-deep (#0A1929). */
  --bg-dark:     var(--wp--preset--color--primary);
  --bg-ink-deep: var(--wp--preset--color--secondary);
  --bg-ink:      var(--wp--preset--color--preto-rich);
  --ink:         var(--wp--preset--color--texto);
  --ink-2:       var(--wp--preset--color--texto-leve);
  --ink-3:       #8A837A;
  --line:        var(--wp--preset--color--cinza-linha);
  --white:       var(--wp--preset--color--branco);
  /* v4.0.0 — paleta unificada: laranja-dourado #c19b73. */
  --orange:      var(--wp--preset--color--accent);
  --orange-h:    var(--wp--preset--color--laranja-claro);
  --orange-pale: var(--wp--preset--color--laranja-pale);
  --gold:        var(--wp--preset--color--ouro); /* alias do accent */
  --brand:       var(--wp--preset--color--accent);
  --brand-pale:  var(--wp--preset--color--laranja-pale);

  /* v4.0.0 — Soft round: botões/chips pill, cards/fotos suaves. */
  --r:   14px;   /* inputs, badges pequenos                 (era 8px)  */
  --r2:  20px;   /* cards padrão                             (era 16px) */
  --r3:  28px;   /* cards grandes, fotos hero                (era 24px) */
  --r-pill: 999px; /* botões e chips (atalho)               (novo)    */

  /* v4.0.0 — escala "densa" de padding vertical por seção. */
  --section-py-sm:  48px;  /* compacta */
  --section-py-md:  64px;  /* padrão   */
  --section-py-lg:  80px;  /* hero/CTA */

  --s1: 0 1px 4px rgba(0,0,0,.06);
  --s2: 0 4px 20px rgba(0,0,0,.08);
  --s3: 0 12px 40px rgba(0,0,0,.12);

  --ease: .25s cubic-bezier(.4,0,.2,1);
}

/* ────────────────────────────────────────────────────
   MODERN TOKENS (v3.0.0) — oklch() fallbacks
   Cobertura perceptualmente uniforme dos tokens semânticos.
   Browsers sem suporte caem nos vars WP (hex preservado em theme.json).
   ──────────────────────────────────────────────────── */
@supports (color: oklch(50% 0.1 90)) {
  :root {
    --navy-oklch:        oklch(20% 0.05 252);
    --azul-oklch:        oklch(33% 0.07 248);
    --azul-medio-oklch:  oklch(42% 0.08 248);
    --ouro-oklch:        oklch(67% 0.08 75);
    --accent-oklch:      oklch(58% 0.16 45);
    --laranja-claro-oklch: oklch(65% 0.17 45);
    --laranja-pale-oklch:  oklch(94% 0.02 60);
    --off-white-oklch:   oklch(96% 0.01 60);
    --cinza-bg-oklch:    oklch(94% 0.01 60);
    --cinza-linha-oklch: oklch(87% 0.01 60);
    --texto-oklch:       oklch(25% 0 0);
    --texto-leve-oklch:  oklch(40% 0.005 50);
  }
}

/* Tipografia moderna — equilibra quebras de linha (v3.0.0) */
h1, h2, h3,
.hero-home__title, .page-hero__title, .hero-sobre__title,
.section-title, .cta-final__title, .faq-section h2,
.nav-main__logo {
  text-wrap: balance;
}
body, p, .body-text,
.hero-home__sub, .page-hero__sub, .hero-sobre__sub,
.faq-a, .bio-text, .area-card__desc {
  text-wrap: pretty;
}

/* WCAG — Skip link (v3.0.0) */
.skip-link.screen-reader-text {
  position: absolute;
  left: -9999px;
  top: 1rem;
  background: var(--wp--preset--color--secondary, #0A1F38);
  color: var(--wp--preset--color--branco, #fff);
  padding: 10px 16px;
  z-index: 9999;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
}
.skip-link.screen-reader-text:focus,
.skip-link.screen-reader-text:focus-visible {
  left: 1rem;
  outline: 2px solid var(--wp--preset--color--ouro, #BE9663);
  outline-offset: 2px;
}

/* WCAG — prefers-reduced-motion global (v3.0.0) */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ════════════════════════════════════════════
   ROLAGEM SUAVE PARA ÂNCORAS (v4.13.0)

   Todo link "#alvo" do site rolava seco. `scroll-behavior: smooth` no elemento
   de rolagem resolve nativamente — sem JS, sem GSAP, e já respeitando o
   `prefers-reduced-motion` declarado lá em cima (que faz
   `scroll-behavior: auto !important` em `*`).

   `scroll-padding-top` no mesmo elemento é o par obrigatório: o header é
   sticky, então sem ele o alvo para EMBAIXO do cabeçalho. Vale pra clique,
   pra `:target` e pro pulo de fragmento ao abrir a URL — por isso fica aqui e
   não como `scroll-margin-top` alvo a alvo.
   ════════════════════════════════════════════ */
:root { --sticky-h: 127px; }
@media (max-width: 900px) {
  /* abaixo de 900 o header gruda com top:-53px — só a barra de nav fica */
  :root { --sticky-h: 71px; }
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--sticky-h) + 24px);
}

/* ── STICKY HEADER (template-part wrapper) ── */
header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(247,244,240,.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}

/* ── LABEL ── */
/*
 * ACESSIBILIDADE — pendente de decisão do cliente (auditoria de 22/07/2026).
 *
 * O dourado da marca como TEXTO sobre fundo claro reprova a WCAG AA:
 *   #c19b73 sobre #F8F6F2 (off-white) = 2,37:1   ← mínimo 4,5:1
 *   #c19b73 sobre #F1EEE8 (cinza-bg)  = 2,21:1
 *
 * A correção medida — trocar SÓ a cor do texto miúdo, mantendo #c19b73 em
 * ícones, bordas e preenchimentos — é a linha comentada abaixo:
 *
 *   color: #7F5D30;   -- 5,54:1 no off-white e 5,17:1 no cinza. Aprova nos dois.
 *
 * Testado e descartado: #8F6A3C (mais próximo do original) aprova no off-white
 * com 4,53:1 mas reprova no cinza com 4,22:1 — e o rótulo aparece nos dois fundos.
 *
 * NÃO aplicado a pedido do cliente. Para aplicar, trocar a linha `color` abaixo.
 */
.section-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.section-label--dark { color: rgba(200,98,26,.8); }
.section-label--gold { color: var(--gold); }

/* ── TITLES ── */
.section-title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-weight: 300;
  line-height: 1.15;
  letter-spacing: -.025em;
  color: var(--wp--preset--color--secondary);
}
.section-title em {
  font-style: italic;
  color: var(--orange);
}
.section-title strong { font-weight: 600; }

/* ── BUTTONS — v1.0.0 utility classes (REMOVED in v2.3.3 — see RESET v2.3.3 at end of file) ── */

/* ── PAGE HERO ── */
.page-hero {
  background: var(--bg-dark);
  padding: 80px 32px 88px;
  position: relative;
  overflow: hidden;
  color: #fff;
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 70% 80% at 90% 50%, rgba(200,98,26,.09), transparent 60%);
}
.page-hero > * {
  position: relative;
  z-index: 1;
  max-width: var(--wp--style--global--wide-size, 1200px);
  margin-inline: auto;
}
.page-hero__breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .75rem;
  color: rgba(255,255,255,.45);
  margin-bottom: 20px;
}
.page-hero__breadcrumb a { color: rgba(255,255,255,.55); }
.page-hero__breadcrumb a:hover { color: #fff; }
.page-hero__breadcrumb span.sep { opacity: .4; }
.page-hero__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300;
  line-height: 1.1;
  color: #fff;
  margin: 0 0 18px;
  letter-spacing: -.02em;
}
.page-hero__title em { font-style: italic; color: var(--orange); }
.page-hero__sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,.7);
  max-width: 600px;
  line-height: 1.72;
  margin: 0 0 28px;
}

/* Estética variant — dark gold */
.page-hero--estetica { background: var(--bg-ink); }
.page-hero--estetica::before {
  background: radial-gradient(ellipse 70% 80% at 90% 50%, rgba(190,150,99,.10), transparent 60%);
}
.page-hero--estetica .page-hero__title em { color: var(--gold); }

/* sub-variant via .is-variant-estetica class for patterns */
.is-variant-estetica .section-label { color: var(--gold); }
.is-variant-estetica .section-title em { color: var(--gold); }

/* ── HERO HOME (split trust) ── */
.hero-home {
  background: var(--bg-dark);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.hero-home::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 60% 70% at 85% 50%, rgba(200,98,26,.10), transparent 60%);
}
.hero-home__inner {
  position: relative;
  padding: 96px 32px 88px;
  max-width: var(--wp--style--global--wide-size, 1200px);
  margin-inline: auto;
}
.hero-home__columns {
  display: grid !important;
  grid-template-columns: 1fr 440px;
  gap: 56px;
  align-items: center;
}
.hero-home__columns > .wp-block-column {
  flex-basis: auto !important;
  padding: 0;
}
@media (max-width: 900px) {
  .hero-home__columns { grid-template-columns: 1fr; gap: 32px; }
}
.hero-home__eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(200,98,26,.85);
  margin-bottom: 22px;
  display: inline-block;
}
.hero-home__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(2.6rem, 6vw, 4.6rem);
  font-weight: 300;
  line-height: 1.05;
  color: #fff;
  margin: 0 0 22px;
  letter-spacing: -.02em;
}
.hero-home__title em { font-style: italic; color: var(--orange); }
.hero-home__sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,.7);
  max-width: 540px;
  line-height: 1.72;
  margin: 0 0 28px;
}
.hero-home__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
.hero-home__trust {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 24px;
}
.hero-home__trust-item { display: flex; flex-direction: column; gap: 4px; }
.hero-home__trust-value { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.6rem; font-weight: 400; color: #fff; }
.hero-home__trust-value span { font-size: 1rem; color: var(--orange); }
.hero-home__trust-label { font-size: .72rem; color: rgba(255,255,255,.5); letter-spacing: .04em; }
.hero-home__photo {
  position: relative;
  height: 540px;
  border-radius: var(--r2);
  overflow: hidden;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
}
.hero-home__photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-home__accent {
  position: absolute;
  left: -2px; top: 32px; bottom: 32px;
  width: 4px;
  background: var(--orange);
  border-radius: 2px;
}
.hero-home__badge {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  transform: none;
  background: rgba(15,35,57,.85);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.hero-home__badge-info { display: flex; flex-direction: column; gap: 2px; }
.hero-home__badge-name { font-size: .85rem; font-weight: 600; color: #fff; }
.hero-home__badge-spec { font-size: .68rem; color: rgba(255,255,255,.55); letter-spacing: .04em; }
.hero-home__badge-status {
  display: flex; align-items: center; gap: 6px;
  margin-left: auto;
  font-size: .7rem; color: #4ade80;
}
.hero-home__badge-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4ade80;
  animation: pulse 1.5s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { transform: scale(1); opacity: 1; }
  50%     { transform: scale(1.3); opacity: .55; }
}
@media (max-width: 900px) {
  .hero-home__inner { padding: 64px 24px; }
  .hero-home__photo { height: 380px; }
  .hero-home__trust { grid-template-columns: repeat(2, 1fr); }
}

/* ── INTRO STRIP ── */
.intro-strip {
  background: var(--orange-pale);
  padding: 18px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.intro-strip__text { font-size: .92rem; color: var(--ink); }
.intro-strip__text strong { color: var(--orange); }
.intro-strip__link {
  font-size: .82rem; font-weight: 700; color: var(--orange);
  text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.intro-strip__link:hover { text-decoration: underline; }

/* ── AREAS BICOLOR ── */
.areas-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: var(--r2);
  overflow: hidden;
  box-shadow: var(--s2);
}
.area-card {
  padding: 56px 48px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
  color: #fff;
}
.area-card--uro { background: var(--bg-dark); }
.area-card--est {
  background: linear-gradient(135deg, var(--bg-ink) 0%, #1a1408 100%);
}
.area-card__tag {
  font-size: .68rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: rgba(255,255,255,.5);
  display: inline-block;
}
.area-card--est .area-card__tag { color: rgba(190,150,99,.85); }
.area-card__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: 2rem; font-weight: 300; line-height: 1.15; color: #fff; margin: 0;
}
.area-card__desc {
  font-size: .95rem; line-height: 1.72; color: rgba(255,255,255,.7);
}
.area-card__pills { display: flex; flex-wrap: wrap; gap: 6px; }
.area-card__pill {
  font-size: .72rem; padding: 5px 10px; border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
}
.area-card--est .area-card__pill {
  border-color: rgba(190,150,99,.25);
  color: rgba(255,255,255,.9);
}
.area-card__cta {
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: auto; padding-top: 12px;
  font-size: .88rem; font-weight: 700; color: #fff;
  text-decoration: none;
}
.area-card__cta-arrow {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--orange);
  display: inline-flex; align-items: center; justify-content: center;
  transition: var(--ease);
}
.area-card--est .area-card__cta-arrow { background: var(--gold); color: #1a1408; }
.area-card__cta:hover .area-card__cta-arrow { transform: translateX(4px); }
.area-card__cta-arrow svg { width: 14px; height: 14px; }
@media (max-width: 800px) {
  .areas-grid { grid-template-columns: 1fr; }
  .area-card { padding: 40px 28px; }
}

/* ── PROCESS STEPS ── */
.process {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 64px;
  align-items: start;
}
.process__head { display: flex; flex-direction: column; gap: 18px; }
.process__badge {
  align-self: flex-start;
  font-size: .72rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--orange);
  background: var(--orange-pale);
  padding: 6px 14px; border-radius: 999px;
}
.process__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(1.9rem, 3.2vw, 2.6rem);
  font-weight: 300; line-height: 1.15;
  color: var(--wp--preset--color--secondary);
  margin: 0;
}
.process__desc { font-size: 1rem; color: var(--ink-2); line-height: 1.72; }
.process__steps { display: flex; flex-direction: column; gap: 0; }
.process__step {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.process__step:last-child { border-bottom: 0; }
.process__num {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--orange); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .88rem; flex-shrink: 0;
}
.process__text { font-size: .95rem; color: var(--ink-2); line-height: 1.72; }
.process__text strong { color: var(--ink); }
@media (max-width: 800px) {
  .process { grid-template-columns: 1fr; gap: 40px; }
}

/* ── SOBRE SNIPPET / BIO ── */
.bio-grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 56px;
  align-items: start;
}
.bio-photo {
  border-radius: var(--r2);
  overflow: hidden;
  background: var(--bg-2);
  aspect-ratio: 4/5;
}
.bio-photo img { width: 100%; height: 100%; object-fit: cover; }
.bio-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.bio-chip {
  font-size: .68rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ink-2);
  padding: 5px 12px; border: 1px solid var(--line); border-radius: 999px;
  background: #fff;
}
.bio-chip--orange { background: var(--orange-pale); color: var(--orange); border-color: transparent; }
.bio-chip--gold { background: rgba(190,150,99,.12); color: var(--gold); border-color: transparent; }
.bio-content > * + * { margin-top: 18px; }
.bio-timeline { display: flex; flex-direction: column; gap: 0; margin-top: 8px; }
.bio-timeline__item {
  display: grid; grid-template-columns: 132px 1fr; gap: 18px;
  padding: 18px 0; border-bottom: 1px solid var(--line);
  align-items: start;
}
.bio-timeline__item:last-child { border-bottom: 0; }
.bio-timeline__year {
  font-size: .78rem; font-weight: 700; color: var(--orange);
  letter-spacing: .04em;
}
.bio-timeline__year--gold { color: var(--gold); }
.bio-timeline__text { font-size: .92rem; color: var(--ink-2); line-height: 1.65; }
.bio-timeline__text strong { color: var(--ink); display: block; margin-bottom: 2px; }
.bio-timeline__desc { font-size: .82rem; color: var(--ink-3); margin-top: 2px; }
@media (max-width: 800px) {
  .bio-grid { grid-template-columns: 1fr; gap: 36px; }
}

/* ── SERVICES GRID 3-COL (svc cards) ── */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.svc {
  background: #fff;
  border-radius: var(--r2);
  padding: 32px 28px;
  border: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 14px;
  transition: var(--ease);
  text-decoration: none;
  color: inherit;
}
.svc:hover { transform: translateY(-2px); box-shadow: var(--s2); border-color: var(--orange); }
.svc__icon {
  width: 44px; height: 44px; border-radius: var(--r);
  background: var(--orange-pale); color: var(--orange);
  display: inline-flex; align-items: center; justify-content: center;
}
.svc__icon svg { width: 22px; height: 22px; }
.svc__title { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.25rem; font-weight: 400; color: var(--wp--preset--color--secondary); margin: 0; }
.svc__desc { font-size: .92rem; color: var(--ink-2); line-height: 1.65; }
.svc__link { font-size: .82rem; font-weight: 600; color: var(--orange); margin-top: auto; }
.svc--dark { background: linear-gradient(135deg, #0A1F38, #1a1408); border-color: rgba(190,150,99,.25); color: #fff; }
.svc--dark .svc__icon { background: rgba(190,150,99,.15); color: var(--gold); }
.svc--dark .svc__title { color: #fff; }
.svc--dark .svc__desc { color: rgba(255,255,255,.7); }
.svc--dark .svc__link { color: var(--gold); }
@media (max-width: 900px) { .svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .svc-grid { grid-template-columns: 1fr; } }

/* ── UNIDADES CARDS (v2.3.0 refactor) ── */
.unidades-grid,
.wp-block-columns.unidades-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  max-width: var(--wp--style--global--wide-size, 1200px);
  margin-inline: auto;
}
.unidade-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(15,35,57,.08);
  transition: transform .3s ease, box-shadow .3s ease;
  display: flex;
  flex-direction: column;
  padding: 0 !important;
  flex-basis: auto !important;
}
.unidade-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 60px rgba(15,35,57,.15);
}
.unidade-card iframe[title^="Mapa"],
.unidade-card .unidade-card__map {
  display: block;
  width: 100%;
  height: 160px;
  border: 0;
  border-radius: 0;
  margin: 0;
  background: var(--bg-2, #f3f4f6);
}
.unidade-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.unidade-card__eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ouro, var(--gold, #BE9663));
  margin: 0;
}
.unidade-card__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(1.3rem, 2.4vw, 1.55rem);
  font-weight: 400;
  line-height: 1.2;
  color: var(--wp--preset--color--secondary, var(--ink, #0F2339));
  margin: 0;
  letter-spacing: -.01em;
}
.unidade-card__address {
  font-size: .88rem;
  line-height: 1.55;
  color: var(--wp--preset--color--texto-leve, var(--ink-2, #4a5568));
  margin: 0;
  max-width: 100%;
}
.unidade-card__divider {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ouro, var(--gold, #BE9663));
  margin: 4px 0 2px;
}
.unidade-card__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(190,150,99,.3);
}
.unidade-card__contact {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: .85rem;
  color: var(--wp--preset--color--texto, var(--ink, #1a2331));
}
.unidade-card__contact-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.unidade-card__phone {
  text-decoration: none;
  color: var(--wp--preset--color--secondary, var(--ink, #0F2339));
  font-weight: 600;
  letter-spacing: .01em;
}
.unidade-card__phone:hover { color: var(--orange, #C8621A); }
.unidade-card__cta {
  margin-top: 4px;
}
.unidade-card__cta .wp-block-button__link,
.unidade-card__cta .btn { padding: 10px 20px; font-size: .82rem; }
@media (max-width: 800px) {
  .unidades-grid,
  .wp-block-columns.unidades-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 600px) {
  .unidade-card iframe[title^="Mapa"],
  .unidade-card .unidade-card__map { height: 140px; }
  .unidade-card__body { padding: 20px; gap: 12px; }
}

/* ── FAQ ── */
.faq-list { display: flex; flex-direction: column; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item:first-child { border-top: 1px solid var(--line); }
.faq-q {
  width: 100%;
  min-height: 44px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 20px 0;
  background: none; border: none;
  cursor: pointer; text-align: left;
  font-family: var(--wp--preset--font-family--roboto);
  font-size: .98rem; font-weight: 600; color: var(--ink);
  transition: var(--ease);
}
.faq-q:hover { color: var(--orange); }
.faq-icon {
  width: 28px; height: 28px; border-radius: 50%;
  border: 1.5px solid var(--line);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: var(--ease);
}
.faq-icon::before, .faq-icon::after {
  content: ''; position: absolute; background: var(--ink-2); transition: var(--ease);
}
.faq-icon::before { width: 10px; height: 1.5px; }
.faq-icon::after  { width: 1.5px; height: 10px; }
.faq-icon { position: relative; }
.faq-item.open .faq-icon {
  background: var(--orange); border-color: var(--orange); transform: rotate(45deg);
}
.faq-item.open .faq-icon::before, .faq-item.open .faq-icon::after { background: #fff; }
.faq-a {
  display: none; padding-bottom: 20px;
  font-size: .92rem; color: var(--ink-2); line-height: 1.72;
}
.faq-item.open .faq-a { display: block; }

/* layout 2-col with sticky sidebar */
.faq-bound,
.intro-sticky {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 56px;
  align-items: start;
  /* Era `style="max-width:1200px;margin:0 auto"` no <div> do core/html. Ao virar
     bloco isso se perdeu e a seção passou a ocupar a tela inteira na
     /estetica-intima-masculina/, cuja seção-pai é alignfull sem contentSize.
     Na /urologia-geral/ o pai já limita em 1200, então aqui é inócuo. */
  max-width: 1200px;
  margin-inline: auto;
}
.sticky-side { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 24px; }
.cta-box {
  background: var(--bg-dark); color: #fff;
  border-radius: var(--r2); padding: 28px;
  display: flex; flex-direction: column; gap: 14px;
}
.cta-box--gold { background: var(--bg-ink); border: 1px solid rgba(190,150,99,.25); }
.cta-box__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: 1.4rem; font-weight: 300; line-height: 1.2; color: #fff; margin: 0;
}
.cta-box__title em { font-style: italic; color: var(--orange); }
.cta-box--gold .cta-box__title em { color: var(--gold); }
.cta-box__desc { font-size: .9rem; color: rgba(255,255,255,.7); }
.cta-box__actions { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.nav-box {
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--r2); padding: 22px 24px;
  display: flex; flex-direction: column; gap: 6px;
}
.nav-box__title {
  font-size: .68rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: 8px;
}
.nav-box__link {
  font-size: .88rem; color: var(--ink-2);
  padding: 6px 0; border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.nav-box__link:last-child { border-bottom: 0; }
.nav-box__link:hover { color: var(--orange); }
@media (max-width: 900px) {
  .faq-bound, .intro-sticky { grid-template-columns: 1fr; }
  .sticky-side { position: static; }
}

/* ── STATS INLINE ── */
.stats-inline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 24px 0;
  margin: 28px 0;
}
.stat-item { display: flex; flex-direction: column; gap: 4px; }
.stat-item__value { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.6rem; font-weight: 400; color: var(--wp--preset--color--secondary); }
.stat-item__value span { color: var(--orange); font-size: 1rem; }
.stat-item__label { font-size: .72rem; color: var(--ink-3); letter-spacing: .04em; }
@media (max-width: 800px) { .stats-inline { grid-template-columns: repeat(2,1fr); } }

/* ── TRATAMENTOS ALTERNADOS (zigzag) ── */
.tratamentos { display: flex; flex-direction: column; gap: 96px; }
.tratamento {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  /* `start`, não `center`: com `center` a coluna mais curta era centralizada
     verticalmente, então a foto descia sempre que o texto era longo e o topo
     da imagem deixava de bater com o rótulo e o título. Agora todo card
     alinha igual, independentemente do tamanho do conteúdo. */
  align-items: start;
}
.tratamento--reverse > .tratamento__media { order: 2; }
.tratamento__media {
  position: relative;
  border-radius: var(--r2);
  overflow: hidden;
  background: var(--bg-2);
  aspect-ratio: 4/3;
}
/* Aviso "Imagem ilustrativa" (exigência de publicidade médica — as fotos são
   ilustrações, não registros do consultório). Nasceu como rótulo de
   placeholder, em cinza sobre fundo liso; agora fica SOBRE a foto, então virou
   pílula escura translúcida: legível tanto em foto clara quanto escura, sem
   depender de qual imagem o cliente subir. `inset: auto auto 12px 12px` em vez
   de esticar a caixa toda — assim a pílula acompanha o texto. */
.tratamento__media::after {
  content: 'Imagem ilustrativa';
  position: absolute;
  inset: auto auto 12px 12px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(10, 25, 41, .72);
  backdrop-filter: blur(4px);
  color: rgba(255, 255, 255, .92);
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  line-height: 1;
  pointer-events: none;
}
.tratamento__tag {
  position: absolute; top: 14px; left: 14px;
  background: var(--orange); color: #fff;
  font-size: .68rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 5px 10px; border-radius: 6px;
}
.tratamento__content > * + * { margin-top: 16px; }
/* Os dois CTAs num flex: soltos, eram inline-flex alinhados pela linha de base,
   e o ícone do WhatsApp deslocava a base do botão primário — os dois ficavam
   5px fora de alinhamento. Aqui a altura é a mesma e o gap é explícito. */
.trat-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
}
.trat-actions .btn { margin: 0; }
.tratamento__title { font-family: var(--wp--preset--font-family--montserrat); font-size: 2rem; font-weight: 300; line-height: 1.15; margin: 0; color: var(--wp--preset--color--secondary); }
.tratamento__alert {
  background: var(--orange-pale);
  border-left: 3px solid var(--orange);
  padding: 14px 18px; border-radius: 4px;
  font-size: .88rem; color: var(--ink-2); line-height: 1.65;
}
.tratamento__alert strong { color: var(--orange); }
.tratamentos--gold .tratamento__title { color: #fff; }
.tratamentos--gold { color: rgba(255,255,255,.85); }
.tratamentos--gold .tratamento__tag { background: var(--gold); color: #1a1408; }
.tratamento__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tratamento__placeholder {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px;
  color: rgba(27,58,92,.55);
}
.tratamentos--gold .tratamento__placeholder { color: rgba(190,150,99,.55); }
.tratamento__placeholder-note {
  font-size: .65rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-3); opacity: .6;
}
.tratamentos--gold .tratamento__placeholder-note { color: rgba(255,255,255,.4); }
.tratamento__pill {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: .7rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--orange);
}
.tratamento__pill--gold { color: var(--gold); }
.tratamento__desc { font-size: .92rem; color: var(--ink-2); line-height: 1.8; }
.tratamentos--gold .tratamento__desc { color: rgba(255,255,255,.75); }
.trat-bullets {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 9px;
}
.trat-bullets li {
  position: relative;
  padding-left: 18px;
  font-size: .88rem; color: var(--ink-2); line-height: 1.7;
}
.trat-bullets li::before {
  content: ''; position: absolute; left: 2px; top: 10px;
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--orange);
}
.tratamentos--gold .trat-bullets li { color: rgba(255,255,255,.78); }
.tratamentos--gold .trat-bullets li::before { background: var(--gold); }
.trat-alert {
  background: var(--orange-pale, #F3E8DF);
  border: 1px solid #e8d5c5;
  border-left: 3px solid var(--orange);
  border-radius: var(--r);
  padding: 14px 18px;
  font-size: .88rem; color: var(--ink-2); line-height: 1.65;
}
.trat-alert strong { color: var(--orange); }
.tratamentos--gold .trat-alert {
  background: rgba(190,150,99,.08);
  border-color: rgba(190,150,99,.22);
  border-left-color: var(--gold);
  color: rgba(255,255,255,.82);
}
.tratamentos--gold .trat-alert strong { color: var(--gold); }
.trat-disclaimer {
  background: var(--bg-2, #f3f1ec);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: .82rem; color: var(--ink-3, #6c6a63); line-height: 1.6;
}
.trat-disclaimer strong { color: var(--ink-2, #2a2a2a); }
.is-variant-estetica .trat-disclaimer {
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.65);
}
.is-variant-estetica .trat-disclaimer strong { color: var(--gold); }
@media (max-width: 800px) {
  .tratamento { grid-template-columns: 1fr; gap: 32px; }
  .tratamento--reverse > .tratamento__media { order: 0; }
}

/* ── DIFERENCIAIS ── */
.diferenciais {
  display: grid;
  gap: 28px;
}
.diferenciais--3col { grid-template-columns: repeat(3, 1fr); }
.diferenciais--4col { grid-template-columns: repeat(4, 1fr); }
.diferencial-card {
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--r2); padding: 28px;
  display: flex; flex-direction: column; gap: 14px;
}
.diferencial-card__icon {
  width: 44px; height: 44px; border-radius: var(--r);
  background: var(--orange-pale); color: var(--orange);
  display: inline-flex; align-items: center; justify-content: center;
}
.diferencial-card__icon svg { width: 22px; height: 22px; }
.diferencial-card__title { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.2rem; font-weight: 400; margin: 0; color: var(--wp--preset--color--secondary); }
.diferencial-card__desc { font-size: .9rem; color: var(--ink-2); line-height: 1.65; }
.is-variant-estetica .diferencial-card { background: rgba(255,255,255,.04); border-color: rgba(190,150,99,.18); color: #fff; }
.is-variant-estetica .diferencial-card__icon { background: rgba(190,150,99,.15); color: var(--gold); }
.is-variant-estetica .diferencial-card__title { color: #fff; }
.is-variant-estetica .diferencial-card__desc { color: rgba(255,255,255,.7); }
@media (max-width: 900px) { .diferenciais--3col,.diferenciais--4col { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .diferenciais--3col,.diferenciais--4col { grid-template-columns: 1fr; } }

/* ── CTA FINAL SPLIT FORM ── */
.cta-final {
  background: var(--bg-dark);
  position: relative; overflow: hidden;
  padding: 96px 32px;
  color: #fff;
  border-radius: var(--r2);
}
.cta-final::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 70% at 80% 50%, rgba(200,98,26,.18), transparent 60%);
}
.cta-final__inner {
  position: relative;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px;
  align-items: start;
}
.cta-final__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 300; line-height: 1.1; color: #fff;
  margin: 18px 0 18px;
}
.cta-final__title em { font-style: italic; color: var(--orange); }
.cta-final__desc { font-size: 1rem; color: rgba(255,255,255,.7); max-width: 520px; line-height: 1.72; margin-bottom: 28px; }
.channel-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.channel-card {
  display: flex; flex-direction: column; gap: 6px;
  padding: 18px 20px; border-radius: var(--r);
  text-decoration: none;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  color: #fff;
}
.channel-card--whatsapp { background: rgba(37,211,102,.12); border-color: rgba(37,211,102,.25); }
.channel-card--phone { background: rgba(200,98,26,.12); border-color: rgba(200,98,26,.25); }
.channel-card__label { font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.channel-card__value { font-size: 1.05rem; font-weight: 600; }
.channel-card__sub { font-size: .78rem; color: rgba(255,255,255,.55); }
@media (max-width: 900px) {
  .cta-final__inner { grid-template-columns: 1fr; gap: 32px; }
  .channel-cards { grid-template-columns: 1fr; }
  .cta-final { padding: 64px 24px; }
}

/* ── FORM ── */
.form {
  background: #fff; color: var(--ink);
  border-radius: var(--r2); padding: 36px;
  box-shadow: var(--s3); border: 1px solid var(--line);
}
.form__head { margin-bottom: 22px; }
.form__title { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.6rem; font-weight: 400; color: var(--wp--preset--color--secondary); margin: 0 0 6px; }
.form__sub { font-size: .88rem; color: var(--ink-2); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form__group { margin-bottom: 14px; }
.form__label {
  display: block; font-size: .72rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  color: var(--ink-2); margin-bottom: 6px;
}
.form__input, .form__select, .form__textarea {
  width: 100%; padding: 11px 14px;
  border: 1.5px solid var(--line); border-radius: var(--r);
  font-family: var(--wp--preset--font-family--roboto);
  font-size: .92rem; color: var(--ink);
  background: var(--bg); transition: var(--ease); outline: none;
}
.form__input:focus, .form__select:focus, .form__textarea:focus {
  border-color: var(--orange); background: #fff;
  box-shadow: 0 0 0 3px rgba(200,98,26,.1);
}
.form__textarea { resize: vertical; min-height: 96px; }
/* .form__lgpd — base layout reescrita na seção "FORM — CHECKBOX LGPD FIX v2.3.3" no fim do arquivo */
.form__lgpd { margin: 4px 0 18px; }
.form__submit {
  width: 100%; padding: 13px;
  background: var(--orange); color: #fff; border: none; border-radius: var(--r);
  font-family: var(--wp--preset--font-family--roboto);
  font-size: .92rem; font-weight: 700; cursor: pointer; transition: var(--ease);
}
.form__submit:hover { background: var(--orange-h); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(200,98,26,.3); }
@media (max-width: 700px) { .form__row { grid-template-columns: 1fr; } }

/* ── CONTACT INFO ROWS ── */
.contact-info-row {
  display: flex; align-items: center; gap: 12px;
  font-size: .95rem; color: var(--ink-2);
  padding: 8px 0;
}
.contact-info-row svg { flex: 0 0 20px; width: 20px; height: 20px; color: var(--orange); }

/* ── CTA BAR HORIZONTAL ── */
.cta-bar {
  background: var(--bg-dark); color: #fff;
  border-radius: var(--r2); padding: 36px 48px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
  max-width: var(--wp--style--global--wide-size, 1200px);
  margin-inline: auto;
}
.cta-bar__title { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.6rem; font-weight: 300; margin: 0; color: #fff; }
.cta-bar__phone { font-size: 1.05rem; font-weight: 700; color: var(--orange); margin-left: 12px; }
.cta-bar__link { color: rgba(255,255,255,.85); font-size: .92rem; font-weight: 600; }
.cta-bar__link:hover { color: var(--orange); }

/* ── FILOSOFIA QUOTE ── */
.filosofia { text-align: center; padding: 48px 0; }
.filosofia__quote {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 300; font-style: italic;
  color: var(--wp--preset--color--secondary);
  line-height: 1.25;
  max-width: 880px; margin: 18px auto 12px;
}
.filosofia__attribution { font-size: .88rem; color: var(--ink-3); }

/* ── FOOTER ── */
.site-footer {
  background: var(--bg-ink); color: rgba(255,255,255,.55);
  padding: 72px 32px 0;
}
.site-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  max-width: 1200px;
  margin: 0 auto 56px;
}
.site-footer__brand-name { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.4rem; font-weight: 400; color: #fff; margin: 0 0 4px; }
.site-footer__brand-sub  { font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--orange); margin-bottom: 14px; }
.site-footer__brand-desc { font-size: .85rem; line-height: 1.7; }
.site-footer__social { display: flex; gap: 8px; margin-top: 18px; }
.site-footer__social a {
  min-width: 44px; min-height: 44px;
  width: 44px; height: 44px; border-radius: var(--r);
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1);
  display: inline-flex; align-items: center; justify-content: center;
  transition: var(--ease); color: rgba(255,255,255,.55);
}
.site-footer__social a:hover { background: var(--orange); border-color: var(--orange); color: #fff; }
.site-footer__social svg { width: 14px; height: 14px; }
/* .50 em vez de .45: sobre o #050E18 do rodapé, .45 resolvia em #767a80 = 4,50:1,
   que reprova a WCAG por arredondamento. .50 resolve em #82868c = 5,30:1. */
.site-footer__col-title { font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.50); margin-bottom: 14px; }
.site-footer__links { display: flex; flex-direction: column; gap: 8px; }
.site-footer__links a { font-size: .85rem; color: rgba(255,255,255,.7) !important; text-decoration: none; }
.site-footer__links a:hover { color: #fff !important; }
.site-footer__addr { font-size: .82rem; line-height: 1.7; color: rgba(255,255,255,.7); }
.site-footer__addr a { color: rgba(255,255,255,.85) !important; text-decoration: none; }
.site-footer__addr a:hover { color: #fff !important; }
.site-footer__addr strong { display: block; color: rgba(255,255,255,.95); margin-bottom: 4px; }
/* fallback global: qualquer link no footer dark herda cor clara (override do styles.elements.link do theme.json) */
.site-footer a, footer.wp-block-template-part a {
  color: rgba(255,255,255,.7) !important;
}
.site-footer a:hover, footer.wp-block-template-part a:hover {
  color: #fff !important;
}
/* social icons: cor neutra clara, hover preserva (laranja) */
.site-footer__social a {
  color: rgba(255,255,255,.85) !important;
}
.site-footer__social a:hover {
  color: #fff !important;
}
.site-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 22px 0;
  display: flex; justify-content: space-between; align-items: center;
  font-size: .75rem;
  flex-wrap: wrap; gap: 12px;
  max-width: 1200px; margin: 0 auto;
}
.site-footer__legal { display: flex; gap: 18px; }
.site-footer__legal a { color: rgba(255,255,255,.45); text-decoration: none; }
.site-footer__legal a:hover { color: rgba(255,255,255,.85); }
@media (max-width: 1024px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) {
  .site-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .site-footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ── HEADER NAV ── */
.site-header {
  display: flex; align-items: center; flex-direction: column;
}
.topbar {
  width: 100%; background: var(--bg-dark) !important;
  padding: 9px 32px;
  font-size: .75rem; color: rgba(255,255,255,.85) !important;
}
.topbar__inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px;
}
.topbar__group { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; color: rgba(255,255,255,.85); }
.topbar__item,
.topbar a.topbar__item,
.topbar span.topbar__item {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
  color: rgba(255,255,255,.9) !important;
  text-decoration: none;
}
.topbar__item a,
.topbar a {
  color: rgba(255,255,255,.9) !important;
  text-decoration: none;
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 4px 0;
}
.topbar__item:hover,
.topbar__item a:hover,
.topbar a:hover { color: #fff !important; }
.topbar svg { width: 12px; height: 12px; opacity: .85; color: rgba(255,255,255,.9); stroke: currentColor; fill: none; }
.nav-main {
  width: 100%; display: flex; align-items: center;
  justify-content: space-between; gap: 24px;
  max-width: 1200px; margin: 0 auto;
  padding: 14px 32px; height: 64px;
}
.nav-main__logo { display: flex; flex-direction: column; line-height: 1; text-decoration: none; }
.nav-main__logo-name { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.2rem; font-weight: 600; color: var(--ink); letter-spacing: -.02em; }
.nav-main__logo-sub { font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-top: 2px; }
.nav-main__links { display: flex; align-items: center; gap: 4px; }
.nav-main__link {
  font-size: .85rem; font-weight: 500; color: var(--ink-2);
  padding: 7px 12px; border-radius: 6px;
  text-decoration: none; transition: var(--ease);
}
.nav-main__link:hover { color: var(--ink); background: var(--bg-2); }
.nav-main__drop { position: relative; }
.nav-main__drop-menu {
  display: none; position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%); margin-top: 8px;
  background: #fff; border: 1px solid var(--line);
  border-radius: var(--r2); box-shadow: var(--s3);
  min-width: 260px; padding: 6px; z-index: 200;
}
.nav-main__drop:hover .nav-main__drop-menu,
.nav-main__drop:focus-within .nav-main__drop-menu { display: block; }
.nav-main__drop-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: var(--r);
  font-size: .85rem; color: var(--ink-2); text-decoration: none;
}
.nav-main__drop-item:hover { background: var(--bg); color: var(--ink); }
.nav-main__drop-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--orange); flex-shrink: 0; }
.nav-main__drop-dot--gold { background: var(--gold); }
.nav-main__cta { margin-left: 8px; }
.nav-main__toggle {
  display: none; flex-direction: column; gap: 4px;
  background: none; border: none; cursor: pointer; padding: 6px;
  /* Alvo de toque de 44×44 (WCAG 2.5.5 / HIG da Apple). As barras continuam
     22×2 — só a área clicável cresce, o desenho não muda. Antes: 34×26. */
  align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px;
}
.nav-main__toggle span { width: 22px; height: 2px; background: var(--ink); border-radius: 2px; }
@media (max-width: 900px) {
  .nav-main__links { display: none !important; }
  .nav-main__toggle { display: inline-flex; }
  .nav-main__links.open {
    display: flex; flex-direction: column; align-items: flex-start;
    position: absolute; top: 100%; left: 0; right: 0;
    background: #fff; border-bottom: 1px solid var(--line);
    padding: 12px 24px; box-shadow: var(--s2);
    z-index: 90;
  }
}

/* ── COOKIE BAR ── */
.cookie {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 998;
  background: var(--bg-ink);
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 18px 24px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
  transform: translateY(100%); transition: .4s ease;
}
.cookie.show { transform: translateY(0); }
.cookie__text { font-size: .8rem; color: rgba(255,255,255,.6); max-width: 560px; line-height: 1.6; }
.cookie__text a { color: rgba(255,255,255,.85); }
.cookie__btns { display: flex; gap: 8px; }
.cookie-btn { padding: 8px 18px; border-radius: 6px; font-size: .78rem; font-weight: 600; border: none; cursor: pointer; }
.cookie-btn--y { background: var(--orange); color: #0A1929; } /* WCAG: branco no dourado = 2,56:1 */
.cookie-btn--n { background: rgba(255,255,255,.08); color: rgba(255,255,255,.6); }

/* ── WHATSAPP FLOAT ── */
.wpp-float {
  position: fixed; bottom: 24px; right: 24px; z-index: 999;
  width: 52px; height: 52px; border-radius: 50%;
  background: #25D366; color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  text-decoration: none;
}
.wpp-float svg { width: 26px; height: 26px; fill: #fff; }

/* ── FADE-IN SCROLL ── */
.fade-in { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s ease; }
.fade-in.is-visible { opacity: 1; transform: none; }

/* ── HELPERS ── */
.eyebrow {
  font-size: .72rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--orange);
}
.text-gold { color: var(--gold); }
.bg-dark { background: var(--bg-dark); color: #fff; }
.bg-ink  { background: var(--bg-ink); color: #fff; }
.bg-pale { background: var(--orange-pale); }

/* ── ALIGN HELPERS for align:wide patterns ── */
.alignfull > * { box-sizing: border-box; }

/* Contato page 2-col grid responsive */
@media (max-width: 900px) { .contato-grid-2col { grid-template-columns: 1fr !important; gap: 32px !important; } }
@media (max-width: 900px) { .telemed-grid-2col { grid-template-columns: 1fr !important; gap: 32px !important; } }

/* ═══════════════════════════════════════════
   FASE 1A — REFINAMENTO UI/UX (v1.0.5)
═══════════════════════════════════════════ */

/* ── Tarefa 1: alinhar verticalmente os itens do menu (Serviços com dropdown) ──
   v2.6.4: regras restritas ao desktop (≥901px) para não sobrescrever
   `.nav-main__links { display: none }` do breakpoint mobile (linha 1094).
   Antes essas declarações sem media query reaparelhavam o nav no mobile,
   causando overflow horizontal de ~589px no iPhone SE. */
@media (min-width: 901px) {
  .nav-main__links {
    display: flex;
    align-items: center;
  }
  .nav-main__link,
  .nav-main__drop > .nav-main__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
    min-height: 44px;
  }
  .nav-main__drop {
    display: inline-flex;
    align-items: center;
  }
  /* fallback genérico para qualquer marcação de nav */
  .nav, .header__nav, ul.menu {
    display: flex;
    align-items: center;
  }
  .nav__link, .nav a, .menu-item > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
  }
  .nav__dropdown-toggle,
  .menu-item-has-children > a::after {
    display: inline-flex;
    align-items: center;
  }
}

/* ── Tarefa 2 / BUG 7: foto do "Sobre mim" sticky enquanto texto rola ──
   IMPORTANT: sticky aplica-se SOMENTE no wrapper .bio-grid__sticky (foto + chips juntos).
   A .bio-photo NÃO recebe position:sticky — caso contrário sobrepõe os chips. */
.bio-grid {
  align-items: start;
}
.bio-grid > .bio-grid__sticky,
.bio-grid > div:first-child {
  position: sticky;
  top: 120px; /* header ~80px + folga 40px */
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bio-grid__sticky .bio-photo,
.bio-grid > div:first-child .bio-photo {
  position: static;
  flex: 0 0 auto;
  height: auto;
  max-height: 480px;
}
.bio-grid__sticky .bio-photo img,
.bio-grid > div:first-child .bio-photo img {
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  display: block;
}
/* tags (chips) abaixo da foto: centralizadas e dentro do bloco sticky */
.bio-grid__sticky .bio-chips,
.bio-grid > div:first-child > .bio-chips {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 0;
  text-align: center;
}
/* fallback genéricos para outras estruturas possíveis */
.sobre-snippet-timeline,
.sobre-snippet-timeline__grid {
  align-items: start;
}
.sobre-snippet-timeline__media,
.sobre-snippet__photo,
.sobre-snippet-timeline > .wp-block-group:first-child,
.sobre-snippet-timeline .sticky-photo {
  position: sticky;
  top: 120px;
  align-self: start;
}
@media (max-width: 900px) {
  .bio-grid > .bio-grid__sticky,
  .bio-grid > div:first-child,
  .sobre-snippet-timeline__media,
  .sobre-snippet__photo,
  .sobre-snippet-timeline > .wp-block-group:first-child,
  .sobre-snippet-timeline .sticky-photo {
    position: static;
  }
}

/* ── Tarefa 4: padronização de espaçamento vertical entre seções ── */
.wp-site-blocks main > * + * {
  margin-block-start: 0;
}
[class*="-section"] {
  padding-block: clamp(64px, 9vw, 96px);
}
.section--tight { padding-block: clamp(48px, 6vw, 64px); }
.section--loose { padding-block: clamp(80px, 12vw, 120px); }

/* Reset margin entre patterns/groups consecutivos alignfull/alignwide */
.wp-site-blocks main > .wp-block-group + .wp-block-group,
.wp-site-blocks main > .wp-block-pattern + .wp-block-pattern,
.wp-site-blocks main > .wp-block-template-part + .wp-block-template-part {
  margin-block-start: 0;
}

/* Intro strip (faixa do reembolso): zera margens próprias */
.intro-strip,
.intro-strip-link {
  margin-block: 0;
  padding-block: 18px;
}

/* ═══════════════════════════════════════════
   v1.1.2 — UX/CSS BUGFIXES
═══════════════════════════════════════════ */

/* BUG 2 — cards "Como Posso Ajudar Você?": hover scale + sem underline */
.area-card,
.areas-grid > .area-card {
  transition: transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1);
  text-decoration: none;
}
.area-card:hover,
.areas-grid > .area-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(15,35,57,.25);
}
.area-card,
.area-card:hover,
.area-card:focus,
.area-card:visited,
.area-card * {
  text-decoration: none !important;
}

/* BUG 3 — intro-strip respeita content area (max 1200px + padding-inline) */
.intro-strip,
.intro-strip-link {
  padding-inline: 0;
}
.intro-strip__inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--wp--preset--spacing--50, 32px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  width: 100%;
}

/* BUG 5 — submenu Serviços: ponte hover sem gap */
.nav-main__drop > .nav-main__link {
  position: relative;
}
.nav-main__drop > .nav-main__link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10px;
  height: 12px;
  z-index: 199;
}
.nav-main__drop-menu {
  margin-top: 0;
  padding-top: 8px;
  background-clip: padding-box;
  /* O menu passou de 5 para 14 itens (v4.38.0) e ficou com 632px. Num notebook
     de 700px de altura ele terminava em 748px: os dois últimos assuntos
     existiam mas ninguém alcançava. Em tela baixa ele vira 2 colunas (regra
     logo abaixo); o teto com rolagem fica como último recurso, para a tela
     que não comporta nem as 2 colunas. */
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Tela sem altura para os 14 itens empilhados: divide em 2 colunas em vez de
   rolar. 800px é onde a lista (632px, mais o cabeçalho acima dela) deixa de
   caber. Só no desktop: abaixo de 901px o menu é o acordeão do hambúrguer,
   que rola junto com a página. Precisa repetir os seletores de hover/focus
   porque é neles que o display do menu é decidido. */
@media (min-width: 901px) and (max-height: 800px) {
  .nav-main__drop:hover .nav-main__drop-menu,
  .nav-main__drop:focus-within .nav-main__drop-menu {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(7, auto);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: max-content;
    max-width: calc(100vw - 32px);
  }
}

/* BUG 6 — gap entre header e hero nas páginas internas */
.wp-site-blocks main.wp-block-group,
.wp-site-blocks main {
  padding-block-start: 0 !important;
  margin-block-start: 0 !important;
}
.wp-site-blocks main > *:first-child,
main.wp-block-group > *:first-child {
  margin-block-start: 0 !important;
  padding-block-start: 0;
}
.page-hero,
.page-hero--estetica,
.hero-home {
  margin-top: 0 !important;
}
/* Compensa blockGap herdado quando o primeiro filho do main é alignfull */
.wp-site-blocks main > .wp-block-group.alignfull:first-child,
main.wp-block-group > .wp-block-group.alignfull:first-child {
  margin-top: 0 !important;
}

/* === Blog cards === */
.blog-card { transition: transform .3s ease, box-shadow .3s ease; height: 100%; display: flex; flex-direction: column; gap: 12px; }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 20px 60px rgba(27,58,92,.12); }
.blog-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--secondary); }
.blog-card .wp-block-post-featured-image img { aspect-ratio: 3/2; object-fit: cover; }

/* ═══════════════════════════════════════════
   v2.0.0 — NATIVE BLOCKS BRIDGE
   Patterns refatorados de <wp:html> para blocos
   nativos (wp:columns, wp:group, wp:image, wp:buttons).
   Esses overrides garantem que classes BEM legadas
   funcionem mesmo quando WP injeta wp-block-columns
   com display:flex de fábrica.
═══════════════════════════════════════════ */

/* Force grid layout on columns wrappers that legacy CSS expects as grid */
.areas-grid,
.wp-block-columns.areas-grid {
  display: grid !important;
  gap: 24px !important;
  grid-template-columns: 1fr 1fr;
  margin-inline: auto;
  max-width: var(--wp--style--global--wide-size, 1200px);
}
.wp-block-columns.areas-grid > .wp-block-column.area-card { flex-basis: auto; padding: 56px 40px; margin: 0 !important; }
.area-card { margin: 0 !important; }
@media (max-width: 900px) {
  .areas-grid,
  .wp-block-columns.areas-grid { grid-template-columns: 1fr; gap: 16px !important; }
}

.wp-block-columns.bio-grid { display: grid; grid-template-columns: 360px 1fr; gap: 64px; align-items: flex-start; margin: 0; }
.wp-block-columns.bio-grid > .wp-block-column { flex-basis: auto !important; }
@media (max-width: 900px) {
  .wp-block-columns.bio-grid { grid-template-columns: 1fr; gap: 36px; }
}

.wp-block-columns.diferenciais.diferenciais--3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; }
.wp-block-columns.diferenciais.diferenciais--4col { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; }
.wp-block-columns.diferenciais > .wp-block-column.diferencial-card { flex-basis: auto; }
@media (max-width: 900px) {
  .wp-block-columns.diferenciais.diferenciais--3col,
  .wp-block-columns.diferenciais.diferenciais--4col { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .wp-block-columns.diferenciais.diferenciais--3col,
  .wp-block-columns.diferenciais.diferenciais--4col { grid-template-columns: 1fr; }
}

.wp-block-columns.process { display: grid; grid-template-columns: 380px 1fr; gap: 80px; align-items: flex-start; margin: 0; }
.wp-block-columns.process > .wp-block-column { flex-basis: auto !important; }
@media (max-width: 900px) {
  .wp-block-columns.process { grid-template-columns: 1fr; gap: 40px; }
}

/* Hero home: 2-column with image right (v2.3.0 — single canonical rule) */
.hero-home .wp-block-columns.hero-home__columns { display: grid !important; grid-template-columns: 1fr 440px; gap: 56px; align-items: center; margin: 0; }
.hero-home .wp-block-columns.hero-home__columns > .wp-block-column { flex-basis: auto !important; padding: 0; }
@media (max-width: 900px) {
  .hero-home .wp-block-columns.hero-home__columns { grid-template-columns: 1fr; gap: 32px; }
}

/* Trust grid (4 stat tiles) */
.hero-home__trust.wp-block-group { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 48px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.1); }
.hero-home__trust.wp-block-group .hero-home__trust-item { display: flex; flex-direction: column; gap: 4px; }
.hero-home__trust.wp-block-group .hero-home__trust-value { font-family: var(--wp--preset--font-family--montserrat); font-size: 1.6rem; font-weight: 400; color: #fff; margin: 0; }
.hero-home__trust.wp-block-group .hero-home__trust-label { font-size: .72rem; color: rgba(255,255,255,.5); letter-spacing: .04em; margin: 0; }
@media (max-width: 700px) { .hero-home__trust.wp-block-group { grid-template-columns: repeat(2, 1fr); } }

/* Hero buttons spacing (visual rules removed in v2.3.3 — see RESET v2.3.3 at end of file) */
.hero-home .wp-block-buttons.hero-home__actions { gap: 16px; flex-wrap: wrap; margin-top: 32px; }

/* Hero image (wp:image instead of bare <img>) */
.hero-home__photo .wp-block-image.hero-home__photo-img { margin: 0; height: 100%; }
.hero-home__photo .wp-block-image.hero-home__photo-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
.hero-home__photo { position: relative; }

/* Bio photo (wp:image) */
.bio-photo.wp-block-image { margin: 0 0 16px; border-radius: 12px; overflow: hidden; }
.bio-photo.wp-block-image img { width: 100%; display: block; }

/* Section heads (h2/p in wp:group) */
.section-head { text-align: center; margin-bottom: 48px; }
.section-head .section-title { font-size: 2.4rem; margin-top: 12px; }
.section-title--on-dark { color: #fff; }
.section-title--on-dark strong { color: var(--gold, #c9a84c); }

/* Area card pills as paragraphs */
.area-card .area-card__pills.wp-block-group { display: flex; flex-wrap: wrap; gap: 6px; }
.area-card .area-card__pills.wp-block-group .area-card__pill { margin: 0; }

/* Bio chips as paragraphs */
.bio-chips.wp-block-group { display: flex; flex-wrap: wrap; gap: 8px; }
.bio-chips.wp-block-group .bio-chip { margin: 0; }

/* Bio timeline kept inside wp:html still works */
.bio-timeline.wp-block-group { display: flex; flex-direction: column; }

/* CTA bar */
.cta-bar.wp-block-group { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }

/* Filosofia quote-block */
.filosofia .filosofia__quote-block { border: 0; padding: 0; margin: 24px auto 8px; max-width: 760px; text-align: center; }
.filosofia .filosofia__quote-block cite { display: block; margin-top: 12px; font-style: normal; }

/* Hero badge as group */
.hero-home__badge.wp-block-group { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hero-home__badge-info.wp-block-group { display: flex; flex-direction: column; gap: 2px; }
.hero-home__badge-info.wp-block-group p { margin: 0; }

/* Process column-right wrapper */
.process__steps-col { /* container only */ }

/* CTA centered (wp:group replacement) */
.cta-centered .wp-block-buttons { justify-content: center; margin-top: 8px; }
.cta-centered .cta-centered__title { color: #fff; font-size: 2.2rem; margin: 0 0 16px; }
.cta-centered .cta-centered__sub { color: rgba(255,255,255,.75); max-width: 560px; margin: 0 auto 24px; line-height: 1.7; }
.cta-centered .cta-centered__link a { color: rgba(255,255,255,.85); font-size: .9rem; }
.cta-centered { text-align: center; padding: 64px 32px; border-radius: 16px; }

/* Bio especialidades list (replaces inline ul) */
.bio-especialidades { list-style: none; padding-left: 0; margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.bio-especialidades li { position: relative; padding-left: 22px; color: var(--wp--preset--color--texto, var(--ink)); }
.bio-especialidades li::before { content: ''; position: absolute; left: 0; top: 6px; width: 8px; height: 8px; background: var(--wp--preset--color--accent, var(--orange)); border-radius: 50%; }
.bio-especialidades li.bio-especialidades__gold::before { background: var(--wp--preset--color--ouro, var(--gold)); }
@media (max-width: 700px) { .bio-especialidades { grid-template-columns: 1fr; } }

/* Brand logo (v2.2.0) — header + footer image lockups */
.nav-main__logo img { display: block; height: 50px; width: auto; max-width: 100%; object-fit: contain; }
@media (min-width: 901px) { .nav-main__logo img { height: 54px; } }
@media (max-width: 720px) { .nav-main__logo img { height: 40px; } }
.footer__brand-logo {
  display: block;
  height: 64px;
  width: auto;
  max-width: 100%;
  margin-bottom: 18px;
  object-fit: contain;
}
@media (max-width: 720px) {
  .footer__brand-logo { height: 50px; }
}
.footer__brand-crm { font-size: .8rem; color: rgba(255,255,255,.7); margin: 0 0 16px; }

/* ============================================================
   v2.3.1 — BUG FIXES
   ============================================================ */

/* ── BUG 1 (v2.3.1): wp:button button-in-button — RULES REMOVED in v2.3.3.
   Substituído pela seção "BUTTONS — RESET v2.3.3" no fim do arquivo. */

/* ── BUG 6: ícone WhatsApp em todo botão que linka para WhatsApp ──
   Aplica via ::before com data-URI SVG. Cobre TANTO botões com classe .btn--whatsapp
   QUANTO qualquer link cuja URL aponte para api.whatsapp.com ou wa.me. */
.wp-block-button.btn--whatsapp > .wp-block-button__link::before,
.wp-block-button[class*="whatsapp"] > .wp-block-button__link::before,
a.btn--whatsapp::before,
a[href*="api.whatsapp"]:not(.wpp-float):not(.topbar__item):not(.nav-main__drop-item):not(.site-footer__social a):not([aria-label]):not(.unidade-card__phone)::before,
a[href*="wa.me"]:not(.wpp-float):not(.topbar__item):not(.nav-main__drop-item):not(.site-footer__social a):not([aria-label]):not(.unidade-card__phone)::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff' width='16' height='16'%3E%3Cpath d='M17.6 6.32A8 8 0 0 0 4 12c0 1.4.36 2.78 1.05 4L4 20l4.1-1.04A8 8 0 0 0 20 12a7.94 7.94 0 0 0-2.4-5.68zM12 18.5a6.5 6.5 0 0 1-3.32-.92l-.24-.14-2.44.62.65-2.38-.16-.25A6.5 6.5 0 1 1 12 18.5zm3.6-4.86c-.2-.1-1.18-.58-1.36-.65-.18-.07-.32-.1-.45.1-.13.2-.52.65-.64.78-.12.13-.24.15-.44.05-.2-.1-.84-.31-1.6-.99-.6-.53-1-1.18-1.12-1.38-.12-.2-.01-.31.09-.4.09-.09.2-.24.3-.36.1-.12.13-.2.2-.34.06-.13.03-.25-.02-.35-.05-.1-.45-1.08-.62-1.48-.16-.39-.33-.34-.45-.34l-.38-.01a.74.74 0 0 0-.54.25c-.18.2-.7.69-.7 1.68 0 .99.72 1.95.82 2.08.1.13 1.42 2.17 3.45 3.04.48.2.86.33 1.16.43.49.16.93.13 1.28.08.39-.06 1.18-.48 1.34-.95.16-.46.16-.86.12-.95-.05-.08-.18-.13-.38-.23z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  flex-shrink: 0;
  vertical-align: middle;
  margin-right: 2px;
}

/* Garantir que ::before não aparece em links com SVG inline (footer social, etc.) */
.site-footer__social a::before,
a[aria-label="WhatsApp"]::before,
a[aria-label="Instagram"]::before,
a[aria-label="Facebook"]::before {
  content: none !important;
  display: none !important;
}

/* WhatsApp icon em links com texto preto/escuro: usar ícone verde WhatsApp */
a.btn--whatsapp::before,
.wp-block-button.btn--whatsapp > .wp-block-button__link::before,
.wp-block-button[class*="whatsapp"] > .wp-block-button__link::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff' width='16' height='16'%3E%3Cpath d='M17.6 6.32A8 8 0 0 0 4 12c0 1.4.36 2.78 1.05 4L4 20l4.1-1.04A8 8 0 0 0 20 12a7.94 7.94 0 0 0-2.4-5.68zM12 18.5a6.5 6.5 0 0 1-3.32-.92l-.24-.14-2.44.62.65-2.38-.16-.25A6.5 6.5 0 1 1 12 18.5zm3.6-4.86c-.2-.1-1.18-.58-1.36-.65-.18-.07-.32-.1-.45.1-.13.2-.52.65-.64.78-.12.13-.24.15-.44.05-.2-.1-.84-.31-1.6-.99-.6-.53-1-1.18-1.12-1.38-.12-.2-.01-.31.09-.4.09-.09.2-.24.3-.36.1-.12.13-.2.2-.34.06-.13.03-.25-.02-.35-.05-.1-.45-1.08-.62-1.48-.16-.39-.33-.34-.45-.34l-.38-.01a.74.74 0 0 0-.54.25c-.18.2-.7.69-.7 1.68 0 .99.72 1.95.82 2.08.1.13 1.42 2.17 3.45 3.04.48.2.86.33 1.16.43.49.16.93.13 1.28.08.39-.06 1.18-.48 1.34-.95.16-.46.16-.86.12-.95-.05-.08-.18-.13-.38-.23z'/%3E%3C/svg%3E");
}

/* botão laranja (.btn--primary) que vai para WhatsApp também recebe ícone branco */
.btn.btn--primary[href*="api.whatsapp"]::before,
.btn.btn--primary[href*="wa.me"]::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="api.whatsapp"]::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="wa.me"]::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff' width='16' height='16'%3E%3Cpath d='M17.6 6.32A8 8 0 0 0 4 12c0 1.4.36 2.78 1.05 4L4 20l4.1-1.04A8 8 0 0 0 20 12a7.94 7.94 0 0 0-2.4-5.68zM12 18.5a6.5 6.5 0 0 1-3.32-.92l-.24-.14-2.44.62.65-2.38-.16-.25A6.5 6.5 0 1 1 12 18.5zm3.6-4.86c-.2-.1-1.18-.58-1.36-.65-.18-.07-.32-.1-.45.1-.13.2-.52.65-.64.78-.12.13-.24.15-.44.05-.2-.1-.84-.31-1.6-.99-.6-.53-1-1.18-1.12-1.38-.12-.2-.01-.31.09-.4.09-.09.2-.24.3-.36.1-.12.13-.2.2-.34.06-.13.03-.25-.02-.35-.05-.1-.45-1.08-.62-1.48-.16-.39-.33-.34-.45-.34l-.38-.01a.74.74 0 0 0-.54.25c-.18.2-.7.69-.7 1.68 0 .99.72 1.95.82 2.08.1.13 1.42 2.17 3.45 3.04.48.2.86.33 1.16.43.49.16.93.13 1.28.08.39-.06 1.18-.48 1.34-.95.16-.46.16-.86.12-.95-.05-.08-.18-.13-.38-.23z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  flex-shrink: 0;
  margin-right: 2px;
}

/* BUG 2 — Cookie banner: estilos default escondidos, .show revela.
   O JS já existia (sessionStorage). Garantimos transição limpa. */
.cookie {
  position: fixed;
  bottom: 16px;
  left: 16px;
  right: 16px;
  max-width: 880px;
  margin-inline: auto;
  z-index: 9999;
  background: var(--bg-dark, #0F2339);
  color: rgba(255,255,255,.9);
  border-radius: 12px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: space-between;
  box-shadow: 0 12px 40px rgba(0,0,0,.25);
  transform: translateY(140%);
  opacity: 0;
  transition: transform .35s ease, opacity .35s ease;
  pointer-events: none;
}
.cookie.show {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.cookie__text { margin: 0; font-size: .88rem; line-height: 1.5; max-width: 560px; color: rgba(255,255,255,.85); }
.cookie__text a { color: var(--gold, #c9a84c); text-decoration: underline; }
.cookie__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.cookie-btn {
  border: 0;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 600;
  font-size: .85rem;
  cursor: pointer;
  font-family: var(--wp--preset--font-family--roboto);
  transition: background .2s ease;
}

/* ═══════════════════════════════════════════
   BUTTONS — RESET v2.3.3 (override final)
   Todos quadrados (border-radius: 8px), padronizados
═══════════════════════════════════════════ */

/* Reset wrappers WP — sem visual no parent (exceto quando o wrapper TAMBÉM
   tem .btn-* — nesse caso o wrapper precisa render o visual do botão). */
.wp-block-button:not(.btn),
.wp-block-buttons > .wp-block-button:not(.btn) {
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* Quando wrapper tem .btn-*: visual transparente no wrapper, o link interno renderiza */
.wp-block-button.btn,
.wp-block-buttons > .wp-block-button.btn {
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  /* border-radius NÃO setado aqui — deixar o v4 governar */
}

/* Base — aplicada em <a> nativos OU no wp-block-button__link */
.btn,
a.btn,
.wp-block-button__link,
.wp-element-button,
.wp-block-button > .wp-block-button__link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--wp--preset--font-family--roboto), 'Roboto', sans-serif;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: .01em;
  border-radius: 8px !important;
  border: 1.5px solid transparent;
  padding: 12px 24px !important;
  text-decoration: none !important;
  cursor: pointer;
  white-space: nowrap;
  transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
  box-sizing: border-box;
  min-height: 44px; /* tap target */
}

/* Telas estreitas: texto do botão pode quebrar linha em vez de estourar a
   viewport (bug real: "Falar com a secretária sobre reembolso" @<360px). */
@media (max-width: 480px) {
  .btn,
  a.btn,
  .wp-block-button__link,
  .wp-element-button,
  .wp-block-button > .wp-block-button__link {
    white-space: normal;
    text-wrap: balance;
    max-width: 100%;
    text-align: center;
  }
}

/* SVG dentro do botão */
.btn svg,
.wp-block-button__link svg,
.wp-element-button svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

/* ──── Variantes (cor + hover) ──── */

/* PRIMARY (laranja) — CTA principal */
.btn--primary, a.btn--primary,
.wp-block-button.btn--primary > .wp-block-button__link,
.wp-block-button.btn--fill > .wp-block-button__link {
  background: var(--wp--preset--color--accent, #C8621A) !important;
  /* Texto azul-escuro, não branco: branco sobre o dourado #c19b73 dá 2,56:1 e
     reprova a WCAG AA (mínimo 4,5:1). O #0A1929 é da própria paleta e entrega
     6,93:1 — o dourado do botão continua idêntico. */
  color: #0A1929 !important;
  border-color: var(--wp--preset--color--accent, #C8621A);
}
.btn--primary:hover, a.btn--primary:hover,
.wp-block-button.btn--primary > .wp-block-button__link:hover,
.wp-block-button.btn--fill > .wp-block-button__link:hover {
  background: var(--wp--preset--color--laranja-claro, #e07530) !important;
  border-color: var(--wp--preset--color--laranja-claro, #e07530);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(200,98,26,.3);
}

/* GHOST (transparent + border) */
.btn--ghost, a.btn--ghost,
.wp-block-button.btn--ghost > .wp-block-button__link {
  background: transparent !important;
  color: var(--wp--preset--color--secondary, #0A1F38) !important;
  border-color: var(--wp--preset--color--cinza-linha, #DDD8D0);
}
.btn--ghost:hover, a.btn--ghost:hover,
.wp-block-button.btn--ghost > .wp-block-button__link:hover {
  border-color: var(--wp--preset--color--secondary, #0A1F38);
  background: rgba(15,35,57,.04) !important;
}

/* OUTLINE-WHITE (para fundos escuros) */
.btn--outline-white, a.btn--outline-white,
.wp-block-button.btn--outline-white > .wp-block-button__link {
  background: transparent !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.3);
}
.btn--outline-white:hover, a.btn--outline-white:hover,
.wp-block-button.btn--outline-white > .wp-block-button__link:hover {
  background: rgba(255,255,255,.06) !important;
  border-color: #fff;
}

/* GOLD (acento dourado) */
.btn--gold, a.btn--gold,
.wp-block-button.btn--gold > .wp-block-button__link {
  background: var(--wp--preset--color--ouro, #BE9663) !important;
  color: #1a1408 !important;
  border-color: var(--wp--preset--color--ouro, #BE9663);
  font-weight: 700;
}
.btn--gold:hover, a.btn--gold:hover,
.wp-block-button.btn--gold > .wp-block-button__link:hover {
  background: #d8b85a !important;
  border-color: #d8b85a;
  transform: translateY(-1px);
}

/* DARK (navy) */
.btn--dark, a.btn--dark,
.wp-block-button.btn--dark > .wp-block-button__link {
  background: var(--wp--preset--color--secondary, #0A1F38) !important;
  color: #fff !important;
  border-color: var(--wp--preset--color--secondary, #0A1F38);
}
.btn--dark:hover, a.btn--dark:hover,
.wp-block-button.btn--dark > .wp-block-button__link:hover {
  background: #162d48 !important;
  border-color: #162d48;
}

/* WHITE (sobre fundos escuros) */
.btn--white, a.btn--white,
.wp-block-button.btn--white > .wp-block-button__link {
  background: #fff !important;
  color: var(--wp--preset--color--accent, #C8621A) !important;
  border-color: #fff;
  font-weight: 700;
}
.btn--white:hover, a.btn--white:hover,
.wp-block-button.btn--white > .wp-block-button__link:hover {
  background: var(--wp--preset--color--background, #F7F4F0) !important;
}

/* WHATSAPP (verde brand — usado em botões secundários quando relevante) */
.btn--whatsapp, a.btn--whatsapp,
.wp-block-button.btn--whatsapp > .wp-block-button__link {
  background: #25D366 !important;
  color: #fff !important;
  border-color: #25D366;
}
.btn--whatsapp:hover, a.btn--whatsapp:hover,
.wp-block-button.btn--whatsapp > .wp-block-button__link:hover {
  background: #1ebe5d !important;
  border-color: #1ebe5d;
}

/* TEXT (link sem botão visual) */
.btn--text, a.btn--text {
  background: transparent !important;
  color: var(--wp--preset--color--accent, #C8621A) !important;
  padding: 0 !important;
  min-height: 0;
  border: 0 !important;
  font-weight: 600;
  font-size: .9rem;
}
.btn--text:hover, a.btn--text:hover {
  text-decoration: underline !important;
  color: var(--wp--preset--color--laranja-claro, #e07530) !important;
}

/* ──── Ícone WhatsApp automático em links ──── */
.wp-block-button.btn--whatsapp > .wp-block-button__link::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="api.whatsapp"]::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="wa.me"]::before,
a.btn--whatsapp::before,
a.btn--primary[href*="api.whatsapp"]::before,
a.btn--primary[href*="wa.me"]::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff' width='16' height='16'%3E%3Cpath d='M17.6 6.32A8 8 0 0 0 4 12c0 1.4.36 2.78 1.05 4L4 20l4.1-1.04A8 8 0 0 0 20 12a7.94 7.94 0 0 0-2.4-5.68zM12 18.5a6.5 6.5 0 0 1-3.32-.92l-.24-.14-2.44.62.65-2.38-.16-.25A6.5 6.5 0 1 1 12 18.5zm3.6-4.86c-.2-.1-1.18-.58-1.36-.65-.18-.07-.32-.1-.45.1-.13.2-.52.65-.64.78-.12.13-.24.15-.44.05-.2-.1-.84-.31-1.6-.99-.6-.53-1-1.18-1.12-1.38-.12-.2-.01-.31.09-.4.09-.09.2-.24.3-.36.1-.12.13-.2.2-.34.06-.13.03-.25-.02-.35-.05-.1-.45-1.08-.62-1.48-.16-.39-.33-.34-.45-.34l-.38-.01a.74.74 0 0 0-.54.25c-.18.2-.7.69-.7 1.68 0 .99.72 1.95.82 2.08.1.13 1.42 2.17 3.45 3.04.48.2.86.33 1.16.43.49.16.93.13 1.28.08.39-.06 1.18-.48 1.34-.95.16-.46.16-.86.12-.95-.05-.08-.18-.13-.38-.23z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════
   FORM — CHECKBOX LGPD FIX v2.3.3
═══════════════════════════════════════════ */

/* Reset column-count em qualquer wrapper de form */
.form, .form__lgpd, .form__lgpd label, .form-lgpd, .form-lgpd label,
.contato-form .lgpd, .contato-form .lgpd label,
form .lgpd, form label.lgpd {
  column-count: initial !important;
  columns: initial !important;
  -webkit-columns: initial !important;
  -moz-columns: initial !important;
}

/* Layout correto do checkbox + texto */
.form__lgpd, .form-lgpd, form .lgpd-row, label.lgpd-checkbox {
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
  font-size: .82rem;
  line-height: 1.5;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}

.form__lgpd input[type="checkbox"],
.form-lgpd input[type="checkbox"],
form .lgpd-row input[type="checkbox"] {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  cursor: pointer;
}

.form__lgpd span,
.form__lgpd > label,
.form-lgpd span,
form .lgpd-row span,
label.lgpd-checkbox span {
  flex: 1 1 auto;
  display: inline; /* texto corre como inline, não como bloco/coluna */
  white-space: normal;
}

.form__lgpd a, .form-lgpd a, form .lgpd-row a {
  color: var(--wp--preset--color--accent, #C8621A);
  text-decoration: underline;
}

/* ═══════════════════════════════════════════
   v2.4.0 — BUG FIXES
═══════════════════════════════════════════ */

/* BUG 1 — LGPD checkbox: garantir que label tem 2 filhos (input + span)
   e o span contém a frase corrida com link inline. Override total para
   evitar que children virem flex items separados. */
.form__lgpd, label.form__lgpd, .lgpd-checkbox, label.lgpd-checkbox {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start;
  gap: 10px;
  font-size: .82rem;
  line-height: 1.55;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  column-count: initial !important;
  columns: initial !important;
  -webkit-columns: initial !important;
  -moz-columns: initial !important;
}
.form__lgpd > .form__lgpd-text,
.form__lgpd > span,
label.form__lgpd > span {
  flex: 1 1 auto !important;
  display: inline-block !important;
  font-size: .82rem;
  line-height: 1.55;
  white-space: normal !important;
  column-count: initial !important;
  columns: initial !important;
}
.form__lgpd > .form__lgpd-text a,
.form__lgpd > span a,
.form__lgpd a {
  color: var(--wp--preset--color--accent, #C8621A);
  text-decoration: underline;
  display: inline !important; /* não bloco, não flex item */
}
.form__lgpd input[type="checkbox"] {
  flex: 0 0 16px !important;
  width: 16px;
  height: 16px;
  margin-top: 4px;
}

/* BUG 2 — Hover dos botões: preservar border-radius, sem inset shadows
   ou outlines que aparentem segunda borda */
.btn:hover, .btn:focus, .btn:active,
a.btn:hover, a.btn:focus, a.btn:active,
.wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active,
.wp-element-button:hover, .wp-element-button:focus,
.wp-block-button > .wp-block-button__link:hover,
.wp-block-button > .wp-block-button__link:focus,
.wp-block-button > .wp-block-button__link:active {
  border-radius: 8px !important;
  outline: none !important;
}

/* WCAG 2.4.7 — Foco visível com :focus-visible (v3.0.0)
   Remove outline default em :focus (mouse), mantém em teclado via :focus-visible */
.btn:focus-visible, a.btn:focus-visible,
.wp-block-button__link:focus-visible,
.wp-element-button:focus-visible,
.wp-block-button > .wp-block-button__link:focus-visible {
  outline: 2px solid var(--wp--preset--color--ouro, #BE9663) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(190,150,99,.25) !important;
}
a:focus-visible,
.nav-main__link:focus-visible,
.nav-main__drop-item:focus-visible,
.topbar__item:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent, #C8621A);
  outline-offset: 2px;
  border-radius: 4px;
}
.faq-q:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent, #C8621A);
  outline-offset: -2px;
}
.nav-main__toggle:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent, #C8621A);
  outline-offset: 4px;
  border-radius: 4px;
}
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent, #C8621A);
  outline-offset: 1px;
}
/* drop shadows OK; inset shadows não — limpa qualquer inset herdado */
.btn:hover, a.btn:hover,
.wp-block-button__link:hover,
.wp-block-button > .wp-block-button__link:hover {
  box-shadow: 0 4px 16px rgba(200,98,26,.18);
}
.btn--outline-white:hover, a.btn--outline-white:hover,
.wp-block-button.btn--outline-white > .wp-block-button__link:hover {
  box-shadow: none;
}
.btn--ghost:hover, a.btn--ghost:hover,
.wp-block-button.btn--ghost > .wp-block-button__link:hover {
  box-shadow: none;
}
.unidade-card .wp-block-button__link:hover,
.unidade-card a.btn:hover {
  border-radius: 8px !important;
  box-shadow: 0 4px 14px rgba(200,98,26,.15);
}

/* BUG 4 — Ícone WhatsApp 16 → 18px nos botões (e SVG geral em botão) */
.wp-block-button.btn--whatsapp > .wp-block-button__link::before,
.wp-block-button[class*="whatsapp"] > .wp-block-button__link::before,
a.btn--whatsapp::before,
a[href*="api.whatsapp"]:not(.wpp-float):not(.topbar__item):not(.nav-main__drop-item):not(.site-footer__social a):not([aria-label]):not(.unidade-card__phone)::before,
a[href*="wa.me"]:not(.wpp-float):not(.topbar__item):not(.nav-main__drop-item):not(.site-footer__social a):not([aria-label]):not(.unidade-card__phone)::before,
.btn.btn--primary[href*="api.whatsapp"]::before,
.btn.btn--primary[href*="wa.me"]::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="api.whatsapp"]::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="wa.me"]::before,
a.btn--primary[href*="api.whatsapp"]::before,
a.btn--primary[href*="wa.me"]::before {
  width: 18px !important;
  height: 18px !important;
}
.btn svg, .wp-block-button__link svg, .wp-element-button svg {
  width: 18px !important;
  height: 18px !important;
}

/* BUG 5 — Espaço entre "+10" e "anos" + cor da unidade */
.hero-home__trust-value .hero-home__trust-unit,
.hero-home__trust-value > span.hero-home__trust-unit {
  font-size: 1rem;
  color: var(--orange, #C8621A);
  margin-left: 4px;
}

/* v2.4.3 — Cards "Como Posso Ajudar Você" — ícones reconhecíveis + bg em 3 layers */
.area-card {
  position: relative;
  overflow: hidden;
}
/* Layer 1: pattern de fundo decorativo (radial highlight + diagonais finas) */
.area-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse 400px 300px at 90% 0%, rgba(190,150,99,.10) 0%, transparent 60%),
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 30px,
      rgba(190,150,99,.025) 30px,
      rgba(190,150,99,.025) 31px
    );
  pointer-events: none;
  z-index: 0;
}
/* Layer 2: borda decorativa interna sutil */
.area-card::after {
  content: '';
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(190,150,99,.10);
  border-radius: calc(var(--r2, 16px) - 8px);
  pointer-events: none;
  z-index: 1;
}
/* Variante urologia (fundo navy) */
.area-card--uro::before {
  background-image:
    radial-gradient(ellipse 400px 300px at 90% 0%, rgba(255,255,255,.06) 0%, transparent 60%),
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 30px,
      rgba(255,255,255,.025) 30px,
      rgba(255,255,255,.025) 31px
    );
}
.area-card--uro::after {
  border-color: rgba(255,255,255,.08);
}
/* Variante estética (dark + ouro) */
.area-card--est::before {
  background-image:
    radial-gradient(ellipse 400px 300px at 90% 0%, rgba(190,150,99,.18) 0%, transparent 60%),
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 30px,
      rgba(190,150,99,.06) 30px,
      rgba(190,150,99,.06) 31px
    );
}
.area-card--est::after {
  border-color: rgba(190,150,99,.20);
}
/* Conteúdo + ícone bg ficam acima das layers */
.area-card > * {
  position: relative;
  z-index: 3;
}
.area-card__bg-icon {
  position: absolute !important;
  bottom: -32px;
  right: -32px;
  width: 280px;
  height: 280px;
  z-index: 2 !important;
  pointer-events: none;
  opacity: 0.10;
  margin: 0 !important;
  display: block;
}
.area-card--uro .area-card__bg-icon {
  color: #fff;
  opacity: 0.10;
}
.area-card--est .area-card__bg-icon {
  color: var(--wp--preset--color--ouro, #BE9663);
  opacity: 0.20;
}
@media (max-width: 600px) {
  .area-card__bg-icon { width: 200px; height: 200px; bottom: -24px; right: -24px; }
  .area-card::after { inset: 10px; }
}/* v2.4.4 — Faixa intro-strip e #reembolso ambos 100% edge-to-edge full-bleed */
.intro-strip,
/* v2.4.4 — Faixa intro-strip e #atendimento-particular ambos 100% edge-to-edge full-bleed */
.intro-strip {
  background: var(--wp--preset--color--laranja-pale, #F3E8DF) !important;
  background-image: none !important;
  border-bottom: 1px solid #e8d5c5;
  position: relative;
  overflow: hidden;
  padding: 20px 0 !important;
  margin: 0 !important;
  /* full-bleed escape do constrained do <main> */
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
  padding-inline: 0 !important;
}
.intro-strip::before,
.intro-strip::after { content: none !important; }
.intro-strip > * { position: relative; z-index: 1; }
/* Conteúdo interno respeita 1200px (mas o bg vai até a borda da viewport) */
.intro-strip__inner {
  max-width: 1200px !important;
  margin-inline: auto !important;
  padding-inline: 32px !important;
  flex-wrap: nowrap !important;
}
@media (max-width: 768px) {
  .intro-strip__inner { flex-wrap: wrap !important; padding-inline: 20px !important; }
}
/* Override de regra antiga conflitante (linha 276) */
.intro-strip { padding-block: 18px !important; }

/* v2.4.3 — Seção #reembolso: mesma cor sólida da faixa + edge-to-edge full-bleed */
#reembolso,
/* v2.4.3 — Seção #atendimento-particular: mesma cor sólida da faixa + edge-to-edge full-bleed */
#atendimento-particular,
.process-steps {
  background: var(--wp--preset--color--laranja-pale, #F3E8DF) !important;
  background-image: none !important;
  color: var(--wp--preset--color--texto, #2A2A2A);
  position: relative;
  overflow: hidden;
  width: 100vw !important;
  max-width: none !important;
  margin-inline: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  padding-top: clamp(48px, 6vw, 72px) !important;
  padding-left: max(24px, calc((100% - 1200px) / 2)) !important;
  padding-right: max(24px, calc((100% - 1200px) / 2)) !important;
}#reembolso::before,
#atendimento-particular::before,
.process-steps::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 80% 20%, rgba(200,98,26,.08) 0%, transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(190,150,99,.10) 0%, transparent 50%);
  pointer-events: none;
  z-index: 0;
}#reembolso > *,
#atendimento-particular > *,
.process-steps > * { position: relative; z-index: 1; }/* Texto escuro sobre fundo claro */
#reembolso .section-title,
/* Texto escuro sobre fundo claro */
#atendimento-particular .section-title,
#reembolso h2,
#atendimento-particular h2,
#reembolso .process__title,
#atendimento-particular .process__title { color: var(--wp--preset--color--secondary, #0A1F38) !important; }#reembolso p,
#atendimento-particular p,
#reembolso .process__desc,
#atendimento-particular .process__desc,
#reembolso .process__text,
#atendimento-particular .process__text { color: var(--wp--preset--color--texto, #2A2A2A) !important; }#reembolso .process__badge,
#atendimento-particular .process__badge {
  color: var(--wp--preset--color--accent, #C8621A) !important;
  background: rgba(200,98,26,.08) !important;
  border: 1px solid rgba(200,98,26,.18) !important;
}#reembolso .process__num,
#atendimento-particular .process__num {
  background: var(--wp--preset--color--secondary, #0A1F38) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(15,35,57,.15);
}#reembolso .process__step,
#atendimento-particular .process__step {
  border-bottom-color: rgba(15,35,57,.10) !important;
}#reembolso .process__step-title,
#atendimento-particular .process__step-title { color: var(--wp--preset--color--secondary, #0A1F38) !important; }#reembolso .process__step-desc,
#atendimento-particular .process__step-desc { color: var(--wp--preset--color--texto-leve, #5A5550) !important; }#reembolso strong,
#atendimento-particular strong,
#reembolso .process__text strong,
#atendimento-particular .process__text strong { color: var(--wp--preset--color--secondary, #0A1F38) !important; }/* CTA dentro de #reembolso — laranja primary (não ouro) */
#reembolso .wp-block-button .wp-block-button__link,
/* CTA dentro de #atendimento-particular — laranja primary (não ouro) */
#atendimento-particular .wp-block-button .wp-block-button__link,
#reembolso .wp-block-button.btn--primary > .wp-block-button__link,
#atendimento-particular .wp-block-button.btn--primary > .wp-block-button__link,
#reembolso a.btn--primary,
#atendimento-particular a.btn--primary {
  background: var(--wp--preset--color--accent, #C8621A) !important;
  color: #fff !important;
  border-color: var(--wp--preset--color--accent, #C8621A) !important;
}#reembolso .wp-block-button .wp-block-button__link:hover,
#atendimento-particular .wp-block-button .wp-block-button__link:hover,
#reembolso .wp-block-button.btn--primary > .wp-block-button__link:hover,
#atendimento-particular .wp-block-button.btn--primary > .wp-block-button__link:hover {
  background: var(--wp--preset--color--laranja-claro, #e07530) !important;
  color: #fff !important;
  border-color: var(--wp--preset--color--laranja-claro, #e07530) !important;
}/* v2.4.2 — eliminar gap visual entre faixa e seção: continuidade vertical */
.intro-strip + #reembolso,
/* v2.4.2 — eliminar gap visual entre faixa e seção: continuidade vertical */
.intro-strip + #atendimento-particular,
.intro-strip + .wp-block-group#reembolso,
.intro-strip + .wp-block-group#atendimento-particular,
.alignfull.intro-strip + .alignwide,
.intro-strip:has(+ #reembolso),
.intro-strip:has(+ #atendimento-particular) { margin-top: 0 !important; }#reembolso,
#atendimento-particular { margin-top: 0 !important; }

/* ═══════════════════════════════════════════
   v2.5.1 — RITMO VISUAL HOME (refino)
   (Depoimentos / Blog / FAQ)
   - Depoimentos: aspas gigantes removidas; bg cinza-bg; ornamento radial sutil
   - Blog: padding-block reduzido; bg navy + ornamentos mantidos
   - Gap blog→teleatendimento: zerado
   - FAQ: '?' gigante removido; section-divider posicionado corretamente
   ═══════════════════════════════════════════ */

/* ── Section divider reusável (ornamento art-deco) ── */
.section-divider {
  width: 60px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--wp--preset--color--ouro, #BE9663), transparent);
  margin: 0 auto 20px;
  position: relative;
}
.section-divider::before,
.section-divider::after {
  content: '◆';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 6px;
  line-height: 1;
  color: var(--wp--preset--color--ouro, #BE9663);
}
.section-divider::before { left: -16px; }
.section-divider::after  { right: -16px; }
.section-divider--on-dark {
  margin-left: 0;
  margin-right: auto;
  background: linear-gradient(90deg, var(--wp--preset--color--ouro, #BE9663), rgba(190,150,99,.15));
}
.section-divider--on-dark::before { left: auto; display: none; }
.section-divider--on-dark::after  { right: -16px; }

/* ─────────────────────────────────────────
   SEÇÃO 1 — DEPOIMENTOS (cinza-bg neutro)
   v2.5.1: aspas gigantes removidas. Identidade
   vem do bg cinza-bg + section-divider + radial sutil.
   ───────────────────────────────────────── */
.depoimentos-section {
  background: var(--wp--preset--color--cinza-bg, #F0EDE8) !important;
  position: relative;
  overflow: hidden;
  padding-block: clamp(72px, 8vw, 96px) !important;
  margin-top: 0 !important;
}
.depoimentos-section::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle at 70% 30%, rgba(190,150,99,.10) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.depoimentos-section::after { content: none !important; }
.depoimentos-section .depoimentos-section__inner,
.depoimentos-section > * { position: relative; z-index: 1; }
.depoimentos-section .section-title { color: var(--wp--preset--color--secondary, #0A1F38); }

/* ─────────────────────────────────────────
   SEÇÃO 2 — BLOG (navy escuro)
   Quebra dramática light → dark.
   Padrão geométrico discreto + radial ouro.
   Cards "saltam" do fundo navy.
   ───────────────────────────────────────── */
.blog-section {
  background: var(--wp--preset--color--secondary, #0A1F38) !important;
  color: #fff !important;
  position: relative;
  overflow: hidden;
  padding-block: clamp(72px, 8vw, 96px) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Issue 3: zerar gap entre blog e teleatendimento (qualquer pattern subsequente
   muted/cinza-claro). O respiro vem do padding interno da seção seguinte. */
.blog-section + *,
.alignfull.blog-section + .alignfull,
.teleatendimento-snippet,
.tele-snippet,
.telemedicina-2col,
[class*="teleatendimento"],
[class*="telemedicina"] {
  margin-top: 0 !important;
}
.blog-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(ellipse at 90% 0%, rgba(190,150,99,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 0% 100%, rgba(200,98,26,.08) 0%, transparent 50%),
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 22px,
      rgba(190,150,99,.04) 22px,
      rgba(190,150,99,.04) 23px
    );
  pointer-events: none;
  z-index: 0;
}
.blog-section > *,
.blog-section .blog-section__inner { position: relative; z-index: 1; }

/* Tipografia clara sobre navy */
.blog-section .section-label,
.blog-section .section-label--on-dark {
  color: var(--wp--preset--color--ouro, #BE9663) !important;
}
.blog-section .blog-section__title,
.blog-section .section-title,
.blog-section h2 {
  color: #fff !important;
  font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', system-ui, sans-serif);
}
.blog-section .blog-section__title em,
.blog-section .section-title em { color: var(--wp--preset--color--ouro, #BE9663); font-style: italic; }

/* Cards saltam do navy: bg off-white, sombra */
.blog-section .diferencial-card,
.blog-section a.diferencial-card {
  background: var(--wp--preset--color--background, #F7F4F0) !important;
  border: 1px solid rgba(190,150,99,.18) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.18) !important;
  color: var(--wp--preset--color--texto, #2A2A2A) !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.blog-section .diferencial-card:hover,
.blog-section a.diferencial-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(0,0,0,.28) !important;
  border-color: rgba(190,150,99,.45) !important;
}
.blog-section .diferencial-card .section-label {
  color: var(--wp--preset--color--accent, #C8621A) !important;
}
.blog-section .diferencial-card__title {
  color: var(--wp--preset--color--secondary, #0A1F38) !important;
}
.blog-section .diferencial-card__desc {
  color: var(--wp--preset--color--texto-leve, #5A5550) !important;
}

/* CTA "Ver todos os artigos" — ghost light em fundo dark */
.blog-section .blog-section__cta,
.blog-section a.btn--ghost {
  color: var(--wp--preset--color--ouro, #BE9663) !important;
  border-color: rgba(190,150,99,.5) !important;
}
.blog-section .blog-section__cta:hover,
.blog-section a.btn--ghost:hover {
  color: #fff !important;
  border-color: var(--wp--preset--color--ouro, #BE9663) !important;
  background: rgba(190,150,99,.12) !important;
}

/* ═══════════════════════════════════════════
   v2.5.2 — REFINOS Dr. Robson Laranja
   - Issue 1: section-divider removido do bloco depoimentos
   - Issue 2: animação fade-in nos cards de depoimentos
   - Issue 3: FAQ redesign — header centralizado +
              accordion clean full-width + CTA centralizado
   ═══════════════════════════════════════════ */

/* ── Issue 2: Fade-in dos cards de depoimento ── */
.depoimento-card,
.testimonial-card,
.depoimentos-section .diferencial-card {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .65s cubic-bezier(.4,0,.2,1),
              transform .65s cubic-bezier(.4,0,.2,1);
  will-change: opacity, transform;
}
.depoimento-card.is-visible,
.testimonial-card.is-visible,
.depoimentos-section .diferencial-card.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .depoimento-card,
  .testimonial-card,
  .depoimentos-section .diferencial-card {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ─────────────────────────────────────────
   SEÇÃO 3 — FAQ (v2.5.2 redesign)
   Header centralizado · accordion clean full-width
   · CTA centralizado abaixo. Bg cinza-bg + radial ouro.
   ───────────────────────────────────────── */
.faq-section {
  background: var(--wp--preset--color--cinza-bg, #F0EDE8) !important;
  position: relative;
  overflow: hidden;
  padding-block: clamp(72px, 8vw, 96px) !important;
  margin-top: 0 !important;
}
.faq-section::before {
  content: '';
  position: absolute;
  top: -60px;
  right: -60px;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(190,150,99,.12) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.faq-section::after { content: none !important; }
.faq-section > *,
.faq-section .faq-section__inner { position: relative; z-index: 1; }

/* Header centralizado */
.faq-section .faq-section__head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 56px;
}
.faq-section .faq-section__head .section-label {
  display: inline-flex;
  justify-content: center;
}
.faq-section .faq-section__head h2 {
  font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', system-ui, sans-serif);
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 12px 0 16px;
}
.faq-section .faq-section__head h2 em {
  font-style: italic;
  color: var(--wp--preset--color--accent, #C8621A);
}
.faq-section .faq-section__head p {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: 1rem;
  line-height: 1.7;
  margin: 0 auto;
  max-width: 580px;
}

/* Accordion list — full-width clean */
.faq-section .faq-list {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.faq-section .faq-item {
  background: #fff;
  border: 1px solid var(--wp--preset--color--cinza-linha, #DDD8D0);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(15,35,57,.04);
  transition: box-shadow .25s ease, border-color .25s ease;
}
.faq-section .faq-item:hover {
  box-shadow: 0 6px 18px rgba(15,35,57,.08);
}
.faq-section .faq-item.open {
  box-shadow: 0 8px 24px rgba(15,35,57,.08);
  border-color: rgba(190,150,99,.4);
}
.faq-section .faq-q {
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 20px 24px;
  font-family: var(--wp--preset--font-family--roboto, 'Roboto', sans-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--wp--preset--color--secondary, #0A1F38);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  min-height: 56px;
}
.faq-list .faq-q .faq-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--wp--preset--color--accent, #C8621A);
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  transition: transform .3s cubic-bezier(.4,0,.2,1);
}
.faq-list .faq-q .faq-icon svg {
  display: block;
  width: 14px;
  height: 14px;
  overflow: visible;
}
.faq-list .faq-q .faq-icon::before,
.faq-list .faq-q .faq-icon::after { content: none !important; }
/* Chevron pra cima (aberto) */
.faq-list .faq-item.open .faq-q .faq-icon {
  transform: rotate(180deg);
}
/* FIX bug largura: scrollbar sempre visível para evitar reflow ao abrir accordion */
html { scrollbar-gutter: stable; }
.faq-section .faq-list { box-sizing: border-box; width: 100%; }
.faq-section .faq-item { box-sizing: border-box; width: 100%; max-width: 100%; }
.faq-section .faq-a {
  padding: 0 24px;
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, padding .35s ease;
}
.faq-section .faq-item.open .faq-a {
  padding: 0 24px 20px;
  max-height: 600px;
}
.faq-section .faq-a p {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  line-height: 1.7;
  margin: 0;
}

/* CTA centralizado abaixo do accordion */
.faq-section .faq-section__cta {
  text-align: center;
  margin-top: 48px;
}

/* Continuidade: anular margin-top entre as seções para que a transição
   de cor seja a única "barreira" visual. */
.depoimentos-section + .blog-section,
.blog-section + .faq-section,
.depoimentos-section + .faq-section { margin-top: 0 !important; }

/* Mobile — reduzir ornamentos (radials) para não pesar */
@media (max-width: 720px) {
  .depoimentos-section::before { width: 200px; height: 200px; }
  .faq-section::before { width: 240px; height: 240px; top: -60px; right: -60px; }
  .blog-section .blog-section__head { flex-direction: column; align-items: flex-start; }
  .faq-section .faq-section__head { margin-bottom: 40px; }
  .faq-section .faq-q { padding: 16px 18px; min-height: 52px; }
  .faq-section .faq-item.open .faq-a { padding: 0 18px 18px; }
}

/* ═══════════════════════════════════════════
   v2.6.0 — TELEATENDIMENTO CARD (refinado)
   Card direita: badge LIVE topo · ícone gold · steps numerados
   ═══════════════════════════════════════════ */
.tele-snippet {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  align-items: center;
}
@media (max-width: 860px) {
  .tele-snippet { grid-template-columns: 1fr; gap: 32px; }
}
.tele-snippet__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #43a047;
  display: inline-block;
  animation: tele-pulse 2s infinite;
}
@keyframes tele-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(67,160,71,.55); opacity: 1; }
  70%  { box-shadow: 0 0 0 10px rgba(67,160,71,0); opacity: .55; }
  100% { box-shadow: 0 0 0 0 rgba(67,160,71,0); opacity: 1; }
}

.tele-card {
  background: linear-gradient(180deg, #fff 0%, #faf9f7 100%);
  border: 1px solid rgba(190,150,99,.20);
  border-radius: 20px;
  padding: 40px 32px;
  text-align: center;
  position: relative;
  box-shadow: 0 12px 40px rgba(15,35,57,.08), inset 0 0 0 1px rgba(255,255,255,.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.tele-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(67,160,71,.12);
  color: #1f6f24;
  border: 1px solid rgba(67,160,71,.35);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.tele-card__icon-wrap {
  width: 88px; height: 88px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(190,150,99,.20) 0%, transparent 70%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  position: relative;
}
.tele-card__icon-wrap::after {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(190,150,99,.30);
  border-radius: 50%;
}
.tele-card__icon {
  width: 36px; height: 36px;
  stroke: var(--wp--preset--color--ouro, #BE9663);
}
.tele-card__title {
  font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', system-ui, sans-serif);
  font-size: clamp(1.5rem, 3vw, 1.85rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 12px;
  letter-spacing: -.01em;
}
.tele-card__title em {
  font-style: italic;
  color: var(--wp--preset--color--accent, #C8621A);
}
.tele-card__desc {
  font-size: .92rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  line-height: 1.7;
  max-width: 300px;
  margin: 0 auto 24px;
}
.tele-card__divider {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ouro, #BE9663);
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0 18px;
  width: 100%;
}
.tele-card__divider::before,
.tele-card__divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(190,150,99,.25);
}
.tele-card__divider span { white-space: nowrap; }
.tele-card__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  text-align: left;
}
.tele-card__step {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: .92rem;
  color: var(--wp--preset--color--texto, #2A2723);
  line-height: 1.55;
}
.tele-card__step-num {
  flex-shrink: 0;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: rgba(190,150,99,.15);
  color: var(--wp--preset--color--ouro, #BE9663);
  font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', system-ui, sans-serif);
  font-size: .95rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.tele-card__step-text {
  flex: 1;
  padding-top: 2px;
}
@media (max-width: 720px) {
  .tele-card { padding: 32px 24px; }
}

/* ═══════════════════════════════════════════
   v2.6.0 — FAQ SECTION (2-col layout restaurado + bg areia tostada)
   Sticky-side esquerda · accordion direita · #EAE4D8 com pattern losangos art-deco
   ═══════════════════════════════════════════ */
.faq-section {
  background-color: #EAE4D8 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M20 0 L40 20 L20 40 L0 20 Z' stroke='rgba(190,150,99,.06)' stroke-width='1' fill='none'/%3E%3C/svg%3E") !important;
  background-size: 40px 40px !important;
  position: relative;
  overflow: hidden;
  padding-block: clamp(80px, 9vw, 112px) !important;
  margin-top: 0 !important;
}
.faq-section::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(190,150,99,.18) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.faq-section::after {
  content: '' !important;
  position: absolute;
  bottom: -80px;
  left: -80px;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(200,98,26,.08) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.faq-section > *,
.faq-section .faq-section__inner { position: relative; z-index: 1; }

/* Layout 2-col: sticky-side + accordion */
.faq-section .faq-section__inner {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 64px;
  align-items: start;
}
.faq-section .faq-section__sticky {
  position: sticky;
  top: 100px;
  align-self: start;
}
.faq-section .faq-section__sticky .section-label {
  display: inline-flex;
  margin-bottom: 16px;
}
.faq-section .faq-section__sticky h2 {
  font-family: var(--wp--preset--font-family--montserrat, 'Montserrat', system-ui, sans-serif);
  font-size: clamp(2rem, 4vw, 2.6rem);
  font-weight: 300;
  line-height: 1.15;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 16px;
  letter-spacing: -.01em;
}
.faq-section .faq-section__sticky h2 em {
  font-style: italic;
  color: var(--wp--preset--color--accent, #C8621A);
}
.faq-section .faq-section__sticky p {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: .95rem;
  line-height: 1.7;
  margin: 0 0 28px;
  max-width: 360px;
}

/* Override do v2.5.2: header centralizado vira 2-col */
.faq-section .faq-section__head {
  text-align: left;
  max-width: none;
  margin: 0;
}
.faq-section .faq-section__head .section-label { justify-content: flex-start; }

/* Accordion list — full-width na coluna direita (mantém estilo v2.5.2 cards brancos +/-) */
.faq-section .faq-list {
  max-width: none;
  margin: 0;
}

/* Mobile: colapsa para 1-col */
@media (max-width: 900px) {
  .faq-section .faq-section__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .faq-section .faq-section__sticky { position: static; }
}
@media (max-width: 720px) {
  .faq-section { background-attachment: scroll !important; }
  .faq-section::before { width: 240px; height: 240px; top: -60px; right: -60px; }
  .faq-section::after { width: 180px; height: 180px; bottom: -50px; left: -50px; }
}

/* ═══════════════════════════════════════════
   v2.6.9 — MOBILE OVERFLOW SAFETY NET — SCOPED (NÃO QUEBRA STICKY)
   ─────────────────────────────────────────
   DEBUG REAL (v2.6.8 quebrava sticky em Firefox):
     - Tinhamos `overflow-x: clip` em html, body E .wp-site-blocks.
     - Firefox tratou `clip` como contexto de containment (igual hidden)
       e o `position: sticky` no .nav-main escapou: top vai 118 → -482
       ao scrollar 600px (NÃO fica fixo).
     - Documentação MDN diz que `clip` NÃO cria scroll context, mas a
       implementação real do Firefox respeita `overflow != visible` no
       ancestor chain como sticky-blocker.
   FIX: Remover clip dos ANCESTRAIS do header (html, body, .wp-site-blocks)
        e aplicar APENAS em main e footer — que NÃO contêm o nav sticky.
        Mantém safety-net de overflow horizontal sem matar sticky.
   ═══════════════════════════════════════════ */
html, body {
  max-width: 100vw;
}
.wp-site-blocks > main,
main.wp-block-group,
main#wp--skip-link--target,
.wp-site-blocks > footer.wp-block-template-part {
  overflow-x: clip;
  max-width: 100vw;
}

/* Garante que o nav mobile (quando aberto via .open) não estoura horizontalmente */
@media (max-width: 900px) {
  .nav-main__links.open {
    max-width: 100vw;
    box-sizing: border-box;
  }
  /* hero-home grid 1fr 440px → 1fr quando ainda não houver media (segurança) */
  .hero-home,
  .hero-home__columns,
  .wp-block-columns.hero-home__columns {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* CTA do header — esconder em mobile.
     Source-order-late: vence `.btn { display: inline-flex !important }` (linha ~1624).
     Especificidade extra `nav.nav-main a.nav-main__cta` (0,3,1) também ajuda. */
  nav.nav-main a.nav-main__cta,
  .nav-main a.nav-main__cta,
  a.nav-main__cta,
  .nav-main__cta {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════
   v2.6.5 — MOBILE FULL-BLEED FIX (hero + contato)
   ─────────────────────────────────────────
   Diagnose (firefox 375x667 em /):
     .hero-home { width: 327, left: 0, marL: -24px, maxW: 100% }
     → max-width: 100% mata a tentativa de full-bleed via negative margin.
   Diagnose (/contato/):
     alignwide groups with width 327 (24px gutters) — visualmente ok mas
     o usuário pediu full-bleed. Forçamos width: 100% e padding-inline interno.
   ═══════════════════════════════════════════ */
@media (max-width: 900px) {
  /* HERO HOME — bg full-bleed, padding-inline zero (conteúdo respira no __inner) */
  .hero-home,
  section.hero-home,
  .wp-block-group.hero-home,
  .wp-block-group.alignfull.hero-home {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-inline: calc(50% - 50vw) !important;
    padding-inline: 0 !important;
  }
  .hero-home__inner {
    padding-inline: 24px !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* CONTATO — sections full-bleed, conteúdo com 24px de respiro */
  .contato-section,
  .contato-channels,
  .contato-main,
  .contato-channels-unidades-form,
  .telemed-section,
  .telemedicina-2col,
  .lgpd-section,
  [class*="contato"][class*="section"] {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    padding-inline: 24px !important;
    box-sizing: border-box !important;
  }
  /* Os wrappers .contato-grid-2col e .telemed-grid-2col já viram 1fr (linhas 1152-1153);
     garantimos que ocupam toda a largura disponível */
  .contato-grid-2col,
  .telemed-grid-2col {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    box-sizing: border-box !important;
  }

  /* ─────────────────────────────────────────
     v2.6.6 — Agende agora (CTA final form home) full-bleed
     Pattern .cta-final-split-form / .cta-fin / agende-section
     v2.6.7 — REVISADO: section bg full-bleed, conteúdo (__inner) respeita 1200px
              com padding lateral. Padding lateral movido de `> *` para `__inner`
              para evitar herdar em níveis indesejados.
     ───────────────────────────────────────── */
  /* v2.6.9: REMOVIDOS wildcards [class*="cta-final"] e [class*="agende"] —
     estavam matchando .cta-final__title, .cta-final__desc, .cta-final__inner
     e empurrando h2/p para 100vw com margin negativa (texto colado nas bordas).
     Agora APENAS o wrapper externo recebe full-bleed. */
  .cta-fin,
  .cta-final,
  .cta-final-split-form,
  section.cta-fin,
  section.cta-final,
  .wp-block-group.cta-fin,
  .wp-block-group.cta-final,
  .alignfull.cta-fin,
  .alignfull.cta-final {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-inline: calc(50% - 50vw) !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }
  /* Conteúdo respeita 1200px com padding lateral 24px (v2.6.7) */
  .cta-final__inner,
  .cta-fin__inner,
  .cta-final-split-form > * {
    max-width: 1200px !important;
    width: 100% !important;
    margin-inline: auto !important;
    padding-inline: 24px !important;
    box-sizing: border-box !important;
  }

  /* ─────────────────────────────────────────
     v2.6.8 — CTA Agende agora: bg full-bleed + padding interno garantido
     (override final, fica no fim para vencer regras anteriores)
     ───────────────────────────────────────── */
  .cta-final,
  .cta-fin,
  section.cta-final,
  .wp-block-group.cta-final {
    padding: 64px 24px !important;
  }
  .cta-final__inner {
    padding-inline: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* ─────────────────────────────────────────
     v2.6.9 — Sticky CORRETO em mobile (topbar scrolla, nav fica fixo)
     DEBUG REAL (Firefox 375x667 em /):
       v2.6.8: .nav-main sticky DENTRO de .site-header (h=182) →
               quando scroll > 118 (182-64), nav escapa do parent.
               Resultado: nav.top vai 118 → -482 ao scrollar 600px (FAIL).
       Tentativa 1: sticky em .site-header → falhou IDÊNTICO porque
                    o pai dela (header.wp-block-template-part) tem h=183.
       FIX FINAL: position:sticky vai no PRÓPRIO header.wp-block-template-part,
                  cujo pai é .wp-site-blocks (h=15950px — altura toda da
                  página). Top negativo = altura da topbar (≈118px no
                  mobile com 2 grupos empilhados em flex-wrap). Topbar
                  scrolla pra cima, nav trava em top:0.
                  v2.6.5 já dizia: usar `clip` em vez de `hidden` em
                  ancestores — agora removemos AMBOS dos ancestores
                  diretos do header sticky, apenas main/footer recebem clip.
     ───────────────────────────────────────── */
  header.wp-block-template-part {
    position: sticky !important;
    top: -118px !important;
    z-index: 100 !important;
    background: rgba(247,244,240,.97) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    overflow: visible !important;
    width: 100%;
  }
  .site-header {
    position: static !important;
    background: transparent !important;
  }
  .topbar {
    position: static !important;
  }
  .nav-main {
    position: static !important;
    z-index: 100 !important;
    background: rgba(247,244,240,.97) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border-bottom: 1px solid var(--line, #DDD8D0) !important;
    justify-content: center !important;
    padding: 14px 24px !important;
    height: 64px !important;
  }
  .nav-main__logo {
    margin: 0 auto !important;
  }
  .nav-main__toggle {
    position: absolute !important;
    right: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
  }
  .nav-main__toggle.is-active {
    transform: translateY(-50%) !important;
  }

  /* ─────────────────────────────────────────
     v2.6.8 — Menu mobile drawer ABAIXO do nav (não cobre)
     ───────────────────────────────────────── */
  .nav-main__links.open {
    top: 64px !important;
    height: calc(100vh - 64px) !important;
    inset: auto !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    padding: 16px 24px 32px !important;
  }

  /* ─────────────────────────────────────────
     v2.7.2 — Hero badge mobile: empilhar info + status (column)
     Em row, status ficava vert-centered ao info (2 linhas), parecendo
     "alguma coisa em cima dele". Column resolve.
     ───────────────────────────────────────── */
  .hero-home__badge,
  .hero-home__badge.wp-block-group {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    padding: 12px 14px !important;
  }
  .hero-home__badge-status {
    margin-left: 0 !important;
    align-self: flex-start !important;
  }

  /* ─────────────────────────────────────────
     v2.6.6 — Hero mobile: botões full-width
     ───────────────────────────────────────── */
  .hero-home__actions {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 10px !important;
  }
  .hero-home__actions .wp-block-button,
  .hero-home__actions .btn,
  .hero-home__actions a.btn,
  .hero-home__actions .wp-block-button__link {
    width: 100% !important;
    justify-content: center !important;
  }

  /* ─────────────────────────────────────────
     v2.6.6 — Menu mobile abre quando .open (era bloqueado por display:none !important)
     v2.6.7 — REESCRITO: full-screen overlay (fixed inset 0) substitui drawer.
              Regras movidas para o bloco v2.6.7 abaixo (final do arquivo).
     ───────────────────────────────────────── */
}

/* ═══════════════════════════════════════════
   v2.6.7 — UX MENU MOBILE FULL-SCREEN + SUBMENU CLICK-TOGGLE
   ─────────────────────────────────────────
   T1: Menu mobile vira overlay fixed inset 0 (toma tela toda)
       + body scroll lock + toggle vira X animado.
   T2: Submenu mobile abre por click (.is-open) — não hover.
       Caret rotaciona para indicar estado. Hover desabilitado em mobile.
   ═══════════════════════════════════════════ */
@media (max-width: 900px) {
  /* Lock body scroll quando menu aberto */
  body.menu-mobile-open {
    overflow: hidden;
    height: 100vh;
  }

  /* O drawer é position:fixed, mas o backdrop-filter do .nav-main (e do
     <header>) cria bloco de contenção: o `inset:0` passava a valer a partir do
     topo do .nav-main, 52px abaixo da tela. Com height:100vh o drawer terminava
     52px fora da viewport e o último item ("Contato") ficava cortado, sem
     rolagem que o alcançasse. Só apareceu quando o submenu passou a abrir
     inteiro e a lista ficou maior que a tela. Com o menu aberto o drawer é
     opaco e cobre tudo, então o blur não tem o que borrar: desligar devolve o
     drawer à viewport sem mudar o visual. */
  .nav-main:has(.nav-main__links.open),
  header.wp-block-template-part:has(.nav-main__links.open) {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  /* O .nav-main é item de flex do .site-header, e item de flex com z-index vira
     contexto de empilhamento mesmo sendo static: o drawer subia junto com ele
     (z 100) e cobria a topbar, que agora começa na mesma altura. Zerando o
     z-index enquanto o menu está aberto, drawer (90), topbar (95) e X (101)
     voltam a se empilhar na ordem certa. Fechado, o .nav-main mantém o 100. */
  .nav-main:has(.nav-main__links.open) {
    z-index: auto !important;
  }
  .site-header:has(.nav-main__links.open) .topbar {
    position: relative !important;
    z-index: 95 !important;
  }

  /* v2.7.1: Drawer cobre tela inteira (top:0), padding-top reserva espaço pro header sticky */
  .nav-main__links.open {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: 100vw !important;
    background: var(--wp--preset--color--background, #F7F4F0) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 200px 24px 32px !important;  /* topbar(~118) + nav(64) + folga(18) */
    margin: 0 !important;
    z-index: 90 !important;  /* abaixo do header (100) e do toggle (101) */
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 4px !important;
    box-shadow: none !important;
    border: 0 !important;
    box-sizing: border-box !important;
  }
  /* Quando topbar scrolla pra fora, header tem só 64px — encolhe padding-top do drawer */
  body.has-scrolled .nav-main__links.open {
    padding-top: 80px !important;
  }

  /* Toggle vira X quando menu aberto */
  .nav-main__toggle span {
    transition: transform .3s ease, opacity .3s ease;
  }
  .nav-main__toggle.is-active span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }
  .nav-main__toggle.is-active span:nth-child(2) {
    opacity: 0;
  }
  .nav-main__toggle.is-active span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  /* v2.7.1: Toggle (X) sempre por cima de tudo (z:101) */
  .nav-main__toggle {
    z-index: 101 !important;
  }
  /* Header sticky por cima do drawer mas abaixo do toggle */
  header.wp-block-template-part {
    z-index: 100 !important;
  }

  /* Items do menu cheios e tocáveis */
  .nav-main__links.open .nav-main__link,
  .nav-main__links.open > a,
  .nav-main__links.open .nav-main__drop > .nav-main__link {
    width: 100% !important;
    padding: 14px 8px !important;
    min-height: 56px !important;
    font-size: 1.1rem !important;
    color: var(--wp--preset--color--secondary, #0A1F38) !important;
    border-bottom: 1px solid rgba(190,150,99,.15) !important;
    border-radius: 0 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: transparent !important;
  }
  /* .nav-main__drop wrapper deixa o link interno controlar padding */
  .nav-main__links.open .nav-main__drop {
    width: 100% !important;
    padding: 0 !important;
    display: block !important;
    min-height: auto !important;
  }

  /* T2: Submenu fechado por padrão em mobile */
  .nav-main__links.open .nav-main__drop-menu {
    display: none !important;
    position: static !important;
    transform: none !important;
    box-shadow: none !important;
    border: 0 !important;
    margin: 0 !important;
    padding: 4px 0 8px 16px !important;
    background: transparent !important;
    width: 100% !important;
    min-width: 0 !important;
    inset: auto !important;
    /* O teto com rolagem da regra base é só do dropdown flutuante do desktop.
       Aqui o submenu é parte da lista do drawer, que já rola inteiro: uma
       segunda barra de rolagem dentro dele prende o dedo do usuário. */
    max-height: none !important;
    overflow: visible !important;
  }
  /* Submenu aberto via .is-open (toggle por click no JS) */
  .nav-main__links.open .nav-main__drop.is-open .nav-main__drop-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
  }
  /* Override: hover NÃO abre submenu em mobile (impede acidente touch-hover) */
  .nav-main__links.open .nav-main__drop:hover .nav-main__drop-menu,
  .nav-main__links.open .nav-main__drop:focus-within .nav-main__drop-menu,
  .nav-main__links.open .nav-main__drop > .nav-main__link:hover ~ .nav-main__drop-menu {
    display: none !important;
  }
  .nav-main__links.open .nav-main__drop.is-open:hover .nav-main__drop-menu,
  .nav-main__links.open .nav-main__drop.is-open .nav-main__drop-menu {
    display: flex !important;
  }

  /* Items do submenu */
  .nav-main__links.open .nav-main__drop-menu a,
  .nav-main__links.open .nav-main__drop-menu .nav-main__drop-item {
    width: 100% !important;
    padding: 10px 8px !important;
    min-height: 44px !important;
    font-size: .95rem !important;
    color: var(--wp--preset--color--texto-leve, #5A5550) !important;
    border-bottom: 1px solid rgba(190,150,99,.10) !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
  }

  /* Indicador (caret) no parent do dropdown — rotaciona quando aberto.
     IMPORTANT: reset position/inset que vêm do desktop (linha ~1330: hover-bridge). */
  .nav-main__links.open .nav-main__drop > .nav-main__link::after {
    content: '';
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 8px !important;
    height: 8px !important;
    border: solid var(--wp--preset--color--accent, #C8621A) !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg);
    transition: transform .3s ease;
    margin-left: auto;
    flex-shrink: 0;
    background: transparent !important;
    z-index: auto !important;
  }
  .nav-main__links.open .nav-main__drop.is-open > .nav-main__link::after {
    transform: rotate(-135deg);
  }
}

/* ═══════════════════════════════════════════
   v2.7.3 — HERO SOBRE (página Sobre Dr. Robson)
   E-E-A-T premium: navy + ouro + foto + chips + logos
═══════════════════════════════════════════ */
.hero-sobre {
  background: var(--wp--preset--color--secondary, #0A1F38);
  color: #fff;
  position: relative;
  overflow: hidden;
  padding: 0;
}
.hero-sobre::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 60% 70% at 85% 50%, rgba(190,150,99,.15) 0%, transparent 60%),
    radial-gradient(ellipse 40% 60% at 10% 90%, rgba(200,98,26,.10) 0%, transparent 60%);
}
.hero-sobre__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 96px 32px 88px;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 64px;
  align-items: center;
}
.hero-sobre__copy { max-width: 600px; }
.hero-sobre__eyebrow {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(190,150,99,.95);
  margin-bottom: 20px;
}
.hero-sobre__title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 300;
  line-height: 1.08;
  color: #fff;
  margin: 0 0 20px;
  letter-spacing: -.02em;
}
.hero-sobre__title em {
  font-style: italic;
  color: var(--wp--preset--color--ouro, #BE9663);
}
.hero-sobre__sub {
  font-size: 1.05rem;
  color: rgba(255,255,255,.78);
  line-height: 1.72;
  margin: 0 0 24px;
  max-width: 520px;
}

/* Chips de credenciais */
.hero-sobre__creds {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}
.hero-sobre__cred {
  display: inline-flex;
  align-items: center;
  font-size: .78rem;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.92);
  border: 1px solid rgba(255,255,255,.15);
}
.hero-sobre__cred--gold {
  background: rgba(190,150,99,.15);
  color: var(--wp--preset--color--ouro, #BE9663);
  border-color: rgba(190,150,99,.35);
}

/* Logos institucionais */
.hero-sobre__institutions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.hero-sobre__inst-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.hero-sobre__inst-logos {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
/* Logo institucional como <img> em chip branco translúcido (fica legível
   independente da cor da logo, sobre fundo navy do hero). */
.hero-sobre__inst-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 8px 14px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
  /* img dentro respeita altura disponível com aspect mantido */
  object-fit: contain;
  max-width: 140px;
  width: auto;
}
.hero-sobre__inst-logo:hover {
  transform: translateY(-2px);
  background: #fff;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.20);
}
.hero-sobre__inst-logo--gold {
  background: rgba(255, 248, 235, 0.96);
  border-color: rgba(190, 150, 99, 0.45);
  box-shadow: 0 2px 12px rgba(190, 150, 99, 0.16);
}
.hero-sobre__inst-logo--gold:hover {
  background: #fff8eb;
  box-shadow: 0 6px 22px rgba(190, 150, 99, 0.28);
}
@media (max-width: 600px) {
  .hero-sobre__inst-logo { height: 40px; padding: 6px 10px; max-width: 110px; }
}

/* CTAs */
.hero-sobre__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

/* Foto placeholder (coluna direita) */
.hero-sobre__photo {
  position: relative;
}
.hero-sobre__photo-placeholder {
  position: relative;
  height: 540px;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(190,150,99,.08) 100%);
  border: 1px solid rgba(190,150,99,.25);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: rgba(190,150,99,.6);
  overflow: hidden;
}
.hero-sobre__photo-placeholder svg {
  width: 200px;
  height: 240px;
  opacity: 0.45;
}
.hero-sobre__photo-label {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  text-align: center;
}

/* Mobile */
@media (max-width: 900px) {
  .hero-sobre__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 64px 24px;
  }
  .hero-sobre__photo-placeholder { height: 320px; }
  .hero-sobre__title { font-size: clamp(1.8rem, 8vw, 2.6rem); }
  .hero-sobre__institutions { flex-direction: column; align-items: flex-start; }
}

/* ═══════════════════════════════════════════════════════════════════
   v3.1.0 — SOBRE refinements (Bio gallery + Filosofia dark + CTA bifurcação)
   Escopo BEM estrito — sem regressão em outras páginas.
   Cores via tokens: --navy (--bg-dark), --gold, --orange, --ink-*.
═══════════════════════════════════════════════════════════════════ */

/* ─── BIO GALLERY (3 placeholders horizontais com captions ouro) ─── */
.bio-gallery {
  margin: 0 auto;
  max-width: 1200px;
  padding: 0 32px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.bio-gallery__item {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 12px;
  overflow: hidden;
  background: var(--bg-dark, #0A1F38);
  border: 1px solid color-mix(in oklch, var(--gold) 28%, transparent);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease);
}
@supports not (background: color-mix(in oklch, red, blue)) {
  .bio-gallery__item { border-color: rgba(190, 150, 99, 0.28); }
}
.bio-gallery__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 50% at 50% 35%, rgba(190,150,99,.12) 0%, rgba(190,150,99,0) 70%),
    linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(0,0,0,.20) 100%);
  pointer-events: none;
}
.bio-gallery__item:hover,
.bio-gallery__item:focus-within {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(10, 31, 56, 0.22);
  border-color: var(--gold);
}
.bio-gallery__icon {
  position: relative;
  width: 88px;
  height: 88px;
  color: var(--gold);
  opacity: 0.85;
}
.bio-gallery__icon svg { width: 100%; height: 100%; }
.bio-gallery__caption {
  position: relative;
  margin-top: 18px;
  padding: 0 16px;
  color: var(--gold);
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  text-wrap: balance;
}
.bio-gallery__hint {
  position: relative;
  margin-top: 6px;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.45);
  text-transform: uppercase;
}

/* ─── FILOSOFIA --dark (refinamento editorial v3.1.0) ─── */
.filosofia--dark {
  position: relative;
  background:
    radial-gradient(60% 70% at 12% 10%, rgba(190,150,99,.10) 0%, rgba(190,150,99,0) 60%),
    radial-gradient(50% 60% at 88% 92%, rgba(200,98,26,.08) 0%, rgba(200,98,26,0) 60%),
    var(--bg-dark, #0A1F38);
  color: var(--white, #fff);
  overflow: hidden;
}
.filosofia--dark::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,.18) 100%);
  pointer-events: none;
}
.filosofia--dark .filosofia { position: relative; z-index: 1; }
.filosofia--dark .section-label,
.filosofia--dark .filosofia__eyebrow {
  color: var(--gold);
}
.filosofia__figure {
  position: relative;
  margin: 36px auto 28px;
  max-width: 920px;
  padding: 0 56px;
  text-align: center;
}
.filosofia__quote-mark {
  position: absolute;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: clamp(4rem, 9vw, 7.5rem);
  line-height: 1;
  color: var(--gold);
  opacity: 0.6;
  user-select: none;
  pointer-events: none;
}
.filosofia__quote-mark--left { top: -18px; left: 0; }
.filosofia__quote-mark--right { bottom: -42px; right: 0; }
.filosofia--dark .filosofia__quote-block {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.filosofia--dark .filosofia__quote {
  font-family: "Montserrat", system-ui, sans-serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height: 1.18;
  color: var(--white, #fff);
  text-wrap: balance;
  margin: 0;
}
.filosofia__divider {
  display: block;
  width: 56px;
  height: 1px;
  margin: 28px auto 14px;
  background: linear-gradient(90deg, transparent 0%, var(--gold) 50%, transparent 100%);
  opacity: 0.7;
}
.filosofia__cite {
  display: block;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}
.filosofia--dark .filosofia__intro {
  max-width: 760px;
  margin: 8px auto 56px;
  color: rgba(255, 255, 255, 0.85);
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  line-height: 1.7;
  text-wrap: pretty;
}
.filosofia__cards { margin-top: 24px; }
.filosofia--dark .filosofia__card,
.filosofia--dark .filosofia__card.diferencial-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid color-mix(in oklch, var(--gold) 26%, transparent);
  border-radius: 14px;
  padding: 32px 24px;
  color: var(--white, #fff);
  transition: transform var(--ease), border-color var(--ease), background var(--ease), box-shadow var(--ease);
}
@supports not (background: color-mix(in oklch, red, blue)) {
  .filosofia--dark .filosofia__card,
  .filosofia--dark .filosofia__card.diferencial-card { border-color: rgba(190,150,99,.26); }
}
.filosofia--dark .filosofia__card:hover,
.filosofia--dark .filosofia__card:focus-within {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, 0.07);
  border-color: var(--gold);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.32);
}
.filosofia--dark .filosofia__card .diferencial-card__icon {
  color: var(--gold);
}
.filosofia--dark .filosofia__card .diferencial-card__icon svg {
  width: 44px;
  height: 44px;
  stroke: currentColor;
}
.filosofia--dark .filosofia__card .diferencial-card__title {
  color: var(--white, #fff);
  text-wrap: balance;
  margin-top: 14px;
}
.filosofia--dark .filosofia__card .diferencial-card__desc {
  color: rgba(255, 255, 255, 0.78);
  text-wrap: pretty;
}

/* ─── CTA SOBRE BIFURCAÇÃO v3.1.2 — area-card uro + tele-card whatsapp + area-card est ─── */
/* Uro/Estética usam o mesmo padrão da home (areas-2col-bicolor).               */
/* WhatsApp central destacado: translateY + scale + halo verde + pulse.        */
.cta-sobre-bifurcacao {
  position: relative;
  background:
    radial-gradient(45% 60% at 15% 10%, rgba(190,150,99,.12) 0%, rgba(190,150,99,0) 60%),
    radial-gradient(55% 65% at 90% 95%, rgba(200,98,26,.10) 0%, rgba(200,98,26,0) 60%),
    linear-gradient(160deg, var(--bg-dark, #0A1F38) 0%, #061429 100%);
  color: var(--white, #fff);
  overflow: hidden;
}
.cta-sobre-bifurcacao__inner { position: relative; z-index: 1; }
.cta-sobre-bifurcacao__header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 56px;
}
.cta-sobre-bifurcacao__eyebrow {
  color: var(--gold);
  display: inline-block;
  margin-bottom: 14px;
}
.cta-sobre-bifurcacao__title {
  color: var(--white, #fff);
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.12;
  text-wrap: balance;
  margin: 0 0 14px;
}
.cta-sobre-bifurcacao__sub {
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(1rem, 1.6vw, 1.12rem);
  line-height: 1.6;
  text-wrap: pretty;
  margin: 0;
}

/* ── Grid 3 colunas ── */
.cta-sobre-bifurcacao__grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr 1fr;
  gap: 24px;
  max-width: 1200px;
  margin-inline: auto;
  align-items: stretch;
}
.cta-sobre-bifurcacao__grid > .area-card,
.cta-sobre-bifurcacao__grid > .tele-card {
  margin: 0 !important;
}

/* ── area-card dentro do CTA: arredondar + sombra + hover ── */
.cta-sobre-bifurcacao__area {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 16px 50px rgba(15,35,57,.28);
  transition: transform .3s ease, box-shadow .3s ease;
}
.cta-sobre-bifurcacao__area:hover,
.cta-sobre-bifurcacao__area:focus-within {
  transform: translateY(-6px);
  box-shadow: 0 24px 60px rgba(15,35,57,.36);
}

/* ── WhatsApp central destacado (variante .tele-card) ── */
.cta-sobre-bifurcacao__whatsapp {
  position: relative;
  transform: translateY(-12px);
  border-color: rgba(37,211,102,.40) !important;
  box-shadow:
    0 16px 50px rgba(37,211,102,.18),
    0 4px 16px rgba(15,35,57,.10) !important;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.cta-sobre-bifurcacao__whatsapp:hover,
.cta-sobre-bifurcacao__whatsapp:focus-within {
  transform: translateY(-16px);
  border-color: rgba(37,211,102,.55) !important;
  box-shadow:
    0 24px 60px rgba(37,211,102,.26),
    0 8px 24px rgba(15,35,57,.18) !important;
}
@media (min-width: 1024px) {
  .cta-sobre-bifurcacao__whatsapp { transform: translateY(-12px) scale(1.02); }
  .cta-sobre-bifurcacao__whatsapp:hover,
  .cta-sobre-bifurcacao__whatsapp:focus-within { transform: translateY(-16px) scale(1.02); }
}

/* ── Tele-card variante WhatsApp ── */
.tele-card__badge--live {
  background: rgba(37,211,102,.12);
  color: #1f6f24;
  border-color: rgba(37,211,102,.35);
}
.tele-card__icon-wrap--whatsapp {
  background: radial-gradient(circle, rgba(37,211,102,.22) 0%, transparent 70%);
}
.tele-card__icon-wrap--whatsapp::after {
  border-color: rgba(37,211,102,.32);
}
.tele-card__icon--whatsapp {
  width: 40px; height: 40px;
  color: #25D366;
  stroke: none !important;
}
.tele-card__divider--whatsapp { color: #1FAE56; }
.tele-card__divider--whatsapp::before,
.tele-card__divider--whatsapp::after { background: rgba(37,211,102,.28); }
.tele-card__title em { color: var(--accent, #C8621A); font-style: italic; }
.cta-sobre-bifurcacao__whatsapp .tele-card__title em { color: #1FAE56; }
.tele-card__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  background: rgba(37,211,102,.15);
  border-radius: 50%;
  color: #25D366;
  font-weight: 700;
  font-size: .78rem;
  flex-shrink: 0;
}
.tele-card__step-text { flex: 1; padding-top: 2px; }
.tele-card__cta-wrap {
  width: 100%;
  margin-top: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding-top: 18px;
}
.tele-card__btn,
.btn--whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  background: #25D366;
  color: #052e16;
  border: 0;
  font-family: "Roboto", system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: .95rem;
  padding: 14px 22px;
  border-radius: 12px;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(37,211,102,.32);
  transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.tele-card__btn svg,
.btn--whatsapp svg { flex-shrink: 0; }
.tele-card__btn:hover,
.tele-card__btn:focus-visible,
.btn--whatsapp:hover,
.btn--whatsapp:focus-visible {
  background: #1FAE56;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(37,211,102,.42);
  color: #052e16;
}
.tele-card__fallback {
  margin: 0;
  text-align: center;
  font-size: .82rem;
}
.tele-card__fallback a {
  color: #5A5550;
  text-decoration: none;
  border-bottom: 1px dotted rgba(90,85,80,.35);
  padding-bottom: 1px;
  transition: color .25s ease, border-color .25s ease;
}
.tele-card__fallback a:hover,
.tele-card__fallback a:focus-visible {
  color: var(--gold, #BE9663);
  border-color: var(--gold, #BE9663);
}

/* ── Mobile empilha — WhatsApp PRIMEIRO ── */
@media (max-width: 900px) {
  .cta-sobre-bifurcacao__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .cta-sobre-bifurcacao__whatsapp {
    order: -1;
    transform: none !important;
  }
  .cta-sobre-bifurcacao__whatsapp:hover,
  .cta-sobre-bifurcacao__whatsapp:focus-within { transform: none !important; }
}
@media (max-width: 640px) {
  .cta-sobre-bifurcacao { padding: 64px 20px !important; }
  .cta-sobre-bifurcacao__area { padding: 36px 24px !important; }
}

/* ── FADE-IN STAGGER global v3.1.2 (cards múltiplos) ── */
.cta-sobre-bifurcacao__grid > .fade-in:nth-child(1) { transition-delay: 0ms; }
.cta-sobre-bifurcacao__grid > .fade-in:nth-child(2) { transition-delay: 120ms; }
.cta-sobre-bifurcacao__grid > .fade-in:nth-child(3) { transition-delay: 240ms; }
.areas-grid > .area-card:nth-child(1) { transition-delay: 0ms; }
.areas-grid > .area-card:nth-child(2) { transition-delay: 120ms; }
.bio-gallery > .fade-in:nth-child(1) { transition-delay: 0ms; }
.bio-gallery > .fade-in:nth-child(2) { transition-delay: 100ms; }
.bio-gallery > .fade-in:nth-child(3) { transition-delay: 200ms; }
.filosofia__cards > .fade-in:nth-child(1) { transition-delay: 0ms; }
.filosofia__cards > .fade-in:nth-child(2) { transition-delay: 120ms; }
.filosofia__cards > .fade-in:nth-child(3) { transition-delay: 240ms; }
.diferenciais > .fade-in:nth-child(1) { transition-delay: 0ms; }
.diferenciais > .fade-in:nth-child(2) { transition-delay: 100ms; }
.diferenciais > .fade-in:nth-child(3) { transition-delay: 200ms; }
.diferenciais > .fade-in:nth-child(4) { transition-delay: 300ms; }
.diferenciais > .fade-in:nth-child(5) { transition-delay: 400ms; }
.diferenciais > .fade-in:nth-child(6) { transition-delay: 500ms; }

/* ── Hover refinado global (cards que ainda não têm) ── */
.unidade-card,
.blog-card {
  transition: transform .3s ease, box-shadow .3s ease;
}
.unidade-card:hover,
.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(15,35,57,.15);
}
.filosofia__card { transition: transform .3s ease, box-shadow .3s ease, background .3s ease; }
.filosofia__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(0,0,0,.28);
}
.tele-card { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.bio-gallery__item { transition: transform .3s ease, box-shadow .3s ease; }
.bio-gallery__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(15,35,57,.12);
}

/* ── prefers-reduced-motion: kill fade-in transforms ── */
@media (prefers-reduced-motion: reduce) {
  .fade-in,
  .fade-in.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .cta-sobre-bifurcacao__whatsapp,
  .cta-sobre-bifurcacao__area,
  .tele-card,
  .area-card,
  .unidade-card,
  .filosofia__card,
  .blog-card,
  .bio-gallery__item { transition: none !important; transform: none !important; }
}

/* ─── Polish global v3.1.0 — especializações grid ─── */
.diferencial-card .diferencial-card__title,
.diferencial-card__title { text-wrap: balance; }
a:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ─── Responsive (≤900px empilha tudo) ─── */
@media (max-width: 900px) {
  .bio-gallery {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 0 24px;
  }
  .bio-gallery__item { aspect-ratio: 16 / 10; }
  .bio-gallery__icon { width: 64px; height: 64px; }

  .filosofia__figure { padding: 0 32px; }
  .filosofia__quote-mark { font-size: clamp(3rem, 14vw, 5rem); }
  .filosofia__quote-mark--left { top: -8px; }
  .filosofia__quote-mark--right { bottom: -28px; }

  .cta-sobre-bifurcacao__grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  /* No mobile: WhatsApp PRIMEIRO, sem elevação (sem destaque por translate quando empilhado) */
  .cta-sobre-bifurcacao__card--whatsapp { order: -1; transform: none; }
  .cta-sobre-bifurcacao__card--whatsapp:hover,
  .cta-sobre-bifurcacao__card--whatsapp:focus-within { transform: none; }
  .cta-sobre-bifurcacao__card--service:nth-of-type(1) { order: 1; }
  .cta-sobre-bifurcacao__card--service:nth-of-type(3) { order: 2; }
}

@media (max-width: 640px) {
  .cta-sobre-bifurcacao { padding: 64px 20px !important; }
  .filosofia--dark { padding: 80px 20px !important; }
  .cta-sobre-bifurcacao__card { padding: 32px 24px; }
  .cta-sobre-bifurcacao__card-icon-wrap { width: 76px; height: 76px; }
  .cta-sobre-bifurcacao__card-icon { width: 32px; height: 32px; }
}
/* ═══ end v3.1.0 SOBRE refinements ═══ */

/* ═══════════════════════════════════════════════════
   v3.1.3 — Sobre fixes
   1) WhatsApp btn (Sobre bifurcacao): cor preta + ícone único
   2) Animações reais: hero keyframes + stagger expandido
   ═══════════════════════════════════════════════════ */

/* — ISSUE 2: botão WhatsApp do CTA Sobre Bifurcação → texto + ícone PRETOS — */
.cta-sobre-bifurcacao__whatsapp .btn--whatsapp,
.cta-sobre-bifurcacao__whatsapp .wp-block-button.btn--whatsapp > .wp-block-button__link,
.cta-sobre-bifurcacao__whatsapp a.btn--whatsapp {
  color: #000 !important;
  font-weight: 700 !important;
}
/* Override do ícone SVG WhatsApp para preto (data-URI com fill='%23000000') */
.cta-sobre-bifurcacao__whatsapp .btn--whatsapp::before,
.cta-sobre-bifurcacao__whatsapp a.btn--whatsapp::before,
.cta-sobre-bifurcacao__whatsapp .wp-block-button.btn--whatsapp > .wp-block-button__link::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000000' width='20' height='20'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893A11.821 11.821 0 0 0 20.464 3.488'/%3E%3C/svg%3E") !important;
  width: 20px !important;
  height: 20px !important;
}

/* — ISSUE 3d: Hero da Sobre — animação de entrada por keyframes (não scroll) — */
.hero-sobre__copy,
.hero-sobre__photo {
  opacity: 0;
  animation: hero-fade-in .8s cubic-bezier(.4,0,.2,1) forwards;
}
.hero-sobre__copy  { animation-delay: .15s; }
.hero-sobre__photo { animation-delay: .35s; }

@keyframes hero-fade-in {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* — ISSUE 3c: Stagger expandido para todas as seções da Sobre — */
/* Bio timeline (5 itens) */
.bio-timeline > .fade-in:nth-child(1) { transition-delay:   0ms; }
.bio-timeline > .fade-in:nth-child(2) { transition-delay: 100ms; }
.bio-timeline > .fade-in:nth-child(3) { transition-delay: 200ms; }
.bio-timeline > .fade-in:nth-child(4) { transition-delay: 300ms; }
.bio-timeline > .fade-in:nth-child(5) { transition-delay: 400ms; }

/* Diferenciais 3-col (filosofia + especializações) */
.diferenciais.diferenciais--3col > .fade-in:nth-child(1) { transition-delay:   0ms; }
.diferenciais.diferenciais--3col > .fade-in:nth-child(2) { transition-delay: 120ms; }
.diferenciais.diferenciais--3col > .fade-in:nth-child(3) { transition-delay: 240ms; }
.diferenciais.diferenciais--3col > .fade-in:nth-child(4) { transition-delay: 360ms; }
.diferenciais.diferenciais--3col > .fade-in:nth-child(5) { transition-delay: 480ms; }
.diferenciais.diferenciais--3col > .fade-in:nth-child(6) { transition-delay: 600ms; }

/* Bio content paragraphs (stagger leve) */
.bio-content > .fade-in:nth-child(1)  { transition-delay:   0ms; }
.bio-content > .fade-in:nth-child(2)  { transition-delay:  60ms; }
.bio-content > .fade-in:nth-child(3)  { transition-delay: 120ms; }
.bio-content > .fade-in:nth-child(4)  { transition-delay: 180ms; }
.bio-content > .fade-in:nth-child(5)  { transition-delay: 240ms; }
.bio-content > .fade-in:nth-child(6)  { transition-delay: 300ms; }

/* Reduced motion — também silencia hero keyframes */
@media (prefers-reduced-motion: reduce) {
  .hero-sobre__copy,
  .hero-sobre__photo {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
/* ═══ end v3.1.3 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v3.1.4 — Page Contato refatorada
   Canais 3-col (channel-card-v2) + formulário em card centralizado
   ═══════════════════════════════════════════════════════════════ */

/* ── Section head: lede paragraph ── */
.section-lede {
  max-width: 620px;
  margin: 18px auto 0;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: clamp(1rem, 1.4vw, 1.08rem);
  line-height: 1.7;
  text-wrap: pretty;
}

/* ── Canais 3-col grid ── */
.canais-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
@media (max-width: 960px) {
  .canais-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ── Channel Card v2 (estilo tele-card refinado) ── */
.channel-card-v2 {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  background: linear-gradient(180deg, #fff 0%, #faf9f7 100%);
  border: 1px solid rgba(190, 150, 99, 0.20);
  border-radius: 20px;
  padding: 40px 28px 32px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 12px 40px rgba(15, 35, 57, 0.06), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.4s ease, border-color 0.4s ease;
  overflow: hidden;
}
.channel-card-v2:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 60px rgba(15, 35, 57, 0.12), inset 0 0 0 1px rgba(255, 255, 255, 0.6);
  border-color: rgba(190, 150, 99, 0.35);
}
.channel-card-v2:focus-visible {
  outline: 3px solid var(--wp--preset--color--ouro, #BE9663);
  outline-offset: 4px;
}

/* Badge (chip topo) */
.channel-card-v2__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(67, 160, 71, 0.12);
  color: #1f6f24;
  border: 1px solid rgba(67, 160, 71, 0.35);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 22px;
}
.channel-card-v2__badge--gold {
  background: rgba(190, 150, 99, 0.14);
  color: #7a5a2a;
  border-color: rgba(190, 150, 99, 0.40);
}
.channel-card-v2__badge--purple {
  background: rgba(147, 51, 234, 0.10);
  color: #6b21a8;
  border-color: rgba(147, 51, 234, 0.30);
}
.channel-card-v2__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55);
  animation: drl-pulse-dot 2s ease-out infinite;
}
@keyframes drl-pulse-dot {
  0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55); }
  70%  { box-shadow: 0 0 0 8px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* Icon wrap circular */
.channel-card-v2__icon-wrap {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(190, 150, 99, 0.22) 0%, transparent 70%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  position: relative;
  color: var(--wp--preset--color--ouro, #BE9663);
}
.channel-card-v2__icon-wrap::after {
  content: '';
  position: absolute;
  inset: 11px;
  border: 1px solid rgba(190, 150, 99, 0.30);
  border-radius: 50%;
}
.channel-card-v2--whatsapp .channel-card-v2__icon-wrap {
  background: radial-gradient(circle, rgba(37, 211, 102, 0.22) 0%, transparent 70%);
  color: #128C7E;
}
.channel-card-v2--whatsapp .channel-card-v2__icon-wrap::after {
  border-color: rgba(37, 211, 102, 0.32);
}
.channel-card-v2--instagram .channel-card-v2__icon-wrap {
  background: radial-gradient(circle, rgba(147, 51, 234, 0.18) 0%, transparent 70%);
  color: #9333ea;
}
.channel-card-v2--instagram .channel-card-v2__icon-wrap::after {
  border-color: rgba(147, 51, 234, 0.28);
}

/* Eyebrow */
.channel-card-v2__eyebrow {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ouro, #BE9663);
  margin-bottom: 8px;
}

/* Title (valor destacado: telefone, @user) — DM Sans para dados */
.channel-card-v2__title {
  font-family: "Roboto", system-ui, -apple-system, sans-serif;
  font-size: clamp(1.2rem, 2.2vw, 1.5rem);
  font-weight: 500;
  line-height: 1.2;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 12px;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

/* Description */
.channel-card-v2__desc {
  font-size: 0.92rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  line-height: 1.65;
  margin: 0 0 24px;
  max-width: 280px;
}
.channel-card-v2__desc em {
  font-style: normal;
  color: var(--wp--preset--color--accent, #C8621A);
  font-weight: 600;
}

/* CTA inline (não é botão pleno) */
.channel-card-v2__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--wp--preset--color--secondary, #0A1F38);
  color: #fff;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: background 0.3s ease, transform 0.3s ease;
}
.channel-card-v2__cta svg {
  transition: transform 0.3s ease;
}
.channel-card-v2:hover .channel-card-v2__cta { background: #061429; }
.channel-card-v2:hover .channel-card-v2__cta svg { transform: translateX(3px); }

/* CTA por variante */
.channel-card-v2--whatsapp .channel-card-v2__cta { background: #128C7E; }
.channel-card-v2--whatsapp:hover .channel-card-v2__cta { background: #075E54; }
.channel-card-v2--instagram .channel-card-v2__cta {
  background: linear-gradient(135deg, #833AB4 0%, #C13584 50%, #E1306C 100%);
}
.channel-card-v2--instagram:hover .channel-card-v2__cta {
  background: linear-gradient(135deg, #6b2f93 0%, #a52a6b 50%, #b81f53 100%);
}

@media (max-width: 720px) {
  .channel-card-v2 { padding: 32px 22px 26px; }
  .channel-card-v2__icon-wrap { width: 72px; height: 72px; }
}

/* ═══════════════════════════════════════════════════════════════
   Contato — formulário em card refinado centralizado
   ═══════════════════════════════════════════════════════════════ */
.contato-form-card {
  max-width: 760px;
  margin: 0 auto;
  background: linear-gradient(180deg, #fff 0%, #faf9f7 100%);
  border: 1px solid rgba(190, 150, 99, 0.22);
  border-radius: 24px;
  padding: 44px 44px 40px;
  box-shadow: 0 20px 60px rgba(15, 35, 57, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.contato-form-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  padding: 1px;
  background: linear-gradient(135deg, rgba(190, 150, 99, 0.35) 0%, transparent 40%, transparent 60%, rgba(190, 150, 99, 0.18) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}
.contato-form-card__head {
  display: flex;
  justify-content: center;
  margin-bottom: 6px;
}
.contato-form-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(37, 211, 102, 0.10);
  color: #1f6f24;
  border: 1px solid rgba(37, 211, 102, 0.30);
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.contato-form-card__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #25D366;
  animation: drl-pulse-dot 2s ease-out infinite;
}
.form__optional {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-weight: 400;
  font-size: 0.82em;
}
.contato-form-card__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--wp--preset--color--accent, #C8621A);
  color: #fff;
  font-weight: 700;
  padding: 14px 28px;
  font-size: 0.98rem;
  letter-spacing: 0.02em;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.contato-form-card__submit:hover {
  background: #9c4b14;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(200, 98, 26, 0.30);
}
.contato-form-card__submit:focus-visible {
  outline: 3px solid var(--wp--preset--color--ouro, #BE9663);
  outline-offset: 3px;
}
.contato-form-card__legal {
  margin: 4px 0 0;
  text-align: center;
  font-size: 0.78rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  line-height: 1.5;
}
@media (max-width: 720px) {
  .contato-form-card { padding: 32px 22px 28px; border-radius: 18px; }
}

/* ═══ end v3.1.4 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v3.1.5 — Page Contato: canais + formulário em 2 colunas (lado a lado)
   Canais empilhados em row layout (icon esquerda + texto direita)
   ═══════════════════════════════════════════════════════════════ */

/* ── Wrapper 2-col ── */
.contato-2col {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 48px;
  align-items: start;
}
@media (max-width: 1024px) {
  .contato-2col { grid-template-columns: 1fr; gap: 56px; }
}

.contato-2col__channels { display: flex; flex-direction: column; gap: 24px; }
.contato-2col__form { position: relative; }

/* Section head left-aligned (sobreescreve text-align: center quando dentro do 2col) */
.contato-2col .section-head--left {
  text-align: left;
  margin: 0 0 8px;
}
.contato-2col .section-head--left .section-label,
.contato-2col .section-head--left .section-title,
.contato-2col .section-head--left .section-lede {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}
.contato-2col .section-head--left .section-lede {
  max-width: none;
}

/* ── Canais empilhados ── */
.canais-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ── Channel Card v2 — variante ROW (horizontal) ── */
/* Channel card row — refinado e suave: padding maior, tipografia mais leve,
   sombra discreta, borda menos saturada. */
.channel-card-v2--row {
  flex-direction: row;
  align-items: center;
  text-align: left;
  padding: 26px 26px 26px 28px;
  gap: 22px;
  border-radius: 18px;
  border-color: rgba(190, 150, 99, 0.14);
  box-shadow: 0 6px 22px rgba(15, 35, 57, 0.04), inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}
.channel-card-v2--row:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(15, 35, 57, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  border-color: rgba(190, 150, 99, 0.26);
}
.channel-card-v2--row .channel-card-v2__icon-wrap {
  width: 56px;
  height: 56px;
  margin: 0;
  flex-shrink: 0;
}
.channel-card-v2--row .channel-card-v2__icon-wrap::after {
  inset: 7px;
}
.channel-card-v2--row .channel-card-v2__icon {
  width: 24px;
  height: 24px;
}
.channel-card-v2--row .channel-card-v2__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.channel-card-v2--row .channel-card-v2__top {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.channel-card-v2--row .channel-card-v2__eyebrow {
  margin: 0;
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  font-weight: 600;
  color: var(--wp--preset--color--ouro, #BE9663);
}
.channel-card-v2--row .channel-card-v2__badge {
  margin: 0;
  padding: 3px 9px;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  font-weight: 500;
}
/* Título do valor (telefone/@user) — Cormorant para suavizar a "rigidez" do DM Sans
   e remover a impressão de "robusto demais". */
.channel-card-v2--row .channel-card-v2__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.25rem, 1.8vw, 1.5rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.18;
  margin: 0;
  /* preserva alinhamento de dígitos */
  font-variant-numeric: tabular-nums;
}
.channel-card-v2--row .channel-card-v2__desc {
  font-size: 0.84rem;
  margin: 4px 0 0;
  max-width: none;
  line-height: 1.6;
  color: var(--wp--preset--color--texto-leve, #5A5550);
}
.channel-card-v2--row .channel-card-v2__desc em {
  font-style: italic;
  color: var(--wp--preset--color--accent, #C8621A);
  font-weight: 500;
}
.channel-card-v2--row .channel-card-v2__arrow {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--wp--preset--color--secondary, #0A1F38);
  color: #fff;
  transition: background 0.3s ease, transform 0.3s ease;
}
.channel-card-v2--row:hover .channel-card-v2__arrow {
  transform: translateX(4px);
  background: #061429;
}
.channel-card-v2--row.channel-card-v2--whatsapp .channel-card-v2__arrow { background: #128C7E; }
.channel-card-v2--row.channel-card-v2--whatsapp:hover .channel-card-v2__arrow { background: #075E54; }
.channel-card-v2--row.channel-card-v2--instagram .channel-card-v2__arrow {
  background: linear-gradient(135deg, #833AB4 0%, #C13584 50%, #E1306C 100%);
}
.channel-card-v2--row.channel-card-v2--instagram:hover .channel-card-v2__arrow {
  background: linear-gradient(135deg, #6b2f93 0%, #a52a6b 50%, #b81f53 100%);
}

@media (max-width: 480px) {
  .channel-card-v2--row { padding: 18px; gap: 14px; }
  .channel-card-v2--row .channel-card-v2__icon-wrap { width: 52px; height: 52px; }
  .channel-card-v2--row .channel-card-v2__title { font-size: 1.1rem; }
  .channel-card-v2--row .channel-card-v2__arrow { width: 30px; height: 30px; }
}

/* ── Form card — variante compact (header interno + padding menor) ── */
.contato-form-card--compact {
  max-width: none;
  padding: 36px 36px 32px;
  gap: 14px;
}
.contato-form-card__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.5rem, 2.5vw, 1.85rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 8px 0 0;
  letter-spacing: -0.01em;
}
.contato-form-card__title strong {
  font-weight: 400;
  color: var(--wp--preset--color--accent, #C8621A);
  font-style: italic;
}
.contato-form-card--compact .contato-form-card__head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 12px;
}
.contato-form-card--compact .contato-form-card__head .contato-form-card__badge {
  margin-top: 6px;
}

@media (max-width: 720px) {
  .contato-form-card--compact { padding: 28px 22px 24px; }
}

/* ═══ end v3.1.5 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v3.1.7 — Page Blog refatorada
   Hero compacto com busca + tabs por categoria + featured horizontal + spotlight grid
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero compacto ── */
.blog-listing-hero {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.blog-listing-hero__inner {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  z-index: 1;
}
.blog-listing-hero__label {
  display: inline-block;
  margin-bottom: 14px;
}
.blog-listing-hero__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 16px;
  text-wrap: balance;
}
.blog-listing-hero__title strong {
  font-weight: 400;
  color: var(--wp--preset--color--accent, #C8621A);
  font-style: italic;
}
.blog-listing-hero__lede {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: clamp(1rem, 1.6vw, 1.12rem);
  line-height: 1.65;
  text-wrap: pretty;
  margin: 0 auto 32px;
  max-width: 640px;
}

/* Decorações orgânicas */
.blog-listing-hero__deco {
  position: absolute;
  pointer-events: none;
  z-index: 0;
}
.blog-listing-hero__deco--circle {
  width: 22px; height: 22px;
  border: 2.5px solid var(--wp--preset--color--ouro, #BE9663);
  opacity: 0.45;
  border-radius: 50%;
  top: 8%;
  left: 18%;
}
.blog-listing-hero__deco--cross {
  color: rgba(190, 150, 99, 0.32);
  top: 6%;
  left: 8%;
}
.blog-listing-hero__deco--square {
  width: 26px; height: 26px;
  background: rgba(200, 98, 26, 0.16);
  border-radius: 4px;
  top: 14%;
  right: 10%;
  transform: rotate(-8deg);
}
.blog-listing-hero__deco--dot {
  width: 16px; height: 16px;
  background: rgba(190, 150, 99, 0.32);
  border-radius: 50%;
  bottom: 22%;
  right: 16%;
}
@media (max-width: 760px) {
  .blog-listing-hero__deco { display: none; }
}

/* ── Search bar ── */
.blog-search {
  position: relative;
  max-width: 520px;
  margin: 0 auto;
}
.blog-search__icon {
  position: absolute;
  top: 50%;
  left: 18px;
  transform: translateY(-50%);
  color: var(--wp--preset--color--texto-leve, #5A5550);
  pointer-events: none;
}
.blog-search__input {
  width: 100%;
  padding: 14px 48px 14px 50px;
  border: 1px solid rgba(15, 35, 57, 0.10);
  border-radius: 12px;
  background: #fff;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.95rem;
  color: var(--wp--preset--color--secondary, #0A1F38);
  box-shadow: 0 6px 20px rgba(15, 35, 57, 0.05);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
  -webkit-appearance: none;
}
.blog-search__input::placeholder {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  opacity: 0.7;
}
.blog-search__input:focus {
  outline: none;
  border-color: var(--wp--preset--color--ouro, #BE9663);
  box-shadow: 0 6px 20px rgba(15, 35, 57, 0.08), 0 0 0 3px rgba(190, 150, 99, 0.18);
}
.blog-search__clear {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(15, 35, 57, 0.06);
  color: var(--wp--preset--color--secondary, #0A1F38);
  border: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease;
}
.blog-search__clear:hover { background: rgba(15, 35, 57, 0.12); }
.blog-search__clear[hidden] { display: none; }

/* ── Tabs ── */
.blog-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  align-items: center;
  border-bottom: 1px solid rgba(15, 35, 57, 0.08);
  padding-bottom: 0;
  margin: 0 auto;
  max-width: 1200px;
}
.blog-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  background: transparent;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  border: none;
  border-bottom: 2px solid transparent;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.005em;
  cursor: pointer;
  transition: color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
  margin-bottom: -1px;
}
.blog-tab__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
  opacity: 0.7;
}
.blog-tab__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  background: rgba(15, 35, 57, 0.06);
  color: var(--wp--preset--color--texto-leve, #5A5550);
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
}
.blog-tab__count:empty { display: none; }
.blog-tab:hover {
  color: var(--wp--preset--color--secondary, #0A1F38);
}
.blog-tab.is-active {
  color: var(--wp--preset--color--secondary, #0A1F38);
  border-bottom-color: var(--wp--preset--color--ouro, #BE9663);
  font-weight: 600;
}
.blog-tab.is-active .blog-tab__icon { opacity: 1; color: var(--wp--preset--color--ouro, #BE9663); }
.blog-tab.is-active .blog-tab__count {
  background: var(--wp--preset--color--ouro, #BE9663);
  color: #fff;
}
.blog-tab:focus-visible {
  outline: 2px solid var(--wp--preset--color--ouro, #BE9663);
  outline-offset: 4px;
  border-radius: 4px;
}
@media (max-width: 720px) {
  .blog-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    justify-content: flex-start;
    padding-bottom: 4px;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .blog-tab { font-size: 0.82rem; padding: 10px 14px; }
}

/* ── Blog list wrapper ── */
.blog-list { display: flex; flex-direction: column; gap: 56px; }

/* ── Featured (horizontal) ── */
.blog-featured {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 0;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(15, 35, 57, 0.08), inset 0 0 0 1px rgba(190, 150, 99, 0.18);
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.4s ease;
}
.blog-featured:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 72px rgba(15, 35, 57, 0.14), inset 0 0 0 1px rgba(190, 150, 99, 0.28);
}
.blog-featured__body {
  padding: clamp(32px, 4vw, 56px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
}
.blog-featured__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: balance;
  color: var(--wp--preset--color--secondary, #0A1F38);
}
.blog-featured__title a { color: inherit; text-decoration: none; transition: color 0.3s ease; }
.blog-featured__title a:hover { color: var(--wp--preset--color--accent, #C8621A); }
.blog-featured__excerpt {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: 1rem;
  line-height: 1.65;
  text-wrap: pretty;
  margin: 0;
}
.blog-featured__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.blog-meta-divider {
  width: 4px; height: 4px;
  background: rgba(15, 35, 57, 0.18);
  border-radius: 50%;
}
.blog-meta-time {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: 0.85rem;
  font-weight: 500;
}
.blog-featured__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  padding: 12px 22px;
  border-radius: 999px;
  background: var(--wp--preset--color--secondary, #0A1F38);
  color: #fff;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.3s ease, transform 0.3s ease;
  margin-top: 6px;
}
.blog-featured__cta svg { transition: transform 0.3s ease; }
.blog-featured__cta:hover { background: #061429; }
.blog-featured__cta:hover svg { transform: translateX(3px); }

.blog-featured__media {
  position: relative;
  min-height: 320px;
  background: #f5f4f2;
  overflow: hidden;
}
.blog-featured__media img,
.blog-featured__media svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 900px) {
  .blog-featured { grid-template-columns: 1fr; }
  .blog-featured__media { min-height: 240px; order: -1; }
}

/* ── Spotlight section head ── */
.blog-spotlight__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}
.blog-spotlight__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(190, 150, 99, 0.16);
  color: var(--wp--preset--color--ouro, #BE9663);
}
.blog-spotlight__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.6rem, 2.6vw, 2rem);
  font-weight: 400;
  margin: 0;
  color: var(--wp--preset--color--secondary, #0A1F38);
  letter-spacing: -0.01em;
}

/* ── Grid 3-col ── */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 960px) {
  .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .blog-grid { grid-template-columns: 1fr; }
}

/* ── Card v2 (spotlight) ── */
.blog-card-v2 {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 8px 24px rgba(15, 35, 57, 0.06), inset 0 0 0 1px rgba(15, 35, 57, 0.04);
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.4s ease;
}
.blog-card-v2:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 44px rgba(15, 35, 57, 0.12), inset 0 0 0 1px rgba(190, 150, 99, 0.20);
}
.blog-card-v2:focus-visible {
  outline: 3px solid var(--wp--preset--color--ouro, #BE9663);
  outline-offset: 3px;
}
.blog-card-v2__media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  background: #f5f4f2;
  overflow: hidden;
}
.blog-card-v2__media img,
.blog-card-v2__media svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.blog-card-v2:hover .blog-card-v2__media img,
.blog-card-v2:hover .blog-card-v2__media svg { transform: scale(1.04); }

.blog-card-v2__body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}
.blog-card-v2__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.25;
  margin: 0;
  color: var(--wp--preset--color--secondary, #0A1F38);
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.blog-card-v2__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: auto;
}

/* ── Chips por categoria ── */
.blog-chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 6px;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.blog-chip--sm { padding: 3px 9px; font-size: 0.66rem; }
.blog-chip--prevencao         { background: rgba(22, 163, 74, 0.10);  color: #15803d; }
.blog-chip--oncologia         { background: rgba(10, 31, 56, 0.08);   color: #0A1F38; }
.blog-chip--urologia          { background: rgba(200, 98, 26, 0.12);  color: #9c4b14; }
.blog-chip--estetica-intima   { background: rgba(190, 150, 99, 0.18); color: #7a5a2a; }
.blog-chip--cirurgia-robotica { background: rgba(14, 77, 110, 0.12);  color: #073449; }
.blog-chip--default           { background: rgba(15, 35, 57, 0.06);   color: #0A1F38; }

/* ── Empty state ── */
.blog-empty {
  text-align: center;
  padding: 64px 32px;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  border: 1px dashed rgba(15, 35, 57, 0.12);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.5);
}
.blog-empty svg { color: var(--wp--preset--color--ouro, #BE9663); opacity: 0.5; margin-bottom: 12px; }
.blog-empty__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: 1.4rem;
  font-weight: 400;
  margin: 0 0 6px;
  color: var(--wp--preset--color--secondary, #0A1F38);
}
.blog-empty__desc { margin: 0; font-size: 0.95rem; }

/* ── State: filter/search ativo escondendo cards ── */
.blog-card-v2.is-hidden,
.blog-featured.is-hidden { display: none; }
.blog-spotlight.is-empty { display: none; }
.blog-featured.is-empty { display: none; }

/* ═══ end v3.1.7 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v3.1.8 — Documento legal (Política de Privacidade)
   Hero + sumário com âncoras + prose elegante + box DPO
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero ── */
.legal-hero {
  position: relative;
  overflow: hidden;
  text-align: center;
}
.legal-hero__inner {
  position: relative;
  max-width: 780px;
  margin: 0 auto;
  z-index: 1;
}
.legal-hero__deco {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(190, 150, 99, 0.16);
  color: var(--wp--preset--color--ouro, #BE9663);
  margin-bottom: 22px;
}
.legal-hero__label {
  display: inline-block;
  margin-bottom: 14px;
}
.legal-hero__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 16px;
  text-wrap: balance;
}
.legal-hero__title strong {
  font-weight: 400;
  color: var(--wp--preset--color--accent, #C8621A);
  font-style: italic;
}
.legal-hero__lede {
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  line-height: 1.7;
  text-wrap: pretty;
  margin: 0 auto 28px;
  max-width: 680px;
}
.legal-hero__meta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.legal-hero__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  background: #fff;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  border: 1px solid rgba(15, 35, 57, 0.08);
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 500;
}
.legal-hero__chip svg { color: var(--wp--preset--color--ouro, #BE9663); }
.legal-hero__chip--check {
  background: rgba(22, 163, 74, 0.08);
  color: #15803d;
  border-color: rgba(22, 163, 74, 0.25);
}
.legal-hero__chip--check svg { color: #15803d; }

/* ── Document wrapper ── */
.legal-document {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
  align-items: start;
}
@media (max-width: 900px) {
  .legal-document {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ── TOC sticky ── */
.legal-toc {
  position: sticky;
  top: 100px;
  background: linear-gradient(180deg, #fff 0%, #faf9f7 100%);
  border: 1px solid rgba(190, 150, 99, 0.20);
  border-radius: 16px;
  padding: 22px 22px 20px;
  box-shadow: 0 8px 24px rgba(15, 35, 57, 0.05);
}
@media (max-width: 900px) {
  .legal-toc { position: static; }
}
.legal-toc__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(190, 150, 99, 0.20);
}
.legal-toc__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(190, 150, 99, 0.15);
  color: var(--wp--preset--color--ouro, #BE9663);
}
.legal-toc__title {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ouro, #BE9663);
  margin: 0;
}
.legal-toc__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.legal-toc__item { margin: 0; }
.legal-toc__link {
  display: block;
  padding: 8px 10px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--wp--preset--color--secondary, #0A1F38);
  transition: background 0.2s ease, color 0.2s ease;
}
.legal-toc__name {
  display: block;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.35;
}
.legal-toc__hint {
  display: block;
  font-size: 0.72rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  margin-top: 2px;
  line-height: 1.35;
}
.legal-toc__link:hover {
  background: rgba(190, 150, 99, 0.10);
}
.legal-toc__link:hover .legal-toc__name {
  color: var(--wp--preset--color--accent, #C8621A);
}
.legal-toc__link:focus-visible {
  outline: 2px solid var(--wp--preset--color--ouro, #BE9663);
  outline-offset: 2px;
}

/* ── Prose ── */
.legal-prose {
  min-width: 0;
  color: var(--wp--preset--color--texto, #2A2723);
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.75;
}
.legal-section {
  /* o recuo do sticky agora vem do scroll-padding-top global; um
     scroll-margin aqui somaria em cima dele e pararia longe demais */
  margin-bottom: 48px;
  /* O curinga `[class*="-section"]` (ritmo vertical entre seções de página
     inteira, lá em cima) pegava a `.legal-section` pelo nome e dava a cada
     TÓPICO do documento um padding-block de até 96px. Entre o fim de um tópico
     e o título do próximo davam 184px (96 + 48 de margin + 40 de padding).
     Aqui zeramos: o respiro entre tópicos passa a ser margin + padding = 88px,
     com a linha divisória no meio. */
  padding-block: 0;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(15, 35, 57, 0.06);
}
.legal-section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}
.legal-section h2 {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.5rem, 2.6vw, 1.85rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 18px;
  text-wrap: balance;
}
.legal-section p {
  margin: 0 0 16px;
  text-wrap: pretty;
}
.legal-section p:last-child { margin-bottom: 0; }
.legal-section ul {
  margin: 0 0 16px;
  padding-left: 0;
  list-style: none;
}
.legal-section ul li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 10px;
  text-wrap: pretty;
}
.legal-section ul li::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 12px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--wp--preset--color--ouro, #BE9663);
}
.legal-section strong {
  color: var(--wp--preset--color--secondary, #0A1F38);
  font-weight: 600;
}
.legal-section a {
  color: var(--wp--preset--color--accent, #C8621A);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.legal-section a:hover {
  color: #9c4b14;
}

/* ── Contact / DPO Box ── */
.legal-contact-box {
  margin: 48px 0 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 28px;
  padding: 36px 36px 32px;
  background: linear-gradient(135deg, var(--wp--preset--color--secondary, #0A1F38) 0%, #061429 100%);
  color: #fff;
  border-radius: 24px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(15, 35, 57, 0.18);
}
/* Variante standalone: card é irmão de .legal-document (não filho).
   Faz o sticky do TOC parar antes de chegar aqui — sem overlap. */
.legal-contact-box--standalone { margin-top: 56px; }
.legal-contact-box::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(40% 60% at 100% 0%, rgba(190, 150, 99, 0.16) 0%, transparent 60%),
    radial-gradient(50% 70% at 0% 100%, rgba(200, 98, 26, 0.10) 0%, transparent 60%);
  pointer-events: none;
}
.legal-contact-box > * { position: relative; z-index: 1; }
.legal-contact-box__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(190, 150, 99, 0.20);
  color: var(--wp--preset--color--ouro, #BE9663);
  flex-shrink: 0;
}
.legal-contact-box__body { display: flex; flex-direction: column; gap: 10px; }
.legal-contact-box .section-label { color: rgba(190, 150, 99, 0.95); }
.legal-contact-box__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.6rem, 2.6vw, 2rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0;
  color: #fff;
}
.legal-contact-box__title strong {
  font-weight: 400;
  font-style: italic;
  color: var(--wp--preset--color--ouro, #BE9663);
}
.legal-contact-box__desc {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.96rem;
  line-height: 1.6;
  margin: 0;
  text-wrap: pretty;
}
.legal-contact-box__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.legal-contact-box__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 999px;
}
/* Botão primário (laranja, padrão do site) — mantém background/color do .btn--primary
   global; aqui só pequenos ajustes de transição/hover. O ícone do WhatsApp vem do
   ::before global (.btn--primary[href*="api.whatsapp"]::before). */
.legal-contact-box .btn--primary {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.legal-contact-box .btn--primary:hover {
  transform: translateY(-2px);
}
/* Ghost button — fundo navy escuro do card exige texto/svg branco. A regra global
   do .btn--ghost aplica cor escura, que ficaria invisível aqui. */
.legal-contact-box .btn--ghost {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  transition: background 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
}
.legal-contact-box .btn--ghost svg { color: #fff; stroke: #fff; }
.legal-contact-box .btn--ghost:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.48) !important;
  color: #fff !important;
}
.legal-contact-box__legal {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.62);
  margin: 12px 0 0;
  line-height: 1.55;
}
.legal-contact-box__legal a {
  color: var(--wp--preset--color--ouro, #BE9663);
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 720px) {
  .legal-contact-box {
    grid-template-columns: 1fr;
    padding: 28px 22px;
    gap: 18px;
  }
  .legal-contact-box__icon { margin: 0 auto; }
  .legal-contact-box__body { text-align: center; }
  .legal-contact-box__actions { justify-content: center; }
}

/* ── Tabela de cookies (.legal-table) ── */
.legal-table-wrap {
  overflow-x: auto;
  margin: 0 0 16px;
  border-radius: 12px;
  border: 1px solid rgba(15, 35, 57, 0.08);
  background: #fff;
}
.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.88rem;
  min-width: 560px;
}
.legal-table thead th {
  background: rgba(190, 150, 99, 0.10);
  color: var(--wp--preset--color--secondary, #0A1F38);
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid rgba(190, 150, 99, 0.25);
}
.legal-table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(15, 35, 57, 0.06);
  color: var(--wp--preset--color--texto, #2A2723);
  line-height: 1.55;
  vertical-align: top;
}
.legal-table tbody tr:last-child td { border-bottom: none; }
.legal-table code {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.82rem;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(15, 35, 57, 0.06);
  color: var(--wp--preset--color--secondary, #0A1F38);
  white-space: nowrap;
}

/* Pills dentro da tabela */
.legal-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.legal-pill--essential {
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
}
.legal-pill--analytics {
  background: rgba(190, 150, 99, 0.18);
  color: #7a5a2a;
}

/* H3 dentro de section (subseções) */
.legal-section h3 {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 18px 0 8px;
}

/* Nota auxiliar na prose */
.legal-prose__note {
  font-size: 0.85rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-style: italic;
  margin: 8px 0 0;
}

/* ═══ end v3.1.8 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v3.1.9 — Single Post refatorado
   Hero centralizado + featured rounded + drop cap + related posts
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero centralizado ── */
.single-post-hero {
  position: relative;
  text-align: center;
}
.single-post-hero__inner {
  max-width: 760px;
  margin: 0 auto;
}

/* Voltar pro blog (chip discreto acima do título) */
.single-post-hero__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px 8px 14px;
  border-radius: 999px;
  background: #fff;
  color: var(--wp--preset--color--secondary, #0A1F38);
  border: 1px solid rgba(15, 35, 57, 0.08);
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
  margin-bottom: 24px;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.single-post-hero__back:hover {
  background: var(--wp--preset--color--secondary, #0A1F38);
  color: #fff;
  border-color: var(--wp--preset--color--secondary, #0A1F38);
  transform: translateX(-2px);
}
.single-post-hero__back svg { transition: transform 0.2s ease; }
.single-post-hero__back:hover svg { transform: translateX(-2px); }

/* Chip de categoria */
.single-post-hero__chip {
  display: inline-block;
  margin-bottom: 18px;
  text-decoration: none;
  transition: transform 0.2s ease;
}
.single-post-hero__chip:hover { transform: translateY(-1px); }

/* Título grande */
.single-post-hero__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(2rem, 4.8vw, 3.2rem);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0 0 26px;
  text-wrap: balance;
}

/* Meta line (autor + data + tempo) */
.single-post-hero__meta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.88rem;
}
.single-post-hero__author {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.single-post-hero__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--wp--preset--color--ouro, #BE9663) 0%, #9c7948 100%);
  color: #fff;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: 0 2px 6px rgba(190, 150, 99, 0.30);
}
.single-post-hero__author-name { color: var(--wp--preset--color--texto, #2A2723); }
.single-post-hero__author-name strong { font-weight: 600; }
.single-post-hero__sep {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: rgba(15, 35, 57, 0.18);
}
.single-post-hero__date,
.single-post-hero__time {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.single-post-hero__date svg,
.single-post-hero__time svg {
  color: var(--wp--preset--color--ouro, #BE9663);
  opacity: 0.85;
}
@media (max-width: 600px) {
  .single-post-hero__meta { gap: 10px; font-size: 0.82rem; }
}

/* ── Featured image (overlap negativo no hero) ── */
.single-post-feature {
  position: relative;
  margin: 0 auto;
  max-width: 960px;
  aspect-ratio: 16 / 9;
  border-radius: 24px;
  overflow: hidden;
  background: #f5f4f2;
  box-shadow: 0 32px 80px rgba(15, 35, 57, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.5);
  z-index: 1;
}
.single-post-feature img,
.single-post-feature svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.single-post-feature__fallback {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--wp--preset--color--secondary, #0A1F38) 0%, #1a3a5c 100%);
}
@media (max-width: 720px) {
  .single-post-feature { border-radius: 16px; }
}

/* ── Body do post — tipografia editorial ── */
.single-post__content-wrap { width: 100%; }
.single-post__body {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 1.05rem;
  line-height: 1.78;
  color: var(--wp--preset--color--texto, #2A2723);
  max-width: 720px;
  margin: 0 auto;
}
.single-post__body > * {
  margin-top: 0;
  margin-bottom: 1.2em;
}
.single-post__body > *:last-child { margin-bottom: 0; }

/* Drop cap no primeiro parágrafo */
.single-post__body > p:first-of-type::first-letter {
  float: left;
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: 5.2rem;
  font-weight: 400;
  line-height: 0.82;
  /* Respiro à direita proporcional ao corpo do texto, não à capitular: com
     0.12em de uma letra de 83px o "O" encostava na primeira palavra. */
  margin: 0.04em 0.22em 0 0;
  color: var(--wp--preset--color--accent, #C8621A);
  font-style: italic;
}

/* Headings */
.single-post__body h2 {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.65rem, 2.8vw, 2rem);
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -0.01em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 1.8em 0 0.5em;
  text-wrap: balance;
}
.single-post__body h3 {
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 1.5em 0 0.4em;
}
.single-post__body p { text-wrap: pretty; }
.single-post__body strong {
  color: var(--wp--preset--color--secondary, #0A1F38);
  font-weight: 600;
}
.single-post__body a {
  color: var(--wp--preset--color--accent, #C8621A);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
.single-post__body a:hover { color: #9c4b14; }

/* Listas */
.single-post__body ul,
.single-post__body ol {
  padding-left: 0;
  list-style: none;
}
.single-post__body ul li {
  position: relative;
  padding-left: 28px;
  margin-bottom: 0.7em;
}
.single-post__body ul li::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 14px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--wp--preset--color--ouro, #BE9663);
}
.single-post__body ol {
  counter-reset: drl-ol;
}
.single-post__body ol li {
  counter-increment: drl-ol;
  position: relative;
  padding-left: 36px;
  margin-bottom: 0.7em;
}
.single-post__body ol li::before {
  content: counter(drl-ol);
  position: absolute;
  left: 0;
  top: 2px;
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--wp--preset--color--ouro, #BE9663);
  width: 26px;
  text-align: right;
}

/* Blockquote */
.single-post__body blockquote {
  margin: 1.8em 0;
  padding: 8px 0 8px 28px;
  border-left: 3px solid var(--wp--preset--color--ouro, #BE9663);
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: 1.32rem;
  font-style: italic;
  line-height: 1.45;
  color: var(--wp--preset--color--secondary, #0A1F38);
}
.single-post__body blockquote p { margin-bottom: 0.6em; }

/* Imagens dentro do body */
.single-post__body img {
  border-radius: 12px;
  max-width: 100%;
  height: auto;
}
.single-post__body figure { margin: 1.5em 0; }
.single-post__body figcaption {
  font-size: 0.82rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  text-align: center;
  margin-top: 10px;
  font-style: italic;
}

@media (max-width: 600px) {
  .single-post__body { font-size: 1rem; line-height: 1.7; }
  .single-post__body > p:first-of-type::first-letter { font-size: 4.2rem; }
}

/* ── Related posts ── */
.single-post-related__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.single-post-related__head {
  text-align: center;
  margin-bottom: 36px;
}
.single-post-related__head .section-label {
  display: inline-block;
  margin-bottom: 12px;
}
.single-post-related__title {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-size: clamp(1.8rem, 3.2vw, 2.4rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--wp--preset--color--secondary, #0A1F38);
  margin: 0;
  text-wrap: balance;
}
.single-post-related__title strong {
  font-weight: 400;
  color: var(--wp--preset--color--accent, #C8621A);
  font-style: italic;
}
.single-post-related__grid { margin-bottom: 32px; }
.single-post-related__footer {
  text-align: center;
}
.single-post-related__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.single-post-related__cta svg { transition: transform 0.3s ease; }
.single-post-related__cta:hover svg { transform: translateX(3px); }

/* ═══ end v3.1.9 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v4.0.0 — Design system refactor
   ───────────────────────────────────────────────────────────────
   • Fontes: Montserrat (títulos) + Roboto (textos)
   • Cores: #112534 azul oficial · #c19b73 dourado oficial
   • #0A1929 ink-deep (variação escura para páginas sensíveis)
   • Border radius soft round (botões pill, cards 20-28px, fotos 28px)
   • Padding vertical densificado (48/64/80)
   • Bold reservado para o nome "Dr. Robson Laranja"
   ═══════════════════════════════════════════════════════════════ */

/* ── Refinos tipográficos: Montserrat é mais "técnica" que Cormorant
     então reduzimos letter-spacing e ajustamos peso para hierarquia. ── */
.hero-home__title,
.hero-sobre__title,
.page-hero__title,
.legal-hero__title,
.blog-listing-hero__title,
.single-post-hero__title,
.section-title,
.tele-card__title,
.area-card__title,
.cta-final__title,
.legal-section h2,
.single-post__body h2 {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif) !important;
  font-weight: 300;
  letter-spacing: -0.02em;
  font-style: normal; /* Montserrat italic não tem o mesmo charme do Cormorant */
}

/* H1 grandes — Montserrat 300 + tracking levemente apertado */
.hero-home__title,
.hero-sobre__title,
.legal-hero__title,
.blog-listing-hero__title,
.single-post-hero__title {
  font-weight: 300;
  letter-spacing: -0.025em;
}

/* <em>/<strong> dentro de títulos: troca italic Cormorant pelo accent dourado
   em peso ligeiramente maior (sem perder leveza geral). */
.hero-home__title em,
.hero-sobre__title em,
.legal-hero__title strong,
.blog-listing-hero__title strong,
.section-title strong,
.cta-sobre-bifurcacao__title em,
.tele-card__title em,
.contato-form-card__title strong,
.legal-contact-box__title strong,
.single-post-related__title strong {
  font-style: normal;
  font-weight: 400;
  color: var(--wp--preset--color--accent, #c19b73);
}

/* O nome "Dr. Robson Laranja" — Bold reservado pra ele.
   Usado em: badge do hero da home, autor do post, footer brand-name, etc. */
.hero-home__badge-name,
.single-post-hero__author-name strong,
.legal-contact-box__title,
.bio-grid__sticky strong,
.site-footer__grid strong {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
  font-weight: 700;
  letter-spacing: 0;
}

/* Body text — Roboto Light em parágrafos longos pra reduzir peso visual. */
.hero-home__sub,
.hero-sobre__sub,
.section-lede,
.legal-hero__lede,
.blog-listing-hero__lede,
.tele-snippet__copy p,
.cta-final__desc,
.cta-sobre-bifurcacao__sub,
.legal-contact-box__desc,
.area-card__desc,
.tele-card__desc,
.diferencial-card__desc,
.blog-featured__excerpt,
.contato-form-card .section-lede {
  font-family: var(--wp--preset--font-family--roboto, "Roboto", system-ui, sans-serif);
  font-weight: 300;
}

/* Eyebrow/section-label — Roboto medium uppercase fina, sem letter-spacing exagerado. */
.section-label,
.hero-home__eyebrow,
.hero-sobre__eyebrow,
.blog-listing-hero__label,
.legal-hero__label {
  font-family: var(--wp--preset--font-family--roboto, "Roboto", system-ui, sans-serif);
  font-weight: 500;
  letter-spacing: 0.12em;
}

/* ── Soft round: botões pill, cards/fotos arredondados ── */
.btn,
.btn--primary,
.btn--ghost,
.btn--whatsapp,
.btn--outline-white,
a.btn,
.wp-block-button .wp-block-button__link,
.wp-element-button,
.form__submit,
.contato-form-card__submit,
.blog-featured__cta,
.single-post-hero__back,
.single-post-related__cta,
.legal-toc__link,
.area-card__cta,
.tele-card__btn,
.channel-card-v2__cta,
.legal-contact-box__cta {
  border-radius: var(--r-pill, 999px) !important;
}

/* Cards e fotos — mais arredondados */
.area-card,
.tele-card,
.unidade-card,
.blog-card-v2,
.blog-featured,
.depoimento-card,
.diferencial-card,
.filosofia__card,
.channel-card-v2,
.contato-form-card,
.legal-toc,
.legal-contact-box,
.single-post-feature,
.unidade-card__map,
.hero-home__photo-img img,
.bio-photo img {
  border-radius: var(--r3, 28px);
}

/* Mapa edge-to-edge dentro de unidade-card mantém só o topo arredondado */
.unidade-card iframe[title^="Mapa"],
.unidade-card .unidade-card__map {
  border-radius: var(--r3, 28px) var(--r3, 28px) 0 0;
}

/* Inputs e selects */
.form__input,
.form__select,
.form__textarea,
.blog-search__input,
input[type="text"],
input[type="email"],
input[type="tel"],
select,
textarea {
  border-radius: var(--r, 14px);
}

/* Chips de categoria, badges institucionais, pills LGPD */
.blog-chip,
.legal-pill,
.legal-hero__chip,
.section-label,
.tele-card__badge,
.channel-card-v2__badge,
.contato-form-card__badge,
.blog-tab__count,
.area-card__pill,
.hero-home__badge-status,
.hero-sobre__inst-logo {
  border-radius: var(--r-pill, 999px);
}

/* Hero sobre — institutional logos box arredondado mais (pill-like) */
.hero-sobre__inst-logo {
  border-radius: 14px;
}

/* ── Padding vertical densificado nas seções ── */
.hero-home,
.cta-sobre-bifurcacao,
.cta-final-section,
.filosofia--dark,
.single-post-related,
.contato-2col,
.blog-listing-hero,
.legal-hero {
  padding-top: clamp(40px, 5vw, var(--section-py-lg)) !important;
  padding-bottom: clamp(40px, 5vw, var(--section-py-lg)) !important;
}

/* ── Páginas sensíveis (Estética Íntima): mantém estética dark premium.
     A page tem class wp-singular ou pode usar body.page-template + slug.
     Reforçamos --bg-dark dentro de .area-card--est para o ink-deep. ── */
.area-card--est,
body.page-estetica-intima-masculina .hero-home,
body.page-estetica-intima-masculina .area-card--est {
  background: var(--bg-ink-deep, #0A1929) !important;
}

/* ── Bold só onde existe ".hero-home__badge-name" e equivalentes ──
   Override pra garantir que H1/H2 NÃO peguem bold por descendência. */
h1, h2, h3, h4 {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", system-ui, sans-serif);
}
h1 { font-weight: 300; letter-spacing: -0.025em; }
h2 { font-weight: 300; letter-spacing: -0.02em; }
h3 { font-weight: 400; letter-spacing: -0.015em; }
h4 { font-weight: 500; letter-spacing: -0.01em; }

/* ═══ end v4.0.0 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v4.0.1 — Refinos pós design system reset
   ───────────────────────────────────────────────────────────────
   • Elimina laranja-pale → tudo usa #c19b73 (accent) com alphas
   • Hover de botões: mantém radius, ganha scale + fill em outlines
   • Ícones em botões: +4px com currentColor
   • Logos institucionais: grayscale → color no hover, sem chip
   • Remove bio-chips abaixo da foto (home + Sobre)
   ═══════════════════════════════════════════════════════════════ */

/* ── Override: laranja-pale → accent alphas ── */
:root {
  /* Re-map: --orange-pale agora usa alpha do accent. Mantemos o nome pra
     compat com regras antigas, mas o valor visual é #c19b73 translúcido. */
  --orange-pale: rgba(193, 155, 115, 0.10);
  --brand-soft:  rgba(193, 155, 115, 0.10);
  --brand-mid:   rgba(193, 155, 115, 0.18);
}

/* ── Hover dos botões: mantém radius, scale + fill ── */
.btn,
.btn--primary,
.btn--ghost,
.btn--whatsapp,
.btn--outline-white,
a.btn,
.wp-block-button .wp-block-button__link,
.wp-element-button,
.form__submit,
.contato-form-card__submit,
.blog-featured__cta,
.single-post-hero__back,
.single-post-related__cta,
.legal-contact-box__cta,
.channel-card-v2__cta,
.tele-card__btn,
.area-card__cta {
  transition: transform 0.25s cubic-bezier(0.2, 0.7, 0.2, 1),
              background-color 0.25s ease,
              color 0.25s ease,
              box-shadow 0.25s ease,
              border-color 0.25s ease !important;
}

.btn:hover,
.btn--primary:hover,
.btn--whatsapp:hover,
a.btn:hover,
.wp-block-button .wp-block-button__link:hover,
.wp-element-button:hover,
.form__submit:hover,
.contato-form-card__submit:hover,
.blog-featured__cta:hover,
.single-post-related__cta:hover,
.legal-contact-box__cta:hover,
.channel-card-v2__cta:hover,
.tele-card__btn:hover,
.area-card__cta:hover {
  transform: scale(1.04);
  box-shadow: 0 8px 24px rgba(193, 155, 115, 0.25);
}

/* Outline buttons: ganham fill no hover */
.btn--ghost:hover,
.btn--outline-white:hover,
.single-post-hero__back:hover {
  transform: scale(1.04);
  background: var(--wp--preset--color--accent, #c19b73) !important;
  color: #fff !important;
  border-color: var(--wp--preset--color--accent, #c19b73) !important;
  box-shadow: 0 8px 24px rgba(193, 155, 115, 0.30);
}
.btn--ghost:hover svg,
.btn--outline-white:hover svg,
.single-post-hero__back:hover svg {
  color: #fff !important;
  stroke: #fff !important;
  fill: currentColor;
}

/* ── Ícones em botões: +6px do default (era 16, agora 22) e currentColor ── */
.btn svg,
.btn--primary svg,
.btn--ghost svg,
.btn--whatsapp svg,
.btn--outline-white svg,
.wp-block-button .wp-block-button__link svg,
.wp-element-button svg,
.form__submit svg,
.contato-form-card__submit svg,
.blog-featured__cta svg,
.single-post-hero__back svg,
.single-post-related__cta svg,
.legal-contact-box__cta svg,
.channel-card-v2__cta svg,
.tele-card__btn svg,
.area-card__cta svg {
  width: 22px !important;
  height: 22px !important;
  color: currentColor !important;
  stroke: currentColor;
  flex-shrink: 0;
}

/* SVG menores (chevrons inline ⨯ X close, etc.) — manter quando o pai não é um botão */
.blog-search__icon,
.blog-search__clear svg,
.legal-toc__icon svg,
.single-post-hero__meta svg,
.blog-meta-time svg,
.blog-tab__icon svg {
  /* Esses são ícones contextuais (não em botões de ação) — mantêm tamanho original */
  width: auto !important;
  height: auto !important;
}

/* Arrow circles internos (+2px também: 16 → 18) */
.area-card__cta-arrow svg,
.channel-card-v2__arrow svg,
.single-post-related__cta svg {
  width: 18px !important;
  height: 18px !important;
}

/* ── Logos institucionais (.hero-sobre__inst-logo): sem chip, grayscale → cor ── */
.hero-sobre__inst-logo {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  height: 56px !important;
  width: auto;
  max-width: 130px;
  filter: grayscale(100%) brightness(1.6) contrast(0.8);
  opacity: 0.7;
  transition: filter 0.4s ease, opacity 0.4s ease, transform 0.3s ease;
}
.hero-sobre__inst-logo:hover {
  filter: grayscale(0%) brightness(1) contrast(1);
  opacity: 1;
  transform: scale(1.04);
}
.hero-sobre__institutions {
  gap: 28px !important;
  align-items: center;
}
.hero-sobre__inst-logos {
  gap: 24px !important;
  align-items: center;
}
@media (max-width: 600px) {
  .hero-sobre__inst-logo { height: 44px !important; max-width: 100px; }
}

/* ── Bio-chips na page Sobre (coluna sticky): substituídos por imgs grayscale ── */
.bio-chips--logos {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.bio-chips--logos img {
  height: 40px;
  width: auto;
  max-width: 110px;
  filter: grayscale(100%) brightness(1.5) contrast(0.85);
  opacity: 0.65;
  transition: filter 0.4s ease, opacity 0.4s ease, transform 0.3s ease;
}
.bio-chips--logos img:hover {
  filter: grayscale(0%) brightness(1) contrast(1);
  opacity: 1;
  transform: scale(1.05);
}
@media (max-width: 600px) {
  .bio-chips--logos img { height: 32px; max-width: 85px; }
}

/* ── Eliminar bio-chips antigas (pílulas) onde ainda existirem ──
   Caso o HTML antigo (com <p class="bio-chip">UFES</p>) ainda esteja em algum
   post_content, escondemos visualmente em vez de bagunçar layout. */
.bio-chips .bio-chip,
.bio-chips--legacy { display: none; }

/* ── Ícones com fill="currentColor" (WhatsApp logo, etc) — força currentColor ── */
.btn svg path[fill]:not([fill="none"]),
.wp-block-button .wp-block-button__link svg path[fill]:not([fill="none"]) {
  fill: currentColor;
}

/* ═══ end v4.0.1 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v4.0.2 — Fixes pós-revisão visual
   • Lock de border-radius em :hover/:focus/:active (estava virando 8px)
   • Hero eyebrow + section-label--dark trocam laranja por dourado/branco
   • Foto hero como meia-bola saindo da tela (clip-path circular)
   • Logos institucionais: filter simplificado (sem brightness invertido) —
     UFES não fica mais preta no hover
   • Bio-chips--logos centralizadas + maiores
   • Pill RQE perde destaque dourado
   ═══════════════════════════════════════════════════════════════ */

/* ── (1) BORDER-RADIUS LOCK: todos os estados de todos os botões ── */
.btn, .btn:hover, .btn:focus, .btn:active, .btn:focus-visible,
a.btn, a.btn:hover, a.btn:focus, a.btn:active,
.btn--primary, .btn--primary:hover, .btn--primary:focus, .btn--primary:active,
.btn--ghost, .btn--ghost:hover, .btn--ghost:focus, .btn--ghost:active,
.btn--outline-white, .btn--outline-white:hover, .btn--outline-white:focus, .btn--outline-white:active,
.btn--whatsapp, .btn--whatsapp:hover, .btn--whatsapp:focus,
.wp-element-button, .wp-element-button:hover, .wp-element-button:focus, .wp-element-button:active,
.wp-block-button__link, .wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active,
.wp-block-button > .wp-block-button__link,
.wp-block-button > .wp-block-button__link:hover,
.wp-block-button > .wp-block-button__link:focus,
.wp-block-button > .wp-block-button__link:active,
.form__submit, .form__submit:hover, .form__submit:focus,
.contato-form-card__submit, .contato-form-card__submit:hover,
.blog-featured__cta, .blog-featured__cta:hover,
.single-post-hero__back, .single-post-hero__back:hover,
.single-post-related__cta, .single-post-related__cta:hover,
.legal-contact-box__cta, .legal-contact-box__cta:hover,
.channel-card-v2__cta, .channel-card-v2__cta:hover,
.tele-card__btn, .tele-card__btn:hover {
  border-radius: 999px !important;
}

/* ── (2) Hero da home: eyebrow + section-label--dark sem laranja ── */
.hero-home__eyebrow {
  color: rgba(255, 255, 255, 0.75) !important;
}
.hero-home__badge-spec {
  color: rgba(10, 25, 41, 0.7) !important;
}
/* "Agende agora" — section-label--dark trocar laranja → dourado */
.section-label--dark {
  color: var(--wp--preset--color--accent, #c19b73) !important;
}
.cta-final .section-label,
.cta-final__title em,
.cta-final__desc em {
  color: var(--wp--preset--color--accent, #c19b73);
}

/* ── (3) Foto hero — forma D vindo da BORDA DA VIEWPORT. Sem moldura/card residual.
   Imagem herda a forma D, badge auto-sized dentro do D. ── */

/* Coluna container: NADA visual (era um card translúcido aparecendo como moldura) */
.hero-home__photo {
  position: relative;
  display: block;
  min-height: 620px;
  overflow: visible;
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
/* Filete dourado vertical não-aplicável aqui (era do design antigo) */
.hero-home__accent { display: none !important; }

/* Foto: estende da borda DA VIEWPORT pela direita. O offset à direita:
   (viewport_width - container_width) / 2 + root_padding.
   Para hero-home__inner (1200px) + root padding (32px): em 1366vw = 83 + 32 = 115px. */
/* Hero = 100vh - header. Foto absolute RELATIVA AO .hero-home (não à column),
   garantindo cobertura total. Texto fica numa half-column normal. */
:root {
  --hero-header-h: 127px;
}
.hero-home {
  position: relative !important;
  min-height: calc(100vh - var(--hero-header-h)) !important;
  padding-top: clamp(32px, 4vh, 48px) !important;
  padding-bottom: clamp(32px, 4vh, 48px) !important;
  overflow: hidden;
}
.hero-home__inner {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - var(--hero-header-h) - 64px);
  display: flex;
  align-items: center;
}
.hero-home__columns {
  width: 100%;
}
/* Coluna foto: vira apenas um "spacer" da metade direita (não posiciona a foto) */
.hero-home__photo {
  --photo-right-overflow: max(0px, calc((100vw - 1200px) / 2 + 32px));
  min-height: 100%;
  position: relative;
}
/* Foto: max 40vw da viewport, altura cobre 100% do hero (com top/bottom negativos
   compensando o padding interno). Object-fit cover mantém aspect ratio da imagem. */
.hero-home__photo-img,
.hero-home__photo .wp-block-image,
.hero-home__photo figure.wp-block-image {
  position: absolute !important;
  top: calc(-1 * clamp(32px, 4vh, 48px)) !important;
  bottom: calc(-1 * clamp(32px, 4vh, 48px)) !important;
  right: 0 !important;
  left: auto !important;
  margin-right: calc(var(--photo-right-overflow) * -1) !important;
  /* Largura ~45% da viewport — maior que antes, sem invadir o texto.
     Gap de ~25px entre texto e foto preservado. */
  width: min(45vw, 660px) !important;
  max-width: 45vw !important;
  height: auto !important;       /* deixa top/bottom resolverem (cobre 100% do hero) */
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-left: 0 !important;
  border-radius: 35% 0 0 35% / 60% 0 0 60% !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
  z-index: 1;
}
/* Img dentro: object-fit cover mantém aspecto e cobre o frame */
.hero-home__photo-img img,
.hero-home__photo figure.wp-block-image img,
.hero-home__photo .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: inherit !important;
  filter: drop-shadow(-12px 12px 32px rgba(17, 37, 52, 0.18));
}
.hero-home__photo-img img,
.hero-home__photo figure.wp-block-image img,
.hero-home__photo .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border-radius: inherit !important;
  filter: drop-shadow(-12px 12px 32px rgba(17, 37, 52, 0.18));
}

/* Mover a foto pro nível do .hero-home via position absolute MAS o elemento
   está dentro da column. Aqui ajustamos a column pra ser "absolutamente posicionada"
   em relação ao .hero-home, OR usamos um trick CSS pra escapar.
   Approach simples: a column tem position:static, e a figure dentro dela tem
   position:absolute que sobe até o .hero-home (próximo positioned ancestor). */
.hero-home__photo {
  position: static !important;
}
/* Badge "Dr. Robson Laranja" sobreposto à foto (mesmo z-index acima da foto).
   Position absolute relativa ao .hero-home — bottom: ~80px e right: distância
   da borda direita pra ficar dentro da curva direita da foto (área "cheia" do D). */
.hero-home__badge {
  position: absolute !important;
  bottom: clamp(40px, 6vh, 72px) !important;
  right: clamp(24px, 3vw, 56px) !important;
  left: auto !important;
  z-index: 5;
}

@media (max-width: 900px) {
  /* Hero mobile — sem min-height fixa, deixa o conteúdo ditar */
  .hero-home {
    min-height: auto !important;
    padding-top: 24px !important;
    padding-bottom: 48px !important;
    overflow: hidden;
  }
  .hero-home__inner {
    min-height: auto !important;
    display: block;
  }
  /* Foto vem PRIMEIRO via order, texto depois */
  .hero-home__columns {
    display: flex !important;
    flex-direction: column !important;
    gap: 32px;
  }
  .hero-home__photo {
    order: -1 !important;
    align-self: stretch;
    position: relative !important;  /* parent positioned p/ badge absolute */
    min-height: auto !important;
    margin-bottom: 8px;
  }
  .hero-home__copy {
    order: 1 !important;
  }
  /* Foto: 90% da largura, altura proporcional via aspect-ratio (4/5 vertical),
     centralizada (curva direita sai pela borda) */
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    position: relative !important;
    width: 90vw !important;
    max-width: 90vw !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    margin: 0 !important;
    margin-left: auto !important;        /* alinha à direita pra curva sair pela borda direita */
    margin-right: -32px !important;       /* compensa root padding */
    inset: auto !important;
    top: auto !important;
    bottom: auto !important;
    right: auto !important;
    left: auto !important;
    border-radius: 35% 0 0 35% / 50% 0 0 50% !important;
  }
  .hero-home__photo-img img,
  .hero-home__photo figure.wp-block-image img,
  .hero-home__photo .wp-block-image img {
    border-radius: inherit !important;
  }
  /* Badge sobre a foto — centralizado horizontalmente, parte inferior */
  .hero-home__badge {
    position: absolute !important;
    bottom: 16px !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    z-index: 10;
    padding: 10px 14px !important;
  }
  .hero-home__badge-name {
    font-size: 0.88rem !important;
  }
  .hero-home__badge-spec {
    font-size: 0.74rem !important;
  }
  .hero-home__badge-status {
    font-size: 0.68rem !important;
    padding: 3px 8px !important;
  }
}
@media (max-width: 480px) {
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    width: 92vw !important;
    aspect-ratio: 4 / 5 !important;
  }
  .hero-home__badge {
    bottom: 14px !important;
    max-width: 240px !important;
  }
}
/* Img precisa herdar a forma D (não pode ficar retangular dentro) */
.hero-home__photo-img img,
.hero-home__photo figure.wp-block-image img,
.hero-home__photo .wp-block-image img,
.hero-home__photo img.wp-image-68,
.hero-home__photo img[class*="wp-image"] {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  /* Mesma curva sutil de meia lua que o figure */
  border-radius: 35% 0 0 35% / 60% 0 0 60% !important;
  filter: drop-shadow(-12px 12px 32px rgba(17, 37, 52, 0.18));
}

/* ── Badge "Dr. Robson Laranja" — DENTRO da forma D, auto-sized ── */
.hero-home__badge {
  position: absolute;
  bottom: 32px;
  right: 24px;
  left: auto;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px !important;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 14px;
  box-shadow: 0 12px 36px rgba(17, 37, 52, 0.22);
  /* Auto-sized: largura é definida pelo conteúdo, não fixa */
  width: max-content;
  max-width: 360px;
}
.hero-home__badge-info {
  display: flex;
  flex-direction: column;
  gap: 0;
  line-height: 1.25;
}
.hero-home__badge-name {
  font-family: var(--wp--preset--font-family--montserrat, "Montserrat", sans-serif) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  color: var(--wp--preset--color--primary, #112534) !important;
  margin: 0 !important;
  letter-spacing: -0.005em;
}
.hero-home__badge-spec {
  font-family: var(--wp--preset--font-family--roboto, "Roboto", sans-serif) !important;
  font-weight: 400 !important;
  font-size: 0.78rem !important;
  color: rgba(10, 25, 41, 0.65) !important;
  margin: 2px 0 0 !important;
}
.hero-home__badge-info { display: flex; flex-direction: column; gap: 2px; }
.hero-home__badge-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(22, 163, 74, 0.10);
  color: #15803d;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}
.hero-home__badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #16a34a;
}

@media (max-width: 900px) {
  .hero-home__photo {
    min-height: 460px;
  }
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    inset: 0 0 0 0;            /* mobile: foto centralizada */
    border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  }
  .hero-home__badge {
    bottom: 24px;
    right: 24px;
    max-width: 240px;
    padding: 12px 14px;
  }
}
@media (max-width: 600px) {
  .hero-home__badge {
    right: 50%;
    transform: translateX(50%);
  }
}

/* ── (4) Section-label--dark: era laranja antigo, agora dourado ── */
/* (regra acima já cobre via .section-label--dark) */

/* ── (5) IAMSPE não recortada / bio-chips--logos centralizadas e maiores ── */
.bio-chips--logos {
  justify-content: center !important;
  align-items: center;
  gap: 32px !important;
  margin-top: 22px;
}
.bio-chips--logos img {
  height: 56px !important;
  width: auto;
  max-width: 160px !important;
  object-fit: contain;
}
@media (max-width: 600px) {
  .bio-chips--logos { gap: 20px !important; }
  .bio-chips--logos img { height: 44px !important; max-width: 120px !important; }
}

/* ── (6) Logos institucionais: filter sem brightness invertido ──
   Antes: grayscale(100%) brightness(1.6) contrast(0.8) — no hover voltava brightness:1,
   que fazia áreas brancas da logo virarem pretas (porque a "decisão" do brightness era
   invertida). Agora: só grayscale + opacity. */
.hero-sobre__inst-logo,
.bio-chips--logos img {
  filter: grayscale(100%) !important;
  opacity: 0.55 !important;
  transition: filter 0.4s ease, opacity 0.4s ease, transform 0.3s ease !important;
}
.hero-sobre__inst-logo:hover,
.bio-chips--logos img:hover {
  filter: grayscale(0%) !important;
  opacity: 1 !important;
  transform: scale(1.05);
}

/* ── (7) Pill RQE sem destaque dourado ── */
.hero-sobre__cred--gold {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* ── (8) Botões hover: regras com specificidade 3 (3 classes) para
   vencer regras antigas `.wp-block-button.btn--X > .wp-block-button__link:hover`. ── */
.btn--primary:hover, a.btn--primary:hover,
.wp-block-button.btn--primary > .wp-block-button__link:hover,
.wp-block-button.btn--primary > .wp-element-button:hover {
  transform: scale(1.04) !important;
  background: var(--wp--preset--color--accent, #c19b73) !important;
  color: #fff !important;
  box-shadow: 0 8px 24px rgba(193, 155, 115, 0.30) !important;
}

/* Outline hover: fill dourado SÓLIDO (vence rgba(255,255,255,.06) antigo) */
.btn--outline-white:hover, a.btn--outline-white:hover,
.wp-block-button.btn--outline-white > .wp-block-button__link:hover,
.wp-block-button.btn--outline-white > .wp-element-button:hover,
.btn--ghost:hover, a.btn--ghost:hover,
.wp-block-button.btn--ghost > .wp-block-button__link:hover,
.wp-block-button.btn--ghost > .wp-element-button:hover {
  transform: scale(1.04) !important;
  background: var(--wp--preset--color--accent, #c19b73) !important;
  color: #fff !important;
  border-color: var(--wp--preset--color--accent, #c19b73) !important;
  box-shadow: 0 8px 24px rgba(193, 155, 115, 0.30) !important;
}
.btn--outline-white:hover svg,
.wp-block-button.btn--outline-white > .wp-block-button__link:hover svg,
.btn--ghost:hover svg,
.wp-block-button.btn--ghost > .wp-block-button__link:hover svg {
  color: #fff !important;
  stroke: #fff !important;
}

/* ═══ end v4.0.2 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v4.0.4 — Topbar com clínica + região clicável + mobile collapsible
   ═══════════════════════════════════════════════════════════════ */
.topbar__item-text {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.topbar__item-text strong {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}
.topbar__item-sep {
  opacity: 0.45;
}
.topbar__item--link {
  cursor: pointer;
  transition: color 0.2s ease, opacity 0.2s ease;
}
.topbar__item--link:hover {
  color: var(--wp--preset--color--accent, #c19b73) !important;
}
.topbar__item--link:hover .topbar__item-text strong,
.topbar__item--link:hover svg {
  color: var(--wp--preset--color--accent, #c19b73) !important;
}

/* Toggle desktop: hidden */
.topbar__toggle {
  display: none;
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, 0.85);
  padding: 6px;
  cursor: pointer;
  transition: transform 0.25s ease;
}
.topbar__toggle:hover { color: #fff; }

@media (max-width: 900px) {
  /* Mobile: topbar comprimida — 1 linha, com toggle pra expandir */
  .topbar { padding: 4px 16px; font-size: 0.7rem; }
  .topbar__inner {
    flex-wrap: nowrap;
    gap: 8px;
    align-items: center;
  }
  .topbar__group {
    flex: 1;
    overflow: hidden;
    flex-wrap: nowrap;
    gap: 0;
  }
  /* Colapsada (default): mostra APENAS o primeiro item da primeira coluna */
  .topbar[data-collapsed="true"] .topbar__group--locations .topbar__item:nth-child(n+2),
  .topbar[data-collapsed="true"] .topbar__group--contact {
    display: none !important;
  }
  /* Primeiro item visível: trunca se grande */
  .topbar[data-collapsed="true"] .topbar__group--locations .topbar__item:first-child {
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
  }
  .topbar[data-collapsed="true"] .topbar__item-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  /* Expandida: grupos viram coluna, items aparecem */
  .topbar[data-collapsed="false"] .topbar__inner {
    flex-wrap: wrap;
  }
  .topbar[data-collapsed="false"] .topbar__group {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    gap: 6px;
    overflow: visible;
  }
  .topbar[data-collapsed="false"] .topbar__item {
    min-height: 32px;
    width: 100%;
  }
  .topbar__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .topbar[data-collapsed="false"] .topbar__toggle svg {
    transform: rotate(180deg);
  }
  .topbar__item svg { width: 12px !important; height: 12px !important; }
  /* Header total mais compacto em mobile */
  .nav-main { padding: 10px 16px !important; height: auto !important; }
}

/* ═══ end v4.0.4 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v4.0.3 — Fix gap main↔footer + ajustes finos foto hero
   ═══════════════════════════════════════════════════════════════ */

/* ── Eliminar block-gap entre <main> e o footer (template-part) ──
   O WP aplica 1.5rem (24px) de gap implícito por estar no wp-site-blocks.
   No final do main, esse gap aparece como espaço entre a última seção full-bleed
   e o footer navy escuro — visualmente parece um "buraco" creme. */
.wp-site-blocks > main,
.wp-site-blocks > main + footer,
.wp-site-blocks > main + .wp-block-template-part {
  margin-block: 0 !important;
}
main + footer,
main + .wp-block-template-part {
  margin-top: 0 !important;
}
main > .entry-content > *:last-child,
main > *:last-child {
  margin-bottom: 0 !important;
}

/* Quando a última seção é alignfull com bg escuro (CTA bifurcação),
   garantir que ela "encosta" no footer. */
.cta-sobre-bifurcacao,
.legal-contact-box--standalone,
.single-post-related {
  margin-bottom: 0 !important;
}

/* ═══ end v4.0.3 ═══ */

/* ═══════════════════════════════════════════════════════════════
   v4.0.5 — Topbar label "Ver mais" + Hero mobile + Áreas grafia
   ═══════════════════════════════════════════════════════════════ */

/* ── Topbar: label do toggle (visível só no mobile) ── */
.topbar__toggle-label {
  display: none;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.85);
  margin-right: 4px;
}
.topbar__toggle {
  gap: 4px;
}
@media (max-width: 900px) {
  .topbar__toggle-label { display: inline; }
  .topbar__toggle {
    padding: 4px 10px 4px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
  }
  .topbar__toggle:hover {
    background: rgba(255, 255, 255, 0.12);
  }
}

/* ── Hero mobile: foto colada no header + não tapar CRM ──
   Sobrescreve blocos antigos (linhas ~6452 e ~6617) que tinham min-height: 460px
   e aspect-ratio 4/5 (foto inflava 438px+ e gerava gap + sobreposição). */
@media (max-width: 900px) {
  .hero-home {
    padding-top: 0 !important;
    padding-bottom: 40px !important;
  }
  .hero-home__inner {
    padding-top: 0 !important;
  }
  .hero-home__columns {
    gap: 20px !important;
  }
  /* Foto: altura proporcional menor (aspect-ratio 1/1), encosta no topo */
  .hero-home__photo {
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
  }
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    width: 90vw !important;
    max-width: 90vw !important;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    margin: 0 0 0 auto !important;
    margin-right: -16px !important;
    border-radius: 50% 0 0 50% / 50% 0 0 50% !important;
    inset: auto !important;
    position: relative !important;
  }
  .hero-home__photo-img img,
  .hero-home__photo figure.wp-block-image img,
  .hero-home__photo .wp-block-image img {
    border-radius: 50% 0 0 50% / 50% 0 0 50% !important;
    object-position: center 20% !important;
  }
  /* Copy: respiro do topo da foto */
  .hero-home__copy {
    padding-top: 8px !important;
  }
}
@media (max-width: 480px) {
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    width: 88vw !important;
    max-width: 88vw !important;
    aspect-ratio: 1 / 1 !important;
  }
}

/* ── Áreas de Atuação: esconder bg-icon caso fique no DB; intensificar stripes ── */
.area-card__bg-icon { display: none !important; }

/* Stripes ligeiramente mais marcadas — ainda discretas */
.area-card--uro::before {
  background-image:
    radial-gradient(ellipse 420px 320px at 88% 4%, rgba(255,255,255,.08) 0%, transparent 62%),
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 28px,
      rgba(255,255,255,.05) 28px,
      rgba(255,255,255,.05) 29px
    ) !important;
}
.area-card--est::before {
  background-image:
    radial-gradient(ellipse 420px 320px at 88% 4%, rgba(190,150,99,.22) 0%, transparent 62%),
    repeating-linear-gradient(
      135deg,
      transparent 0,
      transparent 28px,
      rgba(190,150,99,.11) 28px,
      rgba(190,150,99,.11) 29px
    ) !important;
}

/* ── Topbar expandida: empilha em linhas (não em colunas) ──
   Sobrescreve regras v4.0.4 onde .topbar__inner ficava com flex-wrap: wrap
   e os dois groups (locations + contact) viravam colunas lado a lado. */
@media (max-width: 900px) {
  .topbar[data-collapsed="false"] .topbar__inner {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 6px !important;
  }
  .topbar[data-collapsed="false"] .topbar__group {
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    gap: 4px !important;
  }
  .topbar[data-collapsed="false"] .topbar__item {
    width: 100% !important;
    min-height: 28px !important;
    padding: 4px 0 !important;
  }
  /* Toggle continua acessível no topo */
  .topbar[data-collapsed="false"] .topbar__toggle {
    align-self: flex-end;
    margin-top: -28px;
  }
}

/* ── Nav: travar em uma linha (sem wrap) ── */
.nav-main__drop > .nav-main__link,
.nav-main__link {
  white-space: nowrap;
}

/* ── Chevron desktop em "Serviços" (substitui o ▾ unicode do texto) ──
   Mobile já tem ::after que rotaciona via .is-open. */
@media (min-width: 901px) {
  .nav-main__drop > .nav-main__link::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border: solid currentColor;
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
    margin-left: 4px;
    margin-bottom: 2px;
    order: 2;
    transition: transform .25s ease;
  }
  .nav-main__drop:hover > .nav-main__link::before,
  .nav-main__drop:focus-within > .nav-main__link::before {
    transform: rotate(-135deg);
    margin-bottom: -2px;
  }
}

/* ── Mobile: paddings de seção reduzidos (80/96/72 → 40px) ──
   Alvo: groups com padding inline herdado dos patterns. Preserva padding lateral
   quando existe (selecionando só padding-top/padding-bottom via shorthand). */
@media (max-width: 900px) {
  main .wp-block-group[style*="padding-top:80px"],
  main .wp-block-group[style*="padding-top:96px"],
  main .wp-block-group[style*="padding-top:72px"],
  main .wp-block-group[style*="padding:80px"],
  main .wp-block-group[style*="padding:96px"],
  main .wp-block-group[style*="padding:72px"] {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }
  /* Gaps internos do block-editor entre blocos no mobile */
  main .wp-block-group + .wp-block-group,
  main .alignfull + .alignfull,
  main .alignwide + .alignwide {
    margin-block-start: 0 !important;
  }/* Seções com padding via classe (depoimentos/blog/faq) e #reembolso ──
     escapavam da regra inline. Padronizar todas em 40px. */
  main .depoimentos-section,
/* Seções com padding via classe (depoimentos/blog/faq) e #atendimento-particular ──
     escapavam da regra inline. Padronizar todas em 40px. */
  main .depoimentos-section,
main .blog-section,
main .faq-section,
main #reembolso,
main #atendimento-particular,
main .process-steps,
main .cta-final,
main .cta-sobre-bifurcacao,
main .filosofia,
main .filosofia--dark,
main .legal-document,
main .legal-contact-box,
main .legal-contact-box--standalone,
main .single-post,
main .single-post-related,
main .blog-listing-full,
main .section:not(.section--tight),
main .telemedicina-2col,
main .servico-content,
main .servico-faq {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* Heros de páginas internas: paddings compactos (56/40px) ─ não confundir
     com a hero da home, que tem regras próprias mais acima. */
  .page-hero,
  .hero-sobre,
  .hero-blog,
  .single-post-hero {
    padding-top: 56px !important;
    padding-bottom: 40px !important;
  }

  /* Catch-all final: qualquer seção top-level com padding inline é normalizada
     pra 40/40. Cobre tanto páginas com .entry-content quanto sem (ex. blog).
     Exclui heros, intro-strip e o template-part header/footer. */
  main > [style*="padding-top"]:not(.hero-home):not(.page-hero):not(.hero-sobre):not(.intro-strip):not(.single-post-hero):not(.site-footer):not(.site-header),
  main > [style*="padding-bottom"]:not(.hero-home):not(.page-hero):not(.hero-sobre):not(.intro-strip):not(.single-post-hero):not(.site-footer):not(.site-header),
  main > [style*="padding:"]:not(.hero-home):not(.page-hero):not(.hero-sobre):not(.intro-strip):not(.single-post-hero):not(.site-footer):not(.site-header),
  main .entry-content > [style*="padding-top"]:not(.hero-home):not(.page-hero):not(.hero-sobre):not(.intro-strip):not(.single-post-hero):not(.site-footer):not(.site-header),
  main .entry-content > [style*="padding-bottom"]:not(.hero-home):not(.page-hero):not(.hero-sobre):not(.intro-strip):not(.single-post-hero):not(.site-footer):not(.site-header),
  main .entry-content > [style*="padding:"]:not(.hero-home):not(.page-hero):not(.hero-sobre):not(.intro-strip):not(.single-post-hero):not(.site-footer):not(.site-header) {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  /* Botões da hero Sobre: full-width no mobile (empilhados) */
  .hero-sobre__actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .hero-sobre__actions .btn,
  .hero-sobre__actions .wp-block-button,
  .hero-sobre__actions .wp-block-button .wp-block-button__link,
  .hero-sobre__actions .wp-block-button .wp-element-button,
  .hero-sobre__actions > a {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   v4.0.6 — Gap hero→1ª seção + FAQ section unificada
   ═══════════════════════════════════════════════════════════════ */

/* ── Eliminar block-gap (24px) entre hero e a primeira seção logo após ──
   Cobre 3 casos: (a) hero é filho direto de main/entry-content;
   (b) hero está embrulhado num wrapper (caso comum nas internas);
   (c) hero é a primeira seção (sibling-based). */
.page-hero + *,
.hero-home + *,
.hero-sobre + *,
.hero-blog + *,
.single-post-hero + *,
.blog-listing-hero + *,
main .entry-content > *:has(> .page-hero) + *,
main .entry-content > *:has(> .hero-home) + *,
main .entry-content > *:has(> .hero-sobre) + *,
main .entry-content > *:has(> .hero-blog) + *,
main .entry-content > *:has(> .single-post-hero) + *,
main .entry-content > *:has(> .blog-listing-hero) + *,
main > *:has(> .page-hero) + *,
main > *:has(> .hero-home) + *,
main > *:has(> .hero-sobre) + * {
  margin-top: 0 !important;
}

/* ── FAQ section: padronização visual em todas as páginas ── */
.faq-section {
  background: var(--wp--preset--color--cinza-bg, #F0EDE8) !important;
  position: relative;
  overflow: hidden;
  padding-block: clamp(64px, 8vw, 96px) !important;
}
.faq-section__inner {
  padding: 0 !important;
}
@media (max-width: 900px) {
  .faq-section {
    padding-block: 40px !important;
  }
}

/* ── Hero mobile/tablet: corrigir overflow da foto entre 463-900px ──
   Regra antiga (linha 349) forçava .hero-home__photo a height: 380px no mobile,
   mas a figure interna agora é aspect-ratio 1/1 (≥720px em 800px viewport),
   gerando overflow que sobrescreve o texto e o card. */
@media (max-width: 900px) {
  .hero-home__photo {
    height: auto !important;
    min-height: 0 !important;
  }
  /* Cap da largura da foto em tablets (evita 720px de foto em 800px viewport) */
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    max-width: min(90vw, 380px) !important;
    width: min(90vw, 380px) !important;
  }
}
@media (max-width: 480px) {
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    max-width: 88vw !important;
    width: 88vw !important;
  }
}

/* ── Ícones WhatsApp/tel nos botões: usar currentColor via mask-image ──
   Antes o ícone vinha com fill #ffffff hardcoded (background-image), o que
   ficava errado em botões com texto escuro (ex.: .btn--gold em estética). */
a[href*="api.whatsapp"]:not(.wpp-float):not(.topbar__item):not(.nav-main__drop-item):not(.site-footer__social a):not([aria-label]):not(.unidade-card__phone)::before,
a[href*="wa.me"]:not(.wpp-float):not(.topbar__item):not(.nav-main__drop-item):not(.site-footer__social a):not([aria-label]):not(.unidade-card__phone)::before,
.btn--whatsapp::before,
.wp-block-button.btn--whatsapp > .wp-block-button__link::before,
.wp-block-button[class*="whatsapp"] > .wp-block-button__link::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="api.whatsapp"]::before,
.wp-block-button.btn--primary > .wp-block-button__link[href*="wa.me"]::before {
  background-image: none !important;
  background-color: currentColor !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.6 6.32A8 8 0 0 0 4 12c0 1.4.36 2.78 1.05 4L4 20l4.1-1.04A8 8 0 0 0 20 12a7.94 7.94 0 0 0-2.4-5.68zM12 18.5a6.5 6.5 0 0 1-3.32-.92l-.24-.14-2.44.62.65-2.38-.16-.25A6.5 6.5 0 1 1 12 18.5zm3.6-4.86c-.2-.1-1.18-.58-1.36-.65-.18-.07-.32-.1-.45.1-.13.2-.52.65-.64.78-.12.13-.24.15-.44.05-.2-.1-.84-.31-1.6-.99-.6-.53-1-1.18-1.12-1.38-.12-.2-.01-.31.09-.4.09-.09.2-.24.3-.36.1-.12.13-.2.2-.34.06-.13.03-.25-.02-.35-.05-.1-.45-1.08-.62-1.48-.16-.39-.33-.34-.45-.34l-.38-.01a.74.74 0 0 0-.54.25c-.18.2-.7.69-.7 1.68 0 .99.72 1.95.82 2.08.1.13 1.42 2.17 3.45 3.04.48.2.86.33 1.16.43.49.16.93.13 1.28.08.39-.06 1.18-.48 1.34-.95.16-.46.16-.86.12-.95-.05-.08-.18-.13-.38-.23z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.6 6.32A8 8 0 0 0 4 12c0 1.4.36 2.78 1.05 4L4 20l4.1-1.04A8 8 0 0 0 20 12a7.94 7.94 0 0 0-2.4-5.68zM12 18.5a6.5 6.5 0 0 1-3.32-.92l-.24-.14-2.44.62.65-2.38-.16-.25A6.5 6.5 0 1 1 12 18.5zm3.6-4.86c-.2-.1-1.18-.58-1.36-.65-.18-.07-.32-.1-.45.1-.13.2-.52.65-.64.78-.12.13-.24.15-.44.05-.2-.1-.84-.31-1.6-.99-.6-.53-1-1.18-1.12-1.38-.12-.2-.01-.31.09-.4.09-.09.2-.24.3-.36.1-.12.13-.2.2-.34.06-.13.03-.25-.02-.35-.05-.1-.45-1.08-.62-1.48-.16-.39-.33-.34-.45-.34l-.38-.01a.74.74 0 0 0-.54.25c-.18.2-.7.69-.7 1.68 0 .99.72 1.95.82 2.08.1.13 1.42 2.17 3.45 3.04.48.2.86.33 1.16.43.49.16.93.13 1.28.08.39-.06 1.18-.48 1.34-.95.16-.46.16-.86.12-.95-.05-.08-.18-.13-.38-.23z'/%3E%3C/svg%3E") !important;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
}

/* Ícone telefone (tel:) nos botões — mesma lógica */
a[href^="tel:"]:not(.wpp-float):not(.topbar__item):not(.unidade-card__phone)::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 6px;
  flex-shrink: 0;
  vertical-align: middle;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
}

/* SVG inline em botões: forçar herdar cor do texto (caso ainda exista) */
.btn svg, .btn--gold svg, .btn--primary svg, .btn--outline-white svg, .btn--ghost svg,
.wp-block-button .wp-block-button__link svg,
.wp-block-button .wp-element-button svg {
  color: currentColor !important;
  stroke: currentColor !important;
}
.btn svg [fill]:not([fill="none"]),
.btn--gold svg [fill]:not([fill="none"]),
.wp-block-button .wp-block-button__link svg [fill]:not([fill="none"]) {
  fill: currentColor !important;
}

/* ── Trust-item "Rembolso do" (texto em vez de ✓): tamanho compacto ──
   line-height alta pra ocupar a mesma altura do value padrão (42px), evitando
   que o label fique visualmente mais perto que nos outros items. */
.hero-home__trust-value--text,
.stat-item__value--text {
  font-size: 1rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  line-height: 2.64 !important;
  white-space: nowrap;
  display: flex !important;
  align-items: flex-end !important;
}

/* ═══ end v4.0.6 ═══ */

/* Timeline formação: ano embaixo da instituição */
.bio-timeline__yr-date {
  display: block;
  font-weight: 400;
  font-size: .72rem;
  color: var(--ink-3);
  letter-spacing: 0;
  margin-top: 2px;
}

/* Hero Sobre — foto nativa (wp:image) segue o radius do design + altura do card */
.hero-sobre__photo.wp-block-image { margin: 0; }
.hero-sobre__photo.wp-block-image img,
figure.hero-sobre__photo img {
  border-radius: var(--r2, 20px);
  width: 100%;
  height: 540px;
  object-fit: cover;
  display: block;
}
@media (max-width: 800px) {
  .hero-sobre__photo.wp-block-image img,
  figure.hero-sobre__photo img { height: 320px; }
}

/* Card de unidade: fotos extras (Gutenberg + lightbox nativo) */
.unidade-card__extra { margin-top: 18px; }
.unidade-card__extra .unidade-fotos {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0;
}
.unidade-card__extra .unidade-fotos__item { margin: 0; }
.unidade-card__extra .unidade-fotos__item img,
.unidade-card__extra .unidade-fotos figure img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border-radius: var(--r2, 20px);
  display: block;
  cursor: zoom-in;
  transition: transform .3s ease, box-shadow .3s ease;
}
.unidade-card__extra .unidade-fotos__item img:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 24px rgba(17,37,52,.15);
}
@media (max-width: 600px) {
  .unidade-card__extra .unidade-fotos { grid-template-columns: 1fr; gap: 12px; }
  .unidade-card__extra .unidade-fotos__item img { height: 200px; }
}

/* Card de unidade único: bento grid (desktop + tablet) */
.unidades-grid--single { display: block !important; }
.unidade-card--single {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "body  map"
    "body  photos";
  gap: 20px;
  align-items: stretch;
}
.unidade-card--single .unidade-card__map { grid-area: map; height: 100% !important; min-height: 280px; max-height: 320px; border-radius: var(--r2, 20px); }
.unidade-card--single .unidade-card__body { grid-area: body; margin: 0; }
.unidade-card--single .unidade-card__extra { grid-area: photos; margin: 0; }
.unidade-card--single .unidade-card__extra .unidade-fotos { grid-template-columns: 1fr 1fr; gap: 14px; }
.unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 200px; }

/* Tablet (mantém bento, ajusta alturas) */
@media (max-width: 1000px) and (min-width: 601px) {
  .unidade-card--single { grid-template-columns: 1fr 1fr; gap: 16px; }
  .unidade-card--single .unidade-card__map { min-height: 220px; max-height: 260px; }
  .unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 150px; }
}

/* Mobile: empilha tudo (map → body → fotos) */
@media (max-width: 600px) {
  .unidade-card--single {
    display: flex;
    flex-direction: column;
    grid-template-areas: none;
    gap: 0;
  }
  .unidade-card--single .unidade-card__map { order: 1; height: 220px !important; min-height: 220px; }
  .unidade-card--single .unidade-card__body { order: 2; }
  .unidade-card--single .unidade-card__extra { order: 3; }
  .unidade-card--single .unidade-card__extra .unidade-fotos { grid-template-columns: 1fr; }
}

/* Card único: full width + padding interno (mapa e fotos não colam nas bordas) */
.unidades-grid--single { max-width: none !important; }
.unidade-card--single {
  width: 100%;
  max-width: none;
  padding: 32px;
  box-sizing: border-box;
}
.unidade-card--single .unidade-card__map,
.unidade-card--single iframe[title^="Mapa"] {
  width: 100% !important;
  border: 0;
}
.unidade-card--single .unidade-card__body { padding: 0 !important; }
@media (max-width: 1000px) and (min-width: 601px) {
  .unidade-card--single { padding: 24px; }
}
@media (max-width: 600px) {
  .unidade-card--single { padding: 20px; }
}

/* Card único = SEÇÃO (sem invólucro de card) — Sprint */
.unidades-grid--single {
  display: block !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}
.unidade-card--single {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: 100% !important;
  display: grid !important;
  grid-template-columns: 1.05fr 1fr;
  grid-template-rows: auto 1fr;
  grid-template-areas:
    "body  map"
    "body  photos";
  column-gap: 40px;
  row-gap: 16px;
  align-items: start;
}
.unidade-card--single .unidade-card__body {
  grid-area: body;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
}
.unidade-card--single .unidade-card__map,
.unidade-card--single iframe[title^="Mapa"] {
  grid-area: map;
  width: 100% !important;
  height: 320px !important;
  min-height: 320px !important;
  border: 0 !important;
  border-radius: var(--r2, 20px) !important;
  display: block;
}
.unidade-card--single .unidade-card__extra {
  grid-area: photos;
  margin: 0 !important;
}
.unidade-card--single .unidade-card__extra .unidade-fotos {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 0;
}
.unidade-card--single .unidade-card__extra .unidade-fotos__item img {
  height: 200px;
  border-radius: var(--r2, 20px);
}

@media (max-width: 1000px) and (min-width: 601px) {
  .unidade-card--single { column-gap: 28px; grid-template-columns: 1fr 1fr; }
  .unidade-card--single .unidade-card__map { height: 240px !important; min-height: 240px !important; }
  .unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 150px; }
}
@media (max-width: 600px) {
  .unidade-card--single {
    display: flex !important;
    flex-direction: column;
    grid-template-areas: none;
    gap: 16px;
  }
  .unidade-card--single .unidade-card__map { order: 1; height: 220px !important; min-height: 220px !important; }
  .unidade-card--single .unidade-card__body { order: 2; }
  .unidade-card--single .unidade-card__extra { order: 3; }
  .unidade-card--single .unidade-card__extra .unidade-fotos { grid-template-columns: 1fr; }
}

/* === Card único: seção em 2 colunas (info | bento de mapa+fotos) === */
/* Reset bento — sobrescreve regras anteriores do --single */
.unidades-grid--single { display: block !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
.unidade-card--single {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-basis: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(280px, 1fr) 1.4fr;
  grid-template-areas:
    "body  map"
    "body  photos";
  grid-template-rows: auto auto;
  column-gap: 32px;
  row-gap: 16px;
  align-items: start;
}
.unidade-card--single .unidade-card__body {
  grid-area: body; background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 !important;
}
.unidade-card--single .unidade-card__map,
.unidade-card--single iframe[title^="Mapa"] {
  grid-area: map; width: 100% !important; height: 320px !important; min-height: 320px !important;
  border: 0 !important; border-radius: var(--r2, 20px) !important; display: block;
}
.unidade-card--single .unidade-card__extra { grid-area: photos; margin: 0 !important; }
.unidade-card--single .unidade-card__extra .unidade-fotos { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.unidade-card--single .unidade-card__extra .unidade-fotos__item { margin: 0; }
.unidade-card--single .unidade-card__extra .unidade-fotos__item img {
  width: 100%; height: 220px; object-fit: cover; border-radius: var(--r2, 20px); display: block;
}

@media (max-width: 1000px) and (min-width: 701px) {
  .unidade-card--single { grid-template-columns: 1fr 1.2fr; column-gap: 24px; }
  .unidade-card--single .unidade-card__map { height: 260px !important; min-height: 260px !important; }
  .unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 170px; }
}
@media (max-width: 700px) {
  .unidade-card--single {
    display: flex !important; flex-direction: column; grid-template-areas: none; gap: 18px;
  }
  .unidade-card--single .unidade-card__body { order: 1; }
  .unidade-card--single .unidade-card__map { order: 2; height: 240px !important; min-height: 240px !important; }
  .unidade-card--single .unidade-card__extra { order: 3; }
  .unidade-card--single .unidade-card__extra .unidade-fotos { grid-template-columns: 1fr 1fr; gap: 12px; }
  .unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 150px; }
}
@media (max-width: 480px) {
  .unidade-card--single .unidade-card__extra .unidade-fotos { grid-template-columns: 1fr; }
  .unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 200px; }
}

/* === Override de especificidade: bento single supera .wp-block-columns.unidades-grid === */
.wp-block-columns.unidades-grid--single,
.wp-block-columns.unidades-grid.unidades-grid--single {
  display: block !important;
  grid-template-columns: none !important;
  max-width: 100% !important;
  gap: 0 !important;
}

/* === Single: destaque coluna info + swap mapa/fotos === */
.unidade-card--single {
  grid-template-areas:
    "body  photos"
    "body  map" !important;
}
.unidade-card--single .unidade-card__body {
  background: #fff !important;
  padding: 28px !important;
  border-radius: var(--r2, 20px) !important;
  box-shadow: 0 8px 24px rgba(17,37,52,.06);
  border: 1px solid var(--wp--preset--color--cinza-linha, #E8E4DC);
}
@media (max-width: 700px) {
  .unidade-card--single { grid-template-areas: none !important; }
  .unidade-card--single .unidade-card__extra { order: 2 !important; }
  .unidade-card--single .unidade-card__map { order: 3 !important; }
}

/* Single: card info acompanha altura da coluna media + ajustes de tamanho */
.unidade-card--single { align-items: stretch !important; }
.unidade-card--single .unidade-card__body { height: 100%; box-sizing: border-box; }
.unidade-card--single .unidade-card__map,
.unidade-card--single iframe[title^="Mapa"] { height: 240px !important; min-height: 240px !important; }
.unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 280px; }
@media (max-width: 1000px) and (min-width: 701px) {
  .unidade-card--single .unidade-card__map { height: 200px !important; min-height: 200px !important; }
  .unidade-card--single .unidade-card__extra .unidade-fotos__item img { height: 220px; }
}

/* Fix sticky mobile: top calibrado p/ topbar 1-linha atual (~53px) */
@media (max-width: 900px) {
  header.wp-block-template-part { top: -53px !important; }
}

/* ═══════════════════════════════════════════════
   DEPOIMENTOS — CARROSSEL (bloco dr-robson/testimonials-carousel)
   ═══════════════════════════════════════════════ */
.tcar .tcar__inner { padding-block: 0; }
.tcar__agg {
  margin-top: 14px;
  font-weight: 600;
  color: var(--wp--preset--color--secondary, #0A1F38);
  font-size: .95rem;
}

/* Marquee — loop contínuo, vários cards visíveis */
.tcar__marquee {
  overflow: hidden;
  width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.tcar__track {
  display: flex;
  width: max-content;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  animation: tcar-marquee 24s linear infinite; /* duração real vem inline do render */
  will-change: transform;
}
.tcar__marquee:hover .tcar__track,
.tcar.is-paused .tcar__track { animation-play-state: paused; }
.tcar__slide {
  flex: 0 0 auto;
  width: clamp(280px, 30vw, 360px);
  margin-right: 24px;
  box-sizing: border-box;
}
/* margin-right uniforme em todos os cards → -50% alinha exatamente 1 conjunto = loop sem costura */
@keyframes tcar-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Card */
.tcar-card {
  background: var(--white, #fff);
  border: 1px solid var(--line, #E6E1DA);
  border-radius: var(--r3, 28px);
  box-shadow: var(--s2);
  padding: clamp(28px, 4vw, 44px);
  margin: 0;
  text-align: center;
  position: relative;
}
.tcar-card::before {
  content: "\201C";
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 4.5rem;
  line-height: .6;
  color: var(--gold, #C9A84C);
  opacity: .35;
  margin-bottom: 8px;
}
.tcar-card__quote {
  margin: 0 0 22px;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  line-height: 1.6;
  color: var(--ink, #2A2620);
  font-style: italic;
  text-wrap: pretty;
}
.tcar-card__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 14px;
}
.tcar-card__author {
  font-size: .9rem;
  font-weight: 600;
  color: var(--wp--preset--color--accent, #C0621A);
}

/* Estrelas */
.tcar-stars {
  display: inline-flex;
  gap: 3px;
  margin-bottom: 16px;
}
.tcar-star { width: 20px; height: 20px; fill: var(--line, #E0DAD0); }
.tcar-star--on { fill: var(--gold, #C9A84C); }

/* Selo de fonte */
.tcar-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .02em;
  padding: 4px 10px;
  border-radius: var(--r-pill, 999px);
  border: 1px solid transparent;
}
.tcar-badge svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.tcar-badge--google { color: #1a73e8; background: rgba(26,115,232,.08); border-color: rgba(26,115,232,.2); }
.tcar-badge--doctoralia { color: #00b0a8; background: rgba(0,176,168,.08); border-color: rgba(0,176,168,.22); }

/* Controles inferiores: play/pause */
.tcar__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 28px;
}
.tcar__playpause {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--line, #E6E1DA);
  background: transparent;
  color: var(--wp--preset--color--secondary, #0A1F38);
  cursor: pointer;
  transition: background var(--ease);
}
.tcar__playpause:hover { background: rgba(0,0,0,.05); }
.tcar__playpause:focus-visible { outline: 2px solid var(--gold, #C9A84C); outline-offset: 2px; }
.tcar__playpause svg { width: 16px; height: 16px; fill: currentColor; }
.tcar__playpause .tcar__icon-play { display: none; }
.tcar.is-paused .tcar__playpause .tcar__icon-play { display: block; }
.tcar.is-paused .tcar__playpause .tcar__icon-pause { display: none; }

/* Widget Doctoralia */
.tcar__doctoralia {
  max-width: 860px;
  margin: 48px auto 0;
  padding-top: 36px;
  border-top: 1px solid var(--line, #E6E1DA);
  text-align: center;
}
.tcar__row-title,
.tcar__doctoralia-title {
  font-family: var(--wp--preset--font-family--montserrat);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent, #c19b73);
  margin: 0 0 16px;
}
.tcar__doctoralia-ph,
.tcar__ph {
  font-size: .9rem;
  color: var(--ink-2, #6b6258);
  background: rgba(0,0,0,.03);
  border: 1px dashed var(--line, #E6E1DA);
  border-radius: var(--r2, 20px);
  padding: 20px;
}
.tcar__doctoralia-embed { display: flex; justify-content: center; }

/* Título que abre cada linha da seção (diz de onde vêm as avaliações) */
.tcar__row-title {
  text-align: center;
  margin: 0 0 24px;
}

/* Linha 2 — widget de avaliações do Google (Trustindex).
   Sem largura máxima nem text-align: o widget é de terceiro e traz o próprio
   layout; qualquer coisa imposta aqui briga com ele. */
.tcar__google {
  margin-top: 48px;
  padding-top: 36px;
  border-top: 1px solid var(--line, #E6E1DA);
}
.tcar__google .tcar__ph { text-align: center; }

/*
 * Cards do widget de avaliacoes no branco dos cards do site.
 *
 * O fornecedor entrega o proprio CSS e usa cinza (#f4f4f4) no cabecalho e no
 * corpo do card, o que destoa dos cards brancos do resto do site. So o fundo
 * muda aqui: o layout do widget continua sendo o dele. Os seletores cobrem os
 * dois fornecedores (Trustindex `.ti-*`, Widgetpack `.grw-*`), e o !important
 * e necessario porque o CSS deles entra depois do nosso, no <head>.
 */
/* Links para o perfil no Google, abaixo do widget. Discretos: o widget é o
   destaque, os links são a saída para quem quer ver tudo ou avaliar. */
.tcar__google-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  justify-content: center;
  margin: 20px 0 0;
}
.tcar__google-link {
  color: var(--wp--preset--color--azul, #112534);
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.tcar__google-link:hover,
.tcar__google-link:focus-visible { color: var(--wp--preset--color--accent, #c19b73); }

/*
 * Aparência do widget de avaliações do Google.
 *
 * A ESTRUTURA é a do próprio plugin: cabeçalho com o nome do consultório à
 * esquerda, cards à direita. Só a aparência dos cards muda, para ficar na mesma
 * linguagem do resto do site.
 *
 * O `!important` é necessário porque o CSS do plugin entra depois do nosso, e
 * os seletores citam as classes exatas: por atributo eles empatam com as regras
 * do plugin e perdem por ordem.
 *
 * Depende da marcação interna do fornecedor (`.grw-review`, `.wp-google-name`,
 * `--rpi-star-color`); uma atualização dele pode exigir revisão aqui.
 */

/* Estrelas no amarelo do Google, no lugar do laranja do fornecedor.
   O plugin desenha a estrela por CSS a partir desta variável. */
.tcar__google-embed .rpi-stars { --rpi-star-color: #fbbc04 !important; }

/* Fundo branco no widget inteiro, e não só nos cards: a moldura branca é o que
   dá a leitura de bloco único, com o cabeçalho e as avaliações dentro dela. */
.tcar__google-embed .wp-gr {
  background: var(--wp--preset--color--branco, #fff) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  /* O fundo do card sai desta variável do próprio fornecedor, e a regra dele
     (`.wp-gr:not(.wp-dark) .grw-review-inner.grw-backgnd`) tem especificidade
     maior que a nossa: brigar por seletor perde, trocar a variável ganha. */
  --rev-color: var(--wp--preset--color--branco, #fff);
}

/* Foto do consultório no cabeçalho: o arquivo que o Google entrega é 300x200 e
   a caixa é redonda de 46px. Com o `object-fit: fill` do fornecedor ela sai
   achatada; `cover` recorta em vez de deformar. */
.tcar__google-embed .grw-header .grw-img {
  object-fit: cover !important;
}

/* Card: branco com borda fina, como os cards do site.
   A classe `.grw` do fornecedor traz sombra material, que não é a linguagem do
   site e, dentro da moldura branca, só sujaria o desenho. */
.tcar__google-embed .grw-review .grw-review-inner {
  background: var(--wp--preset--color--branco, #fff) !important;
  border: 1px solid var(--wp--preset--color--cinza-linha, #E0DBD3) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  padding: 20px !important;
}

/* Sem a foto de quem avaliou. A do consultório, no cabeçalho, continua. */
.tcar__google-embed .grw-review .grw-img-wrap { display: none !important; }

/* Nome de quem avaliou: escuro, no lugar do azul de link do fornecedor.
   Peso 600, que é o do autor no card de depoimento do próprio site, e não o
   700 do fornecedor. */
.tcar__google-embed .grw-review a.wp-google-name {
  color: var(--wp--preset--color--azul, #112534) !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  text-decoration: none !important;
}
.tcar__google-embed .grw-review .wp-google-time {
  color: var(--wp--preset--color--texto-leve, #5A5550) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
}
.tcar__google-embed .grw-review .wp-google-text {
  color: var(--wp--preset--color--texto, #2A2A2A) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

/* Botão de avaliar: sai do azul do fornecedor e entra na paleta do site.
   O fornecedor deixa o link como `display: block` com o logo do Google solto
   dentro do texto, então o logo cai fora da linha de base e a caixa estica na
   coluna inteira. `inline-flex` alinha os dois e faz a caixa nascer do conteúdo. */
.tcar__google-embed .wp-google-wr a {
  align-items: center !important;
  align-self: flex-start !important;
  background: transparent !important;
  border: 1px solid var(--wp--preset--color--cinza-linha, #E0DBD3) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  color: var(--wp--preset--color--azul, #112534) !important;
  display: inline-flex !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  gap: 7px !important;
  line-height: 1.2 !important;
  padding: 9px 16px !important;
  /* o fornecedor sombreia o texto do botão em cinza, o que borra a letra */
  text-shadow: none !important;
}
.tcar__google-embed .wp-google-wr a svg {
  flex: none !important;
}
.tcar__google-embed .wp-google-wr a:hover,
.tcar__google-embed .wp-google-wr a:focus-visible {
  border-color: var(--wp--preset--color--accent, #c19b73) !important;
}

/* Um ponto só significa uma página: nem a paginação nem as setas levam a lugar
   nenhum, e as duas somem. No celular passa um card por vez, então há mais de
   uma página e as duas voltam sozinhas, como voltam no computador assim que
   houver mais avaliações do que cabem na linha. */
.tcar__google-embed .rpi-dots-wrap:has(.rpi-dot:only-child) { display: none !important; }
.tcar__google-embed .grw-content-inner:has(.rpi-dot:only-child) .rpi-ltgt {
  display: none !important;
}

/* Setas na paleta do site, no lugar do cinza do fornecedor. */
.tcar__google-embed .rpi-ltgt {
  background: var(--wp--preset--color--branco, #fff) !important;
  border: 1px solid var(--wp--preset--color--cinza-linha, #E0DBD3) !important;
  box-shadow: none !important;
  color: var(--wp--preset--color--azul, #112534) !important;
}


/* O widget traz a própria Poppins do CDN, que a CSP não libera em `font-src`.
   Em vez de abrir mais um domínio de fonte só por isso, ele herda a tipografia
   do site: um download a menos e some a serifada do fallback do navegador.

   O site usa DUAS fontes, e o widget tem que respeitar a mesma divisão: Roboto
   no texto (é a do `body`) e Montserrat só em título. Forçar Montserrat em tudo,
   como estava aqui, punha fonte de título no corpo do card. */
.tcar__google-embed,
.tcar__google-embed * {
  /* Vale para qualquer fornecedor que entre nessa linha, não só o Trustindex:
     todos trazem a própria fonte de CDN, e `font-src` não libera nenhum deles.
     !important porque o CSS do widget entra no <head> depois do nosso e empata
     em especificidade. Sem isso o nome do paciente sai em serifada. */
  font-family: var(--wp--preset--font-family--roboto), system-ui, sans-serif !important;
}

/* Nome do consultório: é o título do bloco, então é o único ponto que usa a
   fonte de título, no peso leve dos títulos do site (400) e não no 700 do
   fornecedor. */
.tcar__google-embed .grw-header .wp-google-name {
  font-family: var(--wp--preset--font-family--montserrat), system-ui, sans-serif !important;
  font-weight: 400 !important;
  font-size: 17px !important;
  line-height: 1.35 !important;
  letter-spacing: -0.01em !important;
}

/* O resto do cabeçalho vinha em 600/900. O site não usa peso acima de 600 em
   texto, e nada em 900. */
.tcar__google-embed .wp-google-based,
.tcar__google-embed .wp-google-powered {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tcar__google-embed .grw-header .rpi-stars { font-weight: 600 !important; }

/* Layout lado a lado */
.tcar__body {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media (min-width: 992px) {
  .tcar__body {
    flex-direction: row;
    align-items: flex-start;
    gap: 48px;
  }
  .tcar__col-left {
    flex: 1;
    min-width: 0;
  }
  .tcar__col-right {
    flex: 0 0 auto;
    width: 280px;
  }
  .tcar__doctoralia.tcar__col-right {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    border-left: none;
    padding-left: 0;
  }
}

/* Cards mais largos no mobile (1 visível + peek) */
@media (max-width: 600px) {
  .tcar__slide { width: 82vw; margin-right: 16px; }
}

/* Linha parada: menos de 3 depoimentos não enchem a largura, então em vez de
   girar com vão a linha fica em grade centrada, cards inteiros à vista.
   O botão de pausa nem é impresso nesse caso (render.php). */
.tcar--estatico .tcar__track {
  animation: none;
  width: 100%;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}
.tcar--estatico .tcar__slide { margin-right: 0; }
.tcar--estatico .tcar__marquee {
  -webkit-mask-image: none;
          mask-image: none;
}

/* Reduce motion: sem marquee — depoimentos estáticos em grade */
@media (prefers-reduced-motion: reduce) {
  .tcar__track {
    animation: none;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
  }
  .tcar__slide { margin-right: 0; }
  .tcar__slide[aria-hidden="true"] { display: none; }
  .tcar__marquee { -webkit-mask-image: none; mask-image: none; }
  .tcar__playpause { display: none; }
}

/* ═══════════════════════════════════════════════
   BIO GALLERY — estado com imagem (bloco dr-robson/bio-gallery)
   ═══════════════════════════════════════════════ */
.bio-gallery__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.bio-gallery__item--filled { background: var(--bg-dark, #0A1F38); }
.bio-gallery__caption--over {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  margin: 0;
  padding: 16px 16px 14px;
  background: linear-gradient(180deg, rgba(10,31,56,0) 0%, rgba(10,31,56,0.82) 100%);
  color: #fff;
  text-align: left;
}

/* ═══════════════════════════════════════════════
   REEMBOLSO — box de orientação (bloco dr-robson/reembolso-process)
   ═══════════════════════════════════════════════ */
.process__note {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-top: 28px;
  padding: 18px 20px;
  background: rgba(200,98,26,.06);
  border: 1px solid rgba(200,98,26,.16);
  border-left: 3px solid var(--wp--preset--color--accent, #C8621A);
  border-radius: var(--r2, 20px);
}
.process__note-icon {
  flex: 0 0 auto;
  margin-top: 2px;
  color: var(--wp--preset--color--accent, #C8621A);
}
.process__note-icon svg { width: 22px; height: 22px; display: block; }
.process__note-text {
  margin: 0;
  font-size: .92rem;
  line-height: 1.6;
  color: var(--wp--preset--color--texto, #2A2A2A);
}

/* Seção de Agendamento em 2 Colunas */
.agendamento-inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}
.agendamento-info {
  text-align: center;
}
.agendamento-info .section-label {
  justify-content: center;
  margin-bottom: 16px;
}
/* O texto desta seção saiu de um core/html (v4.10.0): o que era style inline em
   cada tag virou estas regras. O margin-block-start zerado neutraliza o gap que
   o layout do core passa a aplicar agora que são blocos de verdade. */
.agendamento-info > * { margin-block-start: 0; }
.agendamento-info .section-title {
  font-size: 2.4rem;
  margin-top: 12px;
  margin-bottom: 24px;
}
.agendamento-info p.agendamento-texto {
  color: var(--wp--preset--color--texto-leve);
  font-family: var(--wp--preset--font-family--roboto);
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 24px;
}
/* Era `:last-child`. Deixou de servir quando a nota do WhatsApp entrou depois
   dela (v4.36.0): o alvo nunca foi "o último filho da coluna", e sim o rodapé
   "As consultas presenciais...", que segue sendo o último <p> daqui. A nota nova
   mora dentro de .agendamento-fallback justamente para não virar esse <p>. */
.agendamento-info p.agendamento-texto:last-of-type {
  font-size: 1rem;
  margin-bottom: 0;
}

/* Saída para quem não achou horário no calendário da Doctoralia.
   O seletor cita o pai de propósito: `.agendamento-info > *` zera
   margin-block-start num bloco lá no fim deste arquivo, com a mesma
   especificidade, e por vir depois ganharia de `.agendamento-fallback` sozinho. */
.agendamento-info > .agendamento-fallback {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--wp--preset--color--cinza-linha, #E0DBD3);
}
.agendamento-fallback__texto {
  color: var(--wp--preset--color--texto-leve);
  font-family: var(--wp--preset--font-family--roboto);
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 20px;
}
/* A coluna é text-align:center, mas .wp-block-buttons é flex e não herda isso. */
.agendamento-fallback .wp-block-buttons {
  justify-content: center;
}
.agendamento-widget-col {
  width: 100%;
  display: flex;
  justify-content: center;
}
.agendamento-widget-wrap {
  width: 100%;
  box-sizing: border-box;
}
/* Só reserva altura quando o widget da Doctoralia realmente renderizou.
   Antes o min-height era incondicional: se o script de terceiro não carrega
   (adblocker, rede, CSP), sobrava um buraco de 580px com um link solto no topo
   — o "gap entre os blocos" que aparece só para parte dos visitantes. */
.agendamento-widget-wrap:has(iframe) {
  min-height: 580px;
}
/* Fallback quando o widget não carrega: o <a> que a Doctoralia substituiria
   vira um botão de verdade, em vez de link cru perdido no vazio. */
.agendamento-widget-wrap:not(:has(iframe)) .zl-url {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px; /* tap target */
  padding: 14px 28px;
  border-radius: 999px;
  /* `accent`, não `primary`: neste tema o botão primário é DOURADO, mas o token
     --primary é o azul #112534. E o fallback estava com #c8a06a, um dourado que
     não existe na paleta. Aqui é o mesmo token dos outros CTAs do site. */
  background: var(--wp--preset--color--accent, #c19b73);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

@media (min-width: 992px) {
  .agendamento-inner {
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: 64px;
  }
  .agendamento-info {
    flex: 1;
    max-width: 560px;
    text-align: left;
  }
  .agendamento-info .section-label {
    justify-content: flex-start;
  }
  /* Mesmo motivo do .section-label acima: a coluna deixa de ser centralizada
     nesta largura, e .wp-block-buttons é flex, não herda text-align. */
  .agendamento-fallback .wp-block-buttons {
    justify-content: flex-start;
  }
  .agendamento-widget-col {
    flex: 0 0 auto;
    width: 480px;
  }
}

/* ═══════════════════════════════════════════
   EDITOR — canvas do block editor (v4.4.0)
   Este arquivo agora também carrega dentro do editor (ver enqueue_editor_canvas_styles
   no functions.php), pra o layout ali refletir o front. Único ajuste necessário:
   os dois overlays fixos do site flutuariam sobre o canvas atrapalhando a edição.
   ═══════════════════════════════════════════ */
.editor-styles-wrapper .wpp-float,
.editor-styles-wrapper .cookie {
  position: static;
}

/* O preview dos blocos core/html roda num iframe sandbox cujo <body> ganha
   `editor-styles-wrapper` + `data-resizable-iframe-connected`. O atributo é o que
   distingue do body do canvas — sem isto o sandbox pinta fundo branco e o snippet
   fica num retângulo claro no meio de uma seção escura. */
body[data-resizable-iframe-connected],
.editor-styles-wrapper[data-resizable-iframe-connected] {
  background: transparent !important;
}

/* Os 3 selos institucionais (UFES/IAMSPE/SBU) deixaram de ser <img> cru dentro de
   um core/html e viraram core/image — editáveis pela biblioteca de mídia. O <figure>
   do bloco passa a ser o item do flex e traz `margin: 0 0 1em` do core; zerar mantém
   o alinhamento anterior. */
.bio-chips--logos .wp-block-image {
  margin: 0;
}

/* ═══════════════════════════════════════════
   v4.6.0 — Faixa de reembolso em azul + CTA primary
   A faixa era dourado-pale com um link fantasma. Vira azul da paleta com o
   botão padrão .btn--primary. Sobrescreve as duas regras antigas (347 e 2172).
   ═══════════════════════════════════════════ */
.intro-strip {
  background: var(--wp--preset--color--azul, #112534) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.intro-strip__text {
  color: #fff;
}
.intro-strip__text strong {
  color: var(--wp--preset--color--accent, #c19b73);
}
/* o botão vive num core/buttons; zera a margem que o core dá ao wrapper */
.intro-strip .wp-block-buttons {
  margin: 0;
}
.intro-strip .wp-block-button__link {
  font-size: .82rem;
  padding: 10px 22px;
}

/* ── Régua de credenciais com ícone (bloco dr-robson/hero-trust) ──
   Substitui o par valor+rótulo. Ícone dourado ao LADO do texto; 2 colunas no
   desktop porque com o ícone na horizontal 4 colunas deixariam ~100px pro texto
   e frases como "Atendimento online e presencial em São Paulo" quebrariam em 5
   linhas. Modificador `--light` para fundo claro (usado na /urologia-geral/). */
.hero-home__trust--icons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 32px;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.hero-home__trust--icons .hero-home__trust-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.hero-home__trust-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--wp--preset--color--accent, #c19b73);
}
.hero-home__trust-icon svg {
  width: 32px;
  height: 32px;
  display: block;
}
.hero-home__trust-text {
  margin: 0;
  font-size: .86rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, .82);
  text-wrap: balance;
}
/* Variante clara: mesma régua sobre fundo off-white (intro da /urologia-geral/) */
.hero-home__trust--light {
  border-top: 1px solid var(--wp--preset--color--cinza-linha, #E0DBD3);
  border-bottom: 1px solid var(--wp--preset--color--cinza-linha, #E0DBD3);
  padding-bottom: 28px;
  margin: 28px 0;
}
.hero-home__trust--light .hero-home__trust-text {
  color: var(--wp--preset--color--texto-leve, #5A5550);
}
@media (max-width: 700px) {
  .hero-home__trust--icons { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* ── Topbar: ícones maiores (pin de localização, WhatsApp e Instagram) ──
   A regra global é 12px (e há um !important no media query de mobile), então
   este override precisa vir depois e com !important pra valer nos dois. */
.topbar__item svg {
  width: 16px !important;
  height: 16px !important;
}

/* ── Editor: animações de entrada não podem esconder conteúdo ──
   `.fade-in` (e os cards de depoimento) nascem com opacity:0 e só ganham
   `.is-visible` pelo site.js, que NÃO roda no editor. Seções inteiras apareciam
   vazias pro cliente — a de "Canais de atendimento" do Contato era o caso mais
   visível: título aparecia, os 3 cards e o formulário não.

   Precisa de DOIS seletores porque o CSS do tema chega de jeitos diferentes:
   • no canvas o WP prefixa cada seletor com `.editor-styles-wrapper`;
   • no iframe sandbox dos core/html o CSS entra CRU, e o <body> de lá não tem
     essa classe — o que o identifica é o atributo `data-resizable-iframe-connected`.
   Por isso `.editor-styles-wrapper …` sozinho não resolvia o Contato. */
.editor-styles-wrapper .fade-in,
.editor-styles-wrapper .depoimento-card,
.editor-styles-wrapper .testimonial-card,
.editor-styles-wrapper .depoimentos-section .diferencial-card,
body[data-resizable-iframe-connected] .fade-in,
body[data-resizable-iframe-connected] .depoimento-card,
body[data-resizable-iframe-connected] .testimonial-card,
body[data-resizable-iframe-connected] .diferencial-card {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* ═══════════════════════════════════════════
   v4.7.0 — seções que saíram de core/html para blocos core
   Os wrappers do core (wp-block-group, is-layout-flow, wp-block-buttons) trazem
   margens próprias; aqui elas voltam ao espaçamento original de cada seção.
   ═══════════════════════════════════════════ */

/* ── Intro da /urologia-geral/ (era um core/html gigante) ──
   As regras de layout do core vêm dentro de `:where()` (especificidade 0), então
   qualquer regra de classe as vence — não precisa de reset geral, só devolver a
   cada elemento a margem que ele tinha quando era HTML solto. */
.intro-sticky > .wp-block-group,
.sticky-side > .wp-block-group,
.intro-sticky .wp-block-buttons {
  margin-block: 0;
}
.intro-sticky .section-label {
  margin: 0;
}
.intro-sticky__title.wp-block-heading {
  font-size: 2.4rem;
  margin: 12px 0 24px;
}
.intro-sticky__lede {
  font-size: 1.05rem;
  color: var(--wp--preset--color--texto-leve, #5A5550);
  line-height: 1.72;
  margin: 0 0 14px;
}
.intro-sticky__lede:last-of-type {
  margin-bottom: 0;
}
.intro-sticky__main .hero-home__trust--light {
  margin: 28px 0;
}
/* Mesma intro sobre fundo escuro (/estetica-intima-masculina/, v4.11.0). O que
   era style inline em cada tag do core/html mora aqui. */
.is-variant-estetica .intro-sticky__title.wp-block-heading { color: #fff; }
.is-variant-estetica .intro-sticky__title strong { color: var(--gold); }
.is-variant-estetica .intro-sticky__lede {
  font-size: 1rem;
  color: rgba(255,255,255,.7);
}
.is-variant-estetica .intro-sticky__lede:last-of-type { margin-bottom: 32px; }
.sigilo-note {
  margin: 0;
  padding: 16px;
  border-radius: 8px;
  background: rgba(201,168,76,.08);
  border: 1px solid rgba(201,168,76,.18);
  font-size: .82rem;
  line-height: 1.55;
  color: rgba(255,255,255,.7);
}
.sigilo-note strong { color: var(--wp--preset--color--ouro); }

/* Caixa de LGPD da página de contato (era core/html com style inline, v4.11.0) */
.lgpd-note {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  padding: 24px 28px;
  border-radius: 12px;
  background: var(--wp--preset--color--muted);
  border: 1px solid var(--wp--preset--color--cinza-linha);
}
.lgpd-note > * { margin-block: 0; }
.lgpd-note__text {
  margin: 0;
  max-width: 680px;
  font-size: .92rem;
  color: var(--wp--preset--color--texto-leve);
}
.lgpd-note__text a {
  color: var(--wp--preset--color--accent);
  font-weight: 600;
}
.lgpd-note__actions { gap: 8px; }

/* ════════════════════════════════════════════════════════════════
   REGRA GERAL DO GAP DUPLO (v4.12.0) — leia antes de converter qualquer
   core/html pra blocos.

   O core injeta `margin-block-start: var(--wp--style--block-gap)` em todo
   filho de `.is-layout-flow` / `.is-layout-constrained`. Quando o CSS do tema
   transforma esse mesmo container em flex/grid com `gap`, os dois se SOMAM:
   um card com gap:14 aparece com 38px entre título e texto. É o "gap entre os
   blocos" que voltou umas dez vezes — cada conversão nova reintroduzia o bug
   num container diferente.

   ATENÇÃO: a regra abaixo é uma lista de classes comum, especificidade (0,1,0).
   Ela NÃO usa `:where()` (o arquivo inteiro não tem um `:where()` em seletor).
   Ou seja, ela empata com qualquer regra de uma classe só e, por estar aqui no
   fim do arquivo, ganha no desempate por ordem. Margem declarada de propósito
   pelo tema para um filho destes containers precisa citar o pai
   (`.agendamento-info > .agendamento-fallback`) ou vir depois daqui.

   ➜ Container do tema que é flex/grid COM gap entra nesta lista. Sempre.
   ════════════════════════════════════════════════════════════════ */
.diferencial-card > *,
.filosofia__card > *,
.area-card > *,
.agendamento-inner > *,
.agendamento-info > *,
.contato-2col > *,
.contato-2col__channels > *,
.contato-2col__form > *,
.bio-grid__sticky > *,
.cta-box > *,
.nav-box > *,
.sticky-side > *,
.intro-sticky > *,
.unidade-card__body > *,
.hero-home__badge-info > *,
.faq-section__sticky > *,
.tele-snippet > *,
.lgpd-note > *,
.legal-hero__inner > *,
.legal-hero__meta > *,
.legal-document > *,
.legal-toc__head > *,
.legal-contact-box > *,
.legal-contact-box__body > *,
.legal-prose > *,
.legal-section > * { margin-block-start: 0; }

/* Seções de largura total encostam uma na outra: cada uma já traz o próprio
   padding vertical. Sem isto o block-gap do post-content abre 24px do fundo do
   body ENTRE duas faixas coloridas — a listra branca entre a seção escura e a
   seguinte na /estetica-intima-masculina/. Prosa solta (p/h2/ul direto no
   post-content das páginas-guia e do blog) não é afetada. */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .alignwide,
.entry-content > .alignfull,
.entry-content > .alignwide { margin-block-start: 0; }

/* ════════════════════════════════════════════
   DOCUMENTOS LEGAIS — depois da conversão pra blocos (v4.11.0)
   Os dois core/html viraram grupos/parágrafos/listas. Três coisas mudaram e
   precisam de regra: (1) os SVG agora vêm do bloco dr-robson/icon, que não
   escreve width/height na tag; (2) o layout do core passa a somar
   margin-block-start entre irmãos; (3) os ícones que ficavam INLINE com texto
   (chips do hero, botão de telefone) não cabem num bloco — viram ::before.
   ════════════════════════════════════════════ */
.legal-hero__deco svg { width: 48px; height: 48px; }
.legal-toc__icon svg { width: 20px; height: 20px; }
.legal-contact-box__icon svg { width: 32px; height: 32px; }

.legal-hero__inner > *,
.legal-hero__meta > *,
.legal-document > *,
.legal-toc__head > *,
.legal-contact-box > *,
.legal-contact-box__body > *,
.legal-prose > *,
.legal-section > * { margin-block-start: 0; }
.legal-contact-box__body .section-label { margin: 0 0 6px; }
.legal-contact-box__actions { margin-block: 0; }
.legal-toc__list.wp-block-list { padding-left: 0; }

/* Chips: o ícone era um <svg> irmão do texto dentro do <span>. */
.legal-hero__chip::before {
  content: '';
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background-color: currentColor;
  -webkit-mask: var(--chip-icon) center / contain no-repeat;
  mask: var(--chip-icon) center / contain no-repeat;
  color: var(--wp--preset--color--ouro, #BE9663);
  --chip-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}
.legal-hero__chip--check::before {
  color: #15803d;
  --chip-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}
/* O ghost do card virou core/button: a classe .btn--ghost está no wrapper, e
   quem pinta é o <a>. Sem isto ele herda o azul-escuro do .btn--ghost global e
   some no fundo do card. */
.legal-contact-box .wp-block-button.btn--ghost > .wp-block-button__link {
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
}
.legal-contact-box .wp-block-button.btn--ghost > .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.48) !important;
  color: #fff !important;
}
.legal-contact-box__cta--tel .wp-block-button__link::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 8px;
  vertical-align: -3px;
  background-color: currentColor;
  -webkit-mask: var(--tel-icon) center / contain no-repeat;
  mask: var(--tel-icon) center / contain no-repeat;
  --tel-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.37 1.9.72 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.35 1.85.59 2.81.72A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}

/* core/table põe a className no <figure>; as regras de caixa miravam o <table>. */
.wp-block-table.legal-table { margin: 0; }
.wp-block-table.legal-table > table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Roboto", system-ui, sans-serif;
  font-size: 0.88rem;
  min-width: 560px;
}
/* core/table desenha grade em todas as células; a tabela de cookies só tem
   linha horizontal. Zera as laterais sem tocar no border-bottom das regras
   .legal-table thead th / tbody td. */
.wp-block-table.legal-table > table :is(th, td) {
  border-left: 0;
  border-right: 0;
  border-top: 0;
}
/* cta-box e nav-box são flex column com gap; as margens abaixo somam ao gap
   exatamente como somavam quando eram <p>/<span> soltos no HTML */
.cta-box .cta-box__desc {
  margin: 1em 0;
}
.cta-box .cta-box__actions {
  margin: 4px 0 0;
}
.nav-box .nav-box__title {
  margin: 0 0 8px;
}
.nav-box .nav-box__row {
  margin: 0;
}
.nav-box .nav-box__row .nav-box__link {
  display: block;
}
/* A divisória era `border-bottom` no próprio <a>. Com o link dentro de um
   <p class="nav-box__row">, alguma regra de link genérica passou a ganhar dele
   e as linhas sumiram — a borda mora no <p> agora, que ninguém disputa. */
.nav-box .nav-box__row {
  border-bottom: 1px solid var(--line);
}
.nav-box .nav-box__row:last-child {
  border-bottom: 0;
}
.nav-box .nav-box__row .nav-box__link {
  border-bottom: 0;
}

/* Os CTAs do card eram <a> filhos diretos de um flex column, então esticavam
   na largura toda. Viraram core/button: o .wp-block-buttons traz
   `align-items:center`, que encolhe cada botão pro tamanho do texto. */
.cta-box__actions.wp-block-buttons {
  align-items: stretch;
}
.cta-box__actions .wp-block-button {
  width: 100%;
}
.cta-box__actions .wp-block-button .wp-block-button__link {
  width: 100%;
  justify-content: center;
}

/* ── Aside do FAQ da home (era core/html) ──
   O eyebrow virou <p>, então passou a bater na regra `.faq-section__sticky p`
   (cinza, .95rem). Devolve o visual de rótulo. */
.faq-section .faq-section__sticky p.section-label {
  font-size: .7rem;
  color: var(--wp--preset--color--accent, #c19b73);
  max-width: none;
  margin: 0 0 16px;
}
.faq-section .faq-section__sticky .wp-block-buttons {
  margin: 0;
}

/* ═══════════════════════════════════════════
   v4.7.0 — HERO NO TABLET (601–900px)
   O bloco de ~7160 capa a foto em `min(90vw, 380px)` para TODA largura ≤900px.
   Isso resolve o celular, mas em tablet a foto virava um quadrado de 380px
   encostado à direita (`margin-left:auto`), deixando metade da faixa vazia e o
   card "Dr. Robson Laranja" flutuando fora dela. Nesta faixa a foto vira banner
   largo e o card volta pra dentro dela.
   ═══════════════════════════════════════════ */
@media (min-width: 481px) and (max-width: 900px) {
  .hero-home__photo-img,
  .hero-home__photo .wp-block-image,
  .hero-home__photo figure.wp-block-image {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    aspect-ratio: 16 / 10 !important;
    border-radius: var(--r2, 20px) !important;
  }
  .hero-home__photo-img img,
  .hero-home__photo figure.wp-block-image img,
  .hero-home__photo .wp-block-image img {
    border-radius: inherit !important;
    object-position: center 22% !important;
  }
  .hero-home__badge {
    left: auto !important;
    right: 20px !important;
    bottom: 20px !important;
    transform: none !important;
  }
  /* nesta largura os dois CTAs cabem lado a lado */
  .hero-home__actions {
    flex-direction: row !important;
    align-items: center !important;
    width: auto !important;
    gap: 16px !important;
  }
  .hero-home__actions .wp-block-button,
  .hero-home__actions .btn,
  .hero-home__actions a.btn,
  .hero-home__actions .wp-block-button__link {
    width: auto !important;
  }
}

/* ═══════════════════════════════════════════
   v4.8.0 — Cards de canal: só cores da marca
   O WhatsApp vinha verde (#128C7E) e o Instagram roxo/degradê Instagram. Pedido
   do cliente: nada fora do branding (azul + dourado). Sobrescreve os blocos de
   ~4241, ~4316 e ~4570.
   ═══════════════════════════════════════════ */
.channel-card-v2--whatsapp .channel-card-v2__icon-wrap,
.channel-card-v2--instagram .channel-card-v2__icon-wrap,
.channel-card-v2--phone .channel-card-v2__icon-wrap {
  background: radial-gradient(circle, rgba(193, 155, 115, .20) 0%, transparent 70%);
  color: var(--wp--preset--color--accent, #c19b73);
}
.channel-card-v2--whatsapp .channel-card-v2__icon-wrap::after,
.channel-card-v2--instagram .channel-card-v2__icon-wrap::after,
.channel-card-v2--phone .channel-card-v2__icon-wrap::after {
  border-color: rgba(193, 155, 115, .34);
}
/* badges: o verde do "mais rápido" e o roxo do Instagram viram dourado */
.channel-card-v2__badge,
.channel-card-v2__badge--purple {
  background: rgba(193, 155, 115, .14);
  color: #7a5a2a;
  border-color: rgba(193, 155, 115, .40);
}
.channel-card-v2__dot {
  background: var(--wp--preset--color--accent, #c19b73);
}
/* CTA/seta: azul da marca em todas as variantes */
.channel-card-v2--whatsapp .channel-card-v2__cta,
.channel-card-v2--instagram .channel-card-v2__cta,
.channel-card-v2--row.channel-card-v2--whatsapp .channel-card-v2__arrow,
.channel-card-v2--row.channel-card-v2--instagram .channel-card-v2__arrow {
  background: var(--wp--preset--color--secondary, #0A1929);
}
.channel-card-v2--whatsapp:hover .channel-card-v2__cta,
.channel-card-v2--instagram:hover .channel-card-v2__cta,
.channel-card-v2--row.channel-card-v2--whatsapp:hover .channel-card-v2__arrow,
.channel-card-v2--row.channel-card-v2--instagram:hover .channel-card-v2__arrow {
  background: #061429;
}

/* ── Ícone duplicado no card de telefone/WhatsApp ──
   A regra genérica que injeta um glifo via ::before em `a[href^="tel:"]` e
   `a[href*="whatsapp"]` também pegava os cards de canal, que JÁ têm o ícone no
   círculo. Some com o segundo. */
a.channel-card-v2::before {
  content: none !important;
  display: none !important;
}

/* Badge e pontinho do formulário: mesma paleta dos cards (eram verde #25D366) */
.contato-form-card__badge {
  background: rgba(193, 155, 115, .14);
  color: #7a5a2a;
  border-color: rgba(193, 155, 115, .40);
}
.channel-card-v2__dot,
.contato-form-card__dot {
  background: var(--wp--preset--color--accent, #c19b73);
  box-shadow: 0 0 0 0 rgba(193, 155, 115, .55);
}

/* O "Aceitando pacientes" saiu do core/html e virou parágrafo editável; o
   <span> do pontinho não sobrevive a essa conversão, então ele volta como
   ::before (mesmo tamanho, cor e pulso do `.hero-home__badge-dot`). */
p.hero-home__badge-status::before {
  content: '';
  display: block;
  width: 8px;
  height: 8px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #4ade80;
  animation: pulse 1.5s ease-in-out infinite;
}
p.hero-home__badge-status {
  margin: 0;
}

/* O contato do card de unidade vem do bloco dr-robson/unidade-contato, e seus
   elementos entram soltos no flex do `.unidade-card__body`. O layout do core
   injeta `margin-block-start` neles, somando ao gap de 14px do card e abrindo
   um vão que não existia quando isso era HTML estático. */
.unidade-card__body > .unidade-card__divider,
.unidade-card__body > .unidade-card__contact {
  margin-block-start: 0;
}
.unidade-card__phone-icon {
  vertical-align: -2px;
}

/* ═══════════════════════════════════════════════════════════════
   4.21.0 — CTA final da home usa o card de canal da página de Contato
   O card antigo (.channel-card) era um retângulo translúcido sem ícone
   e sem badge; os mesmos dois telefones apareciam com duas caras no
   mesmo site. Agora os dois lugares renderizam .channel-card-v2--row.
   ═══════════════════════════════════════════════════════════════ */
.cta-final__canais {
  margin-bottom: 20px;
}
/* O card herda `color: inherit`; dentro da CTA final o texto ambiente é
   branco, e o card é claro. Sem isto, qualquer texto do card sem cor
   própria sairia branco no branco. */
.cta-final__canais .channel-card-v2 {
  color: var(--wp--preset--color--secondary, #0A1F38);
}

/* ═══════════════════════════════════════════════════════════════
   4.24.0 — Enquadramento da foto do Dr. Robson no /sobre/
   A foto é retrato (2544x3392) num quadro de ALTURA FIXA e largura
   100%. Enquanto o layout é de 2 colunas (>=1000px) o quadro é alto e
   estreito e a foto cabe. Ao empilhar, o quadro vira uma faixa
   horizontal e o `object-position: 50% 50%` do padrão recorta o MEIO
   da imagem — cortando a cabeça. Em 768px chega a 67% da foto fora.
   A home já resolvia isso com foco a 22%; aqui tinha ficado no padrão.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 999px) {
  .hero-sobre__photo img {
    object-position: center 18%;
  }
}

/* ═══════════════════════════════════════════════════════════════
   4.24.0 — Alinhamentos laterais (só mobile/tablet; desktop intacto)
   ═══════════════════════════════════════════════════════════════ */

/* 1. Herói x corpo na mesma página.
   O herói tinha 32px fixo enquanto o conteúdo usa o gutter global de
   24px: o título nunca alinhava com o texto logo abaixo. Vale só até
   868px — a partir daí o corpo passa a centralizar sozinho pelo
   contentSize de 820px, que é o design e não se mexe. */
@media (max-width: 867px) {
  .page-hero {
    padding-left: var(--wp--preset--spacing--50, 24px);
    padding-right: var(--wp--preset--spacing--50, 24px);
  }
}

/* 2. Galeria do /sobre/.
   `.bio-gallery` tinha padding lateral próprio DENTRO de um container
   que já estava na margem do conteúdo, somando recuo em cima de recuo:
   as fotos ficavam 48px mais estreitas que o texto ao lado delas. */
@media (max-width: 999px) {
  .bio-gallery {
    padding-left: 0;
    padding-right: 0;
  }
}

/* 3. Widget da Doctoralia.
   O iframe vem com largura própria (245px) e o CSS só o centralizava,
   nunca o esticava: ficava estreito e fora do eixo do conteúdo. Como é
   iframe de terceiro, forçamos a largura no contêiner e no próprio
   iframe — o conteúdo interno dele é responsivo e se ajusta. */
.tcar__doctoralia-embed {
  width: 100%;
}
.tcar__doctoralia-embed > *,
.tcar__doctoralia-embed iframe {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 4. Herói do /sobre/: padding somado em cima de padding.
   `.page-hero` já entrega o gutter; `.hero-sobre__inner` acrescentava
   outros 24px, jogando o título para 48px enquanto o corpo da página
   ficava em 24px. Só mobile/tablet — no desktop o respiro maior é
   proposital e não se mexe. */
@media (max-width: 867px) {
  .hero-sobre__inner {
    padding-left: 0;
    padding-right: 0;
  }
}

/* 5. Contêiner do widget da Doctoralia.
   `.tcar__doctoralia` tem `margin: 48px auto 0` e é filho de um flex
   column: com margem automática o item encolhe até o tamanho do
   conteúdo em vez de esticar. Sem isto, forçar a largura só do iframe
   não adianta — o contêiner continua estreito e fora do eixo.

   OBRIGATÓRIO limitar a até 991px: a partir de 992px o `.tcar__body`
   vira `flex-direction: row` e este elemento passa a ser a COLUNA
   DIREITA. Aplicar 100% lá derruba a coluna esquerda de 824px para
   244px — regressão que o style-contract pegou na primeira tentativa. */
@media (max-width: 991px) {
  .tcar__doctoralia {
    width: 100%;
  }
}

/* 6. Calendário de agendamento da Doctoralia.
   O wrapper já era 100%, mas o iframe dentro dele traz `width` inline
   próprio (245-264px) e ficava estreito e fora do eixo do conteúdo.
   Mesmo tratamento do outro embed: a largura é nossa, o conteúdo
   interno do widget é responsivo e se acomoda. */
.agendamento-widget-wrap iframe {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* 7. Coluna do calendário de agendamento.
   `.agendamento-inner` acrescentava 24px dentro de um grupo alignfull
   que JÁ reaplica o gutter de 24px — o widget começava em 48px enquanto
   o texto da mesma seção começava em 24px. É o mesmo padding-dentro-de-
   padding do herói e da galeria. Escopo mobile/tablet, onde o desalinho
   aparece; o desktop fica como está. */
@media (max-width: 999px) {
  .agendamento-inner {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ── Card do DPO: botões na largura do card, SÓ no mobile ──
   Os dois CTAs são `inline-flex` e ficam com a largura do próprio texto (144px
   e 184px). No desktop isso é o desejado e não se mexe. Abaixo de 720px o card
   já vira coluna única e os botões ficavam curtos e centralizados no meio de um
   corpo estreito — aqui eles passam a ocupar a largura útil do card. */
@media (max-width: 720px) {
  .legal-contact-box__actions {
    flex-direction: column;
    /* `.wp-block-buttons` do core centraliza os itens no eixo transversal, que
       em coluna é a largura — sem isto os botões voltam ao tamanho do texto. */
    align-items: stretch;
  }
  .legal-contact-box__actions .legal-contact-box__cta > .wp-block-button__link {
    display: block;
    width: 100%;
    text-align: center;
  }
}

/* ═══════════════════════════════════════════
   v4.29.0 — Atendimento particular (proposta nova)
   Bloco dr-robson/atendimento-particular. Duplicata de #reembolso para
   comparação: reaproveita .process__head, .process__title, .process__desc e
   .process__note (os seletores #reembolso já foram estendidos para
   #atendimento-particular acima). Aqui ficam só as partes que a versão nova
   tem e a antiga não: os cards de benefício e o rodapé do box de reembolso.
   ═══════════════════════════════════════════ */

.process__cards-col { display: flex; flex-direction: column; }

/* Cards de benefício. A versão antiga usava <ol> numerada porque a ordem ERA o
   conteúdo (as etapas do reembolso); aqui são dois benefícios lado a lado, sem
   sequência, então viram caixas com borda própria em vez de itens de lista. */
.process__cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 28px;   /* mesmo gap do grid .diferenciais */
}
/* Sem estilo de card aqui de proposito: as caixas usam `.diferencial-card`,
   o card branco que o site ja tem (blog-preview, especializacoes-grid). O que
   eu havia escrito antes divergia do padrao em borda, padding, sombra e
   tipografia. `.process__cards` cuida so do empilhamento. */

/* Bloco do reembolso: agora tem título e botão próprios, então o conteúdo do
   aside vira uma coluna ao lado do ícone, em vez de um parágrafo solto. */
.process__note-body { display: flex; flex-direction: column; gap: 6px; }
.process__note-title {
  margin: 0;
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--wp--preset--color--secondary, #0A1F38);
}
.process__note--reembolso .process__note-text { margin: 0; }
/* CTA secundario: vazado e FORA do box do reembolso, logo abaixo dele.
   `align-self: flex-start` para nao esticar na largura da coluna flex. */
.process__note-btn {
  align-self: flex-start;
  margin-top: 16px;
}

/* A borda padrao do .btn--ghost e `--cinza-linha` (#DDD8D0), pensada para
   fundo branco. Sobre o bege desta secao (rgb 241,232,220) ela mede 1,14:1 de
   contraste, ou seja, some. O navy da propria marca a 55% da 3,63:1, passa o
   minimo de 3:1 que a WCAG pede para borda de controle e ainda fica bem abaixo
   do CTA principal, que continua sendo o preenchido. O hover ja leva ao navy
   pleno pela regra do proprio .btn--ghost.
   Escopo restrito a esta secao: o .btn--ghost do resto do site vive sobre
   outros fundos e nao foi pedido. */
#reembolso .process__note-btn,
#atendimento-particular .process__note-btn {
  border-color: rgba(10,31,56,.55);
}


/* ==========================================================================
   Alvos de toque no celular (WCAG 2.5.8, mínimo 24x24; alvo confortável 44px)
   --------------------------------------------------------------------------
   O que entra aqui é navegação e controle: link de rodapé, telefone, botão de
   ícone, checkbox de consentimento. Link dentro de parágrafo de texto corrido
   fica de fora de propósito, porque a própria norma o isenta e aumentá-lo
   quebraria o ritmo da leitura.

   Só no celular: no desktop o ponteiro é preciso e o espaçamento extra só
   afastaria os itens sem motivo.
   ========================================================================== */
@media (max-width: 767px) {

  /* Listas de links do rodapé: a área clicável passa a ocupar a linha inteira. */
  .site-footer__links a,
  .site-footer__legal a,
  .site-footer__addr a,
  .unidade-card__phone,
  .unidade-card__contact-row a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Botões de ícone: quadrados de 44, sem mudar o tamanho do desenho. */
  .tcar__playpause,
  .lightbox-trigger,
  .topbar__toggle {
    min-width: 44px;
    min-height: 44px;
  }

  /* O "pular para o conteúdo" só aparece com foco de teclado, mas quando
     aparece precisa ser alcançável do mesmo jeito. A regra vale sempre, e não
     só no `:focus`, porque a caixa do link existe antes de ele ficar visível. */
  .skip-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-inline: 12px;
  }

  /* Campos do formulário e logo do menu: faltavam poucos pixels. */
  .form__input,
  .form__group select,
  .form__group textarea {
    min-height: 44px;
  }
  .nav-main__logo {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Consentimento: o quadrado do checkbox continua do tamanho que é, quem
     cresce é a área do rótulo, que é o que o dedo acerta. */
  .form__lgpd {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 44px;
    padding-block: 6px;
  }
  .form__lgpd input[type="checkbox"] {
    flex: none;
    /* min-width porque a largura do checkbox vinha de uma regra mais forte
       e o `width` sozinho não pegava: ficava 16 de largura por 22 de altura. */
    min-width: 24px;
    min-height: 24px;
    width: 24px;
    height: 24px;
    margin-top: 2px;
  }

  /* Botões do aviso de cookies. */
  .cookie-btn {
    min-height: 44px;
  }

  /* Setas do widget de avaliações. São marcação do fornecedor, então aqui vale
     só o tamanho do alvo: o desenho da seta continua sendo o dele. */
  .tcar__google-embed .rpi-ltgt {
    min-width: 44px !important;
    min-height: 44px !important;
  }
}
