/*
 * LEPI Moderno — subtema visual para OpenScholar.
 * Direção: editorial, acadêmica e contemporânea; inspirada nas referências
 * enviadas pelo usuário, usando a identidade azul, verde e vinho do LEPI.
 * Tema-pai: hwpi_classic. Não altera conteúdo nem o tema original.
 */

:root {
  --lepi-blue: #003176;
  --lepi-blue-deep: #08264a;
  --lepi-blue-mid: #21598e;
  --lepi-blue-pale: #eef4fb;
  --lepi-green: #19330e;
  --lepi-green-pale: #eef4e9;
  --lepi-wine: #8c303f;
  --lepi-wine-deep: #702333;
  --lepi-wine-pale: #f7eef0;
  --lepi-text: #243447;
  --lepi-muted: #607084;
  --lepi-line: #e1e7ee;
  --lepi-cloud: #f6f8fb;
  --lepi-white: #ffffff;
  --lepi-shadow: 0 12px 32px rgba(8, 38, 74, 0.08);
  --lepi-content-width: 1240px;
}

html {
  scroll-behavior: smooth;
  background: var(--lepi-white);
}

body {
  background: var(--lepi-white) !important;
  color: var(--lepi-text) !important;
  font-family: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* Reforça a família sem serifa em elementos textuais do tema-pai. */
p, li, dt, dd, label, input, textarea, select, button, blockquote,
figcaption, address, table, th, td, .field, .field-item, .field-label,
.views-field, .views-label, .node-title, .block-title, .menu, .menu a,
#branding_header, #header, #header *, #menu-bar, #menu-bar *, #content-column,
#content-column h1, #content-column h2, #content-column h3,
#content-column h4, #content-column h5, #content-column h6,
#footer, #footer *, #branding_footer, #branding_footer * {
  font-family: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
#boxes-box-site_info h1, #boxes-box-site_info h2,
#page-title, .node-title, .block-title {
  color: var(--lepi-blue-deep);
  font-weight: 650;
  letter-spacing: -0.035em;
  line-height: 1.18;
}

p { margin-top: 0; }
img, video, iframe { max-width: 100%; }
img { height: auto; }

#page-wrapper, #page, .page.container {
  background: var(--lepi-white) !important;
}

/* O contêiner externo ocupa a página; conteúdo e cabeçalho são alinhados por dentro. */
#page.page.container,
.page.container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

#columns .hg-container {
  width: calc(100% - 48px) !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

#columns #content-column,
#content-column .content-inner {
  min-width: 0;
}

.front #columns .hg-container,
.front #content-column,
.front #content-column .content-inner,
.front #content-column #content-panels,
.front #content-column .region-content-top,
.front #content-column .region-content-top > .region-inner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}

/* Barra institucional superior: leve, branca e com assinatura tricolor discreta. */
#branding_header {
  position: relative;
  background: #fbfcfe !important;
  border: 0 !important;
  border-top: 3px solid var(--lepi-blue) !important;
  border-bottom: 1px solid var(--lepi-line) !important;
  color: var(--lepi-blue-deep) !important;
}

#branding_header::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  width: 28%;
  height: 2px;
  background: linear-gradient(90deg, var(--lepi-blue) 0 54%, var(--lepi-green) 54% 76%, var(--lepi-wine) 76% 100%);
}

#branding_header .branding-container {
  width: calc(100% - 48px) !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: 7px 0 !important;
}

#branding_header .branding-left,
#branding_header .branding-right { float: none; }
#branding_header .branding-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

#branding_header img {
  display: block;
  width: auto;
  max-width: 190px;
  max-height: 27px;
  object-fit: contain;
}

#branding_header a,
#branding_header a:visited,
#branding_header .branding-right {
  color: var(--lepi-blue) !important;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.075em;
  text-decoration: none !important;
}

#branding_header a:hover { color: var(--lepi-wine) !important; }

/* Cabeçalho principal: logotipo oficial, nome do laboratório e busca. */
#header {
  position: relative;
  z-index: 20;
  background: var(--lepi-white) !important;
  border: 0 !important;
  box-shadow: 0 4px 16px rgba(8, 38, 74, 0.035);
}

#header::after { display: none !important; }

#header-container {
  width: calc(100% - 48px) !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: 18px 0 17px !important;
}

#header-panels {
  display: grid !important;
  grid-template-columns: minmax(118px, 166px) minmax(0, 1fr) minmax(42px, 70px) !important;
  align-items: center !important;
  column-gap: clamp(18px, 3vw, 42px) !important;
  row-gap: 8px !important;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}

#header-panels > .region-header-first {
  grid-column: 1 !important;
  grid-row: 1 !important;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

#header-panels > .region-header-second {
  grid-column: 2 !important;
  grid-row: 1 !important;
  float: none !important;
  min-width: 0;
  width: auto !important;
  margin: 0 !important;
}

#header-panels > .region-header-third {
  grid-column: 3 !important;
  grid-row: 1 !important;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  justify-self: end;
}

#boxes-box-site_logo { margin: 0 !important; padding: 0 !important; }
#boxes-box-site_logo a { display: inline-flex; align-items: center; max-width: 100%; }
#boxes-box-site_logo img {
  display: block;
  width: 100% !important;
  width: 208px !important;
  max-width: none !important;
  max-height: 122px !important;
  height: auto !important;
  margin-left: -21px !important;
  object-fit: contain;
}

.region-header-second .region-inner.site-info {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto auto;
  align-items: center;
  column-gap: 20px;
  row-gap: 2px;
  width: 100%;
  margin: 0 !important;
}

#block-boxes-site-info {
  grid-column: 1 !important;
  grid-row: 1 / span 3 !important;
  min-width: 0;
  margin: 0 !important;
}

#boxes-box-site_info h1,
#boxes-box-site_info h1 a {
  color: var(--lepi-blue) !important;
  font-size: clamp(25px, 2.7vw, 36px) !important;
  font-weight: 680 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.045em !important;
  margin: 0 0 6px !important;
  text-decoration: none !important;
}

#boxes-box-site_info h1 a:hover { color: var(--lepi-wine) !important; }

#boxes-box-site_info h2 {
  display: block;
  margin: 0 0 5px !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--lepi-wine) !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  letter-spacing: 0.14em !important;
  line-height: 1.4 !important;
  text-transform: uppercase;
}

#boxes-box-site_info p {
  margin: 0 !important;
  color: var(--lepi-muted) !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

#block-os-search-db-site-search {
  grid-column: 2 !important;
  grid-row: 1 / span 3 !important;
  justify-self: end;
  align-self: center;
  margin: 0 !important;
}

#block-os-search-db-site-search .block-inner,
#block-os-search-db-site-search .block-content { margin: 0 !important; padding: 0 !important; }

#search-block-form .container-inline,
#block-os-search-db-site-search .container-inline {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

#search-block-form label,
#block-os-search-db-site-search label {
  color: var(--lepi-muted) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

#search-block-form input.form-text,
#block-os-search-db-site-search input.form-text {
  width: clamp(150px, 17vw, 220px);
  min-height: 40px;
  padding: 9px 13px !important;
  border: 1px solid var(--lepi-line) !important;
  border-radius: 3px !important;
  background: #fbfcfe !important;
  color: var(--lepi-text) !important;
  box-shadow: none !important;
}

#search-block-form input.form-submit,
#block-os-search-db-site-search input.form-submit {
  min-height: 40px;
  padding: 9px 14px !important;
  border: 1px solid var(--lepi-blue) !important;
  border-radius: 3px !important;
  background: var(--lepi-blue) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  cursor: pointer;
}

#scholar-shield img,
#boxes-box-shield img {
  display: block;
  width: auto !important;
  max-width: 64px !important;
  max-height: 64px !important;
  object-fit: contain;
}

/* Navegação como nos exemplos: fundo branco, links limpos e ativo sublinhado. */
#menu-bar {
  position: relative;
  z-index: 19;
  width: calc(100% - 48px) !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: var(--lepi-white) !important;
  border-top: 1px solid var(--lepi-line) !important;
  border-bottom: 1px solid var(--lepi-line) !important;
}

#menu-bar #block-os-primary-menu,
#menu-bar #block-os-primary-menu > ul.nice-menu {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
}

#menu-bar #block-os-primary-menu > ul.nice-menu {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0 3px;
  min-height: 52px;
  width: 100%;
}

#menu-bar #block-os-primary-menu li {
  position: relative;
  background: transparent !important;
  border: 0 !important;
  margin: 0 !important;
  float: none;
}

#menu-bar #block-os-primary-menu > ul.nice-menu > li > a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 0 13px !important;
  border: 0 !important;
  border-bottom: 3px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #34475f !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  letter-spacing: 0.035em;
  line-height: 1.3;
  text-decoration: none !important;
  text-transform: uppercase;
  transition: color 160ms ease, border-color 160ms ease;
}

#menu-bar #block-os-primary-menu > ul.nice-menu > li > a:hover,
#menu-bar #block-os-primary-menu > ul.nice-menu > li > a:focus,
#menu-bar #block-os-primary-menu > ul.nice-menu > li > a.active,
#menu-bar #block-os-primary-menu > ul.nice-menu > li.active-trail > a,
#menu-bar #block-os-primary-menu > ul.nice-menu > li:hover > a {
  background: transparent !important;
  color: var(--lepi-blue) !important;
  border-bottom-color: var(--lepi-wine) !important;
}

#menu-bar #block-os-primary-menu ul.nice-menu li ul {
  min-width: 220px;
  padding: 7px !important;
  background: var(--lepi-white) !important;
  border: 1px solid var(--lepi-line) !important;
  border-top: 2px solid var(--lepi-blue) !important;
  border-radius: 0 0 4px 4px !important;
  box-shadow: var(--lepi-shadow) !important;
  z-index: 999;
}

#menu-bar #block-os-primary-menu ul.nice-menu li ul li { display: block; width: 100%; }
#menu-bar #block-os-primary-menu ul.nice-menu li ul a {
  display: block;
  padding: 10px 12px !important;
  border: 0 !important;
  border-radius: 2px !important;
  color: var(--lepi-text) !important;
  background: var(--lepi-white) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.4;
  text-transform: none;
  white-space: normal;
}

#menu-bar #block-os-primary-menu ul.nice-menu li ul a:hover,
#menu-bar #block-os-primary-menu ul.nice-menu li ul a:focus {
  background: var(--lepi-blue-pale) !important;
  color: var(--lepi-blue) !important;
}

/* Títulos e links: pesos moderados, sem serifas ou ornamentos pesados. */
a, a:visited { color: var(--lepi-blue); text-underline-offset: 0.18em; }
a:hover, a:focus { color: var(--lepi-wine); }

#page-title, .node-title {
  margin: 0 0 24px !important;
  padding: 0 0 16px !important;
  border-bottom: 1px solid var(--lepi-line) !important;
  color: var(--lepi-blue-deep) !important;
  font-size: clamp(30px, 3.3vw, 44px) !important;
  font-weight: 650 !important;
  letter-spacing: -0.045em !important;
  line-height: 1.14 !important;
}

#page-title::after, .node-title::after { display: none !important; }

#content-column h1, #content-column h2, #content-column h3,
#content-column h4, #content-column h5, #content-column h6 {
  color: var(--lepi-blue-deep);
  font-weight: 650;
  letter-spacing: -0.03em;
}

#content-column .block-title {
  position: relative;
  margin: 0 0 22px !important;
  padding: 0 0 14px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--lepi-line) !important;
  color: var(--lepi-blue) !important;
  font-size: clamp(24px, 2.5vw, 34px) !important;
  font-weight: 650 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.2 !important;
}

#content-column .block-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 68px;
  height: 3px;
  background: linear-gradient(90deg, var(--lepi-blue) 0 58%, var(--lepi-green) 58% 78%, var(--lepi-wine) 78% 100%);
}

#content-column p, #content-column li {
  color: var(--lepi-text);
  font-size: 16px;
  line-height: 1.8;
}

#content-column img { max-width: 100%; }

/* Página inicial — carrossel em cartão de duas colunas.
   O layout conserva o controle de visibilidade do ResponsiveSlides do OpenScholar. */
.front #content-column .block-boxes-os_slideshow_box {
  position: relative;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50%;
  margin: 0 0 0 -50vw !important;
  padding: clamp(22px, 3.2vw, 44px) 24px 18px !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--lepi-cloud) !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.front #content-column .block-boxes-os_slideshow_box .block-inner,
