/* APFedu / henriquetasca — complemento do header: dropdowns no hover (desktop) */

/* Paleta global mais viva (sobrepõe #289b5f / dourados do main.css onde aplicável) */
:root {
  --ht-accent-green: #28e8a8;
  --ht-accent-green-mid: #1fd693;
  --ht-accent-green-deep: #18c07a;
  --ht-accent-green-dark: #159965;
  --ht-accent-gold: #f7ef9a;
  --ht-accent-gold-soft: #fff8c4;
  --ht-accent-teal: #00b8e5;
}

/* Menu Sobre: itens ocultos temporariamente — remova a classe nav-item-oculto dos <li> para voltar a exibir */
.nav-item-oculto {
  display: none !important;
}

html {
  scrollbar-color: var(--ht-accent-green-deep) #eaeaea;
}

*::-webkit-scrollbar-thumb {
  background-color: var(--ht-accent-green-deep) !important;
}

body::-webkit-scrollbar-thumb {
  background-color: var(--ht-accent-green-deep) !important;
}

a.abra-conta,
.abra-conta.btn,
button.abra-conta {
  background-color: var(--ht-accent-green-deep) !important;
  -webkit-box-shadow: 0 0.45rem 1.6rem rgba(24, 192, 122, 0.38);
  box-shadow: 0 0.45rem 1.6rem rgba(24, 192, 122, 0.38);
}

a.abra-conta:hover,
.abra-conta.btn:hover,
button.abra-conta:hover {
  background-color: var(--ht-accent-green-mid) !important;
  -webkit-filter: brightness(1.05);
  filter: brightness(1.05);
}

.s-banner .right .grid-conteudo.banner-grid-prospeccao li a:hover {
  background-color: var(--ht-accent-green-deep) !important;
}

/* Logo marca (substitui background Mont Capital em main.css) — PNG com fundo próprio */
header .logo,
header.fixed-header .logo {
  background: transparent !important;
  width: auto;
  height: auto;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: grid;
  place-items: center start;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

header .logo .logo-img {
  grid-area: 1 / 1;
  display: block;
  height: 4.8rem;
  width: auto;
  max-height: 4.8rem;
  -o-object-fit: contain;
  object-fit: contain;
}

/* Topo (abertura / hero): logo creme (fundo escuro); após scroll: logo escuro clássico */
header:not(.fixed-header) .logo .logo-img--scrolled {
  display: none;
}

header.fixed-header .logo .logo-img--hero {
  display: none;
}

header.fixed-header .logo .logo-img--scrolled {
  display: block;
}

/* Páginas internas (sem hero escuro): barra clara e logo sempre visível */
body.pag-interna header.js-header {
  background: #fff !important;
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.07);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.07);
  padding-top: 1.35rem !important;
  padding-bottom: 1.35rem !important;
}

body.pag-interna header.js-header:not(.fixed-header) .logo {
  display: grid;
}

body.pag-interna header.js-header:not(.fixed-header) .logo-img--hero {
  display: none;
}

body.pag-interna header.js-header:not(.fixed-header) .logo-img--scrolled {
  display: block;
}

body.pag-interna header.js-header:not(.fixed-header) nav .btn-drop,
body.pag-interna header.js-header:not(.fixed-header) nav .btn-drop span {
  color: #23292e;
}

/* Páginas internas: barra do menu alinhada (logo · itens · Login) e respiração lateral */
body.pag-interna header.js-header .container {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: clamp(1.4rem, 3.5vw, 3.2rem);
  max-width: 120rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(1.5rem, 2.8vw, 2.8rem);
  padding-right: clamp(1.5rem, 2.8vw, 2.8rem);
}

body.pag-interna header.js-header .logo {
  margin-right: 0;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}

body.pag-interna header.js-header nav {
  gap: clamp(1rem, 2.2vw, 2rem);
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

body.pag-interna header.js-header nav > ul {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

body.pag-interna header.js-header nav > ul > li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-right: clamp(1.4rem, 2.2vw, 2.8rem) !important;
}

body.pag-interna header.js-header nav > ul > li:last-child {
  margin-right: 0 !important;
}

body.pag-interna header.js-header .btn-drop {
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  min-height: 4.2rem;
}

body.pag-interna header.js-header:not(.fixed-header) .btn-drop span {
  font-weight: 500;
  line-height: 1.2;
  font-size: 1.8rem !important;
}

body.pag-interna header.js-header nav .btn-drop img {
  width: 9px !important;
  height: 9px !important;
  margin-left: 0.5rem !important;
  -ms-flex-item-align: center;
  align-self: center;
  opacity: 0.72;
  -webkit-filter: saturate(0.65);
  filter: saturate(0.65);
}

body.pag-interna header.js-header nav .btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}

body.pag-interna header.js-header nav .btns .btn.login {
  padding: 0.65rem 2.35rem !important;
  font-size: 1.74rem !important;
  font-weight: 600;
  line-height: 1.25 !important;
}

body.pag-interna header.js-header.fixed-header {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

body.pag-interna .pagina-interna {
  padding: 11rem 0 5rem;
}

body.pag-interna .metodologia-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 34rem);
  gap: 3.6rem 4rem;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: start;
}

body.pag-interna .metodologia-texto h1 {
  margin-bottom: 2rem;
}

body.pag-interna .metodologia-intro {
  font-size: 1.7rem;
  line-height: 1.6;
  margin-bottom: 2.8rem;
}

body.pag-interna .metodologia-etapa {
  margin-bottom: 2.4rem;
}

body.pag-interna .metodologia-etapa h2 {
  font-size: 1.9rem;
  font-weight: 600;
  margin-bottom: 0.6rem;
  color: #23292e;
}

body.pag-interna .metodologia-etapa-lead {
  font-weight: 600;
  color: #007da2;
  margin-bottom: 0.8rem;
  font-size: 1.5rem;
}

body.pag-interna .metodologia-etapa p:last-child {
  margin-bottom: 0;
}

body.pag-interna .metodologia-fechamento {
  margin-top: 2.8rem;
  font-size: 1.65rem;
  font-weight: 500;
  line-height: 1.55;
}

body.pag-interna .metodologia-foto {
  margin: 0;
  position: -webkit-sticky;
  position: sticky;
  top: 10rem;
}

body.pag-interna .metodologia-foto.hero-foto-matte {
  border-radius: 10px;
  -webkit-box-shadow:
    0 1.8rem 4.2rem rgba(0, 0, 0, 0.2),
    0 0 0 1px rgba(238, 220, 130, 0.22),
    0 0 2rem rgba(238, 220, 130, 0.1);
  box-shadow:
    0 1.8rem 4.2rem rgba(0, 0, 0, 0.2),
    0 0 0 1px rgba(238, 220, 130, 0.22),
    0 0 2rem rgba(238, 220, 130, 0.1);
}

body.pag-interna .metodologia-foto img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(85vh, 56rem);
  -o-object-fit: contain;
  object-fit: contain;
  -o-object-position: bottom center;
  object-position: bottom center;
  border-radius: 0;
  background: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

/* Ilustração do funil (fundo claro — sem vinheta hero) */
body.pag-interna .metodologia-foto.metodologia-funil-fig {
  border-radius: 12px;
  overflow: hidden;
  max-width: min(40rem, 100%);
  margin-left: auto;
  margin-right: auto;
  -webkit-box-shadow: 0 1rem 2.8rem rgba(0, 0, 0, 0.1);
  box-shadow: 0 1rem 2.8rem rgba(0, 0, 0, 0.1);
}

