/* Cadeia Criativa site template */

/* Tokens follow the original site (cadeiacriativa.sobral.ce.gov.br, Tailwind theme) */
:root {
	--cc-bg: #f0fff0;
	--cc-card: rgba(255, 255, 255, .6);
	--cc-line: rgba(10, 85, 115, .1);
	--cc-border: rgba(10, 85, 115, .15);
	--cc-border-strong: rgba(10, 85, 115, .2);
	--cc-input-border: rgba(10, 85, 115, .3);
	--cc-muted: rgba(10, 85, 115, .7);
	--cc-navy: #0a5573;
	--cc-navy-2: #0a5573;
	--cc-teal: #08bfbc;
	--cc-aqua: #05f2db;
	--cc-orange: #d95a2b;
	--cc-orange-dark: #c2410c;
	--cc-orange-light: #fff7ed;
	--cc-amber: #f2a03d;
	--cc-radius: 12px;
	--cc-radius-card: 16px;
	--cc-shadow-2xs: 0 1px rgba(0, 0, 0, .05);
	--cc-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);
	--cc-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);
	--cc-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);
	--cc-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);
	--cc-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);
	--cc-wrap: 1154px;
	--cc-gutter: clamp(1rem, 4vw, 3rem);
	--cc-font: Onest, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--cc-font-display: Poppins, Onest, system-ui, sans-serif;
}

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

html { scroll-behavior: smooth; scroll-padding-top: 90px; }

body.cc-body {
	margin: 0;
	overflow-x: hidden;
	background: var(--cc-bg);
	color: var(--cc-navy);
	font: 400 1rem/1.625 var(--cc-font);
	-webkit-font-smoothing: antialiased;
}

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

a { color: var(--cc-navy); text-decoration: none; transition: color .15s; }
a:hover, a:focus-visible { color: var(--cc-orange); }
a:focus-visible, .cc-nav-toggle:focus-visible + .cc-nav-toggle__btn { outline: 2px solid var(--cc-orange); outline-offset: 3px; }

.cc-teal { color: var(--cc-teal); }
.cc-orange { color: var(--cc-orange); }
.cc-center { text-align: center; }

/* Text painted with the brand gradient (primary to cyan), as in the original headings */
.cc-gradient-text {
	background: linear-gradient(90deg, var(--cc-navy), var(--cc-aqua));
	-webkit-background-clip: text;
	        background-clip: text;
	color: transparent;
}

.cc-wrap {
	width: min(var(--cc-wrap), 100% - 2 * var(--cc-gutter));
	margin-inline: auto;
}

/* ---------- Header ---------- */
.cc-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(240, 255, 240, .95);
	border-bottom: 1px solid var(--cc-line);
	box-shadow: var(--cc-shadow-2xs);
	-webkit-backdrop-filter: blur(12px);
	        backdrop-filter: blur(12px);
}
.cc-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	min-height: 80px;
	padding-inline: var(--cc-gutter);
}
.cc-header__brand img { display: block; height: 48px; width: auto; transition: transform .15s; }
.cc-header__brand:hover img { transform: scale(1.02); }

.cc-nav {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 2rem;
	font-size: .875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .025em;
}

.cc-nav .is-active { color: var(--cc-orange); }

.cc-nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.cc-nav-toggle__btn { display: none; }

/* ---------- Buttons ---------- */
.cc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .75rem 2rem;
	border: 2px solid var(--cc-orange);
	border-radius: 6px;
	background: var(--cc-orange);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
	box-shadow: var(--cc-shadow-lg);
	transition: background-color .15s, border-color .15s, color .15s;
}
.cc-btn:hover, .cc-btn:focus-visible { background: var(--cc-orange-dark); border-color: var(--cc-orange-dark); color: #fff; }
.cc-btn--ghost { background: transparent; color: var(--cc-orange); box-shadow: var(--cc-shadow-sm); }
.cc-btn--ghost:hover, .cc-btn--ghost:focus-visible { background: var(--cc-orange-light); border-color: var(--cc-orange); color: var(--cc-orange); }
.cc-btns { display: flex; flex-wrap: wrap; gap: 1rem; }
.cc-btns .cc-btn { min-width: min(240px, 100%); }

/* ---------- Headings / text ---------- */
.cc-h2 {
	margin: 0 0 1.5rem;
	font: 800 clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem)/1.25 var(--cc-font-display);
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: var(--cc-navy-2);
}
.cc-h3 {
	margin: 0 0 3rem;
	font: 800 clamp(1.25rem, .9rem + 1.2vw, 1.875rem)/1.25 var(--cc-font-display);
	letter-spacing: -.025em;
	text-transform: uppercase;
	color: var(--cc-orange);
	text-align: center;
}
.cc-split p { margin: 0 0 1rem; font-size: clamp(1rem, .95rem + .2vw, 1.125rem); line-height: 1.625; text-align: justify; hyphens: auto; }
.cc-split p:last-of-type { margin-bottom: 2rem; }

/* ---------- Hero ---------- */
.cc-hero {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(2rem, 4vw, 3rem);
	padding: clamp(3rem, 6vw, 7rem) clamp(1rem, 5vw, 5rem);
}
.cc-hero__title {
	max-width: 56rem;
	margin: 0;
	font: 800 clamp(1.875rem, 1rem + 2.8vw, 3.75rem)/1.25 var(--cc-font-display);
	color: var(--cc-navy);
}
/* Bold text of the headline: orange closing line */
.cc-hero__title strong, .cc-hero__title b { display: block; margin-top: .25rem; font-weight: inherit; color: var(--cc-orange); }
.cc-hero__art {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: center;
	width: clamp(176px, 17vw, 320px);
}
.cc-hero__art img { transition: transform .5s; }
.cc-hero__art img:hover { transform: scale(1.05); }
.cc-hero__name { margin-top: 1rem; font: 800 clamp(1.25rem, .9rem + 1vw, 1.875rem)/1.2 var(--cc-font-display); color: var(--cc-orange); }

