/**
 * Hidrochicapa - Suite de Animações, Transições e Otimização Visual
 * Suave, moderna, discreta e de alto desempenho (GPU-accelerated, 60fps).
 */

/* ==========================================================================
   1. Configuração Global: Tipografia Suave & Scroll Suave
   ========================================================================== */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Transição de entrada suave ao carregar cada página (sensação de Landing Page moderna) */
@keyframes hcPageEnter {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 1;
  }
}

body {
  background-color: #f8fafc;
}

/* Transição de saída suave e ultrarrápida entre páginas (sem piscar) */
body.hc-page-leaving {
  opacity: 0.9;
  transition: opacity 80ms ease-out;
  pointer-events: none;
}

/* ==========================================================================
   2. Variáveis de Animação & Curvas de Aceleração Suaves
   ========================================================================== */
:root {
  --hc-ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);
  --hc-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --hc-duration-reveal: 520ms;
  --hc-duration-img: 550ms;
}

/* ==========================================================================
   3. Scroll Reveal Progressivo & Discreto
   ========================================================================== */
.hc-reveal {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition: opacity var(--hc-duration-reveal) var(--hc-ease-smooth),
              transform var(--hc-duration-reveal) var(--hc-ease-smooth);
  will-change: opacity, transform;
  backface-visibility: hidden;
}

.hc-reveal-fade {
  opacity: 0;
  transition: opacity var(--hc-duration-reveal) var(--hc-ease-smooth);
  will-change: opacity;
}

.hc-reveal-scale {
  opacity: 0;
  transform: scale3d(0.98, 0.98, 1);
  transition: opacity var(--hc-duration-reveal) var(--hc-ease-smooth),
              transform var(--hc-duration-reveal) var(--hc-ease-smooth);
  will-change: opacity, transform;
}

/* Estado Ativado quando entra na Viewport */
.hc-reveal.revealed,
.hc-reveal-fade.revealed,
.hc-reveal-scale.revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}

/* Delays Escalonados Rápidos para Efeito Cascata Natural em Grelhas */
.hc-delay-1 { transition-delay: 40ms; }
.hc-delay-2 { transition-delay: 80ms; }
.hc-delay-3 { transition-delay: 120ms; }
.hc-delay-4 { transition-delay: 160ms; }
.hc-delay-5 { transition-delay: 200ms; }
.hc-delay-6 { transition-delay: 240ms; }

/* ==========================================================================
   4. Interação Suave e Elegante para Navegação, Botões e Cartões
   ========================================================================== */
/* Navegação e Links */
.nav-item-transition {
  transition: background-color 180ms ease, color 180ms ease, transform 150ms ease;
}

.nav-item-transition:hover {
  transform: translate3d(0, -1px, 0);
}

/* Otimização de Scroll Horizontal na Barra de Menus em Telas Móveis */
[data-purpose="primary-navigation"] > div {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
[data-purpose="primary-navigation"] > div::-webkit-scrollbar {
  display: none;
}

/* Interação suave para cartões e pilares corporativos */
.hc-card-smooth,
article.project-card {
  transition: transform 260ms var(--hc-ease-smooth),
              box-shadow 260ms var(--hc-ease-smooth),
              border-color 260ms ease;
  will-change: transform, box-shadow;
}

.hc-card-smooth:hover,
article.project-card:hover {
  transform: translate3d(0, -3px, 0);
  box-shadow: 0 12px 24px -6px rgba(27, 75, 138, 0.09), 0 4px 10px -2px rgba(0, 0, 0, 0.04);
}

/* Botões com elevação sutil e feedback tátil */
button:not(:disabled),
a[role="button"] {
  will-change: transform;
}

/* ==========================================================================
   5. Transições Dinâmicas e Discretas às Imagens em Todas as Páginas
   ========================================================================== */
.hc-img-container {
  overflow: hidden;
}

.hc-img-dynamic,
.hc-img-container img,
img.hc-dynamic {
  transition: transform var(--hc-duration-img) var(--hc-ease-smooth),
              filter 400ms ease;
  will-change: transform;
  backface-visibility: hidden;
}

.hc-img-container:hover img,
.hc-img-dynamic:hover,
img.hc-dynamic:hover {
  transform: scale3d(1.025, 1.025, 1);
}

/* Suavização de carregamento inicial de imagem */
img.hc-img-fadein {
  opacity: 0;
  transition: opacity 450ms ease-out;
}
img.hc-img-fadein.loaded {
  opacity: 1;
}

/* ==========================================================================
   6. Slideshow Automático na Página Inicial (Hero Banner)
   ========================================================================== */
.hc-hero-slideshow-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 5;
  background-color: transparent;
}

/* Regra de ocultação removida para assegurar que a primeira imagem nunca suma */

/* Zero tela preta: o slide inicial tem opacity: 1 garantida desde o primeiro frame HTML */
.hc-hero-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transform: scale3d(1.04, 1.04, 1);
  transition: opacity 1000ms cubic-bezier(0.4, 0, 0.2, 1),
              transform 5000ms cubic-bezier(0.25, 1, 0.5, 1),
              visibility 1000ms;
  will-change: opacity, transform;
  pointer-events: none;
}

.hc-hero-slide.active {
  opacity: 1 !important;
  visibility: visible !important;
  transform: scale3d(1, 1, 1);
  pointer-events: auto;
  z-index: 2;
}

/* Immediate, flicker-free rendering on first load: zero delay visual */
.hc-hero-slide.initial,
.hc-hero-slideshow-wrapper:not(.ready) .hc-hero-slide.active {
  opacity: 1 !important;
  visibility: visible !important;
  transform: scale3d(1, 1, 1) !important;
  transition: none !important;
}

.hc-hero-slide.leaving {
  opacity: 0 !important;
  visibility: visible !important;
  z-index: 1 !important;
  transition: opacity 1200ms cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.hc-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Indicadores Discretos e Minimalistas do Slideshow (Tamanho Elegante e Reduzido) */
.hc-hero-indicators {
  position: absolute !important;
  bottom: 10px !important;
  left: 50% !important;
  transform: translate3d(-50%, 0, 0) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  z-index: 28 !important;
  padding: 3px 8px !important;
  height: 12px !important;
  min-height: 0 !important;
  max-height: 14px !important;
  background: rgba(11, 20, 36, 0.55) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border-radius: 9999px !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
  pointer-events: auto !important;
  box-sizing: content-box !important;
}

button.hc-hero-dot,
.hc-hero-dot {
  width: 12px !important;
  height: 4px !important;
  min-height: 4px !important;
  max-height: 4px !important;
  border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.45) !important;
  transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1) !important;
  cursor: pointer !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  display: block !important;
  flex-shrink: 0 !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

button.hc-hero-dot:hover,
.hc-hero-dot:hover {
  background: rgba(255, 255, 255, 0.9) !important;
}

button.hc-hero-dot.active,
.hc-hero-dot.active {
  width: 22px !important;
  height: 4px !important;
  min-height: 4px !important;
  max-height: 4px !important;
  background: #3870b2 !important;
  box-shadow: 0 0 6px rgba(56, 112, 178, 0.8) !important;
}

@media (max-width: 640px) {
  .hc-hero-indicators {
    bottom: 6px !important;
    padding: 2px 6px !important;
    gap: 4px !important;
    height: 10px !important;
    max-height: 10px !important;
  }
  button.hc-hero-dot,
  .hc-hero-dot {
    width: 9px !important;
    height: 3px !important;
    min-height: 3px !important;
    max-height: 3px !important;
  }
  button.hc-hero-dot.active,
  .hc-hero-dot.active {
    width: 16px !important;
    height: 3px !important;
    min-height: 3px !important;
    max-height: 3px !important;
  }
}

/* Barra de progresso subtil de 5 segundos no slide ativo */
.hc-hero-progress-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #143968, #1b4b8a);
  z-index: 29;
  width: 0%;
  transition: width 5000ms linear;
}

.hc-hero-progress-bar.running {
  width: 100%;
}

/* ==========================================================================
   7. Contadores Numéricos Animados
   ========================================================================== */