body.pag-interna .metodologia-foto.metodologia-funil-fig img {
  max-height: min(72vh, 52rem);
  -o-object-position: center center;
  object-position: center center;
}

@media (max-width: 900px) {
  body.pag-interna .metodologia-grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  body.pag-interna .metodologia-foto {
    position: relative;
    top: auto;
    max-width: 32rem;
    margin: 0 auto;
    order: -1;
  }
}

body.pag-interna .pagina-interna .container {
  max-width: 72rem;
}

body.pag-interna main.pagina-metodologia .container {
  max-width: 104rem;
}

/* Página do livro Mapa da Prospecção */
body.pag-interna main.pagina-livro .container {
  max-width: 104rem;
}

body.pag-interna .livro-produto-grid {
  display: grid;
  grid-template-columns: minmax(0, 28rem) minmax(0, 1fr);
  gap: 3.6rem 4.8rem;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: start;
}

body.pag-interna .livro-capa-fig {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  -webkit-box-shadow:
    0 1.2rem 3.2rem rgba(10, 42, 34, 0.18),
    0 0 0 1px rgba(0, 0, 0, 0.06);
  box-shadow:
    0 1.2rem 3.2rem rgba(10, 42, 34, 0.18),
    0 0 0 1px rgba(0, 0, 0, 0.06);
  position: -webkit-sticky;
  position: sticky;
  top: 10rem;
  max-width: 100%;
}

body.pag-interna .livro-capa-fig img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

body.pag-interna .livro-detalhes h1 {
  margin-bottom: 0.8rem;
}

body.pag-interna .livro-subtitulo {
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.45;
  color: #3d4f5c;
  margin-bottom: 2rem;
  max-width: 40ch;
}

