@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,700&display=swap');

/*
Theme Name: SciBiz 2026
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: scibiz-2026
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

SciBiz 2026 is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/* Base Variables */
:root {
	--color-brand-green: #82C341;
	--color-brand-dark-teal: #1E3646;
	--color-brand-purple: #9E3371;
	--color-bg-light: #F4F5F7;
	--color-text-dark: #333333;
	--color-text-light: #ffffff;
	--color-footer-bg: #15232D;

	--font-primary: 'Open Sans', sans-serif;
}

/* Normalize & Resets (Simplified) */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	box-sizing: border-box;
	overflow-x: hidden;
	/* previne scroll horizontal global */
}

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

body {
	margin: 0;
	color: var(--color-text-dark);
	font-family: var(--font-primary);
	font-weight: 300;
	font-size: 16px;
	line-height: 1.6;
	background: #fff;
	overflow-x: hidden;
	/* previne elementos vazando lateralmente */
	max-width: 100%;
}

/* ==========================================================================
   Tipografia Global (Design System)
   - Open Sans 700 Bold  → h2 (site todo)
   - Open Sans 300 Light → p (site todo)
   ========================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-primary);
	font-weight: 700;
	margin-bottom: 1rem;
	color: var(--color-brand-dark-teal);
	clear: both;
}

/* H2 global (hero e restante do site) */
h2 {
	font-size: 2.875rem;
	/* 46px */
	line-height: 1.2;
}

p {
	font-family: var(--font-primary);
	font-size: 1.25rem;
	/* 20px */
	font-weight: 300;
	line-height: 1.6;
	margin-bottom: 1.5em;
}

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

a {
	color: var(--color-brand-dark-teal);
	text-decoration: none;
}

a:hover {
	color: var(--color-brand-green);
}

/* Layout Utilities */
.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

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

.bg-light {
	background-color: var(--color-bg-light);
}

.bg-dark-teal {
	background-color: var(--color-brand-dark-teal);
	color: white;
}

.bg-white {
	background-color: #fff;
}

/* Typography & Display Utilities */
.text-white {
	color: #ffffff !important;
}

.text-dark {
	color: #1E3646 !important;
}

.fw-300 {
	font-weight: 300 !important;
}

.fw-400 {
	font-weight: 400 !important;
}

.fw-700 {
	font-weight: 700 !important;
}