/* ---------- Stats ---------- */
.cc-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1rem, 3vw, 3rem);
	padding: clamp(3rem, 5vw, 4rem) max(var(--cc-gutter), (100% - 72rem) / 2);
	background: linear-gradient(90deg, var(--cc-orange), var(--cc-amber));
}
.cc-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	border-radius: var(--cc-radius);
	background: rgba(255, 255, 255, .05);
	text-align: center;
}
.cc-stat__n { font: 800 clamp(1.875rem, 1rem + 2.8vw, 3.75rem)/1 var(--cc-font-display); letter-spacing: -.025em; color: var(--cc-aqua); }
.cc-stat__l { margin-top: .625rem; font-size: clamp(.75rem, .6rem + .5vw, 1.125rem); font-weight: 600; line-height: 1.375; color: #fff; }

/* ---------- Divider ---------- */
.cc-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	width: min(80rem, 100%);
	margin-inline: auto;
	padding: clamp(3rem, 5vw, 4rem) var(--cc-gutter);
}
.cc-divider span { flex: 1 1 0; height: 4px; background: var(--cc-orange); }
.cc-divider img { flex: 0 0 auto; width: clamp(80px, 10vw, 160px); }

/* ---------- Split sections ---------- */
.cc-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}
/* Home sections (html/mod_custom/secao.php): text beside a photo, or text only */
.cc-secao { padding-block: clamp(3rem, 6vw, 6rem); }
.cc-secao--text { grid-template-columns: 1fr; }
.cc-secao__text > :last-child { margin-bottom: 0; }
.cc-secao__photo { width: 100%; max-width: 36rem; aspect-ratio: 546 / 460; justify-self: center; border-radius: var(--cc-radius); box-shadow: var(--cc-shadow-md); }
.cc-split .cc-btns { margin-top: 2rem; }

.cc-eventos { padding-block: clamp(3rem, 4vw, 4rem); }

/* ---------- Photos ---------- */
.cc-photo { display: block; object-fit: cover; }
.cc-photo--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background:
		repeating-linear-gradient(135deg, rgba(10, 85, 115, .05) 0 12px, transparent 12px 24px),
		rgba(10, 85, 115, .1);
	color: var(--cc-muted);
	font-size: .875rem;
	font-weight: 600;
	text-align: center;
}

/* ---------- Spaces ---------- */
.cc-espacos { padding-block: clamp(3rem, 6vw, 6rem); }
.cc-espacos .cc-h2 { margin-bottom: clamp(2rem, 4vw, 3rem); }
.cc-spaces { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2rem, 3vw, 3rem); }
.cc-space {
	display: flex;
	flex-direction: column;
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	background: rgba(255, 255, 255, .4);
	box-shadow: var(--cc-shadow-2xs);
	transition: box-shadow .15s;
}
.cc-space:hover { box-shadow: var(--cc-shadow-md); }
.cc-space__photo { width: 100%; height: clamp(14rem, 22vw, 18rem); border-radius: var(--cc-radius); box-shadow: var(--cc-shadow-xs); }
.cc-space__name { margin: 1rem 0 .5rem; font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 700; line-height: 1.3; color: var(--cc-orange); }
.cc-space__desc { flex: 1; margin: 0 0 1rem; font-size: clamp(.875rem, .8rem + .25vw, 1rem); line-height: 1.625; text-align: justify; hyphens: auto; }
.cc-pill {
	align-self: flex-start;
	padding: .25rem .75rem;
	border-radius: 999px;
	background: rgba(10, 85, 115, .1);
	color: var(--cc-navy);
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.4;
}
.cc-espacos__cta { padding-top: clamp(2rem, 4vw, 3rem); }

/* ---------- Band ---------- */
.cc-band {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(4rem, 6vw, 6rem) var(--cc-gutter);
	background: linear-gradient(90deg, var(--cc-navy), var(--cc-aqua));
}
.cc-band p {
	max-width: 64rem;
	margin: 0;
	font: 800 clamp(1.25rem, .8rem + 1.6vw, 2.25rem)/1.625 var(--cc-font-display);
	text-align: center;
	color: #fff;
}