body.pag-interna .livro-avaliacao {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  gap: 1.35rem 1.6rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 2.4rem;
  padding: 1.1rem 1.65rem;
  background: #f4f6f8;
  border: 1px solid #e8eaed;
  border-radius: 12px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body.pag-interna .livro-estrelas-visuais {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  align-self: center;
  font-family: "Montserrat", "Fira Sans", Georgia, serif;
  font-size: clamp(2rem, 3.6vw, 2.75rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.1em;
  white-space: nowrap;
  color: #c9a227;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.45);
}

body.pag-interna .livro-avaliacao-texto {
  margin: 0;
  padding: 0;
  -webkit-align-self: center;
  -ms-flex-item-align: center;
  align-self: center;
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.65rem;
  font-weight: 500;
  line-height: 1.35;
  color: #151b22;
  white-space: nowrap;
}

body.pag-interna .livro-avaliacao p.livro-avaliacao-texto {
  margin-bottom: 0;
  max-width: none;
}

body.pag-interna .livro-avaliacao-numero {
  display: inline;
  font-size: 2rem;
  font-weight: 700;
  color: #151b22;
  letter-spacing: -0.02em;
}

@media (max-width: 520px) {
  body.pag-interna .livro-avaliacao {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
    padding: 1rem 1.35rem;
  }

  body.pag-interna .livro-avaliacao-texto {
    white-space: normal;
    line-height: 1.4;
  }

  body.pag-interna .livro-estrelas-visuais {
    letter-spacing: 0.08em;
  }
}

body.pag-interna .livro-corpo-texto p {
  max-width: 58ch;
}

body.pag-interna .livro-oferta {
  margin-top: 2.8rem;
  padding-top: 2.4rem;
  border-top: 1px solid #e8eaed;
}

body.pag-interna .livro-preco {
  margin-bottom: 0.8rem;
  font-size: 1.8rem;
  line-height: 1.5;
}

body.pag-interna .livro-preco-de {
  display: block;
  font-size: 1.5rem;
  color: #6b7780;
  margin-bottom: 0.4rem;
}

body.pag-interna .livro-preco-de del {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

body.pag-interna .livro-preco-por {
  display: block;
  font-size: 2.4rem;
  font-weight: 600;
  color: #151b22;
}

body.pag-interna .livro-preco-por strong {
  color: var(--ht-accent-green-dark);
  font-weight: 700;
  font-size: 2.85rem;
}

body.pag-interna .livro-oferta-nota {
  font-size: 1.35rem;
  color: #6b7780;
  margin-bottom: 1.6rem;
  max-width: 40ch;
}

body.pag-interna a.livro-cta,
body.pag-interna .livro-cta {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: auto;
  max-width: 100%;
  min-height: 0;
  margin-top: 0.4rem;
  padding: 1.15rem 2.6rem;
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
  text-align: center;
  color: #fff !important;
  background-color: var(--ht-accent-green-deep) !important;
  border: none;
  border-radius: 999px;
  -webkit-box-shadow: 0 0.35rem 1.1rem rgba(24, 192, 122, 0.35);
  box-shadow: 0 0.35rem 1.1rem rgba(24, 192, 122, 0.35);
  text-decoration: none !important;
  -webkit-transition:
    background-color 0.2s ease,
    -webkit-box-shadow 0.2s ease,
    -webkit-transform 0.15s ease;
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.15s ease;
}

body.pag-interna .livro-cta:hover {
  background-color: var(--ht-accent-green-mid) !important;
  -webkit-box-shadow: 0 0.45rem 1.35rem rgba(24, 192, 122, 0.42);
  box-shadow: 0 0.45rem 1.35rem rgba(24, 192, 122, 0.42);
  -webkit-transform: translateY(-1px);
  -ms-transform: translateY(-1px);
  transform: translateY(-1px);
}

body.pag-interna .livro-cta:focus-visible {
  outline: 2px solid #159965;
  outline-offset: 3px;
}

@media (max-width: 900px) {
  body.pag-interna .livro-produto-grid {
    grid-template-columns: 1fr;
    gap: 2.8rem;
  }

  body.pag-interna .livro-capa-fig {
    position: relative;
    top: auto;
    max-width: 24rem;
    margin-left: auto;
    margin-right: auto;
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
  }

  body.pag-interna a.livro-cta,
  body.pag-interna .livro-cta {
    white-space: normal;
    padding: 1.1rem 2rem;
  }

  body.pag-interna .livro-avaliacao {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 1.1rem 1.35rem;
  }
}

body.pag-interna .pagina-interna h1 {
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  margin-bottom: 1.6rem;
  color: #23292e;
}

body.pag-interna .pagina-interna p {
  font-size: 1.6rem;
  line-height: 1.55;
  margin-bottom: 1.2rem;
  max-width: 65ch;
  color: #23292e;
}

/* Blog: <header> dentro do main NÃO é o header do site — main.css fixa todo header {} */
body.pag-interna.pag-blog main header {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: auto !important;
  padding: 0 !important;
  margin: 0;
  background: transparent !important;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  -webkit-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}

body.pag-interna.pag-blog main article footer.blog-artigo-rodape {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  display: block !important;
}

/* Blog — listagem e artigos */
body.pag-interna.pag-blog .pagina-blog-main,
body.pag-interna.pag-blog .pagina-blog-artigo {
  display: block;
  width: 100%;
  max-width: none;
  padding: 15rem 0 4rem;
}

/* menu-mobile fica fixed mesmo fechado: sem isto, em alguns browsers pode interceptar cliques */
html:not(.menu-opened) header .menu-mobile {
  pointer-events: none !important;
}

html.menu-opened header .menu-mobile {
  pointer-events: auto !important;
}

body.pag-interna.pag-blog {
  position: relative;
  scroll-padding-top: 12rem;
}

body.pag-interna.pag-blog header .logo {
  max-width: min(42vw, 20rem);
}

body.pag-interna.pag-blog header .container nav {
  min-width: 0;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

body.pag-interna.pag-blog .blog-wrap--artigo .blog-migalhas {
  margin-bottom: 1.6rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid #e8e8e8;
}

body.pag-interna.pag-blog .blog-skip-link {
  position: absolute;
  left: -10000px;
  top: 0;
  z-index: 3001;
  padding: 1rem 1.4rem;
  background: #23292e;
  color: #fff !important;
  font-size: 1.4rem;
  font-weight: 600;
  border-radius: 0 0 8px 8px;
}

body.pag-interna.pag-blog .blog-skip-link:focus {
  left: 1.6rem;
  outline: 2px solid #007da2;
  outline-offset: 2px;
}

body.pag-interna.pag-blog .blog-artigo-cabeca h1 {
  font-size: clamp(2rem, 4.2vw, 3.2rem);
  line-height: 1.22;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-wrap: break-word;
}

body.pag-interna.pag-blog .blog-wrap {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 clamp(1.6rem, 4vw, 2.4rem);
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  width: 100%;
  gap: 0;
}

body.pag-interna.pag-blog .blog-cabecalho {
  margin-bottom: 2.4rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid #e8e8e8;
}

body.pag-interna.pag-blog .blog-cabecalho h1 {
  margin-bottom: 1rem;
}

body.pag-interna.pag-blog .blog-intro {
  font-size: 1.7rem;
  line-height: 1.55;
  max-width: 65ch;
  margin-bottom: 0;
}

body.pag-interna.pag-blog .blog-lista {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.pag-interna.pag-blog .blog-card {
  padding: 2rem 0;
  border-bottom: 1px solid #e8e8e8;
}

body.pag-interna.pag-blog .blog-card h2 {
  font-size: clamp(1.8rem, 2.5vw, 2.2rem);
  margin: 0 0 0.75rem;
  line-height: 1.25;
}

body.pag-interna.pag-blog .blog-card h2 a {
  color: #23292e;
  text-decoration: none;
}

body.pag-interna.pag-blog .blog-card h2 a:hover,
body.pag-interna.pag-blog .blog-card-link:hover {
  color: #007da2;
}

body.pag-interna.pag-blog .blog-card-meta {
  font-size: 1.35rem;
  color: #5a656d;
  margin: 0 0 0.85rem;
}

body.pag-interna.pag-blog .blog-card-resumo {
  font-size: 1.55rem;
  margin-bottom: 1rem;
  max-width: 65ch;
}

body.pag-interna.pag-blog .blog-card-link {
  font-weight: 600;
  font-size: 1.45rem;
  color: #007da2;
  display: inline-block;
  margin-top: 0.4rem;
}

body.pag-interna.pag-blog .blog-migalhas {
  font-size: 1.4rem;
  color: #5a656d;
  margin-bottom: 1.2rem;
  line-height: 1.5;
}

body.pag-interna.pag-blog .blog-migalhas a,
body.pag-interna.pag-blog .blog-migalhas span {
  display: inline;
}

body.pag-interna.pag-blog .blog-migalhas a {
  color: #007da2;
}

body.pag-interna.pag-blog .blog-card-meta time,
body.pag-interna.pag-blog .blog-artigo-meta time {
  display: inline;
}

body.pag-interna.pag-blog .blog-artigo-meta {
  font-size: 1.45rem;
  line-height: 1.5;
}

body.pag-interna.pag-blog .blog-wrap.blog-wrap--artigo {
  width: 100%;
}

body.pag-interna.pag-blog .blog-card h2 a {
  display: inline;
}

body.pag-interna.pag-blog .blog-artigo-cabeca .blog-artigo-meta {
  font-size: 1.45rem;
  color: #5a656d;
  margin-top: 0.5rem;
}

body.pag-interna.pag-blog .blog-artigo-corpo {
  margin-top: 2rem;
}

body.pag-interna.pag-blog .blog-artigo-rodape {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid #e8e8e8;
}

body.pag-interna.pag-blog .footer-min a {
  display: inline-block;
}

body.pag-interna .footer-min {
  border-top: 1px solid #e8e8e8;
  padding: 2.4rem 0 4rem;
  margin-top: 2rem;
}

body.pag-interna .footer-min p {
  font-size: 1.4rem;
  color: #23292e;
}

body.pag-interna .footer-min a {
  color: #007da2;
}

/* Página Comunidade — abertura · meio · fecho */
body.pag-interna.pag-comunidade .pagina-comunidade-main {
  padding: 10.5rem 0 0;
  background:
    radial-gradient(ellipse 85% 55% at 50% -15%, rgba(24, 192, 122, 0.16), transparent 55%),
    radial-gradient(ellipse 60% 40% at 100% 40%, rgba(0, 184, 229, 0.06), transparent 45%),
    #07080a;
  min-height: auto;
  overflow-x: hidden;
  overflow-y: visible;
  width: 100%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body.pag-interna.pag-comunidade .comunidade-page {
  width: 100%;
  max-width: 112rem;
  margin: 0 auto;
  padding: 0 clamp(1.6rem, 4vw, 3rem);
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/* —— Abertura —— */
body.pag-interna.pag-comunidade .comunidade-abertura {
  padding: 0 0 4rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.pag-interna.pag-comunidade .comunidade-abertura-inner {
  max-width: 58rem;
  margin: 0 auto;
  text-align: center;
  padding: 0.5rem 0.75rem 0;
}

body.pag-interna.pag-comunidade .comunidade-rotulo {
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ht-accent-green-mid);
  margin: 0 0 1.5rem;
}

body.pag-interna.pag-comunidade .comunidade-abertura h1 {
  font-family: "Montserrat", "Fira Sans", sans-serif;
  color: #fff;
  font-size: clamp(3.4rem, 6vw, 5.2rem);
  font-weight: 700;
  margin: 0 0 1.75rem;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

body.pag-interna.pag-comunidade .comunidade-abertura h1::after {
  content: "";
  display: block;
  width: 5.5rem;
  height: 3px;
  margin: 1.85rem auto 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--ht-accent-green-deep), var(--ht-accent-teal));
}

body.pag-interna.pag-comunidade .comunidade-lead {
  font-family: "Montserrat", "Fira Sans", sans-serif;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(1.85rem, 2.4vw, 2.3rem);
  font-weight: 400;
  line-height: 1.65;
  max-width: 46ch;
  margin: 0 auto;
  text-wrap: balance;
}

/* —— Meio —— */
body.pag-interna.pag-comunidade .comunidade-meio {
  padding: 4rem 0 4.5rem;
}

body.pag-interna.pag-comunidade .comunidade-meio-inner {
  width: 100%;
  max-width: 106rem;
  margin: 0 auto;
}

body.pag-interna.pag-comunidade .comunidade-meio-cabeca {
  text-align: center;
  max-width: 56rem;
  margin: 0 auto 3.25rem;
  padding: 0 0.5rem;
}

body.pag-interna.pag-comunidade .comunidade-meio-cabeca h2 {
  font-family: "Montserrat", "Fira Sans", sans-serif;
  color: #fff;
  font-size: clamp(2.2rem, 3.5vw, 3rem);
  font-weight: 700;
  margin: 0;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

body.pag-interna.pag-comunidade .comunidade-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 3.5vw, 3.5rem);
  width: 100%;
  margin: 0;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}

body.pag-interna.pag-comunidade .comunidade-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0;
  padding: 0;
  min-width: 0;
  width: 100%;
}

body.pag-interna.pag-comunidade .comunidade-card-panel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  padding: clamp(1.5rem, 2.2vw, 2.25rem);
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: clamp(20px, 3vw, 26px);
  -webkit-box-shadow: 0 1.25rem 3.5rem rgba(0, 0, 0, 0.4);
  box-shadow: 0 1.25rem 3.5rem rgba(0, 0, 0, 0.4);
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body.pag-interna.pag-comunidade .comunidade-card-tag {
  display: inline-block;
  -ms-flex-item-align: start;
  align-self: flex-start;
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0a1620;
  background: linear-gradient(135deg, var(--ht-accent-green-mid), var(--ht-accent-green-deep));
  padding: 0.55rem 1.15rem;
  border-radius: 999px;
  margin: 0 0 1.35rem;
}

body.pag-interna.pag-comunidade .comunidade-card-fig {
  margin: 0;
  padding: 0;
  width: 100%;
  min-width: 0;
  display: block;
  text-align: center;
  overflow: visible;
  background: transparent;
}

body.pag-interna.pag-comunidade .comunidade-card-fig img {
  display: inline-block;
  vertical-align: middle;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: min(62vh, 54rem);
  -o-object-fit: contain;
  object-fit: contain;
  -o-object-position: center center;
  object-position: center center;
  margin: 0 auto;
  border-radius: clamp(12px, 2vw, 16px);
  -webkit-box-shadow: 0 0.6rem 2rem rgba(0, 0, 0, 0.35);
  box-shadow: 0 0.6rem 2rem rgba(0, 0, 0, 0.35);
}

body.pag-interna.pag-comunidade .comunidade-card-rodape {
  font-family: "Montserrat", "Fira Sans", sans-serif;
  margin: clamp(1.35rem, 2vw, 1.65rem) 0 0;
  padding: 1.15rem 0.25rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: clamp(1.42rem, 1.55vw, 1.58rem);
  font-weight: 400;
  line-height: 1.52;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
}

body.pag-interna.pag-comunidade .comunidade-card-rodape strong {
  display: inline;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.88);
}

/* —— Fecho —— */
body.pag-interna.pag-comunidade .comunidade-fecho {
  padding: 3rem 1rem 4.5rem;
  margin: 0 calc(-1 * clamp(1.6rem, 4vw, 3rem));
  padding-left: clamp(1.6rem, 4vw, 3rem);
  padding-right: clamp(1.6rem, 4vw, 3rem);
  background: rgba(0, 0, 0, 0.35);
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

body.pag-interna.pag-comunidade .comunidade-fecho-inner {
  max-width: 48rem;
  margin: 0 auto;
  text-align: center;
}

body.pag-interna.pag-comunidade .comunidade-fecho-texto {
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: clamp(1.55rem, 1.85vw, 1.75rem);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.66);
  margin: 0 0 1.75rem;
}

body.pag-interna.pag-comunidade .comunidade-fecho-cta {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.55rem;
  font-weight: 700;
  padding: 1.15rem 2.6rem;
  color: #fff !important;
  text-decoration: none !important;
  background: transparent;
  border: 2px solid rgba(24, 192, 122, 0.65);
  border-radius: 999px;
  -webkit-transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    -webkit-transform 0.15s ease;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.15s ease;
}

body.pag-interna.pag-comunidade .comunidade-fecho-cta:hover {
  background: rgba(24, 192, 122, 0.18);
  border-color: var(--ht-accent-green-mid);
  -webkit-transform: translateY(-1px);
  -ms-transform: translateY(-1px);
  transform: translateY(-1px);
}

body.pag-interna.pag-comunidade .comunidade-fecho-cta:focus-visible {
  outline: 2px solid var(--ht-accent-green-mid);
  outline-offset: 3px;
}

@media (max-width: 900px) {
  body.pag-interna.pag-comunidade .comunidade-abertura {
    padding-bottom: 3rem;
  }

  body.pag-interna.pag-comunidade .comunidade-meio {
    padding-top: 3rem;
    padding-bottom: 3.5rem;
  }

  body.pag-interna.pag-comunidade .comunidade-meio-cabeca {
    margin-bottom: 2.5rem;
  }

  body.pag-interna.pag-comunidade .comunidade-cards {
    grid-template-columns: minmax(0, 1fr);
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
  }

  body.pag-interna.pag-comunidade .comunidade-card-fig img {
    max-height: none;
  }

  body.pag-interna.pag-comunidade .comunidade-fecho {
    padding-bottom: 4rem;
  }
}

body.pag-interna.pag-comunidade .footer-min.footer-min--dark {
  background: #0a0a0a;
  border-top-color: rgba(255, 255, 255, 0.1);
  margin-top: 0;
}

body.pag-interna.pag-comunidade .footer-min.footer-min--dark p,
body.pag-interna.pag-comunidade .footer-min.footer-min--dark a {
  color: rgba(255, 255, 255, 0.72);
}

body.pag-interna.pag-comunidade .footer-min.footer-min--dark a:hover {
  color: #fff;
}

#solucoes-ferramentas,
#plataforma-unica,
#solucao-cursos,
#solucao-enriquecelead,
#solucao-crm,
#solucao-calculadora,
#solucao-planejamento,
#solucao-carteira,
#solucao-comunidade {
  scroll-margin-top: 10rem;
}

@media (max-width: 835px) {
  #solucoes-ferramentas,
  #plataforma-unica,
  #solucao-cursos,
  #solucao-enriquecelead,
  #solucao-crm,
  #solucao-calculadora,
  #solucao-planejamento,
  #solucao-carteira,
  #solucao-comunidade {
    scroll-margin-top: 8rem;
  }
}

/* Benefícios: travessão alinhado ao texto (logo removido) */
.s-beneficios .texto-left .line {
  margin-top: 0;
}

@media (max-width: 912px) {
  .s-beneficios .texto-left .line {
    margin-top: 0;
  }
}

/* s-investido — cartão "Faça um teste" da grelha = link para registo */
.s-investido .grid li > a.investido-card-cta {
  display: block;
  text-decoration: none;
  color: inherit;
  -webkit-transition: opacity 0.2s ease;
  -o-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

.s-investido .grid li > a.investido-card-cta:hover,
.s-investido .grid li > a.investido-card-cta:focus {
  opacity: 0.92;
}

.s-investido .grid li > a.investido-card-cta .titulo {
  margin-top: 1.6rem;
}

/* s-investido — destaques no título: mesma tipografia do h2, uma cor */
.s-investido h2 .investido-destaque {
  display: inline;
  font: inherit;
  font-weight: 600;
  color: var(--ht-accent-gold-soft);
  text-shadow: 0 0.1rem 0.35rem rgba(0, 0, 0, 0.35);
}

.s-beneficios .texto-left h2 .beneficios-highlight {
  display: inline;
  font: inherit;
  font-weight: 600;
  color: var(--ht-accent-gold-soft);
  text-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.45);
}

.s-beneficios .texto-right .beneficios-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 39rem;
  margin-top: 0;
  margin-bottom: 0;
  padding: 0 0 0 1.4rem;
  background: transparent;
  border-radius: 0;
  border-left: 0.4rem solid var(--ht-accent-gold);
  -webkit-box-shadow: none;
  box-shadow: none;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.s-beneficios .texto-right .beneficios-card-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 1.6rem;
}