.ul-light {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.hover-green:hover {
	color: var(--color-brand-green, #82C341) !important;
}

.align-items-center {
	align-items: center !important;
}

.mt-40 {
	margin-top: 40px !important;
}

.mb-20 {
	margin-bottom: 20px !important;
}

/* Grid System */
.grid {
	display: grid;
	gap: 30px;
}

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

.grid-3 {
	grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
	grid-template-columns: repeat(4, 1fr);
}

.grid-5 {
	grid-template-columns: repeat(5, 1fr);
}

@media (max-width: 992px) {

	.grid-5,
	.grid-4 {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px) {

	.grid-3,
	.grid-4,
	.grid-5 {
		grid-template-columns: repeat(2, 1fr);
	}

	.grid-2 {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {

	.grid-3,
	.grid-4,
	.grid-5 {
		grid-template-columns: 1fr;
	}
}

header.entry-header {
	display: none;
}

.wp-block-columns {
	margin-bottom: 0 !important;
}

/* Buttons */
.btn {
	display: inline-block;
	padding: 12px 30px;
	border-radius: 5px;
	text-decoration: none;
	font-weight: 700;
	transition: all 0.3s ease;
	border: 2px solid transparent;
	cursor: pointer;
}

.btn-primary {
	background-color: var(--color-brand-green);
	color: white;
}

.btn-primary:hover {
	opacity: 0.9;
	color: white;
}

.btn-outline-white {
	background-color: transparent;
	border-color: white;
	color: white;
}

.btn-outline-white:hover {
	background-color: white;
	color: var(--color-brand-dark-teal);
}

.btn-link {
	text-decoration: underline;
}

.page,
.post,
.product {
	max-width: 1200px;
	margin: 0 auto;
}

/* Section Titles with Risco */
.section-title-wrapper {
	display: flex;
	align-items: center;
	margin-bottom: 40px;
}

.section-title-wrapper h2 {
	margin-bottom: 0;
	margin-right: 20px;
	font-size: 2rem;
}

.risco {
	flex-grow: 1;
	position: relative;
	align-self: stretch;
}

.risco-verde {
	--risco-color: #1E3646;
}

.risco-matchmaking {
	--risco-color: #82C341;
}

.risco-branco {
	--risco-color: #FFFFFF;
}

.risco::before {
	content: '';
	position: absolute;
	top: 20px;
	left: 0;
	width: 30px;
	border-top: 2px solid var(--risco-color, #1E3646);
}

.risco::after {
	content: '';
	position: absolute;
	top: 20px;
	left: 30px;
	width: calc(100% - 30px);
	height: calc(100% - 25px);
	border-left: 2px solid var(--risco-color, #1E3646);
	border-bottom: 2px solid var(--risco-color, #1E3646);
	min-height: 40px;
}

@media (max-width: 768px) {
	.section-title-wrapper {
		flex-direction: column;
		align-items: flex-start;
	}

	.risco {
		width: 100%;
		margin-top: 10px;
		height: 40px;
		flex-grow: 0;
	}
}

/* Person/Speaker Card */
.person-card {
	text-align: center;
}

.person-img {
	width: 200px;
	height: 200px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 15px;
	border: 5px solid white;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.person-name {
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 5px;
	color: var(--color-brand-dark-teal);
}

.person-role {
	font-size: 0.9rem;
	color: #666;
	font-style: italic;
}

/* Pilares Temáticos Section
------------------------------------------------------- */
.pillars-section {
	background-color: #ffffff;
	padding: 70px 0 80px;
}

.pillars-title {
	font-size: 2.2rem;
	font-weight: 400;
	color: #1E3646;
}

.pillars-grid {
	margin-top: 10px;
	gap: 40px;
}

.pillars-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.pillars-list li {
	padding: 18px 0;
	color: #3a4a5a;
	/* Dark blue-grey, matching the reference */
	font-size: 1rem;
	border-bottom: 1px solid #e5e5e5;
	display: flex;
	align-items: center;
	gap: 12px;
}

.pillars-list li::before {
	content: '•';
	color: #3a4a5a;
	font-size: 1.2rem;
	flex-shrink: 0;
	line-height: 1;
}

/* Header & Nav */
.site-header {
	padding: 0;
	background-color: transparent;
}

.header-top {
	background-color: #384259;
	/* Cor baseada na imagem enviada para o topo */
	padding: 15px 0;
}

.header-top-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.header-logo-img {
	height: 48px;
	width: auto;
	display: block;
}

.header-actions {
	display: flex;
	gap: 15px;
	align-items: center;
}

.btn-inscricao {
	background-color: var(--color-brand-green, #82C341);
	color: #ffffff;
	border-radius: 30px;
	padding: 10px 25px;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.85rem;
	border: none;
	transition: background-color 0.3s;
}

.btn-inscricao:hover {
	background-color: #6a9e33;
	color: #ffffff;
}

.btn-programacao {
	background-color: #ffffff;
	color: #384259;
	border-radius: 30px;
	padding: 10px 25px;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.85rem;
	border: none;
	transition: background-color 0.3s;
}

.btn-programacao:hover {
	background-color: #f0f0f0;
	color: #384259;
}

.header-bottom {
	background-color: #48546b;
	/* Ligeiramente mais claro para a barra de baixo */
	padding: 0;
}

.header-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: space-between;
	/* Espalha pelo menu todo */
	align-items: center;
	width: 100%;
}

.header-nav-list li {
	margin: 0;
	text-align: center;
}

.header-nav-list a {
	color: #ffffff;
	font-weight: 600;
	font-size: 0.8rem;
	text-transform: uppercase;
	padding: 15px 10px;
	display: inline-block;
	text-decoration: none;
	transition: color 0.3s;
}

.header-nav-list a:hover {
	color: var(--color-brand-green, #82C341);
}

.main-navigation {
	display: block;
	width: 100%;
}

@media (max-width: 992px) {
	.header-top-inner {
		flex-direction: column;
		gap: 20px;
	}

	.header-nav-list {
		flex-direction: column;
		display: none;
		background-color: #384259;
		padding: 10px 0;
	}

	.header-nav-list.toggled {
		display: flex;
	}

	.main-navigation .menu-toggle {
		display: block;
		margin: 10px auto;
		background: transparent;
		color: white;
		border: 1px solid white;
		padding: 5px 15px;
		cursor: pointer;
	}
}

@media (min-width: 993px) {
	.main-navigation .menu-toggle {
		display: none;
	}

	.header-nav-list {
		display: flex !important;
		/* overrides JS toggle if viewport changes */
	}
}

/* Footer */
.site-footer {
	background-color: var(--color-footer-bg);
	color: white;
	padding: 40px 0;
	text-align: center;
}

.site-footer a {
	color: #ccc;
}

.site-footer a:hover {
	color: white;
}

/* Generic Classes for Sections specified in layout */
.hero-section {
	position: relative;
}

/* ==========================================================================
   Image Stripes (Faixas de Imagens)
   Desktop : imagem cobre 100% da largura (object-fit: cover)
   Mobile  : marquee animado — duas cópias se movendo lateralmente
   ========================================================================== */

.image-stripe {
	width: 100%;
	overflow: hidden;
	line-height: 0;
	/* remove gap under inline images */
}

/* ---- Desktop: imagem única em cover ---- */
.image-stripe-track {
	display: flex;
	/* as duas cópias lado a lado */
	width: 100%;
}

.image-stripe-img {
	width: 100%;
	height: 340px;
	object-fit: cover;
	object-position: center;
	display: block;
	flex-shrink: 0;
}

/* Segunda cópia escondida no desktop */
.image-stripe-track .image-stripe-img:nth-child(2) {
	display: none;
}

/* ---- Mobile: marquee animado ---- */
@media (max-width: 768px) {
	.image-stripe-track {
		width: max-content;
		/* deixa as duas imagens lado a lado */
		animation: marquee-scroll 18s linear infinite;
	}

	.image-stripe-img {
		width: 90vw;
		/* cada imagem ocupa 90% da largura da tela */
		height: 220px;
		flex-shrink: 0;
	}

	/* Mostra a segunda cópia para o loop funcionar */
	.image-stripe-track .image-stripe-img:nth-child(2) {
		display: block;
	}
}

@keyframes marquee-scroll {
	0% {
		transform: translateX(0);
	}

	100% {
		transform: translateX(-50%);
	}

	/* -50% = largura de uma cópia */
}

/* Pausa no hover (apenas desktop/touch-friendly) */
@media (hover: hover) {
	.image-stripe:hover .image-stripe-track {
		animation-play-state: paused;
	}
}

/* Respeita preferência de movimento reduzido */
@media (prefers-reduced-motion: reduce) {
	.image-stripe-track {
		animation: none;
	}

	.image-stripe-track .image-stripe-img:nth-child(2) {
		display: none;
	}
}


/* Líderes Section */
.lideres-section {
	background-color: #F8F6F2;
	/* Light beige/cream */
	padding: 80px 0;
	color: #15232d;
}

.lideres-header {
	display: flex;
	align-items: flex-start;
	margin-bottom: 60px;
}

.lideres-title {
	font-size: 2.5rem;
	font-weight: 700;
	color: #1E3646;
	/* Dark text */
	line-height: 1.2;
	flex: 0 0 60%;
}

.lideres-title strong {
	color: #1E3646;
	/* Or Green if requested, image shows dark/green mix? Re-checking image: Text is dark green/teal. "futuro" is bold. */
}

/* Specific override for Líderes header alignment */
.lideres-section .section-title-wrapper {
	align-items: center;
	/* Revert to center or keep start if image needs it? usually center for the stroke */
}

/* Bracket Decoration removed - returning to image based */

.person-card .person-name {
	text-transform: uppercase;
	font-weight: 300;
	/* Thinner font */
	font-size: 1.1rem;
	letter-spacing: 1px;
	color: #555;
	margin-top: 15px;
}

.person-card .person-role {
	font-weight: 600;
	color: #1E3646;
	font-size: 0.95rem;
	line-height: 1.4;
}

.asterisk {
	color: #C06C84;
	/* Pinkish/Purple */
	font-weight: 400;
	font-size: 1rem;
	vertical-align: super;
}

.lideres-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 50px;
	padding-top: 20px;
}

.lideres-note {
	font-size: 0.9rem;
	color: #C06C84;
	font-style: italic;
}

.lideres-link a {
	color: #1E3646;
	font-weight: 800;
	text-decoration: underline;
	text-transform: lowercase;
	/* match image? "+ ver..." looks lowercase */
}

.lideres-link a:hover {
	color: #82C341;
}

/* Fix Person Image size for card */
.person-img {
	width: 180px;
	height: 180px;
	border: none;
	/* Removed white border from previous generic style if conflicting */
	box-shadow: none;
	/* Cleaner look */
}

/* Stats Section
------------------------------------------------------- */
.stats-section {
	background: linear-gradient(to bottom, #ffffff 0%, #eaf8d1 100%);
	padding: 70px 0 80px;
}

.stats-section .section-title-wrapper h2,
.stats-header h2 {
	font-size: 2.2rem;
	font-weight: 700;
	color: #1E3646;
}

.stats-description {
	color: #555;
	font-size: 1rem;
	line-height: 1.7;
	margin-bottom: 40px;
	margin-top: 16px;
}

.stat-box {
	background-color: #CFF6A4;
	/* matches pale lime green */
	border-radius: 0;
	/* sharp corners */
	padding: 25px 20px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	/* Push content to bottom */
	align-items: flex-end;
	/* Right-align */
	min-height: 160px;
	transition: transform 0.25s ease;
}

.stat-box:hover {
	transform: translateY(-4px);
}

.stat-number {
	display: block;
	font-size: 3.5rem;
	font-weight: 300;
	color: #26553A;
	/* dark green */
	line-height: 1;
	margin-bottom: 5px;
}

.stat-label {
	display: block;
	font-size: 0.95rem;
	font-weight: 700;
	color: #26553A;
	/* dark green */
	text-align: right;
}

.mb-30 {
	margin-bottom: 24px;
}

/* Ecosystem Section
------------------------------------------------------- */
.ecosystem-section {
	background-color: #F3F1EC;
	/* cream/beige exato do print */
	padding: 80px 0 70px;
}

/* Title: primeira linha regular, segunda (strong) bold */
.eco-title {
	font-family: var(--font-primary);
	font-size: 2.875rem;
	/* 46px – igual ao h2 global */
	font-weight: 400;
	/* linha regular */
	color: #1E3646;
	line-height: 1.25;
	margin-bottom: 0;
}

.eco-title strong {
	font-weight: 700;
	color: #1E3646;
}

.eco-description {
	max-width: 600px;
	/* largura para wrap natural como no print */
	font-family: var(--font-primary);
	font-size: 1.25rem;
	/* 20px – p restante do site */
	font-weight: 400;
	color: #444444;
	line-height: 1.7;
	margin-top: 32px;
	margin-bottom: 50px;
}

/* Eco Cards */
.eco-grid {
	gap: 10px;
	align-items: start;
}

.eco-card {
	background-color: #2B4A30;
	/* dark green do print */
	color: #ffffff;
	padding: 28px 22px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	/* alinhamento à esquerda */
	gap: 14px;
	border-radius: 0;
	transition: background-color 0.25s ease;
}

.eco-card:hover {
	background-color: #3a6040;
}

.eco-icon {
	font-size: 2rem;
	color: rgba(255, 255, 255, 0.9);
	margin-bottom: 0;
	line-height: 1;
}

.eco-card-title {
	font-family: var(--font-primary);
	font-size: 1.05rem;
	/* ~17px */
	font-weight: 400;
	/* título regular */
	color: #ffffff;
	line-height: 1.35;
	margin: 0;
}

.eco-card-desc {
	font-family: var(--font-primary);
	font-size: 0.875rem;
	/* ~14px */
	font-weight: 300;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.6;
	flex-grow: 1;
	/* empurra o link para o fim */
	margin: 0;
}

.eco-link {
	color: var(--color-brand-green, #82C341);
	/* verde limão vivo, como no print */
	font-family: var(--font-primary);
	font-size: 0.875rem;
	font-weight: 700;
	text-decoration: none;
	margin-top: auto;
}

.eco-link:hover {
	color: #6a9e33;
	text-decoration: none;
}

.eco-tagline {
	margin-top: 55px;
	font-family: var(--font-primary);
	font-size: 1.25rem;
	/* 20px */
	font-weight: 400;
	color: #1E3646;
	line-height: 1.5;
	margin-bottom: 0;
}

.eco-tagline strong {
	font-weight: 700;
	color: #1E3646;
}

/* Hero Section Specifics */
.hero-section {
	position: relative;
	min-height: 80vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: white;
	padding: 60px 0;
	overflow: hidden;
}

/* Video Background styles */
.hero-video-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	overflow: hidden;
}

.hero-video-bg .hero-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Extra Video Layer (Multiply/Opacity) */
.hero-video-extra {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	overflow: hidden;
}

.hero-video-extra .hero-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	mix-blend-mode: multiply;
	opacity: 0.2;
	/* Slight transparency for a better blend */
}

/* Overlay for the video */
.hero-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 60, 20, 0.35);
	/* verde-escuro translúcido p/ melhor contraste */
	z-index: 2;
}

.hero-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	z-index: 3;
	width: 100%;
	gap: 30px;
}

/* Linha 1: Título + Risco branco */
.hero-title-row {
	margin-bottom: 0 !important;
	/* override section-title-wrapper default */
	align-items: stretch;
	/* risco acompanha a altura do título */
}

.hero-title-row h1 {
	margin-bottom: 0;
	margin-right: 20px;
}

/* Linha 2: Corpo – texto esquerda, logotipo direita */
.hero-body-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 40px;
}

.hero-body-left {
	flex: 0 0 55%;
}

.hero-body-right {
	flex: 1;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.hero-main-title {
	/* h1 hero: Open Sans 700, 55px */
	font-family: var(--font-primary);
	font-size: 3.4375rem;
	/* 55px */
	line-height: 1.1;
	font-weight: 700;
	margin-bottom: 0;
	color: #ffffff;
}

.hero-subtitle {
	/* h2 hero: Open Sans 700, 46px – herdado do h2 global */
	font-size: 2.875rem;
	/* 46px */
	font-weight: 700;
	margin-bottom: 30px;
	line-height: 1.2;
	color: #1E3646;
}

.hero-subtitle strong {
	font-weight: 700;
	color: #1E3646;
}

.hero-date {
	/* h3 hero: Open Sans 700, 36px, letter-spacing -2% */
	font-family: var(--font-primary);
	font-size: 2.25rem;
	/* 36px */
	font-weight: 700;
	letter-spacing: -0.02em;
	margin-bottom: 30px;
	color: #1E3646;
}

.hero-location {
	/* p hero: Open Sans 400, 22px */
	font-family: var(--font-primary);
	font-size: 1.375rem;
	/* 22px */
	font-weight: 400;
	line-height: 1.5;
	margin-bottom: 25px;
	color: #1E3646;
}

.hero-location strong {
	color: #1E3646;
	font-weight: 700;
}

.hero-location a {
	color: #1E3646;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.hero-location a:hover {
	color: #82C341;
}

.hero-intro {
	/* p hero: Open Sans 400, 22px */
	font-family: var(--font-primary);
	font-size: 1.375rem;
	/* 22px */
	font-weight: 400;
	margin-bottom: 0;
	line-height: 1.6;
	color: #1E3646;
}

/* Right Column */
.hero-right {
	flex: 0 0 45%;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	position: relative;
	padding-left: 20px;
}

.hero-line-decoration-wrapper {
	width: 100%;
	display: flex;
	justify-content: flex-end;
	margin-bottom: 40px;
}

/* Decorative Line */
.hero-line-decoration {
	width: 100%;
	height: 60px;
	margin: 0;
}

.hero-logo-area {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.hero-logo-img {
	max-width: 250px;
	margin-right: 0;
	margin-bottom: 15px;
}


/* Scroll Indicator */
.hero-scroll-indicator {
	position: absolute;
	bottom: 30px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
}

.arrow-down {
	width: 20px;
	height: 20px;
	border-right: 3px solid rgba(255, 255, 255, 0.8);
	border-bottom: 3px solid rgba(255, 255, 255, 0.8);
	transform: rotate(45deg);
	margin: -5px 0;
	animation: bounce 2s infinite;
}

@keyframes bounce {

	0%,
	20%,
	50%,
	80%,
	100% {
		transform: translateY(0) rotate(45deg);
	}

	40% {
		transform: translateY(-10px) rotate(45deg);
	}

	60% {
		transform: translateY(-5px) rotate(45deg);
	}
}

/* Responsive */
@media (max-width: 992px) {
	.hero-container {
		flex-direction: column;
	}

	.hero-left {
		margin-bottom: 40px;
	}

	.hero-right::before {
		display: none;
	}

	.scibiz-title {
		font-size: 3rem;
	}
}

@media (max-width: 768px) {
	.hero-body-row {
		flex-direction: column;
	}

	.hero-body-left,
	.hero-body-right {
		flex: unset;
		width: 100%;
	}
}

/* Connections Map Section
------------------------------------------------------- */
.connections-section {
	background-color: #f5f1ea;
	padding: 70px 0 80px;
	overflow: hidden;
	/* contém os nós absolutos do mapa */
}

.connections-title {
	font-size: 2.2rem;
	color: #1E3646;
	line-height: 1.3;
}

.connections-title strong {
	font-weight: 800;
	color: #1E3646;
}

.connections-map {
	position: relative;
	width: 80%;
	/* ligeiramente mais largo para dar espaço aos labels */
	aspect-ratio: 1;
	margin: 0 auto;
	/* sem overflow:hidden — os labels já usam width fixa e não devem ser cortados */
}

/* Mobile: esconde o mapa radial e usa grid de cartões */
@media (max-width: 768px) {
	.connections-map {
		aspect-ratio: unset;
		width: 100%;
		height: auto;
	}

	/* Esconde o vídeo central no mobile */
	.conn-center {
		display: none;
	}

	/* Transforma cada nó em uma linha: ícone + texto */
	.conn-node,
	.conn-node--top,
	.conn-node--left,
	.conn-node--right {
		position: static;
		transform: none;
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 16px;
		margin-bottom: 16px;
		width: 100%;
	}

	.conn-node--top .conn-label {
		order: 0;
		text-align: left;
		margin-bottom: 0;
		width: auto;
		flex: 1;
	}

	.conn-node--left .conn-label,
	.conn-node--right .conn-label {
		text-align: left;
		margin-left: 0;
		margin-right: 0;
		width: auto;
		flex: 1;
	}

	/* Circles menores no mobile */
	.conn-circle {
		width: 56px;
		height: 56px;
		font-size: 1.2rem;
		flex-shrink: 0;
	}

	.conn-label {
		font-size: 0.9rem;
		width: auto;
	}

	/* Layout grid 2 colunas no mobile */
	.connections-map {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}
}

/* SVG lines — fills the container */
.connections-lines {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
}

/* Center video circle */
.conn-center {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
	padding-bottom: 80%;
	border-radius: 50%;
	overflow: hidden;
	z-index: 5;
}

.conn-video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Satellite nodes — uniform radial placement via CSS trig */
.conn-node {
	position: absolute;
	top: calc(50% + sin(var(--angle)) * 44%);
	left: calc(50% + cos(var(--angle)) * 44%);
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	z-index: 10;
}

/* 1) Label ABOVE icon */
.conn-node--top {
	flex-direction: column;
	align-items: center;
}

.conn-node--top .conn-label {
	text-align: center;
	margin-bottom: 8px;
	order: -1;
	/* label before circle */
}

/* 2) Label to the LEFT of icon */
.conn-node--left {
	flex-direction: row;
	align-items: center;
	width: auto;
}

.conn-node--left .conn-label {
	text-align: left;
	margin-left: 10px;
	width: 140px;
	/* aumentado frente ao 110px anterior */
}

/* 3) Label to the RIGHT of icon */
.conn-node--right {
	flex-direction: row-reverse;
	align-items: center;
	width: auto;
}

.conn-node--right .conn-label {
	text-align: right;
	margin-right: 10px;
	width: 140px;
	/* aumentado frente ao 110px anterior */
}

.conn-circle {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-size: 1.4rem;
	flex-shrink: 0;
}

.conn-label {
	font-size: 0.78rem;
	color: #3a4a5a;
	line-height: 1.4;
	margin: 0;
	width: 160px;
	/* label mais largo para evitar corte */
}

/* App SciBiz Section
------------------------------------------------------- */
.app-section {
	background-color: #2B4A30;
	/* Dark green */
	width: 100%;
	overflow: hidden;
}

.app-inner {
	display: flex;
	align-items: stretch;
	min-height: 260px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

@media (max-width: 768px) {
	.app-inner {
		flex-direction: column;
		padding: 0 20px;
	}

	.app-text {
		border-right: none;
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
		padding: 40px 0;
	}

	.app-visual {
		flex: unset;
		width: 100%;
		justify-content: center;
		padding: 30px 0;
	}
}

/* Left column */
.app-text {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 50px 60px 50px 0;
	border-right: 1px solid rgba(255, 255, 255, 0.15);
}

.app-tag {
	font-size: 0.9rem;
	color: #82C341;
	font-style: italic;
	margin-bottom: 6px;
	display: block;
}

.app-title {
	font-size: 2.4rem;
	font-weight: 800;
	color: #ffffff;
	line-height: 1.1;
	margin: 0 0 10px;
}

/* Title wrapper inside app section */
.app-text .section-title-wrapper {
	margin-bottom: 16px;
}

.app-desc {
	font-size: 0.9rem;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.7;
	max-width: 500px;
	margin-bottom: 28px;
}

.app-btn {
	display: inline-block;
	background: transparent;
	color: #ffffff;
	border: 2px solid #ffffff;
	padding: 10px 24px;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
	width: fit-content;
}

.app-btn:hover {
	background: #ffffff;
	color: #2B4A30;
}

/* Right column: phone mockup */
.app-visual {
	flex: 0 0 340px;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding: 0 20px;
}

.app-phone {
	width: 220px;
	background: #ffffff;
	border-radius: 32px 32px 0 0;
	box-shadow: 0 -6px 30px rgba(0, 0, 0, 0.35);
	padding: 24px 20px 0;
	position: relative;
	/* Notch */
}

.app-phone::before {
	content: '';
	display: block;
	width: 60px;
	height: 6px;
	background: #ccc;
	border-radius: 3px;
	margin: 0 auto 20px;
}

.app-phone-screen {
	background: #f5f5f5;
	border-radius: 8px;
	padding: 20px 16px;
	text-align: center;
}

.app-qr-label {
	font-size: 0.72rem;
	font-weight: 700;
	color: #1E3646;
	text-transform: uppercase;
	line-height: 1.4;
	margin-bottom: 14px;
}

.app-qr-img {
	width: 160px;
	height: 160px;
	display: block;
	margin: 0 auto;
}

/* Palcos Section
------------------------------------------------------- */
.palcos-section {
	background-color: #f5f1ea;
	padding: 80px 0;
}

.pt-title-wrapper {
	align-items: flex-start;
}

.palcos-title {
	font-family: var(--font-primary);
	font-size: 2.875rem;
	font-weight: 400;
	line-height: 1.25;
	color: #1E3646;
	margin-bottom: 0;
}

.palcos-title strong {
	font-weight: 700;
	color: #1E3646;
}

.palcos-grid {
	gap: 15px;
	align-items: start;
}

.palco-card {
	background-color: #384259;
	padding: 24px 20px;
	color: #ffffff;
	border-radius: 0;
	display: flex;
	flex-direction: column;
}

.palco-card-title {
	font-family: var(--font-primary);
	font-size: 1.05rem;
	font-weight: 400;
	color: #ffffff;
	line-height: 1.4;
	margin: 0;
}

.palco-card-desc {
	font-family: var(--font-primary);
	font-size: 0.85rem;
	font-weight: 300;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.5;
	margin: 15px 0 0 0;
}

.palco-card-footer {
	font-family: var(--font-primary);
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--color-brand-green, #82C341);
	line-height: 1.4;
	margin: 15px 0 0 0;
}

/* Festival Section
------------------------------------------------------- */
.festival-section {
	/* Gradient similiar à referência (fundo que vai do bege/branco para um leve tom esverdeado/acinzentado, ou opcionalmente solid bg-light se não for gradient) */
	background: radial-gradient(135deg, #ffffff 0%, #d3ffb6 100%);
	padding: 80px 0;
}

.festival-title {
	font-family: var(--font-primary);
	font-size: 2.875rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--color-brand-purple);
	margin-bottom: 0;
}

.festival-title span {
	font-weight: 300;
}

.risco-roxo {
	--risco-color: var(--color-brand-purple);
}

.festival-desc {
	font-family: var(--font-primary);
	font-size: 1.1rem;
	font-weight: 400;
	color: #4a5568;
	line-height: 1.6;
	margin-top: 30px;
	margin-bottom: 40px;
	max-width: 800px;
}

.festival-grid {
	gap: 15px;
	align-items: start;
	margin-bottom: 50px;
}

.festival-card {
	background-color: var(--color-brand-purple, #9E3371);
	padding: 30px 25px;
	color: #ffffff;
	display: flex;
	flex-direction: column;
	border-radius: 0;
	/* align-items: flex-start; */
}

.festival-icon {
	color: #ffffff;
	font-size: 2rem;
	margin-bottom: 25px;
}

.festival-card-title {
	font-family: var(--font-primary);
	font-size: 1.1rem;
	font-weight: 400;
	color: #ffffff;
	margin: 0;
	line-height: 1.3;
}

.festival-card-desc {
	font-family: var(--font-primary);
	font-size: 0.875rem;
	font-weight: 300;
	color: rgba(255, 255, 255, 0.9);
	line-height: 1.5;
	margin: 10px 0 0 0;
}

.btn-outline-purple {
	color: var(--color-brand-purple);
	background-color: transparent;
	border: 1px solid var(--color-brand-purple);
	border-radius: 50px;
	/* pill styling */
	padding: 12px 35px;
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	transition: all 0.3s ease;
	text-decoration: none;
	display: inline-block;
}

.btn-outline-purple:hover {
	background-color: var(--color-brand-purple);
	color: #ffffff;
}

/* Speakers Category Section
------------------------------------------------------- */
.speakers-bg {
	background-color: #f5f1ea;
	padding: 80px 0;
}

.speakers-section-title {
	font-family: var(--font-primary);
	font-size: 2.5rem;
	font-weight: 700;
	color: #26553A;
	/* dark green to match image */
	margin-bottom: 0;
}

.speakers-carousel {
	display: flex;
	gap: 40px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 20px;
	margin-top: 20px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	/* Firefox */
}

.speakers-carousel::-webkit-scrollbar {
	display: none;
	/* WebKit */
}

.speakers-carousel-wrapper {
	position: relative;
	display: flex;
	align-items: center;
}

.carousel-arrow {
	background: transparent;
	border: none;
	color: #ffffff;
	font-size: 2rem;
	cursor: pointer;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	transition: color 0.3s;
}

/* For speakers section, use dark green color */
.speaker-prev,
.speaker-next {
	color: #26553A;
}

.speaker-prev {
	left: -40px;
}

.speaker-next {
	right: -40px;
}

.curadoria-prev {
	left: -40px;
}

.curadoria-next {
	right: -40px;
}

.carousel-arrow:hover {
	color: var(--color-brand-green, #82C341);
}

.speaker-card {
	flex: 0 0 240px;
	/* fixed width for cards in carousel */
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.speaker-name {
	font-size: 1.1rem !important;
	color: #777777 !important;
}

.speaker-role {
	font-size: 0.9rem !important;
}

/* Curadoria Estratégica Section
------------------------------------------------------- */
.curadoria-section {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	padding: 100px 0;
	position: relative;
}

.curadoria-section::before {
	/* Backup overlay in case image doesn't load/contrast */
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(160, 42, 114, 0.4);
	/* fallback purplish overlay */
	pointer-events: none;
}

.curadoria-container {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	/* left slightly wider */
	gap: 60px;
	align-items: center;
}

.curadoria-title-wrapper {
	align-items: stretch;
}

.curadoria-title {
	font-family: var(--font-primary);
	font-size: 2.875rem;
	font-weight: 700;
	line-height: 1.25;
	margin-bottom: 20px;
}

.curadoria-desc {
	font-size: 1.15rem;
	line-height: 1.7;
	margin-bottom: 20px;
}

.curadoria-carousel-wrapper {
	position: relative;
	width: 100%;
	max-width: 350px;
	margin: 0 auto;
}

.curadoria-carousel {
	display: flex;
	overflow: hidden;
	/* For now just one item mock, or simple overflow */
	width: 100%;
}

.curador-card {
	flex: 0 0 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.curador-img {
	width: 200px;
	height: 200px;
	border-radius: 50%;
	object-fit: cover;
	margin-bottom: 20px;
	border: 3px solid #ffffff;
	/* soft border */
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
}

.curador-name {
	font-size: 1.2rem;
	margin-bottom: 10px;
	letter-spacing: 1px;
}

.curador-role {
	font-size: 1rem;
	line-height: 1.4;
	margin-bottom: 15px;
}

.curador-linkedin {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1px solid #ffffff;
	border-radius: 4px;
	transition: all 0.3s ease;
}

.curador-linkedin:hover {
	background-color: #ffffff;
	color: var(--color-brand-purple, #9E3371) !important;
}

@media (max-width: 992px) {
	.curadoria-container {
		grid-template-columns: 1fr;
	}

	.speaker-prev {
		left: 0px;
	}

	.speaker-next {
		right: 0px;
	}
}

#secondary {
	display: none;
}

/* Site Footer Styles - Optimized for reference layout */
.site-footer {
	background-color: #262a33;
	/* Dark background matching screenshot */
	color: #ffffff;
	padding: 80px 0 40px 0;
	font-family: var(--font-primary, 'Open Sans', sans-serif);
}

.footer-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}

.footer-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 50px;
}

.footer-logo img {
	max-width: 180px;
	height: auto;
}

.footer-links-wrapper {
	display: flex;
	justify-content: flex-end;
	gap: 60px;
	flex: 1;
}

.footer-col {
	min-width: 250px;
}

.footer-nav {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-nav li {
	margin-bottom: 6px;
}

.footer-nav a {
	color: #ffffff;
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 400;
	transition: opacity 0.2s;
}

.footer-nav a:hover {
	opacity: 0.7;
}

.footer-contact p {
	color: #ffffff;
	font-size: 0.85rem;
	line-height: 1.6;
	margin: 0 0 10px 0;
}

.footer-contact a {
	color: #ffffff;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.85rem;
}

.footer-bottom {
	margin-top: 60px;
	text-align: center;
}

.footer-sep-line {
	width: 100%;
	height: 1px;
	background-color: rgba(255, 255, 255, 0.1);
	margin-bottom: 25px;
}

.copyright {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
	margin: 0;
}

@media (max-width: 900px) {
	.footer-top {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.footer-links-wrapper {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 30px;
		width: 100%;
	}

}

/* ==========================================================================
   Página de Check-in de Ingressos (Estilização Customizada)
   ========================================================================== */

.scibiz-checkin-form {
	max-width: 600px;
	margin: 0 auto;
	padding: 30px;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.scibiz-checkin-warning {
	background-color: transparent !important;
	/* override inline if needed */
	color: var(--color-brand-purple, #9E3371) !important;
	border: 1px solid var(--color-brand-purple, #9E3371) !important;
	border-radius: 5px;
	padding: 15px 20px !important;
	margin-bottom: 25px !important;
	font-weight: 400;
	font-size: 0.95rem;
	display: flex;
	align-items: center;
	box-shadow: 0 2px 10px rgba(158, 51, 113, 0.1);
}

.scibiz-checkin-warning strong {
	font-weight: 700;
	margin-right: 5px;
	font-size: 1rem;
}

.scibiz-checkin-title {
	font-family: var(--font-primary);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--color-brand-dark-teal);
	margin-bottom: 20px;
	border-bottom: 2px solid var(--color-bg-light);
	padding-bottom: 10px;
}

.scibiz-checkin-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}

/* Make some inputs span full width */
.scibiz-input-group.full-width {
	grid-column: 1 / -1;
}

.scibiz-input-group label {
	display: block;
	font-weight: 700;
	margin-bottom: 8px;
	color: var(--color-brand-dark-teal);
	font-size: 0.9rem;
}

.scibiz-input-group .scibiz-input {
	width: 100%;
	padding: 12px 15px;
	border: 1px solid #ddd;
	border-radius: 5px;
	font-family: var(--font-primary);
	font-size: 1rem;
	color: #555;
	background-color: #f9f9f9 !important;
	/* Forces light gray over inline */
	transition: border-color 0.3s ease;
}

.scibiz-input-group .scibiz-input:focus {
	outline: none;
	border-color: var(--color-brand-green);
	background-color: #ffffff !important;
}

.scibiz-checkin-actions {
	margin-top: 30px;
	display: flex;
	align-items: center;
	gap: 15px;
	justify-content: flex-end;
}

.scibiz-checkin-actions .wps_etmfw_checkin_button_section {
	margin: 0;
}

.scibiz-checkin-actions input[type="submit"] {
	background-color: var(--color-brand-green);
	color: #fff;
	border: none;
	padding: 12px 30px;
	border-radius: 5px;
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.3s ease;
	text-transform: uppercase;
}

.scibiz-checkin-actions input[type="submit"]:hover {
	background-color: #6a9e33;
}

/* Mobile Adjustments */
@media (max-width: 600px) {
	.scibiz-checkin-grid {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.scibiz-input-group {
		grid-column: 1 / -1;
	}
}