.front #content-column .block-boxes-os_slideshow_box .block-content,
.front #content-column .block-boxes-os_slideshow_box .boxes-box,
.front #content-column .block-boxes-os_slideshow_box .boxes-box-content,
.front .block-boxes-os_slideshow_box #layout_16_9_side {
  width: 100% !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  box-sizing: border-box !important;
}

.front .block-boxes-os_slideshow_box .slide {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  overflow: visible !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Do not override display, opacity, z-index, or position on slide <li>:
   those properties are written inline by the slideshow script. */
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border: 1px solid var(--lepi-line) !important;
  border-radius: 4px !important;
  background: var(--lepi-white) !important;
  box-shadow: 0 10px 28px rgba(8, 38, 74, .08) !important;
  list-style: none !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child {
  display: block !important;
  position: relative !important;
  float: left !important;
  width: 58% !important;
  max-width: 58% !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child img {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
  display: flex !important;
  position: relative !important;
  inset: auto !important;
  float: right !important;
  clear: none !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
  width: 42% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: clamp(280px, 32vw, 551px) !important;
  height: auto !important;
  margin: 0 !important;
  padding: clamp(22px, 3vw, 42px) !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-left: 4px solid var(--lepi-wine) !important;
  border-radius: 0 !important;
  background: var(--lepi-blue-deep) !important;
  color: rgba(255,255,255,.94) !important;
  box-shadow: none !important;
  overflow-wrap: anywhere;
}

.front .block-boxes-os_slideshow_box .caption.slide-copy h2,
.front .block-boxes-os_slideshow_box .caption.slide-copy h2 a,
.front .block-boxes-os_slideshow_box .caption.slide-copy p,
.front .block-boxes-os_slideshow_box .caption.slide-copy p a {
  color: #fff !important;
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif !important;
  text-decoration: none !important;
}

.front .block-boxes-os_slideshow_box .caption.slide-copy h2 {
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-size: clamp(20px, 2vw, 29px) !important;
  font-weight: 680 !important;
  letter-spacing: -.025em !important;
  line-height: 1.28 !important;
  text-transform: none !important;
  text-shadow: none !important;
}

.front .block-boxes-os_slideshow_box .caption.slide-copy p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(13px, 1.15vw, 15px) !important;
  font-weight: 450 !important;
  line-height: 1.65 !important;
  opacity: .9;
}

.front .block-boxes-os_slideshow_box .caption.slide-copy p a:hover {
  color: #f2dfe3 !important;
  text-decoration: underline !important;
}

/* Indicadores separados da imagem: evita que os ícones antigos virem círculos pretos. */
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs {
  position: relative !important;
  inset: auto !important;
  clear: both !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 9px !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 12px auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  list-style: none !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li {
  display: block !important;
  position: static !important;
  float: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li:first-child,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li:last-child,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li:first-child,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li:last-child {
  display: none !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li > a,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li > a {
  display: block !important;
  position: static !important;
  width: 9px !important;
  height: 9px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #aab5c4 !important;
  background-image: none !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-shadow: none !important;
}

.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li.rslides_here > a,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li.rslides_here > a {
  background: var(--lepi-blue) !important;
}

/* Apresentação: seção editorial de duas colunas, inspirada no layout de referência. */
.front #block-boxes-1763401845 {
  width: calc(100% - 48px) !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: clamp(48px, 7vw, 92px) 0 clamp(42px, 6vw, 76px) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--lepi-line) !important;
  border-radius: 0 !important;
  background: var(--lepi-white) !important;
  box-shadow: none !important;
}

.front #block-boxes-1763401845 .block-inner {
  display: grid !important;
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.45fr);
  align-items: start;
  column-gap: clamp(32px, 6vw, 90px);
  row-gap: 20px;
  margin: 0 !important;
  padding: 0 !important;
}

.front #block-boxes-1763401845 > .block-inner > .block-title {
  grid-column: 1;
  grid-row: 1;
  margin: 0 !important;
  padding: 5px 0 0 18px !important;
  border: 0 !important;
  border-left: 3px solid var(--lepi-green) !important;
  color: var(--lepi-blue) !important;
  font-size: clamp(30px, 3.4vw, 46px) !important;
  font-weight: 620 !important;
  letter-spacing: -0.05em !important;
  line-height: 1.08 !important;
}

.front #block-boxes-1763401845 > .block-inner > .block-title::after { display: none !important; }

.front #block-boxes-1763401845 .block-content {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}

.front #block-boxes-1763401845 .boxes-box-content > h2 {
  margin: 0 0 18px !important;
  color: var(--lepi-blue-deep) !important;
  font-size: clamp(23px, 2.4vw, 31px) !important;
  font-weight: 630 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.25 !important;
  text-align: left !important;
}

.front #block-boxes-1763401845 .boxes-box-content p {
  max-width: 760px;
  margin: 0 0 17px !important;
  color: #405168 !important;
  font-size: 15px !important;
  line-height: 1.85 !important;
  text-align: left !important;
}

.front #block-boxes-1763401845 .boxes-box-content p:empty { display: none !important; }
.front #block-boxes-1763401845 .boxes-box-content address {
  display: block;
  margin: 8px 0 0 !important;
  padding: 9px 0 9px 13px !important;
  border: 0 !important;
  border-left: 2px solid var(--lepi-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--lepi-muted) !important;
  font-size: 12px !important;
  font-style: normal !important;
  line-height: 1.65 !important;
}
.front #block-boxes-1763401845 .boxes-box-content address strong { color: var(--lepi-blue-deep); }

/* Instagram / contato: faixa limpa, sem cartão excessivamente arredondado. */
.front #block-boxes-1781643761 {
  width: calc(100% - 48px) !important;
  max-width: var(--lepi-content-width) !important;
  margin: 0 auto !important;
  padding: 28px 0 34px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--lepi-line) !important;
  border-radius: 0 !important;
  background: var(--lepi-white) !important;
  box-shadow: none !important;
}

.front #block-boxes-1781643761 .block-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin: 0 !important;
  padding: 0 !important;
}
.front #block-boxes-1781643761 .block-title {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 23px !important;
}
.front #block-boxes-1781643761 .block-title::after { display: none !important; }
.front #block-boxes-1781643761 .block-content { margin: 0 !important; padding: 0 !important; }
.front #block-boxes-1781643761 .follow-me-links-vertical { display: flex; margin: 0; padding: 0; list-style: none; }
.front #block-boxes-1781643761 .follow-me-links-vertical li { margin: 0; }
.front #block-boxes-1781643761 .follow-icon-service-name {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  border: 1px solid var(--lepi-blue);
  border-radius: 3px;
  color: var(--lepi-blue) !important;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none !important;
}
.front #block-boxes-1781643761 .follow-icon-service-name:hover { background: var(--lepi-blue); color: #fff !important; }

/* Conteúdo interno: notícias, projetos e publicações em superfícies planas e legíveis. */
#content-column .node,
#content-column .node-content,
#content-column .file-list,
#content-column .taxonomy-term-description {
  border-color: var(--lepi-line);
}

#content-column .view-content .views-row {
  position: relative;
  margin: 0 0 18px !important;
  padding: 20px 22px !important;
  border: 1px solid var(--lepi-line) !important;
  border-left: 3px solid var(--lepi-blue) !important;
  border-radius: 0 4px 4px 0 !important;
  background: var(--lepi-white) !important;
  box-shadow: none !important;
  transition: border-color 160ms ease, background 160ms ease;
}
#content-column .view-content .views-row:hover {
  border-left-color: var(--lepi-wine) !important;
  background: #fcfdff !important;
}
#content-column .view-content .views-row h2,
#content-column .view-content .views-row h3,
#content-column .view-content .views-row h2 a,
#content-column .view-content .views-row h3 a {
  color: var(--lepi-blue) !important;
  font-size: 21px !important;
  font-weight: 650 !important;
  letter-spacing: -0.025em !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}
#content-column .view-content .views-row h2 a:hover,
#content-column .view-content .views-row h3 a:hover { color: var(--lepi-wine) !important; }

#content-column .field-name-field-image img,
#content-column .field-type-image img,
#content-column .views-field-field-image img {
  display: block;
  border-radius: 3px !important;
  object-fit: cover;
}

/* Botões, formulários, tabelas e elementos interativos. */
input.form-text, textarea, select {
  max-width: 100%;
  padding: 10px 12px !important;
  border: 1px solid #ced8e3 !important;
  border-radius: 3px !important;
  background: #fff !important;
  color: var(--lepi-text) !important;
  box-shadow: none !important;
  font-size: 14px !important;
}

input.form-submit, button, .button, a.button, #content-column a.btn,
#content-column .btn, .form-submit {
  display: inline-block;
  padding: 10px 17px !important;
  border: 1px solid var(--lepi-blue) !important;
  border-radius: 3px !important;
  background: var(--lepi-blue) !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  letter-spacing: .025em;
  line-height: 1.25 !important;
  text-decoration: none !important;
  text-transform: none;
  cursor: pointer;
  box-shadow: none !important;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

input.form-submit:hover, button:hover, .button:hover, a.button:hover,
#content-column a.btn:hover, #content-column .btn:hover, .form-submit:hover {
  border-color: var(--lepi-wine) !important;
  background: var(--lepi-wine) !important;
  color: #fff !important;
}

input:focus, textarea:focus, select:focus,
a:focus-visible, button:focus-visible, input.form-submit:focus-visible {
  outline: 3px solid rgba(0, 49, 118, .25) !important;
  outline-offset: 2px;
}

#content-column table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--lepi-line);
  font-size: 14px;
}
#content-column th {
  background: var(--lepi-blue-pale) !important;
  color: var(--lepi-blue-deep) !important;
  font-weight: 750 !important;
  text-align: left;
}
#content-column th, #content-column td {
  padding: 11px 13px;
  border: 1px solid var(--lepi-line) !important;
}
#content-column tr:nth-child(even) td { background: #fbfcfe; }

/* Rodapé / assinatura institucional. */
#footer {
  position: relative;
  margin: 0 !important;
  padding: 22px max(24px, calc((100vw - var(--lepi-content-width)) / 2)) !important;
  border: 0 !important;
  border-top: 3px solid var(--lepi-green) !important;
  border-radius: 0 !important;
  background: var(--lepi-blue-deep) !important;
  color: rgba(255,255,255,.82) !important;
  box-shadow: none !important;
  font-size: 12px !important;
}

#footer a, #footer a:visited, #powerby-login, #powerby-login a,
#powered-by, #powered-by a {
  color: rgba(255,255,255,.88) !important;
  text-decoration: none !important;
}
#footer a:hover, #powered-by a:hover { color: #fff !important; text-decoration: underline !important; }
#powerby-login { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
#powered-by { font-size: 11px; opacity: .78; }

#branding_footer {
  background: var(--lepi-blue-deep) !important;
  color: rgba(255,255,255,.82) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
}
#branding_footer a { color: #fff !important; }

/* Ajustes responsivos: as colunas do cabeçalho e da apresentação viram uma coluna. */
@media (min-width: 769px) {
  #menu-bar #block-os-primary-menu > ul.nice-menu > li { float: none; }
}

@media (max-width: 1020px) {
  #header-panels {
    grid-template-columns: minmax(100px, 132px) minmax(0, 1fr) minmax(38px, 52px) !important;
    column-gap: 20px !important;
  }
  #boxes-box-site_logo img { width: 190px !important; max-width: none !important; max-height: 104px !important; margin-left: -15px !important; }
  #scholar-shield img, #boxes-box-shield img { max-width: 48px !important; max-height: 48px !important; }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a { padding: 0 9px !important; font-size: 10px !important; }
  #search-block-form input.form-text, #block-os-search-db-site-search input.form-text { width: 150px; }
}

