/* T4 Page Builder pages: drop core .t4-main-body 3rem pad (full-bleed builder layouts). */
@media (min-width: 768px) {
  body.com_t4pagebuilder .t4-section.t4-main-body {
    padding-top: 0;
    padding-bottom: 0;
  }
}

/* Hide T4 layout masthead on auth/profile — component renders its own section.t4-masthead */
body.view-login #t4-masthead,
body.view-registration #t4-masthead,
body.view-reset #t4-masthead,
body.view-remind #t4-masthead,
body.view-profile #t4-masthead,
body.view-login .t4-section.t4-masthead,
body.view-registration .t4-section.t4-masthead,
body.view-reset .t4-section.t4-masthead,
body.view-remind .t4-section.t4-masthead,
body.view-profile .t4-section.t4-masthead {
  display: none !important;
}

/* Auth pages: no site header (login/register/remind/reset) */
body.view-login .site-header,
body.view-login .t4-header,
body.view-login #t4-header,
body.view-registration .site-header,
body.view-registration .t4-header,
body.view-registration #t4-header,
body.view-remind .site-header,
body.view-remind .t4-header,
body.view-remind #t4-header,
body.view-reset .site-header,
body.view-reset .t4-header,
body.view-reset #t4-header {
  display: none !important;
}

/* Login masthead driven by menu Page Display (keep visible; only hide T4 layout #t4-masthead) */
body.view-login .nx-login-masthead {
  display: block !important;
}

/* System messages: keep inside site .container (auth column is container-fluid) */
body.com_users .system-message-wrap {
  width: 100%;
  max-width: var(--container, 1280px);
  margin-left: auto;
  margin-right: auto;
}
body.com_users .system-message-wrap:has(#system-message-container:not(:empty)),
body.com_users .system-message-wrap:has(joomla-alert) {
  padding-top: 16px;
  padding-bottom: 8px;
}
body.com_users #system-message-container joomla-alert,
body.com_users #system-message-container .alert {
  margin-bottom: 0;
}

/* Auth pages: render system messages BELOW .t4-masthead (siblings in .t4-section-inner) */
body.com_users #t4-main-body > .t4-section-inner {
  display: flex;
  flex-direction: column;
}
body.com_users #t4-main-body > .t4-section-inner > * {
  order: 3;
}
body.com_users #t4-main-body > .t4-section-inner > .t4-masthead {
  order: 1;
}
body.com_users #t4-main-body > .t4-section-inner > .system-message-wrap {
  order: 2;
}

/* Auth pages: login-top = above masthead eyebrow (site logo) */
body.com_users .login-modules--login-top {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin: 0 0 1rem;
  text-align: center;
}
body.com_users .login-modules--login-top img {
  display: block;
  max-width: 220px;
  height: auto;
  margin-inline: auto;
}

/* Auth pages: login-logo = above the form card */
body.com_users .login-modules--login-logo {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 440px;
  margin: 0 auto 24px;
  text-align: center;
}
body.com_users .login-modules--login-logo img {
  display: block;
  max-width: 220px;
  height: auto;
  margin-inline: auto;
}

/* Auth pages: module positions below the form (login-bottom, etc.) */
body.com_users .login-modules--login-bottom,
body.com_users .login-modules--login-main-bottom {
  width: 100%;
  max-width: var(--container, 1280px);
  margin: 0 auto;
  padding: 8px 24px 40px;
}

body.view-login .nx-login-masthead .t4-masthead-inner {
  max-width: var(--container, 1280px);
  margin-inline: auto;
  padding: 48px 48px 32px;
}
body.view-login .nx-login-masthead .t4-masthead-title {
  margin: 0 0 8px;
  color: var(--color-heading, var(--color-dark));
}
body.view-login .nx-login-masthead .masthead-sub {
  margin: 0;
  color: var(--color-muted, var(--body-text-color));
  max-width: 40rem;
}
/* When menu sets a masthead background colour, use light text */
body.view-login .nx-login-masthead[style*="background-color"] .t4-masthead-title,
body.view-login .nx-login-masthead[style*="background-color"] .masthead-sub {
  color: var(--color-white);
}

/* Auth pages: hide header-actions (burger / CTAs) if header leaks through */
@media (max-width: 991.98px) {
  body.view-login .header-actions,
  body.view-registration .header-actions,
  body.view-remind .header-actions,
  body.view-reset .header-actions {
    display: none !important;
  }
}

/* Auth masthead: XD pattern (large, top-right — like xdstaging, no dark fill) */
body.com_users .t4-masthead {
  overflow: visible !important;
}
.hc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  color: var(--color-muted);
  padding: 0.4rem 0.85rem;
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  line-height: 1;
}
body.com_users .t4-masthead .hc-eyebrow {
  order: 1;
  text-decoration: none;
  cursor: default;
  text-transform: none;
  letter-spacing: normal;
}
body.com_users .t4-masthead::before,
body.view-registration .t4-masthead::before,
body.view-remind .t4-masthead::before {
  content: "" !important;
  position: absolute !important;
  /* Extend below/around masthead so the large pattern isn't cropped to band height */
  top: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;
  width: min(92vw, 1100px) !important;
  height: min(92vw, 1100px) !important;
  background: transparent url("/images/xd_pattern.webp") 100% 0% / contain no-repeat !important;
  pointer-events: none !important;
  z-index: 0 !important;
  opacity: 0.3 !important;
}

/* Brand gradient tokens — follow :root / html[data-bs-theme] color vars */
:root {
  --xd-gradient-brand: linear-gradient(
    to left,
    var(--color-secondary) 0%,
    var(--color-dark) 100%
  );
  --xd-gradient-brand-diag: linear-gradient(
    222deg,
    var(--color-secondary) 0%,
    var(--color-dark) 100%
  );
  /* space-separated for rgb(var(--color-primary-rgb) / a) — XD #005f99 */
  --color-primary-rgb: 0 95 153;
}

/* Dark: avoid --color-secondary (too bright/indigo); use deeper primary → dark */
html[data-bs-theme="dark"] {
  --xd-gradient-brand: linear-gradient(
    to left,
    var(--color-primary) 0%,
    var(--color-dark) 100%
  );
  --xd-gradient-brand-diag: linear-gradient(222deg, var(--color-dark) 0%, var(--color-dark) 100%);
}

/* XD blue band: gradient + pattern — reusable on any block
   Usage: class="nx-xd-gradient-pattern" (position:relative required context) */
.nx-xd-gradient-pattern {
  --xd-pattern-image: url("/images/xd_pattern.webp");
  position: relative;
  background: var(--xd-gradient-brand-diag);
  background-color: var(--color-dark);
  color: var(--color-white);
}
.nx-xd-gradient-pattern::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: min(92vw, 1100px);
  height: min(92vw, 1100px);
  background: transparent var(--xd-pattern-image) 100% 0% / contain no-repeat;
  pointer-events: none;
  z-index: 0;
  opacity: 0.6;
  mix-blend-mode: plus-lighter;
}
.nx-xd-gradient-pattern > * {
  position: relative;
  z-index: 1;
}

/* Page tokens — alias to T4 style :root so light/dark both track theme CSS */
:root,
html[data-bs-theme="light"] {
  --color-bg: var(--body-bg-color);
  --color-heading: var(--color-dark);
  --color-primary-hover: var(--color-secondary);
  /* RGB companions for Bootstrap rgba(var(--bs-*-rgb), …) — XD primary */
  --bs-primary-rgb: 0, 95, 153 !important;
  --t4-primary-rgb: 0, 95, 153 !important;
}

/*
 * Bootstrap / T4 primary → theme brand.
 * --color-primary comes from media/t4/css/{styleId}.css (XD), not stock Nexora.
 * Alias so btn-primary / links / utilities using BS vars match the site brand.
 */
:root {
  --bs-primary: var(--color-primary) !important;
  --bs-link-color: var(--color-primary) !important;
  --bs-link-hover-color: var(--color-primary-hover, var(--color-secondary)) !important;
  --t4-primary: var(--color-primary) !important;
}

/* Container width */
:root {
  --container: 1350px;
  --container-max: 1350px;
}

.header-inner {
  max-width: 1350px;
}

/* Site-wide bar above main header (hardcoded in header.html: header-top-l / -c / -r)
   Use theme surfaces (not --t4-gray-100) so darkmode.css tokens apply. */
.t4-header-top.header-top,
.t4-section.header-top {
  background-color: var(--color-bg-alt, var(--color-surface, var(--color-light)));
  border-bottom: 1px solid var(--color-border, color-mix(in srgb, var(--color-dark) 8%, transparent));
  font-size: 13px;
  line-height: 1.4;
  color: var(--body-text-color, var(--color-text, var(--color-heading)));
}
.t4-header-top .nav-link,
.t4-section.header-top .nav-link {
  color: inherit;
}
.t4-header-top .t4-section-inner,
.t4-section.header-top .t4-section-inner {
  max-width: 1350px;
  min-height: 2rem;
  padding-block: 0;
  padding-left: 0;
}
.t4-header-top .t4-row,
.t4-section.header-top .t4-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  flex-wrap: nowrap;
}
.t4-header-top .header-top__left,
.t4-header-top .header-top__center,
.t4-header-top .header-top__right,
.t4-section.header-top .header-top__left,
.t4-section.header-top .header-top__center,
.t4-section.header-top .header-top__right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 0 1 auto;
  padding: 0;
}
.t4-header-top .header-top__left,
.t4-section.header-top .header-top__left {
  justify-content: flex-start;
}
.t4-header-top .header-top__center,
.t4-section.header-top .header-top__center {
  justify-content: center;
  text-align: center;
  flex: 1 1 auto;
}
.t4-header-top .header-top__right,
.t4-section.header-top .header-top__right {
  justify-content: flex-end;
}
.t4-header-top p,
.t4-section.header-top p {
  margin: 0;
}
.t4-header-top nav.navbar,
.t4-section.header-top nav.navbar {
  padding: 0;
}

