/* Regra Global: Links sem underline */
a,
a:hover,
a:focus,
a:active {
  text-decoration: none !important;
}


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

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

/* ==========================================================================
   PROJETO CEAA — DOBRA 1 (HEADER GLASSPHORPHISM & HERO CAROUSEL)
   Design System: Tipografia Neutra Sem Serifa, Pesos Balanceados & Alta Fidelidade
   ========================================================================== */

:root {
  --bg-primary: #0C0D11;
  --bg-header: rgba(255, 255, 255, 0.94);
  --header-glass: blur(20px);

  --text-dark: #1E2026;
  --text-muted: #52525B;
  --text-light: #F4F4F5;

  --brand-blue: #0284C7;
  --brand-blue-hover: #0369A1;
  --brand-red: #A52B20;

  --border-header: rgba(0, 0, 0, 0.08);

  /* Fontes Neutras Sem Serifa & Elegantes */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-mono: var(--font-sans, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);

  --ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Reset */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-family: var(--font-sans);
  background-color: var(--bg-primary);
  color: var(--text-light);
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body {
  overflow-x: clip;
  overflow-y: visible;
  min-height: 100vh;
}

/* ==========================================================================
   HEADER GLASSPHORPHISM — LOGO MAIOR & NÍTIDO + SUBMENUS
   ========================================================================== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 96px;
  z-index: 99999;
  background: var(--bg-header);
  backdrop-filter: var(--header-glass);
  -webkit-backdrop-filter: var(--header-glass);
  border-bottom: none;
  box-shadow: none;
  transition: all 0.3s var(--ease-smooth);
}

.site-header.scrolled {
  height: 84px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: none;
}

.header-container {
  max-width: 1540px;
  height: 100%;
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}

/* Logo Oficial Maior e Nítido */
.logo-wrap {
  display: flex;
  align-items: center;
  text-decoration: none;
  z-index: 20;
}

.logo-wrap:hover {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

.main-logo-img {
  height: 66px;
  width: auto;
  max-width: 320px;
  object-fit: contain;
  display: block;
  transition: height 0.3s ease;
}

.site-header.scrolled .main-logo-img {
  height: 56px;
}

/* Menu de Navegação - Sem Serifa, Peso Balanceado (font-weight: 500) */
.nav-menu-wrap {
  display: flex;
  align-items: center;
  transition: opacity 0.25s var(--ease-smooth), transform 0.25s var(--ease-smooth), visibility 0.25s;
}

/* Quando a busca está ativa, o menu some suavemente */
.site-header.search-mode .nav-menu-wrap {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  pointer-events: none;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  list-style: none;
}

.nav-item {
  position: relative;
}

.nav-link {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.75rem 0.9rem;
  text-decoration: none;
  font-size: 0.935rem;
  font-weight: 500;
  color: var(--text-dark);
  letter-spacing: -0.01em;
  transition: color 0.2s ease, background 0.2s ease;
  border-radius: 6px;
}

.nav-link:hover {
  color: var(--brand-red);
  background: rgba(0, 0, 0, 0.035);
}

.nav-arrow {
  display: inline-block;
  font-size: 0.65rem;
  color: #71717A;
  transition: transform 0.25s var(--ease-smooth);
}

.nav-item:hover .nav-arrow {
  transform: rotate(180deg);
  color: var(--brand-red);
}

.nav-divider {
  display: none;
  color: #D4D4D8;
  font-weight: 300;
  font-size: 0.85rem;
  padding: 0 0.15rem;
  user-select: none;
}

/* Dropdown Submenu Glassmorphism */
.sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 270px;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  padding: 0.6rem;
  box-shadow: 0 12px 32px -4px rgba(11, 16, 33, 0.12);
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px) scale(0.98);
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  z-index: 100000;
}

/* Ponte invisível (hover tunnel): garante que o mouse não perca o hover ao transitar */
.sub-menu::before {
  content: '';
  position: absolute;
  top: -18px;
  left: -15px;
  right: -15px;
  height: 24px;
  background: transparent;
  pointer-events: auto;
}

/* Transição de fechamento suave: evita sumiço abrupto com delay de 120ms */
.nav-item .sub-menu {
  transition-delay: 0.12s;
}

.nav-item:hover .sub-menu,
.nav-item:focus-within .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(2px) scale(1);
  pointer-events: auto;
  transition-delay: 0s;
}

/* Alinhamento inteligente dos submenus para nunca estourar a tela pela direita */
.nav-item:nth-last-child(-n+3) .sub-menu {
  left: auto;
  right: 0;
}

.sub-menu-item a {
  display: block;
  padding: 0.65rem 0.95rem;
  text-decoration: none;
  font-size: 0.885rem;
  font-weight: 450;
  color: #27272A;
  border-radius: 6px;
  transition: all 0.2s ease;
  line-height: 1.4;
}

.sub-menu-item a:hover {
  background: rgba(165, 43, 32, 0.08);
  color: var(--brand-red);
  transform: translateX(3px);
}

/* ==========================================================================
   CAMPO DE BUSCA EXPANSÍVEL SOBRE O MENU (HEADER IN-PLACE SEARCH)
   ========================================================================== */
.header-search-container {
  position: absolute;
  left: 360px;
  right: 2rem;
  top: 50%;
  transform: translateY(-50%) scale(0.98);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  transition: all 0.3s var(--ease-smooth);
  z-index: 30;
}

.site-header.search-mode .header-search-container {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(-50%) scale(1);
}

.search-input-box {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  background: #FFFFFF;
  border: 1.5px solid var(--brand-blue);
  border-radius: 9999px;
  padding: 0.45rem 1.25rem;
  box-shadow: none;
}

.search-input-field {
  flex: 1;
  border: none;
  background: transparent;
  font-family: var(--font-sans);
  font-size: 1.05rem;
  font-weight: 450;
  color: var(--text-dark);
  outline: none;
}

.search-input-field::placeholder {
  color: #A1A1AA;
  font-weight: 400;
}

.search-close-btn {
  background: #F4F4F5;
  border: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #71717A;
  cursor: pointer;
  transition: all 0.2s ease;
}

.search-close-btn:hover {
  background: #E4E4E7;
  color: #18181B;
}

/* Botão Gatilho da Busca no Header */
.header-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  z-index: 20;
}

.site-header.search-mode .header-actions {
  display: none;
}

.header-search-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem;
  border: 1px solid #E4E4E7;
  border-radius: 8px;
  background: #F4F4F5;
  color: #52525B;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.header-search-btn:hover {
  background: #E4E4E7;
  color: #18181B;
  border-color: #D4D4D8;
}

.header-kbd {
  background: #FFFFFF;
  border: 1px solid #D4D4D8;
  border-radius: 4px;
  padding: 0.1rem 0.35rem;
  font-size: 0.75rem;
  font-family: var(--font-mono);
  color: #71717A;
}

/* ==========================================================================
   DROPDOWN DE RESULTADOS EM TEMPO REAL (SOB O HEADER)
   ========================================================================== */
.live-search-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  border-bottom: none;
  box-shadow: none;
  max-height: 480px;
  overflow-y: auto;
  display: none;
  z-index: 990;
}

.live-search-dropdown.active {
  display: block;
  animation: slideDown 0.25s var(--ease-smooth);
}

.live-search-container {
  max-width: 1540px;
  margin: 0 auto;
  padding: 1.5rem 2rem 2rem;
}

.live-search-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 1rem;
  /* border-line removed */
  border-bottom: none;
  margin-bottom: 1rem;
  font-size: 0.85rem;
  color: #71717A;
}

.live-search-count strong {
  color: var(--brand-blue);
  font-weight: 600;
}

.view-all-results-link {
  color: var(--brand-blue);
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: color 0.2s ease;
}

.view-all-results-link:hover {
  color: var(--brand-blue-hover);
  text-decoration: none;
}

.live-search-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 1rem;
}

.live-search-card {
  padding: 1rem 1.25rem;
  border-radius: 10px;
  background: #FBFBFC;
  border: 1px solid #E4E4E7;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  transition: all 0.2s ease;
}

.live-search-card:hover {
  background: #FFFFFF;
  border-color: var(--brand-blue);
  box-shadow: none;
  transform: translateY(-2px);
}

.live-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.live-card-badge {
  font-size: 0.725rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  background: rgba(2, 132, 199, 0.1);
  color: var(--brand-blue);
  border-radius: 4px;
}

.live-card-year {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: #A1A1AA;
}

.live-card-title {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text-dark);
  line-height: 1.45;
  margin-bottom: 0.5rem;
}