.hc-counter-val {
  display: inline-block;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* Brilho discreto quando atinge o valor final */
.hc-counter-completed {
  animation: hcNumberGlow 500ms var(--hc-ease-smooth) forwards;
}

@keyframes hcNumberGlow {
  0% { transform: scale(0.98); }
  50% { transform: scale(1.015); }
  100% { transform: scale(1); }
}

/* ==========================================================================
   8. Governança Corporativa - Animação Hierárquica de Entrada (1, 2, 3, 4, 5, 6...)
   ========================================================================== */
@keyframes hierarquiaEntrada {
  0% {
    opacity: 0;
    transform: translateY(22px) scale(0.97);
  }
  65% {
    opacity: 0.95;
    transform: translateY(-2px) scale(1.005);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.membro-card-hierarquia {
  opacity: 1 !important;
  transform: none !important;
  transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
  will-change: opacity, transform;
}

.membro-card-hierarquia.animar-entrada {
  animation: hierarquiaEntrada 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* ==========================================================================
   9. Acessibilidade: Desativação em Prefers Reduced Motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  body {
    animation: none !important;
  }

  .hc-reveal,
  .hc-reveal-fade,
  .hc-reveal-scale {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .hc-hero-slide {
    transition: opacity 150ms !important;
    transform: none !important;
  }
}

/* ==========================================================================
   10. Otimização de Scrollbars para Navegação Mobile
   ========================================================================== */
.no-scrollbar::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.no-scrollbar {
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

/* ==========================================================================
   11. Navegação com Submenus Dropdown (Desktop Hover + Mobile Click/Toque)
   ========================================================================== */
.nav-dropdown {
  position: relative;
}

.nav-submenu {
  display: block;
}

@media (min-width: 1024px) {
  .nav-dropdown:hover > .nav-submenu,
  .nav-dropdown:focus-within > .nav-submenu {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }
  .nav-dropdown:hover .nav-arrow {
    transform: rotate(180deg);
  }
}

/* Estado Aberto para Dispositivos Touch / Mobile */
.nav-dropdown.is-open > .nav-submenu {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

.nav-dropdown.is-open .nav-arrow {
  transform: rotate(180deg) !important;
}

.nav-submenu a {
  text-decoration: none;
}

/* ==========================================================================
   12. SISTEMA DE DESIGN FLUIDO E RESPONSIVO (UNIDADES FLEXÍVEIS: REM, CLAMP, %, CQW)
   Garantia de hierarquia e layout idênticos em Computador, Tablet e Telemóvel
   Conforme especificações editoriais e técnicas das Fases 1, 2 e 3
   ========================================================================== */

:root {
  /* Escala Tipográfica Fluida (clamp: min, ideal, max) */
  --fluid-h1: clamp(1.75rem, 3.8vw + 0.4rem, 3.25rem);
  --fluid-h2: clamp(1.35rem, 2.5vw + 0.3rem, 2.25rem);
  --fluid-h3: clamp(1.08rem, 1.8vw + 0.15rem, 1.5rem);
  --fluid-h4: clamp(0.95rem, 1.2vw + 0.1rem, 1.25rem);
  --fluid-body-lead: clamp(0.95rem, 1.2vw + 0.1rem, 1.15rem);
  --fluid-body: clamp(0.875rem, 0.9vw + 0.05rem, 1.025rem);
  --fluid-body-sm: clamp(0.78rem, 0.8vw + 0.04rem, 0.9rem);
  --fluid-caption: clamp(0.7rem, 0.75vw, 0.8rem);

  /* Espaçamentos e Gaps Fluidos */
  --fluid-gap-xs: clamp(0.25rem, 0.5vw, 0.5rem);
  --fluid-gap-sm: clamp(0.5rem, 1vw, 0.75rem);
  --fluid-gap-md: clamp(0.85rem, 1.5vw, 1.25rem);
  --fluid-gap-lg: clamp(1.25rem, 2.5vw, 2rem);
  --fluid-gap-xl: clamp(1.75rem, 3.5vw, 3rem);

  /* Preenchimento de Cartões e Contentores */
  --fluid-container-px: clamp(1rem, 3.5vw, 2.5rem);
  --fluid-section-py: clamp(2rem, 4.5vw, 4rem);
  --fluid-card-p: clamp(1rem, 2vw + 0.2rem, 1.75rem);
  --fluid-radius-card: clamp(0.75rem, 1.2vw, 1.25rem);
  --fluid-btn-py: clamp(0.6rem, 1vw, 0.85rem);
  --fluid-btn-px: clamp(1rem, 1.8vw, 1.75rem);
}

/* --------------------------------------------------------------------------
   A. Prevenção Universal de Quebras e Scroll Horizontal Indesejado
   -------------------------------------------------------------------------- */
html,
body {
  max-width: 100vw;
  overflow-x: clip;
}

@supports not (overflow-x: clip) {
  html,
  body {
    overflow-x: hidden;
  }
}

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

/* Prevenção de estouro de grelhas por palavras longas ou identificadores técnicos */
main,
article,
section,
div,
p,
li,
td,
th {
  overflow-wrap: break-word;
}

/* Imagens e vídeos sempre proporcionais e fluidos */
img,
video,
canvas,
svg {
  max-width: 100%;
  height: auto;
}

/* --------------------------------------------------------------------------
   B. Hierarquia Tipográfica Fluida e Consistente (PC, Tablet, Telemóvel)
   -------------------------------------------------------------------------- */
h1,
.font-display,
.font-headline-lg {
  font-size: var(--fluid-h1);
  line-height: 1.15;
  letter-spacing: -0.025em;
}

h2,
.font-headline-md {
  font-size: var(--fluid-h2);
  line-height: 1.22;
  letter-spacing: -0.02em;
}

h3,
.font-headline-sm {
  font-size: var(--fluid-h3);
  line-height: 1.3;
  letter-spacing: -0.015em;
}

h4 {
  font-size: var(--fluid-h4);
  line-height: 1.35;
}

p,
.font-body-md {
  font-size: var(--fluid-body);
  line-height: 1.6;
}

.font-body-lg,
.lead-text {
  font-size: var(--fluid-body-lead);
  line-height: 1.6;
}

.font-body-sm,
.text-body-sm {
  font-size: var(--fluid-body-sm);
  line-height: 1.5;
}

.font-label-sm,
.text-label-sm,
.meta-caption {
  font-size: var(--fluid-caption);
  line-height: 1.4;
  letter-spacing: 0.02em;
}

/* Números técnicos alinhados e tabulares */
strong,
.hc-num-metric,
.tabular-nums {
  font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   C. Contentores e Seções Fluidas
   -------------------------------------------------------------------------- */
.max-w-\[1720px\],
[data-purpose="site-top-bar"] > div,
[data-purpose="primary-navigation"] > div,
main > .max-w-\[1720px\],
footer > div {
  padding-left: var(--fluid-container-px);
  padding-right: var(--fluid-container-px);
}

/* Cartões com preenchimento proporcional */
.bg-surface-container-lowest,
.project-card,
.hc-card-smooth,
article.rounded-xl,
article.rounded-2xl {
  padding: var(--fluid-card-p);
  border-radius: var(--fluid-radius-card);
}

/* Grelhas fluidas que respeitam a mesma hierarquia em todos os formatos */
.grid-responsive-cards-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: var(--fluid-gap-md);
}

.grid-responsive-cards-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: var(--fluid-gap-md);
}

.grid-responsive-cards-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  gap: var(--fluid-gap-md);
}

/* --------------------------------------------------------------------------
   D. Adaptação Fluida das Tabelas Técnicas (Fases 2 e 3 - Produção de Energia)
   -------------------------------------------------------------------------- */
/* Contentor com rolagem horizontal suave, indicador visual e sem quebrar o layout */
.table-fluid-container {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: clamp(0.5rem, 1vw, 0.85rem);
  background-color: #ffffff;
  position: relative;
  scrollbar-width: thin;
}

/* Barra de rolagem discreta e elegante para tabelas técnicas */
.table-fluid-container::-webkit-scrollbar {
  height: 6px;
}

.table-fluid-container::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 9999px;
}

.table-fluid-container::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 9999px;
}

.table-fluid-container::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Formatação fluida de células de tabelas técnicas */
table {
  border-collapse: collapse;
  width: 100%;
  min-width: 580px; /* Garante que tabelas técnicas nunca fiquem esmagadas */
}

table th,
table td {
  padding: clamp(0.5rem, 0.9vw, 0.85rem) clamp(0.6rem, 1.2vw, 1rem);
  vertical-align: middle;
}

/* Em ecrãs móveis muito compactos, garantir que coluna № e Denominação fiquem legíveis */
@media (max-width: 640px) {
  table th {
    font-size: clamp(10px, 2.5vw, 12px);
  }
  table td {
    font-size: clamp(11px, 2.8vw, 13px);
  }
}

/* --------------------------------------------------------------------------
   E. Botões, Links e Alvos de Toque Acessíveis (WCAG AA: Mínimo 44px)
   -------------------------------------------------------------------------- */
button:not(.hc-hero-dot),
a[role="button"]:not(.hc-hero-dot),
.btn-fluid {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  touch-action: manipulation;
  padding: var(--fluid-btn-py) var(--fluid-btn-px);
  font-size: var(--fluid-body-sm);
  border-radius: clamp(0.5rem, 1vw, 0.75rem);
}

/* Campos de formulário com tamanho preventivo contra zoom indesejado no iOS */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="file"],
select,
textarea {
  font-size: 16px !important; /* Previne auto-zoom no Safari iOS */
  min-height: 44px;
  border-radius: clamp(0.5rem, 0.9vw, 0.75rem);
}

/* --------------------------------------------------------------------------
   F. Barra de Navegação: Garantia Absoluta de Cores e Visibilidade
   -------------------------------------------------------------------------- */
[data-purpose="primary-navigation"],
nav[data-purpose="primary-navigation"] {
  width: 100%;
  background-color: #1b4b8a !important;
  color: #ffffff !important;
}

[data-purpose="primary-navigation"] a,
nav[data-purpose="primary-navigation"] a {
  color: #ffffff !important;
}

[data-purpose="primary-navigation"] .active-nav-tab,
nav[data-purpose="primary-navigation"] .active-nav-tab {
  background-color: #121c2d !important;
  color: #ffffff !important;
  border-bottom: 4px solid #3870B2 !important;
}

[data-purpose="primary-navigation"] > div {
  display: flex;
  align-items: stretch;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-behavior: smooth;
  background-color: #1b4b8a !important;
}

[data-purpose="primary-navigation"] > div::-webkit-scrollbar {
  display: none;
}

/* Container de cada Aba com Ticker */
.nav-tab-container {
  position: relative;
  display: flex;
  align-items: stretch;
}

/* Seta animada no topo da aba */
.nav-tab-container .nav-arrow {
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
}

.nav-tab-container:hover .nav-arrow,
.nav-tab-container.is-open .nav-arrow {
  transform: rotate(180deg);
  opacity: 1 !important;
}

/* Faixa de Subtemas Activa (Active Subthemes Ticker) */
.subtheme-ticker-pill {
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none !important;
}

.subtheme-ticker-pill:hover {
  transform: translateY(-1.5px);
  background-color: #1b4b8a !important;
  color: #ffffff !important;
  box-shadow: 0 4px 12px rgba(27, 75, 138, 0.35);
}

/* Ticker Dropdown Flutuante com Micro-Animações Imediatas */
.nav-ticker-dropdown {
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px) scale(0.98);
  transition: opacity 0.15s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.15s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.15s ease;
  pointer-events: none;
  box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background-color: #121c2d !important;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
}

