/* Vitrine de parceiros: escopo próprio, logos coloridos e dimensões uniformes. */
.cupula-patro {
	--patro-bg: #fff;
	--patro-titulo: #02065f;
	--patro-eyebrow: #287e75;
	--patro-cota: #02065f;
	--patro-div1: #02065f;
	--patro-div2: #00a0cc;
	--patro-card-bg: #fff;
	--patro-cols: 4;
	--patro-cols-tablet: 3;
	--patro-cols-mobile: 2;
	--patro-logo-h: 90px;
	--patro-gap: clamp(12px, 2vw, 24px);
	container: cupula-patro / inline-size;
	width: 100%;
	min-width: 0;
	padding: clamp(48px, 6vw, 88px) clamp(16px, 3vw, 32px);
	background: var(--patro-bg);
	color: var(--patro-titulo);
	font-family: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cupula-patro,
.cupula-patro * { box-sizing: border-box; }
.cupula-patro [hidden] { display: none !important; }
.cupula-patro__wrap { max-width: 1180px; min-width: 0; margin-inline: auto; }
.cupula-patro__head { margin-bottom: clamp(36px, 5vw, 60px); text-align: center; }
.cupula-patro .cupula-patro__eyebrow {
	margin: 0 0 12px;
	color: var(--patro-eyebrow);
	font-family: "Geist Mono", ui-monospace, monospace;
	font-weight: 500;
	line-height: 1.6;
	font-size: 12px;
	letter-spacing: .24em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.cupula-patro .cupula-patro__titulo {
	margin: 0;
	color: var(--patro-titulo);
	font-family: "Anton", Impact, sans-serif;
	font-size: clamp(34px, 5vw, 64px);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -.015em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.cupula-patro__grupo + .cupula-patro__grupo { margin-top: clamp(32px, 4.5vw, 56px); }
.cupula-patro__cota { display: flex; align-items: center; gap: 20px; margin-bottom: 22px; }
.cupula-patro .cupula-patro__cota-nome {
	flex: 0 1 auto;
	margin: 0;
	color: var(--patro-cota);
	font-family: "Geist Mono", ui-monospace, monospace;
	font-weight: 500;
	line-height: 1.6;
	font-size: 18px;
	letter-spacing: .16em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.cupula-patro__divisor {
	flex: 1 0 32px;
	height: 1px;
	background: linear-gradient(90deg, var(--patro-div1), var(--patro-div2));
	opacity: .25;
}
.cupula-patro .cupula-patro__grid {
	--patro-active-cols: var(--patro-cols);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--patro-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}
.cupula-patro .cupula-patro__item {
	flex: 0 0 calc((100% - (var(--patro-active-cols) - 1) * var(--patro-gap)) / var(--patro-active-cols));
	min-width: min(100%, 112px);
	max-width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cupula-patro .cupula-patro__card {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: calc(var(--patro-logo-h) + 64px);
	padding: 30px clamp(16px, 2vw, 30px);
	border: 1px solid #e8ecf1;
	border-radius: 16px;
	background: var(--patro-card-bg);
	box-shadow: 0 2px 6px rgb(2 6 95 / 2%);
	text-decoration: none;
	transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
/* Contain conserva as proporções, inclusive de marcas verticais ou muito largas. */
.cupula-patro .cupula-patro__card img.cupula-patro__logo {
	display: block;
	width: 100%;
	height: var(--patro-logo-h);
	max-width: 100%;
	max-height: 100%;
	margin: 0;
	border: 0;
	border-radius: 0;
	object-fit: contain;
	object-position: center;
	filter: none;
}
@media (hover: hover) and (pointer: fine) {
	.cupula-patro a.cupula-patro__card:hover {
		transform: translateY(-3px);
		border-color: #b9dbe3;
		box-shadow: 0 10px 28px rgb(2 6 95 / 7%);
	}
}
.cupula-patro a.cupula-patro__card:focus-visible {
	outline: 3px solid var(--patro-titulo);
	outline-offset: 4px;
}
.cupula-patro__vazio { padding: 24px; text-align: center; color: #50575e; }

/* Visível por padrão: falha de JS não esconde os patrocinadores. */
.cupula-patro .is-patro-pending {
	opacity: 0;
	transform: translateY(14px);
}
.cupula-patro [data-patro-reveal] {
	transition: opacity .55s ease, transform .55s cubic-bezier(.2, .65, .3, 1);
}
.cupula-patro [data-patro-reveal]:focus-within { opacity: 1; transform: none; }

@media (max-width: 1023px) {
	.cupula-patro .cupula-patro__grid { --patro-active-cols: var(--patro-cols-tablet); }
}
@media (max-width: 767px) {
	/* Largura explícita evita que o flex-wrap do Elementor calcule a altura
	   como uma coluna única antes de resolver as container queries da vitrine. */
	.elementor-widget-shortcode:has(.cupula-patro) { width: 100%; }
}
@media (max-width: 639px) {
	.cupula-patro .cupula-patro__grid { --patro-active-cols: var(--patro-cols-mobile); }
	.cupula-patro__cota { gap: 14px; margin-bottom: 16px; }
	.cupula-patro .cupula-patro__cota-nome { font-size: 16px; letter-spacing: .1em; }
	.cupula-patro .cupula-patro__card { padding-inline: 16px; border-radius: 12px; }
}
/* A prévia no admin e containers estreitos usam a largura real do componente. */
@container cupula-patro (max-width: 1023px) {
	.cupula-patro .cupula-patro__grid { --patro-active-cols: var(--patro-cols-tablet); }
}
@container cupula-patro (max-width: 639px) {
	.cupula-patro .cupula-patro__grid { --patro-active-cols: var(--patro-cols-mobile); }
	.cupula-patro__cota { gap: 14px; margin-bottom: 16px; }
	.cupula-patro .cupula-patro__cota-nome { font-size: 16px; letter-spacing: .1em; }
	.cupula-patro .cupula-patro__card { padding-inline: 16px; border-radius: 12px; }
}
@media (prefers-reduced-motion: reduce) {
	.cupula-patro [data-patro-reveal],
	.cupula-patro .cupula-patro__card { transition: none; transform: none; opacity: 1; }
}

.cupula-patro-admin .patro-admin-intro { max-width: 980px; font-size: 14px; }
.cupula-patro-admin .patro-admin-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-block: 16px 24px; }
.cupula-patro-admin .patro-admin-preview-wrap { margin: 16px 0 28px; max-width: 1180px; }
.cupula-patro-admin .patro-preview-sizes { display: flex; gap: 8px; margin-block: 12px; }
.cupula-patro-admin #patro-admin-preview { width: 100%; max-width: 100%; border: 1px solid #dcdcde; border-radius: 12px; overflow: hidden; background: #fff; }
.cupula-patro-admin .patro-admin-form { max-width: 1180px; }
.cupula-patro-admin .patro-admin-form > h2 { margin-top: 32px; }
.cupula-patro-admin .patro-import { max-width: 1140px; padding: 16px 20px; margin-block: 24px; background: #fff; border: 1px solid #dcdcde; border-radius: 10px; }
.cupula-patro-admin .patro-import summary { cursor: pointer; font-weight: 600; }
.cupula-patro-admin .patro-import progress { width: min(100%, 520px); height: 18px; }
.cupula-patro-admin #patro-import-errors { color: #b32d2e; list-style: disc; padding-left: 20px; }
.cupula-patro-admin .patro-import [hidden] { display: none !important; }
