/* ==========================================================================
   GadgetLusa, blocos do layout
   Traduz o canvas de desenho para classes que os modelos do Elementor usam.
   O tokens.css e do Dannilson e nao se toca. Este ficheiro so acrescenta.
   Prefixo glx- para nunca chocar com as classes gl- dele.
   ========================================================================== */

:root { --glx-max: 1296px; --glx-gut: 72px; }

.glx-wrap { width: 100%; max-width: var(--glx-max); margin-inline: auto; }

.glx-sec > .e-con-inner { max-width: var(--glx-max); }

/* --------------------------------------------------------------- cabecalho */

.glx-header {
  background: linear-gradient(180deg, rgba(255,255,255,0.84), rgba(255,255,255,0.58));
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border-bottom: 1px solid rgba(255,255,255,0.9);
  box-shadow: 0 12px 30px -24px rgba(23,18,51,0.7);
}
.glx-header > .e-con-inner { min-height: 82px; }

/* o sinal e o navio do logotipo (27/09/2026), sem caixa por tras */
.glx-marca-sinal {
  width: 51px; height: 44px; flex: 0 0 51px;
  display: flex; align-items: center; justify-content: center;
}
.glx-marca-sinal img { width: 100%; height: 100%; object-fit: contain; display: block; }
.glx-marca-nome .elementor-heading-title {
  font-family: var(--gl-display);
  font-size: 22px; font-weight: 800; letter-spacing: -0.035em; line-height: 1;
  color: var(--gl-ink);
}
.glx-marca-nome .elementor-heading-title a { color: inherit; }
.glx-marca-sub, .glx-marca-sub p {
  font-family: var(--gl-mono);
  font-size: 9.5px; font-weight: 500; letter-spacing: 0.22em;
  color: var(--gl-muted-2); margin: 3px 0 0; text-transform: uppercase;
}

.glx-nav .elementor-nav-menu a.elementor-item {
  font-family: var(--gl-body);
  font-size: 15px; font-weight: 600; color: var(--gl-ink-2);
  padding: 9px 16px; border-radius: var(--gl-pill);
  transition: color .18s ease, background .18s ease;
}
.glx-nav .elementor-nav-menu a.elementor-item:hover { color: var(--gl-ink); }
.glx-nav .elementor-nav-menu a.elementor-item.elementor-item-active,
.glx-nav .elementor-nav-menu .current-menu-item > a.elementor-item {
  background: linear-gradient(135deg, var(--gl-guias-a), #00C2CE);
  color: #06231A; font-weight: 700; padding: 9px 18px;
  box-shadow: 0 10px 22px -12px rgba(0,190,170,0.95);
}
.glx-nav .elementor-nav-menu a.elementor-item:after,
.glx-nav .elementor-nav-menu a.elementor-item:before { display: none !important; }

.glx-lingua, .glx-lingua p {
  font-family: var(--gl-mono);
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.16em;
  color: var(--gl-muted); margin: 0;
}
.glx-lupa {
  width: 42px; height: 42px; border-radius: 13px; flex: 0 0 42px;
  background: rgba(255,255,255,0.78);
  border: 1px solid rgba(255,255,255,0.95);
  box-shadow: 0 8px 20px -12px rgba(23,18,51,0.6);
  display: flex; align-items: center; justify-content: center;
}

/* --------------------------------------------------------------- tarja */

.glx-tarja {
  background: linear-gradient(135deg, rgba(23,18,51,0.075), rgba(23,18,51,0.03));
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,0.7);
}
.glx-tarja-txt, .glx-tarja-txt p {
  font-size: 14px; font-weight: 500; color: var(--gl-ink-2); margin: 0;
}
.glx-ponto {
  width: 7px; height: 7px; border-radius: 50%; flex: 0 0 7px;
  background: #00C48F; box-shadow: 0 0 0 4px rgba(0,229,143,0.28);
}
.glx-risco-v { width: 1px; height: 14px; background: rgba(23,18,51,0.16); flex: 0 0 1px; }

/* --------------------------------------------------- titulo de seccao */

.glx-tit .elementor-heading-title { font-size: 32px; line-height: 1.15; }
.glx-fio { height: 1px; flex-grow: 1; background: linear-gradient(90deg, rgba(23,18,51,0.18), transparent); }
.glx-sub, .glx-sub p { font-size: 15.5px; font-weight: 500; color: #4B4478; margin: 0; }
.glx-mono, .glx-mono p {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--gl-muted-2); margin: 0;
}

/* --------------------------------------------------- cartoes de publicacao */

.glx-cards .elementor-post,
.glx-mini .elementor-post,
.glx-linhas .elementor-post {
  border-radius: var(--gl-r-md);
  position: relative; overflow: hidden;
  background: linear-gradient(160deg, rgba(255,255,255,0.92), rgba(255,255,255,0.6));
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.9);
  box-shadow: 0 22px 44px -30px rgba(23,18,51,0.55), inset 0 1px 0 rgba(255,255,255,0.95);
  transition: transform .2s ease, box-shadow .2s ease;
}
.glx-cards .elementor-post:hover,
.glx-mini .elementor-post:hover,
.glx-linhas .elementor-post:hover {
  transform: translateY(-3px);
  box-shadow: 0 30px 54px -30px rgba(23,18,51,0.6), inset 0 1px 0 rgba(255,255,255,0.95);
}
.glx-cards .elementor-post::before,
.glx-mini .elementor-post::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 2;
  background: linear-gradient(90deg, transparent, var(--card-a), var(--card-b), transparent);
}

.glx-cards .elementor-post__text,
.glx-mini .elementor-post__text { padding: 22px 24px 24px; }

.glx-cards .elementor-post__title,
.glx-mini .elementor-post__title { margin: 0 0 9px; }
.glx-cards .elementor-post__title a,
.glx-mini .elementor-post__title a {
  font-family: var(--gl-display); font-weight: 700;
  letter-spacing: -0.025em; font-size: 21px; line-height: 1.22; color: var(--gl-ink);
}
.glx-cards .elementor-post__title a:hover,
.glx-mini .elementor-post__title a:hover { color: #00A57F; }

.glx-cards .elementor-post__excerpt p,
.glx-mini .elementor-post__excerpt p {
  font-size: 14.5px; line-height: 1.55; font-weight: 500; color: var(--gl-muted); margin: 0;
}

.glx-cards .elementor-post__meta-data,
.glx-mini .elementor-post__meta-data,
.glx-linhas .elementor-post__meta-data {
  font-family: var(--gl-mono);
  font-size: 10.5px; font-weight: 500; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--gl-muted-2);
  margin: 0 0 12px; padding: 0; border: 0;
}

.glx-cards .elementor-post__thumbnail__link,
.glx-mini .elementor-post__thumbnail__link { margin: 0; }
.glx-cards .elementor-post__thumbnail { border-radius: 0; }

.glx-cards .elementor-post__read-more,
.glx-linhas .elementor-post__read-more {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: #00A57F;
}

/* --------- destaque grande da homepage */