@media (max-width: 519px) {
  .s-beneficios .texto-right .beneficios-card-inner {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 1.2rem;
  }
}

.s-beneficios .texto-right .beneficios-card-inner > img {
  -ms-flex-negative: 0;
  flex-shrink: 0;
  margin-top: 0.35rem;
  width: 4.2rem;
  height: 4.2rem;
}

.s-beneficios .texto-right .beneficios-card-copy {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 0;
  padding-top: 0;
}

.s-beneficios .texto-right .beneficios-card-lead {
  margin: 0 0 1rem;
  font-style: normal;
  font-weight: 500;
  font-size: 1.6rem;
  line-height: 2.6rem;
  letter-spacing: 0;
  color: #ffffff;
  text-align: left;
}

.s-beneficios .texto-right .beneficios-card-lead strong {
  font-weight: 600;
  color: #ffffff;
}

.s-beneficios .texto-right .beneficios-card-follow {
  margin: 0;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  font-style: normal;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 2.2rem;
  color: #a9afb5;
  text-align: left;
}

/* CTA «Aprenda agora o método» — alinhada à direita da coluna */
.s-beneficios .texto-right > a {
  margin-top: calc(5rem - 0.7cm);
  margin-left: auto;
  margin-right: 0;
}

@media (max-width: 912px) {
  .s-beneficios .texto-right > a {
    margin-top: calc(3.2rem - 0.7cm);
  }
}