/* ---------- Event card ---------- */
.cc-event { position: relative; height: 288px; overflow: hidden; border-radius: 8px; box-shadow: var(--cc-shadow-sm); }
.cc-event__photo { width: 100%; height: 100%; transition: transform .5s; }
.cc-event:hover .cc-event__photo { transform: scale(1.05); }
.cc-event::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, .8), rgba(0, 0, 0, 0) 60%);
	pointer-events: none;
}
.cc-event__info {
	position: absolute;
	z-index: 1;
	right: 1.5rem;
	bottom: 1.5rem;
	left: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	line-height: 1.4;
}
.cc-event__title { overflow: hidden; color: #fff; font: 700 1.25rem/1.4 var(--cc-font-display); white-space: nowrap; text-overflow: ellipsis; }
.cc-event__date { color: var(--cc-aqua); font-weight: 600; }

/* Events carousel of the home page (html/mod_articles/eventos.php, js/home.js) */
.cc-carousel { position: relative; min-width: 0; }
.cc-carousel__track {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}
.cc-carousel__track::-webkit-scrollbar { display: none; }
.cc-carousel__track > .cc-event { display: block; flex: 0 0 100%; scroll-snap-align: center; color: #fff; }
.cc-carousel__track > .cc-event:hover .cc-event__title, .cc-carousel__track > .cc-event:focus-visible .cc-event__title { color: var(--cc-aqua); }
.cc-event--empty { display: flex !important; align-items: center; justify-content: center; padding: 1.5rem; background: rgba(10, 85, 115, .1); color: var(--cc-muted) !important; font-weight: 600; text-align: center; }
.cc-event--empty::after { display: none; }
.cc-carousel__nav {
	position: absolute;
	z-index: 2;
	top: 50%;
	display: flex;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: var(--cc-orange);
	box-shadow: var(--cc-shadow-md);
	cursor: pointer;
	opacity: 0;
	transform: translateY(-50%);
	transition: opacity .15s, background-color .15s;
}
.cc-carousel__nav::before {
	content: "";
	width: 20px;
	height: 20px;
	margin: auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cc-carousel__nav--prev { left: .5rem; }
.cc-carousel__nav--next { right: .5rem; }
.cc-carousel__nav--next::before { transform: scaleX(-1); }
.cc-carousel:hover .cc-carousel__nav, .cc-carousel__nav:focus-visible { opacity: 1; }
.cc-carousel__nav:hover { background: #fff; }
@media (hover: none) {
	.cc-carousel__nav { opacity: 1; }
}

/* ---------- Partners ---------- */
.cc-partners {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: clamp(3rem, 5vw, 4rem);
	padding: clamp(3rem, 5vw, 4rem) var(--cc-gutter) 0;
	border-top: 1px solid var(--cc-line);
}
.cc-partners img { object-fit: contain; transition: transform .3s; }
.cc-partners img:hover { transform: scale(1.05); }
.cc-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1.5rem 3rem; margin-top: 1.5rem; }
.cc-logos--wide { gap: 2rem 6rem; margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.cc-partners__second { margin: clamp(3rem, 5vw, 4rem) 0 clamp(2rem, 4vw, 3rem); }
.cc-partner-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	align-items: center;
	justify-items: center;
	gap: clamp(1.5rem, 3vw, 2.5rem) 2rem;
	width: min(72rem, 100%);
}

/* ---------- Footer ---------- */
.cc-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	width: min(72rem, 100% - 2 * var(--cc-gutter));
	margin: clamp(3rem, 5vw, 4rem) auto 0;
	padding: 2rem 0 clamp(3rem, 5vw, 4rem);
	border-top: 1px solid var(--cc-border-strong);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.5;
}
.cc-footer__left { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.cc-footer__left img { height: 48px; width: auto; }
.cc-footer__links { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; }
.cc-footer__links span { color: rgba(10, 85, 115, .3); }

/* ---------- Inner pages (component output) ---------- */
.cc-page {
	width: min(var(--cc-wrap), 100% - 2 * var(--cc-gutter));
	margin: clamp(2.5rem, 5vw, 4rem) auto 0;
}
.cc-page h1, .cc-page h2, .cc-page h3 { font-family: var(--cc-font-display); color: var(--cc-navy-2); line-height: 1.3; }

/* System messages */
#system-message-container { width: min(var(--cc-wrap), 100% - 2 * var(--cc-gutter)); margin: 1rem auto 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.cc-header__inner { flex-wrap: wrap; }
	.cc-nav-toggle__btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		margin-left: auto;
		border-radius: 8px;
		cursor: pointer;
		transition: background-color .15s;
	}
	.cc-nav-toggle__btn:hover { background: rgba(10, 85, 115, .05); }
	.cc-nav-toggle__btn span,
	.cc-nav-toggle__btn span::before,
	.cc-nav-toggle__btn span::after {
		display: block;
		width: 24px;
		height: 2px;
		background: var(--cc-navy);
		content: "";
		transition: transform .2s;
	}
	.cc-nav-toggle__btn span { position: relative; }
	.cc-nav-toggle__btn span::before { position: absolute; top: -7px; }
	.cc-nav-toggle__btn span::after { position: absolute; top: 7px; }
	.cc-nav-toggle:checked + .cc-nav-toggle__btn span { background: transparent; }
	.cc-nav-toggle:checked + .cc-nav-toggle__btn span::before { transform: translateY(7px) rotate(45deg); }
	.cc-nav-toggle:checked + .cc-nav-toggle__btn span::after { transform: translateY(-7px) rotate(-45deg); }

	.cc-nav { display: none; flex-direction: column; flex-basis: 100%; gap: 0; padding-bottom: 1rem; font-size: 1rem; text-transform: none; letter-spacing: 0; }
	.cc-nav a, .cc-nav span { display: block; padding: .75rem 0; border-top: 1px solid var(--cc-line); }
	.cc-nav-toggle:checked ~ .cc-nav { display: flex; }

	.cc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
	.cc-hero { flex-direction: column; text-align: center; }
	.cc-split, .cc-spaces { grid-template-columns: 1fr; }
	.cc-split p { text-align: left; }
	.cc-eventos .cc-carousel { order: 2; }
	.cc-partner-grid { grid-template-columns: repeat(2, 1fr); }
	.cc-footer { flex-direction: column; text-align: center; }
	.cc-footer__left, .cc-footer__links { justify-content: center; }
}

@media (max-width: 640px) {
	.cc-footer__links span { display: none; }
}

@media (max-width: 480px) {
	.cc-event { height: 240px; }
	.cc-event__title { white-space: normal; }
	.cc-partner-grid img { max-width: 80%; }
}

/* ---------- Forms (com_contact and com_forms overrides) ---------- */
.cc-form-page { width: min(64rem, 100%); margin: 0 auto; }
.cc-form-page__head { margin-bottom: clamp(2rem, 4vw, 3rem); text-align: center; }
.cc-form-page__title {
	margin: 0 0 1rem;
	font: 800 clamp(1.875rem, 1.3rem + 2vw, 3rem)/1.2 var(--cc-font-display);
	color: var(--cc-navy-2);
}
.cc-form-page__intro { max-width: 42rem; margin: 0 auto; font-size: clamp(1rem, .95rem + .2vw, 1.125rem); line-height: 1.625; }
.cc-form-page__intro p { margin: 0; }
.cc-form-page__edit { margin-top: .75rem; font-size: .875rem; }

/* Numbered section card */
.cc-card {
	min-width: 0;
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	background: var(--cc-card);
	box-shadow: var(--cc-shadow-sm);
}
.cc-card__head {
	display: flex;
	float: left;
	width: 100%;
	align-items: center;
	gap: .5rem;
	padding: 0;
	font: 700 clamp(1.25rem, 1.1rem + .5vw, 1.5rem)/1.3 var(--cc-font);
	color: var(--cc-navy-2);
}
.cc-card__head + * { clear: both; }
.cc-card__num {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--cc-navy-2);
	color: #fff;
	font: 800 .875rem/1 var(--cc-font);
}
.cc-card__desc {
	margin: .25rem 0 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--cc-border-strong);
	font-size: .875rem;
	line-height: 1.5;
	color: var(--cc-muted);
}

