/**
 * Base CSS — Ader-al Theme
 * Reset, tipografia global, layout base e utilitários.
 *
 * @package ader-al
 */

/* ═══════════════════════════════════════════════════
   RESET & BOX MODEL
═══════════════════════════════════════════════════ */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: var(--ader-font-size);
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--ader-font);
	font-size: 1rem;
	font-weight: var(--ader-font-weight-normal);
	line-height: var(--ader-line-height);
	color: var(--ader-text);
	background-color: var(--ader-bg);
	/* Espaço para a barra de apoio sticky no fundo */
	padding-bottom: 68px; /* altura da barra de apoio + margem */
	overflow-x: hidden;
}

/* ═══════════════════════════════════════════════════
   TIPOGRAFIA
═══════════════════════════════════════════════════ */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--ader-font);
	font-weight: var(--ader-font-weight-bold);
	line-height: 1.2;
	color: var(--ader-text);
}

h1 { font-size: var(--ader-font-h1); }
h2 { font-size: var(--ader-font-h2); }
h3 { font-size: var(--ader-font-h3); }
h4 { font-size: var(--ader-font-h4); }
h5 { font-size: var(--ader-font-h5); }
h6 { font-size: var(--ader-font-h6); }

p {
	margin-bottom: var(--ader-space-md);
}

p:last-child {
	margin-bottom: 0;
}

a {
	color: var(--ader-primary);
	text-decoration: none;
	transition: color var(--ader-transition-fast);
}

a:hover,
a:focus {
	color: var(--ader-primary-dark);
	text-decoration: underline;
}

a:focus-visible {
	outline: 2px solid var(--ader-secondary);
	outline-offset: 2px;
	border-radius: var(--ader-radius-sm);
}

ul, ol {
	padding-left: var(--ader-space-xl);
	margin-bottom: var(--ader-space-md);
}

li {
	margin-bottom: var(--ader-space-xs);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

figure {
	margin: 0;
}

strong, b {
	font-weight: var(--ader-font-weight-bold);
}

em, i {
	font-style: italic;
}

blockquote {
	border-left: 4px solid var(--ader-primary);
	padding: var(--ader-space-md) var(--ader-space-lg);
	margin: var(--ader-space-xl) 0;
	background: var(--ader-bg-alt);
	border-radius: 0 var(--ader-radius-md) var(--ader-radius-md) 0;
}

code, pre {
	font-family: 'Courier New', monospace;
	font-size: 0.9em;
}

pre {
	background: var(--ader-bg-alt);
	padding: var(--ader-space-lg);
	border-radius: var(--ader-radius-md);
	overflow-x: auto;
}

hr {
	border: none;
	border-top: 1px solid var(--ader-border);
	margin: var(--ader-space-2xl) 0;
}

/* ═══════════════════════════════════════════════════
   LAYOUT — CONTAINER
═══════════════════════════════════════════════════ */
.container {
	width: 100%;
	max-width: var(--ader-container-max);
	margin-inline: auto;
	padding-inline: var(--ader-container-pad);
}

.container--narrow {
	max-width: 860px;
}

.container--wide {
	max-width: 1440px;
}

/* ═══════════════════════════════════════════════════
   SITE WRAPPER
═══════════════════════════════════════════════════ */
#page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site-main {
	flex: 1;
}

/* ═══════════════════════════════════════════════════
   SKIP LINK (acessibilidade)
═══════════════════════════════════════════════════ */
.skip-link {
	position: absolute;
	top: -100%;
	left: var(--ader-space-md);
	background: var(--ader-primary);
	color: var(--ader-text-light);
	padding: var(--ader-space-sm) var(--ader-space-md);
	border-radius: var(--ader-radius-sm);
	z-index: var(--ader-z-modal);
	font-weight: var(--ader-font-weight-semi);
	transition: top var(--ader-transition-fast);
}

.skip-link:focus {
	top: var(--ader-space-md);
	text-decoration: none;
	color: var(--ader-text-light);
}

/* ═══════════════════════════════════════════════════
   SECÇÕES — ESTRUTURA BASE
═══════════════════════════════════════════════════ */
.ader-section {
	padding: var(--ader-section-padding);
}

.ader-section--sm {
	padding: var(--ader-section-padding-sm);
}

.ader-section-title {
	text-align: center;
	margin-bottom: var(--ader-space-2xl);
}

.ader-section-title h2 {
	color: inherit;
	position: relative;
	display: inline-block;
}

