@charset "UTF-8";
/* =========================================================================
   Template CFAE Centro-Oeste — folha de estilo principal
   As cores, tipos de letra, raio e largura vêm de variáveis geradas nos
   parâmetros do template (ver lib/helper.php :: inlineCss).
   ========================================================================= */

/* ------------------------------------------------------------------ */
/* 1. Tokens de tema                                                   */
/* ------------------------------------------------------------------ */
:root {
	--c-bg: #ffffff;
	--c-bg-alt: var(--cfae-tint, #eef1fc);
	--c-surface: #ffffff;
	--c-surface-2: #f6f7fb;
	--c-text: #16192a;
	--c-text-soft: #4d5468;
	--c-muted: #737b90;
	--c-border: #e3e6ef;
	--c-border-strong: #c9cfe0;
	--c-shadow: 0 1px 2px rgba(16, 20, 40, .05), 0 10px 30px -12px rgba(16, 20, 40, .18);
	--c-shadow-lg: 0 2px 4px rgba(16, 20, 40, .06), 0 26px 60px -24px rgba(16, 20, 40, .3);
	--c-ring: 0 0 0 3px rgba(var(--cfae-primary-rgb), .28);
	--c-header-bg: rgba(255, 255, 255, .92);
	--c-header-text: var(--cfae-ink, #0e1330);
	--c-topbar-bg: var(--cfae-ink, #0e1330);
	--c-topbar-text: rgba(255, 255, 255, .82);
	--c-footer-bg: var(--cfae-ink, #0e1330);
	--c-footer-text: rgba(255, 255, 255, .74);
	--c-footer-title: #ffffff;
	--sp: clamp(1rem, .6rem + 1.6vw, 1.75rem);
	--sec-y: clamp(2.5rem, 1.4rem + 4.4vw, 5rem);
}

html[data-theme="dark"] {
	--c-bg: #0b0e1a;
	--c-bg-alt: #111527;
	--c-surface: #141930;
	--c-surface-2: #1a2040;
	--c-text: #e8eaf5;
	--c-text-soft: #b6bcd4;
	--c-muted: #8f97b4;
	--c-border: #262d4d;
	--c-border-strong: #38416b;
	--c-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 34px -14px rgba(0, 0, 0, .7);
	--c-shadow-lg: 0 2px 6px rgba(0, 0, 0, .5), 0 30px 70px -26px rgba(0, 0, 0, .85);
	--c-header-bg: rgba(11, 14, 26, .9);
	--c-header-text: #eef0fb;
	--c-topbar-bg: #070912;
	--c-topbar-text: rgba(255, 255, 255, .72);
	--c-footer-bg: #070912;
	--c-footer-text: rgba(255, 255, 255, .68);
}

html[data-contrast="high"] {
	--c-text: #000000;
	--c-text-soft: #1a1a1a;
	--c-muted: #333333;
	--c-border: #000000;
	--c-border-strong: #000000;
	--c-bg-alt: #ffffff;
	--c-surface-2: #ffffff;
}

html[data-contrast="high"][data-theme="dark"] {
	--c-text: #ffffff;
	--c-text-soft: #f0f0f0;
	--c-muted: #dddddd;
	--c-border: #ffffff;
	--c-bg: #000000;
	--c-bg-alt: #000000;
	--c-surface: #000000;
	--c-surface-2: #000000;
}

html[data-contrast="high"] a { text-decoration: underline; }

/* ------------------------------------------------------------------ */
/* 2. Base                                                             */
/* ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

html {
	font-size: var(--cfae-base, 16px);
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 6rem;
}

html[data-font-scale="1"] { font-size: calc(var(--cfae-base, 16px) * 1.12); }
html[data-font-scale="2"] { font-size: calc(var(--cfae-base, 16px) * 1.25); }
html[data-font-scale="-1"] { font-size: calc(var(--cfae-base, 16px) * .92); }

body.cfae {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-text);
	font-family: var(--cfae-font-body, sans-serif);
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

/* Regras base deliberadamente de baixa especificidade (seletores de elemento):
   qualquer regra de componente com uma classe vence-as sem precisar de !important. */
.cfae img { max-width: 100%; height: auto; }
.cfae svg { vertical-align: middle; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--cfae-font-heading, sans-serif);
	color: var(--c-text);
	line-height: 1.18;
	letter-spacing: -.015em;
	margin: 0 0 .6em;
	font-weight: 700;
}

h1 { font-size: clamp(1.9rem, 1.3rem + 2.2vw, 2.9rem); }
h2 { font-size: clamp(1.55rem, 1.15rem + 1.5vw, 2.2rem); }
h3 { font-size: clamp(1.2rem, 1rem + .7vw, 1.5rem); }
h4 { font-size: 1.12rem; }

p { margin: 0 0 1.1em; }

a {
	color: var(--cfae-primary);
	text-decoration: none;
	transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}

a:hover, a:focus-visible { color: var(--cfae-primary-d); text-decoration: underline; }

.cfae :focus-visible {
	outline: none;
	box-shadow: var(--c-ring);
	border-radius: var(--cfae-radius-sm, 8px);
}

hr { border: 0; border-top: 1px solid var(--c-border); margin: 2rem 0; }

blockquote {
	margin: 1.6rem 0;
	padding: .2rem 0 .2rem 1.25rem;
	border-left: 4px solid var(--cfae-accent);
	color: var(--c-text-soft);
	font-size: 1.06em;
}

code, pre {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9em;
	background: var(--c-surface-2);
	border-radius: var(--cfae-radius-sm, 8px);
}

code { padding: .15em .4em; }
pre { padding: 1rem 1.15rem; overflow: auto; border: 1px solid var(--c-border); }

.cfae-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	background: var(--cfae-primary);
	color: #fff;
	padding: .8rem 1.2rem;
	border-radius: 0 0 var(--cfae-radius-sm) 0;
}
.cfae-skip:focus { left: 0; }

.cfae-container {
	width: 100%;
	max-width: var(--cfae-container, 1280px);
	margin-inline: auto;
	padding-inline: clamp(1rem, .4rem + 2vw, 2rem);
}

.cfae-ico { width: 1.15em; height: 1.15em; flex: 0 0 auto; }

.cfae-section { padding-block: var(--sec-y); }
.cfae-section--tint { background: var(--c-bg-alt); }

.cfae-grid { display: grid; gap: clamp(1rem, .6rem + 1.2vw, 1.75rem); }
.cfae-grid--auto[data-cols="1"] { grid-template-columns: 1fr; }
.cfae-grid--auto[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfae-grid--auto[data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cfae-grid--auto[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cfae-grid--auto[data-cols="5"],
.cfae-grid--auto[data-cols="6"],
.cfae-grid--auto[data-cols="7"],
.cfae-grid--auto[data-cols="8"] { grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }

@media (max-width: 980px) {
	.cfae-grid--auto[data-cols="3"],
	.cfae-grid--auto[data-cols="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.cfae-grid--auto { grid-template-columns: 1fr !important; }
}

/* ------------------------------------------------------------------ */
/* 3. Botões                                                           */
/* ------------------------------------------------------------------ */
.cfae-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .78rem 1.35rem;
	border: 1px solid transparent;
	border-radius: var(--cfae-radius-sm, 8px);
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
	transition: transform .16s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.cfae-btn:hover { text-decoration: none; transform: translateY(-1px); }
.cfae-btn--sm { padding: .55rem 1rem; font-size: .875rem; }

.cfae-btn--accent {
	background: var(--cfae-accent);
	color: var(--cfae-accent-ink);
	box-shadow: 0 10px 24px -14px rgba(var(--cfae-accent-rgb), .95);
}
.cfae-btn--accent:hover { background: var(--cfae-accent); color: var(--cfae-accent-ink); filter: brightness(1.06); }

.cfae-btn--primary { background: var(--cfae-primary); color: #fff; }
.cfae-btn--primary:hover { background: var(--cfae-primary-d); color: #fff; }

.cfae-btn--outline {
	border-color: var(--c-border-strong);
	color: var(--c-text);
	background: transparent;
}
.cfae-btn--outline:hover { border-color: var(--cfae-primary); color: var(--cfae-primary); }

.cfae-btn--ghost {
	background: rgba(var(--cfae-primary-rgb), .08);
	color: var(--cfae-primary);
}
.cfae-btn--ghost:hover { background: rgba(var(--cfae-primary-rgb), .16); color: var(--cfae-primary-d); }

.cfae-btn--link { background: none; color: var(--c-text-soft); padding-inline: .35rem; }
.cfae-btn--link:hover { color: var(--cfae-primary); text-decoration: underline; }

html[data-theme="dark"] .cfae-btn--ghost { background: rgba(255, 255, 255, .09); color: #dfe3f7; }

/* ------------------------------------------------------------------ */
/* 4. Barra de topo                                                    */
/* ------------------------------------------------------------------ */
.cfae-topbar {
	background: var(--c-topbar-bg);
	color: var(--c-topbar-text);
	font-size: .82rem;
	border-bottom: 1px solid rgba(255, 255, 255, .07);
}
.cfae-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 2.7rem;
	flex-wrap: wrap;
}
.cfae-topbar__info { display: flex; align-items: center; gap: 1.35rem; flex-wrap: wrap; }
.cfae-topbar__item { display: inline-flex; align-items: center; gap: .42rem; color: inherit; }
.cfae-topbar__item:hover { color: #fff; text-decoration: none; }
.cfae-topbar__item .cfae-ico { opacity: .7; width: 1rem; height: 1rem; }
.cfae-topbar__tools { display: flex; align-items: center; gap: .75rem; }
/* Módulos publicados na barra de topo: mantêm-se discretos e não competem
   com o logótipo do cabeçalho. */
.cfae-topbar__module { display: flex; align-items: center; }
.cfae-topbar__module p { margin: 0; }
.cfae-topbar__module img { max-height: 1.9rem; width: auto; }

@media (max-width: 780px) {
	.cfae-topbar__item--notice { display: none; }
	.cfae-topbar__inner { justify-content: center; }
}

.cfae-a11y { display: inline-flex; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; overflow: hidden; }
.cfae-a11y__btn {
	background: none;
	border: 0;
	color: inherit;
	padding: .28rem .55rem;
	font-size: .78rem;
	font-weight: 600;
	cursor: pointer;
	line-height: 1;
	display: inline-flex;
	align-items: center;
}
.cfae-a11y__btn:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.cfae-a11y__btn .cfae-ico { width: .95rem; height: .95rem; }

.cfae-theme-toggle {
	background: rgba(255, 255, 255, .1);
	border: 0;
	color: inherit;
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.cfae-theme-toggle:hover { background: rgba(255, 255, 255, .2); color: #fff; }
.cfae-theme-toggle__moon { display: none; }
html[data-theme="dark"] .cfae-theme-toggle__sun { display: none; }
html[data-theme="dark"] .cfae-theme-toggle__moon { display: inline-flex; }

/* ------------------------------------------------------------------ */
/* 5. Redes sociais                                                    */
/* ------------------------------------------------------------------ */
.cfae-social { display: flex; align-items: center; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.cfae-social__link {
	width: 2.15rem;
	height: 2.15rem;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: inherit;
	background: rgba(255, 255, 255, .12);
	transition: transform .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.cfae-social__link .cfae-ico { width: 1.15rem; height: 1.15rem; }
.cfae-social__link:hover { color: #fff; transform: translateY(-2px); text-decoration: none; }
.cfae-social--footer { margin-top: 1.25rem; gap: .5rem; }
.cfae-social--footer .cfae-social__link { width: 2.5rem; height: 2.5rem; }
.cfae-social--footer .cfae-social__link .cfae-ico { width: 1.3rem; height: 1.3rem; }

/* --- Estilo "subtil": monocromático, cor da rede só ao passar o rato ----- */
body.cfae-social-subtil .cfae-social__link--facebook:hover { background: #1877f2; }
body.cfae-social-subtil .cfae-social__link--instagram:hover { background: linear-gradient(45deg, #f09433, #dc2743, #bc1888); }
body.cfae-social-subtil .cfae-social__link--youtube:hover { background: #ff0000; }
body.cfae-social-subtil .cfae-social__link--linkedin:hover { background: #0a66c2; }
body.cfae-social-subtil .cfae-social__link--whatsapp:hover { background: #25d366; }
body.cfae-social-subtil .cfae-social__link--padlet:hover { background: #f6415f; }

/* --- Estilo "marca": cores das redes sempre visíveis -------------------- */
body.cfae-social-marca .cfae-social__link { color: #fff; }
body.cfae-social-marca .cfae-social__link--facebook { background: #1877f2; }
body.cfae-social-marca .cfae-social__link--instagram { background: linear-gradient(45deg, #f09433 5%, #dc2743 55%, #bc1888 95%); }
body.cfae-social-marca .cfae-social__link--youtube { background: #ff0000; }
body.cfae-social-marca .cfae-social__link--linkedin { background: #0a66c2; }
body.cfae-social-marca .cfae-social__link--whatsapp { background: #25d366; }
body.cfae-social-marca .cfae-social__link--padlet { background: #f6415f; }
body.cfae-social-marca .cfae-social__link:hover { filter: brightness(1.12); box-shadow: 0 6px 16px -8px rgba(0, 0, 0, .8); }

/* --- Estilo "contorno": círculo vazado ---------------------------------- */
body.cfae-social-contorno .cfae-social__link { background: transparent; border: 1.5px solid currentColor; opacity: .82; }
body.cfae-social-contorno .cfae-social__link:hover { opacity: 1; background: rgba(255, 255, 255, .12); }
body.cfae-footer-light.cfae-social-contorno .cfae-social--footer .cfae-social__link:hover { background: rgba(var(--cfae-primary-rgb), .12); }

.cfae-social-float {
	position: fixed;
	left: .75rem;
	top: 50%;
	transform: translateY(-50%);
	z-index: 60;
}
.cfae-social--float { flex-direction: column; background: var(--c-surface); padding: .4rem; border-radius: 999px; box-shadow: var(--c-shadow); }
.cfae-social--float .cfae-social__link { background: transparent; color: var(--c-text-soft); }
@media (max-width: 900px) { .cfae-social-float { display: none; } }

/* ------------------------------------------------------------------ */
/* 6. Cabeçalho e navegação                                            */
/* ------------------------------------------------------------------ */
.cfae-header {
	background: var(--c-header-bg);
	color: var(--c-header-text);
	border-bottom: 1px solid var(--c-border);
	position: relative;
	z-index: 50;
}
body.cfae-sticky .cfae-header { position: sticky; top: 0; }
.cfae-header--stuck { box-shadow: var(--c-shadow); }

body.cfae-header-glass .cfae-header { backdrop-filter: saturate(1.6) blur(14px); background: color-mix(in srgb, var(--c-bg) 78%, transparent); }
@supports not (backdrop-filter: blur(1px)) { body.cfae-header-glass .cfae-header { background: var(--c-bg); } }

body.cfae-header-accent .cfae-header { background: var(--cfae-primary); color: #fff; border-bottom-color: rgba(255, 255, 255, .12); }
body.cfae-header-accent .cfae-nav ul.nav > li > a { color: rgba(255, 255, 255, .92); }
body.cfae-header-accent .cfae-nav ul.nav > li > a:hover,
body.cfae-header-accent .cfae-nav ul.nav > li.active > a { color: #fff; }
body.cfae-header-accent .cfae-nav ul.nav > li.active > a::after { background: var(--cfae-accent); }
body.cfae-header-accent .cfae-brand__slogan { color: rgba(255, 255, 255, .7); }

.cfae-header__inner {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: clamp(.6rem, .2rem + 1.2vw, 1.6rem);
	min-height: 4.75rem;
}

.cfae-brand {
	display: flex;
	flex-direction: column;
	justify-content: center;
	/* flex-start é essencial: com o "stretch" implícito o logótipo, sendo o
	   único item de largura automática, era esticado até à largura do bloco. */
	align-items: flex-start;
	gap: .1rem;
	flex: 0 0 auto;
}
.cfae-brand:hover { text-decoration: none; }
.cfae-brand__logo {
	display: block;
	width: auto;
	max-width: none;
	align-self: flex-start;
	flex: 0 0 auto;
	object-fit: contain;
}
.cfae-brand__logo--dark { display: none; }
html[data-theme="dark"] .cfae-brand__logo--dark + .cfae-brand__logo--light,
html[data-theme="dark"] .cfae-brand__logo--light { display: none; }
html[data-theme="dark"] .cfae-brand__logo--dark { display: block; }
.cfae-brand__text { font-family: var(--cfae-font-heading); font-weight: 800; font-size: 1.3rem; color: var(--c-header-text); }
.cfae-brand__slogan {
	font-size: .66rem;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: var(--c-muted);
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 26rem;
}
@media (max-width: 620px) { .cfae-brand__slogan { display: none; } }

/* Menu principal (mod_menu) */
.cfae-nav { margin-inline-start: auto; min-width: 0; }
.cfae-nav ul.nav,
.cfae-nav ul.menu,
.cfae-nav ul.mod-menu {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: .1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Sem encolhimento: os itens nunca são espremidos para caber — quando não há
   espaço é o cabeçalho que se ajusta (ver classes cfae-nav-c1..c3 / -row). */
.cfae-nav ul.nav > li { position: relative; flex: 0 0 auto; }
.cfae-nav ul.nav > li > a,
.cfae-nav ul.nav > li > span.separator {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .6rem .6rem;
	border-radius: var(--cfae-radius-sm, 8px);
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .9rem;
	line-height: 1.25;
	color: var(--c-text);
	position: relative;
	white-space: nowrap;
}
.cfae-nav ul.nav > li > a:hover { background: rgba(var(--cfae-primary-rgb), .08); color: var(--cfae-primary); text-decoration: none; }
.cfae-nav ul.nav > li.active > a,
.cfae-nav ul.nav > li.current > a { color: var(--cfae-primary); }
.cfae-nav ul.nav > li.active > a::after,
.cfae-nav ul.nav > li.current > a::after {
	content: "";
	position: absolute;
	left: .6rem;
	right: .6rem;
	bottom: .18rem;
	height: 3px;
	border-radius: 3px;
	background: var(--cfae-accent);
}
.cfae-nav ul.nav > li.parent > a::before,
.cfae-nav ul.nav > li.deeper > a::before {
	content: "";
	order: 2;
	width: .42em;
	height: .42em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-.12em);
	opacity: .55;
}
.cfae-nav ul.nav img { max-height: 1.15em; width: auto; }

/* Submenus */
.cfae-nav ul.nav ul {
	position: absolute;
	top: calc(100% + .4rem);
	left: 0;
	min-width: 16rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	box-shadow: var(--c-shadow-lg);
	padding: .5rem;
	list-style: none;
	margin: 0;
	display: block;
	opacity: 0;
	visibility: hidden;
	transform: translateY(.4rem);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	z-index: 60;
}
.cfae-nav ul.nav li:hover > ul,
.cfae-nav ul.nav li:focus-within > ul,
.cfae-nav ul.nav li.is-open > ul { opacity: 1; visibility: visible; transform: translateY(0); }
.cfae-nav ul.nav ul li > a {
	display: block;
	padding: .5rem .7rem;
	border-radius: var(--cfae-radius-sm, 8px);
	font-size: .9rem;
	font-weight: 500;
	color: var(--c-text-soft);
	line-height: 1.35;
}
.cfae-nav ul.nav ul li > a:hover { background: var(--c-surface-2); color: var(--cfae-primary); text-decoration: none; }
.cfae-nav ul.nav ul ul { top: -.5rem; left: calc(100% + .3rem); }
.cfae-nav ul.nav > li:nth-last-child(-n+2) ul ul { left: auto; right: calc(100% + .3rem); }
.cfae-nav ul.nav > li:nth-last-child(-n+2) > ul { left: auto; right: 0; }

/* Botão de abertura de submenu (criado por JS, visível apenas em ecrãs pequenos) */
.cfae-subtoggle { display: none; }
@media (max-width: 1240px) {
	.cfae-nav ul.nav > li,
	.cfae-nav ul.nav ul li { position: relative; }
	.cfae-subtoggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		inset-inline-end: .25rem;
		top: .3rem;
		width: 2.2rem;
		height: 2.2rem;
		border: 1px solid var(--c-border);
		background: var(--c-surface);
		color: var(--c-text-soft);
		border-radius: var(--cfae-radius-sm, 8px);
		font-size: 1.1rem;
		line-height: 1;
		cursor: pointer;
		z-index: 2;
	}
	.cfae-nav ul.nav > li > a { padding-inline-end: 3rem; }
	.cfae-nav ul.nav ul li > a { padding-inline-end: 3rem; }
	.cfae-nav ul.nav > li.parent > a::before,
	.cfae-nav ul.nav > li.deeper > a::before { display: none; }
}

/* Ajuste automático do cabeçalho (aplicado por JS, por ordem, só enquanto for
   preciso): 1) esconde o descritivo, 2) compacta o menu, 3) reduz os botões a
   ícone e, apenas em último recurso, 4) passa o menu para uma linha própria. */
@media (min-width: 1241px) {
	body.cfae-nav-c1 .cfae-brand__slogan { display: none; }

	body.cfae-nav-c2 .cfae-nav ul.nav > li > a { font-size: .82rem; padding-inline: .42rem; }
	body.cfae-nav-c2 .cfae-nav ul.nav > li.active > a::after { left: .42rem; right: .42rem; }

	body.cfae-nav-c3 .cfae-header__actions .cfae-btn > span { display: none; }
	body.cfae-nav-c3 .cfae-header__actions .cfae-btn { padding: .55rem .62rem; }
	body.cfae-nav-c3 .cfae-header__actions .cfae-btn .cfae-ico { width: 1.25em; height: 1.25em; }

	body.cfae-nav-row .cfae-header__inner { flex-wrap: wrap; align-items: center; padding-bottom: .2rem; }
	body.cfae-nav-row .cfae-nav {
		order: 3;
		flex: 0 0 100%;
		margin-inline-start: 0;
		border-top: 1px solid var(--c-border);
	}
	body.cfae-nav-row .cfae-nav ul.nav { justify-content: flex-start; flex-wrap: wrap; padding-block: .2rem; }
	body.cfae-nav-row .cfae-nav ul.nav > li > a { font-size: .92rem; padding-inline: .7rem; }
	body.cfae-nav-row .cfae-header__actions { margin-inline-start: auto; }
	/* Na linha própria há espaço outra vez: repõe o descritivo e os rótulos. */
	body.cfae-nav-row.cfae-nav-c1 .cfae-brand__slogan { display: block; }
	body.cfae-nav-row.cfae-nav-c3 .cfae-header__actions .cfae-btn > span { display: inline; }
	body.cfae-nav-row.cfae-nav-c3 .cfae-header__actions .cfae-btn { padding: .55rem 1rem; }
}

.cfae-header__actions { display: flex; align-items: center; gap: .5rem; flex: 0 0 auto; }
.cfae-header__search { max-width: 13rem; }
.cfae-header__search input[type="text"],
.cfae-header__search input[type="search"] {
	width: 100%;
	padding: .5rem .8rem;
	border: 1px solid var(--c-border);
	border-radius: 999px;
	background: var(--c-surface-2);
	color: var(--c-text);
	font-size: .875rem;
}
.cfae-header__search .btn, .cfae-header__search button { display: none; }

.cfae-burger {
	display: none;
	width: 2.6rem;
	height: 2.6rem;
	border: 1px solid var(--c-border);
	background: var(--c-surface);
	color: var(--c-text);
	border-radius: var(--cfae-radius-sm, 8px);
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.cfae-burger__close { display: none; }
body.cfae-nav-open .cfae-burger__close { display: inline-flex; }
body.cfae-nav-open .cfae-burger__open { display: none; }

@media (max-width: 1240px) {
	.cfae-hide-sm { display: none; }
	.cfae-burger { display: inline-flex; }
	.cfae-header__search { display: none; }
	.cfae-nav {
		position: fixed;
		inset: 0 0 0 auto;
		width: min(24rem, 88vw);
		background: var(--c-surface);
		border-left: 1px solid var(--c-border);
		box-shadow: var(--c-shadow-lg);
		padding: 5.5rem 1.25rem 2rem;
		overflow-y: auto;
		transform: translateX(102%);
		transition: transform .28s cubic-bezier(.4, 0, .2, 1);
		z-index: 45;
	}
	body.cfae-nav-open .cfae-nav { transform: translateX(0); }
	.cfae-nav ul.nav { flex-direction: column; align-items: stretch; gap: .1rem; }
	.cfae-nav ul.nav > li > a { padding: .8rem .9rem; font-size: 1rem; justify-content: space-between; }
	.cfae-nav ul.nav > li.active > a::after { display: none; }
	.cfae-nav ul.nav ul {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-left: 2px solid var(--c-border);
		border-radius: 0;
		margin: 0 0 .35rem .9rem;
		padding: 0 0 0 .5rem;
		display: none;
	}
	.cfae-nav ul.nav li.is-open > ul { display: block; }
	.cfae-nav ul.nav ul ul { left: auto; }
	.cfae-nav__extra { margin-top: 1.5rem; }
}

body.cfae-nav-open::after {
	content: "";
	position: fixed;
	inset: 0;
	background: rgba(8, 10, 22, .45);
	z-index: 44;
}

.cfae-header__spacer { display: none; }

/* ------------------------------------------------------------------ */
/* 7. Destaque / slideshow                                             */
/* ------------------------------------------------------------------ */
.cfae-hero { position: relative; background: var(--c-bg-alt); }
.cfae-hero__media img { display: block; width: 100%; }
.cfae-hero .moduletable, .cfae-hero .cfae-module { margin: 0; }
.cfae-hero__overlay {
	position: absolute;
	inset: auto 0 0 0;
	padding-block: clamp(1rem, 3vw, 3rem);
	background: linear-gradient(to top, rgba(var(--cfae-ink-rgb), .82), rgba(var(--cfae-ink-rgb), 0));
	color: #fff;
	pointer-events: none;
}
.cfae-hero__overlay a, .cfae-hero__overlay h1, .cfae-hero__overlay h2 { color: #fff; pointer-events: auto; }

/* ------------------------------------------------------------------ */
/* 8. Acessos rápidos                                                  */
/* ------------------------------------------------------------------ */
.cfae-quick { padding-block: clamp(1.75rem, 1rem + 2.4vw, 3rem); }
.cfae-quick__title {
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: 1rem;
	font-weight: 700;
}
.cfae-quick__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr)); }
.cfae-quick__grid[data-cols="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfae-quick__grid[data-cols="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cfae-quick__grid[data-cols="4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cfae-quick__grid[data-cols="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.cfae-quick__grid[data-cols="6"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1100px) {
	.cfae-quick__grid[data-cols="5"],
	.cfae-quick__grid[data-cols="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	.cfae-quick__grid[data-cols="3"],
	.cfae-quick__grid[data-cols="4"],
	.cfae-quick__grid[data-cols="5"],
	.cfae-quick__grid[data-cols="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.cfae-quick__grid[data-cols] { grid-template-columns: 1fr; }
}
.cfae-quick__card {
	display: flex;
	align-items: flex-start;
	gap: .9rem;
	padding: 1.05rem 1.15rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	color: var(--c-text);
	position: relative;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.cfae-quick__card::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--cfae-accent);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .24s ease;
}
.cfae-quick__card:hover { transform: translateY(-3px); box-shadow: var(--c-shadow); border-color: var(--c-border-strong); text-decoration: none; }
.cfae-quick__card:hover::before { transform: scaleY(1); }
.cfae-quick__icon {
	width: 2.85rem;
	height: 2.85rem;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(var(--cfae-primary-rgb), .1);
	color: var(--cfae-primary);
}
.cfae-quick__icon .cfae-ico { width: 1.5rem; height: 1.5rem; }
.cfae-quick__icon--img { background: transparent; padding: 0; overflow: hidden; }
.cfae-quick__icon--img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.cfae-quick__body { display: flex; flex-direction: column; gap: .1rem; min-width: 0; padding-top: .15rem; }
.cfae-quick__label { font-family: var(--cfae-font-heading); font-weight: 700; font-size: 1rem; overflow-wrap: break-word; }
.cfae-quick__grid[data-cols="5"] .cfae-quick__label,
.cfae-quick__grid[data-cols="6"] .cfae-quick__label { font-size: .92rem; }
.cfae-quick__desc { font-size: .82rem; color: var(--c-muted); line-height: 1.4; }
.cfae-quick__arrow { margin-inline-start: auto; align-self: center; color: var(--c-muted); transition: transform .2s ease, color .2s ease; }
.cfae-quick__card:hover .cfae-quick__arrow { transform: translateX(3px); color: var(--cfae-primary); }

/* ------------------------------------------------------------------ */
/* 9. Cabeçalho de secção                                              */
/* ------------------------------------------------------------------ */
.cfae-sechead {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: clamp(1.5rem, 1rem + 1.4vw, 2.4rem);
	flex-wrap: wrap;
}
.cfae-sechead__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--cfae-primary);
	margin-bottom: .5rem;
}
.cfae-sechead__title { margin: 0 0 .3rem; }
.cfae-sechead__sub { margin: 0; color: var(--c-muted); max-width: 62ch; }

.cfae-pulse {
	width: .55rem;
	height: .55rem;
	border-radius: 999px;
	background: var(--cfae-accent);
	box-shadow: 0 0 0 0 rgba(var(--cfae-accent-rgb), .7);
	animation: cfae-pulse 2.2s infinite;
}
@keyframes cfae-pulse {
	70% { box-shadow: 0 0 0 .55rem rgba(var(--cfae-accent-rgb), 0); }
	100% { box-shadow: 0 0 0 0 rgba(var(--cfae-accent-rgb), 0); }
}

/* ------------------------------------------------------------------ */
/* 10. Oferta formativa                                                */
/* ------------------------------------------------------------------ */
.cfae-oferta { padding-block: var(--sec-y); background: var(--c-bg-alt); }
.cfae-oferta__grid { display: grid; gap: clamp(1rem, .6rem + 1vw, 1.5rem); grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); }
.cfae-oferta--list .cfae-oferta__grid { grid-template-columns: 1fr; }
.cfae-oferta--list .cfae-acao { flex-direction: row; }
.cfae-oferta--list .cfae-acao__media { width: 13rem; aspect-ratio: auto; }
@media (max-width: 700px) {
	.cfae-oferta--list .cfae-acao { flex-direction: column; }
	.cfae-oferta--list .cfae-acao__media { width: 100%; }
}

.cfae-oferta--carousel .cfae-oferta__viewport { overflow: hidden; }
.cfae-oferta--carousel .cfae-oferta__grid {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	gap: 1.25rem;
	padding-bottom: .75rem;
	scrollbar-width: thin;
}
.cfae-oferta--carousel .cfae-acao { flex: 0 0 min(22rem, 84vw); scroll-snap-align: start; }
.cfae-oferta__nav { display: flex; gap: .5rem; justify-content: flex-end; margin-top: .75rem; }
.cfae-oferta__arrow {
	width: 2.4rem; height: 2.4rem;
	border-radius: 999px;
	border: 1px solid var(--c-border-strong);
	background: var(--c-surface);
	color: var(--c-text);
	cursor: pointer;
	font-size: 1rem;
}
.cfae-oferta__arrow:hover { background: var(--cfae-primary); color: #fff; border-color: var(--cfae-primary); }

.cfae-acao {
	display: flex;
	flex-direction: column;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	overflow: hidden;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.cfae-acao:hover { transform: translateY(-4px); box-shadow: var(--c-shadow-lg); border-color: var(--c-border-strong); }
.cfae-acao__media { aspect-ratio: 16 / 9; background: var(--c-surface-2); overflow: hidden; flex: 0 0 auto; }
.cfae-acao__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cfae-acao:hover .cfae-acao__media img { transform: scale(1.04); }
.cfae-acao__body { padding: 1.15rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: .7rem; flex: 1 1 auto; }
.cfae-acao__meta { display: flex; flex-wrap: wrap; gap: .35rem; }
.cfae-acao__title { font-size: 1.06rem; margin: 0; line-height: 1.3; }
.cfae-acao__title a { color: var(--c-text); }
.cfae-acao__title a:hover { color: var(--cfae-primary); text-decoration: none; }

.cfae-chip {
	display: inline-flex;
	align-items: center;
	padding: .2rem .55rem;
	border-radius: 999px;
	background: var(--c-surface-2);
	border: 1px solid var(--c-border);
	font-size: .72rem;
	font-weight: 600;
	color: var(--c-text-soft);
	letter-spacing: .01em;
}
.cfae-chip--ref { background: rgba(var(--cfae-primary-rgb), .1); border-color: transparent; color: var(--cfae-primary); }
.cfae-chip--flag { background: rgba(214, 69, 69, .12); border-color: transparent; color: #b23a3a; }
html[data-theme="dark"] .cfae-chip--flag { color: #f19a9a; }
/* Valor da inscrição — só existe nas ações pagas, por isso convém saltar à vista */
.cfae-chip--price {
	gap: .28rem;
	background: rgba(176, 116, 6, .12);
	border-color: rgba(176, 116, 6, .3);
	color: #8a5a03;
	font-variant-numeric: tabular-nums;
}
.cfae-chip--price .cfae-ico { width: .85rem; height: .85rem; }
html[data-theme="dark"] .cfae-chip--price { background: rgba(245, 196, 92, .14); border-color: rgba(245, 196, 92, .32); color: #f0c063; }

.cfae-acao__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.cfae-acao__facts li { display: flex; gap: .5rem; font-size: .85rem; color: var(--c-text-soft); line-height: 1.4; }
.cfae-acao__facts .cfae-ico { color: var(--c-muted); margin-top: .12em; }
.cfae-acao__audience span {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.cfae-meter { height: .4rem; border-radius: 999px; background: var(--c-surface-2); overflow: hidden; border: 1px solid var(--c-border); }
.cfae-meter__fill { display: block; height: 100%; background: var(--cfae-primary); border-radius: 999px; transition: width .6s ease; }
.cfae-meter__fill.is-full { background: #e0533d; }
.cfae-acao__seats { display: flex; flex-direction: column; gap: .35rem; }
.cfae-acao__seatstext { margin: 0; font-size: .78rem; color: var(--c-muted); }
.cfae-acao__seatstext strong { color: var(--c-text); }
.cfae-acao__seatssep { opacity: .5; margin-inline: .25rem; }

.cfae-acao__foot { margin-top: auto; padding-top: .5rem; border-top: 1px dashed var(--c-border); display: flex; flex-direction: column; gap: .6rem; }
.cfae-acao__deadline { margin: 0; display: flex; gap: .45rem; align-items: center; font-size: .82rem; color: var(--c-text-soft); }
.cfae-acao__deadline .cfae-ico { color: var(--cfae-primary); }
.cfae-acao__actions { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }

.cfae-oferta__source { margin: 1.25rem 0 0; font-size: .78rem; color: var(--c-muted); text-align: right; }
.cfae-oferta__when { white-space: nowrap; }
.cfae-oferta__refresh {
	display: inline-block;
	margin-inline-start: .6rem;
	padding: .1rem .5rem;
	border: 1px solid var(--c-border-strong);
	border-radius: 999px;
	color: var(--c-text-soft);
	font-weight: 600;
}
.cfae-oferta__refresh:hover { border-color: var(--cfae-primary); color: var(--cfae-primary); text-decoration: none; }
.cfae-oferta__fallback { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--cfae-radius); padding: 1.5rem; }

/* ------------------------------------------------------------------ */
/* 11. Painel Moodle                                                   */
/* ------------------------------------------------------------------ */
.cfae-moodle { padding-block: var(--sec-y); }
.cfae-moodle__panel {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	align-items: center;
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	padding: clamp(1.5rem, 1rem + 2.4vw, 3rem);
	border-radius: var(--cfae-radius-lg, 24px);
	background:
		radial-gradient(120% 140% at 100% 0%, rgba(var(--cfae-accent-rgb), .22) 0%, transparent 55%),
		linear-gradient(135deg, var(--cfae-primary) 0%, var(--cfae-primary-d) 100%);
	color: #fff;
	position: relative;
	overflow: hidden;
}
@media (max-width: 880px) { .cfae-moodle__panel { grid-template-columns: 1fr; } }
.cfae-moodle__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(255, 255, 255, .14);
	margin-bottom: 1rem;
}
.cfae-moodle__badge .cfae-ico { width: 1.6rem; height: 1.6rem; }
.cfae-moodle__title { color: #fff; margin-bottom: .5rem; }
.cfae-moodle__text { color: rgba(255, 255, 255, .82); max-width: 48ch; }
.cfae-moodle__actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1.25rem; }
.cfae-moodle__panel .cfae-btn--ghost { background: rgba(255, 255, 255, .14); color: #fff; }
.cfae-moodle__panel .cfae-btn--ghost:hover { background: rgba(255, 255, 255, .24); color: #fff; }
.cfae-moodle__catstitle {
	color: rgba(255, 255, 255, .72);
	font-size: .74rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	margin-bottom: .75rem;
}
.cfae-moodle__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .5rem; }
.cfae-moodle__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	padding: .6rem .8rem;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(255, 255, 255, .1);
	color: #fff;
	font-size: .875rem;
	font-weight: 600;
}
.cfae-moodle__list a:hover { background: rgba(255, 255, 255, .2); text-decoration: none; transform: translateX(2px); }
.cfae-moodle__catcount {
	background: rgba(0, 0, 0, .22);
	border-radius: 999px;
	padding: .05rem .45rem;
	font-size: .72rem;
	font-weight: 700;
}

/* ------------------------------------------------------------------ */
/* 11b. Painel Padlet                                                  */
/* Painel claro, para contrastar com o painel do Moodle quando os dois */
/* aparecem seguidos na página inicial.                                */
/* ------------------------------------------------------------------ */
.cfae-padlet { padding-block: var(--sec-y); }
.cfae-padlet__panel {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	align-items: center;
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	padding: clamp(1.5rem, 1rem + 2.4vw, 3rem);
	border-radius: var(--cfae-radius-lg, 24px);
	border: 1px solid var(--c-border);
	background:
		radial-gradient(120% 140% at 0% 0%, rgba(var(--cfae-accent-rgb), .18) 0%, transparent 58%),
		var(--c-surface);
	color: var(--c-text);
	position: relative;
	overflow: hidden;
}
@media (max-width: 880px) { .cfae-padlet__panel { grid-template-columns: 1fr; } }
.cfae-padlet__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(var(--cfae-primary-rgb), .1);
	color: var(--cfae-primary);
	margin-bottom: 1rem;
}
html[data-theme="dark"] .cfae-padlet__badge { background: rgba(255, 255, 255, .1); color: #cdd3f8; }
.cfae-padlet__badge .cfae-ico { width: 1.6rem; height: 1.6rem; }
.cfae-padlet__title { margin-bottom: .5rem; }
.cfae-padlet__text { color: var(--c-text-soft); max-width: 48ch; }
.cfae-padlet__actions { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1.25rem; }
.cfae-padlet__boardstitle {
	color: var(--c-muted);
	font-size: .74rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	margin-bottom: .75rem;
}
.cfae-padlet__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cfae-padlet__list > li { margin: 0; }
.cfae-padlet__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .7rem .9rem;
	border-radius: var(--cfae-radius-sm, 8px);
	border: 1px solid var(--c-border);
	background: var(--c-bg-alt);
	color: var(--c-text);
	transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.cfae-padlet__list a:hover {
	background: var(--c-surface-2);
	border-color: var(--c-border-strong);
	text-decoration: none;
	color: var(--c-text);
	transform: translateX(2px);
}
.cfae-padlet__board { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.cfae-padlet__boardname { font-family: var(--cfae-font-heading); font-weight: 700; font-size: .92rem; line-height: 1.3; }
.cfae-padlet__boarddesc { font-size: .78rem; color: var(--c-muted); line-height: 1.35; }
.cfae-padlet__go { flex: 0 0 auto; color: var(--c-muted); display: inline-flex; transition: transform .18s ease, color .18s ease; }
.cfae-padlet__go .cfae-ico { width: 1.05rem; height: 1.05rem; }
.cfae-padlet__list a:hover .cfae-padlet__go { transform: translateX(3px); color: var(--cfae-primary); }
.cfae-padlet__embed {
	margin-top: 1rem;
	border-radius: var(--cfae-radius, 16px);
	border: 1px solid var(--c-border);
	background: var(--c-surface);
	overflow: hidden;
}
.cfae-padlet__embed iframe {
	display: block;
	width: 100%;
	height: var(--cfae-padlet-h, 480px);
	border: 0;
}
.cfae-padlet__embed .cfae-embed-hold { min-height: min(var(--cfae-padlet-h, 480px), 20rem); }
/* Sem consentimento fica só a caixa tracejada do aviso, sem moldura dupla */
.cfae-padlet__embed:has(.cfae-embed-hold) { border: 0; background: transparent; overflow: visible; }

/* ------------------------------------------------------------------ */
/* 12. Migalhas                                                        */
/* ------------------------------------------------------------------ */
.cfae-breadcrumbs { border-bottom: 1px solid var(--c-border); background: var(--c-surface); }
.cfae-breadcrumbs ul.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4rem;
	list-style: none;
	margin: 0;
	padding: .75rem 0;
	background: none;
	border: 0;
	font-size: .82rem;
	color: var(--c-muted);
}
.cfae-breadcrumbs ul.breadcrumb li { display: inline-flex; align-items: center; gap: .4rem; }
.cfae-breadcrumbs ul.breadcrumb .divider { color: var(--c-border-strong); }
.cfae-breadcrumbs ul.breadcrumb .divider img { display: none; }
.cfae-breadcrumbs ul.breadcrumb .divider::after { content: "/"; }
.cfae-breadcrumbs ul.breadcrumb a { color: var(--c-text-soft); }
.cfae-breadcrumbs ul.breadcrumb .active { color: var(--c-text); font-weight: 600; }

/* ------------------------------------------------------------------ */
/* 13. Conteúdo principal                                              */
/* ------------------------------------------------------------------ */
.cfae-main { padding-block: var(--sec-y); }
.cfae-layout { display: grid; gap: clamp(1.5rem, 1rem + 2vw, 2.75rem); align-items: start; }
.cfae-layout--0 { grid-template-columns: minmax(0, 1fr); }
.cfae-layout--1.has-right { grid-template-columns: minmax(0, 1fr) 20rem; }
.cfae-layout--1.has-left { grid-template-columns: 20rem minmax(0, 1fr); }
.cfae-layout--2 { grid-template-columns: 17rem minmax(0, 1fr) 19rem; }
@media (max-width: 1240px) {
	.cfae-layout--2 { grid-template-columns: minmax(0, 1fr) 19rem; }
	.cfae-layout--2 .cfae-aside--left { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	.cfae-layout { grid-template-columns: minmax(0, 1fr) !important; }
	.cfae-aside { grid-column: 1 / -1 !important; }
}
.cfae-aside { display: flex; flex-direction: column; gap: 1.25rem; position: sticky; top: 6rem; }
@media (max-width: 860px) { .cfae-aside { position: static; } }

.cfae-before-content, .cfae-after-content { margin-bottom: 2rem; }
.cfae-after-content { margin: 2.5rem 0 0; }

/* Módulos */
.cfae-module { margin-bottom: 1.25rem; }
.cfae-module:last-child { margin-bottom: 0; }
.cfae-module--card {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	padding: 1.25rem 1.35rem;
}
.cfae-module__title {
	font-size: 1.02rem;
	margin: 0 0 .9rem;
	padding-bottom: .65rem;
	border-bottom: 1px solid var(--c-border);
	position: relative;
}
.cfae-module__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 2.5rem;
	height: 3px;
	border-radius: 3px;
	background: var(--cfae-accent);
}
.cfae-module--section .cfae-module__sectitle { text-align: center; margin-bottom: 1.5rem; }
.cfae-module__body > *:last-child { margin-bottom: 0; }
.cfae-module__body ul, .cfae-module__body ol { padding-inline-start: 1.15rem; }
.cfae-module__body ul.menu, .cfae-module__body ul.nav, .cfae-module__body ul.unstyled,
.cfae-module__body ul.mod-menu { list-style: none; padding-inline-start: 0; }
.cfae-module__body ul.menu > li > a, .cfae-module__body ul.nav > li > a,
.cfae-module__body ul.mod-menu > li > a {
	display: block;
	padding: .45rem .6rem;
	border-radius: var(--cfae-radius-sm, 8px);
	color: var(--c-text-soft);
	font-weight: 500;
	font-size: .92rem;
}
.cfae-module__body ul.menu > li > a:hover, .cfae-module__body ul.nav > li > a:hover,
.cfae-module__body ul.mod-menu > li > a:hover { background: var(--c-surface-2); color: var(--cfae-primary); text-decoration: none; }
.cfae-module__body ul.menu > li.active > a,
.cfae-module__body ul.mod-menu > li.active > a { background: rgba(var(--cfae-primary-rgb), .1); color: var(--cfae-primary); font-weight: 600; }

/* ------------------------------------------------------------------ */
/* Compatibilidade com o mod_menu do Joomla 4/5                        */
/* O Joomla 3 dava <ul class="nav menu mod-list">; o 4/5 dá            */
/* <ul class="mod-menu mod-list nav"> com submenus .mod-menu__sub.     */
/* A classe .nav é do Bootstrap e põe qualquer menu numa linha         */
/* flexível — só o menu principal é que a quer assim.                  */
/* ------------------------------------------------------------------ */
.cfae-content ul.mod-menu,
.cfae-section ul.mod-menu,
.cfae-module__body ul.mod-menu,
.cfae-module__body ul.nav,
.cfae-aside ul.mod-menu,
.cfae-footer ul.mod-menu { display: block; }

.cfae-content ul.mod-menu__sub,
.cfae-section ul.mod-menu__sub,
.cfae-module__body ul.mod-menu__sub,
.cfae-aside ul.mod-menu__sub,
.cfae-footer ul.mod-menu__sub {
	display: block;
	list-style: none;
	margin: .15rem 0 .35rem;
	padding-inline-start: 1rem;
}
.cfae-module__body ul.mod-menu__sub > li > a {
	display: block;
	padding: .3rem .6rem;
	border-radius: var(--cfae-radius-sm, 8px);
	color: var(--c-muted);
	font-weight: 500;
	font-size: .86rem;
}
.cfae-module__body ul.mod-menu__sub > li > a:hover { background: var(--c-surface-2); color: var(--cfae-primary); text-decoration: none; }

/* Título de página do Joomla, quando desligado nos parâmetros */
body.cfae-no-pageheading .cfae-content > .page-header,
body.cfae-no-pageheading .cfae-content > * > .page-header:first-child { display: none; }

/* com_content */
.cfae-content .page-header h1,
.cfae-content .page-header h2 { margin-bottom: .35rem; }
.cfae-content .item-page, .cfae-content .blog, .cfae-content .categories-list { max-width: 100%; }
.cfae-content .article-info {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1rem;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	font-size: .8rem;
	color: var(--c-muted);
}
.cfae-content .article-info dd { margin: 0; }
.cfae-content .article-info-term { display: none; }

.cfae-content .items-row { margin-bottom: 1.5rem; }
.cfae-content .item {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	padding: 1.35rem 1.5rem;
	height: 100%;
	transition: box-shadow .2s ease, transform .2s ease;
}
.cfae-content .item:hover { box-shadow: var(--c-shadow); }
.cfae-content .item .page-header h2 { font-size: 1.2rem; }

.cfae-content .readmore .btn,
.cfae-content a.readmore,
.cfae-content .readmore a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .5rem .95rem;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(var(--cfae-primary-rgb), .1);
	color: var(--cfae-primary);
	font-weight: 600;
	font-size: .85rem;
	text-shadow: none;
	border: 0;
	box-shadow: none;
}
.cfae-content .readmore .btn:hover, .cfae-content .readmore a:hover { background: var(--cfae-primary); color: #fff; text-decoration: none; }

/* ------------------------------------------------------------------ */
/* Publicações recentes (mod_rsblog_recent)                            */
/* O módulo devolve apenas uma lista de ligações. Aqui transforma-se    */
/* numa grelha de cartões; o JS acrescenta a data lida do endereço.     */
/* ------------------------------------------------------------------ */
ul.rsblog-recent-module {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	display: grid;
	gap: .8rem;
	grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
}
ul.rsblog-recent-module > li { margin: 0; }
ul.rsblog-recent-module > li > a {
	display: flex;
	align-items: flex-start;
	gap: .8rem;
	height: 100%;
	padding: .95rem 1.05rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	color: var(--c-text);
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.35;
	position: relative;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
ul.rsblog-recent-module > li > a::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: var(--cfae-accent);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .24s ease;
}
ul.rsblog-recent-module > li > a:hover {
	transform: translateY(-3px);
	box-shadow: var(--c-shadow);
	border-color: var(--c-border-strong);
	text-decoration: none;
	color: var(--c-text);
}
ul.rsblog-recent-module > li > a:hover::before { transform: scaleY(1); }

.cfae-post__date {
	flex: 0 0 auto;
	width: 3rem;
	padding: .3rem 0 .35rem;
	text-align: center;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(var(--cfae-primary-rgb), .1);
	color: var(--cfae-primary);
	font-family: var(--cfae-font-heading, sans-serif);
	line-height: 1;
}
.cfae-post__date b { display: block; font-size: 1.2rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.cfae-post__date span { display: block; margin-top: .18rem; font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }

.cfae-post__title {
	flex: 1 1 auto;
	min-width: 0;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cfae-post__arrow { flex: 0 0 auto; margin-top: .15rem; color: var(--c-muted); transition: transform .2s ease, color .2s ease; }
ul.rsblog-recent-module > li > a:hover .cfae-post__arrow { transform: translateX(3px); color: var(--cfae-primary); }

/* Numa coluna lateral fica em lista simples */
.cfae-aside ul.rsblog-recent-module { grid-template-columns: 1fr; gap: .55rem; }
.cfae-aside ul.rsblog-recent-module > li > a { padding: .7rem .8rem; font-size: .9rem; }
.cfae-aside .cfae-post__date { width: 2.6rem; }
.cfae-aside .cfae-post__date b { font-size: 1.05rem; }
.cfae-aside .cfae-post__arrow { display: none; }

/* ------------------------------------------------------------------ */
/* Componente RSBlog — lista e post individual                         */
/* Parâmetro styleRsblog → body.cfae-style-rsblog                      */
/* O RSBlog imprime markup do Bootstrap (.card, .row, .col-md-*,       */
/* .float-end, .btn); todas as regras aqui têm três classes de         */
/* especificidade para ganhar sem !important.                          */
/* ------------------------------------------------------------------ */

/* --- Barra de topo do blog (título, ícones, pesquisa) -------------- */
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	box-shadow: none;
	margin-bottom: 1.5rem;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card > .card-body {
	padding: clamp(1rem, .8rem + .8vw, 1.5rem);
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card .row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .85rem;
	margin: 0;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card .row > [class*="col-"] {
	flex: 1 1 auto;
	width: auto;
	max-width: 100%;
	min-width: 0;
	padding: 0;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card .row > .col-md-4 {
	flex: 0 1 auto;
	display: flex;
	align-items: center;
	gap: .6rem;
	flex-wrap: wrap;
	justify-content: flex-end;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card h2 {
	margin: 0;
	font-size: clamp(1.35rem, 1.1rem + .9vw, 1.9rem);
	position: relative;
	padding-bottom: .45rem;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card h2::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	bottom: 0;
	width: 2.4rem;
	height: 3px;
	border-radius: 3px;
	background: var(--cfae-accent);
}
/* Ícones (início, RSS, subscrever) */
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card ul.list-inline {
	display: flex;
	gap: .3rem;
	margin: 0;
	padding: 0;
	list-style: none;
	float: none;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card ul.list-inline > li { margin: 0; }
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card ul.list-inline > li > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: var(--cfae-radius-sm, 8px);
	border: 1px solid var(--c-border);
	color: var(--c-muted);
	background: var(--c-bg-alt);
	transition: color .18s ease, border-color .18s ease, background .18s ease;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card ul.list-inline > li > a:hover {
	color: var(--cfae-primary);
	border-color: var(--c-border-strong);
	background: var(--c-surface-2);
	text-decoration: none;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-container > .card .clearfix { display: none; }
/* Pesquisa */
body.cfae-style-rsblog .cfae-content form#rsblogSearchForm { float: none; margin: 0; }
body.cfae-style-rsblog .cfae-content form#rsblogSearchForm .input-group {
	display: flex;
	flex-wrap: nowrap;
	gap: .4rem;
	width: min(20rem, 100%);
}
body.cfae-style-rsblog .cfae-content form#rsblogSearchForm input[type="text"] {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface);
	color: var(--c-text);
	padding: .5rem .7rem;
	font: inherit;
	font-size: .9rem;
}
body.cfae-style-rsblog .cfae-content form#rsblogSearchForm input[type="text"]:focus {
	border-color: var(--cfae-primary);
	box-shadow: var(--c-ring);
	outline: none;
}
body.cfae-style-rsblog .cfae-content form#rsblogSearchForm button {
	flex: 0 0 auto;
	border: 0;
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--cfae-primary);
	color: #fff;
	padding: .5rem .9rem;
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .875rem;
	cursor: pointer;
	transition: background .18s ease;
}
body.cfae-style-rsblog .cfae-content form#rsblogSearchForm button:hover { background: var(--cfae-primary-d, var(--cfae-primary)); }

/* --- Lista: grelha de cartões ------------------------------------- */
body.cfae-style-rsblog .cfae-content #rsblog-container {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
	gap: 1.25rem;
	margin: 0;
}
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post {
	margin: 0;
	padding: 0;
	width: auto;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	overflow: hidden;
	position: relative;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post:hover {
	transform: translateY(-3px);
	box-shadow: var(--c-shadow);
	border-color: var(--c-border-strong);
}
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: var(--cfae-accent);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .24s ease;
	z-index: 2;
}
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post:hover::before { transform: scaleY(1); }

/* O wrapper interior passa a coluna; o conteúdo dissolve-se para a
   imagem poder subir para cima do título. */
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post > div {
	display: flex;
	flex-direction: column;
	height: 100%;
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content { display: contents; }

body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-image {
	order: -1;
	margin: 0;
	overflow: hidden;
	background: var(--c-bg-alt);
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-image a { display: block; }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-thumb {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	background: none;
	transition: transform .35s ease;
}
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post:hover .rsblog-entry-thumb { transform: scale(1.03); }

body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-header {
	order: 0;
	padding: .95rem 1.05rem .2rem;
	position: relative;
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-title {
	margin: 0 0 .4rem;
	font-size: 1.02rem;
	line-height: 1.3;
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-title a { color: var(--c-text); }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-title a:hover { color: var(--cfae-primary); text-decoration: none; }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-meta {
	margin: 0;
	font-size: .75rem;
	line-height: 1.45;
	color: var(--c-muted);
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-meta ul {
	display: flex;
	flex-wrap: wrap;
	gap: .1rem .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	float: none;
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-meta li { margin: 0; }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-meta a { color: var(--c-text-soft); }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-meta .text-info { color: var(--c-muted); }

/* Botão de ações: discreto, no canto do cartão */
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-post-actions {
	position: absolute;
	top: .8rem;
	inset-inline-end: .8rem;
	float: none;
	z-index: 3;
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-post-actions > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.9rem;
	height: 1.9rem;
	padding: 0;
	border-radius: var(--cfae-radius-sm, 8px);
	border: 1px solid var(--c-border);
	background: var(--c-bg-alt);
	color: var(--c-muted);
	font-size: .8rem;
	opacity: 0;
	transition: opacity .18s ease, color .18s ease;
}
body.cfae-style-rsblog .cfae-content #rsblog-container > article.rsblog-post:hover .rsblog-post-actions > a,
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-post-actions > a:focus { opacity: 1; }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-post-actions > a:hover { color: var(--cfae-primary); }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-post-actions .caret { display: none; }
body.cfae-style-rsblog .cfae-content .rsblog-post-actions .dropdown-menu {
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius-sm, 8px);
	box-shadow: var(--c-shadow);
	padding: .3rem;
}
body.cfae-style-rsblog .cfae-content .rsblog-post-actions .dropdown-menu a {
	border-radius: 6px;
	color: var(--c-text-soft);
	font-size: .85rem;
	padding: .35rem .55rem;
}
body.cfae-style-rsblog .cfae-content .rsblog-post-actions .dropdown-menu a:hover { background: var(--c-surface-2); color: var(--cfae-primary); }

/* Excerto: o RSBlog imprime o artigo inteiro, por isso é cortado */
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) {
	order: 1;
	padding: .55rem 1.05rem 0;
	max-height: 7.2em;
	overflow: hidden;
	font-size: .875rem;
	line-height: 1.55;
	color: var(--c-text-soft);
}
@supports (mask-image: linear-gradient(#000, transparent)) {
	body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) {
		mask-image: linear-gradient(#000 60%, transparent 100%);
		-webkit-mask-image: linear-gradient(#000 60%, transparent 100%);
	}
}
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) p { margin: 0 0 .5rem; }
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) img,
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) iframe,
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) table { display: none; }
/* Texto colado de outras páginas traz estilos em linha */
body.cfae-style-rsblog .cfae-content #rsblog-container .rsblog-entry-content > div:not(.rsblog-entry-image) [style] {
	font-family: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
	color: inherit !important;
	background: none !important;
}

/* "Ler mais" (acrescentado pelo template.js) */
body.cfae-style-rsblog .cfae-content #rsblog-container .cfae-post__more {
	order: 2;
	margin: .3rem 1.05rem .75rem;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .84rem;
	color: var(--cfae-primary);
}
body.cfae-style-rsblog .cfae-content #rsblog-container .cfae-post__more:hover { text-decoration: none; gap: .55rem; }
body.cfae-style-rsblog .cfae-content #rsblog-container .cfae-post__more svg { width: .95rem; height: .95rem; transition: transform .2s ease; }

/* Rodapé do cartão: categoria e etiquetas como pastilhas */
body.cfae-style-rsblog .cfae-content #rsblog-container footer.rsblog-entry-meta {
	order: 3;
	margin-top: auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem .5rem;
	padding: .65rem 1.05rem .85rem;
	border-top: 1px solid var(--c-border);
	font-size: .74rem;
}
body.cfae-style-rsblog .cfae-content #rsblog-container footer.rsblog-entry-meta ul { float: none; }
body.cfae-style-rsblog .cfae-content #rsblog-container footer.rsblog-entry-meta a {
	display: inline-block;
	padding: .12rem .5rem;
	border-radius: 999px;
	background: rgba(var(--cfae-primary-rgb), .1);
	color: var(--cfae-primary);
	font-weight: 600;
}
body.cfae-style-rsblog .cfae-content #rsblog-container footer.rsblog-entry-meta a:hover { background: rgba(var(--cfae-primary-rgb), .18); text-decoration: none; }
html[data-theme="dark"] body.cfae-style-rsblog .cfae-content #rsblog-container footer.rsblog-entry-meta a { background: rgba(255, 255, 255, .1); color: #cdd3f8; }

/* --- Post individual: coluna de leitura --------------------------- */
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container { max-width: 46rem; margin-inline: auto; }
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container .rsblog-entry-title {
	margin-bottom: .6rem;
	font-size: clamp(1.5rem, 1.15rem + 1.5vw, 2.1rem);
	line-height: 1.2;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container .rsblog-entry-meta {
	font-size: .82rem;
	color: var(--c-muted);
	margin-bottom: 1.1rem;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container .rsblog-entry-meta ul {
	display: flex;
	flex-wrap: wrap;
	gap: .2rem .6rem;
	list-style: none;
	margin: 0;
	padding: 0;
	float: none;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container .rsblog-entry-thumb,
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container .rsblog-entry-content img {
	border: 0;
	border-radius: var(--cfae-radius, 16px);
	box-shadow: none;
	padding: 0;
	background: none;
	height: auto;
	max-width: 100%;
}
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container .rsblog-entry-image { margin-bottom: 1.25rem; }
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container footer.rsblog-entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .5rem;
	align-items: center;
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--c-border);
}
body.cfae-style-rsblog .cfae-content .rsblog-main-post-container footer.rsblog-entry-meta a {
	display: inline-block;
	padding: .12rem .5rem;
	border-radius: 999px;
	background: rgba(var(--cfae-primary-rgb), .1);
	color: var(--cfae-primary);
	font-weight: 600;
	font-size: .78rem;
}
html[data-theme="dark"] body.cfae-style-rsblog .cfae-content .rsblog-main-post-container footer.rsblog-entry-meta a { background: rgba(255, 255, 255, .1); color: #cdd3f8; }

.cfae-content .pagination { margin: 2rem 0 0; }
.cfae-content .pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	list-style: none;
	margin: 0;
	padding: 0;
	box-shadow: none;
	border: 0;
}
.cfae-content .pagination ul > li > a,
.cfae-content .pagination ul > li > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 .6rem;
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface);
	color: var(--c-text-soft);
	font-weight: 600;
	font-size: .875rem;
	float: none;
}
.cfae-content .pagination ul > li > a:hover { border-color: var(--cfae-primary); color: var(--cfae-primary); background: var(--c-surface); }
.cfae-content .pagination ul > .active > span { background: var(--cfae-primary); border-color: var(--cfae-primary); color: #fff; }
.cfae-content .counter { color: var(--c-muted); font-size: .8rem; }

.cfae-content table,
.cfae-module__body table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
	font-size: .92rem;
}
.cfae-content table th, .cfae-content table td,
.cfae-module__body table th, .cfae-module__body table td {
	padding: .7rem .85rem;
	border-bottom: 1px solid var(--c-border);
	text-align: start;
	vertical-align: top;
}
.cfae-content table thead th { background: var(--c-surface-2); font-family: var(--cfae-font-heading); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--c-text-soft); }
.cfae-content table tbody tr:hover { background: var(--c-surface-2); }

.cfae-content .table-responsive, .cfae-table-scroll { overflow-x: auto; }

/* Formulários */
.cfae-content input[type="text"], .cfae-content input[type="email"], .cfae-content input[type="password"],
.cfae-content input[type="search"], .cfae-content input[type="tel"], .cfae-content input[type="url"],
.cfae-content input[type="number"], .cfae-content input[type="date"],
.cfae-content select, .cfae-content textarea,
.cfae-module__body input[type="text"], .cfae-module__body input[type="email"],
.cfae-module__body select, .cfae-module__body textarea {
	/* Tem de ser declarado aqui. O responsive.min.css do RSForm traz
	   `.formResponsive select, .formResponsive textarea { box-sizing: content-box }`,
	   que ganha ao `*` que põe border-box. Sem isto, width: 100% seria só a
	   caixa de conteúdo e o padding somava-se por fora. */
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	padding: .65rem .85rem;
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface);
	color: var(--c-text);
	font: inherit;
	font-size: .95rem;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.cfae-content textarea { min-height: 8rem; }
.cfae-content input:focus, .cfae-content select:focus, .cfae-content textarea:focus { border-color: var(--cfae-primary); box-shadow: var(--c-ring); outline: none; }
.cfae-content label, .cfae-module__body label { font-weight: 600; font-size: .9rem; display: inline-block; margin-bottom: .3rem; }

/* ------------------------------------------------------------------ */
/* Menus apresentados como cartões                                     */
/* Ex.: Formulários — Formandos / Formadores. O módulo de menu do      */
/* Joomla devolve <li><a>[<img>]<span class="image-title">; aqui vira  */
/* uma grelha de cartões, com ou sem ícone.                            */
/* Parâmetro menuCards → body.cfae-menucards-todos | -icones | -nao    */
/* Os blocos com :has() ficam separados de propósito: um seletor       */
/* desconhecido invalidaria a regra inteira em navegadores antigos.    */
/* ------------------------------------------------------------------ */

/* --- 1. Todos os menus da coluna de conteúdo (sem :has) ------------ */
body.cfae-menucards-todos .cfae-content ul.menu,
body.cfae-menucards-todos .cfae-section ul.menu,
body.cfae-menucards-todos .cfae-content ul.mod-menu,
body.cfae-menucards-todos .cfae-section ul.mod-menu {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
	gap: .75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
body.cfae-menucards-todos .cfae-content ul.menu > li,
body.cfae-menucards-todos .cfae-section ul.menu > li,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li { margin: 0; position: relative; }
body.cfae-menucards-todos .cfae-content ul.menu > li > a,
body.cfae-menucards-todos .cfae-section ul.menu > li > a,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li > a,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li > a {
	display: flex;
	align-items: center;
	gap: .85rem;
	height: 100%;
	padding: .8rem .95rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	color: var(--c-text);
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.35;
	position: relative;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
body.cfae-menucards-todos .cfae-content ul.menu > li > a::before,
body.cfae-menucards-todos .cfae-section ul.menu > li > a::before,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li > a::before,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li > a::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: var(--cfae-accent);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .24s ease;
}
body.cfae-menucards-todos .cfae-content ul.menu > li > a:hover,
body.cfae-menucards-todos .cfae-section ul.menu > li > a:hover,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li > a:hover,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li > a:hover {
	transform: translateY(-3px);
	box-shadow: var(--c-shadow);
	border-color: var(--c-border-strong);
	text-decoration: none;
	color: var(--c-text);
}
body.cfae-menucards-todos .cfae-content ul.menu > li > a:hover::before,
body.cfae-menucards-todos .cfae-section ul.menu > li > a:hover::before,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li > a:hover::before,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li > a:hover::before { transform: scaleY(1); }

/* Distintivo desenhado em CSS para os itens sem imagem */
body.cfae-menucards-todos .cfae-content ul.menu > li > a,
body.cfae-menucards-todos .cfae-section ul.menu > li > a,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li > a,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li > a { padding-inline-start: 4.5rem; }
body.cfae-menucards-todos .cfae-content ul.menu > li::before,
body.cfae-menucards-todos .cfae-section ul.menu > li::before,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li::before,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li::before {
	content: "";
	position: absolute;
	z-index: 2;
	pointer-events: none;
	inset-inline-start: .95rem;
	top: 50%;
	width: 2.7rem;
	height: 2.7rem;
	margin-top: -1.35rem;
	border-radius: var(--cfae-radius-sm, 8px);
	background: rgba(var(--cfae-primary-rgb), .12);
}
body.cfae-menucards-todos .cfae-content ul.menu > li::after,
body.cfae-menucards-todos .cfae-section ul.menu > li::after,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li::after,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li::after {
	content: "";
	position: absolute;
	z-index: 3;
	pointer-events: none;
	inset-inline-start: 2.15rem;
	top: 50%;
	width: .48rem;
	height: .48rem;
	margin-top: -.28rem;
	border-inline-end: 2px solid var(--cfae-primary);
	border-block-end: 2px solid var(--cfae-primary);
	transform: rotate(-45deg);
	transition: inset-inline-start .2s ease;
}
body.cfae-menucards-todos .cfae-content ul.menu > li:hover::after,
body.cfae-menucards-todos .cfae-section ul.menu > li:hover::after,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li:hover::after,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li:hover::after { inset-inline-start: 2.45rem; }

/* Itens que já têm imagem dispensam o distintivo */
body.cfae-menucards-todos .cfae-content ul.menu > li:has(> a > img)::before,
body.cfae-menucards-todos .cfae-content ul.menu > li:has(> a > img)::after,
body.cfae-menucards-todos .cfae-section ul.menu > li:has(> a > img)::before,
body.cfae-menucards-todos .cfae-section ul.menu > li:has(> a > img)::after,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li:has(> a > img)::before,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li:has(> a > img)::after,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li:has(> a > img)::before,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li:has(> a > img)::after { content: none; }
body.cfae-menucards-todos .cfae-content ul.menu > li:has(> a > img) > a,
body.cfae-menucards-todos .cfae-section ul.menu > li:has(> a > img) > a,
body.cfae-menucards-todos .cfae-content ul.mod-menu > li:has(> a > img) > a,
body.cfae-menucards-todos .cfae-section ul.mod-menu > li:has(> a > img) > a { padding-inline-start: .95rem; }

/* --- 2. Apenas menus com ícone (requer :has) ----------------------- */
body.cfae-menucards-icones .cfae-content ul.menu:has(> li > a > img),
body.cfae-menucards-icones .cfae-section ul.menu:has(> li > a > img),
body.cfae-menucards-icones .cfae-content ul.mod-menu:has(> li > a > img),
body.cfae-menucards-icones .cfae-section ul.mod-menu:has(> li > a > img) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
	gap: .75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
body.cfae-menucards-icones .cfae-content ul.menu:has(> li > a > img) > li,
body.cfae-menucards-icones .cfae-section ul.menu:has(> li > a > img) > li,
body.cfae-menucards-icones .cfae-content ul.mod-menu:has(> li > a > img) > li,
body.cfae-menucards-icones .cfae-section ul.mod-menu:has(> li > a > img) > li { margin: 0; }
body.cfae-menucards-icones .cfae-content ul.menu:has(> li > a > img) > li > a,
body.cfae-menucards-icones .cfae-section ul.menu:has(> li > a > img) > li > a,
body.cfae-menucards-icones .cfae-content ul.mod-menu:has(> li > a > img) > li > a,
body.cfae-menucards-icones .cfae-section ul.mod-menu:has(> li > a > img) > li > a {
	display: flex;
	align-items: center;
	gap: .85rem;
	height: 100%;
	padding: .8rem .95rem;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius, 16px);
	color: var(--c-text);
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.35;
	position: relative;
	overflow: hidden;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
body.cfae-menucards-icones .cfae-content ul.menu:has(> li > a > img) > li > a::before,
body.cfae-menucards-icones .cfae-section ul.menu:has(> li > a > img) > li > a::before,
body.cfae-menucards-icones .cfae-content ul.mod-menu:has(> li > a > img) > li > a::before,
body.cfae-menucards-icones .cfae-section ul.mod-menu:has(> li > a > img) > li > a::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 3px;
	background: var(--cfae-accent);
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform .24s ease;
}
body.cfae-menucards-icones .cfae-content ul.menu:has(> li > a > img) > li > a:hover,
body.cfae-menucards-icones .cfae-section ul.menu:has(> li > a > img) > li > a:hover,
body.cfae-menucards-icones .cfae-content ul.mod-menu:has(> li > a > img) > li > a:hover,
body.cfae-menucards-icones .cfae-section ul.mod-menu:has(> li > a > img) > li > a:hover {
	transform: translateY(-3px);
	box-shadow: var(--c-shadow);
	border-color: var(--c-border-strong);
	text-decoration: none;
	color: var(--c-text);
}
body.cfae-menucards-icones .cfae-content ul.menu:has(> li > a > img) > li > a:hover::before,
body.cfae-menucards-icones .cfae-section ul.menu:has(> li > a > img) > li > a:hover::before,
body.cfae-menucards-icones .cfae-content ul.mod-menu:has(> li > a > img) > li > a:hover::before,
body.cfae-menucards-icones .cfae-section ul.mod-menu:has(> li > a > img) > li > a:hover::before { transform: scaleY(1); }

/* --- 3. Ícones e legendas (comum às duas variantes) ---------------- */
body:not(.cfae-menucards-nao) .cfae-content ul.menu > li > a > img,
body:not(.cfae-menucards-nao) .cfae-section ul.menu > li > a > img,
body:not(.cfae-menucards-nao) .cfae-content ul.mod-menu > li > a > img,
body:not(.cfae-menucards-nao) .cfae-section ul.mod-menu > li > a > img {
	width: 2.7rem;
	height: 2.7rem;
	flex: 0 0 auto;
	object-fit: contain;
	padding: .5rem;
	background: rgba(var(--cfae-primary-rgb), .1);
	border-radius: var(--cfae-radius-sm, 8px);
}
html[data-theme="dark"] body:not(.cfae-menucards-nao) .cfae-content ul.menu > li > a > img,
html[data-theme="dark"] body:not(.cfae-menucards-nao) .cfae-section ul.menu > li > a > img,
html[data-theme="dark"] body:not(.cfae-menucards-nao) .cfae-content ul.mod-menu > li > a > img,
html[data-theme="dark"] body:not(.cfae-menucards-nao) .cfae-section ul.mod-menu > li > a > img { filter: invert(1) hue-rotate(180deg); }
body:not(.cfae-menucards-nao) .cfae-content ul.menu .image-title,
body:not(.cfae-menucards-nao) .cfae-section ul.menu .image-title,
body:not(.cfae-menucards-nao) .cfae-content ul.mod-menu .image-title,
body:not(.cfae-menucards-nao) .cfae-section ul.mod-menu .image-title { min-width: 0; }

/* No tema escuro o azul da marca perde-se no fundo: distintivos mais claros */
html[data-theme="dark"] .cfae-quick__icon:not(.cfae-quick__icon--img),
html[data-theme="dark"] body.cfae-menucards-todos .cfae-content ul.menu > li::before,
html[data-theme="dark"] body.cfae-menucards-todos .cfae-section ul.menu > li::before,
html[data-theme="dark"] body.cfae-menucards-todos .cfae-content ul.mod-menu > li::before,
html[data-theme="dark"] body.cfae-menucards-todos .cfae-section ul.mod-menu > li::before { background: rgba(255, 255, 255, .1); }
html[data-theme="dark"] .cfae-quick__icon:not(.cfae-quick__icon--img) { color: #cdd3f8; }
html[data-theme="dark"] body.cfae-menucards-todos .cfae-content ul.menu > li::after,
html[data-theme="dark"] body.cfae-menucards-todos .cfae-section ul.menu > li::after,
html[data-theme="dark"] body.cfae-menucards-todos .cfae-content ul.mod-menu > li::after,
html[data-theme="dark"] body.cfae-menucards-todos .cfae-section ul.mod-menu > li::after { border-color: #cdd3f8; }

/* Submenus dentro de um cartão voltam ao normal */
body.cfae-menucards-todos .cfae-content ul.menu ul,
body.cfae-menucards-todos .cfae-section ul.menu ul,
body.cfae-menucards-icones .cfae-content ul.menu ul,
body.cfae-menucards-icones .cfae-section ul.menu ul,
body.cfae-menucards-todos .cfae-content ul.mod-menu ul,
body.cfae-menucards-todos .cfae-section ul.mod-menu ul,
body.cfae-menucards-icones .cfae-content ul.mod-menu ul,
body.cfae-menucards-icones .cfae-section ul.mod-menu ul {
	display: block;
	grid-column: 1 / -1;
	list-style: none;
	padding-inline-start: 1rem;
}

/* ------------------------------------------------------------------ */
/* Formulários RSForm! Pro                                             */
/* O template.css carrega depois do CSS do RSForm, por isso basta a    */
/* mesma especificidade — só o fundo definido em linha no formulário   */
/* precisa de !important.                                              */
/* ------------------------------------------------------------------ */
body.cfae-style-rsform .cfae-content form.formResponsive {
	background: var(--c-surface) !important;
	color: var(--c-text);
	max-width: 46rem;
	margin-inline: auto;
	padding: clamp(1.25rem, 1rem + 1.6vw, 2.25rem);
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius-lg, 24px);
	box-shadow: var(--c-shadow);
}
body.cfae-style-rsform .cfae-content form.formResponsive > h2 {
	font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem);
	margin: 0 0 1.5rem;
	padding-bottom: .7rem;
	border-bottom: 1px solid var(--c-border);
	position: relative;
}
body.cfae-style-rsform .cfae-content form.formResponsive > h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 3rem;
	height: 3px;
	border-radius: 3px;
	background: var(--cfae-accent);
}

/* Grelha de 12 colunas do RSForm, sem floats */
body.cfae-style-rsform .cfae-content .formRow {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 0 1.25rem;
	margin: 0;
}
/* Alguns formulários têm o </div> do formSpan fora do sítio e deixam blocos
   soltos dentro da .formRow. Sem isto, cada bloco solto ficava com 1/12 da
   largura. Não afeta os formSpan, que estão excluídos pelo :not(). */
body.cfae-style-rsform .cfae-content .formRow > *:not([class*="formSpan"]) { grid-column: 1 / -1; }
body.cfae-style-rsform .cfae-content [class*="formSpan"] { float: none; width: auto; margin: 0; padding: 0; }
body.cfae-style-rsform .cfae-content .formSpan12 { grid-column: span 12; }
body.cfae-style-rsform .cfae-content .formSpan11 { grid-column: span 11; }
body.cfae-style-rsform .cfae-content .formSpan10 { grid-column: span 10; }
body.cfae-style-rsform .cfae-content .formSpan9 { grid-column: span 9; }
body.cfae-style-rsform .cfae-content .formSpan8 { grid-column: span 8; }
body.cfae-style-rsform .cfae-content .formSpan7 { grid-column: span 7; }
body.cfae-style-rsform .cfae-content .formSpan6 { grid-column: span 6; }
body.cfae-style-rsform .cfae-content .formSpan5 { grid-column: span 5; }
body.cfae-style-rsform .cfae-content .formSpan4 { grid-column: span 4; }
body.cfae-style-rsform .cfae-content .formSpan3 { grid-column: span 3; }
body.cfae-style-rsform .cfae-content .formSpan2 { grid-column: span 2; }
body.cfae-style-rsform .cfae-content .formSpan1 { grid-column: span 1; }
@media (max-width: 700px) {
	body.cfae-style-rsform .cfae-content [class*="formSpan"] { grid-column: span 12; }
}

/* Campo a campo — rótulo por cima, sempre */
body.cfae-style-rsform .cfae-content .rsform-block { margin-bottom: 1.2rem; }
body.cfae-style-rsform .cfae-content .formControls,
body.cfae-style-rsform .cfae-content .formBody { margin: 0; padding: 0; width: auto; }

body.cfae-style-rsform .cfae-content label.formControlLabel {
	display: block;
	float: none;
	width: auto;
	text-align: start;
	margin: 0 0 .4rem;
	padding: 0;
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .92rem;
	color: var(--c-text);
	line-height: 1.35;
}
body.cfae-style-rsform .cfae-content label.formControlLabel:empty { display: none; }

body.cfae-style-rsform .cfae-content .formRequired {
	color: #d64545;
	font-size: 0;
	margin-inline-start: .2rem;
}
body.cfae-style-rsform .cfae-content .formRequired::after { content: "*"; font-size: 1.05rem; line-height: 0; }
html[data-theme="dark"] body.cfae-style-rsform .cfae-content .formRequired { color: #ff8f8f; }

/* A altura tem de ser sempre automática.
   Tanto o CSS do RSForm (height: 18px nos campos de texto, 28px nos select e
   nos anexos) como o CSS que alguns formulários trazem em <style> na própria
   página (height: 40px) fixam alturas pensadas para um espaçamento pequeno.
   Com o nosso espaçamento por dentro e box-sizing: border-box, sobrava menos
   altura do que a linha de texto ocupa e o texto saía cortado. O min-height
   é que passa a garantir o tamanho de toque. */
/* O box-sizing tem de ser reposto campo a campo: o responsive.min.css do RSForm
   declara `.formResponsive select, .formResponsive textarea { box-sizing:
   content-box }` e essa regra tem mais especificidade do que o `*` que põe
   border-box. Com content-box, o `width: 100%` só vale para a caixa de conteúdo
   e o nosso padding soma-se por fora — os campos saíam para lá da moldura do
   formulário, e as listas pendentes saíam ainda mais porque reservam 2.5rem para
   a seta. O `max-width: 100%` também não travava, porque em content-box se
   aplica igualmente à caixa de conteúdo. */
body.cfae-style-rsform .cfae-content .formResponsive input,
body.cfae-style-rsform .cfae-content .formResponsive select,
body.cfae-style-rsform .cfae-content .formResponsive textarea,
body.cfae-style-rsform .cfae-content .rsform-input-box,
body.cfae-style-rsform .cfae-content .rsform-text-box,
body.cfae-style-rsform .cfae-content .rsform-select-box,
body.cfae-style-rsform .cfae-content .rsform-password-box,
body.cfae-style-rsform .cfae-content .rsform-upload-box,
body.cfae-style-rsform .cfae-content .rsform-calendar-box {
	box-sizing: border-box;
}

body.cfae-style-rsform .cfae-content .rsform-input-box,
body.cfae-style-rsform .cfae-content .rsform-text-box,
body.cfae-style-rsform .cfae-content .rsform-select-box,
body.cfae-style-rsform .cfae-content .rsform-password-box,
body.cfae-style-rsform .cfae-content .rsform-upload-box,
body.cfae-style-rsform .cfae-content .rsform-calendar-box {
	width: 100%;
	max-width: 100%;
	height: auto;
	min-height: 2.9rem;
	padding: .7rem .9rem;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface);
	color: var(--c-text);
	font: inherit;
	font-size: .95rem;
	line-height: 1.4;
	box-shadow: none;
	transition: border-color .18s ease, box-shadow .18s ease;
}
body.cfae-style-rsform .cfae-content .rsform-text-box { min-height: 8rem; }
/* Lista pendente: desenhamos sempre a seta, porque há formulários que trazem
   appearance: none no CSS da própria página e ficavam sem indicação nenhuma
   de que o campo se abre. */
body.cfae-style-rsform .cfae-content .rsform-select-box {
	cursor: pointer;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-inline-end: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.75 6 6.25 11 1.75' fill='none' stroke='%232B3350' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right .95rem center;
	background-size: .72rem auto;
}
html[data-theme="dark"] body.cfae-style-rsform .cfae-content .rsform-select-box {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.75 6 6.25 11 1.75' fill='none' stroke='%23B6BCD4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
[dir="rtl"] body.cfae-style-rsform .cfae-content .rsform-select-box { background-position: left .95rem center; }
/* Listas de seleção múltipla mantêm a altura natural e não levam seta */
body.cfae-style-rsform .cfae-content select.rsform-select-box[multiple],
body.cfae-style-rsform .cfae-content select.rsform-select-box[size] {
	background-image: none;
	padding-inline-end: .9rem;
	min-height: 0;
}
/* Campo de anexo.
   O CSS do RSForm fixa .formResponsive input[type="file"] em height: 28px;
   com o nosso espaçamento por dentro (box-sizing: border-box) sobrava menos
   de 1px para o botão nativo e o campo aparecia cortado. A altura tem de
   ficar automática — o min-height é que garante o tamanho de toque. */
body.cfae-style-rsform .cfae-content .rsform-upload-box,
body.cfae-style-rsform .cfae-content input[type="file"] {
	height: auto;
	min-height: 3rem;
	line-height: 1.5;
	padding: .65rem .8rem;
	border-style: dashed;
	background: var(--c-surface-2);
	cursor: pointer;
	display: block;
}
/* Botão nativo "Escolher ficheiro" a condizer com o resto do formulário */
body.cfae-style-rsform .cfae-content input[type="file"]::file-selector-button {
	margin-inline-end: .7rem;
	padding: .38rem .8rem;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface);
	color: var(--c-text);
	font: inherit;
	font-size: .88rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .18s ease, border-color .18s ease, color .18s ease;
}
body.cfae-style-rsform .cfae-content input[type="file"]::file-selector-button:hover {
	background: var(--c-surface-2);
	border-color: var(--cfae-primary);
	color: var(--cfae-primary);
}
body.cfae-style-rsform .cfae-content input[type="file"]::-webkit-file-upload-button {
	margin-inline-end: .7rem;
	padding: .38rem .8rem;
	border: 1px solid var(--c-border-strong);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface);
	color: var(--c-text);
	font: inherit;
	font-size: .88rem;
	font-weight: 600;
	cursor: pointer;
}
body.cfae-style-rsform .cfae-content .rsform-input-box:focus,
body.cfae-style-rsform .cfae-content .rsform-text-box:focus,
body.cfae-style-rsform .cfae-content .rsform-select-box:focus,
body.cfae-style-rsform .cfae-content .rsform-upload-box:focus {
	border-color: var(--cfae-primary);
	box-shadow: var(--c-ring);
	outline: none;
}

/* Opções (rádio e caixas de seleção) */
body.cfae-style-rsform .cfae-content .formBody label:not(.formControlLabel) {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	font-weight: 400;
	font-size: .95rem;
	margin: 0 0 .35rem;
	cursor: pointer;
}
body.cfae-style-rsform .cfae-content .formBody input[type="radio"],
body.cfae-style-rsform .cfae-content .formBody input[type="checkbox"] { margin: .25rem 0 0; flex: 0 0 auto; }

/* Descrição, validação e erros */
body.cfae-style-rsform .cfae-content .formDescription {
	margin: .4rem 0 0;
	font-size: .82rem;
	color: var(--c-muted);
	line-height: 1.45;
}
body.cfae-style-rsform .cfae-content .formDescription:empty { display: none; }
body.cfae-style-rsform .cfae-content .formNoError { display: none; }
body.cfae-style-rsform .cfae-content .formError {
	display: block;
	margin-top: .4rem;
	font-size: .85rem;
	font-weight: 600;
	color: #c0392b;
}
html[data-theme="dark"] body.cfae-style-rsform .cfae-content .formError { color: #ff9a9a; }
body.cfae-style-rsform .cfae-content .rsform-error input,
body.cfae-style-rsform .cfae-content .rsform-error select,
body.cfae-style-rsform .cfae-content .rsform-error textarea { border-color: #c0392b; }

body.cfae-style-rsform .cfae-content [id^="rsform_error_"] {
	background: rgba(192, 57, 43, .08);
	border: 1px solid rgba(192, 57, 43, .25);
	border-inline-start: 4px solid #c0392b;
	border-radius: var(--cfae-radius-sm, 8px);
	padding: .9rem 1.1rem;
	margin-bottom: 1.5rem;
	color: var(--c-text);
	font-size: .92rem;
}

/* Total a pagar */
body.cfae-style-rsform .cfae-content .rsform-type-total .formBody {
	display: inline-flex;
	align-items: baseline;
	gap: .5rem;
	background: rgba(var(--cfae-primary-rgb), .09);
	border-radius: var(--cfae-radius-sm, 8px);
	padding: .55rem .95rem;
}
body.cfae-style-rsform .cfae-content .rsform_payment_total {
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 800;
	font-size: 1.35rem;
	color: var(--cfae-primary);
	font-variant-numeric: tabular-nums;
}

/* Botões */
body.cfae-style-rsform .cfae-content .rsform-type-submitbutton { margin-top: 1.75rem; padding-top: 1.35rem; border-top: 1px solid var(--c-border); }
body.cfae-style-rsform .cfae-content .rsform-type-submitbutton .formBody { display: flex; gap: .6rem; flex-wrap: wrap; align-items: center; }
body.cfae-style-rsform .cfae-content .rsform-submit-button,
body.cfae-style-rsform .cfae-content .rsform-reset-button,
body.cfae-style-rsform .cfae-content .rsform-prev-button,
body.cfae-style-rsform .cfae-content .rsform-next-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	height: auto;
	min-height: 2.9rem;
	padding: .8rem 1.6rem;
	border: 1px solid transparent;
	border-radius: var(--cfae-radius-sm, 8px);
	font-family: var(--cfae-font-heading, sans-serif);
	font-weight: 600;
	font-size: .95rem;
	line-height: 1.2;
	cursor: pointer;
	background-image: none;
	text-shadow: none;
	box-shadow: none;
	transition: transform .16s ease, filter .18s ease, background-color .18s ease, border-color .18s ease;
}
body.cfae-style-rsform .cfae-content .rsform-submit-button,
body.cfae-style-rsform .cfae-content .rsform-next-button {
	background: var(--cfae-accent);
	color: var(--cfae-accent-ink);
	box-shadow: 0 10px 24px -14px rgba(var(--cfae-accent-rgb), .95);
}
body.cfae-style-rsform .cfae-content .rsform-reset-button,
body.cfae-style-rsform .cfae-content .rsform-prev-button {
	background: transparent;
	border-color: var(--c-border-strong);
	color: var(--c-text-soft);
}
body.cfae-style-rsform .cfae-content .rsform-submit-button:hover,
body.cfae-style-rsform .cfae-content .rsform-next-button:hover { filter: brightness(1.06); transform: translateY(-1px); }
body.cfae-style-rsform .cfae-content .rsform-reset-button:hover,
body.cfae-style-rsform .cfae-content .rsform-prev-button:hover { border-color: var(--cfae-primary); color: var(--cfae-primary); }

/* Paginação e cabeçalhos internos */
body.cfae-style-rsform .cfae-content .formContainer > h3,
body.cfae-style-rsform .cfae-content .rsform-block-header {
	font-size: .78rem;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--cfae-primary);
	margin: 2rem 0 1rem;
}
body.cfae-style-rsform .cfae-content form.formResponsive img { border-radius: var(--cfae-radius-sm, 8px); }

/* Mensagens do sistema */
.cfae-content #system-message-container .alert,
.cfae-content .alert {
	border: 1px solid var(--c-border);
	border-inline-start: 4px solid var(--cfae-primary);
	background: var(--c-surface-2);
	color: var(--c-text);
	border-radius: var(--cfae-radius-sm, 8px);
	padding: .9rem 1.1rem;
	margin-bottom: 1.25rem;
	text-shadow: none;
}
.cfae-content .alert-success { border-inline-start-color: #2f9e63; }
.cfae-content .alert-error, .cfae-content .alert-danger { border-inline-start-color: #d64545; }
.cfae-content .alert-warning { border-inline-start-color: #d9a441; }
.cfae-content .alert h4 { margin: 0 0 .3rem; font-size: 1rem; }

/* ------------------------------------------------------------------ */
/* 14. Rodapé                                                          */
/* ------------------------------------------------------------------ */
.cfae-footer {
	background: var(--c-footer-bg);
	color: var(--c-footer-text);
	padding-block: clamp(2.5rem, 1.5rem + 3vw, 4rem) 1.5rem;
	margin-top: auto;
}
body.cfae-footer-brand .cfae-footer { background: linear-gradient(160deg, var(--cfae-primary) 0%, var(--cfae-primary-d) 100%); }
body.cfae-footer-light .cfae-footer { background: var(--c-bg-alt); color: var(--c-text-soft); border-top: 1px solid var(--c-border); }
body.cfae-footer-light .cfae-footer__heading, body.cfae-footer-light .cfae-footer a { color: var(--c-text); }
body.cfae-footer-light .cfae-social__link { background: rgba(var(--cfae-primary-rgb), .1); color: var(--cfae-primary); }

.cfae-footer a { color: rgba(255, 255, 255, .88); }
.cfae-footer a:hover { color: #fff; }
.cfae-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	padding-bottom: 2rem;
}
/* Os módulos do rodapé ocupam uma linha inteira: com três ou mais colunas de
   módulos não há largura suficiente ao lado dos contactos. */
.cfae-footer__cols {
	grid-column: 1 / -1;
	padding-top: clamp(1.25rem, 1rem + 1vw, 2rem);
	border-top: 1px solid rgba(255, 255, 255, .1);
}
body.cfae-footer-light .cfae-footer__cols { border-top-color: var(--c-border); }
@media (max-width: 640px) { .cfae-footer__top { grid-template-columns: 1fr; } }

.cfae-footer__logo { max-height: 3.4rem; width: auto; margin-bottom: 1rem; }
body:not(.cfae-footer-light) .cfae-footer__logo { filter: brightness(0) invert(1); opacity: .95; }
.cfae-footer__title { font-family: var(--cfae-font-heading); font-size: 1.2rem; font-weight: 800; color: var(--c-footer-title); display: block; margin-bottom: .75rem; }
.cfae-footer__about { font-size: .875rem; line-height: 1.6; max-width: 42ch; margin: 0; }
.cfae-footer__heading {
	font-size: .74rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--c-footer-title);
	margin-bottom: 1rem;
	font-weight: 700;
}
body.cfae-footer-light .cfae-footer__heading { color: var(--c-text); }
.cfae-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .8rem; font-size: .875rem; }
.cfae-footer__list li { display: flex; gap: .65rem; align-items: flex-start; }
.cfae-footer__list .cfae-ico { margin-top: .2em; opacity: .6; }
.cfae-footer__list small { display: block; opacity: .6; font-size: .78rem; }
.cfae-footer__cols .cfae-grid { gap: clamp(1.25rem, 1rem + 1vw, 2.5rem); }
.cfae-footer .cfae-module { margin-bottom: 0; }
.cfae-footer .cfae-module__body { font-size: .875rem; line-height: 1.6; }
.cfae-footer .cfae-module__body p { margin-bottom: .6rem; }
.cfae-footer .cfae-module__body > *:last-child { margin-bottom: 0; }
.cfae-footer .cfae-module__body ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .45rem; font-size: .875rem; }
.cfae-footer .cfae-module__body ul > li > a { padding: 0; color: rgba(255, 255, 255, .82); }
.cfae-footer .cfae-module__body ul > li > a:hover { background: none; color: #fff; padding-inline-start: .2rem; }
body.cfae-footer-light .cfae-footer .cfae-module__body ul > li > a { color: var(--c-text-soft); }

/* --- Módulos herdados do template anterior --------------------------------
   O conteúdo de vários módulos personalizados traz estilos inline (fundo
   claro, molduras, cores fixas, largura máxima) que foram desenhados para um
   rodapé branco. Com o rodapé escuro isso produz caixas brancas e texto
   ilegível. Esta normalização devolve-os ao estilo do template; pode ser
   desligada no separador "Rodapé" dos parâmetros.                          */
body.cfae-normalize-footer .cfae-footer .cfae-module__body [style]:not(img):not(svg),
body.cfae-normalize-footer .cfae-footer .cfae-module__body .custom > div {
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
	width: auto !important;
	box-shadow: none !important;
	font-family: inherit !important;
	text-align: start !important;
}
body.cfae-normalize-footer .cfae-footer .cfae-module__body,
body.cfae-normalize-footer .cfae-footer .cfae-module__body *:not(a) {
	color: inherit !important;
}
body.cfae-normalize-footer .cfae-footer .cfae-module__body a { color: rgba(255, 255, 255, .88) !important; }
body.cfae-normalize-footer .cfae-footer .cfae-module__body a:hover { color: #fff !important; }
body.cfae-normalize-footer.cfae-footer-light .cfae-footer .cfae-module__body a { color: var(--cfae-primary) !important; }

body.cfae-normalize-footer .cfae-footer .cfae-module__body h1,
body.cfae-normalize-footer .cfae-footer .cfae-module__body h2,
body.cfae-normalize-footer .cfae-footer .cfae-module__body h3,
body.cfae-normalize-footer .cfae-footer .cfae-module__body h4 {
	font-size: .74rem !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 700;
	margin: 0 0 .7rem !important;
	color: var(--c-footer-title) !important;
}
body.cfae-normalize-footer.cfae-footer-light .cfae-footer .cfae-module__body h1,
body.cfae-normalize-footer.cfae-footer-light .cfae-footer .cfae-module__body h2,
body.cfae-normalize-footer.cfae-footer-light .cfae-footer .cfae-module__body h3,
body.cfae-normalize-footer.cfae-footer-light .cfae-footer .cfae-module__body h4 { color: var(--c-text) !important; }

body.cfae-normalize-footer .cfae-footer .cfae-module__body ul,
body.cfae-normalize-footer .cfae-footer .cfae-module__body ol {
	list-style: none !important;
	padding-inline-start: 0 !important;
}
body.cfae-normalize-footer .cfae-footer .cfae-module__body li { margin-bottom: .3rem !important; }
body.cfae-normalize-footer .cfae-footer .cfae-module__body address {
	font-style: normal;
	margin: 0 0 .3rem !important;
	line-height: 1.5;
}
body.cfae-normalize-footer .cfae-footer .cfae-module__body img { max-height: 1.15em; width: auto; margin-inline-end: .35rem; vertical-align: -.15em; }
body.cfae-normalize-footer .cfae-footer .cfae-module__body table { width: auto !important; }
body.cfae-normalize-footer .cfae-footer .cfae-module__body td,
body.cfae-normalize-footer .cfae-footer .cfae-module__body th { border: 0 !important; padding: .12rem .5rem .12rem 0 !important; }

.cfae-footer__cofin {
	padding: 1.25rem 0;
	border-top: 1px solid rgba(255, 255, 255, .12);
	text-align: center;
}
body.cfae-footer-light .cfae-footer__cofin { border-top-color: var(--c-border); }
.cfae-footer__cofin img { max-height: 4.5rem; width: auto; background: #fff; padding: .5rem .75rem; border-radius: var(--cfae-radius-sm, 8px); }

.cfae-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: .8rem;
}
body.cfae-footer-light .cfae-footer__bottom { border-top-color: var(--c-border); }
.cfae-footer__copy { margin: 0; }
.cfae-footer__legal { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.cfae-footer__legal .cfae-module, .cfae-footer__legal .moduletable { margin: 0; }
.cfae-footer__legal p { margin: 0; }

/* ------------------------------------------------------------------ */
/* 15. Voltar ao topo                                                  */
/* ------------------------------------------------------------------ */
.cfae-totop {
	position: fixed;
	right: 1.15rem;
	bottom: 1.15rem;
	width: 2.9rem;
	height: 2.9rem;
	border-radius: 999px;
	border: 0;
	background: var(--cfae-primary);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: var(--c-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(.75rem);
	transition: opacity .25s ease, transform .25s ease, visibility .25s;
	z-index: 55;
}
.cfae-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.cfae-totop:hover { background: var(--cfae-primary-d); }
@media (max-width: 560px) { .cfae-totop { right: .75rem; bottom: 4.5rem; } }

/* ------------------------------------------------------------------ */
/* Consentimento de cookies                                            */
/* ------------------------------------------------------------------ */
.cfae-cookies {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 90;
	background: var(--c-surface);
	border-top: 1px solid var(--c-border);
	box-shadow: 0 -2px 6px rgba(16, 20, 40, .06), 0 -20px 50px -30px rgba(16, 20, 40, .5);
	animation: cfae-cookies-in .35s cubic-bezier(.2, .7, .3, 1) both;
	max-height: 85vh;
	overflow-y: auto;
}
@keyframes cfae-cookies-in { from { transform: translateY(100%); } to { transform: none; } }

/* O atributo hidden tem de vencer os display: flex/grid dos componentes. */
.cfae [hidden], .cfae-cookies [hidden] { display: none !important; }

.cfae-cookies__inner {
	display: flex;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: clamp(1rem, .6rem + 1.6vw, 2.5rem);
	padding-block: 1.1rem 1.2rem;
}
.cfae-cookies__text { flex: 1 1 22rem; min-width: 0; order: 1; }
.cfae-cookies__actions { order: 2; }
.cfae-cookies__cats { flex: 1 0 100%; order: 3; }
.cfae-cookies__title { font-size: 1.05rem; margin: 0 0 .35rem; }
.cfae-cookies__text p { margin: 0; font-size: .9rem; color: var(--c-text-soft); max-width: 78ch; }
.cfae-cookies__text a { text-decoration: underline; }

.cfae-cookies__actions {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
	padding-top: .2rem;
}
.cfae-cookies__actions .cfae-btn { padding: .6rem 1.15rem; font-size: .9rem; }

.cfae-cookies__cats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: .6rem;
	margin-top: .9rem;
	padding-top: .9rem;
	border-top: 1px dashed var(--c-border);
}
.cfae-cookies__cat {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
	padding: .6rem .7rem;
	border: 1px solid var(--c-border);
	border-radius: var(--cfae-radius-sm, 8px);
	background: var(--c-surface-2);
	cursor: pointer;
	font-size: .85rem;
}
.cfae-cookies__cat--fixed { cursor: default; opacity: .75; }
.cfae-cookies__cat input { margin: .2rem 0 0; flex: 0 0 auto; }
.cfae-cookies__cat strong { display: block; font-family: var(--cfae-font-heading, sans-serif); font-size: .9rem; }
.cfae-cookies__cat small { display: block; color: var(--c-muted); line-height: 1.4; margin-top: .1rem; }

@media (max-width: 900px) {
	.cfae-cookies__inner { flex-direction: column; gap: 1rem; }
	.cfae-cookies__actions { width: 100%; }
	.cfae-cookies__actions .cfae-btn { flex: 1 1 auto; justify-content: center; }
}

/* O botão flutuante e a barra lateral não podem ficar por baixo da barra */
body.cfae-cookies-open .cfae-totop { bottom: 9.5rem; }

.cfae-footer__cookielink {
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.cfae-footer__cookielink:hover { color: #fff; }
body.cfae-footer-light .cfae-footer__cookielink:hover { color: var(--cfae-primary); }

/* Conteúdos incorporados retidos até haver consentimento */
.cfae-embed-hold {
	display: grid;
	place-items: center;
	gap: .7rem;
	padding: 1.5rem 1.25rem;
	text-align: center;
	background: var(--c-surface-2);
	border: 1px dashed var(--c-border-strong);
	border-radius: var(--cfae-radius, 16px);
	color: var(--c-text-soft);
	font-size: .88rem;
	min-height: 9rem;
}
.cfae-embed-hold p { margin: 0; max-width: 46ch; }

/* ------------------------------------------------------------------ */
/* 16. Animações de entrada                                            */
/* ------------------------------------------------------------------ */
body.cfae-anim [data-anim] { opacity: 0; transform: translateY(14px); }
body.cfae-anim [data-anim].is-in { opacity: 1; transform: none; transition: opacity .55s ease, transform .55s cubic-bezier(.2, .7, .3, 1); }
body.cfae-anim [data-anim="1"].is-in { transition-delay: .06s; }
body.cfae-anim [data-anim="2"].is-in { transition-delay: .12s; }
body.cfae-anim [data-anim="3"].is-in { transition-delay: .18s; }
body.cfae-anim [data-anim="4"].is-in { transition-delay: .24s; }
body.cfae-anim [data-anim="5"].is-in { transition-delay: .3s; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	body.cfae-anim [data-anim] { opacity: 1; transform: none; }
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ------------------------------------------------------------------ */
/* 17. Compatibilidade Bootstrap 2 (grelha do Joomla 3)                */
/* ------------------------------------------------------------------ */
.cfae-content .row-fluid { display: flex; flex-wrap: wrap; margin: 0 -.75rem; width: auto; }
.cfae-content .row-fluid::before, .cfae-content .row-fluid::after { display: none; }
.cfae-content .row-fluid > [class*="span"] { padding: 0 .75rem; float: none; margin-left: 0; min-height: 0; box-sizing: border-box; }
.cfae-content .row-fluid > .span12 { width: 100%; }
.cfae-content .row-fluid > .span11 { width: 91.66%; }
.cfae-content .row-fluid > .span10 { width: 83.33%; }
.cfae-content .row-fluid > .span9 { width: 75%; }
.cfae-content .row-fluid > .span8 { width: 66.66%; }
.cfae-content .row-fluid > .span7 { width: 58.33%; }
.cfae-content .row-fluid > .span6 { width: 50%; }
.cfae-content .row-fluid > .span5 { width: 41.66%; }
.cfae-content .row-fluid > .span4 { width: 33.33%; }
.cfae-content .row-fluid > .span3 { width: 25%; }
.cfae-content .row-fluid > .span2 { width: 16.66%; }
.cfae-content .row-fluid > .span1 { width: 8.33%; }
@media (max-width: 760px) { .cfae-content .row-fluid > [class*="span"] { width: 100%; } }

body.cfae .btn, body.cfae button.btn, body.cfae a.btn {
	background-image: none;
	text-shadow: none;
	border-radius: var(--cfae-radius-sm, 8px);
	box-shadow: none;
}
body.cfae .btn-primary { background: var(--cfae-primary); border-color: var(--cfae-primary); color: #fff; }
body.cfae .btn-primary:hover { background: var(--cfae-primary-d); border-color: var(--cfae-primary-d); }
body.cfae .well { background: var(--c-surface-2); border-color: var(--c-border); box-shadow: none; border-radius: var(--cfae-radius, 16px); }
body.cfae .nav-tabs { border-bottom-color: var(--c-border); }
body.cfae .nav-tabs > li > a { border-radius: var(--cfae-radius-sm) var(--cfae-radius-sm) 0 0; color: var(--c-text-soft); }
body.cfae .nav-tabs > .active > a { background: var(--c-surface); border-color: var(--c-border) var(--c-border) transparent; color: var(--cfae-primary); }
body.cfae .thumbnail { border-color: var(--c-border); border-radius: var(--cfae-radius-sm); box-shadow: none; background: var(--c-surface); }
body.cfae .label, body.cfae .badge { text-shadow: none; }

/* Utilitários */
.cfae-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}