/* Header Top: menu-de-topo stays horizontal; drop column padding */
#menu-de-topo {
  display: flex;
  flex-direction: row;
}
.t4-header-top .header-top__left.menu-de-topo,
.t4-col.menu-de-topo {
  padding: 0;
}
.t4-header-top span.menu-item-title,
.t4-section.header-top span.menu-item-title {
  color: var(--color-primary);
  
  
  text-transform: uppercase;
  margin: 0 0 12px;
  font-size: 0.80rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    font-variant-numeric: tabular-nums;

  
}

/* Header-top / menu-de-topo hover: no surface-2 pill; secondary text only.
   Overrides template.css generic .nav-link:hover { background: surface-2 }. */
.t4-header-top .nav-link:hover,
.t4-header-top .nav-item:hover > .nav-link,
.t4-header-top .nav-item.is-open > .nav-link,
.t4-section.header-top .nav-link:hover,
.t4-section.header-top .nav-item:hover > .nav-link,
.t4-section.header-top .nav-item.is-open > .nav-link,
#menu-de-topo .nav-link:hover,
#menu-de-topo .nav-item:hover > .nav-link,
#menu-de-topo .nav-item.is-open > .nav-link,
.menu-de-topo .nav-link:hover,
.menu-de-topo .nav-item:hover > .nav-link,
.menu-de-topo .nav-item.is-open > .nav-link {
  background: transparent;
  background-color: transparent;
  color: var(--color-secondary);
}
.t4-header-top .nav-link:hover span.menu-item-title,
.t4-header-top .nav-item:hover > .nav-link span.menu-item-title,
.t4-header-top .nav-item.is-open > .nav-link span.menu-item-title,
.t4-section.header-top .nav-link:hover span.menu-item-title,
.t4-section.header-top .nav-item:hover > .nav-link span.menu-item-title,
.t4-section.header-top .nav-item.is-open > .nav-link span.menu-item-title,
#menu-de-topo .nav-link:hover span.menu-item-title,
#menu-de-topo .nav-item:hover > .nav-link span.menu-item-title,
#menu-de-topo .nav-item.is-open > .nav-link span.menu-item-title,
.menu-de-topo .nav-link:hover span.menu-item-title,
.menu-de-topo .nav-item:hover > .nav-link span.menu-item-title,
.menu-de-topo .nav-item.is-open > .nav-link span.menu-item-title {
  color: var(--color-secondary);
}

/*
 * #navbar-alternativo — menu alternativo (header-top / módulo menu).
 * Opções de grafismo: flex horizontal; links como cards (--color-surface);
 * hover: border secondary + leve transform (mantém fundo surface).
 * Scoped ao ID para não afectar o megamenu principal (#t4-header).
 *
 * Containment: match site .container (max-width + padding-inline).
 * Credenciação/Academia: nav lives under .nx-canvas-page-wrap which breaks
 * out of .t4-section-inner.container to 100vw — an ancestor .container still
 * exists in the DOM, so a ".container .navbar:has(...)" exception wrongly
 * cancelled gutters and left the blue card row full-bleed. Always constrain
 * this module; do not cancel for distant .container ancestors.
 */
.navbar:has(#navbar-alternativo) {
  width: 100%;
  max-width: var(--container, 1350px);
  margin-inline: auto;
  padding-inline: unset;
  box-sizing: border-box;
}
@media (min-width: 1200px) {
  /* .navbar:has(#navbar-alternativo) {
    padding-inline: 48px;
  } */
}
/* Belt-and-suspenders: ID itself stays on the same axis if .navbar chrome
   is missing or overridden. Padding lives on .navbar only (no double gutter). */
#navbar-alternativo {
  /* display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch; */
  gap: 0.75rem 1rem;
  margin-block: 0;
  margin-inline: auto;
  padding: 0;
  list-style: none;
  width: 100%;
  max-width: var(--container, 1350px);
  box-sizing: border-box;
  /* Remove Bootstrap list-group-horizontal chrome from the <ul> */
  border: 0;
  background: transparent;
  border-radius: 0;
}
#navbar-alternativo > .nav-item,
#navbar-alternativo > .list-group-item,
#navbar-alternativo > li {
  display: flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  background-color: transparent;
}
#navbar-alternativo .nav-link,
#navbar-alternativo > li > a {
  display: flex;
  margin: 0;
  background-color: transparent;
  color: var(--color-primary);
  letter-spacing: 0.05em;
  transition: color 0.15s ease;
  gap: 16px;
  align-items: center;
  background: var(--color-surface);
  border-radius: 16px;
  padding: 24px;
  font-family: var(--font-heading);
  font-size: 17px;
  white-space: break-spaces;
  flex: 1;
}
/*
 * Flag + title: inline row, SVG to the LEFT of the label.
 * Scoped — never a bare `span { display:flex }` rule.
 * .nx-pais-flag-img is display:block globally; without flex on the
 * name wrapper the flag stacks above the title instead of beside it.
 * order:-1 keeps the SVG first even if DOM were title-then-img.
 */
#navbar-alternativo .nav-link:has(.nx-pais-flag-img) > span[itemprop="name"],
#navbar-alternativo > li > a:has(.nx-pais-flag-img) > span[itemprop="name"] {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}
#navbar-alternativo .nav-link .nx-pais-flag-img,
#navbar-alternativo > li > a .nx-pais-flag-img {
  flex: 0 0 auto;
  order: -1;
  align-self: center;
  width: 18px;
  height: 18px;
}
#navbar-alternativo .nav-link span.menu-item-title,
#navbar-alternativo .nav-link span.image-title,
#navbar-alternativo > li > a span.menu-item-title,
#navbar-alternativo > li > a span.image-title {
  color: inherit;
  font: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: none;
  line-height: inherit;
  margin: 0;
  order: 1;
  flex: 1 1 auto;
  min-width: 0;
}
/* Hover / open: keep surface card; secondary border + text */
#navbar-alternativo .nav-link:hover,
#navbar-alternativo .nav-item:hover > .nav-link,
#navbar-alternativo .nav-item.is-open > .nav-link,
#navbar-alternativo > li > a:hover {
  background: var(--color-surface-2);
  color: var(--color-secondary);
  
}
#navbar-alternativo .nav-link:hover span.menu-item-title,
#navbar-alternativo .nav-link:hover span.image-title,
#navbar-alternativo .nav-item:hover > .nav-link span.menu-item-title,
#navbar-alternativo .nav-item:hover > .nav-link span.image-title,
#navbar-alternativo .nav-item.is-open > .nav-link span.menu-item-title,
#navbar-alternativo .nav-item.is-open > .nav-link span.image-title,
#navbar-alternativo > li > a:hover span.menu-item-title,
#navbar-alternativo > li > a:hover span.image-title {
  color: var(--color-secondary);
}
/* Active / current page */
#navbar-alternativo .nav-item.active > .nav-link,
#navbar-alternativo .nav-item.current > .nav-link,
#navbar-alternativo .current > .nav-link,
#navbar-alternativo > li.active > a,
#navbar-alternativo > li.current > a,
#navbar-alternativo .nav-link.active {
  background: var(--color-surface);
  background-color: var(--color-surface);
  border-color: var(--color-secondary);
  color: var(--color-secondary);
  font-weight: 600;
  box-shadow: none;
}
#navbar-alternativo .nav-item.active > .nav-link span.menu-item-title,
#navbar-alternativo .nav-item.active > .nav-link span.image-title,
#navbar-alternativo .nav-item.current > .nav-link span.menu-item-title,
#navbar-alternativo .nav-item.current > .nav-link span.image-title,
#navbar-alternativo .current > .nav-link span.menu-item-title,
#navbar-alternativo .current > .nav-link span.image-title,
#navbar-alternativo > li.active > a span.menu-item-title,
#navbar-alternativo > li.active > a span.image-title,
#navbar-alternativo > li.current > a span.menu-item-title,
#navbar-alternativo > li.current > a span.image-title,
#navbar-alternativo .nav-link.active span.menu-item-title,
#navbar-alternativo .nav-link.active span.image-title {
  color: var(--color-secondary);
}
#navbar-alternativo .nav-link:focus,
#navbar-alternativo .nav-link:focus-visible,
#navbar-alternativo > li > a:focus,
#navbar-alternativo > li > a:focus-visible {
  outline: none;
  background: var(--color-surface);
  border-color: var(--color-secondary);
  box-shadow: none;
}

/* Primary nav flush right (logo left, menu right).
   Offcanvas toggle was moved into .primary-nav; template CSS hid the whole
   nav below 1120px (when the burger is needed). Keep the nav shell visible
   for the toggle; hide only the megamenu until desktop. */
.primary-nav,
.nexora-header .primary-nav {
  display: flex !important;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  margin-right: 0;
  min-width: 0;
}
.nexora-header .primary-nav > .navbar {
  display: none;
}
@media (min-width: 1120px) {
  .nexora-header .primary-nav > .navbar {
    display: block;
    min-width: 0;
  }
}

/* Landing hid all of .nexora-nav; burger now lives there — show shell on
   mobile for the toggle, keep megamenu off. Desktop landing stays chrome-light. */