@media (max-width: 768px) {
  #branding_header .branding-container,
  #header-container,
  #menu-bar {
    width: calc(100% - 32px) !important;
  }
  #branding_header img { max-width: 145px; max-height: 23px; }
  #header-container { padding: 14px 0 !important; }
  #header-panels {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    text-align: center;
  }
  #header-panels > .region-header-first { grid-column: 1 !important; grid-row: 1 !important; justify-self: center; }
  #header-panels > .region-header-second { grid-column: 1 !important; grid-row: 2 !important; }
  #header-panels > .region-header-third { display: none !important; }
  #boxes-box-site_logo img { width: 184px !important; max-width: none !important; max-height: 104px !important; margin: 0 !important; }
  .region-header-second .region-inner.site-info {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    row-gap: 8px;
    text-align: center;
  }
  #block-boxes-site-info { grid-column: 1 !important; grid-row: 1 !important; }
  #block-os-search-db-site-search { grid-column: 1 !important; grid-row: 2 !important; justify-self: center; }
  #boxes-box-site_info h1, #boxes-box-site_info h1 a { font-size: clamp(23px, 6vw, 31px) !important; }
  #boxes-box-site_info h2 { font-size: 11px !important; }
  #boxes-box-site_info p { font-size: 12px !important; }
  #search-block-form .container-inline, #block-os-search-db-site-search .container-inline { justify-content: center; }
  #menu-bar { margin: 0 auto !important; }
  #menu-bar #block-os-primary-menu > ul.nice-menu { min-height: 0; }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a { min-height: 44px; padding: 0 9px !important; }
  #columns .hg-container { width: calc(100% - 32px) !important; }
  .front #columns .hg-container,
  .front #content-column,
  .front #content-column .content-inner,
  .front #content-column #content-panels,
  .front #content-column .region-content-top,
  .front #content-column .region-content-top > .region-inner { width: 100% !important; }

  .front #content-column .block-boxes-os_slideshow_box { margin-bottom: 0 !important; }
  .front .block-boxes-os_slideshow_box ul.rslides img { height: auto !important; max-height: none !important; }
  .front .block-boxes-os_slideshow_box .caption.slide-copy {
    padding: 14px 16px 18px !important;
    border-left-width: 3px;
  }
  .front .block-boxes-os_slideshow_box .caption.slide-copy h2 { font-size: 18px !important; }
  .front .block-boxes-os_slideshow_box .caption.slide-copy p { font-size: 12px !important; }
  .front .block-boxes-os_slideshow_box .slidecontrol { right: 16px; bottom: 18px; }

  .front #block-boxes-1763401845 {
    width: calc(100% - 32px) !important;
    padding: 40px 0 !important;
  }
  .front #block-boxes-1763401845 .block-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 20px;
  }
  .front #block-boxes-1763401845 > .block-inner > .block-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    max-width: 380px;
    font-size: clamp(30px, 8vw, 40px) !important;
  }
  .front #block-boxes-1763401845 .block-content { grid-column: 1 !important; grid-row: 2 !important; }
  .front #block-boxes-1763401845 .boxes-box-content > h2 { font-size: 24px !important; }
  .front #block-boxes-1763401845 .boxes-box-content p { font-size: 15px !important; line-height: 1.75 !important; }

  .front #block-boxes-1781643761 {
    width: calc(100% - 32px) !important;
    padding: 24px 0 !important;
  }
  .front #block-boxes-1781643761 .block-inner { flex-direction: column; align-items: flex-start; }
  .front #block-boxes-1781643761 .block-title { font-size: 21px !important; }

  #page-title, .node-title { font-size: clamp(28px, 7vw, 36px) !important; }
  #content-column .view-content .views-row { padding: 17px !important; }
  #content-column .view-content .views-row h2, #content-column .view-content .views-row h3,
  #content-column .view-content .views-row h2 a, #content-column .view-content .views-row h3 a { font-size: 19px !important; }
  #powerby-login { flex-direction: column; align-items: flex-start; }
  #footer { padding: 20px 16px !important; }
}

@media (max-width: 420px) {
  #branding_header .branding-container,
  #header-container, #menu-bar { width: calc(100% - 24px) !important; }
  #columns .hg-container { width: calc(100% - 24px) !important; }
  #search-block-form label, #block-os-search-db-site-search label { display: none; }
  #search-block-form input.form-text, #block-os-search-db-site-search input.form-text { width: min(62vw, 220px); }
  #menu-bar #block-os-primary-menu > ul.nice-menu { gap: 0; }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a { min-height: 40px; padding: 0 7px !important; font-size: 9px !important; }
  .front #block-boxes-1763401845, .front #block-boxes-1781643761 { width: calc(100% - 24px) !important; }
}

/* Acessibilidade e movimento reduzido. */
::selection { background: rgba(0,49,118,.15); color: var(--lepi-blue-deep); }
:focus-visible { outline: 3px solid rgba(140,48,63,.42); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* Ajustes finais v0.3.4 — consistência de layout e responsividade. */
.front #columns,
.front #columns .hg-container,
.front #content-column,
.front #content-column .content-inner,
.front #content-column #content-panels {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  float: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box !important;
}

.front #block-boxes-1763401845,
.front #block-boxes-1781643761 {
  width: min(calc(100vw - 48px), var(--lepi-content-width)) !important;
  max-width: var(--lepi-content-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

.front #block-boxes-1763401845 .block-inner,
.front #block-boxes-1763401845 .block-content,
.front #block-boxes-1781643761 .block-inner,
.front #block-boxes-1781643761 .block-content {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

@media (min-width: 769px) and (max-width: 1020px) {
  #header-panels {
    grid-template-columns: minmax(94px, 122px) minmax(0, 1fr) minmax(34px, 44px) !important;
    column-gap: 14px !important;
  }
  #boxes-box-site_logo img {
    width: 170px !important;
    max-width: 100% !important;
    max-height: 96px !important;
    margin-left: -10px !important;
  }
  .region-header-second .region-inner.site-info {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto !important;
    row-gap: 5px !important;
  }
  #block-boxes-site-info {
    grid-column: 1 !important;
    grid-row: 1 / span 3 !important;
  }
  #block-os-search-db-site-search {
    grid-column: 1 !important;
    grid-row: 4 !important;
    justify-self: start !important;
    margin-top: 5px !important;
  }
  #search-block-form input.form-text,
  #block-os-search-db-site-search input.form-text {
    width: min(32vw, 190px) !important;
  }
  .front #block-boxes-1763401845 .block-inner {
    column-gap: 34px !important;
  }
}

@media (max-width: 900px) {
  .front #block-boxes-1763401845 .block-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 22px !important;
  }
  .front #block-boxes-1763401845 > .block-inner > .block-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    max-width: 100% !important;
  }
  .front #block-boxes-1763401845 .block-content {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  .front #content-column .block-boxes-os_slideshow_box {
    padding: 24px 20px 14px !important;
  }
  .front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child {
    width: 54% !important;
    max-width: 54% !important;
  }
  .front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
    width: 46% !important;
    min-height: clamp(260px, 30vw, 420px) !important;
    padding: 22px !important;
  }
}

@media (max-width: 768px) {
  .front #content-column .block-boxes-os_slideshow_box {
    padding: 20px 16px 12px !important;
  }
  .front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 22px 20px !important;
    border-left-width: 3px !important;
  }
  .front .block-boxes-os_slideshow_box .caption.slide-copy h2 {
    font-size: 21px !important;
    line-height: 1.3 !important;
  }
  .front .block-boxes-os_slideshow_box .caption.slide-copy p {
    font-size: 13px !important;
  }
  .front #block-boxes-1763401845,
  .front #block-boxes-1781643761 {
    width: calc(100vw - 32px) !important;
  }
}

@media (max-width: 420px) {
  .front #content-column .block-boxes-os_slideshow_box {
    padding: 14px 12px 10px !important;
  }
  .front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
    padding: 18px 16px !important;
  }
  .front .block-boxes-os_slideshow_box .caption.slide-copy h2 {
    font-size: 19px !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.3.5 — correções finais desktop + celular
   - corrige o cabeçalho móvel: o tema-base esconde a região do logotipo
   - alinha imagem e legenda do slideshow por Grid, sem altura vazia
   - mantém a troca de slides do ResponsiveSlides/OpenScholar
   ======================================================================== */

/* Cabeçalho móvel: o tema-base aplica display:none à região do logotipo
   em larguras menores que 1008px; reativamos somente no cabeçalho do LEPI. */
@media (max-width: 768px) {
  #header-container {
    width: calc(100% - 28px) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 14px 0 16px !important;
    box-sizing: border-box !important;
  }

  #header-panels {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #header-panels > .region-header-first {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    justify-self: center !important;
  }

  #header-panels > .region-header-first .region-inner,
  #header-panels > .region-header-first #block-boxes-site-logo,
  #header-panels > .region-header-first #block-boxes-site-logo .block-inner,
  #header-panels > .region-header-first #block-boxes-site-logo .block-content,
  #header-panels > .region-header-first #boxes-box-site_logo {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  #header-panels > .region-header-first #boxes-box-site_logo a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  #header-panels > .region-header-first #boxes-box-site_logo img {
    display: block !important;
    width: min(132px, 40vw) !important;
    max-width: 100% !important;
    max-height: 80px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    object-fit: contain !important;
  }

  #header-panels > .region-header-second {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }

  #header-panels > .region-header-second .region-inner.site-info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    gap: 0 !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  #header-panels > .region-header-second #block-boxes-site-info {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }

  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    display: block !important;
    width: 100% !important;
    margin: 0 auto 4px !important;
    padding: 0 !important;
    color: var(--lepi-blue) !important;
    font-size: clamp(21px, 5.8vw, 27px) !important;
    line-height: 1.13 !important;
    letter-spacing: -.035em !important;
    text-align: center !important;
    overflow-wrap: normal !important;
  }

  #header-panels > .region-header-second #boxes-box-site_info h2 {
    margin: 0 auto 4px !important;
    font-size: 11px !important;
    text-align: center !important;
  }

  #header-panels > .region-header-second #boxes-box-site_info p {
    margin: 0 auto !important;
    max-width: 34em !important;
    font-size: 11px !important;
    line-height: 1.45 !important;
    text-align: center !important;
  }

  /* A lupa já existe na navegação móvel; evita duplicar e quebrar o cabeçalho. */
  #header-panels > .region-header-second #block-os-search-db-site-search,
  #header-panels > .region-header-third {
    display: none !important;
  }
}

/* O slideshow usa ResponsiveSlides e coloca estados inline nas <li>.
   A grade não altera opacity, position ou z-index dos slides ocultos. */
.front #content-column .block-boxes-os_slideshow_box {
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  margin-left: -50vw !important;
  margin-right: 0 !important;
  padding: clamp(20px, 3vw, 36px) clamp(14px, 3vw, 40px) 22px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  background: var(--lepi-cloud) !important;
}

.front #content-column .block-boxes-os_slideshow_box > .block-inner,
.front #content-column .block-boxes-os_slideshow_box .block-content,
.front #content-column .block-boxes-os_slideshow_box .boxes-box,
.front #content-column .block-boxes-os_slideshow_box .boxes-box-content,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side {
  display: block !important;
  width: 100% !important;
  max-width: var(--lepi-content-width) !important;
  min-width: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side .slide {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  list-style: none !important;
  box-sizing: border-box !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li {
  display: grid !important;
  grid-template-columns: minmax(0, 58fr) minmax(0, 42fr) !important;
  grid-template-rows: auto !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  overflow: hidden !important;
  border: 1px solid var(--lepi-line) !important;
  border-radius: 4px !important;
  background: var(--lepi-white) !important;
  box-shadow: 0 10px 28px rgba(8, 38, 74, .08) !important;
  box-sizing: border-box !important;
  list-style: none !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > img:first-child {
  display: block !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  position: relative !important;
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  box-sizing: border-box !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child img,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > img:first-child {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  box-sizing: border-box !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
  display: flex !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: stretch !important;
  justify-self: stretch !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
  position: relative !important;
  inset: auto !important;
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: clamp(20px, 3vw, 38px) !important;
  border: 0 !important;
  border-left: 4px solid var(--lepi-wine) !important;
  border-radius: 0 !important;
  background: var(--lepi-blue-deep) !important;
  color: rgba(255,255,255,.94) !important;
  box-shadow: none !important;
  overflow-wrap: anywhere !important;
  box-sizing: border-box !important;
}

.front #content-column .block-boxes-os_slideshow_box .caption.slide-copy h2 {
  margin: 0 0 12px !important;
  padding: 0 !important;
  font-size: clamp(18px, 1.8vw, 28px) !important;
  line-height: 1.28 !important;
  letter-spacing: -.025em !important;
  font-weight: 700 !important;
  text-transform: none !important;
  text-shadow: none !important;
}

.front #content-column .block-boxes-os_slideshow_box .caption.slide-copy p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(12px, 1.05vw, 15px) !important;
  line-height: 1.6 !important;
  font-weight: 450 !important;
}

/* Controles limpos, sempre abaixo do cartão e sem sprites antigos. */
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs {
  display: flex !important;
  position: relative !important;
  inset: auto !important;
  float: none !important;
  clear: both !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 9px !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 12px auto 0 !important;
  padding: 0 !important;
  background: transparent !important;
  list-style: none !important;
  overflow: visible !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li {
  display: block !important;
  position: static !important;
  float: none !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li:first-child,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li:last-child,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li:first-child,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li:last-child {
  display: none !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li > a,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li > a {
  display: block !important;
  width: 9px !important;
  height: 9px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #aab5c4 !important;
  background-image: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-shadow: none !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol > li.rslides_here > a,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li.rslides_here > a {
  background: var(--lepi-blue) !important;
}

@media (max-width: 900px) and (min-width: 769px) {
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li {
    grid-template-columns: minmax(0, 54fr) minmax(0, 46fr) !important;
  }
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
    padding: 20px !important;
  }
}

@media (max-width: 768px) {
  .front #content-column .block-boxes-os_slideshow_box {
    padding: 18px 14px 14px !important;
  }

  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
  }

  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child,
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > img:first-child {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
  }

  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 18px 18px 20px !important;
    border-left: 3px solid var(--lepi-wine) !important;
  }

  .front #content-column .block-boxes-os_slideshow_box .caption.slide-copy h2 {
    font-size: clamp(17px, 4.5vw, 21px) !important;
    line-height: 1.3 !important;
  }

  .front #content-column .block-boxes-os_slideshow_box .caption.slide-copy p {
    font-size: 13px !important;
    line-height: 1.55 !important;
  }

  .front #block-boxes-1781643761 .block-inner {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
  }

  .front #block-boxes-1781643761 .block-title {
    max-width: 100% !important;
    font-size: 19px !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 420px) {
  .front #content-column .block-boxes-os_slideshow_box {
    padding: 14px 10px 12px !important;
  }
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li .caption.slide-copy {
    padding: 16px !important;
  }
}