.glx-destaque .elementor-post {
  border-radius: var(--gl-r-lg); overflow: hidden;
  background: linear-gradient(160deg, rgba(255,255,255,0.94), rgba(255,255,255,0.66));
  backdrop-filter: blur(24px) saturate(155%);
  -webkit-backdrop-filter: blur(24px) saturate(155%);
  border: 1px solid rgba(255,255,255,0.9);
  box-shadow: 0 34px 60px -32px rgba(23,18,51,0.5), inset 0 1px 0 rgba(255,255,255,0.95);
}
.glx-destaque .elementor-post__thumbnail { padding-bottom: 0 !important; height: auto; aspect-ratio: 1200 / 630; }
.glx-destaque .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.glx-destaque .elementor-post__thumbnail__link {
  background: linear-gradient(135deg, var(--card-a), var(--card-b));
  position: relative; margin: 0; display: block;
}
.glx-destaque .elementor-post__thumbnail__link::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(500px 260px at 22% 10%, rgba(255,255,255,0.44), transparent 66%);
}
.glx-destaque .elementor-post__text { padding: 30px 34px 36px; }
.glx-destaque .elementor-post__title { margin: 0 0 15px; }
.glx-destaque .elementor-post__title a {
  font-family: var(--gl-display); font-weight: 700; letter-spacing: -0.025em;
  font-size: 42px; line-height: 1.1; color: var(--gl-ink); text-wrap: pretty;
}
.glx-destaque .elementor-post__excerpt p {
  font-size: 17px; line-height: 1.62; font-weight: 500; color: #4B4478; max-width: 640px;
}
.glx-destaque .elementor-post__meta-data {
  font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--gl-muted-2); margin: 0 0 16px; border: 0; padding: 0;
}

/* --------- linhas largas, "Publicado esta semana" */

.glx-linhas .elementor-posts { display: flex; flex-direction: column; gap: 16px; }
.glx-linhas .elementor-post {
  display: flex; flex-direction: row; align-items: center; gap: 26px;
  border-radius: 22px; padding: 18px 26px 18px 18px;
}
.glx-linhas .elementor-post__thumbnail__link {
  width: 172px; flex: 0 0 172px; margin: 0; border-radius: 14px; overflow: hidden;
  background: linear-gradient(140deg, var(--card-a), var(--card-b));
  box-shadow: 0 16px 30px -16px var(--card-shadow);
}
.glx-linhas .elementor-post__thumbnail { height: auto; aspect-ratio: 1200 / 630; padding-bottom: 0 !important; }
.glx-linhas .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.glx-linhas .elementor-post__text { flex: 1 1 auto; padding: 0; }
.glx-linhas .elementor-post__title { margin: 11px 0 9px; }
.glx-linhas .elementor-post__title a {
  font-family: var(--gl-display); font-weight: 700; letter-spacing: -0.025em;
  font-size: 22px; line-height: 1.26; color: var(--gl-ink);
}
.glx-linhas .elementor-post__title a:hover { color: #00A57F; }
.glx-linhas .elementor-post__excerpt p { font-size: 14px; font-weight: 500; color: var(--gl-muted); margin: 0; }

/* --------------------------------------------------- painel e passos */

.glx-painel {
  border-radius: 30px; position: relative; overflow: hidden;
  background: linear-gradient(150deg, rgba(255,255,255,0.86), rgba(255,255,255,0.42));
  backdrop-filter: blur(26px) saturate(160%);
  -webkit-backdrop-filter: blur(26px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.85);
  box-shadow: 0 40px 70px -40px rgba(23,18,51,0.55), inset 0 1px 0 rgba(255,255,255,0.95);
}
.glx-painel::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; z-index: 2;
  background: linear-gradient(90deg, transparent, rgba(23,18,51,0.38), transparent);
}

.glx-passo {
  border-radius: 18px;
  background: linear-gradient(160deg, rgba(255,255,255,0.95), rgba(255,255,255,0.7));
  border: 1px solid rgba(255,255,255,0.95);
  box-shadow: 0 18px 34px -24px rgba(23,18,51,0.6);
  transition: transform .18s ease;
}
.glx-passo:hover { transform: translateY(-3px); }
.glx-passo .glx-passo-tit .elementor-heading-title { font-size: 17px; line-height: 1.26; text-wrap: pretty; }
.glx-selo .elementor-heading-title {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 13px;
  background: linear-gradient(140deg, var(--gl-graf-chip-a), var(--gl-graf-chip-b));
  box-shadow: 0 12px 22px -10px rgba(24,26,31,0.85), inset 0 1px 0 rgba(255,255,255,0.16);
  font-family: var(--gl-mono); font-size: 14px; font-weight: 700; color: #FFFFFF;
  letter-spacing: 0;
}

/* --------------------------------------------------- escaloes */