@media (max-width: 991.98px) {
  body.layout-landing .nexora-header .nexora-nav,
  body.layout-landing .nexora-header .primary-nav {
    display: flex !important;
  }
  body.layout-landing .nexora-header .primary-nav > .navbar,
  body.layout-landing .nexora-header .t4-megamenu {
    display: none !important;
  }
  body.layout-landing .nexora-header #triggerButton,
  body.layout-landing .nexora-header .t4-offcanvas-toggle,
  body.layout-landing .nexora-header .nav-burger {
    display: inline-flex !important;
  }
}

/* Align hardcoded page-band widths (compiled template.css still has 1180/1140) */
.view-contact .cc-card,
.hc-mockup,
.sec-stats .stats-grid,
.nx-page-features .cta-card,
.nx-page-team .nx-team-grid,
.nx-page-team .nx-cta-card,
.blog-nl-card,
.blog-featured-card,
.nx-page-credenciacao .cta-card,
.nx-page-changelog .chg-cta-card,
.nx-page-suporte .chg-cta-card,
.nxa-header-inner,
.nxa-body-inner,
.nxa-cta-inner,
body.layout-default.view-featured .nx-feat-mast__inner,
body.layout-default.view-featured .nx-feat-grid,
body.layout-default.view-featured .nx-feat-cta__card,
body:has(.nx-cats-masthead) .nx-cats-gridsec .container,
body:has(.nx-cats-masthead) .nx-cats-cta .container,
body:has(.nx-cat-header) .nx-cat-header > .container,
body:has(.nx-cat-header) .nx-cat-body > .container,
body:has(.nx-cat-header) .nx-cat-cta > .container,
body.view-article .nx-single-tagswrap > .nx-single-tags,
body.view-article .nx-author-card,
body.view-article .nx-single-cta__card {
  max-width: var(--container);
}
body:has(.nx-cat-header) .nx-cat-grid {
  gap: 28px;
}
body:has(.nx-cat-header) .nx-cat-header > .container,
body:has(.nx-cat-header) .t4-masthead .nx-cat-header > .t4-masthead-detail,
.t4-masthead body:has(.nx-cat-header) .nx-cat-header > .t4-masthead-detail {
  /* padding-top: 64px; */
  /* padding-bottom: 40px; */
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
  padding: 28px 0px 28px;
  /* Restore H-gutter: shorthand above zeros inline; site .container clamp
     (and ≥1200 zero in this file) would otherwise leave the masthead flush. */
  padding-inline: clamp(1rem, 0.5rem + 2.5vw, 3rem);
}
@media (min-width: 1200px) {
  body:has(.nx-cat-header) .nx-cat-header > .container,
  body:has(.nx-cat-header) .t4-masthead .nx-cat-header > .t4-masthead-detail,
  .t4-masthead body:has(.nx-cat-header) .nx-cat-header > .t4-masthead-detail {
    padding-inline: 48px;
  }
}
.nx-page-team .sec-cta-card .container,
.nx-page-credenciacao .sec-cta-card .container,
.nx-page-changelog .sec-changelog-cta > .container {
  max-width: calc(var(--container) + 96px);
}
body.view-article .nx-single-tagswrap > .nx-single-tags,
body.view-article .nx-author-card,
body.view-article .nx-single-cta__card,
body.view-article .nx-single-layout {
  width: var(--container);
  max-width: 100%;
}

/* XD logo SVG is ~4504×956 intrinsic — always constrain the <img>, not only the wrapper. */
.navbar-brand.nexora-brand {
  flex: 0 0 auto;
  max-width: 160px;
  line-height: 0;
}
.navbar-brand.nexora-brand .logo-img,
.navbar-brand.nexora-brand img {
  display: block;
  width: auto;
  height: 36px;
  max-width: 160px;
  object-fit: contain;
}

/* Dark: brand SVGs are hard-filled (#1D3B6E) — stock darkmode only filters .logo-item */
html[data-bs-theme="dark"] .navbar-brand.nexora-brand .logo-img,
html[data-bs-theme="dark"] .navbar-brand.nexora-brand .logo-img-sm,
html[data-bs-theme="dark"] .navbar-brand.nexora-brand img,
html[data-bs-theme="dark"] .t4-offcanvas .logo-img,
html[data-bs-theme="dark"] .t4-offcanvas .logo-img-sm,
html[data-bs-theme="dark"] .acm-footer-brand .brand-logo,
html[data-bs-theme="dark"] .footer-brand .brand-logo,
html[data-bs-theme="dark"] .nx-xd-footer .brand-logo,
html[data-bs-theme="dark"] body.com_users .login-modules--login-logo img,
html[data-bs-theme="dark"] body.com_users .login-modules--login-top img,
html[data-bs-theme="dark"] body.com_users .xd-login-logo,
html[data-bs-theme="dark"] body.view-login .xd-login-logo {
  filter: brightness(0) invert(1);
}

/* Blog/category: conteúdo primeiro, sidebar à direita.
 * ≤991px: stack a 100% (regras em _nexora.scss / abaixo).
 * Also treat empty .cw-side as absent (assigned modules with no output). */
@media (min-width: 992px) {
  body.view-category .cw-grid:not(:has(.cw-side)),
  body.view-category .cw-grid:has(> .cw-side:empty),
  .layout-content-sidebar .cw-grid:not(:has(.cw-side)),
  .layout-content-sidebar .cw-grid:has(> .cw-side:empty) {
    display: block;
    grid-template-columns: none;
  }
  body.view-category .cw-grid:has(.cw-side:not(:empty)),
  .layout-content-sidebar .cw-grid:has(.cw-side:not(:empty)) {
    display: grid;
    gap: 40px;
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: start;
  }
  body.view-category .cw-grid:has(.cw-side:not(:empty)) > .cw-side,
  .layout-content-sidebar .cw-grid:has(.cw-side:not(:empty)) > .cw-side {
    order: unset;
  }
  /* Honour Blog Layout → # Columns (was hardcoded to 2). */
  body.view-category .blog-grid,
  .layout-content-sidebar .blog-grid {
    display: grid;
    grid-template-columns: repeat(var(--blog-cols, 2), minmax(0, 1fr));
    gap: 24px;
  }
}
@media (max-width: 991.98px) {
  body.view-category .blog-grid,
  .layout-content-sidebar .blog-grid {
    grid-template-columns: 1fr;
  }
  body.view-category .cw-grid:has(.cw-side:not(:empty)),
  .layout-content-sidebar .cw-grid:has(.cw-side:not(:empty)) {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  body.view-category .cw-grid:has(.cw-side:not(:empty)) > .cw-content,
  body.view-category .cw-grid:has(.cw-side:not(:empty)) > .cw-side,
  .layout-content-sidebar .cw-grid:has(.cw-side:not(:empty)) > .cw-content,
  .layout-content-sidebar .cw-grid:has(.cw-side:not(:empty)) > .cw-side {
    order: unset;
    width: 100%;
    max-width: 100%;
  }
  body.view-category .cw-grid:has(.cw-side:not(:empty)) > .cw-side,
  .layout-content-sidebar .cw-grid:has(.cw-side:not(:empty)) > .cw-side {
    order: 1;
  }
}

/* Disable post-card hover lift/shadow (also still in compiled template.css). */
.post-card:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--color-border-soft);
}

/* Featured card: no gradient avatar circle when Show Author is Hide. */
.blog-featured-meta::before {
  display: none !important;
}
.blog-featured-meta:has(.b-au):not(:has(.b-av))::before {
  display: block !important;
  content: "";
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  border-radius: 100px;
  background: linear-gradient(135deg, var(--color-secondary) 0%, var(--color-primary) 100%);
}

/* Remove "Featured" badge on leading article image. */
.blog-featured-img::after {
  display: none !important;
  content: none !important;
}

/* Honour Options → Show Read More on blog post cards (theme previously forced hide). */
.post-card .post-more {
    display: block;
    margin-top: 8px;
    font-weight: 600;
    font-size: 14px;
}
.post-card .post-more a {
    color: var(--color-primary);
    text-decoration: none;
}

/* Category list: intro + readmore when enabled in menu Options. */
.nx-cat-intro {
    color: var(--color-muted);
    font-size: 14.5px;
    line-height: 1.55;
    margin: 6px 0 0;
}
.nx-cat-readmore {
    margin: 10px 0 0;
}
.nx-cat-readmore-link {
    font-weight: 600;
    font-size: 14px;
    color: var(--color-primary);
    text-decoration: none;
}

/*
 * RSTickets! Pro icons — T4 CSS Optimize rewrites relative font URLs into the
 * bundled file under media/t4/optimize/css/, which often breaks the icon font
 * (tofu / empty squares). Re-declare with root-absolute paths + !important.
 */