/* v0.3.6 — correções finais do topo, busca e controles do carrossel */
/* A faixa institucional fica apenas como filete tricolor; remove o texto UFOP.BR. */
#branding_header {
  display: block !important;
  height: 4px !important;
  min-height: 4px !important;
  max-height: 4px !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  background: linear-gradient(90deg, var(--lepi-blue) 0 58%, var(--lepi-green) 58% 78%, var(--lepi-wine) 78% 100%) !important;
  box-shadow: none !important;
}
#branding_header .branding-container,
#branding_header .branding-left,
#branding_header .branding-right,
#branding_header a,
#branding_header img,
#branding_header span {
  display: none !important;
}
#branding_header::before,
#branding_header::after {
  display: none !important;
  content: none !important;
}

/* Busca: campo e botão com dimensões previsíveis; botão com lupa legível. */
#block-os-search-db-site-search,
#search-block-form,
#block-os-search-db-site-search form {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
#search-block-form .container-inline,
#block-os-search-db-site-search .container-inline {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 7px !important;
  width: 100% !important;
  min-width: 0 !important;
}
#search-block-form input.form-text,
#block-os-search-db-site-search input.form-text {
  display: block !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 8px 12px !important;
  border: 1px solid #d8e0eb !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: var(--lepi-text) !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}
#search-block-form input.form-submit,
#block-os-search-db-site-search input.form-submit,
#search-block-form button,
#block-os-search-db-site-search button {
  display: inline-flex !important;
  flex: 0 0 42px !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--lepi-blue) !important;
  border-radius: 4px !important;
  background-color: var(--lepi-blue) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 18px 18px !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
  box-shadow: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}
#search-block-form input.form-submit:hover,
#block-os-search-db-site-search input.form-submit:hover,
#search-block-form button:hover,
#block-os-search-db-site-search button:hover {
  background-color: var(--lepi-wine) !important;
  border-color: var(--lepi-wine) !important;
}

/* O ResponsiveSlides usa rslides_tabs para os pontos. Esconde a antiga barra
   slidecontrol, que contém setas/sprites incompatíveis com os indicadores. */
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.slidecontrol {
  display: none !important;
}
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs {
  display: flex !important;
  position: relative !important;
  inset: auto !important;
  float: none !important;
  clear: both !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  width: 100% !important;
  height: auto !important;
  min-height: 26px !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  background: #fff !important;
  list-style: none !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li {
  display: block !important;
  position: static !important;
  float: none !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: transparent !important;
}
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li > a,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li > a {
  display: block !important;
  position: static !important;
  width: 9px !important;
  min-width: 9px !important;
  max-width: 9px !important;
  height: 9px !important;
  min-height: 9px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #b7c2d0 !important;
  background-image: none !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
}
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li.rslides_here > a,
.front .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides_tabs > li.rslides_here > a {
  background: var(--lepi-blue) !important;
  transform: scale(1.15);
}

@media (max-width: 768px) {
  #branding_header { height: 4px !important; min-height: 4px !important; }
  #header-container { padding-top: 12px !important; }
  #block-os-search-db-site-search {
    width: min(100%, 290px) !important;
    justify-self: center !important;
  }
  #search-block-form input.form-text,
  #block-os-search-db-site-search input.form-text { width: 100% !important; }
}


/* v0.3.7 — correção do menu móvel OpenScholar/Drupal */
@media (max-width: 768px) {
  /* O menu móvel ocupa uma faixa própria, sem ficar espremido ao lado do cabeçalho. */
  #menu-bar {
    display: block !important;
    position: relative !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    z-index: 1000 !important;
  }
  #menu-bar > .container,
  #menu-bar .container,
  #menu-bar .menu-bar-inner,
  #menu-bar #block-os-primary-menu,
  #menu-bar #block-os-primary-menu .block-inner,
  #menu-bar #block-os-primary-menu .block-content {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
  }
  /* O botão de abrir/fechar fica alinhado à direita e não sobrepõe o logotipo. */
  #menu-bar .menu-toggle,
  #menu-bar .responsive-menus-simple,
  #menu-bar .responsive-menus.responsified span.toggler,
  #menu-bar .mean-container .mean-bar,
  #menu-bar .meanmenu-reveal,
  #menu-bar .mobile-menu-toggle,
  #menu-bar button[aria-controls],
  #menu-bar a[aria-controls] {
    box-sizing: border-box !important;
    max-width: 100% !important;
  }
  #menu-bar .responsive-menus.responsified span.toggler,
  #menu-bar .mean-container .mean-bar {
    display: block !important;
    width: 100% !important;
    min-height: 44px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 8px 14px !important;
    background: #0b2b4d !important;
    color: #fff !important;
    text-align: right !important;
    border: 0 !important;
    box-sizing: border-box !important;
  }
  #menu-bar .meanmenu-reveal {
    top: 0 !important;
    right: 0 !important;
    height: 44px !important;
    line-height: 44px !important;
    padding: 0 14px !important;
    color: #fff !important;
    background: #0b2b4d !important;
    text-decoration: none !important;
  }
  /* Quando aberto, cada item recebe uma linha completa e área de toque confortável. */
  #menu-bar #block-os-primary-menu > ul.nice-menu,
  #menu-bar .responsive-menus.responsified .responsive-menus-simple,
  #menu-bar .mean-container .mean-nav > ul {
    display: block !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border-top: 1px solid #e3e9f0 !important;
    box-sizing: border-box !important;
  }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li,
  #menu-bar .responsive-menus.responsified .responsive-menus-simple > li,
  #menu-bar .mean-container .mean-nav > ul > li {
    display: block !important;
    float: none !important;
    clear: both !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #e8edf2 !important;
    background: #fff !important;
    box-sizing: border-box !important;
  }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a,
  #menu-bar .responsive-menus.responsified .responsive-menus-simple > li > a,
  #menu-bar .mean-container .mean-nav > ul > li > a {
    display: block !important;
    float: none !important;
    width: 100% !important;
    min-height: 44px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 13px 18px !important;
    color: #0b2b4d !important;
    background: #fff !important;
    border: 0 !important;
    border-left: 3px solid transparent !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    box-sizing: border-box !important;
  }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a:hover,
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a:focus,
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a.active,
  #menu-bar .responsive-menus.responsified .responsive-menus-simple > li > a:hover,
  #menu-bar .mean-container .mean-nav > ul > li > a:hover {
    color: #8d263e !important;
    background: #f5f7fa !important;
    border-left-color: #8d263e !important;
  }
  #menu-bar #block-os-primary-menu ul.nice-menu li ul,
  #menu-bar .responsive-menus.responsified ul ul,
  #menu-bar .mean-container .mean-nav ul ul {
    position: static !important;
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 0 0 12px !important;
    border: 0 !important;
    box-shadow: none !important;
    background: #f7f9fc !important;
    box-sizing: border-box !important;
  }
  #menu-bar #block-os-primary-menu ul.nice-menu li ul li,
  #menu-bar .responsive-menus.responsified ul ul li,
  #menu-bar .mean-container .mean-nav ul ul li {
    display: block !important;
    float: none !important;
    width: 100% !important;
    border-top: 1px solid #e8edf2 !important;
  }
  #menu-bar #block-os-primary-menu ul.nice-menu li ul a,
  #menu-bar .responsive-menus.responsified ul ul a,
  #menu-bar .mean-container .mean-nav ul ul a {
    display: block !important;
    width: 100% !important;
    min-height: 40px !important;
    padding: 11px 18px !important;
    color: #29435e !important;
    background: transparent !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }
}

/* v0.3.8 — botão Instagram integrado à identidade visual do LEPI */
.front #block-boxes-1781643761 .follow-me-links-vertical {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.front #block-boxes-1781643761 .follow-me-links-vertical > li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* O primeiro link do módulo é apenas o sprite decorativo com a URL impressa; escondê-lo
   evita URL visível e o ícone antigo duplicado. O link funcional abaixo permanece. */
.front #block-boxes-1781643761 a.follow-icon {
  display: none !important;
}
.front #block-boxes-1781643761 .service-name-span {
  display: inline-flex !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
}
.front #block-boxes-1781643761 a.follow-icon-service-name {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 10px 18px !important;
  border: 1px solid #d9e1eb !important;
  border-radius: 5px !important;
  background: #f7f9fc !important;
  color: #003176 !important;
  box-shadow: 0 2px 7px rgba(8, 38, 74, 0.06) !important;
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  text-transform: none !important;
  white-space: nowrap !important;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease !important;
}
.front #block-boxes-1781643761 a.follow-icon-service-name::before {
  content: "" !important;
  display: inline-block !important;
  flex: 0 0 19px !important;
  width: 19px !important;
  height: 19px !important;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23003176' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='%23003176' stroke='none'/%3E%3C/svg%3E") !important;
}
.front #block-boxes-1781643761 a.follow-icon-service-name:hover,
.front #block-boxes-1781643761 a.follow-icon-service-name:focus {
  border-color: #8c303f !important;
  background: #8c303f !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(140, 48, 63, 0.18) !important;
  outline-offset: 3px;
}
.front #block-boxes-1781643761 a.follow-icon-service-name:hover::before,
.front #block-boxes-1781643761 a.follow-icon-service-name:focus::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='%23ffffff' stroke='none'/%3E%3C/svg%3E") !important;
}
@media (max-width: 768px) {
  .front #block-boxes-1781643761 .block-inner {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
  }
  .front #block-boxes-1781643761 .block-title {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }
  .front #block-boxes-1781643761 .block-content {
    width: auto !important;
    max-width: 100% !important;
  }
  .front #block-boxes-1781643761 a.follow-icon-service-name {
    min-height: 44px !important;
    padding: 10px 16px !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.3.9 — alinhamento do Instagram e limpeza do fim da apresentação
   ======================================================================== */

/* Desktop: título e botão na mesma linha e alinhados pelo centro vertical.
   Usa Grid para evitar que regras herdadas de blocos do OpenScholar façam o
   título encolher ou o botão ficar deslocado. */
.front #block-boxes-1781643761 > .block-inner,
.front #block-boxes-1781643761 .block-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-rows: auto !important;
  align-items: center !important;
  justify-content: stretch !important;
  column-gap: clamp(18px, 4vw, 48px) !important;
  row-gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.front #block-boxes-1781643761 .block-title {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: start !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  font-size: clamp(18px, 1.8vw, 23px) !important;
  line-height: 1.3 !important;
  text-align: left !important;
}

.front #block-boxes-1781643761 .block-content {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: end !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.front #block-boxes-1781643761 .follow-me-links-vertical,
.front #block-boxes-1781643761 .follow-me-links-vertical > li,
.front #block-boxes-1781643761 .service-name-span {
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.front #block-boxes-1781643761 a.follow-icon-service-name {
  min-height: 44px !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

