/* Fontes hospedadas no próprio tema (não dependem do Google Fonts) */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/fraunces-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/fraunces-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/fraunces-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/fraunces-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:400;font-display:swap;src:url('../fonts/fraunces-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/work-sans-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/work-sans-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/work-sans-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Work Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/work-sans-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Caveat';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/caveat-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Caveat';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/caveat-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/caveat-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Caveat';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/caveat-latin-700-normal.woff2') format('woff2');}

/* ==========================================================================
   SEVEN School — Design System
   Paleta extraída da logo: azul-marinho, verde-água, dourado, ciano suave
   Tipografia: Fraunces (display/serif) + Work Sans (texto/UI)
   ========================================================================== */

:root {
	/* Cor */
	--seven-navy:        #0D3B66; /* azul-marinho — cor primária, capelo/contorno da logo */
	--seven-navy-dark:   #082A4A; /* seções escuras, footer */
	--seven-teal:        #2CA58D; /* verde-água — página direita do livro na logo */
	--seven-teal-dark:   #1F7C69;
	--seven-gold:        #F2B233; /* dourado — borla do capelo, uso pontual */
	--seven-cyan-tint:   #EAF6F4; /* fundo suave alternando com branco */
	--seven-ink:         #14263B; /* texto principal (não é preto puro) */
	--seven-ink-soft:    #48607A; /* texto secundário */
	--seven-line:        #D7E4E3; /* divisores finos */
	--seven-white:       #FFFFFF;
	--seven-blue-tint:   #EEF5FA; /* fundo pálido alternado (seções claras) */

	/* Tons dos badges de ícone: fundo suave + cor do ícone */
	--tone-teal-bg:   #E3F5F1; --tone-teal-fg:   #1F8C77;
	--tone-gold-bg:   #FDF1DA; --tone-gold-fg:   #C6841A;
	--tone-navy-bg:   #E6EEF5; --tone-navy-fg:   #0D3B66;
	--tone-green-bg:  #E7F5E9; --tone-green-fg:  #3D8B47;
	--tone-purple-bg: #EEE8FB; --tone-purple-fg: #7A55C7;
	--tone-pink-bg:   #FCE8F0; --tone-pink-fg:   #C43A79;
	--tone-gray-bg:   #EEF1F2; --tone-gray-fg:   #5B6B72;

	/* Tipografia */
	--font-display: 'Fraunces', Georgia, serif;
	--font-body: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
	--font-script: 'Caveat', cursive;

	/* Layout */
	--content-max: 1160px;
	--content-narrow: 720px;
	--space-1: 8px;
	--space-2: 16px;
	--space-3: 24px;
	--space-4: 40px;
	--space-5: 64px;
	--space-6: 96px;
	--space-7: 140px;
}

/* ==========================================================================
   Reset leve / base
   ========================================================================== */

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

.seven-page {
	font-family: var(--font-body);
	color: var(--seven-ink);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.seven-page img { max-width: 100%; display: block; }

.seven-page a { color: inherit; text-decoration: none; }

.seven-page h1, .seven-page h2, .seven-page h3, .seven-page h4 {
	font-family: var(--font-display);
	font-weight: 600;
	line-height: 1.15;
	color: var(--seven-navy);
	margin: 0 0 var(--space-2);
	letter-spacing: -0.01em;
}

.seven-page p { margin: 0 0 var(--space-2); max-width: 62ch; }

.seven-page .seven-wrap {
	max-width: var(--content-max);
	margin: 0 auto;
	padding: 0 var(--space-3);
}

.seven-page .seven-narrow {
	max-width: var(--content-narrow);
}

.seven-page section {
	padding: var(--space-6) 0;
}

@media (max-width: 780px) {
	.seven-page section { padding: var(--space-5) 0; }
	.seven-page { font-size: 16px; }
}

/* Bandas de fundo alternadas — sem gradientes decorativos, cor sólida */
.seven-band-white   { background: var(--seven-white); }
.seven-band-tint    { background: var(--seven-blue-tint); }
.seven-band-navy    { background: var(--seven-navy); }
.seven-band-navy, .seven-band-navy h1, .seven-band-navy h2, .seven-band-navy h3 {
	color: var(--seven-white);
}
.seven-band-navy p { color: rgba(255,255,255,0.82); }

/* ==========================================================================
   Tipografia de apoio
   ========================================================================== */

.seven-eyebrow {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--seven-teal-dark);
	margin: 0 0 var(--space-1);
}

/* Variantes usadas como "kicker" em cima dos títulos de seção */
.seven-eyebrow-caps {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--seven-teal-dark);
	text-transform: uppercase;
	letter-spacing: .04em;
	margin: 0 0 var(--space-1);
}
.seven-eyebrow-muted {
	font-family: var(--font-body);
	font-size: 13.5px;
	font-weight: 700;
	color: var(--seven-ink-soft);
	text-transform: uppercase;
	letter-spacing: .03em;
	margin: 0 0 var(--space-1);
}
.seven-band-navy .seven-eyebrow-caps,
.seven-eyebrow-oncolor {
	color: #7FD8C4;
}

