/* =====================================================================
   CTL NET – Pacotes de Benefícios e Aplicativos — estilos públicos
   As regras de colunas da grade de logos e dos breakpoints são geradas
   dinamicamente em PHP (CTLB_Render::inline_style_tag) a partir de
   CTL NET Benefícios → Aparência. Este arquivo contém a "anatomia" dos
   componentes, independente de largura de tela.
   ===================================================================== */

/* Fundo em tela cheia (full-bleed, opcional) -------------------------
   --ctlb-vw e --ctlb-offset vêm do JS (public.js): a largura real da tela
   (sem scrollbar) e a margem exata para a seção encostar na borda esquerda,
   medida via getBoundingClientRect() — mais robusto que cálculo por
   porcentagem, que falha quando a seção está aninhada dentro de um
   container do Elementor com sua própria margem de centralização (mesma
   técnica e mesmo motivo do ctl-net-planos). */
.ctlb-section {
	width: var(--ctlb-vw, 100vw);
	max-width: var(--ctlb-vw, 100vw);
	margin-left: var(--ctlb-offset, 0px);
	background: var(--ctlb-section-bg, #FFFFFF);
}
.elementor-section:has(.ctlb-section),
.e-con:has(.ctlb-section) {
	padding: 0 !important;
}
.elementor-column:has(.ctlb-section) {
	padding: 0 !important;
	width: 100% !important;
}
.elementor-widget:has(> .elementor-widget-container .ctlb-section),
.elementor-widget:has(> .ctlb-section) {
	margin: 0 !important;
}
.elementor-widget-container:has(> .ctlb-section) {
	margin: 0 !important;
	padding: 0 !important;
}

.ctlb-wrapper {
	--ctlb-primary: #08245F;
	--ctlb-secondary: #4A6FA5;
	--ctlb-title: #08245F;
	--ctlb-text: #4A6FA5;
	--ctlb-divider: #E5E9F0;
	--ctlb-btn-start: #F05A17;
	--ctlb-btn-end: #08245F;
	--ctlb-btn-text: #FFFFFF;
	--ctlb-bg: #FFFFFF;
	--ctlb-font: 'Segoe UI', Arial, sans-serif;
	--ctlb-logo-radius: 16px;
	--ctlb-spacing: 24px;
	--ctlb-gap: 24px;
	box-sizing: border-box;
	max-width: 1400px;
	margin: 0 auto;
	padding: var(--ctlb-spacing) 16px;
	font-family: var(--ctlb-font);
	color: var(--ctlb-text);
}
.ctlb-wrapper *,
.ctlb-wrapper *::before,
.ctlb-wrapper *::after {
	box-sizing: border-box;
}

.ctlb-divider {
	border: none;
	border-top: 1px solid var(--ctlb-divider);
	margin: var(--ctlb-spacing) 0;
}

/* Introdução --------------------------------------------------------- */
.ctlb-introduction {
	margin-bottom: var(--ctlb-spacing);
}
.ctlb-intro-title {
	color: var(--ctlb-title);
	font-size: 34px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 16px;
}
.ctlb-intro-text {
	color: var(--ctlb-text);
	font-size: 16px;
	line-height: 1.6;
	max-width: 900px;
	margin: 0 0 12px;
}
.ctlb-intro-subtitle {
	color: var(--ctlb-title);
	font-weight: 700;
	margin: 12px 0 8px;
}
.ctlb-intro-rules {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
}
.ctlb-intro-rules li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	color: var(--ctlb-text);
}
.ctlb-intro-rule-icon {
	color: var(--ctlb-btn-start);
	display: inline-flex;
	flex: 0 0 auto;
}

/* Pacote --------------------------------------------------------------- */
.ctlb-package {
	background: var(--ctlb-pkg-bg, transparent);
	padding: 0 0 var(--ctlb-spacing);
}
.ctlb-package-image {
	max-width: 320px;
	margin-bottom: 16px;
	border-radius: var(--ctlb-logo-radius);
	overflow: hidden;
}
.ctlb-package-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.ctlb-package-title {
	color: var(--ctlb-pkg-title-color, var(--ctlb-title));
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 6px;
}
.ctlb-consulte {
	font-size: 0.55em;
	font-weight: 700;
	color: var(--ctlb-secondary);
	vertical-align: middle;
}
.ctlb-consulte-line {
	margin: 4px 0 10px;
}
.ctlb-consulte-line .ctlb-consulte {
	font-size: 15px;
}
.ctlb-package-subtitle {
	color: var(--ctlb-secondary);
	font-size: 16px;
	margin: 0 0 8px;
}
.ctlb-package-extra-text {
	color: var(--ctlb-text);
	margin: 0 0 8px;
}

/* Grade de logos --------------------------------------------------------- */
.ctlb-logo-grid-wrap {
	position: relative;
}
.ctlb-logo-grid {
	display: grid;
	gap: var(--ctlb-gap);
	align-items: center;
	justify-items: center;
	margin: 8px 0 16px;
}
/* Setas e bolinhas do carrossel mobile — escondidas por padrão; a faixa de
   celular (gerada em PHP a partir de "Breakpoints" + "Modo no celular")
   é quem decide exibi-las de fato, então aqui elas só existem visualmente
   quando o JS below marca o wrapper como carrossel ativo. */