/* O conteúdo atual contém dois elementos <address> vazios com &nbsp; no fim.
   Escondê-los remove os filetes e os intervalos verticais sem mexer no contato real. */
.front #block-boxes-1763401845 .boxes-box-content > address:nth-last-of-type(-n+2) {
  display: none !important;
}

/* O último endereço preenchido não precisa de espaço extra antes do rodapé da seção. */
.front #block-boxes-1763401845 .boxes-box-content > address:nth-last-of-type(3) {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

@media (min-width: 769px) and (max-width: 900px) {
  .front #block-boxes-1781643761 .block-title {
    font-size: 18px !important;
  }
  .front #block-boxes-1781643761 > .block-inner,
  .front #block-boxes-1781643761 .block-inner {
    column-gap: 18px !important;
  }
}

@media (max-width: 768px) {
  .front #block-boxes-1781643761 > .block-inner,
  .front #block-boxes-1781643761 .block-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: start !important;
    justify-items: start !important;
    row-gap: 12px !important;
  }
  .front #block-boxes-1781643761 .block-title {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: none !important;
    white-space: normal !important;
    font-size: 19px !important;
  }
  .front #block-boxes-1781643761 .block-content {
    grid-column: 1 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    width: auto !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.4.1 — ajuste final da busca no desktop e remoção de “Voltar”
   ======================================================================== */

/* A busca do Drupal tem um rótulo antes do campo e o botão dentro de .form-actions.
   Alinhar esses elementos separadamente evita que o botão fique mais alto/baixo. */
#block-os-search-db-site-search,
#block-os-search-db-site-search .block-inner,
#block-os-search-db-site-search .block-content,
#block-os-search-db-site-search form#search-block-form {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
#block-os-search-db-site-search form#search-block-form > div,
#search-block-form > div {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
#block-os-search-db-site-search .container-inline,
#search-block-form .container-inline {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
#block-os-search-db-site-search .form-item-search-block-form,
#search-block-form .form-item-search-block-form,
#block-os-search-db-site-search .form-item {
  position: relative !important;
  display: block !important;
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}
#block-os-search-db-site-search .form-item label,
#search-block-form .form-item label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
#block-os-search-db-site-search input.form-text,
#search-block-form input.form-text {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
#block-os-search-db-site-search .form-actions,
#search-block-form .form-actions {
  display: flex !important;
  flex: 0 0 42px !important;
  align-items: center !important;
  justify-content: center !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}
#block-os-search-db-site-search input.form-submit,
#search-block-form input.form-submit {
  display: block !important;
  flex: 0 0 42px !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 42px !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

/* Retira apenas o item de menu “Voltar” (link para o portal anterior do DEMSC). */
#block-os-primary-menu li.menu-23128,
#block-os-primary-menu li.menu-path-sitesufopbr-demsc {
  display: none !important;
}

/* v0.4.2 — move a faixa tricolor para o topo do menu e suavizar o degradê. */
#branding_header {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  background: none !important;
}

#menu-bar {
  position: relative !important;
  border-top: 0 !important;
  isolation: isolate;
}

#menu-bar::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  z-index: 5 !important;
  pointer-events: none !important;
  background: linear-gradient(90deg,
    #173d75 0%,
    #315d8b 32%,
    #5f8a57 58%,
    #78905b 68%,
    #a45a65 84%,
    #8d293f 100%) !important;
}

#menu-bar #block-os-primary-menu,
#menu-bar #block-os-primary-menu > ul.nice-menu {
  padding-top: 4px !important;
}

@media (max-width: 767px) {
  #menu-bar::before {
    height: 3px !important;
  }
  #menu-bar #block-os-primary-menu,
  #menu-bar #block-os-primary-menu > ul.nice-menu {
    padding-top: 3px !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.4.3 — faixa tricolor em largura total e movimento sutil
   ======================================================================== */

/* A faixa fica no topo do menu, mas atravessa a viewport inteira, mesmo que
   o próprio menu esteja limitado à largura máxima do conteúdo. */
#menu-bar {
  position: relative !important;
  overflow: visible !important;
  isolation: isolate !important;
  border-top: 0 !important;
}

#menu-bar::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  right: auto !important;
  width: 100vw !important;
  max-width: none !important;
  height: 4px !important;
  transform: translateX(-50%) !important;
  z-index: 5 !important;
  pointer-events: none !important;
  background: linear-gradient(100deg,
    #173d75 0%,
    #244f82 22%,
    #426f7d 40%,
    #668b5d 56%,
    #8e8460 68%,
    #a85d68 82%,
    #8d293f 100%) !important;
  background-size: 160% 100% !important;
  animation: lepi-gradient-drift 18s ease-in-out infinite alternate !important;
}

#menu-bar #block-os-primary-menu,
#menu-bar #block-os-primary-menu > ul.nice-menu {
  padding-top: 4px !important;
}

/* A interface ganha profundidade por meio de fundos quase imperceptíveis,
   evitando transformar todo o site em cartões brancos soltos. */
.front #content-column .block-boxes-os_slideshow_box {
  background: linear-gradient(135deg, #f6f8fb 0%, #edf3f9 52%, #f8f7f8 100%) !important;
}

.front #block-boxes-1763401845 {
  position: relative !important;
  background: linear-gradient(115deg, #ffffff 0%, #fbfcfe 54%, #f2f6fa 100%) !important;
  border-top: 1px solid rgba(225, 231, 238, .72) !important;
}

.front #block-boxes-1781643761 {
  background: linear-gradient(105deg, #f8fafc 0%, #eef3f8 60%, #f8f4f5 100%) !important;
  border-top: 1px solid #e1e7ee !important;
  border-bottom: 1px solid #e1e7ee !important;
  border-radius: 3px !important;
  padding-left: clamp(12px, 2.4vw, 28px) !important;
  padding-right: clamp(12px, 2.4vw, 28px) !important;
}

/* Microinterações discretas para que a interface não pareça estática. */
#menu-bar #block-os-primary-menu > ul.nice-menu > li > a,
#menu-bar #block-os-primary-menu ul.nice-menu li ul a,
#block-os-search-db-site-search input.form-submit,
#search-block-form input.form-submit,
.front #block-boxes-1781643761 a.follow-icon-service-name,
#content-column a,
#branding_footer a {
  transition: color 180ms ease, background-color 180ms ease,
              border-color 180ms ease, box-shadow 180ms ease,
              transform 180ms ease !important;
}

#menu-bar #block-os-primary-menu > ul.nice-menu > li > a:hover,
#menu-bar #block-os-primary-menu > ul.nice-menu > li > a:focus-visible {
  transform: translateY(-1px) !important;
}

#block-os-search-db-site-search input.form-submit:hover,
#search-block-form input.form-submit:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(8, 38, 74, .16) !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li {
  transition: box-shadow 220ms ease, border-color 220ms ease !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li:hover {
  border-color: #ced9e6 !important;
  box-shadow: 0 14px 34px rgba(8, 38, 74, .12) !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child img,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > img:first-child {
  transition: filter 260ms ease !important;
}

.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li:hover > a:first-child img,
.front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li:hover > img:first-child {
  filter: saturate(1.04) !important;
}

.front #block-boxes-1763401845 .block-title,
.front #block-boxes-1781643761 .block-title {
  transition: color 220ms ease !important;
}

.front #block-boxes-1763401845 .block-title:hover,
.front #block-boxes-1781643761 .block-title:hover {
  color: #8d293f !important;
}

@keyframes lepi-gradient-drift {
  from { background-position: 0% 50%; }
  to   { background-position: 100% 50%; }
}

@media (max-width: 767px) {
  #menu-bar::before {
    height: 3px !important;
  }
  #menu-bar #block-os-primary-menu,
  #menu-bar #block-os-primary-menu > ul.nice-menu {
    padding-top: 3px !important;
  }
  .front #block-boxes-1781643761 {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

/* Respeita usuários que preferem menos movimento. */
@media (prefers-reduced-motion: reduce) {
  #menu-bar::before {
    animation: none !important;
    background-position: 50% 50% !important;
  }
  #menu-bar #block-os-primary-menu > ul.nice-menu > li > a,
  #menu-bar #block-os-primary-menu ul.nice-menu li ul a,
  #block-os-search-db-site-search input.form-submit,
  #search-block-form input.form-submit,
  .front #block-boxes-1781643761 a.follow-icon-service-name,
  #content-column a,
  #branding_footer a,
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li,
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > a:first-child img,
  .front #content-column .block-boxes-os_slideshow_box #layout_16_9_side ul.rslides > li > img:first-child {
    transition: none !important;
  }
}

/* ========================================================================
   LEPI Moderno v0.4.4 — menu móvel ancorado ao botão de abertura
   Corrige o dropdown que era posicionado em relação ao #menu-bar, muito
   abaixo do botão móvel, em vez de ficar imediatamente sob o controle.
   ======================================================================== */
@media (max-width: 1008px) {
  .responive-menu-container {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: auto !important;
    max-width: 100vw !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 2200 !important;
    background: transparent !important;
  }

  .logged-in .responive-menu-container {
    right: 55px !important;
  }

  .responive-menu-container ul.mobile-buttons {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    width: auto !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    list-style: none !important;
    background: transparent !important;
    box-sizing: border-box !important;
  }

  .responive-menu-container ul.mobile-buttons > li {
    display: block !important;
    float: none !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    list-style: none !important;
  }

  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-util {
    display: none !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 5px !important;
    background: #0b2b4d !important;
    background-image: none !important;
    box-shadow: 0 2px 7px rgba(8,38,74,.15) !important;
    color: #fff !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    letter-spacing: 0 !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a:hover,
  .responive-menu-container ul.mobile-buttons > li > a:focus-visible,
  .responive-menu-container ul.mobile-buttons > li > a:active {
    background: #17436f !important;
    color: #fff !important;
    outline-offset: 2px !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a span[aria-hidden="true"] {
    display: inline-block !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: 18px !important;
    line-height: 1 !important;
    text-indent: 0 !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a span.move {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    padding: 0 !important;
  }

  /* A classe .opened é aplicada pelo próprio OpenScholar ao clicar no botão.
     Position:fixed tira o menu do fluxo do #menu-bar e o ancora à barra móvel. */
  #menu-bar #block-os-primary-menu.opened {
    display: block !important;
    position: fixed !important;
    top: 44px !important;
    right: 8px !important;
    bottom: auto !important;
    left: auto !important;
    width: min(320px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 52px) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border: 1px solid #dfe6ee !important;
    border-top: 3px solid #315d8b !important;
    border-radius: 0 0 7px 7px !important;
    background: #fff !important;
    box-shadow: 0 12px 30px rgba(8,38,74,.2) !important;
    z-index: 2199 !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch;
  }

  #menu-bar #block-os-primary-menu.opened > .block-inner,
  #menu-bar #block-os-primary-menu.opened .block-content {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    box-sizing: border-box !important;
  }

  #menu-bar #block-os-primary-menu.opened > ul.nice-menu,
  #menu-bar #block-os-primary-menu.opened .block-content > ul.nice-menu {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: #fff !important;
    box-sizing: border-box !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .responive-menu-container ul.mobile-buttons > li > a {
    transition: none !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.4.5 — cabeçalho responsivo, proporção da marca e favicon
   ======================================================================== */

/* Logo: use sua proporção natural, sem ultrapassar a coluna nem deslocar o título. */
#header-panels {
  grid-template-columns: minmax(145px, 172px) minmax(0, 1fr) minmax(48px, 64px) !important;
  column-gap: clamp(16px, 2.5vw, 34px) !important;
}
#header-panels > .region-header-first,
#header-panels > .region-header-second,
#header-panels > .region-header-third {
  min-width: 0 !important;
  box-sizing: border-box !important;
}
#header-panels > .region-header-first {
  display: block !important;
  align-self: center !important;
  width: auto !important;
  max-width: 100% !important;
}
#boxes-box-site_logo,
#block-boxes-site-logo,
#boxes-box-site_logo a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
#boxes-box-site_logo img {
  display: block !important;
  width: min(158px, 100%) !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 96px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  object-fit: contain !important;
}
#header-panels > .region-header-second { overflow: visible !important; }
#header-panels > .region-header-second .region-inner.site-info { min-width: 0 !important; }

/* Tablet: restore the logo region that the legacy theme hides below 1008px. */
@media (max-width: 1008px) {
  #header-panels > .region-header-first {
    display: block !important;
    visibility: visible !important;
  }
  #header-panels {
    grid-template-columns: minmax(120px, 146px) minmax(0, 1fr) minmax(38px, 48px) !important;
    column-gap: 14px !important;
  }
  #boxes-box-site_logo img {
    width: min(138px, 100%) !important;
    max-height: 86px !important;
  }
}