/* Palavra em destaque dentro de um título (troca a cor sem trocar de fonte) */
.seven-accent { color: var(--seven-teal-dark); }

.seven-h1 {
	font-size: clamp(34px, 4.6vw, 54px);
}

.seven-h2 {
	font-size: clamp(26px, 3.2vw, 36px);
}

.seven-h3 {
	font-size: 20px;
}

.seven-lede {
	font-family: var(--font-body);
	font-size: 19px;
	color: var(--seven-ink-soft);
	max-width: 56ch;
}

.seven-standout {
	font-family: var(--font-display);
	font-size: clamp(22px, 2.6vw, 30px);
	color: var(--seven-navy);
	line-height: 1.3;
	margin: var(--space-3) 0;
}

.seven-band-navy .seven-standout { color: var(--seven-white); }

/* ==========================================================================
   Botões / CTA
   Valem para <a>/<button> com a classe seven-btn (cabeçalho, formulário) e para
   o widget Botão do Elementor: nele a classe fica no invólucro e o visual vai
   no .elementor-button interno.
   ========================================================================== */

body.seven-page a.seven-btn,
body.seven-page button.seven-btn,
body.seven-page .seven-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 15.5px;
	line-height: 1.2;
	padding: 13px 28px;
	border-radius: 999px;
	border: 1.5px solid transparent;
	box-shadow: none;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
}
body.seven-page a.seven-btn:hover,
body.seven-page button.seven-btn:hover,
body.seven-page .seven-btn .elementor-button:hover { transform: translateY(-1px); }

body.seven-page a.seven-btn-primary,
body.seven-page button.seven-btn-primary,
body.seven-page .seven-btn-primary .elementor-button {
	background: var(--seven-navy);
	border-color: var(--seven-navy);
	color: var(--seven-white);
}
body.seven-page a.seven-btn-primary:hover,
body.seven-page button.seven-btn-primary:hover,
body.seven-page .seven-btn-primary .elementor-button:hover,
body.seven-page .seven-btn-primary .elementor-button:focus {
	background: #0A2E52;
	border-color: #0A2E52;
	color: var(--seven-white);
}

body.seven-page a.seven-btn-ghost,
body.seven-page button.seven-btn-ghost,
body.seven-page .seven-btn-ghost .elementor-button {
	background: transparent;
	border-color: currentColor;
	color: var(--seven-navy);
}
body.seven-page a.seven-btn-ghost:hover,
body.seven-page button.seven-btn-ghost:hover,
body.seven-page .seven-btn-ghost .elementor-button:hover,
body.seven-page .seven-btn-ghost .elementor-button:focus {
	background: rgba(13,59,102,0.06);
	color: var(--seven-navy);
}

/* contorno sobre fundo escuro */
body.seven-page .seven-band-navy a.seven-btn-ghost,
body.seven-page .seven-band-navy .seven-btn-ghost .elementor-button,
body.seven-page .seven-manifesto-band .seven-btn-ghost .elementor-button {
	color: var(--seven-white);
	border-color: rgba(255,255,255,0.6);
}
body.seven-page .seven-band-navy a.seven-btn-ghost:hover,
body.seven-page .seven-band-navy .seven-btn-ghost .elementor-button:hover,
body.seven-page .seven-manifesto-band .seven-btn-ghost .elementor-button:hover {
	background: rgba(255,255,255,0.1);
	color: var(--seven-white);
}


/* ==========================================================================
   Cabeçalho
   ========================================================================== */

.seven-header {
	background: var(--seven-white);
	border-bottom: 1px solid var(--seven-line);
	position: sticky;
	top: 0;
	z-index: 40;
}

.seven-header-inner {
	max-width: var(--content-max);
	margin: 0 auto;
	padding: 14px var(--space-3);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
}

.seven-logo {
	display: flex;
	align-items: center;
	gap: 10px;
}
.seven-logo img { height: 38px; width: auto; }

.seven-nav {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.seven-nav ul {
	list-style: none;
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 0;
}

.seven-nav a {
	font-size: 14.5px;
	font-weight: 500;
	color: var(--seven-ink);
}
.seven-nav a:hover { color: var(--seven-teal-dark); }
.seven-nav .current-menu-item a,
.seven-nav a.is-active {
	color: var(--seven-teal-dark);
	font-weight: 600;
}

.seven-nav-toggle { display: none; }

@media (max-width: 900px) {
	.seven-nav ul { display: none; }
	.seven-nav.is-open ul {
		display: flex;
		flex-direction: column;
		gap: 2px;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--seven-white);
		border-bottom: 1px solid var(--seven-line);
		box-shadow: 0 18px 30px rgba(13,59,102,0.08);
		padding: var(--space-2) var(--space-3) var(--space-3);
	}
	.seven-nav.is-open ul li a { display: block; padding: 12px 0; font-size: 16px; }
	.seven-nav-toggle {
		display: inline-flex;
		border: 1px solid var(--seven-line);
		background: none;
		padding: 8px 14px;
		border-radius: 999px;
		font-family: var(--font-body);
		font-weight: 600;
		font-size: 14px;
		color: var(--seven-navy);
		cursor: pointer;
	}
}
@media (max-width: 900px) {
	body.seven-page .seven-nav > a.seven-btn { padding: 9px 18px; font-size: 14px; white-space: nowrap; }
}
@media (max-width: 520px) {
	body.seven-page .seven-nav > a.seven-btn { display: none; }
}