/* Linha decorativa abaixo do título */
.ader-section-title h2::after {
	content: '';
	display: block;
	width: 60px;
	height: 4px;
	background: var(--ader-secondary);
	border-radius: var(--ader-radius-full);
	margin: var(--ader-space-md) auto 0;
}

.ader-section-title p {
	color: var(--ader-text-muted);
	max-width: 600px;
	margin-inline: auto;
}

/* ═══════════════════════════════════════════════════
   TOP BAR
═══════════════════════════════════════════════════ */
.site-topbar {
	height: var(--ader-topbar-height);
	background: var(--ader-primary-dark);
	color: var(--ader-text-light);
	display: flex;
	align-items: center;
	position: relative;
	z-index: var(--ader-z-topbar);
}

.site-topbar .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ader-space-md);
}

.topbar-social {
	display: flex;
	align-items: center;
	gap: var(--ader-space-sm);
	list-style: none;
	padding: 0;
	margin: 0;
}

.topbar-social a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	color: var(--ader-text-light);
	opacity: 0.8;
	transition: opacity var(--ader-transition-fast);
}

.topbar-social a:hover {
	opacity: 1;
	text-decoration: none;
}

.topbar-social img {
	width: 18px;
	height: 18px;
	filter: brightness(0) invert(1);
}

.topbar-contact-link {
	color: var(--ader-secondary);
	font-size: 0.85rem;
	font-weight: var(--ader-font-weight-medium);
	letter-spacing: 0.02em;
	transition: opacity var(--ader-transition-fast);
}

.topbar-contact-link:hover {
	opacity: 0.85;
	color: var(--ader-secondary);
	text-decoration: none;
}

/* ═══════════════════════════════════════════════════
   HEADER PRINCIPAL
═══════════════════════════════════════════════════ */
.site-header {
	position: sticky;
	top: 0;
	z-index: var(--ader-z-header);
	background: var(--ader-bg);
	box-shadow: var(--ader-shadow-sm);
	transition: box-shadow var(--ader-transition);
}

.site-header.is-scrolled {
	box-shadow: var(--ader-shadow-md);
}

/* ── Linha 1: Logo + Contactos ── */
.header-body {
	background: var(--ader-bg);
	padding: var(--ader-space-md) 0;
	border-bottom: 1px solid var(--ader-border-light);
}

.header-body-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ader-space-xl);
}
fieldset{
	display:none;
}
/* Logótipo */
.header-logo a {
	display: block;
}

.header-logo img,
.site-logo {
	height: 90px;
	width: auto;
}

/* Info do header (contactos + horário) */
.header-info {
	display: flex;
	align-items: center;
	gap: 0;
}

/* Separador vertical entre itens */
.header-info-item + .header-info-item {
	border-left: 1px solid var(--ader-border-light);
	padding-left: var(--ader-space-xl);
	margin-left: var(--ader-space-xl);
}

.header-info-item {
	display: flex;
	align-items: center;
	gap: var(--ader-space-md);
}

/* Ícone com círculo */
.header-info-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--ader-border-light);
	color: var(--ader-primary);
	flex-shrink: 0;
}