/* Ponte invisível para evitar perda de foco/hover entre aba e dropdown */
.nav-ticker-dropdown::after {
  content: '';
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
}

.nav-tab-container:hover .nav-ticker-dropdown,
.nav-tab-container:focus-within .nav-ticker-dropdown,
.nav-tab-container.is-open .nav-ticker-dropdown {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto !important;
}

/* Item individual do Ticker */
.nav-ticker-item {
  position: relative;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none !important;
}

.nav-ticker-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  width: 3px;
  height: 60%;
  background-color: #3870B2;
  border-radius: 0 4px 4px 0;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-ticker-item:hover {
  transform: translateX(6px);
  background-color: rgba(255, 255, 255, 0.14) !important;
}

.nav-ticker-item:hover::before {
  transform: translateY(-50%) scaleY(1);
}

.nav-ticker-item:hover span.material-symbols-outlined {
  transform: scale(1.18) rotate(3deg);
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Animações Globais ao passar o cursor nos elementos do site */
html {
  scroll-behavior: smooth !important;
  scroll-padding-top: 80px !important;
}

[id] {
  scroll-margin-top: 80px !important;
}

a, button {
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Efeito de elevação suave em cartões e botões */
.hover-lift, 
.hover-elevate {
  transition: transform 0.26s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.26s ease, border-color 0.26s ease;
}

.hover-lift:hover,
.hover-elevate:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -8px rgba(27, 75, 138, 0.22);
}

/* Micro-animação de realce suave ao arrastar até uma seção */
@keyframes targetSectionGlow {
  0% {
    box-shadow: 0 0 0 0 rgba(56, 112, 178, 0.5);
    outline: 2px solid rgba(56, 112, 178, 0.6);
  }
  50% {
    box-shadow: 0 0 0 16px rgba(56, 112, 178, 0);
    outline: 2px solid rgba(56, 112, 178, 0.8);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(56, 112, 178, 0);
    outline: 2px solid transparent;
  }
}

.target-section-glow {
  animation: targetSectionGlow 1.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  border-radius: 1.5rem;
}

/* --------------------------------------------------------------------------
   G. Banner Hero Proporcional e Elegante
   -------------------------------------------------------------------------- */
[data-purpose="hero-banner"] {
  min-height: clamp(280px, 40vh, 480px);
  position: relative;
  overflow: hidden;
}

.hero-fluid-title {
  font-size: clamp(1.15rem, 2.2vw, 1.85rem);
  line-height: 1.25;
  color: #ffffff !important;
}

.hero-fluid-lead {
  font-size: clamp(0.88rem, 1.2vw + 0.1rem, 1.18rem) !important;
  line-height: 1.55 !important;
  max-width: min(100%, 68ch);
}

/* --------------------------------------------------------------------------
   H. Rodapé e Metadados Fluidos
   -------------------------------------------------------------------------- */
footer {
  width: 100%;
}

footer .grid {
  gap: var(--fluid-gap-lg);
}

/* Garante que nenhum elemento em colunas quebre feio em tablets (640px-1024px) */
@media (min-width: 640px) and (max-width: 1023px) {
  .tablet-col-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}



/* =========================================================================
   DROPDOWN PROFISSIONAL INSTITUCIONAL - DESIGN PREMIUM ESCURO TRANSLÚCIDO
   ========================================================================= */
html, body {
  max-width: 100% !important;
  overflow-x: clip !important;
}

#main-site-nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 990 !important;
  overflow: visible !important;
}

/* Em dispositivos móveis e pequenos tablets (< 1024px), esconde a barra horizontal para usar o drawer de toque */
@media (max-width: 1023px) {
  #main-site-nav {
    display: none !important;
  }
}

/* Em telas médias/laptops (1024px a 1399px), ajusta proporções para caber sem rolagem horizontal */
@media (min-width: 1024px) and (max-width: 1399px) {
  #main-site-nav .nav-tab-container a {
    padding-left: 0.42rem !important;
    padding-right: 0.42rem !important;
    font-size: 10px !important;
    letter-spacing: 0.01em !important;
    gap: 0.2rem !important;
  }
}

#main-site-nav > div,
#main-site-nav div {
  overflow: visible !important;
}

.nav-tab-container {
  position: relative !important;
  display: flex !important;
  align-items: stretch !important;
  z-index: 10 !important;
}

.nav-tab-container:hover,
.nav-tab-container:focus-within,
.nav-tab-container.is-hovered,
.nav-tab-container.is-open {
  z-index: 9999 !important;
}

/* Fundo do dropdown: azul muito escuro / quase preto com transparência subtil */
.nav-professional-dropdown,
.nav-ticker-dropdown {
  position: absolute !important;
  top: 100% !important;
  margin-top: 0 !important;
  z-index: 10000 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(4px) !important;
  transition: opacity 0.16s cubic-bezier(0.16, 1, 0.3, 1), transform 0.16s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.16s ease !important;
  pointer-events: none !important;
  background-color: rgba(11, 20, 36, 0.98) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  color: #ffffff !important;
  box-shadow: 0 28px 60px -12px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.14) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-top: 3px solid #3870b2 !important;
  border-bottom-left-radius: 0.85rem !important;
  border-bottom-right-radius: 0.85rem !important;
  min-width: 280px !important;
  max-width: min(380px, calc(100vw - 24px)) !important;
  display: block !important;
}

/* Ponte invisível para evitar perda de hover entre aba e dropdown */
.nav-professional-dropdown::before,
.nav-ticker-dropdown::before,
.nav-ticker-dropdown::after {
  content: "" !important;
  position: absolute !important;
  top: -15px !important;
  left: 0 !important;
  right: 0 !important;
  height: 20px !important;
  background: transparent !important;
  pointer-events: auto !important;
}

/* Abertura Imediata e Automática ao entrar com o cursor (sem clique, sem scroll) */
.nav-tab-container:hover .nav-professional-dropdown,
.nav-tab-container:focus-within .nav-professional-dropdown,
.nav-tab-container.is-hovered .nav-professional-dropdown,
.nav-tab-container.is-open .nav-professional-dropdown,
.nav-tab-container:hover .nav-ticker-dropdown,
.nav-tab-container:focus-within .nav-ticker-dropdown,
.nav-tab-container.is-hovered .nav-ticker-dropdown,
.nav-tab-container.is-open .nav-ticker-dropdown {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
  display: block !important;
}

.nav-tab-container:hover .nav-arrow,
.nav-tab-container.is-hovered .nav-arrow,
.nav-tab-container.is-open .nav-arrow {
  transform: rotate(180deg) !important;
  opacity: 1 !important;
}

/* Drawer de navegação mobile e Modals: z-index superior para nunca serem tapados */
#mobile-nav-drawer {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99990 !important;
}

#institutional-login-modal,
#pub-modal,
[data-modal="true"] {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
}

/* Item individual do Dropdown: texto SEMPRE branco, layout elegante com ícone */
.nav-dropdown-item {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
  width: 100% !important;
  padding: 0.8rem 1.25rem !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
  text-align: left !important;
  text-decoration: none !important;
  background-color: transparent !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07) !important;
  transition: all 0.16s cubic-bezier(0.16, 1, 0.3, 1) !important;
  cursor: pointer !important;
  position: relative !important;
}

.nav-dropdown-item:last-child {
  border-bottom: 0 !important;
  border-bottom-left-radius: 0.85rem !important;
  border-bottom-right-radius: 0.85rem !important;
}

/* Contentor do Ícone Pequeno e Elegante */
.nav-item-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 7px !important;
  background-color: rgba(56, 112, 178, 0.22) !important;
  border: 1px solid rgba(56, 112, 178, 0.35) !important;
  color: #93c5fd !important; /* Azul claro luminoso institucional */
  flex-shrink: 0 !important;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.nav-item-icon svg {
  width: 15px !important;
  height: 15px !important;
  color: inherit !important;
  stroke: currentColor !important;
}