/* ==========================================================================
   Hero (Home)
   ========================================================================== */

.seven-hero {
	position: relative;
}

.seven-hero-grid {
	display: grid;
	grid-template-columns: minmax(0,1fr) 440px;
	gap: var(--space-5);
	align-items: center;
}

@media (max-width: 900px) {
	.seven-hero-grid { grid-template-columns: 1fr; }
	.seven-hero .seven-hero-art { display: none; }
}

.seven-hero h1 { max-width: 15ch; }

.seven-hero .seven-lede { margin-top: var(--space-2); }

.seven-hero-art { position: relative; overflow: visible; }
.seven-hero-art .seven-blob {
	position: absolute;
	top: -10%; right: -8%;
	width: 46%;
	z-index: 0;
	opacity: 0.9;
	pointer-events: none;
}
.seven-hero-art .seven-note {
	position: absolute;
	top: 16px; left: 24px;
	z-index: 2;
	text-align: left;
	margin: 0;
}
.seven-hero-art .seven-note.is-bl { top: auto; bottom: 20px; left: 24px; }

/* ==========================================================================
   Fotos (placeholders) — usados onde o design pede fotografia real
   ========================================================================== */

.seven-photo-placeholder {
	position: relative;
	z-index: 1;
	background: var(--seven-white);
	border: 1.5px dashed var(--seven-line);
	border-radius: 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--seven-ink-soft);
	text-align: center;
	padding: var(--space-3);
	min-height: 320px;
}
.seven-photo-placeholder svg { width: 40px; height: 40px; opacity: 0.55; }
.seven-photo-placeholder span { font-size: 13.5px; max-width: 26ch; line-height: 1.4; }

.seven-photo-placeholder.is-round {
	border-radius: 50%;
	min-height: 0;
	aspect-ratio: 1 / 1;
	padding: var(--space-2);
}
.seven-photo-placeholder.is-round svg { width: 26px; height: 26px; }
.seven-photo-placeholder.is-round span { display: none; }

.seven-photo-placeholder.is-wide { aspect-ratio: 16 / 10; min-height: 0; }

/* Nota manuscrita (estilo caneta) usada como toque humano perto das fotos */
.seven-script-note {
	font-family: var(--font-script);
	font-size: 22px;
	color: var(--seven-teal-dark);
	line-height: 1.25;
	transform: rotate(-2deg);
}
.seven-script-note-lg { font-size: 28px; margin-top: var(--space-2); }

/* ==========================================================================
   Listas de destaque (sem cards com sombra — divisórias finas)
   ========================================================================== */

.seven-highlight-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
}

@media (max-width: 560px) {
	.seven-highlight-grid { grid-template-columns: 1fr; }
}

.seven-highlight-item {
	background: var(--seven-white);
	border-radius: 14px;
	padding: var(--space-3);
	box-shadow: 0 10px 30px rgba(13,59,102,0.06);
}

.seven-highlight-item h3 {
	font-family: var(--font-body);
	font-size: 16.5px;
	font-weight: 600;
	color: var(--seven-navy);
	margin: var(--space-2) 0 6px;
}

.seven-highlight-item p {
	font-size: 14.5px;
	color: var(--seven-ink-soft);
	margin: 0;
}

/* Variante com título serifado maior (usada em Soluções) */
.seven-highlight-item.is-lg h3 {
	font-family: var(--font-display);
	font-size: 19px;
}

/* ==========================================================================
   Badges de ícone coloridos (reutilizados em várias seções)
   ========================================================================== */

.seven-icon-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 13px;
	flex-shrink: 0;
}
.seven-icon-badge svg { width: 22px; height: 22px; }

.seven-icon-badge.is-round { border-radius: 50%; }
.seven-icon-badge.is-sm { width: 36px; height: 36px; border-radius: 10px; }
.seven-icon-badge.is-sm svg { width: 18px; height: 18px; }

.seven-tone-teal   { background: var(--tone-teal-bg);   color: var(--tone-teal-fg); }
.seven-tone-gold   { background: var(--tone-gold-bg);   color: var(--tone-gold-fg); }
.seven-tone-navy   { background: var(--tone-navy-bg);   color: var(--tone-navy-fg); }
.seven-tone-green  { background: var(--tone-green-bg);  color: var(--tone-green-fg); }
.seven-tone-purple { background: var(--tone-purple-bg); color: var(--tone-purple-fg); }
.seven-tone-pink   { background: var(--tone-pink-bg);   color: var(--tone-pink-fg); }
.seven-tone-gray   { background: var(--tone-gray-bg);   color: var(--tone-gray-fg); }