@font-face {
  font-family: "rsticketsproicon";
  src: url("/media/com_rsticketspro/css/font/rsticketsproicon.woff2") format("woff2"),
       url("/media/com_rsticketspro/css/font/rsticketsproicon.woff") format("woff"),
       url("/media/com_rsticketspro/css/font/rsticketsproicon.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
[class^="rsticketsproicon-"]:before,
[class*=" rsticketsproicon-"]:before {
  font-family: "rsticketsproicon" !important;
  speak: never;
  font-style: normal !important;
  font-weight: 400 !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*
 * RSTickets! Pro — align frontend colors with Nexora design tokens.
 * Scoped to body.com_rsticketspro so the rest of the site is untouched.
 */
body.com_rsticketspro {
  --rst-accent: var(--color-primary);
  --rst-accent-hover: var(--color-primary-hover, var(--color-secondary));
  --rst-heading: var(--color-heading, var(--color-dark));
  --rst-text: var(--color-text, var(--body-text-color));
  --rst-muted: var(--color-muted);
  --rst-surface: var(--color-surface, var(--color-white));
  --rst-border: var(--color-border, var(--color-light));
  --rst-bg: var(--color-bg, var(--body-bg-color));
}

body.com_rsticketspro .rst-dashboard-item,
body.com_rsticketspro .rst-dashboard-kb-item,
body.com_rsticketspro .card {
  background-color: var(--rst-surface) !important;
  border-color: var(--rst-border);
  color: var(--rst-text);
}

body.com_rsticketspro .card-header {
  padding: var(--t4-card-cap-padding-y) var(--t4-card-cap-padding-x);
  margin-bottom: 0;
  color: var(--t4-card-cap-color);
  background-color: transparent;
  border-bottom: var(--t4-card-border-width) solid var(--t4-card-border-color);
}

body.com_rsticketspro #ticket-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

body.com_rsticketspro #ticket-history-row {
  margin-top: 1.5rem;
}

body.com_rsticketspro .rst-title,
body.com_rsticketspro .rst-dashboard-item .rst-title,
body.com_rsticketspro .rst-dashboard-item .rst-title a,
body.com_rsticketspro .rst-dashboard-kb-item a {
  color: var(--rst-accent) !important;
}

body.com_rsticketspro .rst-title:hover,
body.com_rsticketspro .rst-dashboard-item .rst-title a:hover,
body.com_rsticketspro .rst-dashboard-kb-item a:hover {
  color: var(--rst-accent-hover) !important;
}

body.com_rsticketspro .rst-dashboard-item [class^="rsticketsproicon-"],
body.com_rsticketspro .rst-dashboard-item [class^="rsticketsproicon-"]:before,
body.com_rsticketspro #rstickets_search_icon,
body.com_rsticketspro #rstickets_search_icon:before {
  color: var(--rst-accent) !important;
}

body.com_rsticketspro .rst-caption p,
body.com_rsticketspro .rst-dashboard-item .rst-caption p {
  color: var(--rst-muted);
}

body.com_rsticketspro .btn-primary,
body.com_rsticketspro .btn-primary:focus,
body.com_rsticketspro .btn-primary:active {
  background-color: var(--rst-accent) !important;
  border-color: var(--rst-accent) !important;
  color: var(--color-white) !important;
}

body.com_rsticketspro .btn-primary:hover {
  background-color: var(--rst-accent-hover) !important;
  border-color: var(--rst-accent-hover) !important;
  color: var(--color-white) !important;
}

body.com_rsticketspro .btn-outline-primary,
body.com_rsticketspro a.btn-outline-primary {
  color: var(--rst-accent) !important;
  border-color: var(--rst-accent) !important;
}

body.com_rsticketspro .btn-outline-primary:hover {
  background-color: var(--rst-accent) !important;
  color: var(--color-white) !important;
}

body.com_rsticketspro a:not(.btn):not(.rst-title):not(.nx-menu-horizontal__link):not(.nav-link) {
  color: var(--rst-accent);
}

body.com_rsticketspro a:not(.btn):not(.rst-title):not(.nx-menu-horizontal__link):not(.nav-link):hover {
  color: var(--rst-accent-hover);
}

body.com_rsticketspro .form-control:focus,
body.com_rsticketspro #rsticketspro_searchinp:focus {
  border-color: var(--rst-accent);
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--rst-accent) 25%, transparent);
}

body.com_rsticketspro .pagination .page-item.active .page-link,
body.com_rsticketspro .pagination .active > .page-link {
  background-color: var(--rst-accent) !important;
  border-color: var(--rst-accent) !important;
}

body.com_rsticketspro .pagination .page-link {
  color: var(--rst-accent);
}

body.com_rsticketspro .badge.bg-primary,
body.com_rsticketspro .badge-primary {
  background-color: var(--rst-accent) !important;
}

body.com_rsticketspro .nav-tabs .nav-link.active {
  color: var(--rst-accent) !important;
  border-color: var(--rst-accent) var(--rst-accent) transparent !important;
}

/* RSTickets tabs only — staff chrome pills keep white active text in suporte.css */
body.com_rsticketspro .nav-pills .nav-link.active:not(.nx-menu-horizontal__link) {
  color: var(--rst-accent) !important;
  border-color: var(--rst-accent) var(--rst-accent) transparent !important;
}

body.com_rsticketspro .table thead th {
  color: var(--rst-heading);
  border-color: var(--rst-border);
}

/* Tickets list — replace Bootstrap/admin gray with theme tokens */
body.com_rsticketspro.view-tickets .rst-heading {
  color: var(--rst-heading);
  font-family: var(--font-heading);
}

body.com_rsticketspro.view-tickets .rst-tickets-container,
body.com_rsticketspro.view-tickets .table-responsive {
  color: var(--rst-text);
}

body.com_rsticketspro.view-tickets .well,
body.com_rsticketspro.view-tickets .well-small,
body.com_rsticketspro.view-tickets .card {
  background: var(--rst-surface) !important;
  border: 1px solid var(--rst-border) !important;
  border-radius: var(--radius, 10px);
  color: var(--rst-text);
  box-shadow: none;
}

body.com_rsticketspro.view-tickets .table,
body.com_rsticketspro.view-tickets table.adminlist {
  --bs-table-bg: var(--rst-surface);
  --bs-table-color: var(--rst-text);
  --bs-table-border-color: var(--rst-border);
  --bs-table-striped-bg: var(--color-bg-alt, var(--color-light));
  --bs-table-striped-color: var(--rst-text);
  --bs-table-hover-bg: color-mix(in srgb, var(--rst-accent) 10%, var(--rst-surface));
  --bs-table-hover-color: var(--rst-heading);
  --bs-table-active-bg: color-mix(in srgb, var(--rst-accent) 14%, var(--rst-surface));
  color: var(--rst-text);
  border-color: var(--rst-border);
  background-color: var(--rst-surface);
}

body.com_rsticketspro.view-tickets .table > :not(caption) > * > * {
  border-bottom-color: var(--rst-border);
  color: var(--rst-text);
}

body.com_rsticketspro.view-tickets .table thead th,
body.com_rsticketspro.view-tickets .table thead td {
  background: var(--color-bg-alt, var(--color-light)) !important;
  color: var(--rst-heading) !important;
  border-bottom: 1px solid var(--rst-border) !important;
  font-weight: 600;
}

body.com_rsticketspro.view-tickets .table thead th a,
body.com_rsticketspro.view-tickets .table thead th a:hover {
  color: var(--rst-heading) !important;
  text-decoration: none !important;
}

body.com_rsticketspro.view-tickets .table tbody td a:not(.btn):not(.btn-danger):not(.rst_button_delete_ticket) {
  color: var(--rst-accent) !important;
  font-weight: 500;
}

body.com_rsticketspro.view-tickets .table tbody td a:not(.btn):not(.btn-danger):not(.rst_button_delete_ticket):hover {
  color: var(--rst-accent-hover) !important;
}

/* Delete / danger buttons — white × on red (must beat table link rule) */
body.com_rsticketspro.view-tickets .table tbody td a.btn-danger,
body.com_rsticketspro.view-tickets .table tbody td a.rst_button_delete_ticket,
body.com_rsticketspro.view-tickets .table tbody td .btn-danger {
  color: var(--color-white) !important;
}

body.com_rsticketspro.view-tickets .table tbody td a.btn-danger:hover,
body.com_rsticketspro.view-tickets .table tbody td a.rst_button_delete_ticket:hover,
body.com_rsticketspro.view-tickets .table tbody td .btn-danger:hover {
  color: var(--color-white) !important;
}

body.com_rsticketspro.view-tickets .table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: var(--color-bg-alt, var(--color-light)) !important;
  color: var(--rst-text);
  box-shadow: none;
}

body.com_rsticketspro.view-tickets .table-hover > tbody > tr:hover > * {
  background-color: color-mix(in srgb, var(--rst-accent) 10%, var(--rst-surface)) !important;
  color: var(--rst-heading);
}

/* Priority / status — theme text colors only (layout stays stock RST) */
body.com_rsticketspro.view-tickets .rst_priority_cell {
  font-weight: 600;
  color: var(--rst-heading);
}

body.com_rsticketspro.view-tickets .rst_cell_status,
body.com_rsticketspro.view-tickets [class*="rst-status-"] .rst_cell_status,
body.com_rsticketspro.view-tickets td.rst_cell_status {
  color: var(--rst-accent);
  font-weight: 600;
}

body.com_rsticketspro.view-tickets .form-control,
body.com_rsticketspro.view-tickets .form-select,
body.com_rsticketspro.view-tickets select,
body.com_rsticketspro.view-tickets input[type="text"] {
  background-color: var(--rst-surface);
  border-color: var(--rst-border);
  color: var(--rst-text);
}

body.com_rsticketspro.view-tickets .btn-secondary,
body.com_rsticketspro.view-tickets .btn-default {
  background: var(--color-surface-2, var(--color-light));
  border-color: var(--rst-border);
  color: var(--rst-heading);
}

body.com_rsticketspro.view-tickets .btn-secondary:hover,
body.com_rsticketspro.view-tickets .btn-default:hover {
  background: color-mix(in srgb, var(--rst-accent) 12%, var(--rst-surface));
  border-color: var(--rst-accent);
  color: var(--rst-accent);
}