/* Mobile: a proper utility strip keeps the menu and search buttons in place;
   the header below is a clean, centered stack rather than overlapping columns. */
@media (max-width: 768px) {
  .responive-menu-container {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #f6f8fb !important;
    border-bottom: 1px solid #e1e7ee !important;
    box-sizing: border-box !important;
    z-index: 2200 !important;
  }
  .logged-in .responive-menu-container { right: auto !important; }
  .responive-menu-container ul.mobile-buttons {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    width: 100% !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 5px 12px !important;
    list-style: none !important;
    box-sizing: border-box !important;
  }
  .responive-menu-container ul.mobile-buttons > li {
    display: block !important;
    flex: 0 0 36px !important;
    width: 36px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-util { display: none !important; }
  .responive-menu-container ul.mobile-buttons > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #0b2b4d !important;
    background-image: none !important;
    color: #fff !important;
    border: 1px solid #244d75 !important;
    border-radius: 5px !important;
    box-shadow: 0 2px 5px rgba(8,38,74,.12) !important;
    box-sizing: border-box !important;
  }
  .responive-menu-container ul.mobile-buttons > li > a span[aria-hidden="true"],
  .responive-menu-container ul.mobile-buttons > li > a span[aria-hidden="true"]::before,
  .responive-menu-container ul.mobile-buttons > li > a .icon-menu::before,
  .responive-menu-container ul.mobile-buttons > li > a .icon-search3::before {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 18px !important;
    line-height: 1 !important;
    background-image: none !important;
  }
  #header {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: 0 3px 12px rgba(8,38,74,.045) !important;
  }
  #header-container {
    width: calc(100% - 28px) !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    padding: 14px 0 18px !important;
    box-sizing: border-box !important;
  }
  #header-panels {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 9px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-first {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-first .region-inner,
  #header-panels > .region-header-first #block-boxes-site-logo,
  #header-panels > .region-header-first #block-boxes-site-logo .block-inner,
  #header-panels > .region-header-first #block-boxes-site-logo .block-content,
  #header-panels > .region-header-first #boxes-box-site_logo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    width: min(148px, 43vw) !important;
    max-width: 100% !important;
    max-height: 88px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    object-fit: contain !important;
  }
  #header-panels > .region-header-second {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-second .region-inner.site-info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    gap: 0 !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
  #header-panels > .region-header-second #block-boxes-site-info {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto 5px !important;
    padding: 0 !important;
    color: var(--lepi-blue) !important;
    font-size: clamp(21px, 5.5vw, 25px) !important;
    font-weight: 700 !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
    text-align: center !important;
    overflow-wrap: normal !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h2 {
    margin: 0 auto 4px !important;
    font-size: 10px !important;
    line-height: 1.4 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info p {
    margin: 0 auto !important;
    max-width: 32em !important;
    font-size: 10px !important;
    line-height: 1.45 !important;
    text-align: center !important;
  }
  /* Mobile search is opened from the magnifier in the top utility strip. */
  #header-panels > .region-header-second #block-os-search-db-site-search,
  #header-panels > .region-header-third { display: none !important; }
  /* Dropdown is anchored immediately below the mobile utility strip. */
  #menu-bar #block-os-primary-menu.opened {
    position: fixed !important;
    top: 44px !important;
    right: 8px !important;
    left: auto !important;
    width: min(320px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 52px) !important;
    margin: 0 !important;
    z-index: 2199 !important;
  }
}

@media (max-width: 380px) {
  #header-container { width: calc(100% - 22px) !important; }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    width: min(136px, 42vw) !important;
    max-height: 80px !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    font-size: 20px !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info p { font-size: 9.5px !important; }
}


/* ========================================================================
   LEPI Moderno v0.4.6 — cabeçalho móvel e ícones independentes de fontes
   Corrige os quadrados que apareciam quando a fonte de ícones do tema-pai
   não carregava. O menu e a lupa agora são desenhados em CSS, preservando
   os links e os eventos de clique originais do OpenScholar.
   Estas regras afetam apenas telas de até 768 px.
   ======================================================================== */
@media (max-width: 768px) {
  /* Barra utilitária no topo, com alinhamento e dimensões previsíveis. */
  .responive-menu-container {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #f6f8fb !important;
    border-bottom: 1px solid #e1e7ee !important;
    box-sizing: border-box !important;
    z-index: 2200 !important;
  }

  .responive-menu-container ul.mobile-buttons {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-flow: row nowrap !important;
    gap: 8px !important;
    width: 100% !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 5px 12px !important;
    list-style: none !important;
    background: transparent !important;
    box-sizing: border-box !important;
  }

  .responive-menu-container ul.mobile-buttons > li {
    display: block !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    list-style: none !important;
  }

  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-util {
    display: none !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #0b2b4d !important;
    background-image: none !important;
    border: 1px solid #244d75 !important;
    border-radius: 6px !important;
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 2px 5px rgba(8,38,74,.12) !important;
    box-sizing: border-box !important;
  }

  /* Hide the broken icon-font glyphs only; retain the actual anchors. */
  .responive-menu-container ul.mobile-buttons > li > a span[aria-hidden="true"] {
    display: none !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a span.move {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  /* CSS hamburger: three reliable white strokes, no external icon font. */
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-main > a::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    width: 19px !important;
    height: 15px !important;
    left: 9px !important;
    top: 9px !important;
    background: linear-gradient(to bottom,
      #fff 0 2px,
      transparent 2px 6px,
      #fff 6px 8px,
      transparent 8px 13px,
      #fff 13px 15px) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    pointer-events: none !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-main > a::after {
    content: none !important;
  }

  /* CSS magnifier: outlined lens plus a short handle. */
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-search > a::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    width: 13px !important;
    height: 13px !important;
    left: 10px !important;
    top: 8px !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-search > a::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    width: 7px !important;
    height: 2px !important;
    left: 21px !important;
    top: 22px !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    transform: rotate(45deg) !important;
    transform-origin: center !important;
    pointer-events: none !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a:hover,
  .responive-menu-container ul.mobile-buttons > li > a:focus-visible,
  .responive-menu-container ul.mobile-buttons > li > a:active {
    background: #17436f !important;
    color: #fff !important;
  }

  /* The whole mobile header remains a compact, centered stack. */
  #header-container {
    width: calc(100% - 28px) !important;
    max-width: 560px !important;
    margin: 0 auto !important;
    padding: 14px 0 17px !important;
    box-sizing: border-box !important;
  }
  #header-panels {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 9px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-first {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    display: block !important;
    width: min(142px, 40vw) !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 82px !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }
  #header-panels > .region-header-second {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    font-size: clamp(20px, 5.4vw, 25px) !important;
    line-height: 1.13 !important;
    text-align: center !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info p {
    font-size: 10px !important;
    line-height: 1.45 !important;
    text-align: center !important;
  }

  /* Menu dropdown stays directly below the mobile button strip. */
  #menu-bar #block-os-primary-menu.opened {
    position: fixed !important;
    top: 46px !important;
    right: 8px !important;
    left: auto !important;
    width: min(320px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100vh - 54px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    z-index: 2199 !important;
  }
}

@media (max-width: 380px) {
  .responive-menu-container ul.mobile-buttons { padding-right: 9px !important; }
  #header-container { width: calc(100% - 22px) !important; }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    width: min(132px, 39vw) !important;
    max-height: 76px !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.4.7 — apenas disposição do cabeçalho móvel
   Ícones maiores e alinhados à esquerda; painel abre alinhado ao acionador.
   Desktop permanece inalterado.
   ======================================================================== */
@media (max-width: 768px) {
  .responive-menu-container {
    height: 50px !important;
    min-height: 50px !important;
  }

  .responive-menu-container ul.mobile-buttons {
    justify-content: flex-start !important;
    gap: 10px !important;
    height: 50px !important;
    padding: 5px 14px !important;
  }

  .responive-menu-container ul.mobile-buttons > li {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 40px !important;
  }

  .responive-menu-container ul.mobile-buttons > li > a {
    width: 44px !important;
    min-width: 44px !important;
    height: 40px !important;
    min-height: 40px !important;
    border-radius: 7px !important;
  }

  /* Hamburger maior: três traços brancos bem legíveis. */
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-main > a::before {
    width: 23px !important;
    height: 18px !important;
    left: 10px !important;
    top: 10px !important;
    background: linear-gradient(to bottom,
      #fff 0 3px,
      transparent 3px 7px,
      #fff 7px 10px,
      transparent 10px 15px,
      #fff 15px 18px) !important;
  }

  /* Lupa maior e centrada dentro do próprio botão, não na página. */
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-search > a::before {
    width: 16px !important;
    height: 16px !important;
    left: 11px !important;
    top: 9px !important;
    border-width: 2px !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-search > a::after {
    width: 9px !important;
    left: 24px !important;
    top: 25px !important;
    height: 2.5px !important;
  }

  /* Menu fica abaixo da faixa de controles e alinhado à esquerda, logo
     sob o botão de menu. A navegação não se desloca para o lado oposto. */
  #menu-bar #block-os-primary-menu.opened {
    top: 50px !important;
    left: 8px !important;
    right: auto !important;
    width: min(340px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 58px) !important;
  }
}

@media (max-width: 380px) {
  .responive-menu-container ul.mobile-buttons { padding-left: 10px !important; }
  .responive-menu-container ul.mobile-buttons > li {
    flex-basis: 42px !important;
    width: 42px !important;
  }
  .responive-menu-container ul.mobile-buttons > li > a {
    width: 42px !important;
    min-width: 42px !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.4.8 — diretório Equipe / perfis de pessoas
   Fotos continuam editáveis nos próprios registros de pessoa do OpenScholar.
   ======================================================================== */
#content-column .view-content .views-row.lepi-person-row {
  padding: 22px !important;
  border: 1px solid var(--lepi-line) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: 0 5px 18px rgba(8, 38, 74, .045) !important;
  transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}
#content-column .view-content .views-row.lepi-person-row:hover {
  border-color: rgba(0, 49, 118, .22) !important;
  box-shadow: 0 12px 28px rgba(8, 38, 74, .09) !important;
  transform: translateY(-2px);
}
#content-column .node-person.lepi-person-card .field-name-field-person-photo,
#content-column .node-person.lepi-person-card .field-name-field-photo,
#content-column .node-person.lepi-person-card .field-name-field-image,
#content-column .node-person.lepi-person-card .field-name-field-profile-picture {
  display: block !important;
  width: 104px;
  max-width: 100%;
  margin: 0 18px 12px 0 !important;
  float: left;
}
#content-column .node-person.lepi-person-card .field-name-field-person-photo img,
#content-column .node-person.lepi-person-card .field-name-field-photo img,
#content-column .node-person.lepi-person-card .field-name-field-image img,
#content-column .node-person.lepi-person-card .field-name-field-profile-picture img {
  display: block !important;
  width: 104px !important;
  height: 104px !important;
  max-width: 100% !important;
  margin: 0 !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  object-position: center !important;
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px var(--lepi-line), 0 5px 16px rgba(8, 38, 74, .10);
}
#content-column .node-person.lepi-person-card .lepi-person-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 104px !important;
  height: 104px !important;
  min-width: 104px !important;
  border-radius: 50% !important;
  border: 3px solid #fff !important;
  background: linear-gradient(145deg, #eaf1fa 0%, #dce8f4 58%, #e9f1e5 100%) !important;
  box-shadow: 0 0 0 1px var(--lepi-line), 0 5px 16px rgba(8, 38, 74, .08) !important;
  color: var(--lepi-blue) !important;
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif !important;
  font-size: 27px !important;
  font-weight: 750 !important;
  letter-spacing: .02em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}