/* Hero: fundo mais rico; foto atrás do texto e dos cartões */
.s-banner {
  background: radial-gradient(120% 120% at 50% -10%, #4a434d 0%, #221f24 36%, #0c0b0d 100%) !important;
}

.s-banner .texto-left,
.s-banner .right {
  position: relative;
  z-index: 3;
}

.s-banner .texto-left h1.hero-headline {
  text-shadow: 0 0.25rem 1.8rem rgba(0, 0, 0, 0.55);
}

/* Hero H1: base no main.css; destaques só na cor (mesmo tamanho/família do título) */
.s-banner .texto-left h1.hero-headline span.hero-headline-accent {
  display: inline;
  font: inherit;
  color: var(--ht-accent-gold-soft);
  text-shadow:
    0 0.12rem 0.35rem rgba(0, 0, 0, 0.45),
    0 0 1.4rem rgba(255, 248, 196, 0.4);
}

@media (max-width: 600px) {
  .s-banner .texto-left h1.hero-headline span.hero-headline-accent {
    text-shadow:
      0 0.1rem 0.28rem rgba(0, 0, 0, 0.5),
      0 0 1rem rgba(255, 248, 196, 0.35);
  }
}

.s-banner .right .abra-conta.banner-cta-hero-right {
  width: 19.1rem;
  max-width: 19.1rem;
  height: 19.6rem;
  margin-top: 1.2rem;
  margin-left: auto;
  margin-right: 0;
}

/* Retrato troféu: vinheta escura (cor do site) — destaca o centro, ofusca telão e pessoas nas bordas */
.hero-foto-matte {
  position: relative;
  display: block;
  line-height: 0;
  border-radius: 1.1rem;
  overflow: hidden;
  -webkit-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
}

.hero-foto-matte::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(
      ellipse 48% 58% at 50% 34%,
      rgba(12, 11, 13, 0) 0%,
      rgba(12, 11, 13, 0) 34%,
      rgba(20, 18, 21, 0.42) 62%,
      rgba(12, 11, 13, 0.94) 100%
    ),
    linear-gradient(
      to top,
      rgba(12, 11, 13, 0.97) 0%,
      rgba(12, 11, 13, 0.72) 11%,
      rgba(12, 11, 13, 0.28) 22%,
      transparent 34%
    ),
    linear-gradient(
      to right,
      rgba(12, 11, 13, 0.82) 0%,
      transparent 14%,
      transparent 86%,
      rgba(12, 11, 13, 0.82) 100%
    );
}

.hero-foto-matte img {
  display: block;
  position: relative;
  z-index: 0;
  border-radius: 0;
  -webkit-filter: saturate(1.14) contrast(1.08) brightness(1.03);
  filter: saturate(1.14) contrast(1.08) brightness(1.03);
}

/* Foto do troféu: grande no hero, integrada ao fundo (sem máscara que “corta” a silhueta) */
.s-banner .image {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -ms-flex-align: end;
  align-items: flex-end;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  z-index: 2;
  pointer-events: none;
}

.s-banner .image .hero-foto-matte {
  pointer-events: auto;
  -webkit-box-shadow: none;
  box-shadow: none;
}

.s-banner .image img {
  pointer-events: auto;
  width: auto;
  max-width: min(54rem, 46vw);
  max-height: min(76rem, 92vh);
  height: auto;
  -o-object-fit: contain;
  object-fit: contain;
  -o-object-position: bottom center;
  object-position: bottom center;
}

@media (max-width: 835px) {
  .s-banner .image {
    position: relative !important;
    left: auto !important;
    margin-left: 0 !important;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding-top: 1.2rem;
    width: 100% !important;
    max-width: none;
    height: auto !important;
    min-height: 0;
    pointer-events: auto;
  }

  .s-banner .image img {
    max-width: min(48rem, 96vw);
    max-height: min(72vh, 58rem);
    margin-left: auto;
    margin-right: auto;
  }
}

/* Desktop hero: coluna da foto larga e alta para “preencher” o banner */
@media (min-width: 836px) {
  .s-banner .texto-left {
    max-width: 51rem;
  }

  .s-banner .image {
    width: min(50rem, 44vw) !important;
    max-width: min(520px, 46vw);
    height: min(90vh, 70rem) !important;
    left: 50% !important;
    margin-left: calc(-260px + min(5vw, 72px)) !important;
    bottom: 0;
  }

  .s-banner .image img {
    position: relative;
    -webkit-transform: translateX(0);
    -ms-transform: translateX(0);
    transform: translateX(0);
    max-width: 100%;
    max-height: 100%;
  }

  .s-banner .right {
    max-width: 33.5rem;
    margin-left: clamp(10rem, 18vw, 21rem);
    -ms-flex-negative: 0;
    flex-shrink: 0;
  }

  .s-banner .right .grid-conteudo.banner-grid-prospeccao {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    row-gap: 1.28rem;
  }

  .s-banner .right .grid-conteudo.banner-grid-prospeccao li:nth-child(3) {
    grid-column: 1;
  }

  .s-banner .right .play {
    padding: 1.92rem 1.92rem;
    margin-top: 1.2rem;
  }

  .s-banner .right .play span {
    font-size: 1.55rem;
    line-height: 2rem;
  }

  .s-banner .right .play span strong {
    font-size: 1.55rem;
  }

  .s-banner .right .abra-conta.banner-cta-hero-right {
    margin-bottom: 0;
    margin-right: 0;
  }
}

@media (min-width: 836px) and (max-width: 1300px) {
  .s-banner .image {
    max-width: min(460px, 42vw);
    height: min(88vh, 64rem) !important;
    margin-left: calc(-230px + min(4vw, 56px)) !important;
  }
}