/* Texto: label + valor */
.header-info-text {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.header-info-label {
	font-size: 0.75rem;
	font-weight: var(--ader-font-weight-semibold);
	color: var(--ader-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.header-info-value {
	font-size: 0.9rem;
	font-weight: var(--ader-font-weight-medium);
	color: var(--ader-text);
	text-decoration: none;
}

a.header-info-value:hover {
	color: var(--ader-primary);
}

.header-info-tel-nota {
	display: block;
	font-size: 0.7rem;
	color: var(--ader-text-muted, #888);
	font-weight: normal;
	margin-top: 2px;
}

/* ── Linha 2: Navegação ── */
.header-nav-bar {
	background: var(--ader-bg);
	border-top: none;
}

.header-nav-bar > .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* ═══════════════════════════════════════════════════
   NAVEGAÇÃO PRINCIPAL
═══════════════════════════════════════════════════ */
.main-navigation {
	position: relative;
}

.main-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	align-items: center;
	gap: var(--ader-space-xs);
}

.main-navigation li {
	position: relative;
	margin: 0;
}

.main-navigation a {
	display: block;
	padding: var(--ader-space-sm) var(--ader-space-md);
	color: var(--ader-text);
	font-weight: var(--ader-font-weight-medium);
	font-size: 0.9rem;
	border-radius: var(--ader-radius-sm);
	transition: color var(--ader-transition-fast), background var(--ader-transition-fast);
	white-space: nowrap;
	position: relative;
}

/* Linha animada por baixo — apenas nos itens de nível 1 */
.main-navigation > ul > li > a::after {
	content: '';
	position: absolute;
	bottom: 2px;
	left: var(--ader-space-md);
	right: var(--ader-space-md);
	height: 2px;
	background: var(--ader-secondary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s ease;
	border-radius: 2px;
}

.main-navigation > ul > li > a:hover::after,
.main-navigation > ul > li.current-menu-item > a::after,
.main-navigation > ul > li.current-menu-ancestor > a::after {
	transform: scaleX(1);
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current-menu-ancestor > a {
	color: var(--ader-primary);
	background: var(--ader-bg-alt);
	text-decoration: none;
}

/* Dropdown — nível 2 */
.main-navigation ul ul {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--ader-bg);
	border-radius: var(--ader-radius-md);
	box-shadow: var(--ader-shadow-lg);
	border: 1px solid var(--ader-border-light);
	z-index: var(--ader-z-menu);
	flex-direction: column;
	align-items: stretch;
	padding: var(--ader-space-xs) 0;
}

.main-navigation li:hover > ul,
.main-navigation li:focus-within > ul {
	display: flex;
}

.main-navigation ul ul,
.main-navigation ul ul li,
.main-navigation ul ul a {
	text-align: left !important;
}

.main-navigation ul ul a {
	border-radius: 0;
	padding: var(--ader-space-sm) var(--ader-space-lg);
	font-size: 0.875rem;
}

/* Dropdown — nível 3 */
.main-navigation ul ul ul {
	top: 0;
	left: 100%;
}

/* Indicador de sub-menu */
.main-navigation .menu-item-has-children > a::after {
	content: '▾';
	margin-left: var(--ader-space-xs);
	font-size: 0.75em;
}

/* Indicador flyout — nível 2+ com filhos */
.main-navigation ul ul .menu-item-has-children > a::after {
	content: '▸';
}

/* Menu hamburger (mobile) */
.mobile-nav-logo {
	display: none;
}

.mobile-nav-close {
	display: none;
}

.menu-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 40px;
	height: 40px;
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--ader-space-sm);
	border-radius: var(--ader-radius-sm);
}

.menu-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--ader-text);
	border-radius: 2px;
	transition: transform var(--ader-transition), opacity var(--ader-transition);
}

.menu-toggle.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.is-active span:nth-child(2) { opacity: 0; }
.menu-toggle.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ═══════════════════════════════════════════════════
   LAYOUT INTERIOR (20% + 80%)
═══════════════════════════════════════════════════ */
.interior-layout {
	display: grid;
	grid-template-columns: var(--ader-sidebar-width) 1fr;
	gap: var(--ader-space-3xl);
	padding-top: var(--ader-space-3xl);
	padding-bottom: var(--ader-space-3xl);
	align-items: start;
}

/* Header interior */
.interior-page-header {
	background: #555;
	color: var(--ader-text-light);
	min-height: 200px;
	display: flex;
	align-items: flex-end;
	position: relative;
	overflow: hidden;
}

.interior-page-header::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 1;
}

.interior-page-header .container {
	padding-top: var(--ader-space-3xl);
	padding-bottom: var(--ader-space-xl);
	position: relative;
	z-index: 2;
}

.interior-page-header .breadcrumb {
	position: relative;
	z-index: 2;
}

.interior-page-header h1 {
	color: var(--ader-text-light);
	font-size: var(--ader-font-h2);
	margin: 0;
}

.interior-header-bg {
	position: absolute;
	inset: 0;
	object-fit: cover;
	width: 100%;
	height: 100%;
	z-index: 0;
	opacity: 1;
}

/* Sidebar interior */
.sidebar-interior {
	position: sticky;
	top: calc(var(--ader-header-height) + var(--ader-space-lg));
}

.sidebar-nav-menu {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--ader-space-xl);
	border: 1px solid var(--ader-border);
	border-radius: var(--ader-radius-md);
	overflow: hidden;
}

.sidebar-nav-menu li {
	margin: 0;
}