#content-column .node-person.lepi-person-card .field-name-field-person-photo .field-items,
#content-column .node-person.lepi-person-card .field-name-field-photo .field-items,
#content-column .node-person.lepi-person-card .field-name-field-image .field-items,
#content-column .node-person.lepi-person-card .field-name-field-profile-picture .field-items {
  display: block;
}
#content-column .node-person.lepi-person-card .node-title,
#content-column .node-person.lepi-person-card h2.node-title,
#content-column .node-person.lepi-person-card h3.node-title {
  margin-top: 0 !important;
  padding-bottom: 8px !important;
  font-size: clamp(19px, 2vw, 24px) !important;
}
#content-column .node-person.lepi-person-card .node-content {
  min-width: 0;
  overflow-wrap: anywhere;
}
#content-column .node-person.lepi-person-card .field-name-field-person-photo .lepi-person-avatar,
#content-column .node-person.lepi-person-card .field-name-field-photo .lepi-person-avatar,
#content-column .node-person.lepi-person-card .field-name-field-image .lepi-person-avatar,
#content-column .node-person.lepi-person-card .field-name-field-profile-picture .lepi-person-avatar {
  float: none !important;
  margin: 0 !important;
}
/* Página Equipe: apresentação com largura confortável, sem alterar o texto editável. */
.page-node-6997 #content-column .field-name-body {
  max-width: 880px;
  margin: 0 auto !important;
  padding: clamp(24px, 4vw, 44px) !important;
  border: 1px solid var(--lepi-line);
  border-left: 4px solid var(--lepi-green);
  border-radius: 0 12px 12px 0;
  background: linear-gradient(135deg, #f7f9fc 0%, #fff 68%, #f4f7fb 100%);
  box-shadow: 0 8px 26px rgba(8, 38, 74, .045);
}
.page-node-6997 #content-column .field-name-body p,
.page-node-6997 #content-column .field-name-body .field-item {
  line-height: 1.8;
}
@media (max-width: 768px) {
  #content-column .view-content .views-row.lepi-person-row { padding: 16px !important; }
  #content-column .node-person.lepi-person-card .field-name-field-person-photo,
  #content-column .node-person.lepi-person-card .field-name-field-photo,
  #content-column .node-person.lepi-person-card .field-name-field-image,
  #content-column .node-person.lepi-person-card .field-name-field-profile-picture { width: 76px; margin-right: 13px !important; }
  #content-column .node-person.lepi-person-card .field-name-field-person-photo img,
  #content-column .node-person.lepi-person-card .field-name-field-photo img,
  #content-column .node-person.lepi-person-card .field-name-field-image img,
  #content-column .node-person.lepi-person-card .field-name-field-profile-picture img,
  #content-column .node-person.lepi-person-card .lepi-person-avatar { width: 76px !important; height: 76px !important; min-width: 76px !important; }
  #content-column .node-person.lepi-person-card .lepi-person-avatar { font-size: 22px !important; }
  .page-node-6997 #content-column .field-name-body { padding: 20px !important; border-radius: 0 9px 9px 0; }
}
@media (prefers-reduced-motion: reduce) {
  #content-column .view-content .views-row.lepi-person-row { transition: none !important; }
}

/* Avatares sem foto gerados pelo script do tema — iniciais derivadas do nome. */
#content-column .node-person.lepi-person-card > .lepi-person-avatar,
#content-column .node-person.lepi-person-card > .node-title + .lepi-person-avatar {
  float: left !important;
  margin: 0 18px 14px 0 !important;
}
#content-column .node-person.lepi-person-card .field-name-field-person-photo.lepi-photo-fallback .field-items,
#content-column .node-person.lepi-person-card .field-name-field-photo.lepi-photo-fallback .field-items,
#content-column .node-person.lepi-person-card .field-name-field-image.lepi-photo-fallback .field-items,
#content-column .node-person.lepi-person-card .field-name-field-profile-picture.lepi-photo-fallback .field-items,
#content-column .node-person.lepi-person-card .field-name-field-person-image.lepi-photo-fallback .field-items {
  display: block !important;
  min-height: 104px;
}
#content-column .node-person.lepi-person-card .field-name-field-person-image .lepi-person-avatar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 104px !important;
  height: 104px !important;
  border-radius: 50% !important;
  color: var(--lepi-blue) !important;
  background: linear-gradient(145deg, #eaf1fa, #dce8f4 58%, #e9f1e5) !important;
  font-size: 27px !important;
  font-weight: 750 !important;
  box-shadow: 0 0 0 1px var(--lepi-line), 0 5px 16px rgba(8,38,74,.08) !important;
}
@media (max-width: 768px) {
  #content-column .node-person.lepi-person-card > .lepi-person-avatar,
  #content-column .node-person.lepi-person-card > .node-title + .lepi-person-avatar { margin-right: 13px !important; }
  #content-column .node-person.lepi-person-card .field-name-field-person-image .lepi-person-avatar { width: 76px !important; height: 76px !important; font-size: 22px !important; }
}


/* ========================================================================
   LEPI Moderno v0.4.9 — correção específica do cabeçalho desktop e mobile
   Mobile: controles à esquerda; logo à esquerda e nome ao lado; menu abaixo
   do cabeçalho, sem alterar o layout do conteúdo nem a navegação desktop.
   ======================================================================== */

/* Desktop/tablet: mantém a região do logotipo do LEPI visível e separada
   do brasão institucional da UFOP, que pertence à terceira região. */
@media (min-width: 769px) {
  #header-panels > .region-header-first,
  #header-panels > .region-header-first #block-boxes-site-logo,
  #header-panels > .region-header-first #boxes-box-site_logo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  #header-panels > .region-header-first {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 130px !important;
    max-width: 190px !important;
    overflow: visible !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 100px !important;
    height: auto !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }
  #header-panels > .region-header-third {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
  }
  #header-panels > .region-header-third img,
  #scholar-shield img,
  #boxes-box-shield img {
    max-width: 52px !important;
    max-height: 58px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }
}

@media (max-width: 768px) {
  /* Barra de controles própria: alinhada à esquerda e fácil de tocar. */
  .responive-menu-container {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 52px !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f6f8fb !important;
    border-bottom: 1px solid #e1e7ee !important;
    overflow: visible !important;
    z-index: 2300 !important;
  }
  .responive-menu-container ul.mobile-buttons {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 5px 14px !important;
    box-sizing: border-box !important;
  }
  .responive-menu-container ul.mobile-buttons > li {
    display: block !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-util {
    display: none !important;
  }
  .responive-menu-container ul.mobile-buttons > li > a {
    position: relative !important;
    display: block !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #0b2b4d !important;
    background-image: none !important;
    border: 1px solid #244d75 !important;
    border-radius: 7px !important;
    color: transparent !important;
    font-size: 0 !important;
    box-sizing: border-box !important;
  }
  .responive-menu-container ul.mobile-buttons > li > a span[aria-hidden="true"] {
    display: none !important;
  }
  .responive-menu-container ul.mobile-buttons > li > a span.move {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-main > a::before {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    left: 10px !important;
    top: 11px !important;
    width: 22px !important;
    height: 18px !important;
    background: linear-gradient(to bottom,#fff 0 3px,transparent 3px 7px,#fff 7px 10px,transparent 10px 15px,#fff 15px 18px) !important;
    border: 0 !important;
    box-shadow: none !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-main > a::after { content: none !important; }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-search > a::before {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    left: 10px !important;
    top: 9px !important;
    width: 17px !important;
    height: 17px !important;
    border: 2px solid #fff !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-sizing: border-box !important;
  }
  .responive-menu-container ul.mobile-buttons > li.link-count-mobi-search > a::after {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    left: 24px !important;
    top: 24px !important;
    width: 9px !important;
    height: 2px !important;
    background: #fff !important;
    border: 0 !important;
    border-radius: 2px !important;
    transform: rotate(45deg) !important;
  }

  /* Cabeçalho em uma linha lógica: logo LEPI à esquerda e identificação ao lado. */
  #header-container {
    width: calc(100% - 28px) !important;
    max-width: 620px !important;
    margin: 0 auto !important;
    padding: 12px 0 14px !important;
    box-sizing: border-box !important;
  }
  #header-panels {
    display: grid !important;
    grid-template-columns: minmax(76px, 27%) minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    justify-items: stretch !important;
    column-gap: 14px !important;
    row-gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-first {
    display: block !important;
    visibility: visible !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }
  #header-panels > .region-header-first #block-boxes-site-logo,
  #header-panels > .region-header-first #boxes-box-site_logo,
  #header-panels > .region-header-first #boxes-box-site_logo a {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    display: block !important;
    width: 100% !important;
    max-width: 112px !important;
    max-height: 78px !important;
    height: auto !important;
    margin: 0 !important;
    object-fit: contain !important;
  }
  #header-panels > .region-header-second {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }
  #header-panels > .region-header-second .region-inner.site-info {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-second #block-boxes-site-info {
    width: 100% !important;
    margin: 0 !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    font-size: clamp(17px, 4.8vw, 22px) !important;
    line-height: 1.12 !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
    margin: 0 0 4px !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h2 {
    font-size: 10px !important;
    text-align: left !important;
    margin: 0 0 3px !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info p {
    font-size: 9px !important;
    line-height: 1.35 !important;
    text-align: left !important;
    margin: 0 !important;
  }
  #header-panels > .region-header-third,
  #header-panels > .region-header-second #block-os-search-db-site-search {
    display: none !important;
  }

  /* O menu abre abaixo do cabeçalho completo, alinhado à esquerda. */
  #menu-bar #block-os-primary-menu.opened {
    position: fixed !important;
    top: 166px !important;
    left: 8px !important;
    right: auto !important;
    width: min(340px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 174px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    z-index: 2299 !important;
    margin: 0 !important;
    box-shadow: 0 12px 28px rgba(8,38,74,.22) !important;
  }
}

@media (max-width: 380px) {
  #header-panels { grid-template-columns: 76px minmax(0, 1fr) !important; column-gap: 10px !important; }
  #header-panels > .region-header-first #boxes-box-site_logo img { max-width: 76px !important; max-height: 62px !important; }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a { font-size: 17px !important; }
  #menu-bar #block-os-primary-menu.opened { top: 154px !important; max-height: calc(100dvh - 162px) !important; }
}


/* ========================================================================
   LEPI Moderno v0.5.0 — cabeçalho persistente e menu móvel abaixo dele
   ======================================================================== */
/* O bloco da logo não deve desaparecer em páginas internas (ex.: Equipe).
   Não troca a imagem configurada no OpenScholar; apenas mantém a região visível. */
@media (min-width: 769px) {
  #header-panels > .region-header-first,
  #header-panels > .region-header-first .region-inner,
  #header-panels > .region-header-first #block-boxes-site-logo,
  #header-panels > .region-header-first #block-boxes-site-logo .block-inner,
  #header-panels > .region-header-first #block-boxes-site-logo .block-content,
  #header-panels > .region-header-first #boxes-box-site_logo {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    min-height: 1px !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 190px !important;
    max-height: 100px !important;
    object-fit: contain !important;
  }
}

@media (max-width: 768px) {
  /* Let the title wrap naturally; never push the laboratory name off-screen. */
  #header-container { width: 100% !important; max-width: 100% !important; padding: 10px 14px 14px !important; overflow: visible !important; }
  #header-panels {
    display: grid !important;
    grid-template-columns: minmax(64px, 24vw) minmax(0, 1fr) !important;
    column-gap: 12px !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
  #header-panels > .region-header-first,
  #header-panels > .region-header-first .region-inner,
  #header-panels > .region-header-first #block-boxes-site-logo,
  #header-panels > .region-header-first #block-boxes-site-logo .block-inner,
  #header-panels > .region-header-first #block-boxes-site-logo .block-content,
  #header-panels > .region-header-first #boxes-box-site_logo {
    display: block !important; visibility: visible !important; opacity: 1 !important;
    width: 100% !important; min-width: 0 !important; max-width: 100% !important;
    height: auto !important; margin: 0 !important; padding: 0 !important;
    overflow: visible !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo a { display: block !important; width: 100% !important; }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    display: block !important; width: 100% !important; max-width: 100px !important;
    height: auto !important; max-height: 78px !important; object-fit: contain !important;
    object-position: left center !important; margin: 0 !important;
  }
  #header-panels > .region-header-second,
  #header-panels > .region-header-second .region-inner.site-info,
  #header-panels > .region-header-second #block-boxes-site-info,
  #header-panels > .region-header-second #boxes-box-site_info {
    display: block !important; width: 100% !important; max-width: 100% !important;
    min-width: 0 !important; margin: 0 !important; padding: 0 !important;
    overflow: visible !important; box-sizing: border-box !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    display: block !important; max-width: 100% !important; white-space: normal !important;
    overflow-wrap: anywhere !important; word-break: normal !important;
    font-size: clamp(15px, 4.3vw, 21px) !important; line-height: 1.15 !important;
    margin: 0 0 5px !important; text-align: left !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h2,
  #header-panels > .region-header-second #boxes-box-site_info p {
    max-width: 100% !important; white-space: normal !important; overflow-wrap: anywhere !important;
    text-align: left !important; margin-left: 0 !important; margin-right: 0 !important;
  }

  /* Position the dropdown relative to the actual menu bar, not a guessed fixed
     pixel offset. It appears immediately below the navigation/header area. */
  #menu-bar { position: relative !important; z-index: 2300 !important; }
  #menu-bar #block-os-primary-menu.opened {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    width: min(340px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 140px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    margin: 0 !important;
    z-index: 2301 !important;
  }
}
@media (max-width: 380px) {
  #header-panels { grid-template-columns: 64px minmax(0,1fr) !important; column-gap: 9px !important; }
  #header-panels > .region-header-first #boxes-box-site_logo img { max-width: 64px !important; max-height: 64px !important; }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a { font-size: 15px !important; }
}