/* Texto do subtema: sempre branco puro */
.nav-item-text {
  color: #ffffff !important;
  flex: 1 1 auto !important;
  white-space: normal !important;
  word-break: break-word !important;
  line-height: 1.3 !important;
  transition: color 0.16s ease !important;
}

/* Chevron indicador discreto */
.nav-item-chevron {
  opacity: 0.35 !important;
  transition: all 0.16s ease !important;
  color: #93c5fd !important;
  flex-shrink: 0 !important;
}

/* AO PASSAR O CURSOR: Fundo azul institucional, texto branco, ícone destacado */
.nav-dropdown-item:hover,
.nav-dropdown-item:focus {
  background-color: #1b4b8a !important; /* Azul institucional */
  color: #ffffff !important;           /* Texto permanece perfeitamente branco */
  padding-left: 1.55rem !important;   /* Transição de deslocamento suave */
  box-shadow: inset 3px 0 0 0 #60a5fa !important; /* Marcador lateral elegante */
}

.nav-dropdown-item:hover .nav-item-icon,
.nav-dropdown-item:focus .nav-item-icon {
  background-color: rgba(255, 255, 255, 0.25) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  color: #ffffff !important;           /* Ícone ganha destaque em branco */
  transform: scale(1.12) !important;
}

.nav-dropdown-item:hover .nav-item-text,
.nav-dropdown-item:focus .nav-item-text {
  color: #ffffff !important;
}

.nav-dropdown-item:hover .nav-item-chevron,
.nav-dropdown-item:focus .nav-item-chevron {
  opacity: 1 !important;
  color: #ffffff !important;
  transform: translateX(2px) !important;
}

/* ==========================================================================
   Banners Superiores Animados & Responsivos para Abas do Site
   (Início, Sobre Nós, Responsabilidade Social, Parcerias, Produção, Publicações)
   Carrossel Rotativo Automático com Crossfade Suave e Panorâmica Suave
   ========================================================================== */
@keyframes hcInternalBannerPan {
  0% {
    transform: scale(1.06) translate3d(0, 0, 0);
  }
  50% {
    transform: scale(1.12) translate3d(-1%, -0.8%, 0);
  }
  100% {
    transform: scale(1.06) translate3d(0, 0, 0);
  }
}

.hc-internal-banner-hero {
  position: relative !important;
  width: 100% !important;
  overflow: hidden !important;
  isolation: isolate !important;
  background-color: #0c1527 !important;
}

.hc-internal-banner-bg {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}

.hc-internal-banner-bg .hc-internal-slide {
  position: absolute !important;
  inset: -4% !important;
  width: 108% !important;
  height: 108% !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: scale(1.04) !important;
  transition: opacity 1200ms cubic-bezier(0.4, 0, 0.2, 1), transform 6000ms cubic-bezier(0.25, 1, 0.5, 1), visibility 1200ms !important;
  will-change: opacity, transform !important;
}

.hc-internal-banner-bg .hc-internal-slide.active {
  opacity: 1 !important;
  visibility: visible !important;
  transform: scale(1.08) !important;
  z-index: 2 !important;
}

.hc-internal-banner-bg .hc-internal-slide.leaving {
  opacity: 0 !important;
  visibility: visible !important;
  z-index: 1 !important;
  transition: opacity 1400ms cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.hc-internal-banner-bg img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  filter: brightness(0.85) contrast(1.05) !important;
}

.hc-internal-banner-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(12, 21, 39, 0.45) 0%, rgba(12, 21, 39, 0.85) 60%, rgba(12, 21, 39, 0.98) 100%) !important;
  backdrop-filter: blur(1px) !important;
}

.hc-internal-banner-content {
  position: relative !important;
  z-index: 2 !important;
}

/* Indicadores discretos para banners de abas internas */
.hc-internal-indicators {
  position: absolute !important;
  bottom: 12px !important;
  right: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  z-index: 25 !important;
  padding: 4px 10px !important;
  background: rgba(11, 20, 36, 0.6) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border-radius: 9999px !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.hc-internal-dot {
  width: 6px !important;
  height: 6px !important;
  border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.4) !important;
  transition: all 300ms ease !important;
  border: none !important;
  padding: 0 !important;
  cursor: pointer !important;
}

.hc-internal-dot.active {
  width: 18px !important;
  background: #38bdf8 !important;
  box-shadow: 0 0 8px rgba(56, 189, 248, 0.7) !important;
}

/* ==========================================================================
   8. CURSOR DINÂMICO EM FORMA DE TURBINA HIDROELÉCTRICA (HIDROCHICAPA)
   Identidade: Azul #003287 / #1b4b8a, Grafite #1F1B20, Branco & Prateado
   ========================================================================== */

/* Cursor nativo transparente apenas em dispositivos com suporte a apontador fino (rato/touchpad) */
/* Suporte ao cursor turbina garantindo que o cursor nativo nunca desapareça */
@media (pointer: fine) {
  html.hc-turbine-cursor-active,
  html.hc-turbine-cursor-active body {
    cursor: default;
  }
  html.hc-turbine-cursor-active a,
  html.hc-turbine-cursor-active button,
  html.hc-turbine-cursor-active [role="button"],
  html.hc-turbine-cursor-active input[type="submit"],
  html.hc-turbine-cursor-active input[type="button"],
  html.hc-turbine-cursor-active select,
  html.hc-turbine-cursor-active summary {
    cursor: pointer;
  }
}
/* Root container do cursor personalizado (camada superior imune a cliques) */
.hc-cursor-root {
  position: fixed;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  pointer-events: none !important;
  z-index: 2147483647 !important;
  will-change: transform;
}

/* O elemento principal que segue as coordenadas (X, Y) do rato */
.hc-cursor-follower {
  position: fixed;
  top: 0;
  left: 0;
  width: 36px;
  height: 36px;
  margin-top: -18px;
  margin-left: -18px;
  pointer-events: none !important;
  z-index: 2147483647 !important;
  opacity: 0;
  transform: translate3d(-100px, -100px, 0) scale(0.9);
  transition: opacity 250ms cubic-bezier(0.4, 0, 0.2, 1),
              transform 60ms linear;
  will-change: transform, opacity;
}

.hc-cursor-follower.is-visible {
  opacity: 1;
}

/* Halo / Aura de Energia Fluida ao redor da turbina */
.hc-cursor-halo {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.28) 0%, rgba(0, 50, 135, 0.15) 50%, transparent 75%);
  opacity: 0.7;
  transform: scale(1);
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1),
              opacity 300ms ease,
              background 300ms ease;
  pointer-events: none;
}

/* SVG da Turbina Hidroeléctrica e Rotação Contínua */
.hc-cursor-turbine {
  position: absolute;
  inset: 0;
  width: 36px;
  height: 36px;
  display: block;
  transform-origin: center center;
  animation: hcTurbineRotate 4s linear infinite;
  filter: drop-shadow(0 2px 6px rgba(0, 50, 135, 0.45));
  transition: filter 250ms ease;
  pointer-events: none;
}

/* Rotação perpétua e fluida da turbina */
@keyframes hcTurbineRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Estado Hover: ao passar sobre links, botões ou cards interactivos */
.hc-cursor-follower.is-hovering {
}

.hc-cursor-follower.is-hovering .hc-cursor-halo {
  opacity: 1;
  transform: scale(1.4);
  background: radial-gradient(circle, rgba(56, 189, 248, 0.55) 0%, rgba(0, 50, 135, 0.35) 55%, transparent 80%);
}

.hc-cursor-follower.is-hovering .hc-cursor-turbine {
  animation-duration: 2s; /* Gira mais rápido em áreas interactivas */
  filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.85)) drop-shadow(0 0 18px rgba(0, 50, 135, 0.6));
}

/* Estado Click / Acção: Aceleração instantânea da rotação e impulso electromagnético */
.hc-cursor-follower.is-clicking {
}

.hc-cursor-follower.is-clicking .hc-cursor-turbine {
  animation-duration: 0.45s !important; /* Rotação ultrarrápida */
  filter: drop-shadow(0 0 14px #38bdf8) drop-shadow(0 0 24px #003287) brightness(1.35);
}

.hc-cursor-follower.is-clicking .hc-cursor-halo {
  opacity: 1;
  transform: scale(1.9);
  background: radial-gradient(circle, rgba(56, 189, 248, 0.8) 0%, rgba(0, 120, 255, 0.5) 45%, transparent 75%);
}

/* Lente de Aumento Holográfica Hidro-Óptica */
.hc-cursor-lens {
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  border: 1.5px solid rgba(56, 189, 248, 0.7);
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.28) 0%, rgba(56, 189, 248, 0.1) 45%, rgba(0, 50, 135, 0.18) 85%, rgba(56, 189, 248, 0.45) 100%);
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.5), inset 0 0 10px rgba(255, 255, 255, 0.4);
  opacity: 0;
  transform: scale(0.65);
  transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1),
              transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none !important;
  backdrop-filter: contrast(108%) brightness(104%);
  -webkit-backdrop-filter: contrast(108%) brightness(104%);
}