.glx-escalao {
  border-radius: 24px; position: relative; overflow: hidden;
  box-shadow: 0 30px 52px -28px var(--glx-e-sombra), inset 0 1px 0 rgba(255,255,255,0.5);
  background: linear-gradient(150deg, var(--glx-e-a), var(--glx-e-b));
  transition: transform .2s ease;
}
.glx-escalao:hover { transform: translateY(-4px); }
.glx-escalao::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(320px 180px at 88% 6%, rgba(255,255,255,0.44), transparent 68%);
}
.glx-escalao > .e-con-inner { position: relative; z-index: 1; }
.glx-escalao--melhores { --glx-e-a: #FFCF4D; --glx-e-b: #FF9A3D; --glx-e-sombra: rgba(255,150,60,0.95); --glx-e-tinta: #3A2206; --glx-e-tinta2: #5A3910; --glx-e-mono: #7A5320; }
.glx-escalao--guias    { --glx-e-a: #00E58F; --glx-e-b: #00B4D8; --glx-e-sombra: rgba(0,190,170,0.95); --glx-e-tinta: #06231A; --glx-e-tinta2: #0A3A2C; --glx-e-mono: #0D4A3A; }
.glx-escalao--comp     { --glx-e-a: #9B6BFF; --glx-e-b: #5B7CFA; --glx-e-sombra: rgba(110,100,250,0.95); --glx-e-tinta: #FFFFFF; --glx-e-tinta2: rgba(255,255,255,0.88); --glx-e-mono: rgba(255,255,255,0.75); }
.glx-escalao--analises { --glx-e-a: #FF7A6B; --glx-e-b: #FF5C9D; --glx-e-sombra: rgba(255,110,140,0.95); --glx-e-tinta: #FFFFFF; --glx-e-tinta2: rgba(255,255,255,0.9); --glx-e-mono: rgba(255,255,255,0.78); }

.glx-escalao .glx-e-mono, .glx-escalao .glx-e-mono p {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; color: var(--glx-e-mono); margin: 0;
}
.glx-escalao .glx-e-num .elementor-heading-title {
  font-family: var(--gl-display); font-size: 46px; font-weight: 800;
  letter-spacing: -0.04em; line-height: 1; color: var(--glx-e-tinta);
}
.glx-escalao .glx-e-tit .elementor-heading-title {
  font-size: 21px; line-height: 1.26; color: var(--glx-e-tinta);
}
.glx-escalao .glx-e-tit .elementor-heading-title a { color: var(--glx-e-tinta); }
.glx-escalao .glx-e-txt, .glx-escalao .glx-e-txt p {
  font-size: 14.5px; line-height: 1.55; font-weight: 600; color: var(--glx-e-tinta2); margin: 0;
}
.glx-especs { display: flex; gap: 7px; flex-wrap: wrap; }
.glx-especs span {
  font-family: var(--gl-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
  color: var(--glx-e-tinta, var(--gl-ink-2)); background: rgba(255,255,255,0.55);
  border: 1px solid rgba(23,18,51,0.16); border-radius: 7px; padding: 4px 9px;
}
.glx-escalao--comp .glx-especs span, .glx-escalao--analises .glx-especs span {
  background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.4); color: #FFFFFF;
}

/* --------------------------------------------------- botoes */

.glx-btn .elementor-button {
  border-radius: var(--gl-pill); padding: 15px 30px;
  font-family: var(--gl-body); font-size: 15px; font-weight: 700;
  background: linear-gradient(135deg, var(--gl-guias-a), var(--gl-guias-b));
  color: #06231A;
  box-shadow: 0 18px 32px -14px rgba(0,190,170,0.95), inset 0 1px 0 rgba(255,255,255,0.55);
  transition: transform .18s ease, box-shadow .18s ease;
}
.glx-btn .elementor-button:hover { transform: translateY(-2px); color: #06231A; }
.glx-btn--escuro .elementor-button {
  background: linear-gradient(135deg, var(--gl-ink), var(--gl-ink-2));
  color: #FFFFFF; box-shadow: 0 16px 30px -16px rgba(23,18,51,0.9);
  padding: 13px 24px; font-size: 14.5px;
}
.glx-btn--escuro .elementor-button:hover { color: #FFFFFF; }

/* --------------------------------------------------- artigo */

.glx-artigo-grid > .e-con-inner {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(0, 320px);
  gap: 56px; justify-content: center; align-items: start;
}
.glx-lateral { position: sticky; top: 100px; }

.glx-migalhas, .glx-migalhas p, .glx-migalhas a, .glx-migalhas .rank-math-breadcrumb {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--gl-muted-2); margin: 0;
}
.glx-migalhas a { color: var(--gl-muted); }
.glx-migalhas a:hover { color: #00A57F; }

.glx-artigo-tit .elementor-heading-title {
  font-size: 46px; line-height: 1.08; letter-spacing: -0.03em; text-wrap: pretty;
}
.glx-artigo-lead, .glx-artigo-lead p {
  font-size: 19px; line-height: 1.6; font-weight: 500; color: #4B4478; margin: 0;
}

.glx-assinatura {
  border-radius: 18px; position: relative; overflow: hidden;
  background: linear-gradient(160deg, rgba(255,255,255,0.9), rgba(255,255,255,0.55));
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.9);
  box-shadow: 0 22px 44px -30px rgba(23,18,51,0.55);
}
.glx-assinatura .elementor-post-info__item {
  font-family: var(--gl-mono); font-size: 10.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--gl-muted-2);
}
.glx-assinatura .elementor-post-info__item a { color: var(--gl-ink-2); }
.glx-assinatura .elementor-post-info__item-prefix { color: var(--gl-muted-2); }

.glx-aviso {
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(23,18,51,0.075), rgba(23,18,51,0.03));
  border: 1px solid rgba(255,255,255,0.85);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.glx-aviso, .glx-aviso p {
  font-size: 13.5px; line-height: 1.55; font-weight: 500; color: var(--gl-ink-2); margin: 0;
}

.glx-corpo { font-size: 18px; line-height: 1.78; color: #332C5C; }
.glx-corpo h2 { font-family: var(--gl-display); font-weight: 700; letter-spacing: -0.025em;
  font-size: 34px; line-height: 1.16; margin: 38px 0 16px; color: var(--gl-ink); }
.glx-corpo h3 { font-family: var(--gl-display); font-weight: 700; letter-spacing: -0.025em;
  font-size: 25px; line-height: 1.2; margin: 30px 0 12px; color: var(--gl-ink); }
.glx-corpo p { margin: 0 0 22px; }
.glx-corpo ul, .glx-corpo ol { margin: 0 0 22px; padding-left: 22px; }
.glx-corpo li { margin-bottom: 9px; }
.glx-corpo a { color: #00A57F; font-weight: 600; text-decoration: underline;
  text-decoration-color: rgba(0,165,127,0.35); text-underline-offset: 3px; }
.glx-corpo a:hover { color: var(--gl-ink); }
.glx-corpo blockquote {
  margin: 30px 0; padding: 22px 26px; border: 0; border-radius: var(--gl-r-md);
  background: linear-gradient(160deg, rgba(255,255,255,0.95), rgba(255,255,255,0.7));
  border-left: 3px solid var(--gl-guias-a);
  box-shadow: 0 18px 34px -26px rgba(23,18,51,0.6);
  font-size: 17px; color: var(--gl-ink-2);
}
.glx-corpo table {
  width: 100%; border-collapse: separate; border-spacing: 0; margin: 30px 0;
  border-radius: var(--gl-r-md); overflow: hidden; font-size: 15px;
  box-shadow: 0 22px 44px -30px rgba(23,18,51,0.55);
  background: rgba(255,255,255,0.9);
}
.glx-corpo table th {
  background: linear-gradient(150deg, var(--gl-graf-a), var(--gl-graf-b));
  color: #FFFFFF; font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; text-align: left; padding: 14px 18px;
}
.glx-corpo table td { padding: 14px 18px; border-top: 1px solid rgba(23,18,51,0.08); color: var(--gl-ink-2); }
.glx-corpo img { border-radius: var(--gl-r-md); }

/* indice na lateral */
/* O widget de indice traz uma caixa cinzenta de 1px, com cantos de 3px, que
   nao tem nada a ver com o resto. Aqui e trocada pelo mesmo cartao de vidro
   dos outros blocos da lateral.
   Nota, com a experiencia e_optimized_markup ligada o Elementor deixou de
   gerar o .elementor-widget-container, por isso o alvo passa a ser a propria
   raiz do widget. Ficam os dois selectores para aguentar as duas versoes. */
.elementor-widget.glx-toc,
.glx-toc .elementor-widget-container {
  border: 1px solid rgba(255,255,255,0.9);
  border-radius: var(--gl-r-md);
  padding: 24px 24px 26px;
  background: linear-gradient(160deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58));
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  box-shadow: 0 24px 46px -32px rgba(23,18,51,0.55);
  overflow: hidden;
}
.glx-toc .elementor-toc__header { background: transparent; border: 0; padding: 0 0 12px; }
.glx-toc .elementor-toc__header-title {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--gl-muted-2);
}
.glx-toc .elementor-toc__body { padding: 0; }
.glx-toc .elementor-toc__list-item-text { font-size: 14.5px; font-weight: 600; color: var(--gl-ink-2); }
.glx-toc .elementor-toc__list-item-text:hover,
.glx-toc .elementor-item-active .elementor-toc__list-item-text { color: #00A57F; }

.glx-lat-cartao {
  border-radius: var(--gl-r-md);
  background: linear-gradient(160deg, rgba(255,255,255,0.92), rgba(255,255,255,0.58));
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.9);
  box-shadow: 0 24px 46px -32px rgba(23,18,51,0.55);
}

.glx-mais-lidos .elementor-post { border: 0; box-shadow: none; background: none;
  padding: 0 0 14px; margin-bottom: 14px; border-bottom: 1px solid rgba(23,18,51,0.08); }
.glx-mais-lidos .elementor-post:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.glx-mais-lidos .elementor-post__text { padding: 0; }
.glx-mais-lidos .elementor-post__title { margin: 0; }
.glx-mais-lidos .elementor-post__title a { font-size: 15px; line-height: 1.34; font-weight: 700;
  font-family: var(--gl-display); color: var(--gl-ink); }
.glx-mais-lidos .elementor-post__title a:hover { color: #00A57F; }

/* --------------------------------------------------- arquivo de categoria */

.glx-cat-cabeca .elementor-heading-title { font-size: 52px; line-height: 1.06; letter-spacing: -0.03em; }
.glx-cat-desc, .glx-cat-desc p {
  font-size: 16.5px; line-height: 1.66; font-weight: 500; color: #4B4478; margin: 0; max-width: 720px;
}
.glx-contador {
  border-radius: var(--gl-r-md); text-align: center; position: relative; overflow: hidden;
  background: linear-gradient(150deg, var(--gl-graf-a), var(--gl-graf-b));
  box-shadow: 0 30px 54px -28px rgba(24,26,31,0.85), inset 0 1px 0 rgba(255,255,255,0.14);
}
.glx-contador .elementor-heading-title { color: #FFFFFF; font-size: 44px; letter-spacing: -0.04em; line-height: 1; }
.glx-contador .glx-mono, .glx-contador .glx-mono p { color: rgba(255,255,255,0.7); }

.glx-cat-grid .elementor-posts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 26px; }
.glx-cat-grid .elementor-post { margin: 0; }

.elementor-pagination .page-numbers {
  font-family: var(--gl-mono); font-size: 12px; font-weight: 600;
  border-radius: 12px; padding: 10px 15px; color: var(--gl-ink-2);
  background: rgba(255,255,255,0.8); border: 1px solid rgba(255,255,255,0.95);
  box-shadow: 0 12px 24px -18px rgba(23,18,51,0.6);
}
.elementor-pagination .page-numbers.current {
  background: linear-gradient(135deg, var(--gl-guias-a), var(--gl-guias-b)); color: #06231A;
}

/* --------------------------------------------------- rodape */

.glx-footer {
  background: linear-gradient(180deg, rgba(255,255,255,0.74), rgba(255,255,255,0.46));
  backdrop-filter: blur(24px) saturate(155%);
  -webkit-backdrop-filter: blur(24px) saturate(155%);
  border-top: 1px solid rgba(255,255,255,0.9);
}
.glx-footer-topo > .e-con-inner { border-bottom: 1px solid rgba(23,18,51,0.1); }
.glx-col-tit, .glx-col-tit p {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--gl-muted-2);
  margin: 0 0 4px;
}
.glx-footer .elementor-icon-list-item a,
.glx-footer .elementor-icon-list-text {
  font-size: 14.5px; font-weight: 600; color: var(--gl-ink-2);
}
.glx-footer .elementor-icon-list-item a:hover { color: #00A57F; }
.glx-footer-txt, .glx-footer-txt p {
  font-size: 14.5px; line-height: 1.65; font-weight: 500; color: #4B4478; margin: 0; max-width: 330px;
}
.glx-legal, .glx-legal p {
  font-size: 12.5px; line-height: 1.6; color: var(--gl-muted); margin: 0;
}
.glx-copy, .glx-copy p {
  font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--gl-muted-2); margin: 0;
}

/* --------------------------------------------------- sobre */

.glx-sobre-foto img {
  border-radius: var(--gl-r-lg);
  box-shadow: 0 40px 70px -36px rgba(23,18,51,0.55);
}
.glx-criterio {
  border-radius: var(--gl-r-md);
  background: linear-gradient(160deg, rgba(255,255,255,0.92), rgba(255,255,255,0.6));
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.9);
  box-shadow: 0 24px 46px -32px rgba(23,18,51,0.55);
}
.glx-criterio .elementor-heading-title { font-size: 22px; line-height: 1.24; }

/* --------------------------------------------------- responsivo */

@media (max-width: 1200px) {
  :root { --glx-gut: 40px; }
  .glx-cat-grid .elementor-posts { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .glx-artigo-grid > .e-con-inner { grid-template-columns: minmax(0,1fr); gap: 40px; }
  .glx-lateral { position: static; }
}

@media (max-width: 1024px) {
  .glx-header, .glx-footer, .glx-painel, .glx-assinatura, .glx-lat-cartao,
  .glx-criterio, .elementor-widget.glx-toc, .glx-toc .elementor-widget-container,
  .glx-cards .elementor-post, .glx-mini .elementor-post,
  .glx-linhas .elementor-post, .glx-destaque .elementor-post {
    backdrop-filter: none; -webkit-backdrop-filter: none;
    background: linear-gradient(160deg, rgba(255,255,255,0.96), rgba(255,255,255,0.82));
  }
  .glx-destaque .elementor-post__title a { font-size: 30px; }
  .glx-artigo-tit .elementor-heading-title { font-size: 34px; }
  .glx-cat-cabeca .elementor-heading-title { font-size: 38px; }
  .glx-tit .elementor-heading-title { font-size: 26px; }
}

@media (max-width: 767px) {
  :root { --glx-gut: 20px; }
  .glx-cat-grid .elementor-posts { grid-template-columns: minmax(0,1fr); }
  .glx-destaque .elementor-post__thumbnail { height: auto; }
  .glx-destaque .elementor-post__text { padding: 22px 22px 26px; }
  .glx-destaque .elementor-post__title a { font-size: 26px; }
  .glx-linhas .elementor-post { flex-direction: column; align-items: flex-start; gap: 14px; padding: 16px; }
  .glx-linhas .elementor-post__thumbnail__link { width: 100%; flex: 0 0 auto; }
  .glx-linhas .elementor-post__thumbnail { height: auto; }
  .glx-artigo-tit .elementor-heading-title { font-size: 28px; }
  .glx-corpo { font-size: 17px; }
  .glx-corpo h2 { font-size: 26px; }
  .glx-corpo table { display: block; overflow-x: auto; }
  .glx-tarja { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .glx-passo, .glx-escalao, .glx-cards .elementor-post, .glx-mini .elementor-post,
  .glx-linhas .elementor-post, .glx-btn .elementor-button { transition: none; }
  .glx-passo:hover, .glx-escalao:hover, .glx-cards .elementor-post:hover,
  .glx-mini .elementor-post:hover, .glx-linhas .elementor-post:hover,
  .glx-btn .elementor-button:hover { transform: none; }
}


/* ==========================================================================
   Estrutura dos contentores.
   O desenho vive aqui e nao nas definicoes internas do Elementor. Assim o
   layout aguenta-se mesmo que uma definicao do painel se perca.

   Dois cuidados que custaram uma volta:
   1. Todos os nossos contentores sao "boxed", porque so esses tem .e-con-inner.
      Um contentor "full" poe os filhos direitos e estas regras nao lhe pegam.
   2. O Elementor trava a largura com .e-con.e-con-boxed > .e-con-inner, que
      tem tres classes. Por isso as regras daqui levam .e-con a frente, senao
      perdem por especificidade e nada muda.
   ========================================================================== */

/* Por defeito o interior enche o pai. So as faixas de topo travam a largura. */
.e-con.e-con-boxed[class*="glx-"] > .e-con-inner { width: 100%; max-width: 100%; }

.e-con.glx-header > .e-con-inner,
.e-con.glx-tarja > .e-con-inner,
.e-con.glx-hero > .e-con-inner,
.e-con.glx-sec > .e-con-inner,
.e-con.glx-footer-topo > .e-con-inner,
.e-con.glx-footer-baixo > .e-con-inner,
.e-con.glx-artigo-grid > .e-con-inner,
.e-con.glx-relacionados > .e-con-inner,
.e-con.glx-cat-cabeca > .e-con-inner,
.e-con.glx-sobre-hero > .e-con-inner { max-width: var(--glx-max); margin-inline: auto; }

.e-con.glx-header > .e-con-inner {
  display: flex; flex-direction: row; align-items: center; justify-content: space-between;
  gap: 40px; padding: 0 var(--glx-gut); min-height: 82px;
}
.e-con.glx-marca > .e-con-inner { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 0; }
.e-con.glx-marca-txt > .e-con-inner { display: flex; flex-direction: column; gap: 0; padding: 0; }
.e-con.glx-dir > .e-con-inner { display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 0; }
.e-con.glx-marca, .e-con.glx-marca-txt, .e-con.glx-dir { width: auto; flex: 0 0 auto; }

.e-con.glx-tarja > .e-con-inner {
  display: flex; flex-direction: row; align-items: center; justify-content: center;
  gap: 12px; padding: 12px var(--glx-gut);
}

.e-con.glx-hero > .e-con-inner {
  display: grid; grid-template-columns: 2fr 1fr; gap: 26px;
  padding: 52px var(--glx-gut) 56px;
}
.e-con.glx-hero-lado > .e-con-inner { display: flex; flex-direction: column; gap: 18px; padding: 0; height: 100%; }
.glx-hero-lado .elementor-widget-posts,
.glx-hero-lado .elementor-widget-posts > .elementor-widget-container { height: 100%; }
.glx-hero-lado > .e-con-inner > .elementor-widget-posts { height: 100%; }
.glx-mini .elementor-posts { display: flex; flex-direction: column; gap: 18px; height: 100%; }
.glx-mini .elementor-post { flex: 1 1 0; }

.e-con.glx-sec > .e-con-inner { padding: 0 var(--glx-gut) 60px; display: flex; flex-direction: column; gap: 0; }
.e-con.glx-sec--fim > .e-con-inner { padding-bottom: 64px; }

.e-con.glx-painel > .e-con-inner { padding: 40px 42px 42px; display: flex; flex-direction: column; gap: 0; }
.e-con.glx-painel-topo > .e-con-inner {
  display: flex; flex-direction: row; align-items: flex-end; justify-content: space-between;
  gap: 40px; padding: 0 0 26px;
}
.e-con.glx-painel-topo-txt > .e-con-inner { display: flex; flex-direction: column; gap: 8px; padding: 0; }
.e-con.glx-passos > .e-con-inner { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 16px; padding: 0; }
.e-con.glx-passo > .e-con-inner { display: flex; flex-direction: column; gap: 15px; padding: 22px 20px 24px; }
.e-con.glx-passo-topo > .e-con-inner { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; padding: 0; }
.glx-tracinho { display: inline-block; width: 22px; height: 1px; background: linear-gradient(90deg, rgba(23,18,51,0.25), transparent); }

.e-con.glx-tit-linha > .e-con-inner { display: flex; flex-direction: row; align-items: center; gap: 14px; padding: 0 0 8px; }
.glx-tit-linha .elementor-widget-html { flex: 1 1 auto; }
.glx-tit-linha .elementor-widget-heading,
.glx-tit-linha .elementor-widget-text-editor { flex: 0 0 auto; }
.glx-fio { display: block; height: 1px; width: 100%; background: linear-gradient(90deg, rgba(23,18,51,0.18), transparent); }

.e-con.glx-escaloes > .e-con-inner { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; padding: 0; }
.e-con.glx-escalao > .e-con-inner { display: flex; flex-direction: column; gap: 13px; padding: 28px 28px 30px; height: 100%; }
.glx-escalao .elementor-widget-html:last-child { margin-top: auto; }

.e-con.glx-footer-topo > .e-con-inner {
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px;
  padding: 52px var(--glx-gut) 34px;
}
.e-con.glx-footer-marca > .e-con-inner { display: flex; flex-direction: column; gap: 16px; padding: 0; }
.e-con.glx-footer-col > .e-con-inner { display: flex; flex-direction: column; gap: 11px; padding: 0; }
.e-con.glx-footer-baixo > .e-con-inner {
  display: flex; flex-direction: row; align-items: center; justify-content: space-between;
  gap: 30px; padding: 22px var(--glx-gut) 36px;
}

.e-con.glx-artigo-grid > .e-con-inner {
  display: grid; grid-template-columns: minmax(0, 760px) minmax(0, 320px);
  gap: 56px; justify-content: center; align-items: start;
  padding: 40px var(--glx-gut) 0;
}
.e-con.glx-principal > .e-con-inner { display: flex; flex-direction: column; gap: 0; padding: 0; }
.e-con.glx-lateral > .e-con-inner { display: flex; flex-direction: column; gap: 22px; padding: 0; }
.e-con.glx-assinatura > .e-con-inner { display: flex; flex-direction: row; align-items: center; gap: 14px; padding: 16px 20px; flex-wrap: wrap; }
.e-con.glx-aviso > .e-con-inner { display: flex; flex-direction: row; align-items: flex-start; gap: 12px; padding: 15px 18px; }
.e-con.glx-lat-cartao > .e-con-inner { display: flex; flex-direction: column; gap: 12px; padding: 24px 24px 26px; }
.e-con.glx-relacionados > .e-con-inner { padding: 0 var(--glx-gut) 64px; display: flex; flex-direction: column; gap: 0; }

.e-con.glx-cat-cabeca > .e-con-inner {
  display: flex; flex-direction: row; align-items: center; justify-content: space-between;
  gap: 40px; padding: 46px var(--glx-gut) 34px;
}
.e-con.glx-cat-cabeca-txt > .e-con-inner { display: flex; flex-direction: column; gap: 14px; padding: 0; }
.e-con.glx-contador > .e-con-inner { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 26px 30px 28px; }
.e-con.glx-contador { min-width: 168px; flex: 0 0 auto; width: auto; }
.glx-contador .elementor-shortcode { display: flex; flex-direction: column; align-items: center; gap: 4px; }

.e-con.glx-sobre-hero > .e-con-inner {
  display: grid; grid-template-columns: 1fr 460px; gap: 60px; align-items: center;
  padding: 62px var(--glx-gut) 56px;
}
.e-con.glx-sobre-txt > .e-con-inner { display: flex; flex-direction: column; gap: 18px; padding: 0; }
.e-con.glx-criterios > .e-con-inner { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; padding: 0; }
.e-con.glx-criterio > .e-con-inner { display: flex; flex-direction: column; gap: 12px; padding: 26px 28px 28px; height: 100%; }
.e-con.glx-protocolo > .e-con-inner { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; padding: 0; }

/* O Elementor poe margem por baixo de cada widget. Nas pecas do desenho o
   espaco vem do gap do contentor, senao soma duas vezes. */
.glx-marca-txt .elementor-widget,
.glx-marca .elementor-widget,
.glx-passo .elementor-widget,
.glx-escalao .elementor-widget,
.glx-tit-linha .elementor-widget,
.glx-footer-col .elementor-widget,
.glx-footer-marca .elementor-widget,
.glx-dir .elementor-widget,
.glx-tarja .elementor-widget,
.glx-painel-topo .elementor-widget,
.glx-painel-topo-txt .elementor-widget,
.glx-lateral .elementor-widget,
.glx-contador .elementor-widget { margin-bottom: 0; }

/* --- estrutura, ecras estreitos --- */

@media (max-width: 1200px) {
  .e-con.glx-hero > .e-con-inner { grid-template-columns: minmax(0,1fr); }
  .e-con.glx-passos > .e-con-inner { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .e-con.glx-sobre-hero > .e-con-inner { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .e-con.glx-footer-topo > .e-con-inner { grid-template-columns: 1fr 1fr; gap: 32px; }
  .e-con.glx-criterios > .e-con-inner { grid-template-columns: minmax(0,1fr); }
  .e-con.glx-protocolo > .e-con-inner { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .e-con.glx-escaloes > .e-con-inner { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .e-con.glx-artigo-grid > .e-con-inner { grid-template-columns: minmax(0,1fr); gap: 40px; }
}

@media (max-width: 767px) {
  .e-con.glx-header > .e-con-inner { gap: 14px; min-height: 68px; }
  .e-con.glx-tarja > .e-con-inner { display: none; }
  .e-con.glx-hero > .e-con-inner { padding: 26px var(--glx-gut) 30px; }
  .e-con.glx-passos > .e-con-inner { grid-template-columns: minmax(0,1fr); }
  .e-con.glx-escaloes > .e-con-inner { grid-template-columns: minmax(0,1fr); }
  .e-con.glx-protocolo > .e-con-inner { grid-template-columns: minmax(0,1fr); }
  .e-con.glx-footer-topo > .e-con-inner { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .e-con.glx-footer-baixo > .e-con-inner { flex-direction: column; align-items: flex-start; gap: 14px; }
  .e-con.glx-painel > .e-con-inner { padding: 26px 22px 28px; }
  .e-con.glx-painel-topo > .e-con-inner { flex-direction: column; align-items: flex-start; gap: 18px; }
  .e-con.glx-cat-cabeca > .e-con-inner { flex-direction: column; align-items: flex-start; gap: 24px; }
  .e-con.glx-artigo-grid > .e-con-inner { padding: 24px var(--glx-gut) 0; }
}


/* --------------------------------------------------------------------------
   O contentor do Elementor vem com flex-wrap: wrap. Nas barras de uma linha
   isso parte o cabecalho em dois andares no telemovel. Aqui trava-se.
   -------------------------------------------------------------------------- */
.e-con.glx-header > .e-con-inner,
.e-con.glx-tit-linha > .e-con-inner,
.e-con.glx-passo-topo > .e-con-inner,
.e-con.glx-marca > .e-con-inner,
.e-con.glx-dir > .e-con-inner { flex-wrap: nowrap; }

@media (max-width: 767px) {
  .e-con.glx-header > .e-con-inner { gap: 10px; }
  .glx-header .elementor-widget-nav-menu { margin-left: auto; }
  .glx-lingua { display: none; }
  .glx-marca-nome .elementor-heading-title { font-size: 19px; }
  .glx-marca-sinal { width: 44px; height: 38px; flex: 0 0 44px; }
}


/* --------------------------------------------------------------------------
   Sem imagem de destaque o Elementor nao imprime o bloco da miniatura, e o
   cartao fica sem cor nenhuma. Esta faixa entra no lugar dela, com a cor
   escolhida no artigo, e sai sozinha assim que a foto for posta.
   O :has permite distinguir o cartao sem miniatura sem precisar de PHP.
   Nao se aplica ao .glx-mini nem aos relacionados, que sao sem miniatura de
   proposito e so levam o fio de luz.
   -------------------------------------------------------------------------- */
.glx-destaque .elementor-post:not(:has(.elementor-post__thumbnail__link))::before,
.glx-cat-grid .elementor-post:not(:has(.elementor-post__thumbnail__link))::before {
  content: ""; position: static; display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; z-index: auto;
  background: linear-gradient(135deg, var(--card-a), var(--card-b));
}
.glx-destaque .elementor-post:not(:has(.elementor-post__thumbnail__link))::before { height: auto; aspect-ratio: 1200 / 630; }

.glx-linhas .elementor-post:not(:has(.elementor-post__thumbnail__link))::before {
  content: ""; display: block; flex: 0 0 172px; width: 172px; height: auto; aspect-ratio: 1200 / 630;
  border-radius: 14px; order: -1;
  background: linear-gradient(140deg, var(--card-a), var(--card-b));
  box-shadow: 0 16px 30px -16px var(--card-shadow);
}

@media (max-width: 767px) {
  .glx-destaque .elementor-post:not(:has(.elementor-post__thumbnail__link))::before { height: auto; }
  .glx-linhas .elementor-post:not(:has(.elementor-post__thumbnail__link))::before {
    flex: 0 0 auto; width: 100%; height: auto;
  }
}

/* ==========================================================================
   Revisao geral de 06/09/2026, contra o canvas de desenho.
   Quatro coisas: o ritmo vertical, as capas das miniaturas, o menu no
   telemovel e a caixa do autor.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Ritmo vertical.

   Em modo contentor o Elementor tira a margem de baixo dos widgets e conta
   com o gap do contentor. Como pus gap 0 nestes blocos, ficou tudo colado.
   As medidas sao as do canvas, bloco a bloco.
   -------------------------------------------------------------------------- */

.glx-principal > .e-con-inner > .glx-migalhas    { margin-bottom: 20px; }
.glx-principal > .e-con-inner > .glx-artigo-tit  { margin-bottom: 14px; }
.glx-principal > .e-con-inner > .glx-artigo-lead { margin-bottom: 26px; }
.glx-principal > .e-con-inner > .glx-assinatura  { margin-bottom: 24px; }
.glx-principal > .e-con-inner > .glx-aviso       { margin-bottom: 30px; }
.glx-principal > .e-con-inner > .glx-capa        { margin-bottom: 38px; }
.glx-principal > .e-con-inner > .glx-corpo       { margin-bottom: 42px; }
.glx-principal > .e-con-inner > .glx-autor       { margin-bottom: 0; }

/* Nas seccoes da homepage o titulo, a linha de apoio e a grelha tambem
   estavam encostados. */
.e-con.glx-sec > .e-con-inner { gap: 26px; }
.e-con.glx-relacionados > .e-con-inner { gap: 26px; }
/* A linha de apoio anda colada ao titulo, tudo o resto respira os 26px.
   A regra vai no irmao seguinte e nao no titulo, senao encolhia tambem o
   espaco antes das grelhas que vem logo a seguir a um titulo sozinho. */
.e-con.glx-sec > .e-con-inner > .glx-tit-linha + .glx-sub { margin-top: -18px; }

/* O painel ja tem o respiro por dentro do topo, nao precisa de gap. */
.e-con.glx-painel > .e-con-inner { gap: 0; }

/* --------------------------------------------------------------------------
   2. Capas das miniaturas.

   O Elementor centra a imagem com top 50% e um transform, e deixa a altura
   em auto. Com uma caixa de altura fixa a imagem nao a enche e sobra fundo
   branco. Aqui a imagem passa a preencher a caixa toda e a cortar pelo meio.

   O !important e mesmo preciso. O CSS que o Elementor gera por widget e do
   tipo .elementor-49 .elementor-element.elementor-element-XXXX .algo, que
   tem mais peso do que qualquer selector nosso razoavel.
   -------------------------------------------------------------------------- */

.glx-destaque .elementor-post__thumbnail,
.glx-cards .elementor-post__thumbnail,
.glx-linhas .elementor-post__thumbnail {
  position: relative;
  overflow: hidden;
}

.glx-destaque .elementor-post__thumbnail img,
.glx-cards .elementor-post__thumbnail img,
.glx-linhas .elementor-post__thumbnail img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  transform: none !important;
  object-fit: cover;
  object-position: center;
}

/* A grelha de categoria fica com a mesma altura da faixa de cor, para os
   cartoes com foto e sem foto alinharem na mesma linha. */
.glx-cat-grid .elementor-post__thumbnail {
  height: auto;
  aspect-ratio: 1200 / 630;
  padding-bottom: 0 !important;
}
.glx-cat-grid .elementor-post__thumbnail__link { margin: 0; display: block; }

/* --------------------------------------------------------------------------
   3. Menu no telemovel.

   O widget do menu e um item flex com a largura do botao, 39px, e a gaveta
   herdava essa largura. Aqui a gaveta deixa de se prender ao widget e passa
   a abrir sobre a largura do cabecalho.
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
  .glx-header > .e-con-inner { position: relative; }
  .glx-nav { position: static; }

  .glx-nav .elementor-nav-menu--dropdown {
    position: absolute;
    top: calc(100% + 12px);
    left: var(--glx-gut);
    right: var(--glx-gut);
    width: auto;
    z-index: 60;
    border-radius: var(--gl-r-md);
    overflow: hidden;
    background: linear-gradient(160deg, rgba(255,255,255,0.98), rgba(255,255,255,0.94));
    border: 1px solid rgba(255,255,255,0.9);
    box-shadow: 0 30px 60px -28px rgba(23,18,51,0.5);
  }

  .glx-nav .elementor-nav-menu--dropdown a.elementor-item {
    display: block;
    padding: 15px 20px;
    font-size: 16px;
    font-weight: 600;
    color: var(--gl-ink-2);
    border-radius: 0;
    box-shadow: none;
    background: none;
    border-bottom: 1px solid rgba(23,18,51,0.07);
  }
  .glx-nav .elementor-nav-menu--dropdown li:last-child a.elementor-item { border-bottom: 0; }

  .glx-nav .elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
  .glx-nav .elementor-nav-menu--dropdown .current-menu-item > a.elementor-item {
    background: linear-gradient(135deg, rgba(0,229,143,0.16), rgba(0,194,206,0.16));
    color: var(--gl-ink);
  }

  .glx-nav .elementor-menu-toggle {
    width: 42px; height: 42px; border-radius: 13px;
    background: rgba(255,255,255,0.78);
    border: 1px solid rgba(255,255,255,0.95);
    box-shadow: 0 8px 20px -12px rgba(23,18,51,0.6);
    color: var(--gl-ink);
  }
  .glx-nav .elementor-menu-toggle svg { width: 20px; height: 20px; fill: var(--gl-ink); }
}

/* --------------------------------------------------------------------------
   4. Caixa do autor.

   Sem foto de perfil o Elementor mete o boneco cinzento do Gravatar, que
   destoa. Fica em circulo, com o mesmo vidro do resto e o texto alinhado.
   -------------------------------------------------------------------------- */

.glx-autor .elementor-author-box { align-items: center; gap: 18px; }
.glx-autor .elementor-author-box__avatar img {
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.9);
  box-shadow: 0 12px 24px -14px rgba(23,18,51,0.6);
}
.glx-autor .elementor-author-box__name {
  font-family: var(--gl-display); font-size: 19px; font-weight: 700;
  letter-spacing: -0.02em; color: var(--gl-ink); margin: 0 0 6px;
}
.glx-autor .elementor-author-box__bio {
  font-size: 14.5px; line-height: 1.6; font-weight: 500; color: var(--gl-muted); margin: 0;
}

/* --------------------------------------------------------------------------
   5. Retoques finos vistos na revisao.
   -------------------------------------------------------------------------- */

/* A entrada do artigo estava a herdar o tamanho do corpo. */
.glx-artigo-lead p { font-size: 19px; line-height: 1.6; font-weight: 500; color: #4B4478; margin: 0; }

/* A barra de assinatura mostrava os itens colados uns aos outros. */
.glx-assinatura .elementor-post-info { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.glx-assinatura .elementor-post-info__item { margin: 0; }
.glx-assinatura .elementor-inline-item:after { display: none; }

/* Miniaturas do bloco de mais lidos nao existem, mas o titulo estava a colar
   no separador quando o texto quebrava em tres linhas. */
.glx-mais-lidos .elementor-post__title a { display: inline-block; }

/* No telemovel a coluna do artigo aparecia antes do respiro do cabecalho. */
@media (max-width: 767px) {
  .glx-principal > .e-con-inner > .glx-capa { margin-bottom: 26px; }
  .glx-principal > .e-con-inner > .glx-corpo { margin-bottom: 30px; }
  .e-con.glx-sec > .e-con-inner { gap: 20px; }
}

/* --------------------------------------------------------------------------
   6. Paginas simples, as que nao foram feitas no Elementor.

   Contacto, Divulgacao de afiliacao, Politica de Privacidade e Politica de
   Cookies saem pelo template do tema, com 1140px de largura e a tipografia
   por defeito. Ficam com o mesmo tratamento do corpo de um artigo.

   A guarda :not(.elementor-page) e obrigatoria. Sem ela isto apertava
   tambem a homepage e a pagina Sobre, que sao feitas no construtor.
   -------------------------------------------------------------------------- */

body.gl:not(.elementor-page) .site-main {
  /* A largura e a do texto mais as guardas laterais, para a coluna de leitura
     ficar com os mesmos 760px do corpo de um artigo. */
  max-width: calc(760px + 2 * var(--glx-gut));
  margin-inline: auto;
  padding: 46px var(--glx-gut) 72px;
}

body.gl:not(.elementor-page) .site-main .page-header { margin-bottom: 30px; }

body.gl:not(.elementor-page) .site-main .entry-title {
  font-family: var(--gl-display);
  font-size: 46px; line-height: 1.08; font-weight: 700;
  letter-spacing: -0.03em; color: var(--gl-ink); text-wrap: pretty;
  margin: 0;
}

body.gl:not(.elementor-page) .site-main .page-content,
body.gl:not(.elementor-page) .site-main .entry-content {
  font-size: 18px; line-height: 1.78; color: #332C5C;
}
body.gl:not(.elementor-page) .site-main .page-content h2,
body.gl:not(.elementor-page) .site-main .entry-content h2 {
  font-family: var(--gl-display); font-weight: 700; letter-spacing: -0.025em;
  font-size: 34px; line-height: 1.16; margin: 38px 0 16px; color: var(--gl-ink);
}
body.gl:not(.elementor-page) .site-main .page-content h3,
body.gl:not(.elementor-page) .site-main .entry-content h3 {
  font-family: var(--gl-display); font-weight: 700; letter-spacing: -0.025em;
  font-size: 25px; line-height: 1.2; margin: 30px 0 12px; color: var(--gl-ink);
}
body.gl:not(.elementor-page) .site-main .page-content p,
body.gl:not(.elementor-page) .site-main .entry-content p { margin: 0 0 22px; }
body.gl:not(.elementor-page) .site-main .page-content ul,
body.gl:not(.elementor-page) .site-main .page-content ol,
body.gl:not(.elementor-page) .site-main .entry-content ul,
body.gl:not(.elementor-page) .site-main .entry-content ol { margin: 0 0 22px; padding-left: 22px; }
body.gl:not(.elementor-page) .site-main .page-content li,
body.gl:not(.elementor-page) .site-main .entry-content li { margin-bottom: 9px; }
body.gl:not(.elementor-page) .site-main .page-content a,
body.gl:not(.elementor-page) .site-main .entry-content a {
  color: #00A57F; font-weight: 600; text-decoration: underline;
  text-decoration-color: rgba(0,165,127,0.35); text-underline-offset: 3px;
}
body.gl:not(.elementor-page) .site-main .page-content a:hover,
body.gl:not(.elementor-page) .site-main .entry-content a:hover { color: var(--gl-ink); }

body.gl:not(.elementor-page) .site-main table {
  width: 100%; border-collapse: separate; border-spacing: 0; margin: 30px 0;
  border-radius: var(--gl-r-md); overflow: hidden; font-size: 15px;
  background: rgba(255,255,255,0.9);
  box-shadow: 0 22px 44px -30px rgba(23,18,51,0.55);
}
body.gl:not(.elementor-page) .site-main table th {
  background: linear-gradient(150deg, var(--gl-graf-a), var(--gl-graf-b));
  color: #FFFFFF; font-family: var(--gl-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase; text-align: left; padding: 14px 18px;
}
body.gl:not(.elementor-page) .site-main table td {
  padding: 14px 18px; border-top: 1px solid rgba(23,18,51,0.08); color: var(--gl-ink-2);
}

@media (max-width: 767px) {
  body.gl:not(.elementor-page) .site-main { padding: 26px var(--glx-gut) 46px; }
  body.gl:not(.elementor-page) .site-main .entry-title { font-size: 28px; }
  body.gl:not(.elementor-page) .site-main .page-content,
  body.gl:not(.elementor-page) .site-main .entry-content { font-size: 17px; }
  body.gl:not(.elementor-page) .site-main .page-content h2,
  body.gl:not(.elementor-page) .site-main .entry-content h2 { font-size: 26px; }
}

/* --------------------------------------------------------------------------
   7. Selo da categoria por cima do titulo do artigo, como no canvas.
   -------------------------------------------------------------------------- */

.glx-seccao .elementor-post-info { display: flex; gap: 10px; }
.glx-seccao .elementor-post-info__item {
  display: inline-block;
  border-radius: var(--gl-pill);
  padding: 6px 15px;
  font-family: var(--gl-body);
  font-size: 12.5px; font-weight: 700;
  background: linear-gradient(135deg, var(--card-a), var(--card-b));
  color: var(--card-ink);
  box-shadow: 0 10px 20px -12px var(--card-shadow);
  margin: 0;
}
.glx-seccao .elementor-post-info__item a,
.glx-seccao .elementor-post-info__item span { color: var(--card-ink); }
.glx-seccao .elementor-inline-item:after { display: none; }
.glx-principal > .e-con-inner > .glx-seccao { margin-bottom: 16px; }

/* --------------------------------------------------------------------------
   8. Cartoes da coluna do destaque.

   Os tres cartoes crescem para acompanhar a altura do destaque, como no
   canvas. Quando a entrada do artigo e comprida o texto passava a borda e
   ficava cortado a meio de uma palavra. Aqui o texto e travado em linhas
   inteiras e o resto fica implicito.
   -------------------------------------------------------------------------- */

.glx-mini .elementor-post { display: flex; flex-direction: column; overflow: hidden; }
.glx-mini .elementor-post__text {
  display: flex; flex-direction: column; min-height: 0; overflow: hidden;
}
.glx-mini .elementor-post__title a {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.glx-mini .elementor-post__excerpt {
  min-height: 0;
  overflow: hidden;
}
.glx-mini .elementor-post__excerpt p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* O mesmo cuidado nos cartoes da grelha de categoria, para as tres colunas
   ficarem com os titulos alinhados. */
.glx-cat-grid .elementor-post__title a {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.glx-cat-grid .elementor-post__excerpt p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Abaixo dos 1200 o destaque deixa de ter coluna ao lado, por isso os tres
   cartoes ja nao tem altura para acompanhar e passam a medir pelo conteudo.
   Sem isto ficavam com a altura antiga e cortavam o texto. */
@media (max-width: 1200px) {
  .glx-hero-lado > .e-con-inner { height: auto; }
  .glx-mini .elementor-posts { height: auto; }
  .glx-mini .elementor-post { flex: 0 0 auto; }
  .glx-mini .elementor-post__title a,
  .glx-mini .elementor-post__excerpt p { -webkit-line-clamp: none; display: block; }
}


/* --------------------------------------------------------------------------
   9. Proporcao das capas e separador da meta.

   As capas dele sao de 1200 por 630. Uma caixa com outra proporcao obriga o
   corte a comer as pontas, e como a capa tem texto lá dentro o titulo ficava
   cortado. As caixas passam a ter a proporcao da capa, por isso a imagem
   entra inteira e nada se perde.

   O separador /// entre o autor e a data vem do CSS do Elementor, num
   ::before do elemento da data. Nao ha definicao no painel para o mudar.
   -------------------------------------------------------------------------- */

/* O separador nao se resolve por aqui. O Elementor gera-o por widget, num
   selector com quatro classes, e ganha a qualquer regra nossa razoavel.
   Vai pela definicao classic_meta_separator no modelo, que existe mas nao
   aparece em get_controls() fora do editor. Ver construir.php. */
.glx-destaque .elementor-post__meta-data > span + span::before,
.glx-cards .elementor-post__meta-data > span + span::before,
.glx-mini .elementor-post__meta-data > span + span::before,
.glx-linhas .elementor-post__meta-data > span + span::before {
  margin: 0 9px;
  color: var(--gl-muted-2);
}