@media (min-width: 836px) and (max-width: 1050px) {
  .s-banner .image {
    max-width: min(400px, 48vw);
    height: min(85vh, 58rem) !important;
    margin-left: calc(-200px + min(3vw, 40px)) !important;
  }
}
.s-banner .right .grid-conteudo.banner-grid-prospeccao {
  grid-template-columns: 1fr;
  row-gap: 1.28rem;
}

.s-banner .right .grid-conteudo.banner-grid-prospeccao li:nth-child(3) {
  grid-column: 1;
}

.s-banner .right .grid-conteudo.banner-grid-prospeccao li a {
  width: 100%;
  max-width: none;
  min-height: 8.16rem;
  height: auto;
  padding: 1.1rem 0.8rem 1.3rem 1.6rem;
}

.s-banner .right .grid-conteudo.banner-grid-prospeccao li a .icon-arrow {
  top: 13px;
  right: 13px;
}

.s-banner .right .grid-conteudo.banner-grid-prospeccao li a small {
  margin-top: 1.45rem;
  font-size: 1.4rem;
  line-height: 1.75rem;
}

.s-banner .right .grid-conteudo.banner-grid-prospeccao li a:hover small {
  margin-top: 2.4rem;
}

/* Tema oculta o grid abaixo de 835px — reexibir estes cards */
@media (max-width: 835px) {
  .s-banner .right .grid-conteudo.banner-grid-prospeccao {
    display: grid !important;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .s-banner .right .play {
    padding: 1.6rem;
  }

  .s-banner .right .abra-conta.banner-cta-hero-right {
    margin-left: auto;
    margin-right: 0;
  }
}

/* Desktop: submenu visível ao hover / foco / clique (active)
   — main.css usa opacity:0, right:-53px, translateY(-10px) e só opacity em .active;
   — nav do tema só aparece acima de 990px; ponte ::before evita “buraco” entre botão e lista */
@media (min-width: 991px) {
  header.js-header .container {
    overflow: visible;
  }

  header.js-header nav > ul > li {
    position: relative;
  }

  header.js-header nav > ul > li > ul.drop {
    display: none !important;
    position: absolute;
    left: 0 !important;
    right: auto !important;
    top: 100% !important;
    margin-top: 0;
    min-width: min(36rem, 88vw);
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: min(40rem, 92vw);
    z-index: 5000;
    padding: 0.55rem 0 0.65rem;
    background: #fff;
    border: 1px solid #e8eaed;
    border-radius: 10px;
    -webkit-box-shadow:
      0 0.4rem 1rem rgba(21, 24, 28, 0.06),
      0 1.25rem 3rem rgba(21, 24, 28, 0.1);
    box-shadow:
      0 0.4rem 1rem rgba(21, 24, 28, 0.06),
      0 1.25rem 3rem rgba(21, 24, 28, 0.1);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-transform: none !important;
    -ms-transform: none !important;
    transform: none !important;
    -webkit-transition: opacity 0.2s ease, visibility 0.2s ease;
    -o-transition: opacity 0.2s ease, visibility 0.2s ease;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  /* Área invisível entre o botão e o painel = o rato não “corta” o hover */
  header.js-header nav > ul > li > ul.drop::before {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    height: 1.2rem;
  }

  header.js-header nav > ul > li:hover > ul.drop,
  header.js-header nav > ul > li:focus-within > ul.drop,
  header.js-header nav > ul > li.active > ul.drop {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: all !important;
    -webkit-transform: none !important;
    -ms-transform: none !important;
    transform: none !important;
  }

  /* Itens de lista: alinhamento à esquerda, faixa útil para hover */
  header.js-header nav > ul > li > ul.drop li {
    margin: 0;
    padding: 0;
    line-height: 1.45;
  }

  header.js-header nav > ul > li > ul.drop li:not(.nav-drop-label) a {
    margin: 0.1rem 0.55rem;
    padding: 0.5rem 1.15rem;
    font-family: "Montserrat", "Fira Sans", sans-serif;
    font-size: 1.25rem;
    font-weight: 500;
    white-space: normal;
    line-height: 1.4;
    color: #3d4a54;
    text-align: left;
    border-radius: 8px;
    -webkit-transition:
      background-color 0.15s ease,
      color 0.15s ease;
    -o-transition:
      background-color 0.15s ease,
      color 0.15s ease;
    transition:
      background-color 0.15s ease,
      color 0.15s ease;
  }

  header.js-header nav > ul > li > ul.drop li:not(.nav-drop-label) a:visited {
    color: #3d4a54;
  }

  header.js-header nav > ul > li > ul.drop li:not(.nav-drop-label) a:hover {
    background-color: rgba(24, 192, 122, 0.1);
    color: #117a4d !important;
  }

  header.js-header nav > ul > li > ul.drop li:not(.nav-drop-label) a:focus-visible {
    outline: 2px solid var(--ht-accent-green-deep);
    outline-offset: 1px;
    background-color: rgba(24, 192, 122, 0.1);
    color: #117a4d !important;
  }

  /* Título da secção — depois espaço até os itens (subtítulo / links) */
  header.js-header nav > ul > li > ul.drop li.nav-drop-label {
    pointer-events: none;
    list-style: none;
    margin: 0;
    padding: 0.75rem 1.6rem 0.6rem;
    border-top: none;
  }

  header.js-header nav > ul > li > ul.drop li.nav-drop-label:not(:first-of-type) {
    margin-top: 0.55rem;
    padding-top: 1.15rem;
    border-top: 1px solid #e8eaed;
  }

  header.js-header nav > ul > li > ul.drop li.nav-drop-label:first-of-type {
    padding-top: 0.55rem;
  }

  header.js-header nav > ul > li > ul.drop li.nav-drop-label span {
    display: block;
    font-family: "Montserrat", "Fira Sans", sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #151b22;
    text-transform: none;
    letter-spacing: -0.015em;
    line-height: 1.35;
  }
}

/* Rótulos e itens no menu mobile — mesma lógica título / espaço / lista */
header .menu-mobile li.nav-drop-label {
  pointer-events: none;
  padding: 1rem 0 0.5rem;
  margin-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

header .menu-mobile li.nav-drop-label:first-of-type {
  margin-top: 0;
  padding-top: 0.5rem;
  border-top: none;
}

header .menu-mobile li.nav-drop-label span {
  display: block;
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: #e8eaed;
  text-transform: none;
  letter-spacing: -0.01em;
  line-height: 1.35;
}

header .menu-mobile .conteudo ul.drop > li:not(.nav-drop-label) > a {
  padding: 0.55rem 0;
  margin: 0.1rem 0;
  font-family: "Montserrat", "Fira Sans", sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.4;
  color: #c4c9cf;
  border-radius: 8px;
  -webkit-transition:
    background-color 0.15s ease,
    color 0.15s ease;
  -o-transition:
    background-color 0.15s ease,
    color 0.15s ease;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

header .menu-mobile .conteudo ul.drop > li:not(.nav-drop-label) > a:hover,
header .menu-mobile .conteudo ul.drop > li:not(.nav-drop-label) > a:focus-visible {
  background-color: rgba(24, 192, 122, 0.15);
  color: #fff;
}

/* Menu topo: +4px vs main.css (1.4rem → 1.8rem na base 62.5%) */
header nav ul li .btn-drop span,
header nav ul li a {
  font-size: 1.8rem !important;
  line-height: 2.2rem !important;
}

header nav .btns .btn {
  font-size: 1.8rem !important;
  line-height: 2.2rem !important;
}

.menu-mobile .conteudo ul li .btn-drop {
  font-size: 1.8rem !important;
  line-height: 2.2rem !important;
}

header .menu-mobile .conteudo ul.drop > li:not(.nav-drop-label) > a {
  font-size: 1.525rem !important;
}

@media (min-width: 991px) {
  header.js-header nav > ul > li > ul.drop li:not(.nav-drop-label) a {
    font-size: 1.65rem !important;
  }

  header.js-header nav > ul > li > ul.drop li.nav-drop-label span {
    font-size: 1.9rem !important;
  }
}

/* Login com o mesmo tratamento visual que .abrir-conta (main.css) */
header nav .btns .btn.login {
  padding: 1.1rem 3.6rem;
  background-color: #323544;
  border: 2px solid #323544;
  border-radius: 4px;
}

header nav .btns .btn.login:hover {
  background-color: #30323e;
}

header.white nav .btns .btn.login {
  background-color: rgba(255, 255, 255, 0.2);
  border: 2px solid transparent;
}

header.fixed-header .btns .btn.login {
  background-color: var(--ht-accent-green-deep) !important;
  border: 2px solid transparent !important;
  color: #fff !important;
}

header.fixed-header .btns .btn.login:hover {
  background-color: var(--ht-accent-green-dark) !important;
  color: #fff !important;
}

header .menu-mobile .conteudo .btns .btn.login {
  background-color: #29a152;
  margin-top: 1.2rem;
  color: #fff;
  border: 2px solid transparent;
  border-radius: 4.66293px;
}

.js-header nav .btns .btn.login {
  margin-left: 0.8rem;
}

/* Título da lista de benefícios da plataforma (3ª coluna) */
.s-plataforma .plataforma-solucoes-col {
  width: 100%;
  max-width: 33.1rem;
}

.s-plataforma .plataforma-solucoes-col h3 {
  font-style: normal;
  font-weight: 500;
  font-size: 2.8rem;
  line-height: 3.8rem;
  color: #2c343e;
  padding-bottom: 1.8rem;
  margin: 0 0 0 0;
  border-bottom: 1px solid #eaedf0;
  letter-spacing: -0.02em;
}

@media (max-width: 991px) {
  .s-plataforma .plataforma-solucoes-col {
    max-width: 100%;
    margin-top: 2rem;
  }

  .s-plataforma .plataforma-solucoes-col h3 {
    font-size: 2.4rem;
    line-height: 3.1rem;
    text-align: center;
  }

  .s-plataforma .plataforma-solucoes-col ul {
    margin-left: auto;
    margin-right: auto;
    max-width: 36rem;
  }

  .s-plataforma .plataforma-solucoes-col ul li .plataforma-etapa-texto {
    text-align: left;
  }
}

/* Lista «Etapas do processo»: linhas uniformes, ícone e texto alinhados */
.s-plataforma .plataforma-solucoes-col ul {
  width: 100%;
  max-width: 33.1rem;
  margin: 0;
  padding: 2rem 0 0;
}

.s-plataforma .plataforma-solucoes-col ul li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 1.1rem;
  padding-top: 1.65rem;
  padding-bottom: 1.65rem;
  border-bottom: 1px solid #eaedf0;
  background: transparent;
}

.s-plataforma .plataforma-solucoes-col ul li:first-child {
  padding-top: 0;
}

.s-plataforma .plataforma-solucoes-col ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

/* Caixa fixa para todos os SVG — mesma âncora visual, ícone centrado na célula */
.s-plataforma .plataforma-solucoes-col ul li .plataforma-etapa-icone {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-flex: 0;
  -ms-flex: 0 0 4.5rem;
  flex: 0 0 4.5rem;
  width: 4.5rem;
  height: 4.5rem;
  margin-top: 0.15rem;
}

.s-plataforma .plataforma-solucoes-col ul li .plataforma-etapa-icone img {
  display: block;
  width: 4.1rem;
  height: 4.1rem;
  max-width: 100%;
  margin: 0;
  -o-object-fit: contain;
  object-fit: contain;
}

.s-plataforma .plataforma-solucoes-col ul li .plataforma-etapa-texto {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0.05rem 0 0;
  font-style: normal;
  font-weight: normal;
  font-size: 1.6rem;
  line-height: 2.6rem;
  letter-spacing: -0.01em;
  color: #596573;
}

/* s-património — bloco Calculadora Patrimonial (substitui grid de cards) */
.s-patrimonio .calculadora-patrimonial-bloco {
  width: 100%;
  max-width: 73.8rem;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
}

.s-patrimonio .calculadora-patrimonial-titulo {
  font-style: normal;
  font-weight: 500;
  font-size: 3.2rem;
  line-height: 4.2rem;
  color: #2c343e;
  margin: 0;
  padding: 0;
}

.s-patrimonio .calculadora-patrimonial-texto {
  margin: 2rem 0 0;
  padding: 0;
  font-style: normal;
  font-weight: normal;
  font-size: 1.8rem;
  line-height: 2.5rem;
  color: #8c95a1;
  max-width: 62rem;
}

.s-patrimonio .calculadora-patrimonial-fig {
  margin: 2.4rem 0 0;
  padding: 0;
  border-radius: 0.6rem;
  overflow: hidden;
  border: 1px solid #eaedf0;
  -webkit-box-shadow: 0 0.8rem 3rem rgba(44, 52, 62, 0.1);
  box-shadow: 0 0.8rem 3rem rgba(44, 52, 62, 0.1);
}

.s-patrimonio .calculadora-patrimonial-fig img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 835px) {
  .s-patrimonio .calculadora-patrimonial-bloco {
    margin-top: 4rem;
    max-width: 100%;
  }

  .s-patrimonio .calculadora-patrimonial-titulo {
    font-size: 2.4rem;
    line-height: 3.1rem;
    text-align: center;
  }

  .s-patrimonio .calculadora-patrimonial-texto {
    text-align: center;
    max-width: 100%;
  }

  .s-patrimonio .calculadora-patrimonial-fig {
    margin-top: 2rem;
  }
}

/* s-patrimonio — menos vazio antes da secção Planejamento financeiro */
.s-patrimonio {
  padding-bottom: 5rem;
}

/* s-planejamento-financeiro — texto à esquerda, capa à direita (espelha s-patrimonio) */
.s-planejamento-financeiro {
  padding-top: 3.5rem;
  padding-bottom: 6rem;
  overflow: hidden;
}

.s-planejamento-financeiro .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  gap: 2.4rem;
}

.s-planejamento-financeiro .planejamento-financeiro-texto {
  width: 100%;
  max-width: 39.7rem;
  -webkit-box-flex: 0;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
}

.s-planejamento-financeiro .planejamento-financeiro-texto h2 {
  font-style: normal;
  font-weight: 500;
  font-size: 3.2rem;
  line-height: 4.2rem;
  color: #2c343e;
  margin: 0;
  padding: 0;
}

.s-planejamento-financeiro .planejamento-financeiro-texto p {
  font-style: normal;
  font-weight: normal;
  font-size: 1.8rem;
  line-height: 2.5rem;
  color: #8c95a1;
  margin: 0;
  padding: 0;
  text-align: justify;
  -moz-text-align-last: left;
  text-align-last: left;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

.s-planejamento-financeiro .planejamento-financeiro-texto p:first-of-type {
  margin-top: 1.2rem;
}

.s-planejamento-financeiro .planejamento-financeiro-texto p + p {
  margin-top: 1rem;
}

.s-planejamento-financeiro .planejamento-financeiro-fig {
  width: 100%;
  max-width: 36.9rem;
  -webkit-box-flex: 0;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border-radius: 0.6rem;
  overflow: hidden;
  border: 1px solid #eaedf0;
}

.s-planejamento-financeiro .planejamento-financeiro-fig img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 835px) {
  .s-patrimonio {
    padding-bottom: 3.5rem;
  }

  .s-planejamento-financeiro {
    padding-top: 3rem;
    padding-bottom: 5rem;
  }

  .s-planejamento-financeiro .container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0;
  }

  .s-planejamento-financeiro .planejamento-financeiro-texto {
    max-width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }

  .s-planejamento-financeiro .planejamento-financeiro-texto h2 {
    text-align: center;
    font-size: 2.4rem;
    line-height: 3.1rem;
  }

  .s-planejamento-financeiro .planejamento-financeiro-texto p {
    text-align: justify;
    -moz-text-align-last: left;
    text-align-last: left;
    max-width: 100%;
  }

  .s-planejamento-financeiro .planejamento-financeiro-fig {
    margin-top: 1.6rem;
    max-width: min(36.9rem, 100%);
    margin-left: auto;
    margin-right: auto;
  }
}