.ctlb-carousel-arrow {
	display: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: none;
	background: rgba(255,255,255,.9);
	box-shadow: 0 2px 8px rgba(0,0,0,.2);
	color: var(--ctlb-primary);
	font-size: 14px;
	cursor: pointer;
	align-items: center;
	justify-content: center;
}
.ctlb-carousel-prev { left: 4px; }
.ctlb-carousel-next { right: 4px; }
.ctlb-logo-grid-wrap.is-carousel .ctlb-carousel-arrow {
	display: flex;
}
.ctlb-carousel-dots {
	display: none;
	justify-content: center;
	gap: 6px;
	margin-top: 8px;
}
.ctlb-logo-grid-wrap.is-carousel .ctlb-carousel-dots {
	display: flex;
}
.ctlb-carousel-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ctlb-divider);
	border: none;
	padding: 0;
	cursor: pointer;
}
.ctlb-carousel-dot.is-active {
	background: var(--ctlb-btn-start);
}
.ctlb-logo-item {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: var(--ctlb-logo-w, 150px);
	height: var(--ctlb-logo-h, 150px);
	background: #fff;
	border-radius: var(--ctlb-logo-radius);
	padding: 12px;
	transition: transform .2s ease, box-shadow .2s ease;
}
.ctlb-logo-item.has-shadow {
	box-shadow: 0 8px 20px rgba(0,0,0,.10);
}
.ctlb-logo-item:hover {
	transform: translateY(-3px);
}
.ctlb-logo-item.has-shadow:hover {
	box-shadow: 0 12px 26px rgba(0,0,0,.16);
}
.ctlb-logo-item img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
a.ctlb-logo-item {
	text-decoration: none;
}

.ctlb-package-description {
	color: var(--ctlb-text);
	line-height: 1.6;
	margin: 0 0 16px;
}

/* Botão com degradê -------------------------------------------------------- */
.ctlb-button {
	display: inline-block;
	padding: 14px 28px;
	background: linear-gradient(90deg, var(--ctlb-btn-start), var(--ctlb-btn-end));
	color: var(--ctlb-btn-text);
	text-decoration: none;
	font-weight: 800;
	font-size: 15px;
	border-radius: 10px;
	transition: filter .15s ease, transform .15s ease;
	border: none;
	cursor: pointer;
}
.ctlb-button:hover,
.ctlb-button:focus {
	filter: brightness(.94);
	color: var(--ctlb-btn-text);
	transform: translateY(-1px);
}
.ctlb-button-static {
	cursor: default;
}
.ctlb-button-static:hover {
	transform: none;
	filter: none;
}

/* Serviços adicionais -------------------------------------------------------- */
.ctlb-extras {
	margin-top: var(--ctlb-spacing);
}
.ctlb-extras-title {
	color: var(--ctlb-title);
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 4px;
}
.ctlb-extras-subtitle {
	color: var(--ctlb-secondary);
	margin: 0 0 16px;
}

.ctlb-extras-items {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ctlb-gap);
	align-items: flex-start;
}
.ctlb-extras-logos_only .ctlb-extra-item,
.ctlb-extras-logos_names .ctlb-extra-item,
.ctlb-extras-logos_names_consulte .ctlb-extra-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: var(--ctlb-logo-w, 150px);
}
.ctlb-extra-logo {
	width: 100%;
	max-width: var(--ctlb-logo-w, 150px);
	height: var(--ctlb-logo-h, 150px);
	border-radius: var(--ctlb-logo-radius);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px;
	margin-bottom: 8px;
}
.ctlb-extra-logo.has-shadow {
	box-shadow: 0 8px 20px rgba(0,0,0,.10);
}
.ctlb-extra-logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.ctlb-extra-name {
	color: var(--ctlb-title);
	font-weight: 700;
	margin: 0;
}

.ctlb-extras-list .ctlb-extras-items {
	display: block;
	list-style: none;
	padding: 0;
	margin: 0;
}
.ctlb-extras-list .ctlb-extra-item {
	padding: 6px 0;
	color: var(--ctlb-text);
	border-bottom: 1px solid var(--ctlb-divider);
}

.ctlb-extras-cards .ctlb-extra-item,
.ctlb-extras-grid .ctlb-extra-item {
	background: #fff;
	border-radius: var(--ctlb-logo-radius);
	box-shadow: 0 4px 16px rgba(0,0,0,.08);
	padding: 20px;
	width: 220px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
}
.ctlb-extras-grid .ctlb-extras-items {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.ctlb-extras-grid .ctlb-extra-item {
	width: auto;
}
.ctlb-extra-description {
	color: var(--ctlb-text);
	font-size: 14px;
	margin: 0;
}

/* Pré-visualização no admin ------------------------------------------------ */
.ctlb-preview {
	background: #fafafa;
	padding: 24px;
	border-radius: 8px;
}