/* variante para usar em fundo escuro (contorno claro, sem preenchimento) */
.seven-band-navy .seven-icon-badge.is-outline {
	background: rgba(255,255,255,0.08);
	color: var(--seven-white);
}

/* ==========================================================================
   Papéis (Diretor, Coordenador, Professor, Família, Aluno, Gestor de rede)
   ========================================================================== */

.seven-roles {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: var(--space-3);
	margin-top: var(--space-4);
}

@media (max-width: 900px) {
	.seven-roles { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px) {
	.seven-roles { grid-template-columns: repeat(2, 1fr); }
}

.seven-role {
	background: var(--seven-white);
	border-radius: 16px;
	padding: var(--space-3) var(--space-2);
	text-align: center;
	box-shadow: 0 10px 26px rgba(13,59,102,0.05);
}

.seven-role .seven-role-photo {
	position: relative;
	width: 76px;
	height: 76px;
	margin: 0 auto 14px;
}
.seven-role .seven-role-photo .seven-blob {
	position: absolute;
	left: -22%;
	top: -22%;
	width: 144%;
	height: 144%;
	z-index: 0;
}
.seven-role .seven-photo-placeholder.is-round {
	width: 76px; height: 76px;
	position: relative; z-index: 1;
	margin: 0 auto;
}

.seven-role .seven-role-tag {
	font-size: 13px;
	font-weight: 700;
	color: var(--seven-navy);
	margin-bottom: 4px;
}

.seven-role p {
	font-size: 13.5px;
	color: var(--seven-ink-soft);
	margin: 0;
}

/* ==========================================================================
   Recursos / funcionalidades — grid de 8
   ========================================================================== */

.seven-feature-layout {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: var(--space-5);
	align-items: center;
	margin-top: var(--space-4);
}
@media (max-width: 900px) {
	.seven-feature-layout { grid-template-columns: 1fr; }
	.seven-feature-layout .seven-hero-art { max-width: 320px; margin: 0 auto; }
}

.seven-feature-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-2);
}

@media (max-width: 560px) {
	.seven-feature-grid { grid-template-columns: 1fr; }
}

.seven-feature {
	background: var(--seven-white);
	border: 1px solid var(--seven-line);
	border-radius: 14px;
	padding: 14px 16px;
	display: flex;
	align-items: center;
	gap: 12px;
}

.seven-feature h3 {
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 600;
	margin: 0;
	color: var(--seven-navy);
}

/* ==========================================================================
   Tags inline (Acompanhamento)
   ========================================================================== */

.seven-tag-flow {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: var(--space-3) 0 var(--space-4);
}

.seven-tag-flow span {
	font-size: 14.5px;
	font-weight: 500;
	padding: 7px 16px;
	border: 1px solid var(--seven-line);
	border-radius: 999px;
	color: var(--seven-navy);
}

/* ==========================================================================
   Manifesto teaser — faixa escura + cartão flutuante claro
   ========================================================================== */


.seven-manifesto-card {
	background: var(--seven-white);
	border-radius: 18px;
	padding: var(--space-4);
	color: var(--seven-ink);
}
.seven-manifesto-card .seven-card-title {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 700;
	color: var(--seven-navy);
}
.seven-manifesto-card .seven-card-sub {
	font-size: 14px;
	color: var(--seven-ink-soft);
	margin-bottom: var(--space-3);
}
.seven-manifesto-mini-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2);
}
.seven-manifesto-mini-grid div { text-align: left; }
.seven-manifesto-mini-grid .seven-icon-badge { width: 36px; height: 36px; border-radius: 10px; }
.seven-manifesto-mini-grid .seven-icon-badge svg { width: 18px; height: 18px; }
.seven-manifesto-mini-grid p {
	font-size: 12.5px;
	color: var(--seven-ink-soft);
	margin: 8px 0 0;
	line-height: 1.35;
}

/* ==========================================================================
   Ecossistema — grade de ícones
   ========================================================================== */

.seven-ecosystem-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-3);
	margin: var(--space-4) 0;
}
@media (max-width: 780px) {
	.seven-ecosystem-grid { grid-template-columns: repeat(2, 1fr); }
}

.seven-ecosystem-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	text-align: center;
}
.seven-ecosystem-item span:not(.seven-icon-badge) {
	font-size: 14px;
	font-weight: 500;
	color: var(--seven-navy);
}

/* ==========================================================================
   Segurança — faixa escura com lista de recursos
   ========================================================================== */

.seven-security-layout {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: var(--space-5);
	align-items: start;
}
@media (max-width: 860px) {
	.seven-security-layout { grid-template-columns: 1fr; }
}