/* Estado de Lupa nos Textos: activa quando o cursor aproxima-se de títulos, parágrafos e textos */
.hc-cursor-follower.is-magnifying {
}

.hc-cursor-follower.is-magnifying .hc-cursor-lens {
  opacity: 1;
  transform: scale(1.18);
}

.hc-cursor-follower.is-magnifying .hc-cursor-halo {
  opacity: 0.85;
  transform: scale(1.5);
  background: radial-gradient(circle, rgba(56, 189, 248, 0.45) 0%, rgba(0, 50, 135, 0.25) 50%, transparent 75%);
}

.hc-cursor-follower.is-magnifying .hc-cursor-turbine {
  animation-duration: 2.8s;
  filter: drop-shadow(0 0 8px rgba(56, 189, 248, 0.8)) drop-shadow(0 0 14px rgba(0, 50, 135, 0.5));
}

/* Ampliação suave do texto sob o foco da lente sem prejudicar a leitura nem a navegação */
.hc-text-magnified {
  transition: transform 260ms cubic-bezier(0.16, 1, 0.3, 1),
              text-shadow 260ms ease,
              color 260ms ease !important;
  transform: scale(1.025) translateZ(0) !important;
  transform-origin: left center !important;
  text-shadow: 0 0 0.8px rgba(0, 50, 135, 0.2) !important;
  will-change: transform;
}

.text-center.hc-text-magnified,
[class*="text-center"].hc-text-magnified,
.text-center .hc-text-magnified {
  transform-origin: center center !important;
}

.text-right.hc-text-magnified,
[class*="text-right"].hc-text-magnified {
  transform-origin: right center !important;
}

/* Faíscas Eléctricas e Pulso de Energia ao Clicar / Tocar */
.hc-cursor-sparks-layer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none !important;
  z-index: 2147483646 !important;
  overflow: hidden;
}

/* Pulso em anel concêntrico ao clicar */
.hc-energy-pulse {
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: 2px solid #38bdf8;
  box-shadow: 0 0 12px #38bdf8, inset 0 0 8px rgba(56, 189, 248, 0.5);
  transform: translate(-50%, -50%) scale(0.6);
  opacity: 1;
  animation: hcPulseExpand 600ms cubic-bezier(0.1, 0.8, 0.3, 1) forwards;
  pointer-events: none;
}

@keyframes hcPulseExpand {
  0% {
    transform: translate(-50%, -50%) scale(0.4);
    opacity: 1;
  }
  60% {
    opacity: 0.8;
  }
  100% {
    transform: translate(-50%, -50%) scale(3.5);
    opacity: 0;
    border-color: rgba(0, 50, 135, 0.2);
  }
}

/* Faíscas individuais geradas na conversão de energia */
.hc-spark-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #ffffff;
  box-shadow: 0 0 6px #38bdf8, 0 0 10px #003287;
  transform: translate(-50%, -50%);
  pointer-events: none;
  animation: hcSparkFly var(--duration, 500ms) cubic-bezier(0.15, 0.9, 0.3, 1) forwards;
}

@keyframes hcSparkFly {
  0% {
    transform: translate(-50%, -50%) scale(1.4);
    opacity: 1;
  }
  100% {
    transform: translate(calc(-50% + var(--dx, 20px)), calc(-50% + var(--dy, -20px))) scale(0);
    opacity: 0;
  }
}

/* Linha de arco voltaico / raio mini */
.hc-spark-arc {
  position: absolute;
  width: var(--length, 18px);
  height: 2px;
  background: linear-gradient(90deg, #ffffff, #38bdf8, transparent);
  box-shadow: 0 0 6px #38bdf8;
  transform-origin: left center;
  transform: translate(0, -50%) rotate(var(--angle, 0deg));
  pointer-events: none;
  opacity: 1;
  animation: hcArcFlash 280ms ease-out forwards;
}

@keyframes hcArcFlash {
  0% {
    opacity: 1;
    transform: translate(0, -50%) rotate(var(--angle, 0deg)) scaleX(1);
  }
  50% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
    transform: translate(0, -50%) rotate(var(--angle, 0deg)) scaleX(1.6);
  }
}

/* Suporte de Acessibilidade: utilizadores que preferem redução de movimento */
@media (prefers-reduced-motion: reduce) {
  .hc-cursor-turbine {
    animation-duration: 12s !important;
  }
  .hc-cursor-follower.is-hovering .hc-cursor-turbine {
    animation-duration: 8s !important;
  }
  .hc-cursor-follower.is-clicking .hc-cursor-turbine {
    animation-duration: 4s !important;
  }
  .hc-energy-pulse,
  .hc-spark-particle,
  .hc-spark-arc {
    display: none !important;
  }
}

/* ==========================================================================
   13. CORRECÇÃO RESPONSIVA MOBILE EXCLUSIVA | HIDROCHICAPA
   Directrizes Rigorosas:
   1. Cursor Turbina Touch com rotação perpétua, brilho ao toque e sem interferência
   2. Vídeo YouTube em largura quase total (96-98%) com visibilidade máxima
   3. Espaçamentos equilibrados, tipografia proporcional, secções compactas em grelhas
   4. Banner sem barra azul residual e Cabeçalho minimalista em linha única
   5. Minimalismo corporativo moderno e coeso em todos os smartphones (320px - 767px)
   * A versão de computador (Desktop >= 1024px) permanece 100% INTACTA *
   ========================================================================== */