.cc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.cc-field { display: flex; min-width: 0; flex-direction: column; gap: .5rem; }
.cc-field--wide { grid-column: 1 / -1; }
.cc-field > label { font-size: .875rem; font-weight: 700; line-height: 1.4; color: var(--cc-navy-2); }
.cc-field .star { color: var(--cc-navy-2); }

/* Inputs: rounded, translucent, orange focus ring */
.cc-form .form-control,
.cc-form .form-select {
	width: 100%;
	min-height: 2.75rem;
	padding: .625rem 1rem;
	border: 1px solid var(--cc-input-border);
	border-radius: var(--cc-radius);
	background-color: rgba(255, 255, 255, .7);
	color: var(--cc-navy);
	font: 400 .875rem/1.4 var(--cc-font);
	box-shadow: var(--cc-shadow-2xs);
	transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.cc-form textarea.form-control { min-height: 7rem; padding: 1rem; resize: vertical; }
.cc-form .form-control::placeholder { color: rgba(10, 85, 115, .5); }
.cc-form .form-control:focus,
.cc-form .form-select:focus { border-color: var(--cc-orange); outline: 0; background-color: #fff; box-shadow: 0 0 0 2px rgba(217, 90, 43, .5); }
.cc-form .form-select {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a5573' stroke-opacity='.6' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-position: right .875rem center;
	background-repeat: no-repeat;
	background-size: 16px;
	appearance: none;
}

/* Joomla calendar field (div.field-calendar > div.input-group > input + button):
   the trigger button sits inside the input, on the right */
.cc-form .field-calendar .input-group { position: relative; display: block; }
.cc-form .field-calendar .form-control { padding-right: 2.75rem; }
.cc-form .field-calendar .input-group > button {
	position: absolute;
	top: 50%;
	right: .375rem;
	display: flex;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: var(--cc-navy);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background-color .15s, color .15s;
}
.cc-form .field-calendar .input-group > button:hover,
.cc-form .field-calendar .input-group > button:focus-visible { background: rgba(10, 85, 115, .08); color: var(--cc-orange); }
.cc-form .field-calendar .input-group > button:focus-visible { outline: 2px solid var(--cc-orange); outline-offset: 1px; }
.cc-form .field-calendar .input-group > button.hidden { display: none; }
.cc-form .field-calendar .input-group > button .icon-calendar {
	display: block;
	width: 18px;
	height: 18px;
	margin: auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Joomla client-side validation states */
.cc-form .form-control.invalid, .cc-form .form-select.invalid { border-color: #c0392b; box-shadow: 0 0 0 2px rgba(192, 57, 43, .2); }
.cc-form label.invalid .star { color: #c0392b; }
/* validate.js appends the message inside the label: own line, under the label text */
.cc-form .form-control-feedback {
	display: flex;
	align-items: center;
	gap: .375rem;
	margin-top: .25rem;
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.4;
	color: #c0392b;
}
/* In a grid field, out of the flow and under the input (in the row gap), so the
   input does not move and stays aligned with its neighbour */
.cc-form .cc-field { position: relative; }
.cc-form .cc-field > label .form-control-feedback {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
}
.cc-form .form-control-feedback::before {
	content: "";
	flex: none;
	width: .875rem;
	height: .875rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.01'/%3E%3C/svg%3E") center / contain no-repeat;
}

.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
}

/* LGPD consent box */
.cc-consent {
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	padding: clamp(1.25rem, 2.5vw, 1.5rem);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	background: rgba(10, 85, 115, .05);
	box-shadow: var(--cc-shadow-2xs);
}
.cc-consent__title {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 1rem;
	font: 600 .875rem/1.4 var(--cc-font);
	color: var(--cc-navy-2);
}
.cc-consent__title svg { flex: 0 0 auto; width: 20px; height: 20px; color: var(--cc-orange); }
.cc-consent__text { font-size: .875rem; line-height: 1.625; color: rgba(10, 85, 115, .8); text-align: justify; hyphens: auto; }
.cc-consent__text p { margin: 0 0 1rem; }
.cc-consent__box fieldset { margin: .5rem 0 0; padding: 0; border: 0; }
.cc-consent__box .joomla-modal { display: none; }
.cc-consent__box .form-check { display: flex; align-items: center; gap: .75rem; }
.cc-consent__box .form-check-input { flex: 0 0 auto; width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--cc-orange); cursor: pointer; }
.cc-consent__box .form-check-label { font-size: .875rem; font-weight: 700; line-height: 1.5; color: var(--cc-navy-2); cursor: pointer; }
.cc-consent__box .form-check-label::after { content: " *"; }
.cc-consent__box fieldset.invalid .form-check-label, .cc-consent__box .form-check-input.invalid + .form-check-label { color: #c0392b; }

.cc-form__actions { display: flex; justify-content: flex-end; padding-top: 1rem; }
.cc-btn--submit {
	gap: .75rem;
	padding: .875rem 2rem;
	border: 0;
	border-radius: var(--cc-radius);
	font: 700 1rem/1.5 var(--cc-font);
	box-shadow: var(--cc-shadow-md);
	cursor: pointer;
}
.cc-btn--submit:hover, .cc-btn--submit:focus-visible { background: rgba(217, 90, 43, .9); }
.cc-btn--submit:disabled { opacity: .5; cursor: default; }

/* Inner pages show the partners block right after the content */
.cc-body:not(.cc-home) .cc-partners { margin-top: clamp(3rem, 6vw, 5rem); }

@media (max-width: 700px) {
	.cc-grid { grid-template-columns: 1fr; }
	.cc-form .form-control, .cc-form .form-select { font-size: 1rem; }
	.cc-form__actions .cc-btn { width: 100%; }
}

/* ---------- Sobre nós (html/com_forms/form/sobre.php) ---------- */
.cc-aqua { color: var(--cc-aqua); }

.cc-about-hero { position: relative; overflow: hidden; background: #111827; }
.cc-about-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(10, 85, 115, .2);
	-webkit-backdrop-filter: brightness(.95);
	        backdrop-filter: brightness(.95);
	pointer-events: none;
}
.cc-about-hero__media {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: clamp(18rem, 34vw, 40.625rem);
	object-fit: cover;
}
.cc-about-hero__toggle {
	position: absolute;
	z-index: 1;
	right: var(--cc-gutter);
	bottom: 1rem;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(10, 85, 115, .65);
	color: #fff;
	cursor: pointer;
}
.cc-about-hero__toggle::before {
	content: "";
	display: block;
	width: 1rem;
	height: 1rem;
	margin: auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 4h4v16H6zM14 4h4v16h-4z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 4h4v16H6zM14 4h4v16h-4z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cc-about-hero__toggle[aria-pressed="true"]::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4l13 8-13 8z'/%3E%3C/svg%3E");
	        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 4l13 8-13 8z'/%3E%3C/svg%3E");
}
.cc-about-hero__toggle:hover, .cc-about-hero__toggle:focus-visible { background: var(--cc-orange); }
.cc-about-hero__toggle:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.cc-about__h2 {
	max-width: 28rem;
	margin: 0 0 1.5rem;
	font: 700 clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem)/1.375 var(--cc-font);
	color: var(--cc-navy-2);
}
.cc-about-connect .cc-about__h2, .cc-about-gov .cc-about__h2 { max-width: none; font-size: clamp(1.5rem, 1.3rem + .6vw, 1.875rem); }

.cc-about-history { padding-block: clamp(2rem, 4vw, 4rem); }
.cc-about-history__photo { width: 100%; max-width: 440px; aspect-ratio: 451 / 431; justify-self: center; border-radius: var(--cc-radius); box-shadow: var(--cc-shadow-md); }

.cc-about-statement {
	max-width: 64rem;
	margin: 0 auto;
	padding: clamp(4rem, 7vw, 7rem) var(--cc-gutter);
	font: 800 clamp(1.5rem, .9rem + 2.2vw, 3rem)/1.375 var(--cc-font-display);
	text-align: center;
}
.cc-about-statement .cc-orange { display: block; margin-top: .25rem; }

.cc-about-connect { padding-block: clamp(2rem, 3vw, 3rem); grid-template-columns: 1fr; }
.cc-about-connect p:last-of-type { margin-bottom: 0; }

.cc-about-vision { margin-top: clamp(2rem, 3vw, 3rem); padding-block: clamp(4rem, 6vw, 6rem); }
.cc-about-vision p { max-width: 64rem; font-size: clamp(1.25rem, .8rem + 1.2vw, 1.875rem); }

.cc-about-gov { padding-block: clamp(3rem, 4vw, 4rem); }
.cc-about-gov p:last-of-type { margin-bottom: 0; }
.cc-about-gov__img { width: 100%; max-width: 28rem; justify-self: center; border-radius: var(--cc-radius); box-shadow: var(--cc-shadow-xs); }

/* Values strip: two copies of the list scroll left in a loop (marquee) */
.cc-values {
	overflow: hidden;
	padding: clamp(2rem, 3vw, 3rem) 0;
	background: linear-gradient(90deg, var(--cc-orange), var(--cc-amber));
	user-select: none;
}
.cc-values__track { display: flex; width: max-content; animation: cc-marquee 25s linear infinite; }
.cc-values:hover .cc-values__track { animation-play-state: paused; }
.cc-values ul {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	gap: clamp(1.5rem, 3vw, 3rem);
	margin: 0;
	padding: 0 clamp(1rem, 1.5vw, 1.5rem);
	list-style: none;
	font: 800 clamp(1.25rem, .9rem + 1vw, 1.875rem)/1.3 var(--cc-font-display);
	letter-spacing: .1em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
}
.cc-values li { display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 3rem); }
.cc-values li::after { content: "✦"; font-size: clamp(1rem, .9rem + .4vw, 1.25rem); font-weight: 400; color: rgba(255, 255, 255, .6); }

@keyframes cc-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.cc-values__track { width: auto; justify-content: center; animation: none; }
	.cc-values ul { flex-wrap: wrap; justify-content: center; white-space: normal; }
	.cc-values ul[aria-hidden="true"] { display: none; }
}

/* Contact */
.cc-about-contact {
	width: min(56rem, 100% - 2 * var(--cc-gutter));
	margin: 0 auto;
	padding-top: clamp(3rem, 6vw, 6rem);
	text-align: center;
}
.cc-about-contact .cc-form-page__intro { max-width: none; margin-bottom: clamp(2rem, 4vw, 3rem); }
.cc-about-contact .cc-form { text-align: left; }
.cc-about-contact .cc-card { margin-bottom: 0; }
.cc-about-contact + .cc-partners { margin-top: clamp(3rem, 6vw, 6rem); }

.cc-field__help { font-size: .75rem; line-height: 1.4; color: var(--cc-muted); }

/* Input with a leading icon */
.cc-input { position: relative; }
.cc-input::before {
	content: "";
	position: absolute;
	z-index: 1;
	top: 50%;
	left: .75rem;
	width: 20px;
	height: 20px;
	background: rgba(10, 85, 115, .5);
	pointer-events: none;
	transform: translateY(-50%);
	-webkit-mask: var(--cc-icon) center / contain no-repeat;
	        mask: var(--cc-icon) center / contain no-repeat;
}
.cc-input .form-control, .cc-input .form-select { padding-left: 2.5rem; }
.cc-input[data-icon="user"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4 4-6 8-6s8 2 8 6'/%3E%3C/svg%3E"); }
.cc-input[data-icon="mail"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.cc-input[data-icon="building"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2'/%3E%3C/svg%3E"); }
.cc-input[data-icon="target"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3C/svg%3E"); }
.cc-input[data-icon="phone"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2'/%3E%3C/svg%3E"); }
.cc-input[data-icon="link"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M10 14a5 5 0 007 0l3-3a5 5 0 00-7-7l-1 1M14 10a5 5 0 00-7 0l-3 3a5 5 0 007 7l1-1'/%3E%3C/svg%3E"); }

/* Messages shown next to the forms */
.cc-notices { display: grid; gap: .75rem; margin-bottom: 1.5rem; text-align: left; }
.cc-notice { padding: .875rem 1.125rem; border: 1px solid var(--cc-border); border-left-width: 4px; border-radius: var(--cc-radius); background: rgba(255, 255, 255, .7); font-size: .9375rem; line-height: 1.5; box-shadow: var(--cc-shadow-2xs); }
.cc-notice p { margin: 0; }
.cc-notice--success, .cc-notice--message { border-color: #0d9488; color: #0f766e; }
.cc-notice--error, .cc-notice--danger { border-color: #c0392b; color: #a3301f; }
.cc-notice--warning { border-color: var(--cc-amber); }
.cc-notice--info, .cc-notice--notice { border-color: var(--cc-navy); }

@media (max-width: 860px) {
	.cc-about-statement br { display: none; }
}

/* ---------- Agenda de eventos (html/com_content/category/eventos.php, article/evento.php) ---------- */
.cc-events, .cc-event-page { width: min(56rem, 100%); margin: 0 auto; }
.cc-events__title {
	margin: 0 0 clamp(1.5rem, 3vw, 2rem);
	font: 800 clamp(1.875rem, 1.3rem + 2vw, 3rem)/1.2 var(--cc-font-display);
	color: var(--cc-navy-2);
}
.cc-events__subtitle { margin: 0 0 clamp(1.5rem, 3vw, 2rem); font: 700 clamp(1.25rem, 1.1rem + .5vw, 1.5rem)/1.3 var(--cc-font); color: var(--cc-orange); }
.cc-events__empty { padding: 2rem; border: 1px dashed var(--cc-border-strong); border-radius: var(--cc-radius-card); text-align: center; }
.cc-events__list { display: flex; flex-direction: column; gap: clamp(1.5rem, 3vw, 2rem); }

.cc-event-card {
	display: grid;
	grid-template-columns: 338px 1fr;
	gap: 1.5rem;
	align-items: stretch;
	padding: 1.5rem;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	background: var(--cc-card);
	box-shadow: var(--cc-shadow-2xs);
	transition: box-shadow .15s;
}
.cc-event-card:hover { box-shadow: var(--cc-shadow-md); }
.cc-event-card__media, .cc-event-page__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--cc-radius);
	background: rgba(10, 85, 115, .1);
	box-shadow: var(--cc-shadow-xs);
}
.cc-event-card__media { height: 254px; }
.cc-event-card__media img, .cc-event-card__media .cc-photo--empty { display: flex; width: 100%; height: 100%; object-fit: cover; }
.cc-event-card__badge {
	position: absolute;
	top: .625rem;
	left: .625rem;
	padding: .25rem .625rem;
	border-radius: 6px;
	background: var(--cc-orange);
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.4;
	box-shadow: var(--cc-shadow-xs);
}
/* Text column as tall as the image: the description takes the space left and is clamped (js/events.js) */
.cc-event-card__body { display: flex; height: 254px; min-width: 0; flex-direction: column; }
.cc-event-card__title {
	display: -webkit-box;
	flex: none;
	margin: 0 0 .5rem;
	overflow: hidden;
	font: 700 clamp(1.25rem, 1.1rem + .5vw, 1.5rem)/1.33 var(--cc-font);
	color: var(--cc-navy-2);
	text-wrap: pretty;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.cc-event-card__title a { color: inherit; }
.cc-event-card__title a:hover, .cc-event-card__title a:focus-visible { color: var(--cc-orange); }

.cc-event-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .375rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--cc-orange);
}
.cc-event-meta li + li::before { content: "•"; margin-right: .375rem; color: rgba(217, 90, 43, .6); }
.cc-event-card .cc-event-meta { display: block; flex: none; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cc-event-card .cc-event-meta li { display: inline; }
.cc-event-card .cc-event-meta li + li::before { margin-left: .375rem; }

.cc-event-card__desc {
	display: -webkit-box;
	flex: 1 1 0;
	min-height: 0;
	margin: 1rem 0 0;
	overflow: hidden;
	font-size: .875rem;
	line-height: 1.625;
	color: rgba(10, 85, 115, .9);
	text-align: justify;
	hyphens: auto;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.cc-event-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.5rem; padding-top: .5rem; border-top: 1px solid var(--cc-line); }
.cc-event-card__actions .cc-btn { margin-top: .5rem; }
.cc-event-card .cc-event-card__actions { flex: none; margin-top: auto; }
.cc-event-card__desc + .cc-event-card__actions { margin-top: 1.5rem; }

.cc-btn--sm { padding: .625rem 1.25rem; border-width: 1px; border-radius: var(--cc-radius); font-size: .875rem; font-weight: 700; box-shadow: var(--cc-shadow-xs); }
.cc-btn--sm:hover, .cc-btn--sm:focus-visible { border-color: transparent; background: rgba(217, 90, 43, .9); }
.cc-btn--outline { border: 1px solid rgba(217, 90, 43, .5); background: transparent; color: var(--cc-orange); }
.cc-btn--outline:hover, .cc-btn--outline:focus-visible { border-color: var(--cc-orange); background: var(--cc-orange); color: #fff; }
/* Registration closed by the form rules (sold out, closed): a label, not a link */
.cc-btn--disabled, .cc-btn--disabled:hover { border-color: var(--cc-border-strong); background: rgba(10, 85, 115, .08); color: var(--cc-navy); box-shadow: none; cursor: default; }

/* Event page */
.cc-event-page__back {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 clamp(1.5rem, 3vw, 2rem) -.625rem;
	padding: .25rem .625rem;
	border-radius: 8px;
	font-weight: 600;
	transition: background-color .15s, color .15s;
}
.cc-event-page__back:hover, .cc-event-page__back:focus-visible { background: rgba(10, 85, 115, .05); }
.cc-event-page__title {
	margin: 0 0 clamp(1rem, 2vw, 1.5rem);
	font: 800 clamp(1.5rem, 1rem + 2vw, 3rem)/1.25 var(--cc-font-display);
	color: var(--cc-navy-2);
}
.cc-event-page > .cc-event-meta { gap: .5rem 1rem; margin-bottom: clamp(1.5rem, 3vw, 2rem); font-size: clamp(1rem, .9rem + .4vw, 1.25rem); }
.cc-event-page > .cc-event-meta li + li::before { margin-right: 1rem; }
.cc-event-page__media { aspect-ratio: 16 / 9; margin-bottom: clamp(2rem, 4vw, 3rem); border: 1px solid var(--cc-line); border-radius: var(--cc-radius-card); box-shadow: var(--cc-shadow-md); }
.cc-event-page__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cc-event-page__text {
	margin-bottom: clamp(2rem, 4vw, 3rem);
	padding: clamp(1.5rem, 3vw, 2rem);
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius-card);
	background: rgba(255, 255, 255, .4);
	box-shadow: var(--cc-shadow-2xs);
	font-size: 1.125rem;
	line-height: 1.75;
	color: rgba(10, 85, 115, .9);
	text-align: justify;
	hyphens: auto;
}
.cc-event-page__text > :first-child { margin-top: 0; }
.cc-event-page__text > :last-child { margin-bottom: 0; }
.cc-event-page__text img { border-radius: 8px; }
.cc-event-page__over { margin: 0; font-weight: 600; color: var(--cc-muted); }
.cc-event-page__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.cc-event-page__actions .cc-btn { padding: .875rem 2rem; border-radius: var(--cc-radius); font-size: clamp(1rem, .95rem + .25vw, 1.125rem); font-weight: 700; box-shadow: var(--cc-shadow-md); }
.cc-event-page__actions .cc-btn--outline { border-width: 1px; }

@media (max-width: 760px) {
	.cc-event-card { grid-template-columns: 1fr; padding: 1rem; }
	.cc-event-card__media { height: auto; aspect-ratio: 16 / 9; }
	.cc-event-card__body { height: auto; }
	.cc-event-card__title { display: block; }
	.cc-event-card .cc-event-meta { white-space: normal; }
	.cc-event-card .cc-event-card__desc { flex: none; -webkit-line-clamp: 3; }
	.cc-event-card__actions .cc-btn, .cc-event-page__actions .cc-btn { flex: 1 1 100%; }
	.cc-event-page__text { text-align: left; }
}

/* Joomla pagination (layouts/joomla/pagination) in the events listing */
.cc-events__pagination { display: flex; flex-direction: column; align-items: center; gap: .75rem; margin-top: 3rem; }
.cc-events__counter { margin: 0; font-size: .875rem; color: var(--cc-muted); }
.cc-events__pagination .pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.cc-events__pagination .page-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 .75rem;
	border: 1px solid var(--cc-border);
	border-radius: var(--cc-radius);
	background: var(--cc-card);
	color: var(--cc-navy);
	font-size: .9375rem;
	font-weight: 700;
	box-shadow: var(--cc-shadow-2xs);
}
.cc-events__pagination a.page-link:hover, .cc-events__pagination a.page-link:focus-visible { border-color: var(--cc-orange); color: var(--cc-orange); }
.cc-events__pagination .active .page-link { border-color: var(--cc-orange); background: var(--cc-orange); color: #fff; pointer-events: none; }
.cc-events__pagination .disabled .page-link { opacity: .45; }
.cc-events__pagination [class^="icon-angle"]::before { font-size: 1.125rem; line-height: 1; }
.cc-events__pagination .icon-angle-left::before { content: "‹"; }
.cc-events__pagination .icon-angle-right::before { content: "›"; }
.cc-events__pagination .icon-angle-double-left::before { content: "«"; }
.cc-events__pagination .icon-angle-double-right::before { content: "»"; }

/* ---------- Reserva de espaços e eventos (html/com_forms/form/reserva.php) ---------- */

/* Tabs between the two forms */
.cc-tabs {
	display: flex;
	width: min(28rem, 100%);
	margin: 0 auto clamp(2rem, 4vw, 3rem);
	padding: .375rem;
	border: 1px solid var(--cc-border-strong);
	border-radius: var(--cc-radius-card);
	background: rgba(10, 85, 115, .1);
	box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, .05);
}
.cc-tabs__tab {
	display: inline-flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .75rem 1rem;
	border-radius: var(--cc-radius);
	color: var(--cc-navy-2);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	transition: background-color .2s, color .2s, box-shadow .2s;
}
.cc-tabs__tab::before {
	content: "";
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	background: currentColor;
	-webkit-mask: var(--cc-icon) center / contain no-repeat;
	        mask: var(--cc-icon) center / contain no-repeat;
}
.cc-tabs__tab[data-icon="building"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='4' y='3' width='16' height='18' rx='1'/%3E%3Cpath d='M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2'/%3E%3C/svg%3E"); }
.cc-tabs__tab[data-icon="calendar"] { --cc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.cc-tabs__tab:hover, .cc-tabs__tab:focus-visible { color: var(--cc-orange); }
.cc-tabs__tab.is-active { background: var(--cc-orange); color: #fff; box-shadow: var(--cc-shadow-md); }

.cc-card__badge {
	margin-left: auto;
	padding: .25rem .75rem;
	border-radius: 999px;
	background: rgba(10, 85, 115, .1);
	color: var(--cc-navy-2);
	font: 600 .75rem/1.4 var(--cc-font);
	letter-spacing: .05em;
	text-transform: uppercase;
}

/* Six-column grid: halves (3), thirds (2), address row (2 + 4) */
.cc-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.cc-span-2 { grid-column: span 2; }
.cc-span-3 { grid-column: span 3; }
.cc-span-4 { grid-column: span 4; }
.cc-span-6 { grid-column: 1 / -1; }

/* "Endereço e Localização" block */
.cc-subhead {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .25rem 1rem;
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--cc-line);
}
.cc-subhead__title { display: inline-flex; align-items: center; gap: .5rem; font-size: 1rem; font-weight: 700; color: var(--cc-navy-2); }
.cc-subhead__title::before {
	content: "";
	width: 20px;
	height: 20px;
	background: var(--cc-orange);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0114 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0114 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.cc-subhead__hint { font-size: .75rem; color: rgba(10, 85, 115, .6); }

/* Date proposals */
.cc-proposal { padding: clamp(1rem, 2vw, 1.25rem); border: 1px solid var(--cc-border-strong); border-radius: var(--cc-radius); background: rgba(240, 255, 240, .3); }
.cc-proposal__title { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; font-size: clamp(.875rem, .8rem + .25vw, 1rem); font-weight: 700; color: var(--cc-navy-2); }
.cc-proposal__title::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: rgba(10, 85, 115, .4); }
.cc-proposal--required .cc-proposal__title::before { background: var(--cc-orange); }

/* Checkboxes: single (setup time, LGPD) and option grids (ODS) */
.cc-check { display: flex; align-items: center; gap: .75rem; padding-top: .5rem; }
.cc-check .form-check-input {
	flex: 0 0 auto;
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	accent-color: var(--cc-orange);
	cursor: pointer;
}
.cc-check label { font-size: .875rem; font-weight: 700; line-height: 1.5; color: var(--cc-navy-2); cursor: pointer; }
.cc-check .star { color: var(--cc-navy-2); }
.cc-consent .cc-check { margin-top: 1rem; }

.cc-field--options fieldset { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 0; padding: 0; border: 0; }
.cc-field--options fieldset > legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.cc-field--options .form-check {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	min-height: 100%;
	padding: .75rem;
	border: 1px solid var(--cc-border-strong);
	border-radius: var(--cc-radius);
	background: rgba(240, 255, 240, .4);
	box-shadow: var(--cc-shadow-2xs);
	cursor: pointer;
	transition: background-color .15s, border-color .15s;
}
.cc-field--options .form-check:hover, .cc-field--options .form-check:has(input:checked) { border-color: var(--cc-orange); background: #fff; }
.cc-field--options .form-check-input { flex: 0 0 auto; width: 1rem; height: 1rem; margin: .25rem 0 0; accent-color: var(--cc-orange); cursor: pointer; }
.cc-field--options .form-check-label { font-size: .75rem; font-weight: 600; line-height: 1.375; color: var(--cc-navy-2); cursor: pointer; transition: color .15s; }
/* The whole card toggles the option */
.cc-field--options .form-check-label::after { content: ""; position: absolute; inset: 0; }
.cc-field--options .form-check:hover .form-check-label { color: var(--cc-orange); }
.cc-field--untitled > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

/* File input as the orange "Escolher imagem..." button */
.cc-form input[type="file"].form-control { min-height: 0; padding: 0; border: 0; background: transparent; box-shadow: none; font-size: .875rem; color: var(--cc-muted); }
.cc-form input[type="file"]::file-selector-button {
	margin-right: 1rem;
	padding: .5rem 1rem;
	border: 0;
	border-radius: 6px;
	background: var(--cc-orange);
	color: #fff;
	font: 600 .875rem/1.43 var(--cc-font);
	box-shadow: var(--cc-shadow-sm);
	cursor: pointer;
	transition: background-color .15s;
}
.cc-form input[type="file"]::file-selector-button:hover { background: rgba(217, 90, 43, .9); }

.cc-captcha { display: flex; justify-content: center; margin-bottom: 2rem; }
.cc-reserva #formulario { scroll-margin-top: 100px; }

@media (max-width: 1024px) {
	.cc-field--options fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
	.cc-grid--6 { grid-template-columns: 1fr; }
	.cc-grid--6 > * { grid-column: 1 / -1; }
	.cc-field--options fieldset { grid-template-columns: 1fr; }
	.cc-tabs { flex-direction: column; gap: .25rem; }
	.cc-card__head { flex-wrap: wrap; }
	.cc-card__badge { margin-left: 0; }
}