.seven-security-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-3);
}
@media (max-width: 560px) {
	.seven-security-grid { grid-template-columns: repeat(2, 1fr); }
}
.seven-security-grid div { text-align: left; }
.seven-security-grid .seven-icon-badge { margin-bottom: 8px; }
.seven-security-grid span:not(.seven-icon-badge) {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--seven-white);
}

.seven-security-note {
	grid-column: 1 / -1;
	background: rgba(44,165,141,0.14);
	border: 1px solid rgba(127,216,196,0.35);
	border-radius: 14px;
	padding: var(--space-2) var(--space-3);
	display: flex;
	align-items: center;
	gap: 12px;
}
.seven-security-note p {
	margin: 0;
	font-family: var(--font-display);
	font-size: 15.5px;
	color: var(--seven-white);
}
/* Variante para uso em fundo claro (fora da faixa escura de Segurança) */
.seven-security-note.is-light {
	background: var(--tone-teal-bg);
	border-color: rgba(31,140,119,0.25);
}
.seven-security-note.is-light p { color: var(--seven-navy); }

/* Pequeno utilitário de espaçamento */
.seven-mt-sm { margin-top: var(--space-2); }

/* ==========================================================================
   CTA final com foto
   ========================================================================== */

.seven-final-cta {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: var(--space-5);
	align-items: center;
}
@media (max-width: 860px) {
	.seven-final-cta { grid-template-columns: 1fr; }
}
.seven-final-cta .seven-photo-placeholder { min-height: 260px; border-radius: 20px; }

/* ==========================================================================
   Rodapé — ícones sociais
   ========================================================================== */

.seven-footer-social {
	display: flex;
	gap: 10px;
}
.seven-footer-social a {
	width: 34px; height: 34px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,0.25);
	display: inline-flex; align-items: center; justify-content: center;
}
.seven-footer-social a:hover { background: rgba(255,255,255,0.1); }
.seven-footer-social svg { width: 16px; height: 16px; }

/* ==========================================================================
   Comparação "Antes / Com a SEVEN" (Para Escolas)
   ========================================================================== */

.seven-compare {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-3);
	margin: var(--space-4) 0;
}
@media (max-width: 700px) {
	.seven-compare { grid-template-columns: 1fr; }
}
.seven-compare > div {
	border-radius: 16px;
	padding: var(--space-3);
}
.seven-compare .is-before {
	background: #F5F3F1;
	border: 1px solid var(--seven-line);
}
.seven-compare .is-after {
	background: var(--tone-teal-bg);
	border: 1px solid rgba(31,140,119,0.25);
}
.seven-compare h3 {
	font-family: var(--font-body);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .04em;
	margin-bottom: var(--space-2);
}
.seven-compare .is-before h3 { color: var(--seven-ink-soft); }
.seven-compare .is-after h3 { color: var(--tone-teal-fg); }
.seven-compare ul { list-style: none; margin: 0; padding: 0; }
.seven-compare li {
	position: relative;
	padding-left: 26px;
	margin-bottom: 10px;
	font-size: 15px;
}
.seven-compare .is-before li { color: var(--seven-ink-soft); }
.seven-compare .is-after li { color: var(--seven-ink); }
.seven-compare .is-before li::before {
	content: '–';
	position: absolute; left: 4px; top: 0;
	color: #A7A0A0;
	font-weight: 700;
}
.seven-compare .is-after li::before {
	content: '✓';
	position: absolute; left: 2px; top: 0;
	color: var(--tone-teal-fg);
	font-weight: 700;
}

/* ==========================================================================
   Perguntas/situações (Para Famílias)
   ========================================================================== */

.seven-qa-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
	margin: var(--space-4) 0;
}
@media (max-width: 700px) {
	.seven-qa-list { grid-template-columns: 1fr; }
}
.seven-qa-item {
	background: var(--seven-white);
	border-radius: 14px;
	padding: var(--space-3);
	box-shadow: 0 10px 26px rgba(13,59,102,0.05);
}
.seven-qa-item .seven-q {
	font-family: var(--font-display);
	font-size: 18px;
	color: var(--seven-navy);
	margin-bottom: 4px;
}
.seven-qa-item .seven-a {
	font-size: 15px;
	color: var(--tone-teal-fg);
	font-weight: 600;
	margin: 0;
}

/* ==========================================================================
   Badge suave (ex.: "Visão de futuro")
   ========================================================================== */

.seven-badge-soft {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--tone-gold-bg);
	color: var(--tone-gold-fg);
	margin-bottom: var(--space-2);
}
.seven-badge-soft svg { width: 14px; height: 14px; }

/* ==========================================================================
   Cards de módulo (Funcionalidades)
   ========================================================================== */