.sidebar-nav-menu a {
	display: block;
	padding: var(--ader-space-sm) var(--ader-space-lg);
	color: var(--ader-text);
	border-bottom: 1px solid var(--ader-border-light);
	font-size: 0.9rem;
	transition: background var(--ader-transition-fast), color var(--ader-transition-fast);
}

.sidebar-nav-menu a:hover,
.sidebar-nav-menu .current-menu-item > a {
	background: var(--ader-primary);
	color: var(--ader-text-light);
	text-decoration: none;
}

.sidebar-nav-menu li:last-child a {
	border-bottom: none;
}

/* Sub-menus na sidebar */
.sidebar-nav-menu ul {
	list-style: none;
	padding: 0;
	margin: 0;
	background: var(--ader-bg-alt);
}

.sidebar-nav-menu ul a {
	padding-left: var(--ader-space-2xl);
	font-size: 0.85rem;
}

/* ═══════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════ */
.site-footer {
	background: var(--ader-sec-footer);
	color: rgba(255,255,255,0.8);
	padding: var(--ader-space-3xl) 0 0;
}

/* 3 Colunas */
.footer-cols {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ader-space-2xl);
	padding-bottom: var(--ader-space-2xl);
}

.footer-col-title {
	font-size: 0.75rem;
	font-weight: var(--ader-font-weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--ader-secondary);
	margin: 0 0 var(--ader-space-md);
}

.footer-col-text {
	font-size: 0.875rem;
	color: rgba(255,255,255,0.7);
	line-height: 1.6;
	margin: 0;
}

/* Contactos */
.footer-contactos {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--ader-space-sm);
}

.footer-contactos li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.875rem;
	color: rgba(255,255,255,0.7);
	line-height: 1.5;
}

.footer-contactos svg {
	flex-shrink: 0;
	margin-top: 3px;
	opacity: 0.6;
}

.footer-contactos a {
	color: rgba(255,255,255,0.7);
}

.footer-contactos a:hover {
	color: var(--ader-secondary);
	text-decoration: none;
}

/* Menu Links Úteis */
.footer-menu {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: var(--ader-space-xs);
}

.footer-menu a {
	color: rgba(255,255,255,0.7);
	font-size: 0.875rem;
	transition: color 0.2s;
}

.footer-menu a:hover {
	color: var(--ader-secondary);
	text-decoration: none;
}

/* Copyright */
.footer-bottom {
	border-top: 1px solid rgba(255,255,255,0.1);
	padding: var(--ader-space-lg) 0;
}

.footer-bottom p {
	font-size: 0.8rem;
	color: rgba(255,255,255,0.4);
	margin: 0;
	text-align: center;
}

/* ═══════════════════════════════════════════════════
   BARRA DE APOIO (STICKY BOTTOM)
═══════════════════════════════════════════════════ */
.apoio-bar {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--ader-sec-apoio);
	border-top: 2px solid var(--ader-border);
	z-index: var(--ader-z-apoio);
	display: flex;
	align-items: center;
	padding: 10px 0;
	box-shadow: 0 -2px 16px rgba(0,0,0,.08);
}

.apoio-bar .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--ader-space-lg);
}

.apoio-bar-left,
.apoio-bar-right {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 8px;
}

.apoio-bar-left {
	flex-shrink: 0;
}

.apoio-bar-right {
	grid-template-columns: auto minmax(400px, 1fr);
}

.apoio-bar img {
	height: auto;
	max-height: 44px;
	width: 100%;
	max-width: 160px;
	object-fit: contain;
	display: block;
}

.apoio-bar-right img:last-child {
	max-width: none;
}

/* ═══════════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════════ */
.hero-section {
	position: relative;
	height: var(--ader-hero-height);
	background: var(--ader-sec-hero);
	overflow: hidden;
}

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

.hero-slide {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	opacity: 0;
	transition: opacity 0.8s ease;
	pointer-events: none;
}

.hero-slide.is-active {
	opacity: 1;
	pointer-events: auto;
}

.hero-slide-bg {
	position: absolute;
	inset: 0;
	object-fit: cover;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.hero-slide-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to right,
		rgba(40, 62, 137, 0.75) 0%,
		rgba(40, 62, 137, 0.30) 60%,
		transparent 100%
	);
	z-index: 2;
}

.hero-slide-content {
	position: relative;
	z-index: 3;
	max-width: 650px;
	color: var(--ader-text-light);
	padding: 0 var(--ader-container-pad);
}