/* s-montagem-carteira — duas capturas à esquerda (mesmo quadro), texto à direita */
.s-montagem-carteira {
  padding-top: 5rem;
  padding-bottom: 7rem;
  overflow: hidden;
}

.s-montagem-carteira .container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  gap: 4rem;
}

.s-montagem-carteira .montagem-carteira-fotos {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
  gap: 1.2rem;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
}

.s-montagem-carteira .montagem-carteira-fig {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  border-radius: 0.8rem;
  overflow: hidden;
  border: 1px solid #e3e8ed;
  background: #ffffff;
  aspect-ratio: 1 / 1;
  -webkit-box-shadow: 0 1.2rem 3.6rem rgba(44, 52, 62, 0.1);
  box-shadow: 0 1.2rem 3.6rem rgba(44, 52, 62, 0.1);
}

.s-montagem-carteira .montagem-carteira-fig img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: top center;
  object-position: top center;
}

.s-montagem-carteira .montagem-carteira-texto {
  width: 100%;
  max-width: 39.7rem;
  -webkit-box-flex: 0;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
}

.s-montagem-carteira .montagem-carteira-texto h2 {
  font-style: normal;
  font-weight: 500;
  font-size: 3.2rem;
  line-height: 4.2rem;
  color: #2c343e;
  margin: 0;
  padding: 0;
}