body.com_rsticketspro .alert-info {
  border-color: color-mix(in srgb, var(--rst-accent) 35%, transparent);
  background: color-mix(in srgb, var(--rst-accent) 10%, transparent);
  color: var(--rst-heading);
}

/* Dark mode — tokens already flip; reinforce surfaces if RST hardcodes white. */
html[data-bs-theme="dark"] body.com_rsticketspro .rst-dashboard-item,
html[data-bs-theme="dark"] body.com_rsticketspro .rst-dashboard-kb-item,
html[data-bs-theme="dark"] body.com_rsticketspro .card,
html[data-bs-theme="dark"] body.com_rsticketspro .rst-magnific-popup {
  background-color: var(--color-surface) !important;
  border-color: var(--color-border);
  color: var(--color-text);
}

html[data-bs-theme="dark"] body.com_rsticketspro .form-control,
html[data-bs-theme="dark"] body.com_rsticketspro #rsticketspro_searchinp {
  background-color: var(--color-surface-2);
  border-color: var(--color-border);
  color: var(--color-text);
}

/* Category sort pill: do not force 13px (theme .nx-cat-sort / .nx-cat-sort-sel). */
body:has(.nx-cat-header) .nx-cat-sort,
body:has(.nx-cat-header) .nx-cat-sort .nx-cat-sort-sel {
  font-size: inherit;
}

/* Category list: text-only rows when Show Item Image = Hide */
.nx-cat-row--no-thumb .nx-cat-tx {
  width: 100%;
}

/* Category list card chrome — card wraps whole row (thumb + text) */
body:has(.nx-cat-header) .nx-cat-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
body:has(.nx-cat-header) .nx-cat-row {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  min-width: 0;
  border: 1px solid var(--color-border-soft);
  border-radius: var(--radius-lg);
  padding: 22px 22px 16px;
  background: var(--color-surface);
}
/* Thumb ~20% of row; height follows image aspect ratio */
body:has(.nx-cat-header) .nx-cat-thumb {
  flex: 0 0 25%;
  width: 25%;
  height: auto;
  border-radius: 10px;
  overflow: hidden;
  background: var(--color-card-2);
  border: 1px solid var(--color-border-soft);
  display: block;
  position: relative;
}
body:has(.nx-cat-header) .nx-cat-thumb img {
  width: 100%;
  height: auto;
  display: block;
}
/* Placeholder has no <img> — keep a 3:2 box so the row still has a thumb area */
body:has(.nx-cat-header) .nx-cat-thumb--ph {
  aspect-ratio: 3 / 2;
}
body:has(.nx-cat-header) .nx-cat-tx {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
@media (max-width: 767.98px) {
  body:has(.nx-cat-header) .nx-cat-row {
    gap: 14px;
    padding: 16px;
  }
  body:has(.nx-cat-header) .nx-cat-thumb {
    border-radius: 8px;
  }
}
body:has(.nx-cat-header) .nx-cat-rowtitle a {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--color-heading);
  letter-spacing: -0.01em;
}

/* Category blog: featured card without image */
.blog-featured-card--no-img {
  min-height: 0;
}
.blog-featured-card--no-img .blog-featured-text {
  flex: 1 1 100%;
}

/* Campanhas XD (menu item-3152, cat blog 709): keep full marketing art in
 * fixed thumb/featured boxes — theme defaults to object-fit/background-size: cover. */
body.item-3152 .post-thumb img {
  object-fit: contain;
  object-position: center;
}
body.item-3152 .blog-featured-img {
  background-size: contain !important;
  background-repeat: no-repeat;
  background-position: center !important;
}

/* Category list sidebars — Blog Categories widget look + active row */
body:has(.nx-cat-header) .cw-side {
  --blog-dim: var(--color-text-dim, var(--color-muted));
}
body:has(.nx-cat-header) .widget-list li.active > a,
body.view-article .widget-list li.active > a {
  color: var(--color-primary);
  font-weight: 600;
}
body:has(.nx-cat-header) .widget-list li.active .widget-count,
body.view-article .widget-list li.active .widget-count {
  color: var(--color-primary);
}

/* Tag chips no sidebar — radius do botão BS (não pill) */
.widget-tags a {
  display: inline-block;
  padding: 6px 12px;
  background: var(--color-card-2);
  color: var(--color-muted);
  font-size: 12.5px;
  text-decoration: none;
  border-radius: var(--bs-btn-border-radius, var(--bs-border-radius, 0.25rem)) !important;
}

/* mod_menu layout: ja_nexora : Horizontal — centered row */
.nx-page-suporte,
.nx-rst-chrome,
.t4-suporte-chrome {
  background: var(--color-bg-alt);
  border-bottom: 1px solid var(--color-border-soft);
  /* padding-bottom: 20px; */
}
/* Tighter section rhythm on suporte pages */
body.layout-suporte section[class^="sec-"],
body.layout-suporte section[class*=" sec-"],
body.layout-home-inner section[class^="sec-"],
body.layout-home-inner section[class*=" sec-"] {
  padding-block: var(--sp-6);
}
/* Module Style: nx_suporte_menu */
.nx-suporte-menu {
  background: var(--color-border-strong);
  padding: 16px 20px 20px;
  border-radius: var(--radius, 10px);
  margin-top: 20px;
}
.nx-suporte-menu__title {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  color: var(--color-heading, var(--color-dark));
}
/* Module Class Suffix: nx-menu-sm */
.nx-menu-sm .nx-menu-horizontal__list,
.nx-suporte-menu.nx-menu-sm .nx-menu-horizontal__list {
  gap: 6px 8px;
}
.nx-menu-sm .nx-menu-horizontal__link,
.nx-menu-sm .nav-pills .nav-link,
.nx-suporte-menu.nx-menu-sm .nav-pills .nav-link {
  font-size: 12px;
  font-weight: 500;
  padding: 0.35rem 0.7rem;
  line-height: 1.2;
}
.nx-page-suporte .ja-acm.acm-masthead.sec-masthead,
.nx-page-suporte .acm-masthead.sec-masthead,
.nx-rst-chrome .ja-acm.acm-masthead.sec-masthead,
.nx-rst-chrome .acm-masthead.sec-masthead,
.t4-suporte-chrome .ja-acm.acm-masthead.sec-masthead,
body.layout-suporte .ja-acm.acm-masthead.sec-masthead {
  background: transparent;
}
.nx-page-suporte .sec-masthead::before,
.nx-rst-chrome .sec-masthead::before,
.t4-suporte-chrome .sec-masthead::before,
body.layout-suporte .sec-masthead::before {
  display: none;
}
.nx-menu-horizontal {
  width: 100%;
  display: flex;
  justify-content: center;
}
.nx-menu-horizontal__list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 28px;
  margin: 0;
  padding: 0;
  list-style: none;
  width: auto;
  max-width: 100%;
}
/* nav-fill on wrapper/ul would stretch pills — keep items content-sized & centered */
.nx-menu-horizontal__list.nav-fill > .nav-item,
.nx-menu-horizontal .nav-fill > .nav-item {
  flex: 0 0 auto;
}
.nx-menu-horizontal__item { margin: 0; }
.nx-menu-horizontal__link {
  color: inherit;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  opacity: 0.9;
}
.nx-menu-horizontal__link:hover,
.nx-menu-horizontal__item.active > .nx-menu-horizontal__link {
  opacity: 1;
  text-decoration: none;
}

/* Staff chrome pills — always in custom.css (suporte.css may not load on every view).
   T4 wraps modules in .t4-section-inner, so no child combinator. */
.t4-suporte-chrome .nx-menu-horizontal .nav-pills .nav-link,
.nx-page-suporte .nx-menu-horizontal .nav-pills .nav-link,
.nx-rst-chrome .nx-menu-horizontal .nav-pills .nav-link,
body.com_rsticketspro .nx-menu-horizontal .nav-pills .nav-link {
  color: var(--color-text, var(--body-text-color));
  border-radius: var(--t4-nav-pills-border-radius, 0.375rem);
  border: 1px solid var(--rst-border, var(--color-border-soft, var(--color-light)));
  background-color: var(--rst-surface, var(--color-surface, var(--color-white)));
  text-decoration: none !important;
}
.t4-suporte-chrome .nx-menu-horizontal .nav-pills .nav-link:hover,
.nx-page-suporte .nx-menu-horizontal .nav-pills .nav-link:hover,
.nx-rst-chrome .nx-menu-horizontal .nav-pills .nav-link:hover,
body.com_rsticketspro .nx-menu-horizontal .nav-pills .nav-link:hover {
  color: var(--color-white) !important;
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  text-decoration: none !important;
  opacity: 1 !important;
}
.t4-suporte-chrome .nx-menu-horizontal .nav-pills .nav-link.active,
.nx-page-suporte .nx-menu-horizontal .nav-pills .nav-link.active,
.t4-suporte-chrome .nx-menu-horizontal .nav-pills .nav-item.active > .nav-link,
.nx-page-suporte .nx-menu-horizontal .nav-pills .nav-item.active > .nav-link,
body.com_rsticketspro .t4-suporte-chrome .nav-pills .nav-link.active,
body.com_rsticketspro .nx-menu-horizontal .nav-pills .nav-link.active {
  color: var(--color-white) !important;
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  text-decoration: none !important;
  opacity: 1 !important;
}