.hero-slide-title {
	font-size: clamp(2rem, 5vw, var(--ader-font-h1));
	font-weight: var(--ader-font-weight-bold);
	color: var(--ader-text-light);
	margin-bottom: var(--ader-space-lg);
	line-height: 1.1;
}

.hero-slide-text {
	font-size: 1.125rem;
	opacity: 0.9;
	margin-bottom: var(--ader-space-xl);
}

.hero-slide-buttons {
	display: flex;
	gap: var(--ader-space-md);
	flex-wrap: wrap;
}

/* Navegação do slider */
.hero-nav {
	position: absolute;
	bottom: var(--ader-space-xl);
	left: 50%;
	transform: translateX(-50%);
	z-index: 10;
	display: flex;
	gap: var(--ader-space-sm);
}

.hero-nav-dot {
	width: 10px;
	height: 10px;
	border-radius: var(--ader-radius-full);
	background: rgba(255,255,255,0.5);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background var(--ader-transition-fast), transform var(--ader-transition-fast);
}

.hero-nav-dot.is-active {
	background: var(--ader-secondary);
	transform: scale(1.3);
}

/* Setas prev/next */
.hero-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	background: rgba(255,255,255,0.15);
	border: 2px solid rgba(255,255,255,0.4);
	color: white;
	width: 48px;
	height: 48px;
	border-radius: var(--ader-radius-full);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	transition: background var(--ader-transition-fast);
	backdrop-filter: blur(4px);
}

.hero-arrow:hover {
	background: rgba(255,255,255,0.25);
}

.hero-arrow--prev { left: var(--ader-space-xl); }
.hero-arrow--next { right: var(--ader-space-xl); }

/* Hero — modo vídeo: ocupa todo o viewport */
.hero-section--video {
	height: 100vh;
	height: 100dvh;
}

.hero-video-wrapper {
	position: absolute;
	inset: 0;
	overflow: hidden;
}

.hero-video-wrapper video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: none;
}

/* Escala o iframe acima de 100% para cortar a UI do YouTube (título, logo, etc.)
   O overflow:hidden do wrapper garante que nada extravasa. */
.hero-video-wrapper iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%) scale(1.25);
	border: none;
	pointer-events: none;
}

/* Overlay transparente que bloqueia a interação com os controlos do YouTube */
.hero-video-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: transparent;
}

/* Título por cima do vídeo */
.hero-video-titulo-wrapper {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.35);
	padding: var(--ader-space-xl);
	text-align: center;
}

.hero-video-titulo {
	color: #ffffff;
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1.2;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
	margin: 0;
	max-width: 900px;
}

/* ═══════════════════════════════════════════════════
   AGENDA EM DESTAQUE
═══════════════════════════════════════════════════ */
.agenda-section {
	background: #fff;
}

.agenda-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ader-space-xl);
}

.agenda-card {
	background: var(--ader-bg);
	border-radius: var(--ader-radius-lg);
	overflow: hidden;
	box-shadow: var(--ader-shadow-sm);
	transition: transform var(--ader-transition), box-shadow var(--ader-transition);
	display: flex;
	flex-direction: column;
}

.agenda-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ader-shadow-md);
}

.agenda-card-img {
	aspect-ratio: 16/9;
	overflow: hidden;
	max-width: 500px;
}

.agenda-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--ader-transition-slow);
}

.agenda-card:hover .agenda-card-img img {
	transform: scale(1.05);
}

.agenda-card-body {
	padding: var(--ader-space-lg);
	flex: 1;
	display: flex;
	flex-direction: column;
}

.agenda-card-meta {
	display: flex;
	flex-direction: column;
	gap: var(--ader-space-xs);
	margin-bottom: var(--ader-space-sm);
}

.agenda-card-date,
.agenda-card-local {
	display: inline-flex;
	align-items: center;
	gap: var(--ader-space-xs);
	font-size: 0.8rem;
	font-weight: var(--ader-font-weight-semi);
	color: var(--ader-primary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.agenda-card-title {
	font-size: 1.1rem;
	font-weight: var(--ader-font-weight-semi);
	color: var(--ader-text);
	margin-bottom: var(--ader-space-sm);
	line-height: 1.3;
}

.agenda-card-excerpt {
	font-size: 0.875rem;
	color: var(--ader-text-muted);
	flex: 1;
	margin-bottom: var(--ader-space-md);
}

.agenda-card-link {
	margin-top: auto;
	font-size: 0.875rem;
	font-weight: var(--ader-font-weight-semi);
	color: var(--ader-primary);
}

/* ═══════════════════════════════════════════════════
   NOTÍCIAS
═══════════════════════════════════════════════════ */
.noticias-section {
	background: var(--ader-sec-agenda);
}

.noticias-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ader-space-xl);
	justify-items: center;
	justify-content: center;
}