.seven-module-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-3);
	margin-top: var(--space-4);
}
@media (max-width: 780px) {
	.seven-module-grid { grid-template-columns: 1fr; }
}
.seven-module-card {
	background: var(--seven-white);
	border-radius: 16px;
	padding: var(--space-3);
	box-shadow: 0 10px 30px rgba(13,59,102,0.06);
}
.seven-module-card > h3 {
	font-size: 17px;
	margin: var(--space-2) 0 12px;
}
.seven-module-card .seven-tag-flow { margin: 0; }
.seven-module-card .seven-tag-flow span {
	font-size: 13px;
	padding: 5px 12px;
	background: var(--seven-blue-tint);
	border-color: transparent;
}

/* ==========================================================================
   Formulário (Contato)
   ========================================================================== */

.seven-form {
	background: var(--seven-white);
	border-radius: 20px;
	padding: var(--space-4);
	box-shadow: 0 20px 50px rgba(13,59,102,0.08);
}
.seven-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2);
	margin-bottom: var(--space-2);
}
@media (max-width: 600px) {
	.seven-form-row { grid-template-columns: 1fr; }
}
.seven-form label {
	display: block;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--seven-navy);
	margin-bottom: 6px;
}
.seven-form input,
.seven-form select,
.seven-form textarea {
	width: 100%;
	font-family: var(--font-body);
	font-size: 15px;
	padding: 11px 14px;
	border-radius: 10px;
	border: 1.5px solid var(--seven-line);
	color: var(--seven-ink);
	background: var(--seven-white);
}
.seven-form input:focus,
.seven-form select:focus,
.seven-form textarea:focus {
	outline: none;
	border-color: var(--seven-teal);
}
.seven-form .seven-field { margin-bottom: var(--space-2); }
.seven-form-note {
	font-size: 13px;
	color: var(--seven-ink-soft);
	margin-top: var(--space-2);
}

/* ==========================================================================
   Foto de apoio (usada como "lead image" em páginas mais editoriais)
   ========================================================================== */

.seven-lead-photo {
	max-width: 860px;
	margin: 0 auto var(--space-2);
}
.seven-lead-photo .seven-photo-placeholder { min-height: 280px; }


/* ==========================================================================
   Split genérico de 2 colunas (usado em várias seções da Home)
   ========================================================================== */

.seven-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-5);
	align-items: start;
}
.seven-split.is-center { align-items: center; }
@media (max-width: 860px) {
	.seven-split { grid-template-columns: 1fr; gap: var(--space-3); }
}

/* ==========================================================================
   Bloco de teaser (Manifesto / Ecossistema / Segurança na Home)
   ========================================================================== */

.seven-teaser {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-5);
	align-items: start;
}

@media (max-width: 780px) {
	.seven-teaser { grid-template-columns: 1fr; gap: var(--space-3); }
}

.seven-teaser + .seven-teaser {
	margin-top: var(--space-6);
	padding-top: var(--space-6);
	border-top: 1px solid var(--seven-line);
}

/* ==========================================================================
   Rodapé
   ========================================================================== */

.seven-footer {
	background: var(--seven-navy-dark);
	color: rgba(255,255,255,0.75);
	padding: var(--space-5) 0 var(--space-4);
}

.seven-footer-grid {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr;
	gap: var(--space-4);
}

@media (max-width: 700px) {
	.seven-footer-grid { grid-template-columns: 1fr; gap: var(--space-3); }
}

.seven-footer h4 {
	color: var(--seven-white);
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	margin-bottom: var(--space-2);
}

.seven-footer ul { list-style: none; margin: 0; padding: 0; }
.seven-footer li { margin-bottom: 8px; font-size: 14.5px; }
.seven-footer a:hover { color: var(--seven-white); }
.seven-footer a.is-active { color: var(--seven-white); font-weight: 600; }

.seven-footer-logo img { height: 44px; width: 44px; margin-bottom: var(--space-2); border: 2px solid rgba(255,255,255,0.25); }

.seven-footer-tagline {
	font-family: var(--font-display);
	font-size: 17px;
	color: var(--seven-white);
	max-width: 32ch;
}

.seven-footer-bottom {
	margin-top: var(--space-5);
	padding-top: var(--space-3);
	border-top: 1px solid rgba(255,255,255,0.14);
	font-size: 13.5px;
}

/* ==========================================================================
   Manifesto — tratamento editorial
   ========================================================================== */

.seven-manifesto-hero {
	padding: var(--space-6) 0 var(--space-4);
	text-align: left;
}

.seven-manifesto-hero .seven-eyebrow-en {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 20px;
	color: var(--seven-teal-dark);
}

.seven-editorial {
	max-width: var(--content-narrow);
	margin: 0 auto;
}

.seven-editorial p {
	max-width: none;
	font-size: 18px;
	color: var(--seven-ink);
	line-height: 1.75;
}

.seven-editorial h2 {
	margin-top: var(--space-2);
}

.seven-pull {
	font-family: var(--font-display);
	font-size: clamp(24px, 3vw, 32px);
	color: var(--seven-navy);
	line-height: 1.35;
	margin: var(--space-4) 0;
	padding-left: var(--space-3);
	border-left: 3px solid var(--seven-teal);
}