/* ---- XD footer (match newv4 structure; light surface, dark type) ---- */
.nx-xd-footer.site-footer,
.nx-mobile-footer.nx-xd-footer {
  border-top: 0 !important;
  color: var(--color-muted, var(--body-text-color));
  padding: 40px 0 28px;
  background: var(--color-bg-alt) !important;
}

.site-footer {
  /* background: var(--color-bg-alt); */
  /* border-top: 1px solid var(--color-border-soft); */
  background: transparent !important;
  border-top: 0 !important;
  padding: 64px 0 32px;
}
.nx-xd-footer .xd-footer-solutions {
  display: grid;
  gap: 28px 24px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 8px;
}
@media (min-width: 768px) {
  .nx-xd-footer .xd-footer-solutions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .nx-xd-footer .xd-footer-solutions {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
.nx-xd-footer .footer-col-title {
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin: 0 0 12px;
}
.nx-xd-footer .footer-col .footer-menu,
.nx-xd-footer .footer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nx-xd-footer .footer-col .footer-menu li + li,
.nx-xd-footer .footer-menu li + li { margin-top: 8px; }
.nx-xd-footer .footer-col .footer-menu a,
.nx-xd-footer .footer-menu a {
  color: var(--color-muted, var(--body-text-color));
  font-size: 14px;
  text-decoration: none;
}
.nx-xd-footer .footer-col .footer-menu a:hover,
.nx-xd-footer .footer-menu a:hover { color: var(--color-primary); }

.nx-xd-footer .xd-contact-btns {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  width: 100%;
}
.nx-xd-footer .xd-contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  background: var(--color-primary);
  border: 1px solid var(--color-primary);
  color: var(--color-primary-contrast, var(--color-white)) !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 10px 14px;
  border-radius: 4px;
  text-decoration: none !important;
  text-align: center;
}
.nx-xd-footer .xd-contact-btn:hover {
  background: var(--color-primary-hover, var(--color-secondary));
  border-color: var(--color-primary-hover, var(--color-secondary));
  color: var(--color-primary-contrast, var(--color-white)) !important;
}

.nx-xd-footer .xd-footer-banner {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  margin-bottom: 0;
}
.nx-xd-footer .xd-footer-banner .footer-brand,
.nx-xd-footer .xd-footer-banner .acm-footer-brand {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px 28px;
}
.nx-xd-footer .xd-footer-banner .brand {
  flex: 0 0 auto;
  line-height: 0;
}
.nx-xd-footer .xd-footer-banner .brand-logo {
  height: 60px;
  width: auto;
  max-width: 160px;
}
.nx-xd-footer .xd-footer-banner .footer-tagline {
  flex: 1 1 280px;
  margin: 0;
  max-width: none;
  color: var(--color-muted, var(--body-text-color));
  font-size: 13px;
  letter-spacing: 1px;
  line-height: 1.6;
}
.nx-xd-footer .xd-footer-banner .footer-contacts,
.nx-xd-footer .xd-footer-banner .social-list { display: none; }

.nx-xd-footer .xd-footer-platforms {
  margin-top: 20px;
  margin-bottom: 28px;
  padding-top: 20px;
  padding-bottom: 28px;
  border-top: 1px solid var(--color-border-soft, var(--color-light));
  border-bottom: 1px solid var(--color-border-soft, var(--color-light));
}
.nx-xd-footer .xd-platforms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
}
@media (min-width: 768px) {
  .nx-xd-footer .xd-platforms {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .nx-xd-footer .xd-platforms {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}
.nx-xd-footer .xd-plat {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-heading, var(--color-dark));
  text-decoration: none;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.nx-xd-footer .xd-plat:hover { color: var(--color-primary); }
.nx-xd-footer .xd-plat-ico {
  display: inline-grid;
  place-items: center;
  line-height: 0;
  width: 1.1em;
  font-size: 15px;
}
.nx-xd-footer .xd-socials a i {
  font-size: 18px;
  line-height: 1;
}

.nx-xd-footer .xd-footer-legal.footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  margin-top: 20px;
  padding-top: 0;
  border-top: none;
}
.nx-xd-footer .copyright {
  color: var(--color-muted, var(--body-text-color));
  font-size: 13px;
  margin: 0;
}
.nx-xd-footer .xd-footer-legal .footer-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.nx-xd-footer .xd-footer-legal .footer-menu a {
  color: var(--color-muted, var(--body-text-color));
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: none;
}
.nx-xd-footer .xd-footer-legal .footer-menu a:hover { color: var(--color-primary); }
.nx-xd-footer .xd-socials {
  display: flex;
  align-items: center;
  gap: 14px;
}
.nx-xd-footer .xd-socials a {
  color: var(--color-heading, var(--color-dark));
  line-height: 0;
}
.nx-xd-footer .xd-socials a:hover { color: var(--color-primary); }

/* Hide legacy Nexora footer-top layout remnants if any */
.nx-xd-footer .footer-top { display: contents; }

/* T4 Page Builder — equal-height cards in a row (e.g. Suporte Angola/Brasil/Portugal) */
.t4b-section .row {
  align-items: stretch;
}
.t4b-section .row > .col.cell,
.t4b-section .row > [class*="col"] {
  display: flex;
  flex-direction: column;
}
.t4b-section .row > .col.cell > .card,
.t4b-section .row > [class*="col"] > .card {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
}
.t4b-section .row > .col.cell > .card > .card-body,
.t4b-section .row > [class*="col"] > .card > .card-body {
  flex: 1 1 auto;
}

/* T4 Page Builder / <search> — mod_finder pill (same chrome as .cw-side / com_finder) */
.t4b-section search,
.t4b-section .mod-finder,
search .mod-finder {
  display: block;
  width: 100%;
  max-width: 720px;
  margin-inline: auto;
}
.t4b-section .mod-finder .finder.visually-hidden,
search .mod-finder .finder.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.t4b-section .mod-finder__search.search-box-wrap,
search .mod-finder__search.search-box-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  background: var(--color-surface, var(--color-white));
  /* border: 1.5px solid var(--color-primary); */
  border-radius: 10px;
  padding: 10px 10px 10px 18px;
  border: 1px solid var(--color-border-soft);
}
.t4b-section .search-box-icon,
search .search-box-icon {
  display: inline-flex;
  align-items: center;
  color: var(--color-muted);
  flex-shrink: 0;
}
.t4b-section .search-box-icon svg,
search .search-box-icon svg {
  width: 17px;
  height: 17px;
}
.t4b-section .awesomplete,
search .awesomplete {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  align-items: center;
}
.t4b-section .awesomplete > input.search-box-input,
search .awesomplete > input.search-box-input {
  width: 100%;
}
.t4b-section .search-box-input,
search .search-box-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  background: none;
  border: none;
  outline: none;
  box-shadow: none;
  padding: 0;
  color: var(--color-heading, var(--color-dark));
  font-size: 16px;
  font-family: var(--font-sans, Inter, sans-serif);
}
.t4b-section .search-box-input::placeholder,
search .search-box-input::placeholder {
  color: var(--color-text-dim, var(--color-muted));
  opacity: 1;
}
.t4b-section .search-box-input:focus,
search .search-box-input:focus {
  box-shadow: none;
  outline: none;
}

/* T4 Page Builder — mobile gap between stacked cards */
@media (max-width: 767.98px) {
  .t4b-section .row {
    display: flex;
    flex-wrap: wrap;
    row-gap: 20px;
    column-gap: 0;
  }
  .t4b-section .row > .col.cell,
  .t4b-section .row > [class*="col"] {
    margin-bottom: 0;
  }
  /* Sections that follow each other also breathe a bit */
  .t4b-section + .t4b-section {
    margin-top: 8px;
  }
}

@media (max-width: 767.98px) {
  .rst-dashboard-items.rst-dashboard-section.row {
    gap: 20px;
  }
}

/* Forms — lift T4 legacy caps / fixed label offsets */
.form-control {
  max-width: none;
}
form.form-horizontal .control-group .controls {
  margin-left: 0;
}
form:not(.form-no-margin) .control-group .controls {
  margin-left: 0;
}
form:not(.form-no-margin) .control-group .control-label {
  float: none;
  padding-top: 0;
  padding-right: 0;
  text-align: left;
  font-weight: 700;
  color: var(--color-primary);
}

.rst_custom_field_label {
  font-weight: 700;
  color: var(--color-primary);
}

/* Primary megamenu + submenus: 14px (header-top stays at its own 13px rules). */
.site-header.nexora-header .primary-nav .t4-megamenu .navbar-nav > li > .nav-link,
.site-header.nexora-header .primary-nav .t4-megamenu .navbar-nav > li > a,
.site-header.nexora-header .primary-nav .t4-megamenu .navbar-nav > li > .nav-link .menu-item-title,
.site-header.nexora-header .primary-nav .t4-megamenu .navbar-nav > li > a .menu-item-title,
.site-header.nexora-header .t4-megamenu .dropdown-menu .dropdown-item,
.site-header.nexora-header .t4-megamenu .dropdown-menu .dropdown-item .menu-item-title,
.site-header.nexora-header .t4-megamenu .mega-nav > li > a,
.site-header.nexora-header .t4-megamenu .mega-nav > li > .nav-link,
.site-header.nexora-header .t4-megamenu .mega-nav > li > a .menu-item-title,
.site-header.nexora-header .t4-megamenu .mega-nav > li > .nav-link .menu-item-title,
.site-header.nexora-header .t4-megamenu .mega-rich-t,
.site-header.nexora-header .t4-megamenu .mega-links a {
  font-size: var(--t4-nav-link-font-size);
}