@media (max-width: 767px) {
  /* ------------------------------------------------------------------------
     1. CURSOR TURBINA EM DISPOSITIVOS MÓVEIS & TOUCH
     ------------------------------------------------------------------------ */
  .hc-cursor-root,
  .hc-cursor-follower,
  .hc-cursor-sparks-layer,
  .hc-energy-pulse,
  .hc-spark-particle,
  .hc-spark-arc,
  .hc-cursor-lens,
  .hc-cursor-halo {
    pointer-events: none !important;
    touch-action: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
  }

  .hc-cursor-follower {
    width: 32px !important;
    height: 32px !important;
    margin-top: -16px !important;
    margin-left: -16px !important;
    filter: drop-shadow(0 2px 8px rgba(0, 50, 135, 0.5));
  }

  .hc-cursor-turbine {
    width: 32px !important;
    height: 32px !important;
  }

  /* Rotação perpétua e aceleração de energia ao tocar */
  .hc-cursor-follower.is-clicking .hc-cursor-turbine {
    animation-duration: 0.45s !important;
    filter: drop-shadow(0 0 12px #38bdf8) drop-shadow(0 0 20px #003287) brightness(1.4) !important;
  }

  .hc-cursor-follower.is-clicking .hc-cursor-halo {
    opacity: 1 !important;
    transform: scale(1.75) !important;
    background: radial-gradient(circle, rgba(56, 189, 248, 0.8) 0%, rgba(0, 50, 135, 0.4) 50%, transparent 75%) !important;
  }

  /* ------------------------------------------------------------------------
     2. VÍDEO YOUTUBE: LARGURA QUASE TOTAL (96-98%) & MÁXIMA VISIBILIDADE
     ------------------------------------------------------------------------ */
  #seccao-videos-institucionais,
  [data-purpose*="video"],
  section[id*="video"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #seccao-videos-institucionais > div,
  section[id*="video"] > div {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
    max-width: 100% !important;
  }

  #video-card-container {
    padding: 0.35rem !important;
    border-radius: 1.25rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-shadow: 0 8px 24px -4px rgba(0, 20, 60, 0.12) !important;
  }

  #video-card-container .relative.aspect-video {
    border-radius: 1rem !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  #institucional-video-iframe,
  iframe[data-cms*="video-iframe"] {
    width: 100% !important;
    height: 100% !important;
    min-height: 205px !important;
    display: block !important;
  }

  #video-card-container > div.p-4 {
    padding: 0.85rem 0.65rem 0.75rem 0.65rem !important;
  }

  #video-card-container h3 {
    font-size: 1rem !important;
    line-height: 1.35 !important;
  }

  #video-card-container p {
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
  }

  #video-card-container .flex.flex-wrap.items-center.gap-3 {
    gap: 0.5rem !important;
  }

  #btn-reproduzir-video,
  #btn-assistir-youtube {
    flex: 1 1 auto !important;
    min-height: 40px !important;
    padding: 0.5rem 0.75rem !important;
    font-size: 0.76rem !important;
    justify-content: center !important;
  }

  /* ------------------------------------------------------------------------
     3. CABEÇALHO MOBILE: COMPACTO, MINIMALISTA E EM LINHA ÚNICA
     ------------------------------------------------------------------------ */
  header[data-purpose="site-top-bar"] {
    padding: 0.4rem 0 !important;
    background-color: #ffffff !important;
    position: relative !important;
    z-index: 1000 !important;
  }

  header[data-purpose="site-top-bar"] .max-w-\[1720px\] {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
  }

  /* Logomarca oficial proporcional e nítida */
  header[data-purpose="site-top-bar"] img[data-cms="site-logo"] {
    height: 38px !important;
    max-height: 38px !important;
    width: auto !important;
    object-fit: contain !important;
  }

  /* Mini-widget de tempo e hora: simplificado e elegante */
  [data-purpose="header-meta-weather"] {
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
  }

  [data-purpose="header-meta-weather"] .inline-flex {
    padding: 0.2rem 0.5rem !important;
    font-size: 11px !important;
  }

  /* Ocultar elementos verbosos que quebram o layout do topo mobile */
  [data-purpose="header-meta-weather"] #header-live-date,
  [data-purpose="header-meta-weather"] #header-live-location,
  [data-purpose="header-meta-weather"] .text-slate-400,
  [data-purpose="header-meta-weather"] .border-l {
    display: none !important;
  }

  /* Ocultar botão repetitivo de colaborador do topo mobile (já existe no drawer com destaque) */
  header[data-purpose="site-top-bar"] button[onclick*="institutional-login-modal"] {
    display: none !important;
  }

  /* Botão Hamburguer fácil de tocar */
  header[data-purpose="site-top-bar"] button[onclick*="mobile-nav-drawer"] {
    display: inline-flex !important;
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0.65rem !important;
    background-color: #f1f5f9 !important;
    color: #1b4b8a !important;
  }

  /* ------------------------------------------------------------------------
     4. BANNER MOBILE: ELIMINAÇÃO DE BARRA AZUL RESIDUAL & PROPORÇÕES PERFEITAS
     ------------------------------------------------------------------------ */
  [data-purpose="hero-banner"],
  .hc-tab-banner {
    min-height: 0 !important;
    height: auto !important;
    background-color: transparent !important;
    border-bottom: 1px solid #cbd5e1 !important;
  }

  [data-purpose="hero-banner"] > div,
  .hc-tab-banner > div {
    min-height: 185px !important;
    max-height: 240px !important;
    height: 210px !important;
    aspect-ratio: 16 / 9 !important;
    width: 100% !important;
    position: relative !important;
    overflow: hidden !important;
  }

  /* Preenchimento total do slide sem deixar espaço ou barra azul à mostra */
  .hc-hero-slideshow-wrapper,
  .hc-hero-slide,
  .hc-hero-slide img,
  .hero-cover-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  /* CTAs no Banner mobile: compactos, nítidos e sem colisão */
  [data-purpose="hero-call-to-actions"] {
    bottom: 0.65rem !important;
    left: 0.65rem !important;
    right: auto !important;
    gap: 0.35rem !important;
    z-index: 20 !important;
  }

  [data-purpose="hero-call-to-actions"] a {
    padding: 0.35rem 0.65rem !important;
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
    border-radius: 0.5rem !important;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.45) !important;
  }

  /* Tagline no Banner mobile: elegante no canto superior direito */
  [data-purpose="hero-tagline"] {
    top: 0.65rem !important;
    right: 0.65rem !important;
    bottom: auto !important;
    max-width: 78% !important;
    z-index: 20 !important;
  }

  [data-purpose="hero-tagline"] h1 {
    font-size: 0.92rem !important;
    line-height: 1.2 !important;
  }

  [data-purpose="hero-tagline"] h1 span {
    font-size: 0.78rem !important;
    line-height: 1.2 !important;
  }

  /* Banners das páginas internas: badge de aba compacto */
  .hc-tab-banner .absolute.bottom-5,
  .hc-tab-banner .absolute.bottom-7 {
    bottom: 0.65rem !important;
    left: 0.65rem !important;
    right: 0.65rem !important;
  }

  .hc-tab-banner .inline-flex {
    padding: 0.2rem 0.6rem !important;
    font-size: 10.5px !important;
  }

  /* Indicadores do slideshow móvel */
  .hc-hero-indicators {
    bottom: 5px !important;
    gap: 4px !important;
    padding: 2px 6px !important;
  }

  /* ------------------------------------------------------------------------
     5. LAYOUT & ESPAÇAMENTOS EQUILIBRADOS: PÁGINAS MAIS CURTAS E LIMPAS
     ------------------------------------------------------------------------ */
  /* Reduzir espaçamentos verticais excessivos que alongam a página em smartphones */
  .py-space-3xl,
  .py-space-2xl,
  .py-16,
  .py-20,
  .py-24,
  section.py-16,
  section.py-20,
  section.py-24 {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }

  .my-12,
  .my-16,
  .my-20 {
    margin-top: 1.25rem !important;
    margin-bottom: 1.25rem !important;
  }

  .gap-12,
  .gap-10,
  .gap-space-xl,
  .gap-space-2xl {
    gap: 1.15rem !important;
  }

  .space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.85rem * calc(1 - var(--tw-space-y-reverse))) !important;
    margin-bottom: calc(0.85rem * var(--tw-space-y-reverse)) !important;
  }

  /* Padding horizontal seguro e amplo */
  .px-gutter-desktop,
  .px-gutter-mobile,
  .max-w-7xl,
  .max-w-6xl,
  main > div {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  /* ------------------------------------------------------------------------
     6. TIPOGRAFIA UNIFORME E EQUILIBRADA (ANTI-AMPLIAÇÃO EXCESSIVA)
     ------------------------------------------------------------------------ */
  h1,
  .font-display,
  .font-headline-lg {
    font-size: 1.45rem !important;
    line-height: 1.22 !important;
    letter-spacing: -0.02em !important;
  }

  h2,
  .font-headline-md,
  .text-3xl,
  .text-4xl {
    font-size: 1.22rem !important;
    line-height: 1.28 !important;
    letter-spacing: -0.015em !important;
  }

  h3,
  .font-headline-sm,
  .text-2xl {
    font-size: 1.05rem !important;
    line-height: 1.32 !important;
  }

  h4 {
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
  }

  p,
  .font-body-md,
  .text-base,
  .text-lg {
    font-size: 0.875rem !important;
    line-height: 1.55 !important;
  }

  .font-body-lg,
  .lead-text {
    font-size: 0.925rem !important;
    line-height: 1.55 !important;
  }

  .font-body-sm,
  .text-sm {
    font-size: 0.8125rem !important;
    line-height: 1.5 !important;
  }

  .text-xs,
  .font-label-sm {
    font-size: 0.72rem !important;
    line-height: 1.4 !important;
  }

  /* ------------------------------------------------------------------------
     7. SECÇÕES COMPACTAS EM GRELHAS E COLUNAS (PADRÃO VISUAL PÁGINA INÍCIO)
     Organização lado a lado em 2 colunas (esquerda e direita) em todas as abas
     Fim dos blocos verticais intermináveis e máxima informação num único ecrã
     ------------------------------------------------------------------------ */
  /* Pilares estratégicos na página inicial em 2 colunas organizadas */
  [data-purpose="strategic-pillars"] {
    margin-top: 0.85rem !important;
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
  }

  [data-purpose="strategic-pillars"] .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
    padding: 0.65rem !important;
  }

  [data-purpose="strategic-pillars"] .p-2\.5,
  [data-purpose="strategic-pillars"] .p-3 {
    padding: 0.5rem !important;
  }

  [data-purpose="strategic-pillars"] .w-8,
  [data-purpose="strategic-pillars"] .w-11 {
    width: 2rem !important;
    height: 2rem !important;
  }

  /* Indicadores técnicos (MW, Disponibilidade, SCADA) compactos em 3 colunas */
  .grid.grid-cols-2.sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
    padding-top: 0.5rem !important;
  }

  .grid.grid-cols-2.sm\:grid-cols-3 .text-xl {
    font-size: 0.95rem !important;
  }

  .grid.grid-cols-2.sm\:grid-cols-3 .text-xs {
    font-size: 0.68rem !important;
  }

  /* Cartão destaque operacional (O que fazemos) na página inicial */
  #o-que-fazemos {
    padding: 1.15rem !important;
    border-radius: 1.25rem !important;
  }

  #o-que-fazemos h3 {
    font-size: 1.15rem !important;
    margin-bottom: 0.5rem !important;
  }

  #o-que-fazemos p {
    font-size: 0.82rem !important;
    margin-bottom: 0.85rem !important;
  }

  #o-que-fazemos .space-y-3\.5 {
    gap: 0.4rem !important;
    margin-bottom: 0.85rem !important;
  }

  /* ========================================================================
     8. UNIFICAÇÃO RESPONSIVA DAS ABAS: PADRÃO VISUAL INÍCIO EM TODAS AS PÁGINAS
     ======================================================================== */

  /* Regra universal: transformar grelhas de 1 coluna em grelhas de 2 colunas lado a lado */
  .grid.grid-cols-1.md\:grid-cols-2,
  .grid.grid-cols-1.md\:grid-cols-3,
  .grid.grid-cols-1.md\:grid-cols-4,
  .grid.grid-cols-1.lg\:grid-cols-3,
  .grid.grid-cols-1.lg\:grid-cols-4,
  .grid.grid-cols-1.sm\:grid-cols-2,
  #projects-grid,
  #publications-grid,
  #governanca-membros-grid,
  #job-cards-container,
  .membros-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.6rem !important;
  }

  /* Cartões gerais: visual compacto, bordas suaves, sombra discreta */
  .bg-surface-container-lowest,
  .bg-surface-container-low,
  .project-card,
  .hc-card-smooth,
  article.rounded-xl,
  article.rounded-2xl,
  #projects-grid > div,
  #publications-grid > article,
  #publications-grid > div,
  #parceiros .grid > div,
  #historia .grid > div,
  #objectivo-missao-visao .grid > div,
  #ficha-tecnica-indices .grid > div,
  #job-cards-container > div {
    padding: 0.75rem 0.65rem !important;
    border-radius: 0.85rem !important;
    box-shadow: 0 2px 8px rgba(0, 20, 60, 0.06) !important;
  }

  /* Redução equilibrada de imagens dentro de cartões em mobile (evita esticar a tela) */
  .project-card img,
  #projects-grid img,
  .project-card .relative.h-60,
  #projects-grid .relative.h-60,
  #projects-grid .h-60,
  .relative.h-60 {
    height: 95px !important;
    min-height: 95px !important;
    max-height: 95px !important;
    border-radius: 0.65rem !important;
    object-fit: cover !important;
  }

  /* Ícones nos cartões em tamanho uniforme e discreto */
  .project-card .w-10,
  .project-card .w-12,
  #parceiros .w-12,
  #parceiros .w-10,
  #historia .w-10,
  #objectivo-missao-visao .w-12,
  #objectivo-missao-visao .w-10,
  #ficha-tecnica-indices .w-10 {
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    border-radius: 0.5rem !important;
  }

  .project-card .w-10 svg,
  .project-card .w-12 svg,
  #parceiros .w-12 svg,
  #parceiros .w-10 svg,
  #historia .w-10 svg,
  #objectivo-missao-visao .w-12 svg,
  #objectivo-missao-visao .w-10 svg,
  #ficha-tecnica-indices .w-10 svg {
    width: 1.1rem !important;
    height: 1.1rem !important;
  }

  /* Títulos de cartões: compactos e elegantes */
  .project-card h3,
  .project-card h4,
  #projects-grid h3,
  #projects-grid h4,
  #publications-grid h3,
  #publications-grid h4,
  #parceiros h3,
  #parceiros h4,
  #historia h3,
  #historia .font-display,
  #objectivo-missao-visao h3,
  #objectivo-missao-visao h4,
  #ficha-tecnica-indices h3,
  #job-cards-container h3 {
    font-size: 0.82rem !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    margin-bottom: 0.25rem !important;
  }

  /* Resumos e textos descritivos dentro dos cartões: concisos com line-clamp */
  .project-card p,
  #projects-grid p,
  #publications-grid p,
  #parceiros p,
  #historia p,
  #objectivo-missao-visao p,
  #job-cards-container p {
    font-size: 0.72rem !important;
    line-height: 1.38 !important;
    margin-top: 0.2rem !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  /* Etiquetas e badges de cartões */
  .project-card span.text-\[11px\],
  .project-card span.text-xs,
  #parceiros span.text-\[11px\],
  #publications-grid span.text-xs {
    font-size: 9.5px !important;
    padding: 0.15rem 0.4rem !important;
  }

  /* Botões e links de acção dentro dos cartões no mobile */
  .project-card a,
  .project-card button,
  #publications-grid a,
  #publications-grid button,
  #job-cards-container a,
  #job-cards-container button {
    font-size: 0.72rem !important;
    min-height: 32px !important;
    padding: 0.35rem 0.6rem !important;
    border-radius: 0.5rem !important;
    justify-content: center !important;
    width: 100% !important;
  }

  /* --- ABA 1: SOBRE NÓS --- */
  /* Linha do tempo histórica (2002, 2004, 2007, 2024): 2 colunas lado a lado */
  #historia .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  #historia .font-display {
    font-size: 1.15rem !important;
  }

  /* Objectivo, Missão, Visão e Valores: 2 colunas lado a lado */
  #objectivo-missao-visao .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  /* Governança Corporativa: cards compactos em grelha de 2 colunas lado a lado */
  #governanca-section .grid,
  #governanca-membros-grid,
  .membros-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  .membro-card-hierarquia {
    padding: 0.65rem !important;
    border-radius: 0.85rem !important;
  }

  .membro-card-hierarquia img {
    height: 100px !important;
    object-fit: cover !important;
    border-radius: 0.65rem !important;
  }

  .membro-card-hierarquia h3,
  .membro-card-hierarquia h4 {
    font-size: 0.8rem !important;
    margin-top: 0.35rem !important;
  }

  .membro-card-hierarquia p {
    font-size: 0.68rem !important;
  }

  /* Identidade e Infraestruturas: grelha de 2 colunas lado a lado */
  #identidade .grid-cols-1.lg\:grid-cols-12,
  #identidade .grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.85rem !important;
  }

  #identidade .lg\:col-span-7 .grid,
  #identidade .grid-cols-1.sm\:grid-cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
  }

  /* --- ABA 2: PRODUÇÃO DE ENERGIA --- */
  /* Índices Técnicos do Complexo em 2 colunas lado a lado */
  #ficha-tecnica-indices .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  #ficha-tecnica-indices ul {
    gap: 0.35rem !important;
  }

  #ficha-tecnica-indices li {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
    font-size: 0.72rem !important;
  }

  #ficha-tecnica-indices li span.block {
    font-size: 0.65rem !important;
  }

  /* Passos de processo / etapas de conversão hidroeléctrica */
  #process-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.45rem !important;
    margin-bottom: 0.85rem !important;
  }

  #process-steps > div {
    padding: 0.5rem !important;
  }

  /* --- ABA 3: PROGRAMAS & RESPONSABILIDADE SOCIAL --- */
  #projects-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  /* Métricas de investimento comunitário em 2 colunas lado a lado */
  #investimentos-comunitarios .grid,
  #investimentos-comunitarios .grid-cols-1.sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
  }

  #investimentos-comunitarios .p-4 {
    padding: 0.65rem !important;
  }

  /* --- ABA 4: PARCEIROS & CLIENTES --- */
  /* As 8 entidades em grelha equilibrada de 2 colunas lado a lado */
  #parceiros .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  #parceiros .grid > div {
    gap: 0.45rem !important;
  }

  #parceiros .w-12 {
    width: 2.2rem !important;
    height: 2.2rem !important;
    font-size: 0.75rem !important;
  }

  /* --- ABA 5: PROJECTOS & INVESTIMENTOS --- */
  #projectos .grid,
  #projects-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  /* Timeline de projectos em 2 colunas lado a lado */
  .grid.grid-cols-1.md\:grid-cols-4.relative {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  /* --- ABA 6: PUBLICAÇÕES & RELATÓRIOS --- */
  #publications-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  #publications-grid article,
  #publications-grid > div {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  /* --- ABA 7: CARREIRAS & CANDIDATURA --- */
  #job-cards-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  /* Vantagens corporativas e etapas de recrutamento em 2 colunas */
  #etapas-recrutamento .grid,
  .grid.grid-cols-1.md\:grid-cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.55rem !important;
  }

  /* Formulário de candidatura: pares de campos em 2 colunas lado a lado */
  .grid.grid-cols-1.sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
  }

  .grid.grid-cols-1.sm\:grid-cols-2 input,
  .grid.grid-cols-1.sm\:grid-cols-2 select {
    font-size: 14px !important;
    min-height: 38px !important;
    padding: 0.35rem 0.6rem !important;
  }

  /* Barra de navegação Breadcrumb nas abas internas */
  nav[aria-label*="Breadcrumb"],
  nav[aria-label*="Navegação estrutural"] {
    font-size: 11px !important;
  }

  .py-space-sm,
  .py-space-md {
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
  }

  /* Cabeçalhos de secção com margem inferior reduzida para economizar rolagem */
  .mb-space-2xl,
  .mb-space-xl,
  .pb-6 {
    margin-bottom: 0.75rem !important;
    padding-bottom: 0.5rem !important;
  }

  /* Rodapé mobile limpo e compacto */
  footer[data-purpose="site-footer"],
  footer#site-footer {
    padding-top: 2rem !important;
    padding-bottom: 1.5rem !important;
  }

  footer[data-purpose="site-footer"] .grid {
    gap: 1.5rem !important;
    padding-bottom: 1.5rem !important;
  }

  footer[data-purpose="site-footer"] .text-xs {
    font-size: 0.76rem !important;
  }
}