.live-card-filename {
  font-family: var(--font-mono);
  font-size: 0.725rem;
  color: #71717A;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ==========================================================================
   HERO CAROUSEL — 3 SLIDES OFICIAIS COM TIPOGRAFIA SEM SERIFA BALANCEADA
   ========================================================================== */
.hero-slider-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 700px;
  max-height: 960px;
  overflow: hidden;
  background: #0C0D11;
}

.slider-container {
  position: relative;
  width: 100%;
  height: 100%;
}

.slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.85s var(--ease-smooth), visibility 0.85s;
  display: flex;
  align-items: flex-end;
  padding-bottom: 6.5rem;
}

.slide.active {
  opacity: 1;
  visibility: visible;
}

.slide-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  transform: scale(1.04);
  transition: transform 7s cubic-bezier(0.1, 0.9, 0.2, 1);
  filter: brightness(0.68) contrast(1.05);
}

.slide.active .slide-bg {
  transform: scale(1);
}

.slide-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
      rgba(12, 13, 17, 0.4) 0%,
      rgba(12, 13, 17, 0.1) 40%,
      rgba(12, 13, 17, 0.85) 85%,
      rgba(12, 13, 17, 1) 100%);
  pointer-events: none;
}

.slide-content-wrap {
  position: relative;
  z-index: 10;
  max-width: 1540px;
  width: 100%;
  margin: 0 auto;
  padding: 0 4rem;
}

.slide-content {
  max-width: 820px;
}

.slide-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.35rem 0.95rem;
  background: rgba(2, 132, 199, 0.22);
  border: 1px solid rgba(2, 132, 199, 0.45);
  backdrop-filter: blur(8px);
  border-radius: 9999px;
  font-size: 0.775rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #7DD3FC;
  margin-bottom: 1.25rem;
  transform: translateY(18px);
  opacity: 0;
  transition: all 0.6s var(--ease-smooth) 0.1s;
}

.slide.active .slide-tag {
  transform: translateY(0);
  opacity: 1;
}

.slide-title {
  font-family: var(--font-sans);
  font-size: clamp(2.4rem, 4.6vw, 3.9rem);
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.15;
  letter-spacing: -0.025em;
  text-shadow: 0 3px 20px rgba(0, 0, 0, 0.6);
  margin-bottom: 1.25rem;
  transform: translateY(25px);
  opacity: 0;
  transition: all 0.7s var(--ease-smooth) 0.2s;
}

.slide.active .slide-title {
  transform: translateY(0);
  opacity: 1;
}

.slide-desc {
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 1.7vw, 1.25rem);
  color: #E4E4E7;
  line-height: 1.6;
  font-weight: 350;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.7);
  margin-bottom: 2rem;
  max-width: 680px;
  transform: translateY(25px);
  opacity: 0;
  transition: all 0.7s var(--ease-smooth) 0.3s;
}

.slide.active .slide-desc {
  transform: translateY(0);
  opacity: 1;
}

.slide-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.85rem 2.1rem;
  background: var(--brand-blue);
  color: #FFFFFF;
  font-size: 0.925rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
  border-radius: 8px;
  box-shadow: none;
  transition: all 0.25s var(--ease-smooth);
  transform: translateY(25px);
  opacity: 0;
  transition: all 0.7s var(--ease-smooth) 0.4s;
}

.slide.active .slide-btn {
  transform: translateY(0);
  opacity: 1;
}

.slide-btn:hover {
  background: var(--brand-blue-hover);
  box-shadow: none;
  transform: translateY(-2px);
}

.slide-btn svg {
  transition: transform 0.2s ease;
}

.slide-btn:hover svg {
  transform: translateX(4px);
}

.slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  color: #FFFFFF;
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 50;
  transition: all 0.25s var(--ease-smooth);
}

.slider-arrow:hover {
  background: rgba(255, 255, 255, 0.25);
  border-color: #FFFFFF;
  transform: translateY(-50%) scale(1.06);
}

.slider-arrow.prev {
  left: 2rem;
}

.slider-arrow.next {
  right: 2rem;
}

.slider-pagination {
  position: absolute;
  bottom: 2.5rem;
  left: 4rem;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  z-index: 50;
}

.slider-dot {
  width: 28px;
  height: 4px;
  background: rgba(255, 255, 255, 0.25);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.slider-dot.active {
  width: 52px;
  background: var(--brand-blue);
  box-shadow: none;
}

/* ==========================================================================
   FAIXA DE BACKGROUND ORIGINAL (bg_afro01-scaled.jpg LOGO ABAIXO DO SLIDE)
   ========================================================================== */
.tribal-divider-wrap {
  position: relative;
  width: 100%;
  height: 48px;
  background-color: #FFFFFF;
  background-image: url('https://media.visuals.com.br/visuals-medias/ceaa/images/brand/bg_afro01-scaled.webp');
  background-repeat: repeat-x;
  background-position: center top;
  background-size: auto 48px;
  border-top: none;
  border-bottom: none;
  box-shadow: none;
  z-index: 40;
}

@media (max-width: 1024px) {
  .tribal-divider-wrap {
    height: 42px;
    background-size: auto 42px;
  }
}

@media (max-width: 768px) {
  .tribal-divider-wrap {
    height: 38px;
    background-size: auto 38px;
  }
}

@media (max-width: 480px) {
  .tribal-divider-wrap {
    height: 34px;
    background-size: auto 34px;
  }
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsividade Mobile */
@media (max-width: 1200px) {
  .nav-menu-wrap {
    display: none;
  }

  .header-search-container {
    left: 2rem;
  }

  .slide-content-wrap {
    padding: 0 2rem;
  }

  .slider-arrow {
    display: none;
  }

  .slider-pagination {
    left: 2rem;
  }
}


/* ==========================================================================
   DOBRA 2: ACERVO E LEGADO DO CEAA (SEÇÃO INSTITUCIONAL)
   ========================================================================== */
.dobra2-legacy-section {
  position: relative;
  background-color: #FFFFFF;
  padding: 85px 1.5rem 95px;
  text-align: center;
  color: #111111;
  overflow: hidden;
}

.dobra2-container {
  max-width: 860px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.dobra2-tag {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #18181B;
  margin-bottom: 0.85rem;
  display: inline-block;
}

.dobra2-title {
  font-family: var(--font-sans);
  font-size: clamp(2rem, 3.8vw, 3rem);
  font-weight: 700;
  color: #950221;
  /* Vermelho rubi característico oficial */
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin-bottom: 2rem;
}

.dobra2-totem-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1.75rem;
}

.dobra2-totem-img {
  width: 46px;
  height: auto;
  object-fit: contain;
  display: block;
  filter: none;
}

.dobra2-description {
  font-family: var(--font-sans);
  font-size: clamp(1.05rem, 1.4vw, 1.225rem);
  font-weight: 400;
  /* Leve e confortável sem serifa */
  color: #27272A;
  line-height: 1.65;
  max-width: 720px;
  margin: 0 auto 2.5rem;
}

.dobra2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 2.8rem;
  background-color: #2581CC;
  color: #FFFFFF;
  border: 2px solid #2581CC;
  border-radius: 8px;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  box-shadow: none;
  transition: all 0.25s var(--ease-smooth);
}

.dobra2-btn:hover {
  background-color: transparent;
  color: #2581CC;
  box-shadow: none;
  transform: translateY(-2px);
}


/* ==========================================================================
   BOTÃO BACK TO TOP FLUTUANTE REDONDO (COM ADAPTAÇÃO DINÂMICA DE CONTRASTE)
   ========================================================================== */
.back-to-top-btn {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 44px;
  height: 44px;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1.5px solid rgba(255, 255, 255, 0.85);
  color: #0F172A;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12) !important;
  cursor: pointer;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px) scale(0.9);
  transition: all 0.25s var(--ease-smooth);
}

.back-to-top-btn.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

/* Estado quando está sobre dobras com fundo BRANCO / CLARO (Contraste Perfeito) */
.back-to-top-btn.is-on-light {
  background: #7A1733 !important;
  color: #FFFFFF !important;
  border: 1.5px solid #7A1733 !important;
}

.back-to-top-btn.is-on-light:hover {
  background: #551023 !important;
  border-color: #551023 !important;
  color: #FFFFFF !important;
  transform: translateY(-2px) scale(1.08);
}

/* Hover padrão sobre dobras escuras */
.back-to-top-btn:hover {
  background: #7A1733;
  color: #FFFFFF;
  border-color: #7A1733;
  transform: translateY(-2px) scale(1.08);
}

.back-to-top-btn svg {
  width: 17px;
  height: 17px;
  display: block;
}

/* ==========================================================================
   FOOTER INSTITUCIONAL (DESIGN REFINADO & PARCEIROS FAPERJ/IUPERJ)
   ========================================================================== */