.noticias-grid:has(.noticia-card:first-child:nth-last-child(2)) {
	grid-template-columns: repeat(2, minmax(0, 380px));
}

.noticias-grid--single {
	grid-template-columns: 1fr;
	max-width: 420px;
	margin-inline: auto;
}

.noticia-card {
	background: var(--ader-bg);
	border-radius: var(--ader-radius-lg);
	overflow: hidden;
	box-shadow: var(--ader-shadow-sm);
	border: 1px solid var(--ader-border-light);
	transition: transform var(--ader-transition), box-shadow var(--ader-transition);
	width: 100%;
	max-width: 400px;
	display: flex;
	flex-direction: column;
}

.noticia-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--ader-shadow-md);
}

.noticia-card-img {
	aspect-ratio: 16/9;
	overflow: hidden;
}

.noticia-card-img img {
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	background: var(--ader-bg-alt);
	transition: transform var(--ader-transition-slow);
}

.noticia-card:hover .noticia-card-img img {
	transform: scale(1.05);
}

.noticia-card-body {
	padding: var(--ader-space-lg);
	flex: 1;
	display: flex;
	flex-direction: column;
}

.noticia-card-meta {
	font-size: 0.8rem;
	color: var(--ader-text-muted);
	margin-bottom: var(--ader-space-sm);
}

.noticia-card-title {
	font-size: 1.05rem;
	font-weight: var(--ader-font-weight-semi);
	color: var(--ader-text);
	margin-bottom: var(--ader-space-sm);
	line-height: 1.3;
}

.noticia-card-excerpt {
	font-size: 0.875rem;
	color: var(--ader-text-muted);
	flex: 1;
}

/* ═══════════════════════════════════════════════════
   LOGÓTIPOS — CARROSSEL
═══════════════════════════════════════════════════ */
.logotipos-section {
	background: var(--ader-sec-logotipos);
	padding: var(--ader-space-2xl) 0;
	padding-top: calc(var(--ader-space-2xl) + 3rem);
	overflow: hidden;
}

.logotipos-track-wrapper {
	/* sem overflow hidden — logos centrados e estáticos */
}

.logotipos-track {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 3rem;
}

.logotipo-item {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.logotipo-item img {
	height: 150px;
	width: auto;
	max-width: 200px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.6;
	transition: filter var(--ader-transition), opacity var(--ader-transition);
}

.logotipo-item img:hover {
	filter: grayscale(0);
	opacity: 1;
}

/* ═══════════════════════════════════════════════════
   OS NOSSOS NÚMEROS
═══════════════════════════════════════════════════ */
.numeros-section {
	position: relative;
	background-color: #2a3a2a;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding-top: 5rem;
	padding-bottom: 0;
	overflow: visible;
	margin-bottom: 0;
}

/* Overlay escuro sobre a imagem */
.numeros-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 0;
}

/* Texto de topo — sobre a imagem */
.numeros-hero-text {
	position: relative;
	z-index: 1;
	text-align: center;
	padding: 0 var(--ader-space-xl) 4rem;
	color: #fff;
}

.numeros-supratitulo {
	font-size: 0.8rem;
	font-weight: var(--ader-font-weight-semibold);
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 var(--ader-space-md);
}

.numeros-titulo {
	font-size: clamp(1.75rem, 3.5vw, 2.75rem);
	font-weight: var(--ader-font-weight-bold);
	color: #ffffff;
	line-height: 1.25;
	margin: 0;
}

/* Painel — sobressai da secção */
.numeros-painel {
	position: relative;
	z-index: 1;
	margin: 0 2rem -3rem;
	border-radius: var(--ader-radius-lg);
	padding: var(--ader-space-2xl) var(--ader-space-xl);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

.numeros-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	text-align: center;
}

/* Separador vertical entre itens */
.numero-item + .numero-item {
	border-left: 1px solid rgba(255, 255, 255, 0.25);
}

.numero-item {
	padding: var(--ader-space-lg) var(--ader-space-xl);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--ader-space-sm);
}