/* Governança Corporativa: cards limpos, equilibrados e fotografias 100% visíveis */
#governanca-section {
  padding-top: 2rem !important;
  padding-bottom: 2.5rem !important;
}
#governanca-section .mb-space-2xl {
  margin-bottom: 1.25rem !important;
}
#governanca-membros-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
}
@media (max-width: 1023px) and (min-width: 640px) {
  #governanca-membros-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.85rem !important;
  }
}
@media (max-width: 639px) {
  #governanca-membros-grid {
    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    max-width: 380px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 1rem !important;
  }
}
.membro-card-hierarquia {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  background-color: #ffffff !important;
  box-shadow: 0 4px 16px rgba(0, 32, 90, 0.08) !important;
  border: 1px solid rgba(226, 232, 240, 0.9) !important;
}
.membro-card-hierarquia .relative.aspect-\[4\/5\] {
  height: 260px !important;
  min-height: 260px !important;
  max-height: 280px !important;
  background-color: #0f172a !important;
  position: relative !important;
  overflow: hidden !important;
}
.membro-card-hierarquia img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 20% !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}



/* ==========================================================================
   MINIATURAS ELEGANTES: ÍCONES DE ELETRICIDADE, ENERGIA E LIVRO
   Evita ícones vetoriais enormes, garantindo proporção discreta e responsiva
   ========================================================================== */