.site-main-footer {
  background: #0E0F14;
  color: #F4F4F5;
  /* border-line removed */
  border-top: none;
  padding: 80px 2rem 40px;
  position: relative;
  z-index: 20;
}

.footer-inner-container {
  max-width: 1400px;
  margin: 0 auto;
}

.footer-top-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 4rem;
  padding-bottom: 4rem;
  /* border-line removed */
  border-bottom: none;
}

.footer-heading {
  font-family: var(--font-sans);
  font-size: 1.15rem;
  font-weight: 600;
  color: #FFFFFF;
  margin-bottom: 1.25rem;
  letter-spacing: -0.01em;
}

.footer-address {
  font-size: 0.95rem;
  color: #A1A1AA;
  line-height: 1.65;
  margin-bottom: 2rem;
}

.footer-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--brand-blue);
  font-size: 0.925rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.footer-contact-link:hover {
  color: #38BDF8;
  text-decoration: none;
}

.footer-faperj-text {
  font-size: 0.925rem;
  color: #A1A1AA;
  line-height: 1.6;
  margin-bottom: 1.75rem;
}

.footer-logos-grid {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
}

.partner-logo-img {
  height: 36px;
  width: auto;
  object-fit: contain;
  opacity: 0.85;
  transition: opacity 0.2s ease, transform 0.2s ease;
  filter: brightness(1.1);
}

.partner-logo-img:hover {
  opacity: 1;
  transform: scale(1.04);
}