/* Acrônimo S.E.V.E.N. */
.seven-acronym {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin: var(--space-4) 0;
}

.seven-acronym-row {
	display: grid;
	grid-template-columns: 56px 1fr;
	align-items: baseline;
	gap: var(--space-2);
	padding-bottom: var(--space-2);
	border-bottom: 1px solid var(--seven-line);
}

.seven-acronym-letter {
	font-family: var(--font-display);
	font-size: 40px;
	font-weight: 600;
	color: var(--seven-teal-dark);
}

.seven-acronym-word {
	font-size: 16.5px;
	color: var(--seven-ink-soft);
}
.seven-acronym-word strong { color: var(--seven-navy); font-weight: 600; }

.seven-commitment-list {
	margin: var(--space-3) 0;
	padding: 0;
	list-style: none;
}
.seven-commitment-list li {
	position: relative;
	padding-left: 22px;
	margin-bottom: 10px;
	font-size: 17px;
	color: var(--seven-ink);
}
.seven-commitment-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 10px;
	width: 8px;
	height: 8px;
	background: var(--seven-gold);
	border-radius: 50%;
}

.seven-signature {
	margin-top: var(--space-5);
	padding-top: var(--space-4);
	border-top: 1px solid var(--seven-line);
}
.seven-signature p {
	font-family: var(--font-display);
	font-size: 19px;
	color: var(--seven-navy);
	max-width: none;
}
.seven-signature .seven-en {
	font-style: italic;
	color: var(--seven-teal-dark);
	font-size: 16px;
}


/* ==========================================================================
   CAMADA ELEMENTOR
   As páginas são montadas no Elementor. Lá, a classe "seven-*" de um widget
   vai para o invólucro externo, e o título/parágrafo/botão de verdade é um
   elemento interno (.elementor-heading-title, p, .elementor-button). Por isso
   o visual da marca é aplicado aqui, no elemento interno, com o prefixo
   "body.seven-page" (mais forte que o padrão do Elementor, sem !important).
   ========================================================================== */

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.admin-bar .seven-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .seven-header { top: 46px; } }

/* 1) Espaçamento: containers e widgets sem folga de fábrica */
body.seven-page .elementor-widget:not(:last-child) { --kit-widget-spacing: 0px; }
body.seven-page .e-con {
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
}

/* 2) Faixas de fundo e respiro das seções (editável pelo painel do Elementor) */
body.seven-page .seven-band-white { background: var(--seven-white); }
body.seven-page .seven-band-tint  { background: var(--seven-blue-tint); }
body.seven-page .seven-band-navy  { background: var(--seven-navy); }
body.seven-page .seven-el-section { --padding-top: var(--space-6); --padding-bottom: var(--space-6); }
body.seven-page .seven-hero.seven-el-section { --padding-bottom: var(--space-5); overflow-x: clip; }
@media (max-width: 780px) {
	body.seven-page .seven-el-section { --padding-top: var(--space-5); --padding-bottom: var(--space-5); }
}

/* 3) Larguras */
body.seven-page .seven-wrap { max-width: var(--content-max); margin-left: auto; margin-right: auto; }
body.seven-page .seven-narrow { max-width: var(--content-narrow); }
body.seven-page .seven-editorial { max-width: var(--content-narrow); margin-left: auto; margin-right: auto; }

/* 4) Duas colunas (texto + imagem/cartão) e fileira de botões */
body.seven-page .seven-cols {
	flex-direction: row;
	align-items: flex-start;
	--column-gap: var(--space-5);
	--row-gap: var(--space-3);
}
body.seven-page .seven-cols.is-center { align-items: center; }
body.seven-page .seven-cols > .e-con { min-width: 0; flex: 0 1 auto; align-self: flex-start; }
body.seven-page .seven-cols.is-center > .e-con { align-self: center; }
@media (max-width: 860px) {
	body.seven-page .seven-cols { flex-direction: column; align-items: stretch; }
	body.seven-page .seven-cols > .e-con { width: 100%; align-self: stretch; }
}
body.seven-page .seven-cta-row {
	flex-direction: row;
	align-items: center;
	--flex-wrap: wrap;
	--column-gap: 16px;
	--row-gap: 12px;
	--margin-top: var(--space-3);
}