svg path[d*="M13 10V3L4 14h7v7l9-11h-7z"],
svg path[d*="M12 6.253"],
svg path[d*="M12 2.69l5.66 5.66a8 8 0 11-11.31 0z"] {
  stroke-width: 1.8 !important;
}

/* Ícones de vetores no topo, grelhas e cabeçalhos forçados a tamanho miniatura */
.nav-item-icon svg,
.mobile-subtheme-link svg {
  width: 14px !important;
  height: 14px !important;
  max-width: 14px !important;
  max-height: 14px !important;
}

/* Controlo de tamanho de ícones em cartões técnicos e pilares */
[data-purpose="strategic-pillars"] svg,
.bg-blue-100 svg,
.bg-blue-50 svg {
  max-width: 1.15rem !important;
  max-height: 1.15rem !important;
}

/* Qualquer SVG isolado com relâmpago ou livro no site nunca excede 18px */
svg:has(path[d*="M13 10V3L4 14h7v7l9-11h-7z"]),
svg:has(path[d*="M12 6.253"]) {
  max-width: 18px !important;
  max-height: 18px !important;
}



/* ==========================================================================
   ANIMAÇÕES DINÂMICAS EXCLUSIVAS | ABA INÍCIO (HIDROCHICAPA)
   1. Flutuação suave contínua para botões principais e elementos de botão
   2. Efeito de digitalização progressiva (Typewriter) com fade-out cíclico
   3. Dinâmica fluida e elegante de entrada dos blocos
   ========================================================================== */

/* Movimento flutuante suave e contínuo para botões principais */
@keyframes hcFloatSoft {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-4px);
  }
}

@keyframes hcFloatSoftAlt {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-3.5px);
  }
}

/* Aplicação aos botões da hero */
[data-purpose="hero-call-to-actions"] a:first-child {
  animation: hcFloatSoft 3.8s ease-in-out infinite !important;
  will-change: transform;
}

[data-purpose="hero-call-to-actions"] a:last-child {
  animation: hcFloatSoftAlt 4.2s ease-in-out 0.6s infinite !important;
  will-change: transform;
}

/* Elementos informativos em formato de botão */
.inline-flex.items-center.space-x-2.bg-blue-50,
.inline-flex.items-center.space-x-2.bg-white,
[data-purpose="operational-overview"] a,
#o-que-fazemos a {
  animation: hcFloatSoft 4s ease-in-out 0.3s infinite;
  will-change: transform;
}

/* Indicadores de métricas com micro-elevação ao passar e respiração suave */
[data-purpose="strategic-pillars"] .grid > div {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}
[data-purpose="strategic-pillars"] .grid > div:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px -6px rgba(27, 75, 138, 0.15);
}

/* Estilo do cursor de escrita suave para o texto digitado */
.hc-typewriter-text {
  display: inline-block;
  min-height: 1.2em;
  position: relative;
  transition: opacity 0.5s ease-in-out;
}

.hc-typewriter-cursor {
  display: inline-block;
  margin-left: 2px;
  width: 2.5px;
  height: 1em;
  vertical-align: -0.1em;
  background-color: #38bdf8;
  animation: hcCursorBlink 0.85s infinite;
}

@keyframes hcCursorBlink {
  0%, 45% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

/* Transição de fade suave durante o reset do texto */
.hc-typewriter-fadeout {
  opacity: 0 !important;
  transition: opacity 0.75s ease-out !important;
}

img.hero-cover-img,
.hc-hero-slide img {
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}

/* FORCED ZERO SCREEN FLASH */
.hc-hero-slideshow-wrapper {
  background-color: transparent !important;
}
.hc-hero-slide.active,
.hc-hero-slide.initial {
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 2 !important;
}
.hc-hero-slide img {
  opacity: 1 !important;
  visibility: visible !important;
}

/* ==========================================================================
   MINIMALIST PUBLICATIONS GRID (IMAGENS MAIORES, VISÍVEIS E LEGENDA CURTA)
   ========================================================================== */
#publications-grid .pub-card {
  padding: 0 !important;
  background-color: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 1rem !important;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05) !important;
  transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1) !important;
  overflow: hidden !important;
  cursor: pointer !important;
}

#publications-grid .pub-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 24px -6px rgba(0, 50, 135, 0.12), 0 4px 8px -2px rgba(0, 0, 0, 0.06) !important;
  border-color: #cbd5e1 !important;
}

#publications-grid .pub-card > div:first-child {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 220px !important;
  aspect-ratio: 16 / 11 !important;
  overflow: hidden !important;
  background-color: #f1f5f9 !important;
  border-radius: 1rem 1rem 0 0 !important;
}

#publications-grid .pub-card img {
  width: 100% !important;
  height: 100% !important;
  min-height: 220px !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
  display: block !important;
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

#publications-grid .pub-card:hover img {
  transform: scale(1.05) !important;
}

#publications-grid .pub-card > div:last-child {
  padding: 0.85rem 1rem !important;
  background-color: #ffffff !important;
}

#publications-grid .pub-card h3 {
  font-size: 0.95rem !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

#publications-grid .pub-card:hover h3 {
  color: #1b4b8a !important;
}

@media (max-width: 767px) {
  #publications-grid .pub-card > div:first-child,
  #publications-grid .pub-card img {
    min-height: 130px !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }
  #publications-grid .pub-card > div:last-child {
    padding: 0.65rem 0.75rem !important;
  }
  #publications-grid .pub-card h3 {
    font-size: 0.8rem !important;
    line-height: 1.25 !important;
  }
}

/* ==========================================================================
   MINIMALIST UNIFORM CARDS FOR RESPONSABILIDADE SOCIAL (#projects-grid em programas.html)
   ========================================================================== */
#projects-grid .project-card {
  padding: 0 !important;
  background-color: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 1rem !important;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05) !important;
  transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
}

#projects-grid .project-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 24px -6px rgba(0, 50, 135, 0.12), 0 4px 8px -2px rgba(0, 0, 0, 0.06) !important;
  border-color: #cbd5e1 !important;
}

#projects-grid .project-card > div:first-child {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 220px !important;
  aspect-ratio: 16 / 10 !important;
  overflow: hidden !important;
  background-color: #f1f5f9 !important;
  border-radius: 1rem 1rem 0 0 !important;
}

#projects-grid .project-card img {
  width: 100% !important;
  height: 100% !important;
  min-height: 220px !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 0 !important;
  display: block !important;
  transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}

#projects-grid .project-card:hover img {
  transform: scale(1.05) !important;
}

#projects-grid .project-card > div:last-child {
  padding: 1rem 1.25rem !important;
  background-color: #ffffff !important;
}

#projects-grid .project-card h3 {
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

#projects-grid .project-card:hover h3 {
  color: #1b4b8a !important;
}

#projects-grid .project-card p {
  font-size: 0.825rem !important;
  line-height: 1.45 !important;
  color: #475569 !important;
  margin-top: 0.35rem !important;
  margin-bottom: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

@media (max-width: 767px) {
  #projects-grid .project-card > div:first-child,
  #projects-grid .project-card img {
    min-height: 130px !important;
    height: auto !important;
    aspect-ratio: 16 / 10 !important;
  }
  #projects-grid .project-card > div:last-child {
    padding: 0.75rem 0.85rem !important;
  }
  #projects-grid .project-card h3 {
    font-size: 0.85rem !important;
    line-height: 1.25 !important;
  }
  #projects-grid .project-card p {
    font-size: 0.72rem !important;
    line-height: 1.35 !important;
  }
}

/* ==========================================================================
   PILLARS: OBJECTIVO, MISSÃO, VISÃO E VALORES (QUADRADOS AMPLOS & TEXTO SUAVE)
   ========================================================================== */
#objectivo-missao-visao .grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.5rem !important;
}

#objectivo-missao-visao .grid > div {
  padding: 2rem !important;
  border-radius: 1.5rem !important;
  min-height: auto !important;
}

#objectivo-missao-visao p {
  text-align: left !important;
  letter-spacing: -0.01em !important;
  word-spacing: normal !important;
  line-height: 1.5 !important;
  text-justify: auto !important;
  font-size: 0.875rem !important;
  margin-top: 0.5rem !important;
}

#objectivo-missao-visao ul {
  letter-spacing: -0.01em !important;
}

#objectivo-missao-visao li {
  font-size: 0.825rem !important;
  line-height: 1.4 !important;
}

@media (max-width: 900px) {
  #objectivo-missao-visao .grid {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }
  #objectivo-missao-visao .grid > div {
    padding: 1.5rem 1.25rem !important;
    border-radius: 1.25rem !important;
  }
  #objectivo-missao-visao p {
    font-size: 0.825rem !important;
    line-height: 1.45 !important;
  }
}