.footer-middle-block {
  padding: 3rem 0;
  text-align: center;
  /* border-line removed */
  border-bottom: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.footer-brand-logo {
  height: 48px;
  width: auto;
  object-fit: contain;
}

.footer-project-title {
  font-size: 0.95rem;
  color: #A1A1AA;
  font-weight: 400;
}

.footer-bottom-bar {
  padding-top: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  color: #71717A;
}

.footer-dev-credit strong {
  color: #E4E4E7;
  font-weight: 600;
}

@media (max-width: 900px) {
  .footer-top-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .footer-bottom-bar {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }

  .back-to-top-btn {
    bottom: 2rem;
    right: 2rem;
    width: 42px;
    height: 42px;
  }
}


/* ==========================================================================
   PROJETO CEAA — SKELETON LOADING SYSTEM & SHIMMER EFFECT
   Feedback visual instantâneo e suave durante o carregamento de mídia e componentes
   ========================================================================== */

/* Shimmer Animation Universal */
@keyframes ceaaShimmer {
  0% {
    background-position: -200% 0;
  }

  100% {
    background-position: 200% 0;
  }
}

/* Skeleton Base Class */
.skeleton-loading,
.skeleton-placeholder {
  background: linear-gradient(90deg,
      #F1F5F9 25%,
      #E2E8F0 50%,
      #F1F5F9 75%) !important;
  background-size: 200% 100% !important;
  animation: ceaaShimmer 1.6s cubic-bezier(0.4, 0, 0.6, 1) infinite !important;
  position: relative;
  overflow: hidden;
}

/* Skeleton para imagens enquanto carregam */
img.skeleton-img {
  opacity: 0;
  transition: opacity 0.35s ease-in-out;
}

img.skeleton-loaded {
  opacity: 1 !important;
}

.img-skeleton-wrapper {
  position: relative;
  background: linear-gradient(90deg,
      #F1F5F9 25%,
      #E2E8F0 50%,
      #F1F5F9 75%);
  background-size: 200% 100%;
  animation: ceaaShimmer 1.6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  border-radius: inherit;
  overflow: hidden;
}

.img-skeleton-wrapper.is-loaded {
  background: transparent !important;
  animation: none !important;
}

/* Skeleton Elements Utilitários (Texto, Linha, Bloco, Avatar) */
.skeleton-text {
  height: 14px;
  border-radius: 4px;
  margin-bottom: 8px;
  background: linear-gradient(90deg, #F1F5F9 25%, #E2E8F0 50%, #F1F5F9 75%);
  background-size: 200% 100%;
  animation: ceaaShimmer 1.6s infinite;
}

.skeleton-text.short {
  width: 45%;
}

.skeleton-text.medium {
  width: 75%;
}

.skeleton-title {
  height: 28px;
  width: 60%;
  border-radius: 6px;
  margin-bottom: 16px;
  background: linear-gradient(90deg, #F1F5F9 25%, #E2E8F0 50%, #F1F5F9 75%);
  background-size: 200% 100%;
  animation: ceaaShimmer 1.6s infinite;
}

.skeleton-card {
  border-radius: 16px;
  padding: 24px;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.03);
}

.skeleton-card .skeleton-img-box {
  width: 100%;
  height: 180px;
  border-radius: 10px;
  margin-bottom: 16px;
  background: linear-gradient(90deg, #F1F5F9 25%, #E2E8F0 50%, #F1F5F9 75%);
  background-size: 200% 100%;
  animation: ceaaShimmer 1.6s infinite;
}

/* ==========================================================================
   PROJETO CEAA — RESPONSIVIDADE PROFISSIONAL (MOBILE, TABLET & 1024PX)
   Desktop (> 1200px) permanece 100% INTACTO
   ========================================================================== */

/* 1. Botão Hambúrguer Mobile (Oculto no Desktop por padrão) */
.header-mobile-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 42px;
  height: 42px;
  padding: 11px 9px;
  background: #F4F4F5;
  border: 1px solid #E4E4E7;
  border-radius: 10px;
  cursor: pointer;
  z-index: 30;
  transition: all 0.2s ease;
}

.header-mobile-toggle:hover {
  background: #E4E4E7;
}

.header-mobile-toggle .toggle-bar {
  display: block;
  width: 100%;
  height: 2px;
  background-color: #0F172A;
  border-radius: 2px;
  transition: all 0.25s ease-in-out;
}

.header-mobile-toggle.is-active .toggle-bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}

.header-mobile-toggle.is-active .toggle-bar:nth-child(2) {
  opacity: 0;
}

.header-mobile-toggle.is-active .toggle-bar:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* 2. Gaveta de Navegação Mobile (Off-Canvas) */
.mobile-nav-backdrop {
  display: none;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  background: rgba(11, 16, 33, 0.65) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  z-index: 999998 !important;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mobile-nav-backdrop.is-open {
  display: block !important;
  opacity: 1 !important;
}

.mobile-nav-drawer {
  position: fixed !important;
  top: 0 !important;
  right: -100% !important;
  bottom: 0 !important;
  width: min(88vw, 380px) !important;
  height: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
  background: #FFFFFF !important;
  z-index: 999999 !important;
  display: flex !important;
  flex-direction: column !important;
  box-shadow: -10px 0 35px rgba(0, 0, 0, 0.25) !important;
  transition: right 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

.mobile-nav-drawer.is-open {
  right: 0 !important;
}

.mobile-nav-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  /* border-line removed */
  border-bottom: none;
}

.mobile-nav-logo img {
  height: 38px;
  width: auto;
  object-fit: contain;
}

.mobile-nav-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  background: #F8FAFC;
  color: #475569;
  cursor: pointer;
  transition: all 0.2s ease;
}

.mobile-nav-close:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.mobile-nav-body {
  flex: 1;
  padding: 1rem 1.25rem;
  overflow-y: auto;
}

.mobile-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.mobile-menu-item {
  border-radius: 10px;
  overflow: hidden;
}

.mobile-accordion-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  background: transparent;
  border: none;
  border-radius: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: #1E293B;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
}

.mobile-accordion-btn:hover {
  background: #F8FAFC;
  color: #7A1733;
}

.mobile-accordion-btn.is-expanded {
  background: #FDF2F4;
  color: #7A1733;
}

.mobile-acc-arrow {
  transition: transform 0.25s ease;
  color: #94A3B8;
}

.mobile-accordion-btn.is-expanded .mobile-acc-arrow {
  transform: rotate(180deg);
  color: #7A1733;
}

.mobile-submenu {
  list-style: none;
  padding: 0.4rem 0 0.5rem 1rem;
  margin: 0;
  display: none;
  flex-direction: column;
  gap: 0.25rem;
  border-left: 2px solid #E2E8F0;
  margin-left: 1rem;
  margin-top: 0.25rem;
  margin-bottom: 0.5rem;
}

.mobile-submenu.is-open {
  display: flex;
}

.mobile-submenu li a {
  display: block;
  padding: 0.55rem 0.75rem;
  font-size: 0.92rem;
  font-weight: 500;
  color: #475569;
  text-decoration: none;
  border-radius: 6px;
  transition: all 0.2s ease;
}

.mobile-submenu li a:hover {
  color: #7A1733;
  background: #FDF2F4;
}

.mobile-direct-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: #1E293B;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.mobile-direct-link:hover {
  background: #FDF2F4;
  color: #7A1733;
}

.mobile-nav-footer {
  padding: 1.25rem 1.5rem;
  /* border-line removed */
  border-top: none;
  background: #F8FAFC;
}

.mobile-nav-credits {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #64748B;
  margin: 0 0 0.35rem 0;
}

.mobile-nav-email {
  font-size: 0.875rem;
  font-weight: 700;
  color: #7A1733;
  text-decoration: none;
}

/* ==========================================================================
   BREAKPOINTS ESPECÍFICOS: 1200PX, TABLET (1024PX / 768PX) & MOBILE (375PX-640PX)
   ========================================================================== */

/* 1. Breakpoint <= 1200px (Ativa Menu Mobile e Ajusta Header) */
@media (max-width: 1200px) {
  .nav-menu-wrap {
    display: none !important;
  }

  .header-mobile-toggle {
    display: flex !important;
  }

  .header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

  .search-btn-label {
    display: none;
  }

  .header-kbd {
    display: none;
  }

  .header-search-btn {
    width: 42px;
    height: 42px;
    padding: 0;
    justify-content: center;
    border-radius: 10px;
    flex-shrink: 0;
    box-sizing: border-box;
  }

  .header-search-btn svg {
    width: 18px;
    height: 18px;
  }

  .main-logo-img {
    height: 52px;
    max-width: 240px;
  }
}

/* 2. Breakpoint Tablets e Telas Médias (<= 1024px) */
@media (max-width: 1024px) {
  .site-header {
    height: 80px;
  }

  .site-header.scrolled {
    height: 72px;
  }

  .header-container {
    padding: 0 1.25rem;
  }

  .main-logo-img {
    height: 46px;
    max-width: 210px;
  }

  /* Ajuste no Hero Slider */
  .slide-content-wrap {
    padding: 0 1.5rem;
    max-width: 90%;
  }

  .slide-title {
    font-size: clamp(2rem, 4vw, 2.85rem) !important;
    line-height: 1.2 !important;
  }

  .slide-desc {
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }
}

/* 3. Breakpoint Mobile Geral (<= 768px) */
@media (max-width: 768px) {
  .site-header {
    height: 74px;
  }

  .site-header.scrolled {
    height: 68px;
  }

  .header-container {
    padding: 0 1rem;
  }

  .main-logo-img {
    height: 40px;
    max-width: 175px;
  }

  .header-mobile-toggle {
    width: 38px;
    height: 38px;
    padding: 10px 8px;
    border-radius: 10px;
    box-sizing: border-box;
  }

  .header-search-btn {
    width: 38px;
    height: 38px;
    padding: 0;
    justify-content: center;
    border-radius: 10px;
    flex-shrink: 0;
    box-sizing: border-box;
  }

  .header-search-btn svg {
    width: 16px;
    height: 16px;
  }

  .slide-content-wrap {
    padding: 0 1.25rem;
    max-width: 100%;
    bottom: 3.5rem;
  }

  .slide-title {
    font-size: 1.75rem !important;
    line-height: 1.22 !important;
  }

  .slide-desc {
    font-size: 0.925rem !important;
    line-height: 1.55 !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .slide-cta-btn {
    padding: 0.75rem 1.35rem !important;
    font-size: 0.9rem !important;
  }

  /* Botão Back to Top no Mobile */
  .back-to-top-btn {
    bottom: 1.25rem !important;
    right: 1.25rem !important;
    width: 40px !important;
    height: 40px !important;
  }
}

/* 4. Breakpoint Mobile Pequeno (<= 480px / 375px) */
@media (max-width: 480px) {
  .main-logo-img {
    height: 34px;
    max-width: 155px;
  }

  .header-actions {
    gap: 0.45rem;
  }

  .header-search-container {
    left: 1rem !important;
    right: 1rem !important;
    width: calc(100% - 2rem) !important;
  }

  .search-input-field {
    font-size: 0.85rem !important;
    padding: 0.65rem 0.75rem !important;
  }

  .slide-title {
    font-size: 1.5rem !important;
  }
}


/* Previne quebra de linha em tags e badges de anos e períodos cronológicos */
.historia-step-pill,
.dip-year-badge,
.rev-badge-year,
.producao-year-badge,
.mem-doc-badge-year,
.livro-year-badge,
.livro-badge-tag,
.mac-date-badge,
.ea-doc-year-badge,
.ea-timeline-year-tag,
.ea-year-badge,
.eve-year-badge,
.dot-pill-year,
.projeto-tag-pill,
[class*="year-badge"],
[class*="step-pill"],
[class*="date-badge"] {
  white-space: nowrap !important;
  flex-shrink: 0;
}


/* ==========================================================================
   DROPDOWN RESPONSIVO DE FILTROS PARA CELULAR (<= 768px)
   Converte barras longas de pílulas/tags em um dropdown limpo e elegante
   ========================================================================== */

.mobile-filter-select-wrap {
  display: none;
  position: relative;
  width: 100%;
  margin-bottom: 1.25rem;
}

.mobile-filter-select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #FFFFFF;
  border: 1px solid #CBD5E1;
  border-radius: 10px;
  padding: 0.8rem 2.5rem 0.8rem 1rem;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #0F172A;
  outline: none;
  cursor: pointer;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.mobile-filter-select:focus {
  border-color: #2581CC;
  box-shadow: 0 0 0 3px rgba(37, 129, 204, 0.15) !important;
}

.mobile-filter-select-arrow {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #64748B;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .mobile-filter-select-wrap {
    display: block;
  }

  /* Oculta as listas horizontais de pílulas que foram convertidas em dropdown */
  .has-mobile-dropdown {
    display: none !important;
  }
}



@media (min-width: 641px) and (max-width: 1024px) {

  /* Toolbars que contêm dropdown gerado + busca / ações lado a lado (inline no tablet) */
  .eve-outros-toolbar,
  .rev-toolbar,
  .tes-filter-toolbar,
  .tes-toolbar,
  .cen-toolbar,
  .dot-toolbar,
  .mac-toolbar,
  .producao-toolbar,
  .foto-toolbar,
  .historia-equipe-controls,
  .mem-toolbar,
  .ceab-toolbar,
  .movimento-catalog-toolbar {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1.25rem !important;
    flex-wrap: nowrap !important;
  }

  .eve-outros-toolbar .mobile-filter-select-wrap,
  .rev-toolbar .mobile-filter-select-wrap,
  .tes-filter-toolbar .mobile-filter-select-wrap,
  .tes-toolbar .mobile-filter-select-wrap,
  .cen-toolbar .mobile-filter-select-wrap,
  .dot-toolbar .mobile-filter-select-wrap,
  .mac-toolbar .mobile-filter-select-wrap,
  .producao-toolbar .mobile-filter-select-wrap,
  .foto-toolbar .mobile-filter-select-wrap,
  .historia-equipe-controls .mobile-filter-select-wrap,
  .mem-toolbar .mobile-filter-select-wrap,
  .ceab-toolbar .mobile-filter-select-wrap,
  .movimento-catalog-toolbar .mobile-filter-select-wrap {
    display: block !important;
    margin-bottom: 0 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
  }

  .eve-outros-toolbar .has-mobile-dropdown,
  .rev-toolbar .has-mobile-dropdown,
  .tes-filter-toolbar .has-mobile-dropdown,
  .tes-toolbar .has-mobile-dropdown,
  .cen-toolbar .has-mobile-dropdown,
  .dot-toolbar .has-mobile-dropdown,
  .mac-toolbar .has-mobile-dropdown,
  .producao-toolbar .has-mobile-dropdown,
  .foto-toolbar .has-mobile-dropdown,
  .historia-equipe-controls .has-mobile-dropdown,
  .mem-toolbar .has-mobile-dropdown,
  .ceab-toolbar .has-mobile-dropdown,
  .movimento-catalog-toolbar .has-mobile-dropdown {
    display: none !important;
  }

  .eve-outros-search-wrap,
  .rev-search-wrap,
  .tes-search-wrap,
  .cen-search-wrap,
  .dot-search-wrap,
  .mac-search-wrap,
  .producao-search-wrap,
  .foto-search-wrap,
  .historia-equipe-search-wrap,
  .mem-search-wrap,
  .ceab-search-wrap,
  .movimento-search-wrap {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 240px !important;
    max-width: 380px !important;
    margin: 0 !important;
  }

  .mobile-filter-select {
    height: 44px !important;
    padding: 0.65rem 2.5rem 0.65rem 1rem !important;
    font-size: 0.875rem !important;
    box-sizing: border-box !important;
  }

  .eve-outros-search-input,
  .rev-search-input,
  .tes-search-input,
  .cen-search-input,
  .dot-search-input,
  .mac-search-input,
  .producao-search-input,
  .foto-search-input,
  .historia-equipe-search-input,
  .mem-search-input,
  .ceab-search-input,
  .clip-search-input,
  .movimento-search-input {
    height: 44px !important;
    box-sizing: border-box !important;
  }

  /* No tablet: cards de eventos com foto reduzida e na mesma linha que o texto */
  .eve-event-card.has-media .eve-card-body {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 1.75rem !important;
  }

  .eve-event-card.has-media .eve-card-text-col {
    flex: 1 1 0% !important;
    min-width: 0 !important;
  }

  .eve-event-card.has-media .eve-card-media-wrap {
    flex-shrink: 0 !important;
    width: 210px !important;
    max-width: 210px !important;
    margin: 0 !important;
  }

  .eve-event-card.has-media .eve-media-thumbnail {
    width: 100% !important;
    max-width: 210px !important;
  }

  .eve-event-card.has-media .eve-media-thumbnail img {
    max-height: 290px !important;
    object-fit: contain !important;
    background: #FAF8F5 !important;
  }

  .eve-event-card.has-media .eve-media-caption {
    font-size: 0.72rem !important;
    padding: 0.45rem 0.5rem !important;
  }

  /* No tablet: grade de documentos e dossiês de Revistas em 2 colunas */
  .rev-docs-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
  }

  .rev-special-doc-card {
    padding: 1rem 1.15rem !important;
    gap: 0.85rem !important;
  }

  .rev-doc-icon {
    width: 38px !important;
    height: 38px !important;
  }

  .rev-doc-info {
    min-width: 0 !important;
  }

  .rev-doc-title {
    font-size: 0.8125rem !important;
    line-height: 1.35 !important;
  }

  .rev-doc-action {
    font-size: 0.72rem !important;
  }

  /* Não esticar botões no tablet: largura ajustada ao conteúdo (fit-content) */
  .dip-btn-integra,
  .tes-btn-caderno,
  .dot-feature-btn,
  .dot-btn-banner,
  .mac-feature-btn,
  .ceab-btn-primary,
  .fab-btn-primary,
  .eve-btn-download,
  .eve-btn-banner,
  .pf-btn-doc,
  .livro-btn-primary,
  .livro-btn-secondary,
  .ea-btn-archive,
  .concurso-btn,
  .e404-btn,
  .search-page-btn,
  [class*="-btn-integra"],
  [class*="-btn-caderno"],
  [class*="-feature-btn"],
  [class*="-btn-banner"] {
    width: auto !important;
    width: fit-content !important;
    max-width: 100% !important;
    display: inline-flex !important;
    align-self: flex-start !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }

  /* No tablet: galerias de fotos em 2 colunas e 1 linha */
  .dip-gallery-grid,
  .tes-gallery-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.25rem !important;
  }

  .dip-gallery-img-wrap,
  .tes-gallery-img {
    height: 220px !important;
  }

  /* No tablet: grid de teses e dissertações em 2 colunas */
  .tes-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.25rem !important;
  }

  /* No tablet: banner Hasenbalg com título em uma linha e botão não esticado */
  .dot-banner-title {
    font-size: clamp(0.78rem, 1.4vw, 0.875rem) !important;
    white-space: nowrap !important;
    line-height: 1.35 !important;
  }

  /* No tablet: botões de docks de navegação rápida em linha única sem quebra de texto */
  .ea-dock-buttons,
  .pesquisadores-dock-buttons,
  .clip-dock-buttons,
  .memoria-dock-buttons,
  .pf-dock-buttons,
  .dot-dock-buttons,
  .dip-dock-buttons,
  .rev-dock-buttons,
  .mem-dock-buttons,
  .tes-dock-buttons,
  .cen-dock-buttons,
  .mac-dock-buttons,
  .eve-dock-buttons,
  [class*="-dock-buttons"] {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.5rem !important;
  }

  .ea-dock-btn,
  .pesquisadores-dock-btn,
  .clip-dock-btn,
  .memoria-dock-btn,
  .pf-dock-btn,
  .dot-dock-btn,
  .dip-dock-btn,
  .rev-dock-btn,
  .mem-dock-btn,
  .tes-dock-btn,
  .cen-dock-btn,
  .mac-dock-btn,
  .eve-dock-btn,
  [class*="-dock-btn"] {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    font-size: 0.8125rem !important;
    padding: 0.45rem 1rem !important;
  }

  /* No tablet: descer a imagem do CEAB para não cortar sob o header sem aumentar a dobra */
  .ceab-hero-inner {
    padding-top: 5.5rem !important;
    padding-bottom: 0.85rem !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }

  .ceab-hero-img {
    max-width: 290px !important;
    max-height: 185px !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  /* No tablet: sidebar do CEAB (foto histórica + documentos fundacionais) em 2 colunas e 1 linha */
  .ceab-intro-side-col {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  .ceab-photo-card {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  .ceab-photo-wrap {
    padding: 1rem !important;
    flex: 1 !important;
  }

  .ceab-photo-img {
    max-height: 200px !important;
    object-fit: contain !important;
  }

  .ceab-photo-caption {
    padding: 1rem 1.25rem !important;
    font-size: 0.8125rem !important;
    line-height: 1.45 !important;
  }

  .ceab-side-card {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 1.35rem 1.5rem !important;
    box-sizing: border-box !important;
  }
}


/* ==========================================================================
   ENCAIXE PERFEITO (ZERO GAP) ENTRE HEADER FIXO E DOCKS / FILTROS STICKY
   Em Desktop, Tablet e Mobile, ajusta position: sticky e top para
   colar diretamente abaixo do cabeçalho oficial sem deixar vão de espaçamento
   ========================================================================== */

/* Garantia estrutural: ancestral de sticky deve ter overflow visível */
main,
#main-content,
.memoria-page-wrapper,
.pesquisa-formacao-wrapper,
.cen-main,
.clippings-wrapper,
.dot-main,
.dip-wrapper,
.mac-main,
.ea-wrapper,
.eve-wrapper,
.mem-main,
.pesquisadores-page-wrapper,
.rev-main,
.tes-main {
  overflow: visible !important;
  overflow-x: clip !important;
}

/* Regra Geral / Desktop (> 1024px) */
.ea-nav-dock-wrap,
.pesquisadores-nav-dock-wrap,
.clip-nav-dock-wrap,
.memoria-nav-dock-wrap,
.pf-nav-dock-wrap,
.dot-nav-dock-wrap,
.dip-nav-dock-wrap,
.rev-nav-dock-wrap,
.mem-nav-dock-wrap,
.tes-nav-dock-wrap,
.cen-nav-dock-wrap,
.mac-nav-dock-wrap,
.eve-nav-dock-wrap,
.ceab-dock,
.fab-dock-nav,
[class*="-nav-dock-wrap"],
[class*="-dock"] {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 96px !important;
  z-index: 990 !important;
  margin-top: 0 !important;
  transition: top 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease !important;
}

.site-header.scrolled ~ #main-content [class*="-nav-dock-wrap"],
#app-header:has(.site-header.scrolled) ~ #main-content [class*="-nav-dock-wrap"],
body:has(.site-header.scrolled) [class*="-nav-dock-wrap"],
body.scrolled-header [class*="-nav-dock-wrap"],
.site-header.scrolled ~ #main-content .ceab-dock,
#app-header:has(.site-header.scrolled) ~ #main-content .ceab-dock,
body:has(.site-header.scrolled) .ceab-dock,
body.scrolled-header .ceab-dock,
.site-header.scrolled ~ #main-content .fab-dock-nav,
#app-header:has(.site-header.scrolled) ~ #main-content .fab-dock-nav,
body:has(.site-header.scrolled) .fab-dock-nav,
body.scrolled-header .fab-dock-nav,
.site-header.scrolled ~ #main-content [class*="-dock"],
#app-header:has(.site-header.scrolled) ~ #main-content [class*="-dock"],
body:has(.site-header.scrolled) [class*="-dock"],
body.scrolled-header [class*="-dock"] {
  top: 84px !important;
}

@media (max-width: 1024px) {

  .ea-nav-dock-wrap,
  .pesquisadores-nav-dock-wrap,
  .clip-nav-dock-wrap,
  .memoria-nav-dock-wrap,
  .pf-nav-dock-wrap,
  .dot-nav-dock-wrap,
  .dip-nav-dock-wrap,
  .rev-nav-dock-wrap,
  .mem-nav-dock-wrap,
  .tes-nav-dock-wrap,
  .cen-nav-dock-wrap,
  .mac-nav-dock-wrap,
  .eve-nav-dock-wrap,
  .ceab-dock,
  .fab-dock-nav,
  [class*="-nav-dock-wrap"],
  [class*="-dock"] {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 80px !important;
    z-index: 990 !important;
    margin-top: 0 !important;
  }

  .site-header.scrolled~#main-content [class*="-nav-dock-wrap"],
  #app-header:has(.site-header.scrolled)~#main-content [class*="-nav-dock-wrap"],
  body:has(.site-header.scrolled) [class*="-nav-dock-wrap"],
  body.scrolled-header [class*="-nav-dock-wrap"],
  .site-header.scrolled~#main-content .ceab-dock,
  #app-header:has(.site-header.scrolled)~#main-content .ceab-dock,
  body:has(.site-header.scrolled) .ceab-dock,
  body.scrolled-header .ceab-dock,
  .site-header.scrolled~#main-content .fab-dock-nav,
  #app-header:has(.site-header.scrolled)~#main-content .fab-dock-nav,
  body:has(.site-header.scrolled) .fab-dock-nav,
  body.scrolled-header .fab-dock-nav,
  .site-header.scrolled~#main-content [class*="-dock"],
  #app-header:has(.site-header.scrolled)~#main-content [class*="-dock"],
  body:has(.site-header.scrolled) [class*="-dock"],
  body.scrolled-header [class*="-dock"] {
    top: 72px !important;
  }

  .ea-nav-dock,
  .pesquisadores-nav-dock,
  .clip-nav-dock,
  .memoria-nav-dock,
  .pf-nav-dock,
  .dot-nav-dock,
  .dip-nav-dock,
  .rev-nav-dock,
  .mem-nav-dock,
  .tes-nav-dock,
  .cen-nav-dock,
  .mac-nav-dock,
  .eve-nav-dock,
  .ceab-dock-container,
  .fab-dock-container,
  [class*="-nav-dock"] {
    justify-content: flex-start !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    scrollbar-width: none !important;
  }

  .ea-dock-buttons,
  .pesquisadores-dock-buttons,
  .clip-dock-buttons,
  .memoria-dock-buttons,
  .pf-dock-buttons,
  .dot-dock-buttons,
  .dip-dock-buttons,
  .rev-dock-buttons,
  .mem-dock-buttons,
  .tes-dock-buttons,
  .cen-dock-buttons,
  .mac-dock-buttons,
  .eve-dock-buttons,
  [class*="-dock-buttons"] {
    justify-content: flex-start !important;
    flex-shrink: 0 !important;
  }
}

@media (max-width: 768px) {

  .ea-nav-dock-wrap,
  .pesquisadores-nav-dock-wrap,
  .clip-nav-dock-wrap,
  .memoria-nav-dock-wrap,
  .pf-nav-dock-wrap,
  .dot-nav-dock-wrap,
  .dip-nav-dock-wrap,
  .rev-nav-dock-wrap,
  .mem-nav-dock-wrap,
  .tes-nav-dock-wrap,
  .cen-nav-dock-wrap,
  .mac-nav-dock-wrap,
  .eve-nav-dock-wrap,
  .ceab-dock,
  .fab-dock-nav,
  [class*="-nav-dock-wrap"],
  [class*="-dock"] {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 74px !important;
    z-index: 990 !important;
    margin-top: 0 !important;
  }

  .site-header.scrolled~#main-content [class*="-nav-dock-wrap"],
  #app-header:has(.site-header.scrolled)~#main-content [class*="-nav-dock-wrap"],
  body:has(.site-header.scrolled) [class*="-nav-dock-wrap"],
  body.scrolled-header [class*="-nav-dock-wrap"],
  .site-header.scrolled~#main-content .ceab-dock,
  #app-header:has(.site-header.scrolled)~#main-content .ceab-dock,
  body:has(.site-header.scrolled) .ceab-dock,
  body.scrolled-header .ceab-dock,
  .site-header.scrolled~#main-content .fab-dock-nav,
  #app-header:has(.site-header.scrolled)~#main-content .fab-dock-nav,
  body:has(.site-header.scrolled) .fab-dock-nav,
  body.scrolled-header .fab-dock-nav,
  .site-header.scrolled~#main-content [class*="-dock"],
  #app-header:has(.site-header.scrolled)~#main-content [class*="-dock"],
  body:has(.site-header.scrolled) [class*="-dock"],
  body.scrolled-header [class*="-dock"] {
    top: 68px !important;
  }

  .ea-nav-dock,
  .pesquisadores-nav-dock,
  .clip-nav-dock,
  .memoria-nav-dock,
  .pf-nav-dock,
  .dot-nav-dock,
  .dip-nav-dock,
  .rev-nav-dock,
  .mem-nav-dock,
  .tes-nav-dock,
  .cen-nav-dock,
  .mac-nav-dock,
  .eve-nav-dock,
  .ceab-dock-container,
  .fab-dock-container,
  [class*="-nav-dock"] {
    justify-content: flex-start !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
  }

  .ea-dock-buttons,
  .pesquisadores-dock-buttons,
  .clip-dock-buttons,
  .memoria-dock-buttons,
  .pf-dock-buttons,
  .dot-dock-buttons,
  .dip-dock-buttons,
  .rev-dock-buttons,
  .mem-dock-buttons,
  .tes-dock-buttons,
  .cen-dock-buttons,
  .mac-dock-buttons,
  .eve-dock-buttons,
  [class*="-dock-buttons"] {
    justify-content: flex-start !important;
    flex-shrink: 0 !important;
  }
}


/* ==========================================================================
   CARDS DE DESTAQUE LATERAIS STICKY (ROLANDO JUNTO NO SCROLL DA DOBRA)
   Permite que o card lateral role fixado enquanto o usuário lê o texto longo
   da coluna principal, delimitado estritamente à extensão da primeira dobra.
   ========================================================================== */

@media (min-width: 1025px) {
  .rev-intro-grid,
  .tes-intro-grid,
  .dot-intro-grid,
  .mac-intro-grid,
  .mem-intro-grid,
  .cen-intro-grid,
  .ceab-intro-grid,
  .fab-intro-grid,
  .forum-intro-layout {
    align-items: stretch !important;
  }

  .rev-intro-side-col,
  .tes-intro-side-col,
  .dot-intro-side-col,
  .mac-intro-side-col,
  .mem-intro-side-col,
  .cen-intro-side-col {
    position: relative !important;
    height: 100% !important;
  }

  .rev-mission-card,
  .tes-feature-card,
  .dot-feature-card,
  .mac-feature-card,
  .mem-feature-card,
  .cen-feature-card,
  .fab-side-column,
  .ceab-intro-side-col,
  .ceab-side-card,
  .forum-metrics-stack {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 145px !important;
    z-index: 20 !important;
    align-self: start !important;
    transition: top 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
  }

  /* Quando o cabeçalho oficial encolhe ao rolar (de 96px para 84px) */
  body.scrolled-header .rev-mission-card,
  body.scrolled-header .tes-feature-card,
  body.scrolled-header .dot-feature-card,
  body.scrolled-header .mac-feature-card,
  body.scrolled-header .mem-feature-card,
  body.scrolled-header .cen-feature-card,
  body.scrolled-header .fab-side-column,
  body.scrolled-header .ceab-intro-side-col,
  body.scrolled-header .ceab-side-card,
  body.scrolled-header .forum-metrics-stack,
  body:has(.site-header.scrolled) .rev-mission-card,
  body:has(.site-header.scrolled) .tes-feature-card,
  body:has(.site-header.scrolled) .dot-feature-card,
  body:has(.site-header.scrolled) .mac-feature-card,
  body:has(.site-header.scrolled) .mem-feature-card,
  body:has(.site-header.scrolled) .cen-feature-card,
  body:has(.site-header.scrolled) .fab-side-column,
  body:has(.site-header.scrolled) .ceab-intro-side-col,
  body:has(.site-header.scrolled) .ceab-side-card,
  body:has(.site-header.scrolled) .forum-metrics-stack,
  #app-header:has(.site-header.scrolled) ~ #main-content .rev-mission-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .tes-feature-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .dot-feature-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .mac-feature-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .mem-feature-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .cen-feature-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .fab-side-column,
  #app-header:has(.site-header.scrolled) ~ #main-content .ceab-intro-side-col,
  #app-header:has(.site-header.scrolled) ~ #main-content .ceab-side-card,
  #app-header:has(.site-header.scrolled) ~ #main-content .forum-metrics-stack {
    top: 133px !important;
  }
}

/* Links In-text Globais de Parágrafos & Artigos */
.dot-inline-doc-link,
.ceab-inline-link,
.cen-inline-link {
  color: #7A1733;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.dot-inline-doc-link:hover,
.ceab-inline-link:hover,
.cen-inline-link:hover {
  color: #551023;
  text-decoration: underline;
}

/* Previne quebra de linha em botões e links de ação no responsivo */
.btn,
.btn-primary,
.btn-secondary,
.btn-outline,
.tes-btn-caderno,
.pf-btn-doc,
.dip-btn-integra,
.movimento-doc-action-text,
.livro-btn-primary,
.livro-btn-secondary,
.ea-btn-archive,
.eve-btn-download,
.concurso-btn,
.ceab-btn,
[class*="-btn-action"],
[class*="-btn-download"],
[class*="-btn-doc"] {
  white-space: nowrap !important;
}


/* ==========================================================================
   PADRONIZAÇÃO RESPONSIVA DE TÍTULOS DE SEÇÕES / DOBRAS NO TABLET E CELULAR (<= 1024px)
   Títulos de páginas e seções que excedem 1.5rem são padronizados em 1.5rem no tablet
   ========================================================================== */

@media (max-width: 1024px) {
  /* Títulos maiores que 1.5rem padronizados para 1.5rem no tablet e celular */
  h1.page-hero-title,
  .page-hero-title,
  h1.slide-title,
  .slide-title,
  h1.search-hero-title,
  .search-hero-title,
  h2,
  .section-title,
  .dobra-title,
  .dobra2-title,
  .dobra3-title,
  .dobra4-title,
  .historia-section-heading,
  .movimento-eixos-title,
  .movimento-gallery-title,
  .foto-intro-title,
  .producao-title,
  .projeto-lead-title,
  .projeto-section-title,
  .projeto-neaa-title,
  .ea-section-title,
  .ea-asia-title,
  .ea-group-title,
  .eve-section-title,
  .rev-section-title,
  .tes-section-title,
  .livro-section-title,
  .ceab-section-title,
  .ceab-title,
  .ceab-title-main,
  .fab-section-title,
  .cen-section-title,
  .mac-section-title,
  .mem-section-title,
  .pesquisadores-section-title,
  .clip-section-title,
  .dot-section-title,
  .dip-section-title,
  .form-header-title,
  [class*="-section-title"],
  [class*="-section-heading"] {
    font-size: 1.5rem !important;
    line-height: 1.3 !important;
  }

  /* ==========================================================================
     PADRONIZAÇÃO RESPONSIVA DE FONTES DE TEXTO NO TABLET (<= 1024px)
     Textos/parágrafos/leads maiores que 0.95rem são padronizados para 0.95rem.
     Textos menores são estritamente mantidos como estão.
     ========================================================================== */
  p,
  .ceab-lead,
  .ceab-quote-text,
  .ceab-card-chapter p,
  .forum-editorial-box p,
  .ceab-editorial-prose p,
  .ceab-hasenbalg-content p,
  .cen-card-text p,
  .clip-section-desc,
  .clip-intro-card-lead p,
  .clip-intro-card-side p,
  .clip-overview-card p,
  .clip-acervo-body p,
  .clip-desc-box p,
  .dot-prose-body,
  .dot-lead-para,
  .dot-card-text p,
  .dot-item-proj,
  .info-card-text,
  .address-details,
  .dip-intro-lead-box p,
  .dip-intro-col-left p,
  .dip-convenios-lead p,
  .dip-modal-body,
  .slide-desc,
  .dobra4-quote-text,
  .memoria-person-lead,
  .memoria-narrative-card p,
  .memoria-narrative-card.is-featured p,
  .memoria-interview-box p,
  .ea-intro-card-lead p,
  .ea-intro-card-side p,
  .ea-editorial-card p,
  .ea-revista-card p,
  .ea-timeline-card p,
  .ea-bento p,
  .ea-bento-lead p,
  .ea-step-card p,
  .eve-intro-content p,
  .eve-card-body,
  .fab-lead,
  .fab-card-chapter p,
  .footer-modal-lead,
  .historia-lead-quote,
  .historia-card-body-text,
  .historia-section-intro-text,
  .livro-intro-text,
  .livro-desc-box p,
  .livro-modal-body p,
  .mac-prose-body,
  .mac-lead-para,
  .mac-card-text p,
  .mac-fundo-text,
  .mem-card-text p,
  .mem-notice-content p,
  .movimento-lead-text,
  .movimento-manifesto-quote,
  .movimento-quote-text,
  .movimento-memoria-intro,
  .projeto-lead-text,
  .projeto-body-text,
  .projeto-quote-text,
  .projeto-section-description,
  .projeto-systematize-text,
  .projeto-neaa-lead,
  .projeto-memorial-text,
  .projeto-fomento-card p,
  .producao-lead,
  .rev-prose-body,
  .rev-phase-body,
  .rev-lead-para,
  .tes-card-text,
  .tes-lead-para {
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
  }
}

@media (max-width: 768px) {

  /* Redução equilibrada de subtítulos, leads e parágrafos introdutórios gerais */
  .section-subtitle,
  .dobra-subtitle,
  .dobra-description,
  .section-intro-text,
  .historia-section-intro-text,
  .movimento-memoria-intro,
  .foto-intro-desc,
  .producao-lead,
  .projeto-section-description,
  .projeto-memorial-text,
  .projeto-neaa-lead,
  .ea-section-subtitle,
  .ea-asia-intro,
  .eve-section-subtitle,
  .rev-section-subtitle,
  .rev-lead-para,
  .tes-section-subtitle,
  .livro-section-subtitle,
  .ceab-section-subtitle,
  .ceab-lead,
  .fab-section-subtitle,
  .cen-section-subtitle,
  .mac-section-subtitle,
  .mem-section-subtitle,
  .pesquisadores-section-subtitle,
  .clip-section-subtitle,
  .dot-section-subtitle,
  .dip-section-subtitle,
  .memoria-person-lead,
  [class*="-section-subtitle"],
  [class*="-section-desc"],
  [class*="-intro-desc"],
  [class*="-intro-text"] {
    font-size: 0.9375rem !important;
    line-height: 1.6 !important;
  }
}

/* ==========================================================================
   INCLUSÃO DO ESTILO GLOBAL DO BANNER DE COOKIES (LGPD)
   ========================================================================== */
/* cookie-banner.css linkado diretamente via HTML */

/* Remoção universal de bordas em linha de todas as dobras em todas as versões */
section,
[class*="-section"],
.dobra1-section,
.dobra2-legacy-section,
.dobra3-revistas-section,
.dobra4-movimento-section,
.site-header,
.site-main-footer {
  border-top: none !important;
  border-bottom: none !important;
}

/* Sincronização Global do Design do Lightbox (Arquivo Fotográfico) com Zoom, Pan e Touch */
.foto-lightbox-backdrop,
.movimento-lightbox,
.dip-lightbox,
.tes-lightbox,
.ceab-lightbox,
.fab-lightbox,
.eve-lightbox,
.rev-lightbox {
  position: fixed !important;
  inset: 0 !important;
  background-color: rgba(15, 23, 42, 0.94) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  z-index: 99999 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1rem !important;
  box-sizing: border-box !important;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease !important;
}

.foto-lightbox-backdrop.is-open,
.movimento-lightbox.is-open,
.dip-lightbox.is-open,
.tes-lightbox.is-open,
.ceab-lightbox.is-open,
.fab-lightbox.is-open,
.eve-lightbox.is-open,
.rev-lightbox.is-open {
  display: flex !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

.foto-lightbox-dialog,
.eve-lightbox-content,
.rev-lightbox-content {
  position: relative !important;
  max-width: 1080px !important;
  width: 100% !important;
  max-height: 92vh !important;
  display: flex !important;
  flex-direction: column !important;
  background-color: #0F172A !important;
  border: 1px solid #334155 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

/* Barra superior com ferramentas de Zoom e Fechar */
.ceaa-lightbox-toolbar,
.eve-lightbox-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.75rem !important;
  padding: 0.65rem 1rem !important;
  background-color: #0F172A !important;
  z-index: 20 !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.ceaa-zoom-controls,
.eve-zoom-controls {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.35rem !important;
  background: rgba(30, 41, 59, 0.9) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  padding: 0.3rem 0.5rem !important;
  border-radius: 9999px !important;
}

.ceaa-zoom-btn,
.eve-zoom-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.35rem !important;
  height: 32px !important;
  min-width: 32px !important;
  padding: 0 0.55rem !important;
  border-radius: 9999px !important;
  background: transparent !important;
  border: none !important;
  color: #F8FAFC !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.ceaa-zoom-btn:hover,
.eve-zoom-btn:hover {
  background: rgba(255, 255, 255, 0.14) !important;
  color: #FFFFFF !important;
}

.ceaa-zoom-btn:active,
.eve-zoom-btn:active {
  background: rgba(255, 255, 255, 0.22) !important;
}

.ceaa-zoom-level,
.eve-zoom-level {
  min-width: 48px !important;
  text-align: center !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  color: #F8FAFC !important;
  font-variant-numeric: tabular-nums !important;
  user-select: none !important;
}

.foto-lightbox-close-btn,
.movimento-lightbox-close,
.dip-lightbox-close,
.tes-lightbox-close,
.ceab-lightbox-close,
.fab-lightbox-close,
.eve-lightbox-close,
.rev-lightbox-close {
  position: absolute !important;
  top: 0.75rem !important;
  right: 0.75rem !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background-color: rgba(15, 23, 42, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #FFFFFF !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 25 !important;
  transition: all 0.2s ease !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
}

.ceaa-lightbox-toolbar .foto-lightbox-close-btn,
.eve-lightbox-toolbar .foto-lightbox-close-btn,
.eve-lightbox-toolbar .eve-lightbox-close {
  position: static !important;
  top: auto !important;
  right: auto !important;
}

.foto-lightbox-close-btn:hover,
.movimento-lightbox-close:hover,
.dip-lightbox-close:hover,
.tes-lightbox-close:hover,
.ceab-lightbox-close:hover,
.fab-lightbox-close:hover,
.eve-lightbox-close:hover,
.rev-lightbox-close:hover {
  background-color: #950221 !important;
  border-color: #950221 !important;
  color: #FFFFFF !important;
}

.foto-lightbox-img-wrap {
  position: relative !important;
  width: 100% !important;
  flex: 1 1 auto !important;
  min-height: 280px !important;
  max-height: 68vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background-color: #000000 !important;
  overflow: hidden !important;
  touch-action: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  cursor: zoom-in !important;
}

.foto-lightbox-img-wrap.is-zoomed {
  cursor: grab !important;
}

.foto-lightbox-img-wrap.is-dragging {
  cursor: grabbing !important;
}

.foto-lightbox-img,
.movimento-lightbox-img,
.dip-lightbox-img,
.tes-lightbox-img,
.ceab-lightbox-img,
.fab-lightbox-img,
.eve-lightbox-img,
.rev-lightbox-img {
  max-width: 100% !important;
  max-height: 68vh !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  transform-origin: center center !important;
  will-change: transform !important;
  transition: transform 0.14s ease-out !important;
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-drag: none !important;
}

.foto-lightbox-img-wrap.is-dragging .foto-lightbox-img,
.foto-lightbox-img-wrap.is-dragging img {
  transition: none !important;
}

.foto-lightbox-footer {
  padding: 1rem 1.5rem !important;
  background-color: #0F172A !important;
  border-top: none !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1.25rem !important;
  flex-shrink: 0 !important;
}

.foto-lightbox-text {
  flex: 1 !important;
}

.foto-lightbox-collection {
  display: inline-block !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: #950221 !important;
  margin-bottom: 0.35rem !important;
}

.foto-lightbox-caption,
.movimento-lightbox-caption,
.dip-lightbox-caption,
.tes-lightbox-caption,
.ceab-lightbox-caption,
.fab-lightbox-caption,
.eve-lightbox-caption,
.rev-lightbox-caption {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
  font-size: 0.9375rem !important;
  line-height: 1.6 !important;
  color: #F1F5F9 !important;
  margin: 0 !important;
  text-align: left !important;
  font-weight: normal !important;
  max-width: 100% !important;
}

@media (max-width: 640px) {
  .foto-lightbox-backdrop,
  .movimento-lightbox,
  .dip-lightbox,
  .tes-lightbox,
  .ceab-lightbox,
  .fab-lightbox,
  .eve-lightbox,
  .rev-lightbox {
    padding: 0.5rem !important;
  }

  .ceaa-lightbox-toolbar,
  .eve-lightbox-toolbar {
    padding: 0.5rem 0.75rem !important;
  }

  .ceaa-zoom-reset span,
  .eve-zoom-reset span {
    display: none !important;
  }

  .foto-lightbox-footer {
    padding: 0.85rem 1rem !important;
  }

  .foto-lightbox-caption,
  .movimento-lightbox-caption,
  .dip-lightbox-caption,
  .tes-lightbox-caption,
  .ceab-lightbox-caption,
  .fab-lightbox-caption,
  .eve-lightbox-caption,
  .rev-lightbox-caption {
    font-size: 0.8125rem !important;
  }
}


/* Remoção universal de scroll flutuante / sticky em elementos secundários e cards no responsivo */
@media (max-width: 1024px) {
  .forum-metrics-stack,
  .ceab-side-card,
  .ceab-intro-side-col,
  .rev-mission-card,
  .tes-feature-card,
  .dot-feature-card,
  .mac-feature-card,
  .mem-feature-card,
  .cen-feature-card,
  .fab-side-column {
    position: static !important;
    top: auto !important;
  }
}


/* ==========================================================================
   PADRÃO GLOBAL: BORDAS ARREDONDADAS NOS BOTÕES (SEM BORDAS 100% PÍLULA/REDONDAS)
   Mantém tags, pills e badges redondos, enquanto todos os botões de ação adotam
   o padrão oficial de cantos suavemente arredondados (border-radius: 8px).
   ========================================================================== */
.btn-primary,
.btn-secondary,
.btn-outline,
.cen-btn-pdf,
.cen-btn-icon,
.movimento-lelia-btn,
.movimento-depoimento-link,
.mem-btn-pdf,
.mem-btn-icon,
.ceab-btn-primary,
.dobra2-btn,
.dobra3-card-btn,
.dobra3-load-more-btn,
.dobra3-main-btn,
.dobra4-btn,
.dot-btn-banner,
.dot-btn-lattes,
.ea-load-more-btn,
.eve-load-more-btn,
.historia-load-more-btn,
.mac-load-more-btn,
.movimento-load-more-btn,
.producao-load-more-btn,
.rev-load-more-btn,
.tes-load-more-btn,
.foto-load-more-btn,
.clip-load-more-btn,
.dip-load-more-btn,
.search-page-btn,
.footer-modal-btn,
.e404-btn,
.e404-pill,
.cen-dock-btn,
.clip-dock-btn,
.dot-dock-btn,
.dip-dock-btn,
.ea-dock-btn,
.eve-dock-btn,
.fab-dock-link,
.memoria-dock-btn,
.mac-dock-btn,
.mem-dock-btn,
.movimento-tab-btn,
.pf-dock-btn,
.pesquisadores-dock-btn,
.rev-dock-btn,
.tes-dock-btn,
.ceab-dock-link,
.filter-tab,
.dobra3-filter-pill,
.cen-filter-pill,
.dot-edition-pill,
.dip-filter-pill,
.foto-pill-btn,
.producao-pill-btn,
.rev-filter-pill,
.tes-filter-pill,
.ceab-filter-pill,
.mac-filter-pill,
.clip-year-pill,
.ea-theme-tag-btn,
.ea-year-btn,
.eve-filter-pill,
.fab-tab-btn,
.fab-filter-pill,
.historia-decade-btn,
.historia-equipe-tab,
.livro-year-btn,
.slide-btn,
.header-search-btn,
.historia-pdf-button,
.mac-zoom-btn,
.result-download-link,
.back-to-top-btn,
.slider-arrow,
.rev-zoom-trigger,
.foto-card-zoom-btn,
.ceaa-cookie-btn,
.ceaa-cookie-accept-btn,
.ceaa-cookie-customize-btn,
.ceaa-cookie-reject-btn,
.footer-modal-close-btn,
.foto-lightbox-close-btn,
.movimento-lightbox-close,
.dip-lightbox-close,
.tes-lightbox-close,
.ceab-lightbox-close,
.fab-lightbox-close,
.eve-lightbox-close,
.rev-lightbox-close,
.historia-modal-close,
.livro-modal-close,
.pf-modal-close-btn,
.pesquisador-modal-close-btn,
.search-close-btn,
.foto-search-clear,
.dobra3-search-clear-btn,
.historia-search-clear,
.movimento-search-clear,
.producao-search-clear {
  border-radius: 8px !important;
}


.movimento-tabs-dock,
.movimento-eixos-select-wrap,
.site-header.scrolled ~ #main-content .movimento-tabs-dock,
#app-header:has(.site-header.scrolled) ~ #main-content .movimento-tabs-dock,
body:has(.site-header.scrolled) .movimento-tabs-dock,
body.scrolled-header .movimento-tabs-dock {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
}