/* 5) Títulos (widget Título) */
body.seven-page .elementor-widget-heading .elementor-heading-title {
	font-family: var(--font-display);
	font-weight: 600;
	color: var(--seven-navy);
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 var(--space-2);
	padding: 0;
}
body.seven-page .elementor-widget-heading.seven-h1 .elementor-heading-title { font-size: clamp(34px, 4.6vw, 54px); }
body.seven-page .elementor-widget-heading.seven-h2 .elementor-heading-title { font-size: clamp(26px, 3.2vw, 36px); }
body.seven-page .elementor-widget-heading.seven-h3 .elementor-heading-title { font-size: 20px; }
body.seven-page .elementor-widget-heading.seven-eyebrow .elementor-heading-title,
body.seven-page .elementor-widget-heading.seven-eyebrow-caps .elementor-heading-title,
body.seven-page .elementor-widget-heading.seven-eyebrow-muted .elementor-heading-title {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.4;
	margin: 0;
	color: var(--seven-teal-dark);
}
body.seven-page .elementor-widget-heading.seven-eyebrow-caps .elementor-heading-title { text-transform: uppercase; letter-spacing: .04em; }
body.seven-page .elementor-widget-heading.seven-eyebrow-muted .elementor-heading-title { text-transform: uppercase; letter-spacing: .03em; font-size: 13.5px; font-weight: 700; color: var(--seven-ink-soft); }
body.seven-page .elementor-widget-heading[class*="seven-eyebrow"] { margin: 0 0 var(--space-1); }

/* 6) Textos (widget Editor de texto) */
body.seven-page .elementor-widget-text-editor { font-family: var(--font-body); color: var(--seven-ink); }
body.seven-page .seven-lede p { font-size: 19px; color: var(--seven-ink-soft); max-width: 56ch; }
body.seven-page .seven-standout p {
	font-family: var(--font-display);
	font-size: clamp(22px, 2.6vw, 30px);
	color: var(--seven-navy);
	line-height: 1.3;
	margin: 0;
	max-width: none;
}
body.seven-page .seven-pull p {
	font-family: var(--font-display);
	font-size: clamp(24px, 3vw, 32px);
	color: var(--seven-navy);
	line-height: 1.35;
	margin: 0;
	max-width: none;
}
body.seven-page .seven-script-note p {
	font-family: var(--font-script);
	font-size: 22px;
	color: var(--seven-teal-dark);
	line-height: 1.25;
	margin: 0;
}
body.seven-page .seven-script-note-lg p { font-size: 28px; }
body.seven-page .seven-editorial .elementor-widget-text-editor:not(.seven-pull):not(.seven-lede) p {
	max-width: none;
	font-size: 18px;
	line-height: 1.75;
}

/* 7) Sobre fundo escuro */
body.seven-page .seven-band-navy .elementor-widget-heading .elementor-heading-title { color: var(--seven-white); }
body.seven-page .seven-band-navy .elementor-widget-heading.seven-eyebrow-caps .elementor-heading-title { color: #7FD8C4; }
body.seven-page .seven-band-navy .elementor-widget-text-editor p { color: rgba(255,255,255,0.84); }
body.seven-page .seven-band-navy .seven-standout p { color: var(--seven-white); }

/* 8) Faixa do manifesto (Home): fundo escuro arredondado com texto + cartão */
body.seven-page .seven-manifesto-band {
	background: var(--seven-navy-dark);
	border-radius: 22px;
	align-items: center;
	--padding-top: var(--space-5); --padding-right: var(--space-5);
	--padding-bottom: var(--space-5); --padding-left: var(--space-5);
}
body.seven-page .seven-manifesto-band .elementor-widget-heading .elementor-heading-title { color: var(--seven-white); }
body.seven-page .seven-manifesto-band .elementor-widget-heading.seven-eyebrow .elementor-heading-title { color: #7FD8C4; }
body.seven-page .seven-manifesto-band .elementor-widget-text-editor p { color: rgba(255,255,255,0.84); }
@media (max-width: 860px) {
	body.seven-page .seven-manifesto-band {
		--padding-top: var(--space-4); --padding-right: var(--space-4);
		--padding-bottom: var(--space-4); --padding-left: var(--space-4);
	}
}

/* Espaço extra acima de um bloco (classe aplicável pelo painel do Elementor) */
body.seven-page .seven-mt-lg { margin-top: var(--space-4); --margin-top: var(--space-4); }

/* Texto simples (sem <p>) dentro do widget Editor de texto: mesmo visual */
body.seven-page .elementor-widget-text-editor.seven-pull {
	font-family: var(--font-display);
	font-size: clamp(24px, 3vw, 32px);
	color: var(--seven-navy);
	line-height: 1.35;
}
body.seven-page .elementor-widget-text-editor.seven-script-note {
	font-family: var(--font-script);
	font-size: 22px;
	color: var(--seven-teal-dark);
	line-height: 1.25;
}
body.seven-page .elementor-widget-text-editor.seven-script-note-lg { font-size: 28px; }

/* Respiro das citações e frases de destaque (o Elementor zera a margem inferior dos widgets) */
body.seven-page .seven-pull { margin: var(--space-4) 0; }
body.seven-page .seven-standout { margin: var(--space-3) 0; }
body.seven-page .seven-script-note-lg { margin-top: var(--space-2); }

/* Ilustrações (no lugar das fotos) e avatares */
body.seven-page .seven-illustration { display: block; width: 100%; height: auto; border-radius: 20px; }
body.seven-page .seven-avatar { display: block; width: 76px; height: 76px; border-radius: 50%; margin: 0; }
body.seven-page .seven-role .seven-role-photo { margin-bottom: 14px; }