/* Header dropdowns: kill T4 animate fade (opacity:0 → 1) so panels stay fully opaque */
.site-header.nexora-header .t4-megamenu .dropdown-menu,
.site-header.nexora-header .t4-megamenu.animate .dropdown > .dropdown-menu,
.site-header.nexora-header .t4-megamenu.animate .dropdown.show > .dropdown-menu,
.site-header.nexora-header .t4-megamenu.animate .dropdown.animating > .dropdown-menu {
  opacity: 1 !important;
}

/* Main megamenu top-level hover: surface-2 pill (template.css still has
   .site-header … background:transparent / rgba(0,0,0,0); SCSS source updated).
   Exclude li.btn so Procurar / CTA menu buttons keep their own hover. */
.site-header .t4-megamenu .navbar-nav > li:not(.btn) > .nav-link:hover,
.site-header .t4-megamenu .navbar-nav > li:not(.btn):hover > .nav-link,
.site-header .t4-megamenu .navbar-nav > li:not(.btn).show > .nav-link,
.site-header .t4-megamenu .navbar-nav > li:not(.btn) > a:hover,
.site-header .t4-megamenu .navbar-nav > li:not(.btn):hover > a,
.site-header .t4-megamenu .navbar-nav > li:not(.btn).show > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li:not(.btn) > .nav-link:hover,
.site-header.nexora-header .t4-megamenu .navbar-nav > li:not(.btn):hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li:not(.btn).show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li:not(.btn) > a:hover,
.site-header.nexora-header .t4-megamenu .navbar-nav > li:not(.btn):hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li:not(.btn).show > a {
  background: var(--color-surface-2);
}