/* ========================================================================
   LEPI Moderno v0.5.1 — menu abaixo do cabeçalho real no celular
   ======================================================================== */
@media (max-width: 768px) {
  /* O JavaScript mede o fim do cabeçalho e escreve o top efetivo no menu.
     O valor de reserva evita que o menu cubra o título se o script atrasar. */
  #block-os-primary-menu.opened,
  #menu-bar #block-os-primary-menu.opened {
    position: fixed !important;
    top: var(--lepi-mobile-menu-top, 220px) !important;
    left: 8px !important;
    right: auto !important;
    bottom: auto !important;
    width: min(340px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 232px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    margin: 0 !important;
    z-index: 9999 !important;
    box-sizing: border-box !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.5.2 — busca funcional no desktop e no celular
   ======================================================================== */

/* Desktop: uma coluna estável para o título e outra para o campo de busca.
   Evita que a largura automática da região do Drupal comprima ou desloque a caixa. */
@media (min-width: 769px) {
  #header-panels > .region-header-second .region-inner.site-info {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) clamp(190px, 21vw, 258px) !important;
    grid-template-rows: auto auto auto !important;
    align-items: center !important;
    column-gap: clamp(16px, 2vw, 26px) !important;
    row-gap: 3px !important;
    min-width: 0 !important;
  }
  #header-panels > .region-header-second #block-boxes-site-info {
    grid-column: 1 !important;
    grid-row: 1 / span 3 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    justify-self: stretch !important;
    align-self: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 258px !important;
    margin: 0 !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search .block-inner,
  #header-panels > .region-header-second #block-os-search-db-site-search .block-content,
  #header-panels > .region-header-second #block-os-search-db-site-search form#search-block-form,
  #header-panels > .region-header-second #block-os-search-db-site-search form#search-block-form > div,
  #header-panels > .region-header-second #block-os-search-db-site-search .container-inline {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search .container-inline {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    gap: 7px !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search .form-item-search-block-form,
  #header-panels > .region-header-second #block-os-search-db-site-search .form-item {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search input.form-text {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    box-sizing: border-box !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search .form-actions {
    flex: 0 0 42px !important;
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search input.form-submit {
    display: block !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
}

/* Busca móvel: o script desloca o bloco original para fora da região escondida
   do cabeçalho; assim, as regras antigas de display:none não anulam o botão. */
#lepi-mobile-search-panel {
  position: fixed !important;
  left: 8px !important;
  right: 8px !important;
  top: 120px;
  z-index: 10020 !important;
  display: block;
  max-height: calc(100vh - 132px);
  max-height: calc(100dvh - 132px);
  overflow: auto !important;
  padding: 13px !important;
  border: 1px solid #dbe3ed !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 14px 36px rgba(8, 38, 74, .22) !important;
  box-sizing: border-box !important;
}
#lepi-mobile-search-panel[hidden] { display: none !important; }
#lepi-mobile-search-panel .lepi-mobile-search-heading {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 0 10px !important;
  color: var(--lepi-blue-deep) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}
#lepi-mobile-search-panel .lepi-mobile-search-close {
  flex: 0 0 auto !important;
  padding: 5px 9px !important;
  border: 1px solid #d8e0eb !important;
  border-radius: 5px !important;
  background: #f6f8fb !important;
  color: var(--lepi-blue-deep) !important;
  font: inherit !important;
  font-size: 12px !important;
  cursor: pointer !important;
}
#lepi-mobile-search-panel #block-os-search-db-site-search,
#lepi-mobile-search-panel #block-boxes-solr-search-box,
#lepi-mobile-search-panel #search-block-form {
  display: block !important;
  position: static !important;
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
#lepi-mobile-search-panel .block-inner,
#lepi-mobile-search-panel .block-content,
#lepi-mobile-search-panel form#search-block-form,
#lepi-mobile-search-panel form#search-block-form > div,
#lepi-mobile-search-panel .container-inline {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
#lepi-mobile-search-panel .container-inline {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  gap: 8px !important;
}
#lepi-mobile-search-panel .form-item-search-block-form,
#lepi-mobile-search-panel .form-item {
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
#lepi-mobile-search-panel label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
#lepi-mobile-search-panel input.form-text,
#lepi-mobile-search-panel input[type="search"] {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  border: 1px solid #d8e0eb !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: var(--lepi-text) !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
  box-sizing: border-box !important;
}
#lepi-mobile-search-panel .form-actions {
  display: flex !important;
  flex: 0 0 44px !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
}
#lepi-mobile-search-panel input.form-submit,
#lepi-mobile-search-panel button {
  flex: 0 0 44px !important;
  width: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--lepi-blue) !important;
  border-radius: 5px !important;
  background-color: var(--lepi-blue) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 19px 19px !important;
  color: transparent !important;
  font-size: 0 !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}
#lepi-mobile-search-panel input.form-submit {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") !important;
}
@media (max-width: 768px) {
  #lepi-mobile-search-panel { top: 110px; }
}


/* ========================================================================
   LEPI Moderno v0.5.3 — equilíbrio do logotipo e refinamento final da busca
   ======================================================================== */

/* Aumenta discretamente a marca do laboratório no desktop, sem competir com
   o título e sem alterar o tamanho do brasão da UFOP. */
@media (min-width: 769px) {
  #header-panels > .region-header-first #boxes-box-site_logo img {
    max-width: 205px !important;
    max-height: 108px !important;
  }
}

/* Em celulares, a coluna da marca cresce um pouco para que o logotipo tenha
   presença visual semelhante ao parágrafo institucional ao lado. */
@media (max-width: 768px) {
  #header-panels {
    grid-template-columns: minmax(72px, 25vw) minmax(0, 1fr) !important;
    column-gap: 12px !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    max-width: 108px !important;
    max-height: 84px !important;
  }
}
@media (max-width: 380px) {
  #header-panels {
    grid-template-columns: 72px minmax(0, 1fr) !important;
    column-gap: 9px !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    max-width: 72px !important;
    max-height: 70px !important;
  }
}

/* Reafirma as dimensões da busca no desktop para anular regras herdadas de
   tamanho fixo por atributos HTML, mantendo o botão de lupa clicável. */
@media (min-width: 769px) {
  #header-panels > .region-header-second #block-os-search-db-site-search input.form-text {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: 1 1 0 !important;
  }
  #header-panels > .region-header-second #block-os-search-db-site-search .form-actions,
  #header-panels > .region-header-second #block-os-search-db-site-search input.form-submit {
    cursor: pointer !important;
    pointer-events: auto !important;
  }
}

/* ========================================================================
   LEPI Moderno v0.5.4 — botões móveis ABAIXO da logo e do título
   ======================================================================== */
@media (max-width: 768px) {
  /* Reserva uma faixa real para os botões que o JS posiciona sob o cabeçalho.
     Assim eles não ficam por cima da logo, do nome nem do início do conteúdo. */
  #header-container {
    padding-bottom: 58px !important;
    box-sizing: border-box !important;
  }
  .responive-menu-container {
    position: absolute !important;
    top: var(--lepi-mobile-controls-top, 180px) !important;
    right: 0 !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 9998 !important;
    background: transparent !important;
  }
  .responive-menu-container ul.mobile-buttons {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 4px 8px !important;
  }
  #menu-bar #block-os-primary-menu.opened,
  #block-os-primary-menu.opened {
    position: fixed !important;
    top: var(--lepi-mobile-menu-top, 230px) !important;
    left: 8px !important;
    right: auto !important;
    bottom: auto !important;
    width: min(340px, calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - 242px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    margin: 0 !important;
    z-index: 10000 !important;
    box-sizing: border-box !important;
  }
}


/* ========================================================================
   LEPI Moderno v0.5.5 — toggles móveis previsíveis
   ======================================================================== */
@media (max-width: 768px) {
  #block-os-primary-menu:not(.opened) { display: none !important; }
  #block-os-primary-menu.opened {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  #lepi-mobile-search-panel {
    position: fixed !important;
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
    margin: 0 !important;
    z-index: 10020 !important;
  }
}

/* ========================================================================
   LEPI Moderno v0.5.6 — alinhamento consistente do cabeçalho em todas as telas
   ======================================================================== */
/* Um único eixo horizontal para a faixa institucional, marca e navegação. */
#branding_header .branding-container,
#header-container,
#menu-bar {
  width: min(calc(100% - 48px), var(--lepi-content-width)) !important;
  max-width: var(--lepi-content-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

#branding_header .branding-container {
  min-height: 38px !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  align-items: center !important;
}

#header-container {
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}

#header-panels {
  display: grid !important;
  grid-template-columns: 166px minmax(0, 1fr) 64px !important;
  align-items: center !important;
  column-gap: clamp(18px, 2.4vw, 32px) !important;
  row-gap: 0 !important;
}

#header-panels > .region-header-first,
#header-panels > .region-header-second,
#header-panels > .region-header-third {
  align-self: center !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#header-panels > .region-header-first #boxes-box-site_logo,
#header-panels > .region-header-first #boxes-box-site_logo a {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#header-panels > .region-header-first #boxes-box-site_logo img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 166px !important;
  max-height: 104px !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
}

#header-panels > .region-header-second .region-inner.site-info {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  align-items: center !important;
}

#header-panels > .region-header-third {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
}

#header-panels > .region-header-third img,
#scholar-shield img,
#boxes-box-shield img {
  display: block !important;
  max-width: 58px !important;
  max-height: 58px !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}

#menu-bar {
  min-height: 52px !important;
}

@media (min-width: 769px) {
  #header-panels > .region-header-second .region-inner.site-info {
    grid-template-columns: minmax(0, 1fr) clamp(190px, 21vw, 258px) !important;
    column-gap: clamp(16px, 2vw, 26px) !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    max-width: 100% !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

@media (max-width: 768px) {
  #branding_header .branding-container,
  #header-container,
  #menu-bar {
    width: calc(100% - 28px) !important;
    max-width: none !important;
  }
  #branding_header .branding-container {
    min-height: 34px !important;
    gap: 8px !important;
  }
  #header-container {
    padding: 12px 0 58px !important;
  }
  #header-panels {
    grid-template-columns: minmax(72px, 25vw) minmax(0, 1fr) !important;
    column-gap: 12px !important;
    align-items: center !important;
    row-gap: 0 !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    width: auto !important;
    max-width: 100% !important;
    max-height: 82px !important;
    margin: 0 !important;
  }
  #header-panels > .region-header-second .region-inner.site-info {
    display: block !important;
  }
  #header-panels > .region-header-second #boxes-box-site_info h1,
  #header-panels > .region-header-second #boxes-box-site_info h1 a {
    font-size: clamp(15px, 4.3vw, 21px) !important;
    line-height: 1.15 !important;
    text-align: left !important;
  }
  .responive-menu-container {
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    height: 42px !important;
  }
  .responive-menu-container ul.mobile-buttons {
    justify-content: flex-start !important;
    padding: 4px 0 !important;
  }
  #menu-bar { min-height: 0 !important; }
}

@media (max-width: 380px) {
  #header-panels {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    column-gap: 9px !important;
  }
  #header-panels > .region-header-first #boxes-box-site_logo img {
    max-width: 64px !important;
    max-height: 64px !important;
  }
}


/* v0.5.7: a caixa de busca deve realmente desaparecer ao fechar.
   Também evita que o bloco original fique exposto no cabeçalho após ser movido. */
#lepi-mobile-search-panel[hidden],
#lepi-mobile-search-panel[hidden="hidden"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 768px) {
  #header-panels > .region-header-second #block-os-search-db-site-search,
  #header-panels > .region-header-second #block-boxes-solr-search-box {
    display: none !important;
  }
  #lepi-mobile-search-panel:not([hidden]) {
    display: block !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }
}