.s-montagem-carteira .montagem-carteira-texto p {
  font-style: normal;
  font-weight: normal;
  font-size: 1.8rem;
  line-height: 2.5rem;
  color: #8c95a1;
  margin: 2.4rem 0 0;
  padding: 0;
  text-align: justify;
  -moz-text-align-last: left;
  text-align-last: left;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

@media (max-width: 835px) {
  .s-montagem-carteira {
    padding-top: 4rem;
    padding-bottom: 5rem;
  }

  .s-montagem-carteira .container {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 0;
  }

  .s-montagem-carteira .montagem-carteira-texto {
    -webkit-box-ordinal-group: 0;
    -ms-flex-order: -1;
    order: -1;
    max-width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }

  .s-montagem-carteira .montagem-carteira-texto h2 {
    text-align: center;
    font-size: 2.4rem;
    line-height: 3.1rem;
  }

  .s-montagem-carteira .montagem-carteira-texto p {
    text-align: justify;
    -moz-text-align-last: left;
    text-align-last: left;
    max-width: 100%;
  }

  .s-montagem-carteira .montagem-carteira-fotos {
    margin-top: 2.4rem;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }

  .s-montagem-carteira .montagem-carteira-fig {
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none;
    width: 100%;
    aspect-ratio: 4 / 3;
  }
}

/* s-atendimento — redes sociais: título e ícones alinhados à mesma esquerda */
.s-atendimento .itens li.atendimento-redes {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}

.s-atendimento .atendimento-redes .descricao {
  margin: 0;
  padding: 0;
  width: 100%;
  text-align: left;
  -webkit-align-self: flex-start;
  -ms-flex-item-align: start;
  align-self: flex-start;
}

.s-atendimento .atendimento-redes .descricao h2 {
  margin: 0;
  padding: 0;
  text-align: left;
}

.s-atendimento .itens li.atendimento-redes .img.atendimento-redes-icones {
  margin: 0.8rem 0 0 0;
  padding: 0;
  -webkit-align-self: flex-start;
  -ms-flex-item-align: start;
  align-self: flex-start;
}

.s-atendimento .atendimento-redes .atendimento-redes-icones {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  gap: 1.2rem;
  width: 100%;
  max-width: none;
}

.s-atendimento .atendimento-redes .atendimento-redes-icones a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-width: 0;
  padding: 0;
  margin: 0;
  color: #2c91ad;
  font-size: 2.2rem;
  line-height: 1;
  text-decoration: none;
}

.s-atendimento .atendimento-redes .atendimento-redes-icones a i {
  margin: 0;
  padding: 0;
  line-height: 1;
}

.s-atendimento .atendimento-redes .atendimento-redes-icones a:hover,
.s-atendimento .atendimento-redes .atendimento-redes-icones a:focus {
  color: #247a90;
}

/* Menos espaço entre a barra de atendimento e os selos (main.css usa margin-top: 8.7rem) */
.s-atendimento {
  padding-bottom: 2.4rem;
}

footer .certificadores {
  margin-top: 1.2rem;
}

/* Selo CFP / Planejar (PNG fornecido) — alinhado à faixa dos demais certificadores */
footer .certificadores a .certificador-cfp-img {
  display: block;
  width: auto;
  max-width: min(56rem, 96vw);
  max-height: 17rem;
  height: auto;
  margin: 0 auto;
  -o-object-fit: contain;
  object-fit: contain;
}

/* --------------------------------------------------------------------------
   Mídia (Mont Asset na mídia) — oculto por enquanto.
   Para voltar a exibir: apague todo este bloco.
   -------------------------------------------------------------------------- */
section.s-midia {
  display: none !important;
  visibility: hidden !important;
}

/* --------------------------------------------------------------------------
   Cookies / LGPD — oculto por enquanto (HTML e JS em index.html + all.min.js intactos).
   Para reativar o banner e o modal: apague todo este bloco.
   -------------------------------------------------------------------------- */
#popup.cookies,
.modal-cookies.modal-container {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* --------------------------------------------------------------------------
   Mobile / tablet: main.css fixa .s-banner em 818px + overflow:hidden, o que
   corta o hero em coluna (texto, foto, cards, CTAs). Evita scroll horizontal.
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
  html {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
  }

  body {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
    position: relative;
  }

  .container {
    max-width: 100%;
    min-width: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  .s-banner {
    height: auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }

  .s-banner .container,
  .s-banner .texto-left,
  .s-banner .right {
    min-width: 0;
    max-width: 100%;
  }

  /* Em desktop o ::before usa width:100% + left:15% e gera overflow lateral */
  .s-banner::before {
    display: none !important;
  }
}