/* Megamenu: Extra class btn-* on <li> — style the child link with Bootstrap colours */
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn {
  display: inline-flex;
  align-items: center;
  align-self: center;
  margin-inline: 0.25rem;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1 !important;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  /* Same box for primary / secondary / dropdown (Licenças) vs plain (Sair) */
  padding: 0.4rem 0.85rem !important;
  min-height: 2rem;
  box-sizing: border-box;
  line-height: 1.2 !important;
  height: auto !important;
  border-radius: var(--bs-btn-border-radius, var(--bs-border-radius, 0.25rem)) !important;
  font-weight: 600;
  font-size: 14px !important;
  text-decoration: none;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > .nav-link .menu-item-title {
  color: inherit;
}
/* Dropdown caret inside a menu button — keep height in sync with secondary */
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > .nav-link.dropdown-toggle::after,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > a.dropdown-toggle::after {
  display: none !important; /* T4 already renders .item-caret */
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > .nav-link .item-caret,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > a .item-caret {
  width: 12px !important;
  height: 12px !important;
  margin-left: 0 !important;
  flex: 0 0 12px;
  background-color: currentColor !important;
  opacity: 0.9;
}

/* Font Awesome icons inside megamenu buttons (T4 icons field) */
.site-header.nexora-header .t4-megamenu .navbar-nav > li.has-icon > .nav-link > i,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn > .nav-link > i {
  font-size: 14px;
  line-height: 1;
  width: 1em;
  text-align: center;
}

/* Icon-only Procurar (#424) / Detalhes de Conta (#3254) — hide only the top-level title, not submenu titles */
.site-header.nexora-header .t4-megamenu .navbar-nav > li[data-id="424"] > .nav-link .menu-item-title,
.site-header.nexora-header .t4-megamenu .navbar-nav > li[data-id="3254"] > .nav-link .menu-item-title {
  display: none !important;
}

/* Sizes — add btn-sm / btn-lg on the <li> Extra class (e.g. "btn btn-primary btn-sm") */
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-sm > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-sm > a {
  padding: 0.25rem 0.65rem !important;
  min-height: 1.65rem;
  font-size: 12px !important;
  gap: 0.25rem;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-sm > .nav-link .item-caret,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-sm > a .item-caret {
  width: 10px !important;
  height: 10px !important;
  flex-basis: 10px;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-lg > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-lg > a {
  padding: 0.55rem 1.15rem !important;
  min-height: 2.5rem;
  font-size: 16px !important;
  gap: 0.4rem;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-lg > .nav-link .item-caret,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn.btn-lg > a .item-caret {
  width: 14px !important;
  height: 14px !important;
  flex-basis: 14px;
}

/* Bootstrap variants (Extra class on <li>) */
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-danger > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-danger > a {
  color: var(--color-white) !important;
  background-color: var(--bs-danger, var(--color-danger)) !important;
  border: 1px solid var(--bs-danger, var(--color-danger)) !important;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-warning > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-warning > a {
  color: var(--color-dark) !important;
  background-color: var(--bs-warning, var(--color-warning)) !important;
  border: 1px solid var(--bs-warning, var(--color-warning)) !important;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-success > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-success > a {
  color: var(--color-white) !important;
  background-color: var(--bs-success, var(--color-success)) !important;
  border: 1px solid var(--bs-success, var(--color-success)) !important;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-primary > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-primary > a {
  color: var(--color-white) !important;
  background-color: var(--bs-primary, var(--color-primary)) !important;
  
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-secondary > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-secondary > a {
  color: var(--color-white) !important;
  background-color: var(--bs-secondary, var(--color-secondary)) !important;
  border: 1px solid var(--bs-secondary, var(--color-secondary)) !important;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-info > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-info > a {
  color: var(--color-white) !important;
  background-color: var(--bs-info, var(--color-info)) !important;
  border: 1px solid var(--bs-info, var(--color-info)) !important;
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-danger:hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-success:hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-primary:hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-secondary:hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-info:hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-danger.show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-success.show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-primary.show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-secondary.show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-info.show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-danger:hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-success:hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-primary:hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-secondary:hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-info:hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-danger.show > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-success.show > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-primary.show > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-secondary.show > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-info.show > a {
  filter: brightness(0.92);
  color: var(--color-white) !important; /* keep white label (override plain-nav hover heading colour) */
}
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-warning:hover > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-warning.show > .nav-link,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-warning:hover > a,
.site-header.nexora-header .t4-megamenu .navbar-nav > li.btn-warning.show > a {
  filter: brightness(0.92);
  color: var(--color-dark) !important;
}

/* Hero Split: radial glow overlay */
.acm-hero.hero-split::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient(80% 50% at 50% 10%, rgb(var(--color-primary-rgb) / 0.5), transparent 70%);
}

.shero-visual.has-img {
    height: auto;
    padding: 0;
    background: none;
    border: 0;
    /* box-shadow: 0 20px 70px -10px rgb(var(--color-primary-rgb) / 0.2); */
}

/* Credenciação / home-inner: knobs de padding e dimensões do visual com imagem */
body.layout-home-inner .sec-shero {
    position: relative;
}

body.layout-home-inner .sec-shero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background: radial-gradient(60% 100% at 50% 0%, rgb(var(--color-primary-rgb) / 0.5), transparent 70%);
}

body.layout-home-inner .sec-shero .shero-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 60% 1fr;
    gap: 64px;
    align-items: center;
}

@media (max-width: 991.98px) {
    body.layout-home-inner .sec-shero .shero-inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}

body.layout-home-inner .shero-visual.has-img {
    height: auto;
    width: auto;
    max-width: 100%;
    padding: 0; /* ajustar conforme necessário */
    /* opcional: aspect-ratio, max-height, etc. */
    box-shadow: none;
}

body.layout-home-inner .shero-visual.has-img img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    max-width: 500px;
    align-self: center;
}

/* Credenciação / home-inner: hero lead sem max-width (override global 480px) */
body.layout-home-inner .shero-lead {
    font-family: var(--font-sans);
    font-size: 18px;
    line-height: 1.55;
    color: var(--color-muted);
    max-width: none; /* was 480px */
    margin: 0;
}

/* Credenciação / home-inner: ocultar bloco de confiança do hero */
body.layout-home-inner .shero-trust {
    display: none;
}

/* Hero Fundo Azul XD: invert buttons (template forces primary !important)
   White/alpha overlays on brand photo — intentional; use --color-white for solids. */
.acm-hero.hero-fundo-azul-xd .hc-actions .btn.btn-primary {
  color: var(--color-primary) !important;
  background: var(--color-white) !important;
  background-color: var(--color-white) !important;
  background-image: none !important;
  border-color: var(--color-white) !important;
  box-shadow: none !important;
}
.acm-hero.hero-fundo-azul-xd .hc-actions .btn.btn-primary:hover {
  color: var(--color-primary) !important;
  background: color-mix(in srgb, var(--color-white) 92%, transparent) !important;
  background-color: color-mix(in srgb, var(--color-white) 92%, transparent) !important;
  background-image: none !important;
  border-color: var(--color-white) !important;
  box-shadow: none !important;
  transform: none !important;
}
.acm-hero.hero-fundo-azul-xd .hc-actions .btn.btn-ghost {
  color: var(--color-white) !important;
  border: 1px solid color-mix(in srgb, var(--color-white) 65%, transparent) !important;
  background: transparent !important;
  background-color: transparent !important;
}
.acm-hero.hero-fundo-azul-xd .hc-actions .btn.btn-ghost:hover {
  color: var(--color-white) !important;
  background: color-mix(in srgb, var(--color-white) 12%, transparent) !important;
  background-color: color-mix(in srgb, var(--color-white) 12%, transparent) !important;
  border-color: var(--color-white) !important;
}

/* Hero title: a bit wider for PT headlines */
.hc-title {
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: -1.5px;
  line-height: 1.05;
  font-size: clamp(2.4rem, 1.2rem + 5vw, 3rem);
  max-width: 22ch;
  margin-inline: auto;
}

/* Stats band: columns follow filled items (Home has 3, other pages keep 4) */
.sec-stats .stats-grid {
  grid-template-columns: repeat(var(--stats-cols, 4), minmax(0, 1fr));
}
.sec-stats .stats-grid--cols-3 .stat::before {
  display: block;
}
.sec-stats .stats-grid--cols-3 .stat:nth-child(3n + 1)::before {
  display: none;
}
.sec-stats .stats-grid--cols-2 .stat::before {
  display: block;
}
.sec-stats .stats-grid--cols-2 .stat:nth-child(2n + 1)::before {
  display: none;
}

@media (min-width: 700px) {
    .acm-statistics .stat {
        flex: 0 0 280px;
        /* width: 280px; */
        min-width: 280px;
    }
}


.widget-title {
  color: var(--color-primary);
}

/* Category list + article fields: país flags (images/bandeiras). */
.nx-cat-flags,
.fields-container .field-entry.pais .field-value .nx-field-flags,
.nx-field-flags {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  line-height: 1;
}
.nx-cat-flag,
.nx-field-flag {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.nx-pais-flag-img {
  display: block;
  width: 18px;
  height: 18px;
  object-fit: cover;
  border-radius: 2px;
}
/* Other menus with país flag (same pattern as #navbar-alternativo). */
.mod-menu .nav-link:has(.nx-pais-flag-img) > span[itemprop="name"],
.navbar-nav .nav-link:has(.nx-pais-flag-img) > span[itemprop="name"] {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
}
.mod-menu .nav-link .nx-pais-flag-img,
.navbar-nav .nav-link .nx-pais-flag-img {
  flex: 0 0 auto;
  order: -1;
  align-self: center;
}
.mod-menu .nav-link:has(.nx-pais-flag-img) .menu-item-title,
.mod-menu .nav-link:has(.nx-pais-flag-img) .image-title,
.navbar-nav .nav-link:has(.nx-pais-flag-img) .menu-item-title,
.navbar-nav .nav-link:has(.nx-pais-flag-img) .image-title {
  order: 1;
}
.nx-cat-flag .badge,
.nx-field-flag .badge {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.2em 0.45em;
  line-height: 1.2;
  vertical-align: middle;
}
.nx-cat-meta-i:has(.nx-cat-flags) {
  display: inline-flex;
  align-items: center;
}

body:has(.nx-cat-header) .nx-cat-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  width: 100%;
}
body:has(.nx-cat-header) .nx-cat-title-row .nx-cat-rowtitle {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
body:has(.nx-cat-header) .nx-cat-title-row .nx-cat-flags {
  flex: 0 0 auto;
  margin-top: 0.2em;
}

/* Neutralize theme desktop gutter (compiled from _nexora.scss; .t4-masthead-detail @extends .container).
   Only .container — NOT .container-fluid. Fluid still keeps Bootstrap half --t4-gutter-x padding
   (see suporte override below). Home avoids this via layout container:none. */
@media (min-width: 1200px) {
  .container,
  .t4-masthead .t4-masthead-detail {
    padding-inline: 0;
  }
}

/* Suporte layout: Fluid = full width of parent, NOT zero gutters.
   Bootstrap .container-fluid / .row > * still apply padding from --t4-gutter-x.
   Zero only the section shell + top-level T4 cols so nested grids keep gutters. */
body.layout-suporte .t4-section-inner.container-fluid {
  padding-inline: 0;
}
body.layout-suporte .t4-section-inner.container-fluid > .row {
  --t4-gutter-x: 0;
  margin-inline: 0;
}
body.layout-suporte .t4-section-inner.container-fluid > .row > .t4-col,
body.layout-suporte .t4-section-inner.container-fluid > .row > [class*="col"] {
  padding-inline: 0;
}

/* ACM footer-brand contact lines (local acm override) */
.acm-footer-brand .footer-contacts {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.acm-footer-brand .footer-contacts a {
  color: inherit;
  text-decoration: none;
  font-size: 13px;
}
.acm-footer-brand .footer-contacts a:hover {
  color: var(--color-primary);
}
/*
 * Staff / suporte menu — #t4-suporte-3 (module chrome) + #menustaff (mod_menu tag id).
 * Do not use --color-light: T4 darkmode.css does not redefine it (stays #f6f7fb).
 */
#t4-suporte-3 {
  align-items: center;
  justify-items: center;
  background-color: var(--color-card-2, var(--color-surface-2, var(--color-bg-alt)));
}

#t4-suporte-3 .navbar,
.navbar:has(#menustaff) {
  padding: 10px;
}

#t4-suporte-3 .navbar-nav,
#menustaff {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2, 0.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
  border: 0;
  background: transparent;
}

#t4-suporte-3 .navbar-nav .nav-link,
#menustaff .nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: small;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem !important;
  color: var(--mainnav-link-color, var(--body-text-color, var(--color-text)));
  background-color: var(--color-surface-2, var(--color-bg-alt, var(--color-surface)));
  border-radius: var(--radius-pill, 999px);
  border: 1px solid var(--color-border-soft, var(--color-border, transparent));
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

#t4-suporte-3 .navbar-nav .nav-link:hover,
#menustaff .nav-link:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

#t4-suporte-3 .navbar-nav .nav-link:focus,
#t4-suporte-3 .navbar-nav .nav-link:focus-visible,
#menustaff .nav-link:focus,
#menustaff .nav-link:focus-visible {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
  outline: none;
  box-shadow: none;
}

#t4-suporte-3 .navbar-nav .current > .nav-link,
#t4-suporte-3 .navbar-nav .nav-item.active > .nav-link,
#menustaff .current > .nav-link,
#menustaff .nav-item.active > .nav-link,
#menustaff .nav-item.current > .nav-link {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

#t4-suporte-3 .navbar-nav .nav-link:active,
#menustaff .nav-link:active {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: var(--color-white);
}

#t4-suporte-3 .navbar-nav .nav-link span.menu-item-title,
#menustaff .nav-link span.menu-item-title {
  color: inherit;
}

/* ==========================================================================
   XD module chromes: xd_card / xd_card_blue
   Module Style (admin): ja_nexora-xd_card | ja_nexora-xd_card_blue
   Markup: local/html/layouts/chromes/xd_card.php (+ _blue)
   Banner pattern mirrors aplicativos-xd (.xd-apps-section__banner) so chromes
   work without loading xd-apps.css. Title highlight: "|" or "::" in module title.
   Hooks: .xd-card | .xd-card--blue | .xd-card__banner | .xd-card__title | .xd-card__body
   ========================================================================== */
.xd-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
  background: var(--color-white);
  border: 1px solid var(--color-border-soft, var(--color-light));
  box-shadow: 0 1px 2px color-mix(in srgb, var(--color-dark) 4%, transparent);
  color: var(--body-text-color, inherit);
}

/* Banner — same visual language as xd-apps.css .gradienteXD_normal (scoped) */
.xd-card .xd-card__banner,
.xd-card .xd-apps-section__banner {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 1.35rem 1.5rem;
  background: var(--xd-gradient-brand-diag);
  border-radius: 16px 16px 0 0;
  border-bottom: 0;
  color: var(--color-white);
  overflow: hidden;
}

.xd-card .xd-card__banner::after,
.xd-card .xd-apps-section__banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/xd-apps/xd_downloads.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 150px;
  mix-blend-mode: overlay;
  pointer-events: none;
}

.xd-card .xd-card__title,
.xd-card .xd-apps-section__title {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 650;
  line-height: 1.3;
  color: var(--color-white);
  border-bottom: unset;
  text-transform: none;
}

.xd-card .xd-apps-highlight {
  color: var(--color-info);
}

.xd-card__body {
  flex: 1 1 auto;
  margin: 0;
  padding: 1.25rem 1.5rem 1.4rem;
  background: var(--color-white);
  border-top: 0;
  border-radius: 0 0 16px 16px;
  color: var(--body-text-color, inherit);
}

/* No title: body keeps full rounded corners / padding */
.xd-card:not(:has(.xd-card__banner)) .xd-card__body {
  border-radius: 16px;
}

.xd-card__body > *:first-child {
  margin-top: 0;
}

.xd-card__body > *:last-child {
  margin-bottom: 0;
}

/* Blue brand variant — same banner; body / links lean on primary */
.xd-card--blue {
  border-color: transparent;
  box-shadow: 0 4px 14px rgb(var(--color-primary-rgb) / 0.18);
}

.xd-card--blue .xd-card__body {
  background: var(--color-bg-alt, var(--color-light));
}

.xd-card--blue .xd-card__body a {
  color: var(--color-primary);
  text-underline-offset: 0.15em;
}

.xd-card--blue .xd-card__body a:hover,
.xd-card--blue .xd-card__body a:focus-visible {
  color: var(--body-link-hover-color, var(--color-secondary));
  opacity: 0.9;
}

html[data-bs-theme="dark"] .xd-card {
  background: var(--color-bg-alt, var(--color-dark));
  border-color: var(--color-border);
}

html[data-bs-theme="dark"] .xd-card .xd-card__body {
  background: var(--color-bg-alt, var(--color-dark));
  color: var(--body-text-color, var(--color-light));
}

html[data-bs-theme="dark"] .xd-card--blue .xd-card__body {
  background: var(--color-surface-2, var(--color-dark));
}

@media (max-width: 575px) {
  .xd-card .xd-card__banner,
  .xd-card .xd-apps-section__banner,
  .xd-card__body {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}