.numero-valor {
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: var(--ader-font-weight-bold);
	color: #ffffff;
	line-height: 1;
	display: block;
}

.numero-label {
	font-size: 0.75rem;
	font-weight: var(--ader-font-weight-semibold);
	color: rgba(255, 255, 255, 0.85);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	line-height: 1.4;
}

/* ═══════════════════════════════════════════════════
   CONTACTOS
═══════════════════════════════════════════════════ */
.contactos-section {
	background: var(--ader-sec-contactos);
}

.contactos-equipa {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ader-space-md);
	margin-bottom: var(--ader-space-2xl);
}

.contactos-equipa-item {
	flex: 1 1 180px;
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: var(--ader-space-md);
	background: #fff;
	border-radius: var(--ader-radius-md);
	border-left: 3px solid var(--ader-primary);
	box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.contactos-equipa-nome {
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--ader-primary);
}

.contactos-equipa-cargo {
	font-size: 0.775rem;
	color: #666;
}

.contactos-equipa-email {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.775rem;
	color: var(--ader-primary);
	text-decoration: none;
	margin-top: 2px;
}

.contactos-equipa-email:hover {
	text-decoration: underline;
}

.contactos-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ader-space-3xl);
	align-items: start;
}

.contactos-mapa {
	border-radius: var(--ader-radius-lg);
	overflow: hidden;
	box-shadow: var(--ader-shadow-md);
	aspect-ratio: 4/3;
}

.contactos-mapa iframe {
	width: 100%;
	height: 100%;
	border: none;
	display: block;
}

.contactos-form-area h3 {
	margin-top: 20px;
	margin-bottom: var(--ader-space-xl);
	color: var(--ader-primary);
}

/* ═══════════════════════════════════════════════════
   BOTÕES
═══════════════════════════════════════════════════ */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--ader-space-sm);
	padding: 0.75rem 1.75rem;
	border-radius: var(--ader-radius-md);
	font-family: var(--ader-font);
	font-size: 0.95rem;
	font-weight: var(--ader-font-weight-semi);
	line-height: 1;
	cursor: pointer;
	border: 2px solid transparent;
	transition:
		background var(--ader-transition-fast),
		color var(--ader-transition-fast),
		border-color var(--ader-transition-fast),
		transform var(--ader-transition-fast),
		box-shadow var(--ader-transition-fast);
	text-decoration: none;
	white-space: nowrap;
}

.btn:focus-visible {
	outline: 2px solid var(--ader-secondary);
	outline-offset: 2px;
}

.btn:hover {
	transform: translateY(-1px);
	box-shadow: var(--ader-shadow-sm);
	text-decoration: none;
}

.btn-primary {
	background: var(--ader-primary);
	color: var(--ader-text-light);
	border-color: var(--ader-primary);
}

.btn-primary:hover {
	background: var(--ader-primary-dark);
	border-color: var(--ader-primary-dark);
	color: var(--ader-text-light);
}

.btn-secondary {
	background: var(--ader-secondary);
	color: var(--ader-text);
	border-color: var(--ader-secondary);
}

.btn-secondary:hover {
	background: var(--ader-secondary-dark);
	border-color: var(--ader-secondary-dark);
	color: var(--ader-text);
}

.btn-outline {
	background: transparent;
	color: var(--ader-text-light);
	border-color: var(--ader-text-light);
}

.btn-outline:hover {
	background: var(--ader-text-light);
	color: var(--ader-primary);
}

/* ═══════════════════════════════════════════════════
   ANIMAÇÕES — ESTADO INICIAL (GSAP)
   Os elementos ficam invisíveis até o GSAP os animar
═══════════════════════════════════════════════════ */
.ader-animate {
	opacity: 0;
	transform: translateY(30px);
}

/* Respeita preferência de movimento reduzido */
@media (prefers-reduced-motion: reduce) {
	.ader-animate {
		opacity: 1 !important;
		transform: none !important;
	}

	.logotipos-track {
		animation: none;
	}

	.hero-slide {
		transition: none;
	}
}

/* ═══════════════════════════════════════════════════
   UTILITÁRIOS
═══════════════════════════════════════════════════ */
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }

.text-primary   { color: var(--ader-primary); }
.text-secondary { color: var(--ader-secondary); }
.text-muted     { color: var(--ader-text-muted); }
.text-white     { color: var(--ader-text-light); }

.mt-auto { margin-top: auto; }
.mb-0    { margin-bottom: 0; }
